LyoNCiAqIFByb2plY3Q6IFZpektpdA0KICogVmVyc2lvbjogMi4zDQogDQogKiBEYXRlOiAyMDA5MDgyMw0KICogRmlsZTogU3RkQWZ4LmNwcA0KICoNCiAqLw0KDQovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQoNCkNvcHlyaWdodCAoYykgMjAwNC0yMDA5IEhlaWtvIFdpY2htYW5uIChodHRwOi8vd3d3LmltYWdvbWF0LmRlL3ZpemtpdCkNCg0KDQpUaGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkICdhcy1pcycsIHdpdGhvdXQgYW55IGV4cHJlc3NlZCBvciBpbXBsaWVkIHdhcnJhbnR5LiANCkluIG5vIGV2ZW50IHdpbGwgdGhlIGF1dGhvcnMgYmUgaGVsZCBsaWFibGUgZm9yIGFueSBkYW1hZ2VzDQphcmlzaW5nIGZyb20gdGhlIHVzZSBvZiB0aGlzIHNvZnR3YXJlLg0KDQpQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gYW55b25lIHRvIHVzZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkgcHVycG9zZSwNCmluY2x1ZGluZyBjb21tZXJjaWFsIGFwcGxpY2F0aW9ucywgYW5kIHRvIGFsdGVyIGl0IGFuZCByZWRpc3RyaWJ1dGUgaXQNCmZyZWVseSwgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIHJlc3RyaWN0aW9uczoNCg0KMS4gVGhlIG9yaWdpbiBvZiB0aGlzIHNvZnR3YXJlIG11c3Qgbm90IGJlIG1pc3JlcHJlc2VudGVkOyANCiAgIHlvdSBtdXN0IG5vdCBjbGFpbSB0aGF0IHlvdSB3cm90ZSB0aGUgb3JpZ2luYWwgc29mdHdhcmUuIA0KICAgSWYgeW91IHVzZSB0aGlzIHNvZnR3YXJlIGluIGEgcHJvZHVjdCwgYW4gYWNrbm93bGVkZ21lbnQgDQogICBpbiB0aGUgcHJvZHVjdCBkb2N1bWVudGF0aW9uIHdvdWxkIGJlIGFwcHJlY2lhdGVkIA0KICAgYnV0IGlzIG5vdCByZXF1aXJlZC4NCg0KMi4gQWx0ZXJlZCBzb3VyY2UgdmVyc2lvbnMgbXVzdCBiZSBwbGFpbmx5IG1hcmtlZCBhcyBzdWNoLCANCiAgIGFuZCBtdXN0IG5vdCBiZSBtaXNyZXByZXNlbnRlZCBhcyBiZWluZyB0aGUgb3JpZ2luYWwgc29mdHdhcmUuDQoNCjMuIFRoaXMgbm90aWNlIG1heSBub3QgYmUgcmVtb3ZlZCBvciBhbHRlcmVkIGZyb20gYW55IHNvdXJjZSBkaXN0cmlidXRpb24uDQoNCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQoNCi8vIHN0ZGFmeC5jcHAgOiBRdWVsbHRleHRkYXRlaSwgZGllIG51ciBkaWUgU3RhbmRhcmQtSW5jbHVkZXMgZWluYmluZGV0DQovLwlWaXpLaXQucGNoIGlzdCBkaWUgdm9yY29tcGlsaWVydGUgSGVhZGVyLURhdGVpDQovLwlzdGRhZngub2JqIGVudGjkbHQgZGllIHZvcmNvbXBpbGllcnRlIFR5cGluZm9ybWF0aW9uDQoNCiNpbmNsdWRlICJzdGRhZnguaCINCg0KDQoNCg==