Q29weXJpZ2h0IDIwMDUgVmxhZGltaXIgUHJ1cyAKRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KSAKCgpIaSwKcmVjZW50bHksIHdlIGhhZCBhIGNvdXBsZSBvZiBwcm9ibGVtcyBjYXVzZWQgYnkgdXNpbmcgcmVsYXRpdmUgZmlsZSBwYXRocywgYW5kIApJJ2QgbGlrZSB0byBkaXNjdXNzIHdoYXQgdG8gZG8uCgpMZXQncyB1c2UgdGhlIGNhc2UgZnJvbSBDymRyaWMuIFNpbXBsaWZpZWQgdmVyc2lvbiBpczoKCiAgICBleGUgYSA6IGEuY3BwIGRpcjEvcXRfZmlsZS5oIDsKICAgIGV4ZSBiIDogYS5jcHAgZGlyMi9xdF9maWxlLmggOwoKQm90aCBleGVzIGhhdmUgdGhlIHNhbWUgc291cmNlIGNwcCBmaWxlIGJ1dCBkaWZmZXJlbnQgKi5oIGZpbGVzIC0tIHdoaWNoIGFyZSAKcHJvY2Vzc2VkIGJ5IFF0IHRvb2xzLiBWMiBjdXJyZW50bHkgc3RyaXBzIGRpcmVjdG9yeSBuYW1lIGZyb20gYWxsIHRhcmdldHMsIApzbyBpdCB0cmllcyB0bwoKICAgLSBjcmVhdGUgImJpbi9tdnNjL2RlYnVnL21vY19xdF9maWxlLmNwcCIgZnJvbSBkaXIxL3F0X2ZpbGUuaAogICAtIGNyZWF0ZSAiYmluL21zdmMvZGVidWcvbW9jX3F0X2ZpbGUuY3BwIiBmcm9tIGRpcjIvcXRfZmlsZS5oCgpUaGVyZSBhcmUgdHdvIHNvbHV0aW9ucyB0aGF0IEkgc2VlOgoKICAgMS4gUmV3cml0ZSB0aGUgY29kZSBsaWtlOgogICAgICAKICAgICAgbGliIGF1eCA6IGEuY3BwIAogICAgICBleGUgYSA6IGF1eCBkaXIxL3F0X2ZpbGUuaCA6IDxsb2NhdGlvbi1wcmVmaXg+YSA7CiAgICAgIGV4ZSBiIDogYXV4IGRpcjIvcXRfZmlsZS5oIDogPGxvY2F0aW9uLXByZWZpeD5iIDsKCiAgICBUaGlzIHdheSwgdHdvIHZlcnNpb24gb2YgbW9jX3F0X2ZpbGUuY3BwIHdpbGwgYmUgZ2VuZXJhdGVkIHRvIGRpZmZlcmVudAogICAgcGxhY2VzLiAKCiAgMi4gUmV3cml0ZSB0aGUgY29kZSBsaWtlOgoKICAgICAgb2JqIGFfbW9jIDogZGlyMS9xdF9maWxlLmggOiA8bGlicmFyeT4vcXQvL3F0IDsKICAgICAgZXhlIGEgOiBhLmNwcCBhX21vYyA7CiAgICAgIG9iaiBiX21vYyA6IGRpcjIvcXRfZmlsZS5oIDogPGxpYnJhcnk+L3F0Ly9xdCA7CiAgICAgIGV4ZSBiIDogYS5jcHAgYl9tb2MgOwoKICAgICBFeHBsaWNpdGx5IGNoYW5naW5nIG5hbWUgZm9yIHRoZSBwcm9ibGVtYXRpYyBmaWxlcy4KCiAgMy4gR2VuZXJhbGx5IGNoYW5nZSBWMiBzbyB0aGF0IGRpcmVjdG9yeSBwYXJ0IG9mIHNvdXJjZSBpcyBwcmVzZXJ2ZWQuIFRoaXMKICAgICAgd2lsbCBnZW5lcmF0ZSB0YXJnZXRzOgogICAgICJiaW4vbXN2Yy9kZWJ1Zy9kaXIxL21vY19xdF9maWxlLmNwcCIgYW5kCiAgICAgImJpbi9tc3ZjL2RlYnVnL2RpcjIvbW9jX3F0X2ZpbGUuY3BwIi4gTm8gcHJvYmxlbXMuCgogICBIb3dldmVyLCB0aGVyZSBhcmUgc29tZSBhZGRpdGlvbmFsIHF1ZXN0aW9uczoKCiAgICAgICAtIFdoYXQgaWYgc291cmNlIGhhcyBhYnNvbHV0ZSBmaWxlIG5hbWU/CiAgICAgICAtIFdoYXQgaWYgc291cmNlIGlzICIuLi8uLi9pbmNsdWRlL3F0X2ZpbGUuaCI/CgogICAgICAgV2UgY2FuIGlnbm9yZSBkaXJlY3RvcnkgbmFtZXMgaW4gdGhvc2UgY2FzZXMgKGkuZS4gdXNlIHRoZSBjdXJyZW50IAogICAgICAgYmVoYXZpb3VyKSBidXQgdGhhdCB3b3VsZCBiZSBhIGJpdCBpbmNvbnNpc3RlbnQuCgpBbnkgb3BpbmlvbnM/CgpQZWRybyBGZXJyZWlyYToKCkkgdGhpbmsgdGhpcyBpcyBhIGNvcm5lciBjYXNlIGFuZCBCQiBzaG91bGQgbm90IHRyeSB0byBzb2x2ZSBldmVyeXRoaW5nIAphdXRvbWF0aWNhbGx5IC0gb3RoZXJ3aXNlIGl0IHdpbGwgYmVjb21lIHJlYWxseSBjb21wbGV4LgpJIGRvbid0IHNlZSBhIHByb2JsZW0gaW4gcmVxdWlyaW5nIHRoZSB1c2VyIHRvIGhlbHAgdGhlIGJ1aWxkIHN5c3RlbSBieSAKdXNpbmcgc29sdXRpb25zIDEgb3IgMi4KT2YgY291cnNlLCB0aGUgYmV0dGVyIHRoZSBlcnJvciByZXBvcnRpbmcsIHRoZSBlYXNpZXIgaXQgd2lsbCBiZSB0byAKZmluZCB0aGUgY2F1c2UgYW5kIHRoZSBjdXJlIG9mIHRoZSBwcm9ibGVtLgoKVEVNUExJRSBDZWRyaWM6CgpJIGFncmVlIHdpdGggUGVkcm8uIFNvbHV0aW9uIDEgb3IgMiBpcyB0aGUgYmVzdCB3YXkgdG8gZGVhbCB3aXRoIHRoaXMgCnByb2JsZW0uIE9mIGNvdXJzZSBJIGhhdmUgYSBwcmVmZXJlbmNlIGZvciB0aGUgc29sdXRpb24gMSwgYnV0IHRoZSAKc29sdXRpb24gMiBoYXMgdGhlIGFkdmFudGFnZSB0byB3b3JrIHdpdGhvdXQgYW55IG1vZGlmaWNhdGlvbi4uLgoKVG9vbiBLbmFwZW46CgpJIGFncmVlLgoKCg==