Q29weXJpZ2h0IKkgMjAxOS4gIE5YUCBCLlYuICBBbGwgcmlnaHRzIHJlc2VydmVkLgoKUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBiaW5hcnkgZm9ybSBpcyBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nCmNvbmRpdGlvbnMgYXJlIG1ldDoKCjEuIFJlZGlzdHJpYnV0aW9ucyBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mCmNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIKbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KCjIuIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ugc2hhbGwgYmUgdXNlZCBvbmx5IHdpdGggTlhQIEIuVi4gc2lsaWNvbiBwcm9kdWN0cy4KQW55IG90aGVyIHVzZSwgcmVwcm9kdWN0aW9uLCBtb2RpZmljYXRpb24sIHRyYW5zbGF0aW9uLCBvciBjb21waWxhdGlvbiBvZiB0aGUKU29mdHdhcmUgaXMgcHJvaGliaXRlZC4KCjMuIE5vIHJldmVyc2UgZW5naW5lZXJpbmcsIGRlY29tcGlsYXRpb24sIG9yIGRpc2Fzc2VtYmx5IGlzIHBlcm1pdHRlZC4KClRPIFRIRSBNQVhJTVVNIEVYVEVOVCBQRVJNSVRURUQgQlkgQVBQTElDQUJMRSBMQVcsIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQKIkFTIElTIiBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBJTkNMVURJTkcsIFdJVEhPVVQgTElNSVRBVElPTiwgQU5ZIEVYUFJFU1MKT1IgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwgQUNDVVJBQ1ksIEZJVE5FU1MgT1IgU1VGRklDSUVOQ1kgRk9SIEEKUEFSVElDVUxBUiBQVVJQT1NFLCBTQVRJU0ZBQ1RPUlkgUVVBTElUWSwgQ09SUkVTUE9OREVOQ0UgV0lUSCBERVNDUklQVElPTiwgUVVJRVQKRU5KT1lNRU5UIE9SIE5PTi1JTkZSSU5HRU1FTlQgT0YgVEhJUkQgUEFSVFkgSU5URUxMRUNUVUFMIFBST1BFUlRZIFJJR0hUUy4KTlhQIEIuVi4sIElUUyBBRkZJTElBVEVTIEFORCBUSEVJUiBTVVBQTElFUlMgRElTQ0xBSU0gQU5ZIFdBUlJBTlRZIFRIQVQgVEhFCkRFTElWRVJBQkxFUyBXSUxMIE9QRVJBVEUgV0lUSE9VVCBJTlRFUlJVUFRJT04gT1IgQkUgRVJST1ItRlJFRS4K