MjAwNi0wMi0yMSAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKICAgICogc3JjL3NmbnQvc2ZvYmpzLmMgKHNmbnRfZmFjZV9sb2FkKTogZml4ZWQgc2lsbHkgYnVnIHRoYXQKICAgIHByZXZlbnRlZCBlbWJlZGRlZCBiaXRtYXBzIGZyb20gYmVpbmcgY29ycmVjdGx5IGxpc3RlZCBhbmQgdXNlZAoKICAgICogc3JjL3NmbnQvc2ZtdHguYzogZGlzYWJsaW5nIG1lbW9yeSBvcHRpbWl6YXRpb24gd2hlbgogICAgRlRfQ09ORklHX09QVElPTl9PTERfSU5URVJOQUxTIGlzIHVzZWQuIFRoaXMgaXMgYmVjYXVzZSBsaWJYZm9udAogICAgaXMgZGlyZWN0bHkgYWNjZXNzaW5nIHRoZSBITVRYIGRhdGEuIEdycnJyci4uLi4KCiAgICAqIHNyYy9wZnIvcGZyc2JpdC5jOiBmaXhlZCBoYW5kbGluZyBvZiBjaGFyYWN0ZXIgYWR2YW5jZXMKCjIwMDYtMDItMjAgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCglTdXBwb3J0IGJpbmFyeSBjb21wYXRpYmlsaXR5IHdpdGggdGhlIFguT3JnIHNlcnZlcidzIFhmb250IGxpYnJhcnkuIAoJTm90ZSB0aGF0IHRoaXMgY2hhbmdlIHVuZm9ydHVuYXRlbHkgcHJldmVudHMgbWVtb3J5IG9wdGltaXphdGlvbnMKCWZvciB0aGUgZW1iZWRkZWQgYml0bWFwIGxvYWRlci4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvc2ZudC5oIChTRk5UX0ludGVyZmFjZSk6IE1vdmUKCWBzZXRfc2JpdF9zdHJpa2UnIGFuZCBgbG9hZF9zYml0X21ldHJpY3MnIGZpZWxkcyB0byB0aGUgbG9jYXRpb24gb2YKCXZlcnNpb24gMi4xLjguCgoJKiBzcmMvc2ZudC9zZmRyaXZlci5jICh0dF9mYWNlX3NldF9zYml0X3N0cmlrZV9zdHViKTogQ2FsbAoJRlRfU2l6ZV9SZXF1ZXN0LgoJKHNmbnRfaW50ZXJmYWNlKTogVXBkYXRlZC4KCgkqIHNyYy9zZm50L3R0c2JpdC5jIFtGVF9DT05GSUdfT1BUSU9OX09MRF9JTlRFUk5BTFNdOiBEb24ndCBsb2FkCgl0dHNiaXQwLmMuCgkodHRfbG9hZF9zYml0X21ldHJpY3MpOiBNYWtlIGBzYml0X3NtYWxsX21ldHJpY3NfZmllbGRzJyBzdGF0aWMuCgoJKiBzcmMvc2ZudC90dHNiaXQuaDogVXBkYXRlZC4KCjIwMDYtMDItMTcgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCgkqIGJ1aWxkcy91bml4L3VuaXgtY2MuaW4gKExJTktfTElCUkFSWSk6IERvbid0IGZpbHRlciBvdXQgZXhwb3J0ZWQKCWZ1bmN0aW9ucyBhbnltb3JlLiAgVGhpcyBlbnN1cmVzIHRoYXQgYWxsIEZUX0JBU0UgaW50ZXJuYWwgZnVuY3Rpb25zCglhcmUgYXZhaWxhYmxlIGZvciBkeW5hbWljIGxpbmtpbmcuCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2Z0Y2FjaGUuaCAoRlRDX0lNQUdFX1RZUEVfQ09NUEFSRSwKCUZUQ19JTUFHRV9UWVBFX0hBU0gpLCBzcmMvY2FjaGUvZnRjYmFzaWMuYyAoRlRDX09sZEZvbnRSZWMsCglGVENfT2xkSW1hZ2VEZXNjUmVjLCBGVENfSW1hZ2VDYWNoZV9Mb29rdXAsIEZUQ19JbWFnZV9DYWNoZV9OZXcsCglGVENfT2xkSW1hZ2VfRGVzYywgRlRDX09MRF9JTUFHRV9GT1JNQVQsIGZ0Y19vbGRfaW1hZ2VfeHh4LAoJZnRjX2ltYWdlX3R5cGVfZnJvbV9vbGRfZGVzYywgRlRDX0ltYWdlX0NhY2hlX0xvb2t1cCwKCUZUQ19TQml0Q2FjaGVfTG9va3VwLCBGVENfU0JpdF9DYWNoZV9OZXcsIEZUQ19TQml0X0NhY2hlX0xvb2t1cCkKCVtGVF9DT05GSUdfT1BUSU9OX09MRF9JTlRFUk5BTFNdOiBUcnkgdG8gcmV2aXZlIG9sZCBmdW5jdGlvbnMgb2YgdGhlCgljYWNoZSBzdWItc3lzdGVtLiAgV2UgdHJ5IHRvIHJlY29nbml6ZSBvbGQgbGVnYWN5IHNpZ25hdHVyZXMgd2l0aCBhCglncm9zcyBoYWNrIChob3BlIGl0IHdvcmtzKS4KCjIwMDYtMDItMTcgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIGRldmVsL2Z0b3B0aW9uLmg6IFN5bmNocm9uaXplIHdpdGgKCWluY2x1ZGUvZnJlZXR5cGUvY29uZmlnL2Z0b3B0aW9uLmguCgoyMDA2LTAyLTE2ICBEYXZpZCBUdXJuZXIgIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJTWFzc2l2ZSBjaGFuZ2VzIHRvIHRoZSBpbnRlcm5hbHMgdG8gcmVzcGVjdCB0aGUgaW50ZXJuYWwgb2JqZWN0CglsYXlvdXRzIGFuZCBleHBvcnRlZCBmdW5jdGlvbnMgb2YgRnJlZVR5cGUgMi4xLjcuICBOb3RlIHRoYXQgdGhlCgljYWNoZSBzdWItc3lzdGVtIGNhbm5vdCBiZSBmdWxseSByZXRyb2ZpdHRlZCwgdW5mb3J0dW5hdGVseS4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvY29uZmlnL2Z0b3B0aW9uLmgKCShGVF9DT05GSUdfT1BUSU9OX09MRF9JTlRFUk5BTFMpOiBOZXcgbWFjcm8uCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2Z0Y2FjaGUuaCwgaW5jbHVkZS9mcmVldHlwZS9jYWNoZS9mdGNjYWNoZS5oLAoJaW5jbHVkZS9mcmVldHlwZS9jYWNoZS9mdGNjbWFwLmgsCglpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL2Z0Y2FsYy5oLAoJaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9mdGRyaXZlci5oLAoJaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9mdG1lbW9yeS5oLAoJaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9mdG9ianMuaCwKCWluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvcHNhdXguaCwgaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9zZm50LmgsCglpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL3QxdHlwZXMuaCwKCWluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvdHR0eXBlcy5oLCBzcmMvYmFzZS9mdGNhbGMuYywKCXNyYy9iYXNlL2Z0ZGJnbWVtLmMsIHNyYy9iYXNlL2Z0b2Jqcy5jLCBzcmMvYmFzZS9mdHV0aWwuYywKCXNyYy9iZGYvYmRmZHJpdnIuYywgc3JjL2NhY2hlL2Z0Y2NhY2hlLmMsIHNyYy9jYWNoZS9mdGNjYmFjay5oLAoJc3JjL2NhY2hlL2Z0Y21hbmFnLmMsIHNyYy9jZmYvY2ZmZHJpdnIuYywgc3JjL2NpZC9jaWRyaXZlci5jLAoJc3JjL3BjZi9wY2Zkcml2ci5jLCBzcmMvcGZyL3BmcmRyaXZyLmMsIHNyYy9wc2F1eC9wc2F1eG1vZC5jLAoJc3JjL3NmbnQvc2Zkcml2ZXIuYywgc3JjL3RydWV0eXBlL3R0ZHJpdmVyLmMsIHNyYy90eXBlMS90MWRyaXZlci5jLAoJc3JjL3R5cGUxL3Qxb2Jqcy5jLCBzcmMvdHlwZTQyL3Q0MmRyaXZyLmMsIHNyYy93aW5mb250cy93aW5mbnQuYzoKCVVzZSBGVF9DT05GSUdfT1BUSU9OX09MRF9JTlRFUk5BTFMgdG8gcmV2aXZlIG9sZCBmdW5jdGlvbnMgYW5kIGRhdGEKCXN0cnVjdHVyZXMuCgoJTW92ZSBuZXdseSBhZGRlZCBzdHJ1Y3R1cmUgZWxlbWVudHMgdG8gdGhlIGVuZCBvZiB0aGUgYWZmZWN0ZWQKCXN0cnVjdHVyZSBhbmQgYWRkIHN0dWIgZmllbGRzIChpZiBGVF9DT05GSUdfT1BUSU9OX09MRF9JTlRFUk5BTFMgaXMKCWRlZmluZWQpIHRvIGFzc3VyZSBiaW5hcnkgY29tcGF0aWJpbGl0eSB3aXRoIG9sZGVyIEZyZWVUeXBlCgl2ZXJzaW9ucy4KCVVzZSBGVF9DT05GSUdfT1BUSU9OX09MRF9JTlRFUk5BTFMgdG8gYWRkIGZ1bmN0aW9uIHN0dWJzIGZvciBvbGQKCWZ1bmN0aW9uczoKCgkgIGZ0X3N0dWJfc2V0X2NoYXJfc2l6ZXMKCSAgZnRfc3R1Yl9zZXRfcGl4ZWxfc2l6ZXMKCglSZW5hbWUgdGhlIGZvbGxvd2luZyBpbnRlcm5hbCBmdW5jdGlvbnMgdG8gcHJvdmlkZSB0aGUgb2xkIGZ1bmN0aW9uCgluYW1lcyBhcyBzdHViczoKCgkgIEZUX0FsbG9jICAgICAgICAgIC0+IGZ0X21lbV9hbGxvYwoJICBGVF9RQWxsb2MgICAgICAgICAtPiBmdF9tZW1fcWFsbG9jCgkgIEZUX1JlYWxsb2MgICAgICAgIC0+IGZ0X21lbV9yZWFsbG9jCgkgIEZUX1FSZWFsbG9jICAgICAgIC0+IGZ0X21lbV9xcmVhbGxvYwoJICBGVF9GcmVlICAgICAgICAgICAtPiBmdF9tZW1fZnJlZQoJICBGVF9BbGxvY19EZWJ1ZyAgICAtPiBmdF9tZW1fYWxsb2NfZGVidWcKCSAgRlRfUUFsbG9jX0RlYnVnICAgLT4gZnRfbWVtX3FhbGxvY19kZWJ1ZwoJICBGVF9SZWFsbG9jX0RlYnVnICAtPiBmdF9tZW1fcmVhbGxvY19kZWJ1ZwoJICBGVF9RUmVhbGxvY19EZWJ1ZyAtPiBmdF9tZW1fcXJlYWxsb2NfZGVidWcKCSAgRlRfRnJlZV9EZWJ1ZyAgICAgLT4gZnRfbWVtX2ZyZWVfZGVidWcKCjIwMDYtMDItMTUgIENoaWEtSSBXdSAgPGI5MDIwMTA0N0BudHUuZWR1LnR3PgoKCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9mdG9ianMuaCAoRlRfRmFjZV9JbnRlcm5hbFJlYyk6IFJlbW92ZQoJdW51c2VkIGBtYXhfcG9pbnRzJyBhbmQgYG1heF9jb250b3VycycuCgoJKiBzcmMvY2lkL2NpZG9ianMuYyAoY2lkX2ZhY2VfaW5pdCksIHNyYy90eXBlMS90MW9ianMuYwoJKFQxX0ZhY2VfSW5pdCksIHNyYy90eXBlNDIvdDQyb2Jqcy5jIChUNDJfRmFjZV9Jbml0KTogVXBkYXRlLgoKCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC90dHR5cGVzLmggKFRUX0ZhY2VSZWMpOiBSZW1vdmUgdW51c2VkCglgbWF4X2NvbXBvbmVudHMnLgoKCSogc3JjL3RydWV0eXBlL3R0aW50ZXJwLmggKFRUX0V4ZWNDb250ZXh0UmVjKTogUmVtb3ZlIHVudXNlZAoJYGxvYWRTaXplJyBhbmQgYGxvYWRTdGFjaycuCgoJKiBzcmMvdHJ1ZXR5cGUvdHRpbnRlcnAuYyAoVFRfRG9uZV9Db250ZXh0LCBUVF9Mb2FkX0NvbnRleHQpLAoJc3JjL3NmbnQvdHRsb2FkLmMgKHR0X2ZhY2VfbG9hZF9tYXhwKTogVXBkYXRlLgoKCSogc3JjL2NmZi9jZmZvYmpzLmggKGNmZl9zaXplX3NlbGVjdCksIHNyYy9zZm50L3NmZHJpdmVyLmMKCShzZm50X2ludGVyZmFjZSksIHNyYy90cnVldHlwZS90dGRyaXZlci5jICh0dF9zaXplX3JlcXVlc3QpOiBGaXgKCWNvbXBpbGVyIGVycm9ycy93YXJuaW5ncyB3aGVuIFRUX0NPTkZJR19PUFRJT05fRU1CRURERURfQklUTUFQUyBpcyBub3QKCWRlZmluZWQuCgoJKiBzcmMvc2ZudC90dG10eC5jICh0dF9mYWNlX2xvYWRfaG10eCwgdHRfZmFjZV9nZXRfbWV0cmljcyk6IEZpeAoJcG9zc2libGUgc2VnbWVudCBmYXVsdHMgZm9yIHRoZSBub24tRlRfT1BUSU1JWkVfTUVNT1JZJ2VkIHZlcnNpb25zLgoJKGZpbmFsbHkhKQoKCglGb3IgbW9zdCBPcGVuVHlwZSB0YWJsZXMsIGB0dF9mYWNlX2xvYWRfeHh4eCcgc2ltcGx5IGxvYWRzIHRoZSB0YWJsZQoJYW5kIGBmYWNlLT5yb290JyBpcyBzZXQgbGF0ZXIgaW4gYHNmbnRfbG9hZF9mYWNlJy4gIEhlcmUsIHdlIHRyeSB0bwoJbWFrZSB0aGlzIHdvcmsgZm9yIF9hbGxfIHRhYmxlcy4gIEFsc28gaW1wcm92ZSB0cmFjaW5nIG1lc3NhZ2VzLgoKCSogc3JjL3NmbnQvdHRzYml0LmMsIHNyYy9zZm50L3R0c2JpdDAuYywgc3JjL3NmbnQvdHRsb2FkLmMsCglzcmMvc2ZudC90dG10eC5jOiBhbGwgYHR0X2ZhY2VfbG9hZF94eHh4JyBzaG91bGQgbG9hZCB0aGUgdGFibGUgYW5kCgl0aGVuIGV4aXQuICBFcnJvciBoYW5kbGluZyBvciBzZXR0aW5nIGZhY2UtPnJvb3QgaXMgZG9uZSBsYXRlciBpbgoJYHNmbnRfbG9hZF9mYWNlJy4KCgkqIHNyYy9zZm50L3Nmb2Jqcy5jIChzZm50X2xvYWRfZmFjZSk6IFdvcmsgaGFyZGVyLgoJTWFjIGJpdG1hcC1vbmx5IGZvbnRzIGFyZSBub3Qgc2NhbGFibGUuCglDaGVjayB0aGF0IGBmYWNlLT5oZWFkZXIuVW5pdHNfUGVyX0VNJyBpcyBub3QgemVyby4KCShMT0FEXywgTE9BRE1fKTogRW1pdCBwcmV0dHkgdHJhY2UgbWVzc2FnZXMuCgoJKiBzcmMvc2ZudC90dHNiaXQwLmMgKHR0X2ZhY2VfbG9hZF9zdHJpa2VfbWV0cmljcyk6IFJlYWQgbWV0cmljcwoJZnJvbSBgZWJsYycuCgoJKiBzcmMvc2ZudC90dGNtYXAuYyAodHRfZmFjZV9idWlsZF9jbWFwcyksIHNyYy9zZm50L3R0cG9zdC5jCgkobG9hZF9mb3JtYXRfMjAsIGxvYWRfZm9ybWF0XzI1LCB0dF9mYWNlX2dldF9wc19uYW1lKTogVXNlCglmYWNlLT5tYXhfcHJvZmlsZS5udW1HbHlwaHMsIGluc3RlYWQgb2YgZmFjZS0+cm9vdC5udW1fZ2x5cGhzLgoKMjAwNi0wMi0xNCAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogaW5jbHVkZS9mcmVldHlwZS9mdG91dGxuLmggKEZUX091dGxpbmVfRW1ib2xkZW4pOiBNZW50aW9uIGluCglkb2N1bWVudGF0aW9uIHRoYXQgbmVnYXRpdmUgc3RyZW5ndGggdmFsdWVzIGFyZSBwb3NzaWJsZS4KCUdpdmUgYW4gZXhhbXBsZSBjYWxsLgoKCSogaW5jbHVkZS9mcmVldHlwZS9mcmVldHlwZS5oIChGVF9HbHlwaFNsb3RSZWMpOiBJbXByb3ZlCglkb2N1bWVudGF0aW9uIG9mIGBvdXRsaW5lJyBmaWVsZC4KCgkqIHNyYy9zZm50L3Nmb2JqYy5zOiBJbmNrdWRlIEZUX0lOVEVSTkFMX0RFQlVHX0guCgkqIHNyYy9zZm50L3NmZHJpdmVyLmM6IEluY2x1ZGUgdHRtdHguaC4KCgkqIHNyYy9hdXRvZml0L2FmY2prLmM6IEluY2x1ZGUgYWZ0eXBlcy5oIGFuZCBhZmxhdGluLmguCgoyMDA2LTAyLTE0ICBDaGlhLUkgV3UgIDxiOTAyMDEwNDdAbnR1LmVkdS50dz4KCgkqIHNyYy9zZm50L3R0bXR4LmMgKHR0X2ZhY2VfZ2V0X21ldHJpY3MpOiBUeXBvLgoKMjAwNi0wMi0xNCAgQ2hpYS1JIFd1ICA8YjkwMjAxMDQ3QG50dS5lZHUudHc+CgoJKiBzcmMvc2ZudC90dG10eC5jICh0dF9mYWNlX2xvYWRfaGhlYSwgdHRfZmFjZV9sb2FkX2htdHgpOiBTaW1wbHkKCXJldHVybiBlcnJvciBpZiB0YWJsZSBpcyBtaXNzaW5nLgoJQ2hlY2sgdGFibGUgbGVuZ3RoIGluIG5vbi1GVF9PUFRJTUlaRV9NRU1PUlknZWQgYHR0X2ZhY2VfbG9hZF9obXR4Jy4KCgkqIHNyYy9zZm50L3Nmb2Jqcy5jIChzZm50X2xvYWRfZmFjZSk6IFRha2UgY2FyZSBvZiBtaXNzaW5nIG1ldHJpY3MKCXRhYmxlcy4gIFRoZSBsYXN0IGNoYW5nZSBtYWtlcyBNYWMgYml0bWFwLW9ubHkgZm9udCBub3QgbG9hZCBhbmQKCXRoaXMgZml4ZXMgaXQuCgoJKiBzcmMvdHJ1ZXR5cGUvdHRnbG9hZC5jIChsb2FkX3RydWV0eXBlX2dseXBoKTogRml4IGNvbXBpbGF0aW9uCgllcnJvciB3aGVuIEZUX0NPTkZJR19PUFRJT05fSU5DUkVNRU5UQUwgaXMgZGVmaW5lZC4KCjIwMDYtMDItMTMgIENoaWEtSSBXdSAgPGI5MDIwMTA0N0BudHUuZWR1LnR3PgoKCUNsZWFuIHVwIHRoZSBTRk5UX0ludGVyZmFjZS4gIEluIHRoaXMgZmluYWwgcGFzcywgYGxvYWRfaG10eCcgaXMKCXNwbGl0dGVkIGZyb20gYGxvYWRfaGhlYScuCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL3NmbnQuaCwgc3JjL3NmbnQvc2Zkcml2ZXIuYywKCXNyYy9zZm50L3R0bXR4LmMsIHNyYy9zZm50L3R0bXR4Lmg6IFNwbGl0IGBobXR4JyBmcm9tIGBoaGVhJy4KCgkqIHNyYy9zZm50L3Nmb2Jqcy5jIChzZm50X2xvYWRfZmFjZSk6IFVwZGF0ZS4KCjIwMDYtMDItMTMgIENoaWEtSSBXdSAgPGI5MDIwMTA0N0BudHUuZWR1LnR3PgoKCSogc3JjL3NmbnQvdHRtdHguaCwgc3JjL3NmbnQvdHRtdHguYzogV2h5IGFyZSB0aGVyZSB0d28gY29waWVzIG9mCgljb2RlLi4uCgoyMDA2LTAyLTEzICBDaGlhLUkgV3UgIDxiOTAyMDEwNDdAbnR1LmVkdS50dz4KCglDbGVhbiB1cCB0aGUgU0ZOVF9JbnRlcmZhY2UuICBJbiB0aGlzIHBhc3MsIHdlIHdhbnQgdG8gdHJlYXQgdGhlCglmb250IGRpcmVjdG9yeSAob2Zmc2V0IHRhYmxlIGFuZCB0YWJsZSBkaXJlY3RvcnkpIGFzIGEgbm9ybWFsIHRhYmxlCglsaWtlIHRoZSBvdGhlcnMuICBUaGlzIGFsc28gbWVhbnMgdGhhdCBUVENzIGFyZSBubyBsb25nZXIgcmVjb2duaXplZAoJdGhlcmUgYnV0IGluIGBpbml0X2ZhY2UnLgoKCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9zZm50LmggKFNGTlRfSW50ZXJmYWNlKSwKCXNyYy9zZm50L3NmZHJpdmVyLmM6IGBsb2FkX3NmbnRfaGVhZGVyJyBhbmQgYGxvYWRfZGlyZWN0b3J5JyBhcmUKCWNvbWJpbmVkIGFuZCByZW5hbWVkIHRvIGBsb2FkX2ZvbnRfZGlyJy4KCgkqIHNyYy9zZm50L3R0bG9hZC5oLCBzcmMvc2ZudC90dGxvYWQuYzoKCXMvc2ZudF9kaXJfY2hlY2svY2hlY2tfdGFibGVfZGlyLy4KCWBzZm50X2luaXQnIGlzIG1vdmVkIHRvIHNmb2Jqcy5jIGFuZCByZW5hbWVkIHRvIGBzZm50X29wZW5fZm9udCcuCglgdHRfZmFjZV9sb2FkX3NmbnRfaGVhZGVyJyBhbmQgYHR0X2ZhY2VfbG9hZF9kaXJlY3RvcnknIGFyZSBjb21iaW5lZAoJYW5kIHJlbmFtZWQgdG8gYHR0X2ZhY2VfbG9hZF9mb250X2RpcicuCgoJKiBzcmMvc2ZudC9zZm9ianMuYyAoc2ZudF9pbml0X2ZhY2UpOiBSZWNvZ25pemUgVFRDIGhlcmUuCgoyMDA2LTAyLTEzICBDaGlhLUkgV3UgIDxiOTAyMDEwNDdAbnR1LmVkdS50dz4KCglDbGVhbiB1cCB0aGUgU0ZOVF9JbnRlcmZhY2UuICBUYWJsZSBsb2FkaW5nIGZ1bmN0aW9ucyBhcmUgbm93IG5hbWVkCglhZnRlciB0aGUgdGFibGVzJyB0YWdzOyBgaGRteCcgaXMgVHJ1ZVR5cGUtc3BlY2lmaWMgYW5kIHRodXMgdGhlCgljb2RlIGlzIG1vdmVkIHRvIHRoZSB0cnVldHlwZSBtb2R1bGU7IGBnZXRfbWV0cmljcycgaXMgbW92ZWQgaGVyZQoJZnJvbSB0aGUgdHJ1ZXR5cGUgbW9kdWxlIHNvIHRoYXQgdGhlIGNvZGUgY2FuIGJlIHNoYXJlZCB3aXRoIHRoZSBjZmYKCW1vZHVsZS4KCglUaGlzIHBhc3MgaW52b2x2ZXMgbm8gcmVhbCBjaGFuZ2VzLiAgVGhhdCBpcywgdGhlIGNvZGUgaXMgbW92ZWQKCXZlcmJhdGltIG1vc3RseS4gIFRoZSBvbmx5IGV4Y2VwdGlvbiBpcyB0aGUgcmV0dXJuIHZhbHVlIG9mCglgdHRfZmFjZV9nZXRfbWV0cmljcycuCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL3NmbnQuaCwgc3JjL3NmbnQvcnVsZXMubWssCglzcmMvc2ZudC9zZmRyaXZlci5jLCBzcmMvc2ZudC9zZm50LmMsIHNyYy9zZm50L3Nmb2Jqcy5jLAoJc3JjL3NmbnQvdHRsb2FkLmMsIHNyYy9zZm50L3R0bG9hZC5oLCBzcmMvc2ZudC90dHNiaXQuYywKCXNyYy9zZm50L3R0c2JpdC5oLCBzcmMvc2ZudC90dHNiaXQwLmM6IENsZWFuIHVwIHRoZSBTRk5UX0ludGVyZmFjZS4KCgkqIHNyYy9zZm50L3R0bXR4LmMsIHNyYy9zZm50L3R0bXR4Lmg6IE5ldyBmaWxlcy4gIE1ldHJpY3MtcmVsYXRlZAoJdGFibGVzJyBsb2FkaW5nIGFuZCBwYXJzaW5nIGNvZGUgaXMgbW92ZWQgdG8gaGVyZS4KCU1vdmUgYHR0X2ZhY2VfZ2V0X21ldHJpY3MnIGhlcmUgZnJvbSB0aGUgdHJ1ZXR5cGUgbW9kdWxlLiAgVGhlCglyZXR1cm4gdmFsdWUgaXMgY2hhbmdlZCBmcm9tIGB2b2lkJyB0byBgRlRfRXJyb3InLgoKCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9mdHRyYWNlLmg6IE5ldyB0cmFjZTogdHRtdHguCgoJKiBzcmMvdHJ1ZXR5cGUvdHRwbG9hZC5jLCBzcmMvdHJ1ZXR5cGUvdHRwbG9hZC5oOiBgaGRteCcgbG9hZGluZyBhbmQKCXBhcnNpbmcgY29kZSBpcyBtb3ZlZCBoZXJlLgoJTmV3IGZ1bmN0aW9uIGB0dF9mYWNlX2xvYWRfcHJlcCcgc3BsaXR0ZWQgZnJvbSBgdHRfZmFjZV9sb2FkX2ZwZ20nLgoJYHR0X2ZhY2VfbG9hZF9mcGdtJyByZXR1cm5zIGBGVF9FcnJfT2snIGlmIGBmcGdtJyBkb2Vzbid0IGV4aXN0LgoKCSogc3JjL2NmZi9jZmZnbG9hZC5jLCBzcmMvY2ZmL2NmZm9ianMuYzogVXBkYXRlLgoKCSogc3JjL3RydWV0eXBlL3R0Z2xvYWQuYywgc3JjL3RydWV0eXBlL3R0b2Jqcy5jOiBVcGRhdGUuCgoyMDA2LTAyLTExICBDaGlhLUkgV3UgIDxiOTAyMDEwNDdAbnR1LmVkdS50dz4KCgkqIHNyYy9hdXRvZml0L2FmY2prLmMgKGFmX2Nqa19tZXRyaWNzX2luaXQpOiBGaXggYSBzdHVwaWQgYnVnLi4uCgoJKiBzcmMvYXV0b2ZpdC9hZmxhdGluLmMgKGFmX2xhdGluX21ldHJpY3NfaW5pdF93aWR0aHMpOiBVc2UKCUFGX0xhdGluTWV0cmljc1JlYyBhcyB0aGUgZHVtbXkgbWV0cmljcyBiZWNhdXNlIHdlIGNhc3QgdGhlIG1ldHJpY3MKCXRvIGl0IGxhdGVyIGluIGBhZl9sYXRpbl9oaW50c19saW5rX3NlZ21lbnRzJy4KCjIwMDYtMDItMTEgIENoaWEtSSBXdSAgPGI5MDIwMTA0N0BudHUuZWR1LnR3PgoKCSogaW5jbHVkZS9mcmVldHlwZS9jb25maWcvZnRvcHRpb24uaCAoQUZfQ09ORklHX09QVElPTl9DSkspOiAjZGVmaW5lCgl0byBlbmFibGUgYXV0b2ZpdCBDSksgc2NyaXB0IHN1cHBvcnQuICAoI2RlZmluZSdkIGJ5IGRlZmF1bHQuKQoKCSogc3JjL2F1dG9maXQvYWZsYXRpbi5oIChBRl9MQVRJTl9DT05TVEFOVCk6IE5ldyBtYWNyby4KCgkqIHNyYy9hdXRvZml0L2FmbGF0aW4uYyAoYWZfbGF0aW5fbWV0cmljc19pbml0X3dpZHRocyk6IE1ha2Ugc3VyZQoJdGhhdCBgZWRnZV9kaXN0YW5jZV90aHJlc2hvbGQnIGlzIGFsd2F5cyBzZXQuCgkoYWZfbGF0aW5faGludHNfbGlua19zZWdtZW50cyk6IFBvdGVudGlhbCBkaXZpZGUtYnktemVybyBidWcuCglVc2UgbGF0aW4gY29uc3RhbnQgaW4gdGhlIHNjb3JpbmcgZm9ybXVsYS4KCgkqIHNyYy9hdXRvZml0L2FmY2prLmM6IE1pbm9yIHVwZGF0ZXMgZHVlIHRvIHRoZSBhYm92ZSB0aHJlZSBjaGFuZ2VzLgoKCSogZG9jcy9UT0RPLCBkb2NzL0NIQU5HRVM6IFVwZGF0ZWQuCgoyMDA2LTAyLTA5ICBDaGlhLUkgV3UgIDxiOTAyMDEwNDdAbnR1LmVkdS50dz4KCglJbnRyb2R1Y2UgZXhwZXJpbWVudGFsIGF1dG9maXQgQ0pLIG1vZHVsZSBiYXNlZCBvbiBha2l0bydzIGF1dG9oaW50CglwYXRjaC4gIFlvdSBuZWVkIHRvICNkZWZpbmUgQUZfTU9EX0NKSyBpbiBhZmNqay5jIHRvIGVuYWJsZSBpdC4KCgkqIHNyYy9hdXRvZml0L2FmZ2xvYmFsLmMsIHNyYy9hdXRvZml0L2FmY2prLmgsIHNyYy9hdXRvZml0L2FmY2prLmMsCglzcmMvYXV0b2ZpdC9ydWxlcy5taywgc3JjL2F1dG9maXQvYXV0b2ZpdC5jLCBzcmMvYXV0b2ZpdC9hZnR5cGVzLmg6CglBZGQgQ0pLIG1vZHVsZSBiYXNlZCBvbiBha2l0bydzIGF1dG9oaW50IHBhdGNoLgoKCSogc3JjL2F1dG9maXQvYWZoaW50cy5oIChBRl9TZWdtZW50UmVjKTogTmV3IGZpZWxkIGBsZW4nIGZvciB0aGUKCW92ZXJsYXAgbGVuZ3RoIG9mIHRoZSBzZWdtZW50cy4KCShBRl9TRUdNRU5UX0xFTiwgQUZfU0VHTUVOVF9ESVNUKTogTmV3IG1hY3Jvcy4KCgkqIHNyYy9hdXRvZml0L2FmbGF0aW4uaCAoYWZfbGF0aW5fbWV0cmljc19pbml0X3dpZHRocyksCglzcmMvYXV0b2ZpdC9hZmxhdGluLmMgKGFmX2xhdGluX21ldHJpY3NfaW5pdF93aWR0aHMpOiBNYWRlCglgRlRfTE9DQUwnLgoJVXNlIHRoZSBjaGFyYWN0ZXIgZ2l2ZW4gYnkgdGhlIGNhbGxlci4KCShhZl9sYXRpbl9tZXRyaWNzX2luaXRfd2lkdGhzLCBhZl9sYXRpbl9oaW50c19saW5rX3NlZ21lbnRzKTogU2NhbGUKCXRoZSB0aHJlc2hvbGRzLgoKCSogc3JjL2F1dG9maXQvYWZsb2FkZXIuYyAoYWZfbG9hZGVyX2xvYWRfZyk6IFJlc3BlY3QKCUFGX1NDQUxFUl9GTEFHX05PX0FEVkFOQ0UuCgoyMDA2LTAyLTA5ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBzcmMvY2lkL2NpZHBhcnNlLmMgKGNpZF9wYXJzZV9uZXcpOiBSZW1vdmUgc2hhZG93aW5nIHZhcmlhYmxlLgoKMjAwNi0wMi0wOSAgc3V6dWtpIHRvc2hpeWEgIDxtcHN1enVraUBoaXJvc2hpbWEtdS5hYy5qcD4KCgkqIHNyYy9jaWQvY2lkcGFyc2UuYyAoY2lkX3BhcnNlX25ldyk6IEZpeCBmb3IgYWJub3JtYWxseSBzaG9ydCBvcgoJYnJva2VuIENJREZvbnQuICBSZXBvcnRlZCBieSBUYWVrIEt3YW4oVEspIExlZSAoc2VlIGZ0LWRldmVsCgkyMDA1LTExLTAyKS4KCjIwMDYtMDItMDggIHN1enVraSB0b3NoaXlhICA8bXBzdXp1a2lAaGlyb3NoaW1hLXUuYWMuanA+CgoJKiBidWlsZHMvdW5peC9jb25maWd1cmUuYWM6IEZpeCBidWcgZm9yIGAtLXdpdGgtb2xkLW1hYy1mb250cycKCW9wdGlvbiBvbiBVTklYIHBsYXRmb3JtLiAgSXQgaGFzIGJlZW4gYnJva2VuIHNpbmNlIDIwMDYtMDEtMTEuCgoyMDA2LTAyLTAxICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBzcmMvb3R2YWxpZC9tb2R1bGUubWs6IHMvb3R2YWxpZF9tb2R1bGVfY2xhc3Mvb3R2X21vZHVsZV9jbGFzcy8uCgkqIHNyYy9neHZhbGlkL21vZHVsZS5tazogcy9neHZhbGlkX21vZHVsZV9jbGFzcy9neHZfbW9kdWxlX2NsYXNzLy4KCgkqIGJ1aWxkcy91bml4L3VuaXhkZGVmLm1rOiBBY3R1YWxseSBkbyBkZWZpbmUgUExBVEZPUk0gKGZpeGluZwoJY2hhbmdlIGZyb20gMjAwNi0wMS0zMSkuCgkoVE9QX0RJUiwgT0JKX0RJUik6IFVwZGF0ZS4KCgkqIGJ1aWxkcy91bml4L2luc3RhbGwubWsgKGluc3RhbGwpOiBGaXggcGF0aCBmb3IgZnRtb2R1bGUuaC4KCgkqIE1ha2VmaWxlLCAqLm1rLCBidWlsZHMvdW5peC91bml4LWNjLmluLCBidWlsZHMvdW5peC1kZWYuaW46IFVzZQoJYD89JyB3aGVyZSBhcHByb3ByaWF0ZS4KCgkqIGJ1aWxkcy9kZXRlY3QubWsgKFRPUF9ESVIpLCBidWlsZHMvb3MyL29zMi1kZXYubWsgKFRPUF9ESVIpLAoJYnVpbGRzL3dpbjMyL3czMi1kZXYubWsgKFRPUF9ESVIpOiBSZW1vdmVkLiAgRGVmaW5lZCBlbHNld2hlcmUuCgoyMDA2LTAxLTMxICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJSW1wbGVtZW50IG5ldywgc2ltcGxpZmllZCBtb2R1bGUgc2VsZWN0aW9uLiAgV2l0aCBHTlUgbWFrZSBpdCBpcyBub3cKCXN1ZmZpY2llbnQgdG8gbW9kaWZ5IGEgc2luZ2xlIGZpbGUsIGBtb2R1bGVzLmNmZycsIHRvIGNvbnRyb2wgdGhlCglpbmNsdXNpb24gb2YgbW9kdWxlcyBhbmQgYmFzZSBleHRlbnNpb24gZmlsZXMuCgoJVGhpcyBjaGFuZ2UgYWxzbyBmaXhlcyB0aGUgY3JlYXRpb24gb2YgZnRtb2R1bGUuaDsgaXQgbm93IGRlcGVuZHMgb24KCWBtb2R1bGVzLmNmZycgYW5kIHRodXMgaXMgcmVidWlsdCBvbmx5IGlmIG5lY2Vzc2FyeS4KCglGaW5hbGx5LCBhIHZlcnNpb24gb2YgYGZ0b3B0aW9uLmgnIGluIE9CSl9ESVIgaXMgcHJlZmVycmVkIG92ZXIgdGhlCglkZWZhdWx0IGxvY2F0aW9uLgoKCSogbW9kdWxlcy5jZmc6IE5ldyBmaWxlLgoKCSogYnVpbGRzL2ZyZWV0eXBlLm1rOiBEb24ndCBpbmNsdWRlIGBtb2R1bGVzLm1rJy4KCUluY2x1ZGUgYWxsIGBydWxlcy5taycgZmlsZXMgYXMgc3BlY2lmaWVkIGluIGBtb2R1bGVzLmNmZycuCgkoRlRPUFRJT05fRkxBRywgRlRPUFRJT05fSCk6IE5ldyB2YXJpYWJsZXMuCgkoRlRfQ0ZMQUdTKTogQWRkIG1hY3JvIGRlZmluaXRpb24gZm9yIEZUX0NPTkZJR19NT0RVTEVTX0guCglBZGQgRlRPUFRJT05fRkxBRy4KCSgkKEZUX0lOSVRfT0JKKSk6IERvbid0IHVzZSBGVF9NT0RVTEVfTElTVC4KCShDT05GSUdfSCk6IEFkZCBGVE1PRFVMRV9IIGFuZCBGVE9QVElPTl9ILgoJKElOQ0xVREVTKTogQWRkIERFVkVMX0RJUi4KCShJTkNMVURFX0ZMQUdTLCBGVFNZU19TUkMsIEZUU1lTX09CSiwgRlRERUJVR19TUkMsIEZUREVCVUdfT0JKLAoJT0JKX00sIE9CSl9TKTogVXNlIGA6PScsIG5vdCBgPScuCgkocmVtb3ZlX2Z0bW9kdWxlX2gpOiBOZXcgcGhvbnkgdGFyZ2V0IHRvIGRlbGV0ZSBgZnRtb2R1bGUuaCcuCgkoZGlzdGNsZWFuKTogQWRkIHJlbW92ZV9mdG1vZHVsZV9oLgoKCSogYnVpbGRzL21vZHVsZXMubWs6IChNT0RVTEVfTElTVCk6IFJlbW92ZWQuCgkobWFrZV9tb2R1bGVfbGlzdCwgY2xlYW5fbW9kdWxlX2xpc3QpOiBSZXBsYWNlIHRhcmdldHMKCXdpdGguLi4KCShGVE1PRFVMRV9IX0lOSVQsIEZUTU9EVUxFX0hfQ1JFQVRFLCBGVE1PRFVMRV9IX0RPTkUpOiBOZXcKCXZhcmlhYmxlcy4gIFJlYXNvbiBmb3IgdGhlIGNoYW5nZSBpcyB0aGF0IGl0IGlzIG5vdCBwb3NzaWJsZSB0byBoYXZlCglhIHBob255IHByZXJlcXVpc2l0ZSB3aGljaCBpcyBydW4gb25seSBpZiB0aGUgdGFyZ2V0IGZpbGUgbXVzdCBiZQoJcmVidWlsdCAocGhvbnkgcHJlcmVxdWlzaXRlcyBhY3QgbGlrZSBzdWJyb3V0aW5lcyBhbmQgYXJlICphbHdheXMqCglleGVjdXRlZCkuICBXZSBvbmx5IHdhbnQgdG8gcmVidWlsZCBgZnRtb2R1bGUuaCcgaWYgYG1vZHVsZS5jZmcnIGlzCgljaGFuZ2VkLgoJVXBkYXRlIGFsbCBjYWxsZXJzLgoJKCRGVE1PRFVMRV9IKSk6IFJ1bGUgdG8gY3JlYXRlIGBmdG1vZHVsZS5oJywgZGVwZW5kaW5nIG9uCglgbW9kdWxlcy5jZmcnLgoKCSogYnVpbGRzL3RvcGxldmVsLm1rOiBSZXdyaXRlIGFuZCBzaW1wbGlmeSBtb2R1bGUgaGFuZGxpbmcuCgkoTU9EVUxFU19DRkcsIEZUTU9EVUxFX0gpOiBOZXcgdmFyaWFibGVzLgoJSW5jbHVkZSBNT0RVTEVTX0NGRy4KCShNT0RVTEVTKTogTmV3IHZhcmlhYmxlIHRvIGluY2x1ZGUgYWxsIGBtb2R1bGUubWsnIGFuZCBgcnVsZXMubWsnCglmaWxlcy4gIFdlIG5vIGxvbmdlciB1c2UgbWFrZSdzIGB3aWxkY2FyZCcgZnVuY3Rpb24gZm9yIHRoaXMuCgoJKiBNYWtlZmlsZSAoVVNFX01PRFVMRVMpOiBSZW1vdmUuICBVcGRhdGUgYWxsIHVzZXJzLgoJKE9CSl9ESVIpOiBEZWZpbmUgaXQgaGVyZS4KCgkqIHNyYy8qL21vZHVsZS5tazogQ2hhbmdlCgoJICAgIG1ha2VfbW9kdWxlX2xpc3Q6IGZvbwoJICAgIGZvbzogLi4uCgoJdG8KCgkgICAgRlRNT0RVTEVfSF9DT01NQU5EUyArPSBGT08KCSAgICBkZWZpbmUgRk9PCgkgICAgLi4uCgkgICAgZW5kZWYKCglpbiBhbGwgZmlsZXMuICBgRlRNT0RVTEVfSF9DT01NQU5EUycgaXMgdXNlZCBpbiBgRlRNT0RVTEVfSF9DUkVBVEUnLgoKCSogc3JjL2Jhc2UvcnVsZXMubWsgKEJBU0VfRVhUX1NSQyk6IFVzZSBCQVNFX0VYVEVOU0lPTlMuCgoJKiBidWlsZHMvdW5peC9kZXRlY3QubWsgKHNldHVwKTogQWx3YXlzIGV4ZWN1dGUgYGNvbmZpZ3VyZScgc2NyaXB0LgoJKGhhdmVfbWspOiBSZW5hbWUgdG8uLi4KCShoYXZlX01ha2VmaWxlKTogVGhpcy4KCURvbid0IHVzZSBgc3RyaXAnIGZ1bmN0aW9uLgoKCSogYnVpbGRzL3VuaXgvdW5peC5tazogSW5jbHVkZSBgaW5zdGFsbC5taycgb25seSBpZiBCVUlMRF9QUk9KRUNUIGlzCglkZWZpbmVkLgoJKGhhdmVfbWspOiBEb24ndCB1c2UgYHN0cmlwJyBmdW5jdGlvbi4KCVRlc3QgZm9yIHVuaXgtZGVmLm1rIGluIE9CSl9ESVIsIG5vdCBCVUlMRF9ESVIgKGFuZCBpbnZlcnQgdGhlIHRlc3QKCWFjY29yZGluZ2x5KS4KCgkqIGJ1aWxkcy91bml4L2luc3RhbGwubWsgKGluc3RhbGwsIHVuaW5zdGFsbCk6IEhhbmRsZSBgZnRtb2R1bGUuaCcuCgoJKiBidWlsZHMvb3MyL29zMi1kZXYubWssIGJ1aWxkcy91bml4L3VuaXgtZGV2Lm1rLAoJYnVpbGRzL3dpbjMyL3czMi1iY2NkLm1rLCBidWlsZHMvd2luMzIvdzMyLWRldi5tazogRG9uJ3QgZGVmaW5lCglCVUlMRF9ESVIgYnV0IERFVkVMX0RJUiBmb3IgZGV2ZWxvcG1lbnQgaGVhZGVyIGZpbGVzLgoKCSogYnVpbGRzL2Fuc2kvYW5zaS1kZWYubWsgKFRPUF9ESVIsIE9CSl9ESVIpLAoJYnVpbGRzL2Jlb3MvYmVvcy1kZWYubWsgKFRPUF9ESVIsIE9CSl9ESVIpLCBidWlsZHMvdW5peC91bml4LWRlZi5pbgoJKFRPUF9ESVIsIE9CSl9ESVIpOiBSZW1vdmVkLiAgRGVmaW5lZCBlbHNld2hlcmUuCgoJKiBidWlsZHMvZG9zL2Rvcy1kZWYubWsgKE9CSl9ESVIpLCBidWlsZHMvb3MyL29zMi1kZWYubWsgKE9CSl9ESVIpLAoJYnVpbGRzL3dpbjMyL3dpbjMyLWRlZi5tayAoT0JKX0RJUik6IFJlbW92ZWQuICBEZWZpbmVkIGVsc2V3aGVyZS4KCgkqIGJ1aWxkcy91bml4L3VuaXhkZGVmLm1rOiBEb24ndCBkZWZpbmUgQlVJTERfRElSIGJ1dCBERVZFTF9ESVIgZm9yCglkZXZlbG9wbWVudCBoZWFkZXIgZmlsZXMuCglEb24ndCBkZWZpbmUgUExBVEZPUk0uCgoJKiBjb25maWd1cmU6IENvcHkgYG1vZHVsZXMuY2ZnJyB0byBidWlsZGRpciBpZiBidWlsZGRpciAhPSBzcmNkaXIuCglVcGRhdGUgc25pcHBldCB0YWtlbiBmcm9tIGF1dG9jb25mJ3MgbTRzaC5tNCB0byBjdXJyZW50IENWUyB2ZXJzaW9uLgoJQmUgbW9yZSB2ZXJib3NlLgoKCSogaW5jbHVkZS9mcmVldHlwZS9jb25maWcvZnRtb2R1bGUuaDogQWRkIGNvbW1lbnRzIC0tIHRoaXMgZmlsZSBpcwoJbm8gbG9uZ2VyIHVzZWQgaWYgRnJlZVR5cGUgaXMgYnVpbHQgd2l0aCBHTlUgbWFrZS4KCgkqIGRvY3MvQ0hBTkdFUywgZG9jcy9DVVNUT01JWkUsIGRvY3MvSU5TVEFMTCwgZG9jcy9JTlNUQUxMLkFOWSwKCWRvY3MvSU5TVEFMTC5HTlUsIGRvY3MvSU5TVEFMTC5VTlg6IERvY3VtZW50IG5ldyBidWlsZCBtZWNoYW5pc20uCglPdGhlciBtaW5vciB1cGRhdGVzLgoKCSogbW9kdWxlcy50eHQ6IFJlbW92ZWQuICBDb250ZW50cyBpbmNsdWRlZCBpbiBgbW9kdWxlcy5jZmcnLgoKCgkqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvZnRtZW1vcnkuaCAoRlRfUUFsbG9jX0RlYnVnLAoJRlRfRnJlZV9EZWJ1ZykgW0ZUX1NUUklDVF9BTElBU0lOR106IEZpeCB0eXBvcy4KCgkqIHNyYy9iYXNlL2Z0ZGJnbWVtLmMgKEZUX0FsbG9jX0RlYnVnLCBGVF9SZWFsbG9jX0RlYnVnLAoJRlRfUUFsbG9jX0RlYnVnLCBGVF9RUmVhbGxvY19EZWJ1ZywgRlRfRnJlZV9EZWJ1ZykKCVtGVF9TVFJJQ1RfQUxJQVNJTkddOiBJbXBsZW1lbnQuCgoyMDA2LTAxLTMxICBDaGlhLUkgV3UgIDxiOTAyMDEwNDdAbnR1LmVkdS50dz4KCgkqIHNyYy9jZmYvY2Zmb2Jqcy5jIChjZmZfZmFjZV9pbml0KSwgc3JjL2NpZC9jaWRvYmpzLmMKCShjaWRfZmFjZV9pbml0KSwgc3JjL3Bmci9wZnJvYmpzLmMgKHBmcl9mYWNlX2luaXQpLAoJc3JjL3R5cGUxL3Qxb2Jqcy5jIChUMV9GYWNlX0luaXQpOiBTZXQgZmFjZS0+aGVpZ2h0IHRvIE1BWCgxLjIgKgoJdW5pdHNfcGVyX0VNLCBhc2NlbmRlciAtIGRlc2NlbmRlcikuCgoyMDA2LTAxLTMxICBDaGlhLUkgV3UgIDxiOTAyMDEwNDdAbnR1LmVkdS50dz4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvdDF0eXBlcy5oIChBRk1fRm9udEluZm8pLAoJc3JjL3BzYXV4L2FmbXBhcnNlLmMsIHNyYy90b29scy90ZXN0X2FmbS5jOiBSZWFkIGBGb250QkJveCcsCglgQXNjZW5kZXInLCBhbmQgYERlc2NlbmRlcicgZnJvbSBhbiBBRk0uCgoJKiBzcmMvdHlwZTEvdDFhZm0uYyAoVDFfUmVhZF9NZXRyaWNzKTogVXNlIHRoZSBtZXRyaWNzIGZyb20gdGhlIEFGTS4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvZnJlZXR5cGUuaCAoRlRfRmFjZVJlYyk6IE1lbnRpb24gdGhhdCBmaWVsZHMgbWF5CgliZSBjaGFuZ2VkIGFmdGVyIGZpbGUgYXR0YWNobWVudC4KCjIwMDYtMDEtMjggIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIHNyYy8qL21vZHVsZS5tayAoLlBIT05ZKTogQWRkLgoKMjAwNi0wMS0yNyAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogUkVBRE1FLCBkb2NzL0ZUTC5UWFQ6IEZpeCBlbWFpbCBhZGRyZXNzIGZvciBidWcgcmVwb3J0cy4KCU90aGVyIG1pbm9yIGZvcm1hdHRpbmcuCgoJKiBkZXZlbC9mdG9wdGlvbi5oOiBTeW5jaHJvbml6ZSB3aXRoCglpbmNsdWRlL2ZyZWV0eXBlL2NvbmZpZy9mdG9wdGlvbi5oLgoKCSogc3JjL2F1dG9maXQvbW9kdWxlLm1rIChhZGRfYXV0b2ZpdF9tb2R1bGUpLCBzcmMvYmRmL21vZHVsZS5tawoJKGFkZF9iZGZfbW9kdWxlKSwgc3JjL3R5cGU0Mi9tb2R1bGUubWsgKGFkZF90eXBlNDJfZHJpdmVyKTogRml4Cgl3aGl0ZXNwYWNlLgoKCSogc3JjL3Ntb290aC9tb2R1bGUubWsgKGFkZF9zbW9vdGhfcmVuZGVyZXIpOiBBZGQgbGNkIGFuZCBsY2R2CglyZW5kZXJlciBjbGFzc2VzLgoKMjAwNi0wMS0yNyAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCSogYnVpbGRzL3VuaXgvY29uZmlndXJlLmFjOiBGaXggYnVpbGQgcHJvYmxlbSBvbiBDeWd3aW4uCgoJKiBidWlsZHMvdW5peC9pbnN0YWxsLm1rIChpbnN0YWxsKTogRG9uJ3QgaW5zdGFsbCB0aGUgaW50ZXJuYWwKCWhlYWRlcnMsIGFuZCByZW1vdmUgZXhpc3Rpbmcgb25lcyBpZiBmb3VuZCBpbiB0aGUgdGFyZ2V0IGluc3RhbGwKCWRpcmVjdG9yeS4KCgkqIHNyYy9hdXRvZml0L2Fmd2FycC5jOiBBZGQgc2ltcGxlICNpZmRlZiB0byBwcmV2ZW50IGNvbXBpbGF0aW9uCglpZiB0aGUgd2FycCBoaW50ZXIgaXNuJ3QgYWN0aXZlIChpdCBzaG91bGRuJ3QsIHN0aWxsIGV4cGVyaW1lbnRhbCkuCgoJKiBKYW1maWxlLCBpbmNsdWRlL2ZyZWV0eXBlL2NvbmZpZy9mdG1vZHVsZS5oOiBSZW1vdmUgYGd4dmFsaWQnCglhbmQgYG90dmFsaWQnIGZyb20gdGhlIGxpc3Qgb2YgbW9kdWxlcyB0aGF0IGFyZSBsaW5rZWQgc3RhdGljYWxseQoJdG8gYSBnaXZlbiBGcmVlVHlwZSBsaWJyYXJ5LiAgRnVuY3Rpb25hbGl0eSBoYXMgYmVlbiBtb3ZlZCB0byB0aGUKCWBmdHZhbGlkJyBDVlMgbW9kdWxlLgoKCU5vdGUgYWxzbyB0aGF0IGN1cnJlbnQgTWFrZS1iYXNlZCBidWlsZCBzeXN0ZW0gc3RpbGwgY29tcGlsZXMgdGhlCgltb2R1bGVzIHRob3VnaC4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvY29uZmlnL2Z0b3B0aW9uLmggKEZUX1NUUklDVF9BTElBU0lORyk6IE5ldyBtYWNybwoJd2hpY2ggY29udHJvbHMgdGhlIGRlZmluaXRpb25zIG9mIHRoZSBtZW1vcnkgbWFuYWdlbWVudCBmdW5jdGlvbnMgdG8KCWF2b2lkIHdhcm5pbmdzIHdpdGggcmVjZW50IHZlcnNpb25zIG9mIEdDQy4gIFRoaXMgbWFjcm8gaXMgb25seSBoZXJlCgl0byBiZSBkaXNhYmxlZCwgaW4gY2FzZSB3ZSBkZXRlY3QgcHJvYmxlbXMgd2l0aCB0aGUgbmV3IHNjaGVtZS4KCglOT1RFOiBEaXNhYmxlIG1hY3JvIHRvIHVzZSB0aGUgbWVtb3J5IGRlYnVnZ2VyIC0tIHRoaXMgd2lsbCBiZSBmaXhlZAoJICAgICAgbGF0ZXIhCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL2Z0bWVtb3J5LmgsIHNyYy9iYXNlL2Z0dXRpbC5jIChGVF9BbGxvYywKCUZUX1FBbGxvYywgRlRfUmVhbGxvYywgRlRfUVJlYWxsb2MsIEZUX0ZyZWUpIFtGVF9TVFJJQ1RfQUxJQVNJTkddOgoJTmV3IHZlcnNpb25zLgoKCgkqIGJ1aWxkcy93aW4zMi92aXN1YWxjL2ZyZWV0eXBlLmRzcDogVXBkYXRpbmcgcHJvamVjdCBmaWxlIHRvCglkZWZpbmUgRlQyX0JVSUxEX0xJQlJBUlksIGFuZCByZW1vdmUgZ3h2YWxpZCArIG90dmFsaWQgbW9kdWxlcyBmcm9tCgljb21waWxhdGlvbi4KCgoJKiBidWlsZHMvZnJlZXR5cGUubWsgKEZUX0NGTEFHUyksIEphbWZpbGUgKERFRklORVMpOiBEZWZpbmUgdGhlCgltYWNybyBGVDJfQlVJTERfTElCUkFSWSB3aGVuIGNvbXBpbGluZyB0aGUgbGlicmFyeS4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvY29uZmlnL2Z0aGVhZGVyLmg6IFJlbW92ZSBpbmNsdXNpb25zIG9mIGludGVybmFsCgloZWFkZXJzIGV4Y2VwdCBpZiB0aGUgbWFjcm8gRlQyX0JVSUxEX0xJQlJBUlkgaXMgZGVmaW5lZC4KCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL3BzYXV4LmggKEFGTV9LZXJuUGFpciwgQUZNX1RyYWNrS2VybiwKCUFGTV9Gb250SW5mbyk6IE1vdmUgc3RydWN0dXJlIGRlY2xhcmF0aW9ucyB0by4uLgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL3QxdHlwZXMuaDogVGhpcyBmaWxlLgoKCgkqIChtYW55IGZpbGVzKTogRml4IGNvbXBpbGVyIHdhcm5pbmdzLgoJVmFyaW91cyBtaW5vciByZW9yZ2FuaXphdGlvbnMuCgoKCSogc3JjL2NmZi9jZmZsb2FkLmMgKGNmZl9mb250X2RvbmUpOiBEb24ndCBmcmVlIHN0YXRpYyBhcnJheQoJYHN1YmZvbnRzJy4KCgkqIHNyYy9vdHZhbGlkL290dmNvbW1uLmMgKG90dl9DbGFzc0RlZl92YWxpZGF0ZSksCglzcmMvb3R2YWxpZC9vdHZncG9zLmMgKG90dl94X3N4eSk6IEZpeCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24uCgoKCUdldCByaWQgb2Ygd3JpdGFibGUgc3RhdGljIHZhcmlhYmxlcyAoaS5lLiwgdGhlIHN0cmluZyB0YWJsZSkgaW4KCWFmbXBhcnNlLCBhbmQgZml4IGNvbXBpbGF0aW9uIGluIEZUMl9NVUxUSSBtb2RlLgoKCSogc3JjL3BzYXV4L2FmbXBhcnNlLmM6IEluY2x1ZGUgZnQyYnVpbGQuaCBhbmQgRlRfRlJFRVRZUEVfSC4KCShBRk1fTUFYX0FSR1VNRU5UUyk6IERlZmluZS4uLgoJKiBzcmMvcHNhdXgvYWZtcGFyc2UuaDogSGVyZS4KCSogc3JjL3BzYXV4L0phbWZpbGUgKF9zb3VyY2VzKTogQWRkIGFmbXBhcnNlLgoKCSogc3JjL3BzYXV4L3BzY29udi5jOiBJbmNsdWRlIHBzY29udi5oLgoKCSogc3JjL3R5cGUxL3QxYWZtLmM6IERvbid0IGluY2x1ZGUgRlRfSU5URVJOQUxfVFlQRTFfVFlQRVNfSCBidXQKCUZUX0lOVEVSTkFMX1BPU1RTQ1JJUFRfQVVYX0guCgkqIHNyYy90eXBlMS90MWFmbS5oOiBJbmNsdWRlIEZUX0lOVEVSTkFMX1RZUEUxX1RZUEVTX0guCgoyMDA2LTAxLTIzICBDaGlhLUkgV3UgIDxiOTAyMDEwNDdAbnR1LmVkdS50dz4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvZnJlZXR5cGUuaCAoRlRfU2VsZWN0X1NpemUpOiBSZW5hbWUgdGhlIHNlY29uZAoJYXJndW1lbnQgZnJvbSBgaWR4JyB0byBgc3RyaWtlX2luZGV4Jy4KCShGVF9TaXplX1JlcXVlc3RfVHlwZSk6IEFkZCBGVF9TSVpFX1JFUVVFU1RfVFlQRV9NQVggdG8gdGhlIGVuZCBvZgoJdGhpcyBlbnVtLgoKCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9mdG9ianMuaCAoRlRfUkVRVUVTVF9XSURUSCwKCUZUX1JFUVVFU1RfSEVJR0hUKTogTmV3IG1hY3JvcyB0byBnZXQgdGhlIHdpZHRoIGFuZCBoZWlnaHQgb2YgYQoJcmVxdWVzdCwgaW4gZnJhY3Rpb25hbCBwaXhlbHMuCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL2Z0b2Jqcy5oIChGVF9TZWxlY3RfTWV0cmljcywKCUZUX1JlcXVlc3RfTWV0cmljcyksIHNyYy9iYXNlL2Z0b2Jqcy5jIChGVF9TZWxlY3RfTWV0cmljcywKCUZUX1JlcXVlc3RfTWV0cmljcyk6IE5ldyBiYXNlIGZ1bmN0aW9ucyB0byBzZXQgdGhlIGZvbnQgbWV0cmljcy4gIFRoZXkKCXdlcmUgcGFydCBvZiBGVF9TZWxlY3RfU2l6ZS9GVF9SZXF1ZXN0X1NpemUgYW5kIGFyZSBtYWRlIGluZGVwZW5kZW50CglmdW5jdGlvbnMgc28gdGhhdCBtZXRyaWNzIGFyZSBub3Qgc2V0IGFnYWluIGFuZCBhZ2Fpbi4KCgkqIHNyYy9iYXNlL2Z0b2Jqcy5jIChGVF9TZWxlY3RfU2l6ZSwgRlRfUmVxdWVzdF9TaXplKTogTWV0cmljcyBhcmUgc2V0Cglvbmx5IHdoZW4gZHJpdmVyJ3Mgc2l6ZV9zZWxlY3Qvc2l6ZV9yZXF1ZXN0IGlzIE5VTEwuICBUaGF0IGlzLCBkcml2ZXJzCglzaG91bGQgc2V0IHRoZSBtZXRyaWNzIHRoZW1zZWx2ZXMuCgkoRlRfTWF0Y2hfU2l6ZSk6IFJvdW5kIGJlZm9yZSBtYXRjaGluZy4gIFRoaXMgd2FzIHdoYXQgd2UgZGlkIGFuZCBpdAoJZG9lcyBjYXVzZSBzb21lIHByb2JsZW1zIHdpdGhvdXQgcm91bmRpbmcuCgoJKiBzcmMvY2ZmL2NmZm9ianMuYyAoY2ZmX3NpemVfc2VsZWN0KSwgc3JjL3RydWV0eXBlL3R0ZHJpdmVyLmMKCSh0dF9zaXplX3NlbGVjdCk6IFNldCB0aGUgZm9udCBtZXRyaWNzLgoJcy9pbmRleC9zdHJpa2VfaW5kZXgvLgoJVGhlIHNjYWxlZCBtZXRyaWNzIGFyZSBhbHdheXMgcHJlZmVycmVkIG92ZXIgc3RyaWtlcycgbWV0cmljcywgZXZlbgoJd2hlbiBzb21lIHN0cmlrZSBpcyBzZWxlY3RlZC4gIFRoaXMgaXMgZG9uZSBiZWNhdXNlIHRoZSBzdHJpa2VzJwoJbWV0cmljcyBhcmUgbm90IHJlbGlhYmxlLCBlLmcuLCB0aGUgc2lnbiBvZiB0aGUgZGVzY2VuZGVyIGlzIHdyb25nIGZvcgoJc29tZSBmb250cy4KCgkqIHNyYy9jZmYvY2Zmb2Jqcy5jIChjZmZfc2l6ZV9yZXF1ZXN0KSwgc3JjL3RydWV0eXBlL3R0ZHJpdmVyLmMKCSh0dF9zaXplX3JlcXVlc3QpOiBTZXQgdGhlIGZvbnQgbWV0cmljcy4KCUNhbGwgY2ZmX3NpemVfc2VsZWN0L3R0X3NpemVfc2VsZWN0IHdoZW4gc29tZSBzdHJpa2UgaXMgbWF0Y2hlZC4KCgkqIHNyYy9iZGYvYmRmZHJpdnIuYywgc3JjL2NmZi9jZmZvYmpzLmMsIHNyYy9jaWQvY2lkb2Jqcy5jLAoJc3JjL3BjZi9wY2Zkcml2ci5jLCBzcmMvdHJ1ZXR5cGUvdHRkcml2ZXIuYywgc3JjL3R5cGUxL3Qxb2Jqcy5jLAoJc3JjL3R5cGUxL3Qxb2Jqcy5oLCBzcmMvdHlwZTQyL3Q0Mm9ianMuYywgc3JjL3dpbmZvbnRzL3dpbmZudC5jOgoJU2V0IHRoZSBmb250IG1ldHJpY3MuCglzL2luZGV4L3N0cmlrZV9pbmRleC8uCgoJKiBzcmMvdG9vbHMvdGVzdF9hZm0uYywgc3JjL3BzYXV4L3BzY29udi5jOiBPbGRlciB2ZXJzaW9ucyBvZiB0aGVzZQoJZmlsZXMgd2VyZSBjb21taXR0ZWQuICBKdXN0IGEgY2F0Y2gtdXAuCgkoUFNfQ29udl9Ub0ZpeGVkKTogUmVtb3ZlIHRoZSBgZ290bycuCgkoUFNfQ29udl9BU0NJSUhleERlY29kZSwgUFNfQ29udl9FZXhlY0RlY29kZSk6IFNwZWVkIHVwIGEgbGl0dGxlLgoKCSogc3JjL3NmbnQvdHRzYml0LmMgKHR0X2ZhY2VfbG9hZF9zYml0X3N0cmlrZXMsCgl0dF9mYWNlX2xvYWRfc3RyaWtlX21ldHJpY3MpLCBzcmMvc2ZudC90dHNiaXQwLmMKCSh0dF9mYWNlX2xvYWRfc2JpdF9zdHJpa2VzLCB0dF9mYWNlX2xvYWRfc3RyaWtlX21ldHJpY3MpOiBUaGUKCWFkdmVydGlzZWQgbWV0cmljcyBpbiBgYXZhaWxhYmxlX3NpemVzJyBhcmUgZGlmZmVyZW50IGZyb20gdGhvc2UKCWFjdHVhbGx5IHVzZWQuCgoyMDA2LTAxLTIzICBDaGlhLUkgV3UgIDxiOTAyMDEwNDdAbnR1LmVkdS50dz4KCgkqIHNyYy9wc2F1eC9wc2F1eC5jIHNyYy9wc2F1eC9wc2F1eG1vZC5jIHNyYy90eXBlMS90MWRyaXZlci5jOiBNYWtlCglBRk0gcGFyc2VyIG9wdGlvbmFsLCBjb250cm9sbGVkIGJ5IGBUMV9DT05GSUdfT1BUSU9OX05PX0FGTScuCgoyMDA2LTAxLTIyICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBidWlsZHMvdW5peC9pbnN0YWxsLXNoLCBidWlsZHMvdW5peC9ta2luc3RhbGxkaXJzOiBVcGRhdGVkIGZyb20KCWB0ZXhpbmZvJyBDVlMgbW9kdWxlIGF0IHNhdmFubmFoLmdudS5vcmcuCgoyMDA2LTAxLTIxICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBzcmMvYXV0b2ZpdC9ydWxlcy5tayAoQVVUT0ZfRFJWX1NSQyk6IEFkZCBhZndhcnAuYy4KCgkqIHNyYy9hdXRvZml0L2FmbG9hZGVyLmMgKGFmX2xvYWRlcl9sb2FkX2cpOiBNb3ZlIEFGX1VTRV9XQVJQRVIgdXAKCXRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmdzLgoKCSogc3JjL2F1dG9maXQvYWZ3YXJwLmMgKGFmX3dhcnBlcl9jb21wdXRlX2xpbmVfYmVzdCk6IFJlbW92ZQoJc2hhZG93aW5nIHZhcmlhYmxlIGRlY2xhcmF0aW9ucy4KCUZpeCB3YXJuaW5nIHBhcmFtZXRlcnMgYW5kIHJlcGxhY2UgcHJpbnRmIHdpdGggQUZfTE9HLgoJKGFmX3dhcnBlcl9jb21wdXRlKTogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KCjIwMDYtMDEtMjAgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCglBZGRpbmcgZXhwZXJpbWVudGFsIGltcGxlbWVudGF0aW9uIG9mIGB3YXJwIGhpbnRpbmcnIChuZXcgaGludGluZwoJYWxnb3JpdGhtIGZvciBncmF5LWxldmVsIGFuZCBMQ0QgcmVuZGVyaW5nKS4gIEl0IGlzIGRpc2FibGVkIGJ5CglkZWZhdWx0LCB5b3UgbmVlZCB0byAjZGVmaW5lIEFGX1VTRV9XQVJQRVIgaW4gYWZ0eXBlcy5oLgoKCSogc3JjL2F1dG9maXQvYWZoaW50cy5jIChhZl9nbHlwaF9oaW50c19zY2FsZV9kaW0pIFtBRl9VU0VfV0FSUEVSXToKCU5ldyBmdW5jdGlvbi4KCSogc3JjL2F1dG9maXQvYWZoaW50cy5oOiBVcGRhdGVkLgoKCSogc3JjL2F1dG9maXQvYWZsYXRpbi5jIFtBRl9VU0VfV0FSUEVSXTogSW5jbHVkZSBhZndhcnAuaC4KCShhZl9sYXRpbl9oaW50c19pbml0KSBbQUZfVVNFX1dBUlBFUl06IFJlc2V0IG1vZGUgdG8KCUZUX1JFTkRFUl9NT0RFX05PUk1BTCBpZiBhbiBMQ0QgbW9kZSBpcyBzZWxlY3RlZC4KCShhZl9sYXRpbl9oaW50c19hcHBseSkgW0FGX1VTRV9XQVJQRVJdOiBDYWxsIGFmX3dhcnBlcl9jb21wdXRlCglhcHByb3ByaWF0ZWx5LgoKCSogc3JjL2F1dG9maXQvYWZsb2FkZXIuYyAoYWZfbG9hZGVyX2xvYWRfZykgWyFBRl9VU0VSX1dBUlBFUl06CglJc29sYXRlIGNvZGUgZm9yIGFkanVzdGluZyBtZXRyaWNzLgoKCSogc3JjL2F1dG9maXQvYWZ0eXBlcy5oIChBRl9VU0VfV0FSUEVSKTogTmV3IG1hY3JvIChjb21tZW50ZWQgb3V0IGJ5CglkZWZhdWx0KS4KCgkqIHNyYy9hdXRvZml0L2Fmd2FycC5jLCBzcmMvYXV0b2ZpdC9hZndhcnAuaDogTmV3IGZpbGVzLgoKCSogc3JjL2F1dG9maXQvYXV0b2ZpdC5jIFtBRl9VU0VfV0FSUEVSXTogSW5jbHVkZSBhZndhcnAuYy4KCgkqIHNyYy9hdXRvZml0L0phbWZpbGUgKF9zb3VyY2VzKTogQWRkIGFmd2FycC4KCjIwMDYtMDEtMTkgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy9zZm50L3R0c2JpdDAuYyAodHRfZmFjZV9sb2FkX3N0cmlrZV9tZXRyaWNzKTogRml4IHNtYWxsIGJ1ZwoJdGhhdCBwcmV2ZW50ZWQgY29tcGlsYXRpb24gd2hlbiBGVF9PUFRJTUlaRV9NRU1PUlkgaXMgZGVmaW5lZC4KCjIwMDYtMDEtMTkgIEJyaWFuIFdlZWQgIDxid0BpbWFnaW5lbmdpbmUuY29tPgoKCSogYnVpbGRzL3dpbjMyL3Zpc3VhbGMvZnJlZXR5cGUuZHNwOiBVcGRhdGVkLgoKMjAwNi0wMS0xNyAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCVVzZSBwc2NtYXAgc2VydmljZSBpbiBDRkYgbW9kdWxlLgoKCSogc3JjL2NmZi9jZmZjbWFwLmMgKGNmZl9jbWFwX3VuaV9wYWlyX2NvbXBhcmUpOiBSZW1vdmVkLgoJKGNmZl9zaWRfdG9fZ2x5cGhfbmFtZSk6IE5ldyBmdW5jdGlvbi4KCShjZmZfY21hcF91bmljb2RlX2luaXQsIGNmZl9jbWFwX3VuaWNvZGVfZG9uZSwKCWNmZl9jbWFwX3VuaWNvZGVfY2hhcl9pbmRleCwgY2ZmX2NtYXBfdW5pY29kZV9jaGFyIG5leHQpOiBVc2UgcHNjbWFwCglzZXJ2aWNlLgoJKGNmZl9jbWFwX3VuaWNvZGVfY2xhc3NfcmVjKTogVXBkYXRlZC4KCSogc3JjL2NmZi9jZmZjbWFwLmggKENGRl9DTWFwVW5pY29kZSwgQ0ZGX0NNYXBfVW5pUGFpcik6IFJlbW92ZWQuCgoKCSogc3JjL3BzbmFtZXMvcHNtb2R1bGUuYyAocHNfdW5pY29kZXNfY2hhcl9uZXh0KTogRml4IGB1bmljb2RlJwoJcmV0dXJuIHZhbHVlLgoKCgkqIHNyYy9wc2F1eC9hZm1wYXJzZS5jIChhZm1fcGFyc2VyX3JlYWRfdmFscyk6IFVzZSBkb3VibGUgY2FzdGluZwoJdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZ3MgcmVnYXJkaW5nIHR5cGUtcHVubmluZy4KCjIwMDYtMDEtMTYgIENoaWEtSSBXdSAgPGI5MDIwMTA0N0BudHUuZWR1LnR3PgoKCSogc3JjL3BzYXV4L2FmbXBhcnNlLmMsIHNyYy9wc2F1eC9hZm1wYXJzZS5oOiBOZXcgZmlsZXMgd2hpY2gKCWltcGxlbWVudCBhbiBBRk0gcGFyc2VyLgoKCSogc3JjL3BzYXV4L3BzY29udi5jLCBzcmMvcHNhdXgvcHNjb252Lmg6IE5ldyBmaWxlcyB0byBwcm92aWRlCgljb252ZXJzaW9uIGZ1bmN0aW9ucyAoZS5nLiwgUFMgcmVhbCBudW1iZXIgPT4gRlRfRml4ZWQpIGZvciB0aGUKCVBTX1BhcnNlciBhbmQgQUZNX1BhcnNlci4gIFNvbWUgb2YgdGhlIGZ1bmN0aW9ucyBhcmUgdGFrZW4sIHdpdGgKCXNvbWUgbW9kaWZpY2F0aW9ucywgZnJvbSB0aGUgZmlsZSBwc29ianMuYy4KCgkqIHNyYy9wc2F1eC9wc29ianMuYzogVXNlIGZ1bmN0aW9ucyBmcm9tIHBzY29udi5jLgoKCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9wc2F1eC5oLCBzcmMvcHNhdXgvcHNhdXhtb2QuYzogQWRkCglgQUZNX1BhcnNlcicgdG8gdGhlIGBwc2F1eCcgc2VydmljZS4KCgkqIHNyYy9wc2F1eC9wc2F1eC5jLCBzcmMvcHNhdXgvcnVsZXMubWsgKFBTQVVYX0RSVl9TUkMpOiBJbmNsdWRlCgl0aG9zZSBuZXcgZmlsZXMuCgoJKiBzcmMvdG9vbHMvdGVzdF9hZm0uYzogQSB0ZXN0IHByb2dyYW0gZm9yIEFGTSBwYXJzZXIuCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL3NlcnZpY2VzL3N2a2Vybi5oOiBOZXcgZmlsZSBwcm92aWRpbmcgYQoJYEtlcm5pbmcnIHNlcnZpY2UuICBJdCBpcyBjdXJyZW50bHkgb25seSB1c2VkIHRvIGdldCB0aGUgdHJhY2sKCWtlcm5pbmcgaW5mb3JtYXRpb24uCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL2Z0c2Vydi5oIChGVF9TRVJWSUNFX0tFUk5JTkdfSCk6IE5ldwoJbWFjcm8uCgoJKiBzcmMvdHlwZTEvdDFkcml2ZXIuYywgc3JjL3R5cGUxL3Qxb2Jqcy5jLCBzcmMvdHlwZTEvdDFhZm0uYywKCXNyYy90eXBlMS90MWFmbS5oOiBVcGRhdGUgdG8gdXNlIHRoZSBBRk0gcGFyc2VyLgoJUHJvdmlkZSB0aGUgYEtlcm5pbmcnIHNlcnZpY2UuCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ZyZWV0eXBlLmgsIHNyYy9iYXNlL2Z0b2Jqcy5jOiBOZXcgQVBJCglgRlRfR2V0X1RyYWNrX0tlcm5pbmcnLgoKMjAwNi0wMS0xNSAgQ2hpYS1JIFd1ICA8YjkwMjAxMDQ3QG50dS5lZHUudHc+CgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL2Z0b2Jqcy5oLCBzcmMvYmFzZS9mdG9ianMuYywKCXNyYy9iZGYvYmRmZHJpdnIuYywgc3JjL2NmZi9jZmZnbG9hZC5jLCBzcmMvY2lkL2NpZGdsb2FkLmMsCglzcmMvcGNmL3BjZmRyaXZyLmMsIHNyYy90eXBlMS90MWdsb2FkLmMsIHNyYy93aW5mb250cy93aW5mbnQuYzoKCXMvZnRfZmFrZV92ZXJ0aWNhbF9tZXRyaWNzL2Z0X3N5bnRoZXNpemVfdmVydGljYWxfbWV0cmljcy8uCgoJKiBkb2NzL0NIQU5HRVM6IE1lbnRpb24gdGhhdCB2ZXJ0aWNhbCBtZXRyaWNzIGFyZSBzeW50aGVzaXplZCBmb3IKCWZvbnRzIG5vdCBoYXZpbmcgdGhpcyBpbmZvLgoKMjAwNi0wMS0xNSAgQ2hpYS1JIFd1ICA8YjkwMjAxMDQ3QG50dS5lZHUudHc+CgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL2Z0b2Jqcy5oIChmdF9mYWtlX3ZlcnRpY2FsX21ldHJpY3MpLAoJc3JjL2Jhc2UvZnRvYmpzLmMgKGZ0X2Zha2VfdmVydGljYWxfbWV0cmljcyk6IE5ldyBmdW5jdGlvbiB0byBmYWtlCgl2ZXJ0aWNhbCBtZXRyaWNzLgoKCSogc3JjL2NmZi9jZmZnbG9hZC5jLCBzcmMvY2lkL2NpZGdsb2FkLmMsIHNyYy9wY2YvcGNmZHJpdnIuYywKCXNyYy90eXBlMS90MWdsb2FkLmMsIHNyYy93aW5mb250cy93aW5mbnQuYzogRmFrZSB2ZXJ0aWNhbCBtZXRyaWNzLAoJd2hpY2ggYXJlIG1vbm90b25lLgoKCSogc3JjL3RydWV0eXBlL3R0Z2xvYWQuYyAoY29tcHV0ZV9nbHlwaF9tZXRyaWNzKTogU29tZSBmaXhlcyBhbmQKCWZvcm1hdHRpbmdzIGluIHZlcnRpY2FsIG1ldHJpY3MgZmFraW5nLiAgVGhlcmUgaXMgc3RpbGwgcm9vbSBmb3IKCWltcHJvdmVtZW50cyAoYW5kIHNvIGRvZXMgdGhlIENGRiBtb2R1bGUpLgoKMjAwNi0wMS0xNSAgQ2hpYS1JIFd1ICA8YjkwMjAxMDQ3QG50dS5lZHUudHc+CgoJKiBzcmMvYmRmL2JkZmRyaXZyLmMgKEJERl9HbHlwaF9Mb2FkKSwgc3JjL3BjZi9wY2Zkcml2ci5jCgkoUENGX0dseXBoX0xvYWQpLCBzcmMvd2luZm9udHMvd2luZm50LmMgKEZOVF9Mb2FkX0dseXBoKTogRG9uJ3Qgc2V0Cgl0aGUgbGluZWFyIGFkdmFuY2UgZmllbGRzIGFzIHRoZXkgYXJlIG9ubHkgdXNlZCBieSB0aGUgb3V0bGluZQoJZ2x5cGhzLgoKCSogaW5jbHVkZS9mcmVldHlwZS9mcmVldHlwZS5oOiBEb2N1bWVudGF0aW9uIHVwZGF0ZXMgYW5kCgljbGFyaWZpY2F0aW9ucy4KCVRoZSBtZWFuaW5nIG9mIEZUX0xPQURfRk9SQ0VfQVVUT0hJTlQgaXMgY2hhbmdlZCBzbyB0aGF0IG5vIHJlYWwKCWNoYW5nZSBuZWVkIGJlIG1hZGUgdG8gdGhlIGNvZGUuCgoJKiBzcmMvYmFzZS9mdG9ianMuYyAoRlRfTG9hZF9HbHlwaCk6IFJlc29sdmUgZmxhZyBkZXBlbmRlbmNpZXMgYW5kCglkZWNpZGUgd2hldGhlciB0byB1c2UgdGhlIGF1dG8taGludGVyIGFjY29yZGluZyB0byBkb2N1bWVudGF0aW9uLgoJVGhlcmUgc2hvdWxkIHRvIGJlIG5vIHJlYWwgZGlmZmVyZW5jZS4KCVNvbWUgY2hlY2tzIChlLmcuLCBpcyB0ZXh0IGhlaWdodCBwb3NpdHZlPykgYWZ0ZXIgdGhlIGdseXBoIGlzCglsb2FkZWQuCgkoRlRfU2VsZWN0X1NpemUsIEZUX1JlcXVlc3RfU2l6ZSk6IFNjYWxlcyBhcmUgc2V0IHRvIHdyb25nIHZhbHVlcy4KCUJlIGNhcmVmdWwgdGhhdCBzY2FsZXMgd29uJ3QgYmUgbmVnYXRpdmUuCgoyMDA2LTAxLTE0ICBDaGlhLUkgV3UgIDxiOTAyMDEwNDdAbnR1LmVkdS50dz4KCgkqIGRvY3MvQ0hBTkdFUzogTWVudGlvbiB0aGUgc2l6ZSBzZWxlY3Rpb24gY2hhbmdlLgoKCSogc3JjL2JkZi9iZGZkcml2ci5jIChCREZfU2l6ZV9SZXF1ZXN0LCBCREZfU2l6ZV9TZWxlY3QpLAoJc3JjL3BjZi9wY2Zkcml2ci5jIChQQ0ZfU2l6ZV9SZXF1ZXN0LCBQQ0ZfU2l6ZV9TZWxlY3QpLAoJc3JjL3dpbmZvbnRzL3dpbmZudC5jIChGTlRfU2l6ZV9SZXF1ZXN0LCBGTlRfU2l6ZV9TZWxlY3QpOiBEbyBzaXplCgltYXRjaGluZyBmb3IgcmVxdWVzdHMgb2YgdHlwZSBOT01JTkFMIGFuZCBSRUFMX0RJTS4KCgkqIHNyYy93aW5mb250cy93aW5mbnQuYyAoRk5UX0ZhY2VfSW5pdCk6IFByaW50IHRyYWNlIG1lc3NhZ2Ugd2hlbgoJYHBpeGVsX2hlaWdodCcgaXMgdXNlZCBmb3Igbm9taW5hbCBoZWlnaHQuCgoJKiBzcmMvYmFzZS9mdG9ianMuYyAoRlRfUmVxdWVzdF9TaXplKTogQ2FsbCBgRlRfTWF0Y2hfU2l6ZScgaWYgdGhlCglmYWNlIGlzIGJpdG1hcCBvbmx5IGFuZCBkcml2ZXIgZG9lc24ndCBwcm92aWRlIGByZXF1ZXN0X3NpemUnLiAgVGhpcwoJaXMgYWRkZWQgbWVyZWx5IGZvciBjb21wbGV0aW9uIGFzIG5vIGRyaXZlciBzYXRpc2ZpZXMgdGhlIGNvbmRpdGlvbnMuCgoyMDA2LTAxLTEzICBDaGlhLUkgV3UgIDxiOTAyMDEwNDdAbnR1LmVkdS50dz4KCglJbnRyb2R1Y2UgbmV3IHNpemUgc2VsZWN0aW9uIGludGVyZmFjZS4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvZnRkcml2ZXIuaCAoc3RydWN0IEZUX0RyaXZlcl9DbGFzc1JlYyk6CglSZXBsYWNlIGBzZXRfY2hhcl9zaXplcycgYW5kIGBzZXRfcGl4ZWxfc2l6ZXMnIGJ5IGByZXF1ZXN0X3NpemUnIGFuZAoJYHNlbGVjdF9zaXplJy4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvZnJlZXR5cGUuaCAoRlRfU2VsZWN0X1NpemUsIEZUX1NpemVfUmVxdWVzdF9UeXBlLAoJRlRfU2l6ZV9SZXF1ZXN0LCBGVF9SZXF1ZXN0X1NpemUsIEZUX1NlbGVjdF9TaXplKSwgc3JjL2Jhc2UvZnRvYmpzLmMKCShGVF9TZWxlY3RfU2l6ZSwgRlRfUmVxdWVzdF9TaXplKTogQVBJIGFkZGl0aW9ucyB0byBleHBvcnQgdGhlIG5ldwoJc2l6ZSBzZWxlY3Rpb24gaW50ZXJmYWNlLgoKCSogc3JjL2Jhc2UvZnRvYmpzLmMgKEZUX1NldF9DaGFyX1NpemUsIEZUX1NldF9QaXhlbF9TaXplcyk6IFVzZQoJYEZUX1JlcXVlc3RfU2l6ZScuCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL2Z0b2Jqcy5oIChGVF9NYXRjaF9TaXplKSwKCXNyYy9iYXNlL2Z0b2Jqcy5jIChGVF9NYXRjaF9TaXplKTogTmV3IGZ1bmN0aW9uIHRvIG1hdGNoIGEgc2l6ZQoJcmVxdWVzdCBhZ2FpbnN0IGBhdmFpbGFibGVfc2l6ZXMnLiAgRHJpdmVycyBzdXBwb3J0aW5nIGJpdG1hcCBzdHJpa2VzCgljYW4gdXNlIHRoaXMgZnVuY3Rpb24gdG8gaW1wbGVtZW50IGByZXF1ZXN0X3NpemUnLgoKCSogc3JjL2JkZi9iZGZkcml2ci5jLCBzcmMvY2lkL2NpZG9ianMuYywgc3JjL2NpZC9jaWRvYmpzLmgsCglzcmMvY2lkL2NpZHJpdmVyLmMsIHNyYy9wY2YvcGNmZHJpdnIuYywgc3JjL3R5cGUxL3QxZHJpdmVyLmMsCglzcmMvdHlwZTEvdDFvYmpzLmMsIHNyYy90eXBlMS90MW9ianMuaCwgc3JjL3R5cGU0Mi90NDJkcml2ci5jLAoJc3JjL3R5cGU0Mi90NDJvYmpzLmMsIHNyYy90eXBlNDIvdDQyb2Jqcy5oLCBzcmMvd2luZm9udHMvd2luZm50LmM6CglVcGRhdGUgdG8gbmV3IHNpemUgc2VsZWN0aW9uIGludGVyZmFjZS4KCgkqIHNyYy9jZmYvY2ZmZHJpdnIuYywgc3JjL2NmZi9jZmZnbG9hZC5jLCBzcmMvY2ZmL2NmZm9ianMuYywKCXNyYy9jZmYvY2Zmb2Jqcy5oLCBzcmMvdHJ1ZXR5cGUvdHRkcml2ZXIuYywgc3JjL3RydWV0eXBlL3R0Z2xvYWQuYywKCXNyYy90cnVldHlwZS90dG9ianMuYywgc3JjL3RydWV0eXBlL3R0b2Jqcy5oOiBVcGRhdGUgdG8gbmV3IHNpemUKCXNlbGVjdGlvbiBpbnRlcmZhY2UuCglNYWtlIGBzdHJpa2VfaW5kZXgnIEZUX1VMb25nIGFuZCBhbHdheXMgZGVmaW5lZC4KCVVzZSBgbG9hZF9zdHJpa2VfbWV0cmljcycgcHJvdmlkZWQgYnkgU0ZOVCBpbnRlcmZhY2UuCgoyMDA2LTAxLTEzICBDaGlhLUkgV3UgIDxiOTAyMDEwNDdAbnR1LmVkdS50dz4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvc2ZudC5oIChTRk5UX0ludGVyZmFjZSk6IE5ldyBtZXRob2QKCWBsb2FkX3N0cmlrZV9tZXRyaWNzJyB1c2VkIHRvIGxvYWQgdGhlIHN0cmlrZSdzIG1ldHJpY3MuCgoJKiBzcmMvc2ZudC9zZmRyaXZlci5jLCBzcmMvc2ZudC90dHNiaXQuYywgc3JjL3NmbnQvdHRzYml0LmgsCglzcmMvc2ZudC90dHNiaXQwLmM6IE5ldyBmdW5jdGlvbiBgdHRfZmFjZV9sb2FkX3N0cmlrZV9tZXRyaWNzJy4KCgkqIHNyYy9wZnIvcGZyb2Jqcy5jIChwZnJfZmFjZV9pbml0KTogU2V0IEZUX0JpdG1hcF9TaXplIGNvcnJlY3RseS4KCgkqIHNyYy93aW5mb250cy93aW5mbnQuYyAoRk5UX0ZhY2VfSW5pdCk6IFVzZSBgbm9taW5hbF9wb2ludF9zaXplJyBmb3IKCW5vbWluYWwgc2l6ZSB1bmxlc3MgaXQgaXMgb2J2aW91c2x5IGluY29ycmVjdC4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvZnJlZXR5cGUuaCAoRlRfQml0bWFwX1NpemUpOiBVcGRhdGUgdGhlIGNvbW1lbnRzIG9uCglGTlQgZHJpdmVyLgoKMjAwNi0wMS0xMiAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCVByZXBhcmUgdXNlIG9mIHBzY21hcCBzZXJ2aWNlIHdpdGhpbiBDRkYgbW9kdWxlLgoKCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9zZXJ2aWNlcy9zdnBzY21hcC5oOiBJbmNsdWRlCglGVF9JTlRFUk5BTF9PQkpFQ1RTX0guCgkoUFNfVW5pY29kZV9JbmRleF9GdW5jKTogUmVtb3ZlZC4gIFVudXNlZC4KCShQU19NYWNpbnRvc2hfTmFtZV9GdW5jKTogUmVuYW1lZCB0by4uLgoJKFBTX01hY2ludG9zaF9OYW1lRnVuYyk6IFRoaXMuCglVcGRhdGUgYWxsIGNhbGxlcnMuCgkoUFNfQWRvYmVfU3RkX1N0cmluZ3NfRnVuYyk6IFJlbmFtZWQgdG8uLi4KCShQU19BZG9iZV9TdGRfU3RyaW5nc0Z1bmMpOiBUaGlzLgoJVXBkYXRlIGFsbCBjYWxsZXJzLgoJKFBTX1VuaWNvZGVzUmVjKTogVGhpcyBpcyB0aGUgZm9ybWVyIGBQU19Vbmljb2Rlcycgc3RydWN0dXJlLgoJQWRkIGBjbWFwJyBtZW1iZXIuCglVcGRhdGUgYWxsIGNhbGxlcnMuCgkoUFNfVW5pY29kZXMpOiBUaGlzIGlzIG5vdyBhIHR5cGVkZWYnZCBwb2ludGVyIHRvIFBTX1VuaWNvZGVzUmVjLgoJVXBkYXRlIGFsbCBjYWxsZXJzLgoJKFBTX0dseXBoX05hbWVGdW5jKTogTmV3IHR5cGVkZWYuCgkoUFNfVW5pY29kZXNfSW5pdEZ1bmMpOiBDaGFuZ2UgYXJndW1lbnRzIHRvIGV4cGVjdCBhIGZ1bmN0aW9uCglhbmQgZ2VuZXJpYyBkYXRhIHBvaW50ZXIgd2hpY2ggcmV0dXJucyBhIGdseXBoIG5hbWUgZnJvbSBhIGdpdmVuCglpbmRleC4KCgkqIHNyYy9wc25hbWVzL3BzbW9kdWxlLmMgKHBzX3VuaWNvZGVzX2luaXQsIHBzX3VuaWNvZGVzX2NoYXJfaW5kZXgsCglwc191bmljb2Rlc19jaGFyX25leHQsIHBzY21hcHNfaW50ZXJmYWNlKTogVXBkYXRlZC4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvdDF0eXBlcy5oIChUMV9GYWNlUmVjKTogVXBkYXRlZC4KCgkqIHNyYy9wc2F1eC90MWNtYXAuaCAoVDFfQ21hcFN0ZFJlYyk6IFVwZGF0ZWQuCgkoVDFfQ21hcFVuaWNvZGUsIFQxX0NtYXBVbmljb2RlUmVjKTogUmVtb3ZlZC4KCgkqIHNyYy9wc2F1eC90MWNtYXAuYyAodDFfZ2V0X2dseXBoX25hbWUpOiBOZXcgY2FsbGJhY2sgZnVuY3Rpb24uCgkodDFfY21hcF91bmljb2RlX2luaXQsIHQxX2NtYXBfdW5pY29kZV9kb25lLAoJdDFfY21hcF91bmljb2RlX2NoYXJfaW5kZXgsIHQxX2NtYXBfdW5pY29kZV9jaGFyX25leHQsCgl0MV9jbWFwX3VuaWNvZGVfY2xhc3NfcmVjKTogVXBkYXRlZC4KCgkqIHNyYy90eXBlNDIvdDQydHlwZXMuaCAoVDQyX0ZhY2VSZWMpOiBVcGRhdGVkLgoKMjAwNi0wMS0xMSAgc3V6dWtpIHRvc2hpeWEgIDxtcHN1enVraUBoaXJvc2hpbWEtdS5hYy5qcD4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvZnRtYWMuaDogQWRkIGRlY2xhcmF0aW9uIG9mIG5ldyBmdW5jdGlvbnMKCUZUX05ld19GYWNlX0Zyb21fRlNSZWYgYW5kIEZUX0dldEZpbGVfRnJvbV9NYWNfQVRTX05hbWUgdGhhdAoJd2VyZSBpbnRyb2R1Y2VkIGJ5IHRoZSBqdW1ibyBwYXRjaCBvbiAgMjAwNi0wMS0xMS4KCjIwMDYtMDEtMTEgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCglGaXggU2F2YW5uYWggYnVnICMxNTA1NiBhbmQgdXNlIHBzY21hcCBzZXJ2aWNlIGluIHBzYXV4IG1vZHVsZS4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvc2VydmljZXMvc3Zwc2NtYXAuaCAoUFNfVW5pTWFwKTogVXNlCglGVF9VSW50MzIgZm9yIGBnbHlwaF9pbmRleCcuCgkoUFNfVW5pY29kZXNfSW5pdEZ1bmMpOiBVc2UgRlRfU3RyaW5nIGZvciBgZ2x5cGhfbmFtZXMnLgoJKFBTX1VuaWNvZGVzX0NoYXJJbmRleEZ1bmMpOiBVc2UgRlRfVUludDMyIGZvciBgdW5pY29kZScuCgkoUFNfVW5pY29kZXNfQ2hhck5leHRGdW5jKTogTWFrZSBzZWNvbmQgYXJndW1lbnQgYSBwb2ludGVyIHRvCglGVF9VSW50MzIuCgoJKiBzcmMvcHNuYW1lcy9wc21vZHVsZS5jIChWQVJJQU5UX0JJVCwgQkFTRV9HTFlQSCk6IE5ldyBtYWNyb3MuCgkocHNfdW5pY29kZV92YWx1ZSk6IFNldCBWQVJJQU5UX0JJVCBpbiByZXR1cm4gdmFsdWUgaWYgZ2x5cGggaXMgYQoJdmFyaWFudCBnbHlwaCAodGhpcyBpcywgaXQgaGFzIG5vbi1sZWFkaW5nIGAuJyBpbiBpdHMgbmFtZSkuCgkoY29tcGFyZV91bmlfbWFwcyk6IFNvcnQgYmFzZSBnbHlwaHMgYmVmb3JlIHZhcmlhbnQgZ2x5cGhzLgoJKHBzX3VuaWNvZGVzX2luaXQpOiBVc2UgRlRfU3RyaW5nIGZvciBgZ2x5cGhfbmFtZXMnIGFyZ3VtZW50LgoJUmVhbGxvY2F0ZSBvbmx5IGlmIG51bWJlciBvZiB1c2VkIGVudHJpZXMgaXMgbXVjaCBzbWFsbGVyLgoJVXBkYXRlZCB0byBoYW5kbGUgdmFyaWFudCBnbHlwaHMuCgkocHNfdW5pY29kZXNfY2hhcl9pbmRleCwgcHNfdW5pY29kZXNfY2hhcl9uZXh0KTogUHJlZmVyIGJhc2UgZ2x5cGhzCglvdmVyIHZhcmlhbnQgZ2x5cGhzLgoJU2ltcGxpZnkgY29kZS4KCgkqIHNyYy9wc2F1eC90MWNtYXAuYyAodDFfY21hcF91bmlfcGFpcl9jb21wYXJlKTogUmVtb3ZlZC4KCSh0MV9jbWFwX3VuaWNvZGVfaW5pdCwgdDFfY21hcF91bmljb2RlX2NoYXJfaW5kZXgsCgl0MV9jbWFwX3VuaWNvZGVfY2hhcl9uZXh0KTogVXNlIHBzY21hcCBzZXJ2aWNlLgoJKHQxX2NtYXBfdW5pY29kZV9kb25lKTogVXBkYXRlZC4KCgkqIHNyYy9wc2F1eC90MWNtYXAuaCAoVDFfQ01hcFVuaVBhaXIpOiBSZW1vdmVkLgoJKFQxX0NNYXBVbmljb2RlKTogVXNlIFBTX1VuaWNvZGVzIHN0cnVjdHVyZS4KCjIwMDYtMDEtMTEgIHN1enVraSB0b3NoaXlhICA8bXBzdXp1a2lAaGlyb3NoaW1hLXUuYWMuanA+CgoJSnVtYm8gcGF0Y2ggdG8gZml4IGBkZXByZWNhdGVkJyB3YXJuaW5nIG9mIGNyb3NzLWJ1aWxkIGZvciBUaWdlciBvbgoJSW50ZWwsIGFzIHJlcG9ydGVkIGJ5IFNlYW4gTWNCcmlkZSA8c2VhbkByb2d1ZS1yZXNlYXJjaC5jb20+IG9uCgkyMDA1LTA4LTI0LgoKCSogc3JjL2Jhc2UvZnRtYWMuYzogSGVhdnkgY2hhbmdlIHRvIGJ1aWxkIHdpdGhvdXQgZGVwcmVjYXRlZCBDYXJib24KCWZ1bmN0aW9ucyBvbiBUaWdlci4KCgkqIGJ1aWxkcy91bml4L2NvbmZpZ3VyZS5hYzogQWRkIG9wdGlvbnMgYW5kIGF1dG9jaGVja3MgZm9yIENhcmJvbgoJZnVuY3Rpb25zIGF2YWlsYWJpbGl0aWVzLCBmb3IgTWFjT1MgWC4KCgkqIGJ1aWxkcy9tYWMvYXNjaWkybXB3LnB5OiBBZGQgY29udmVydGVyIGZvciBjaGFyYWN0ZXIgYFwzMDUnLgoJKiBidWlsZHMvbWFjL0ZyZWVUeXBlLm02OGtfe2ZhcnxjZm19Lm1ha2UudHh0OiBBZGQgY29uZGl0aW9uYWwKCW1hY3JvcyB0byBhdm9pZCB1bmF2YWlsYWJsZSBmdW5jdGlvbnMuCglmdG1hYy5jIG11c3QgYmUgY29tcGlsZWQgd2l0aG91dCBgLXN0cmljdCBhbnNpJywgYmVjYXVzZSBpdCBkaXNhYmxlcwoJY3BwIG1hY3JvIHRvIHVzZSBUb29sQm94IHN5c3RlbSBjYWxsLgoKCSogYnVpbGRzL21hYy9GcmVlVHlwZS5wcGNfe2NsYXNzaWN8Y2FyYm9ufS5tYWtlLnR4dDogQWRkIGNvbmRpdGlvbmFsCgltYWNyb3MgdG8gYXZvaWQgdW5hdmFpbGFibGUgZnVuY3Rpb25zLgoKCSogYnVpbGRzL21hYy9SRUFETUU6IERldGFpbGVkIG5vdGVzIG9uIGZ1bmN0aW9uIGF2YWlsYWJpbGl0aWVzLgoKCSogZG9jcy9DSEFOR0VTOiBOb3RlcyBhYm91dCAocG9zc2libGUpIGluY29tcGF0aWJpbGl0aWVzLgoKMjAwNi0wMS0wOCAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogZG9jcy9DSEFOR0VTOiBVcGRhdGVkLgoKMjAwNi0wMS0wOCAgSHV3IEQgTSBEYXZpZXMgIDxoLmRhdmllczFAcGh5c2ljcy5veC5hYy51az4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvZnRtb2RhcGkuaCAoRlRfTW9kdWxlX0dldF9GbGFncyk6IE5ldwoJZGVjbGFyYXRpb24uCgoJKiBzcmMvYmFzZS9mdG9ianMuYyAoRlRfTW9kdWxlX0dldF9GbGFncyk6IE5ldyBmdW5jdGlvbi4KCjIwMDYtMDEtMDcgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIHNyYy9wY2YvcGNmcmVhZC5jIChwY2ZfZ2V0X2JpdG1hcHMpOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlCglgYml0bWFwcycuICBSZXBvcnRlZCBieSBZdSBMZWkgPHl1bGVpMEBnbWFpbC5jb20+LgoKCSogc3JjL2Jhc2UvZnR1dGlsLmMgKGZ0X2hpZ2hwb3cyKTogcy9GVF9CQVNFL0ZUX0JBU0VfREVGLy4KCVJlcG9ydGVkIGJ5IE5pZWxzIEJvbGR0IDxuaWVsc2JvbGR0QGdtYWlsLmNvbT4uCgoyMDA1LTEyLTI4ICBzdXp1a2kgdG9zaGl5YSAgPG1wc3V6dWtpQGhpcm9zaGltYS11LmFjLmpwPgoKCSogc3JjL3NmbnQvc2ZudC90dGJkZi5jOiBBZGQgbmV3bGluZSAnXG4nIHRvIHRoZSBlbmQgb2YgZmlsZSwgZm9yCglNUFcgY29tcGlsZXIuCgoyMDA1LTEyLTIzICBEYXZpZCBUdXJuZXIgIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJKiBKYW1maWxlIChSZWZEb2MpLCBkb2NzL3JlZmVyZW5jZS9SRUFETUU6IEZpeCBpdCBzbyB0aGF0IGBqYW0KCXJlZmRvYycgd29ya3MgY29ycmVjdGx5IHRvIGdlbmVyYXRlIHRoZSBBUEkgcmVmZXJlbmNlIGluCglgZG9jcy9yZWZlcmVuY2UnLgoKCSogc3JjL3Rvb2xzL2RvY21ha2VyL3RvaHRtbC5weSAocHJpbnRfaHRtbF9maWVsZCwKCXByaW50X2h0bWxfZmllbGRfbGlzdCk6IFVwZGF0ZSB0byBvdXRwdXQgbmljZXIgZmllbGRzIGxpc3RzIGluIHRoZQoJQVBJIHJlZmVyZW5jZS4KCgkqIHNyYy9iYXNlL2Z0b2Jqcy5jIChGVF9Mb2FkX0dseXBoKTogRlRfTE9BRF9UQVJHRVRfTElHSFQgbm93Cglmb3JjZXMgYXV0by1oaW50aW5nLgoKCSogZnJlZXR5cGUvZnJlZXR5cGUuaDogVXBkYXRpbmcgdGhlIGRvY3VtZW50YXRpb24gZm9yCglGVF9MT0FEX1RBUkdFVF9YWFggYW5kIEZUX1JlbmRlcl9Nb2RlIHZhbHVlcy4KCjIwMDUtMTItMjMgIHN1enVraSB0b3NoaXlhICA8bXBzdXp1a2lAaGlyb3NoaW1hLXUuYWMuanA+CgoJKiBzcmMvYmFzZS9mdG1hYy5jIChGVF9OZXdfRmFjZV9Gcm9tX1N1aXRjYXNlKTogQ291bnQgc2NhbGFibGUgZmFjZXMKCWluIHN1cHBvcnRlZCBmb3JtYXRzIChzZm50LCBMV0ZOKSBvbmx5LCBhbmQgaWdub3JlIGJpdG1hcCBmYWNlcyBpbgoJdW5zdXBwb3J0ZWQgZm9ybWF0cyAoZmJpdCwgTkZOVCkuICBUaGUgbnVtYmVyIG9mIGF2YWlsYWJsZSBmYWNlcyBhcmUKCXBhc3NlZCB2aWEgZmFjZS0+bnVtX2ZhY2VzLiAgSWYgYml0bWFwIGZhY2VzIGFyZSBlbWJlZGRlZCBpbiBzZm50CglyZXNvdXJjZSwgZmFjZS0+bnVtX2ZpeGVkX3NpemUgaXMgY29ycmVjdGx5IHNldC4gIEluIHB1YmxpYyBBUEksCglGVF9OZXdfRmFjZSgpIGFuZCBGVF9OZXdfRmFjZV9Gcm9tX0ZTU3BlYygpIGNvdW50IHRoZSBmYWNlcyBhcwoJRlRfR2V0RmlsZV9Gcm9tX01hY19OYW1lKCksIHdoaWNoIGlnbm9yZXMgTkZOVCByZXNvdXJjZXMuCgoJKiBkb2MvQ0hBTkdFUzogTWVudGlvbiB0aGUgY2hhbmdlcy4KCjIwMDUtMTItMTcgIENoaWEtSSBXdSAgPGI5MDIwMTA0N0BudHUuZWR1LnR3PgoKCSogc3JjL3RydWV0eXBlL3R0aW50ZXJwLmMgKFVwZGF0ZV9NYXgpOiBTZXQgY3VycmVudCBzaXplIG9mIGJ1ZmZlcgoJY29ycmVjdGx5IChzbyB0aGF0IG1lbW9yeSBkZWJ1ZyBzeXN0ZW0gd29uJ3QgcGFuaWMpLgoKMjAwNS0xMi0xNiAgQ2hpYS1JIFd1ICA8YjkwMjAxMDQ3QG50dS5lZHUudHc+CgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL2Z0b2Jqcy5oIChmdF9nbHlwaHNsb3RfZ3JpZF9maXRfbWV0cmljcyksCglzcmMvYmFzZS9mdG9ianMuYyAoZnRfZ2x5cGhzbG90X2dyaWRfZml0X21ldHJpY3MpOiBSZW1vdmVkLgoKCSogc3JjL2Jhc2UvZnRvYmpzLmMgKGZ0X3JlY29tcHV0ZV9zY2FsZWRfbWV0cmljcyk6IERvIG5vdCByb3VuZC4KCgkqIHNyYy9jZmYvY2ZmZ2xvYWQuYyAoY2ZmX3Nsb3RfbG9hZCksIHNyYy9jaWQvY2lkZ2xvYWQuYwoJKGNpZF9zbG90X2xvYWRfZ2x5cGgpLCBzcmMvdHJ1ZXR5cGUvdHRnbG9hZC5jIChjb21wdXRlX2dseXBoX21ldHJpY3MpLAoJc3JjL3R5cGUxL3QxZ2xvYWQuYyAoVDFfTG9hZF9HbHlwaCk6IERvIG5vdCByb3VuZCBnbHlwaCBtZXRyaWNzLgoKCSogZG9jL0NIQU5HRVM6IE1lbnRpb24gdGhlIGNoYW5nZXMuCgoyMDA1LTEyLTEzICBEYXZpZCBUdXJuZXIgIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJQ2hhbmdlIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgTElHSFQgaGludGluZyBtb2RlIHRvIGNvbXBsZXRlbHkKCWRpc2FibGUgaG9yaXpvbnRhbCBoaW50aW5nLiAgVGhpcyBpcyBhbiBleHBlcmltZW50YWwgZWZmb3J0IHRvCglpbnRlZ3JhdGUgRGF2aWQgQ2hlc3RlcidzIGxhdGVzdCBwYXRjaCB3aXRob3V0IGFmZmVjdGluZyB0aGUgb3RoZXIKCWhpbnRpbmcgbW9kZXMgYXMgd2VsbC4KCglOb3RlIHRoYXQgdGhpcyBkb2Vzbid0IGZvcmNlIGF1dG8taGludGluZyBmb3IgYWxsIGZvbnRzLCBob3dldmVyLgoKCSogc3JjL2F1dG9maXQvYWZoaW50cy5jIChhZl9nbHlwaF9oaW50c19yZWxvYWQpOiBEb24ndCBzZXQKCXNjYWxlcl9maWFncyBoZXJlIGJ1dC4uLgoJKGFmX2dseXBoX2hpbnRzX3Jlc2NhbGUpOiBIZXJlLgoKCSogc3JjL2F1dG9maXQvYWZsYXRpbi5jIChhZl9sYXRpbl9oaW50c19pbml0KTogRGlzYWJsZSBob3Jpem9udGFsCgloaW50aW5nIGZvciBgbGlnaHQnIGhpbnRpbmcgbW9kZS4KCgoJKiBKYW1maWxlOiBTbWFsbCBmaXggdG8gZW5zdXJlIHRoYXQgZnRleHBvcnQuc3ltIGlzIHBsYWNlZCBpbnRvIHRoZQoJc2FtZSBsb2NhdGlvbiBhcyBvdGhlciBnZW5lcmF0ZWQgb2JqZWN0cyAoaS5lLiwgd2l0aGluIHRoZSBgb2JqcycKCWRpcmVjdG9yeSBvZiB0aGUgY3VycmVudCBkaXJlY3RvcnkpLgoKCglBZGQgc3VwcG9ydCBmb3IgYW4gZW1iZWRkZWQgYEJERiAnIHRhYmxlIHdpdGhpbiBTRk5ULWJhc2VkIGJpdG1hcAoJZm9udCBmaWxlcy4gIFRoaXMgaXMgdXNlZCB0byBzdG9yZSBhdG9tcyAmIHByb3BlcnRpZXMgZnJvbSB0aGUKCW9yaWdpbmFsIEJERiBmb250cyB0aGF0IHdlcmUgdXNlZCB0byBnZW5lcmF0ZSB0aGUgZm9udCBmaWxlLgoKCVRoZSBmZWF0dXJlIGlzIGNvbnRyb2xsZWQgYnkgVFRfQ09ORklHX09QVElPTl9CREYgd2l0aGluCglgZnRvcHRpb24uaCcgYW5kIGlzIHVzZWQgdG8gaW1wbGVtZW50IEZUX0dldF9CREZfUHJvcGVydHkgZm9yIHRoZXNlCglmb250IGZpbGVzLgoKCUF0IHRoZSBtb21lbnQsIHRoaXMgaXMgc3RpbGwgZXhwZXJpbWVudGFsLCB0aGUgQkRGIHRhYmxlIGZvcm1hdAoJaXNuJ3QgY2FzdCBpbnRvIHN0b25lIHlldC4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvY29uZmlnL2Z0b3B0aW9uLmggKFRUX0NPTkZJR19PUFRJT05fQkRGKTogTmV3CgltYWNyby4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvY29uZmlnL2Z0c3RkbGliLmggKGZ0X21lbWNocik6IE5ldyBtYWNyby4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvdHR0eXBlcy5oIChUVF9CREZSZWMsIFRUX0JERikKCVtUVF9DT05GSUdfT1BUSU9OX0JERl06IE5ldyBzdHJ1Y3R1cmUuCgkoVFRfRmFjZVJlYykgW1RUX0NPTkZJR19PUFRJT05fQkRGXTogTmV3IG1lbWJlciBgYmRmJy4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvdHRhZ3MuaCAoVFRBR19CREYpOiBOZXcgbWFjcm8uCgoJKiBzcmMvc2ZudC9KYW1maWxlIChfc291cmNlcyk6IEFkZCB0dGJkZi4KCgkqIHNyYy9zZm50L3J1bGVzLm1rIChTRk5UX0RSVl9TUkMpOiBBZGQgdHRiZGYuYy4KCgkqIHNyYy9zZm50L3NmZHJpdmVyLmMgW1RUX0NPTkZJR19PUFRJT05fQkRGXTogSW5jbHVkZSB0dGJkZi5oIGFuZAoJRlRfU0VSVklDRV9CREZfSC4KCShzZm50X2dldF9jaGFyc2V0X2l0KSBbVFRfQ09ORklHX09QVElPTl9CREZdOiBOZXcgZnVuY3Rpb24uCgkoc2ZudF9zZXJ2aWNlX2JkZikgW1RUX0NPTkZJR19PUFRJT05fQkRGXTogTmV3IHNlcnZpY2UuCgkoc2ZudF9zZXJ2aXZlcykgW1RUX0NPTkZJR19PUFRJT05fQkRGXTogQWRkIHNmbnRfc2VydmljZV9iZGYuCgoJKiBzcmMvc2ZudC9zZm50LmMgW1RUX0NPTkZJR19PUFRJT05fQkRGXTogSW5jbHVkZSB0dGJkZi5jLgoKCSogc3JjL3NmbnQvc2ZvYmpzLmMgW1RUX0NPTkZJR19PUFRJT05fQkRGXTogSW5jbHVkZSB0dGJkZi5oLgoJKHNmbnRfZG9uZV9mYWNlKSBbVFRfQ09ORklHX09QVElPTl9CREZdOiBDYWxsCgl0dF9mYWNlX2ZyZWVfYmRmX3Byb3BzLgoKCSogc3JjL3NmbnQvdHRiZGYuaCwgc3JjL3NmbnQvdHRiZGYuYzogTmV3IGZpbGVzLgoKMjAwNS0xMi0wNyAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogc3JjL3NmbnQvc2ZvYmpjLmMgKHNmbnRfaW5pdF9mYWNlKTogTW92ZSB0YWcgY2hlY2sgdG8uLi4KCSogc3JjL3NmbnQvdHRsb2FkLmMgKHNmbnRfaW5pdCk6IEhlcmUsIGJlZm9yZSBoYW5kbGluZyBUVENzLgoKMjAwNS0xMi0wNiAgQ2hpYS1JIFd1ICA8YjkwMjAxMDQ3QG50dS5lZHUudHc+CgoJKiBzcmMvdHJ1ZXR5cGUvdHRvYmpzLmMgKHR0X3NpemVfaW5pdCk6IHNpemUtPnR0bWV0cmljcy52YWxpZCBpcwoJaW5pdGlhbGl6ZWQgdHdpY2UuCglzaXplLT5zdHJpa2VfaW5kZXggaXMgbm90IGluaXRpYWxpemVkLgoKMjAwNS0xMi0wMiAgVGFlayBLd2FuKFRLKSBMZWUgIDx0YWVrbGVlQGdtYWlsLmNvbT4KCgkqIHNyYy90eXBlNDIvdDQyb2Jqcy5jIChUNDJfRmFjZV9Jbml0KTogUmVwbGFjZSBjYWxsIHRvCglGVF9OZXdfTWVtb3J5X0ZhY2Ugd2l0aCBjYWxsIHRvIEZUX09wZW5fRmFjZSB0byBwYXNzIGBwYXJhbXMnLgoKMjAwNS0xMS0zMCAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogZG9jcy9DSEFOR0VTOiBEb2N1bWVudCBmdGR1bXAncyBgLXYnIG9wdGlvbi4KCURvY3VtZW50IGxhdGVzdCBjaGFybWFwIGNvZGUgY2hhbmdlcy4KCgkqIHNyYy9zZm50L3R0Y21hcC5jLCBzcmMvc2ZudC90dGNtYXAuaDoKCXMvVFRfQ01BUF9GTEFHX09WRVJMQVBQRUQvVFRfQ01BUF9GTEFHX09WRVJMQVBQSU5HLy4KCjIwMDUtMTEtMzAgIENoaWEtSSBXdSAgPGI5MDIwMTA0N0BudHUuZWR1LnR3PgoKCSogc3JjL3NmbnQvdHRjbWFwLmMgKHR0X2NtYXA0X2NoYXJfbWFwX2JpbmFyeSwKCXR0X2NtYXAxMl9jaGFyX21hcF9iaW5hcnkpOiBGaXggY29tcGlsZXIgd2FybmluZ3MuCgoyMDA1LTExLTI5ICBDaGlhLUkgV3UgIDxiOTAyMDEwNDdAbnR1LmVkdS50dz4KCglNYWpvciB1cGRhdGUgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiB1bnNvcnRlZCBhbmQgb3ZlcmxhcHBpbmcKCXNlZ21lbnRzIGZvciBjbWFwIGZvcm1hdCA0LiAgRm9yIG92ZXJsYXBwaW5nIGJ1dCBzb3J0ZWQgc2VnbWVudHMsCgl3aGljaCBpcyBwcmV2aW91c2x5IGNvbnNpZGVyZWQgdW5zb3J0ZWQsIHdlIHN0aWxsIHVzZSBiaW5hcnkgc2VhcmNoLgoKCSogc3JjL3NmbnQvdHRjbWFwLmggKFRUX0NNYXBSZWNfKTogUmVwbGFjZSBgdW5zb3J0ZWQnIGJ5IGBmbGFncycuCgkoVFRfQ01BUF9GTEFHX1VOU09SVEVELCBUVF9DTUFQX0ZMQUdfT1ZFUkxBUFBFRCk6IE5ldyBtYWNyb3MuCgoJKiBzcmMvc2ZudC90dGNtYXAuYyAoT1BUX0NNQVA0KTogUmVtb3ZlZCBhcyBpdCBpcyBhbHdheXMgZGVmaW5lZC4KCShUVF9DTWFwNFJlY18pOiBSZW1vdmUgYG9sZF9jaGFyY29kZScgYW5kIGB0YWJsZV9sZW5ndGgnLgoJKHR0X2NtYXA0X3Jlc2V0KTogUmVtb3ZlZC4KCSh0dF9jbWFwNF9pbml0KTogVXBkYXRlZCBhY2NvcmRpbmdseS4KCSh0dF9jbWFwNF9uZXh0KTogVXBkYXRlZCBhY2NvcmRpbmdseS4KCVRha2UgY2FyZSBvZiBvdmVybGFwcGluZyBzZWdtZW50cy4KCSh0dF9jbWFwNF92YWxpZGF0ZSk6IE1ha2Ugc3VyZSB0aGUgc3VidGFibGUgaXMgbGFyZ2UgZW5vdWdoLgoJRG8gbm90IGNoZWNrIGdseXBoX2lkcyBiZWNhdXNlIHNvbWUgZm9udHMgc2V0IHRoZSBsZW5ndGggd3JvbmdseS4KCUFsc28sIGlmIGFsbCBzZWdtZW50cyBoYXZlIG9mZnNldCAwLCBnbHlwaF9pZHMgaXMgYWx3YXlzIGludmFsaWQuCglJdCBkb2VzIG5vdCBjYXVzZSBhbnkgcHJvYmxlbSBzbyBmYXIgb25seSBiZWNhdXNlIHRoZSBjaGVjayBtaXNzZXMKCWVxdWFsaXR5LgoJRGlzdGluZ3Vpc2ggYmV0d2VlbiB1bnNvcnRlZCBhbmQgb3ZlcmxhcHBpbmcgc2VnbWVudHMuCgkodHRfY21hcDRfY2hhcl9tYXBfbGluZWFyLCB0dF9jbWFwNF9jaGFyX21hcF9iaW5hcnkpOiBOZXcgZnVuY3Rpb25zCgl0byBkbyBgY2hhcmNvZGUgPT4gZ2x5cGggaW5kZXgnIGJ5IGxpbmVhci9iaW5hcnkgc2VhcmNoLgoJKHR0X2NtYXA0X2NoYXJfaW5kZXgsIHR0X2NtYXA0X2NoYXJfbmV4dCk6IFVzZQoJdHRfY21hcDRfY2hhcl9tYXBfbGluZWFyIGFuZCB0dF9jbWFwNF9jaGFyX21hcF9iaW5hcnkuCgkodHRfZmFjZV9idWlsZF9jbWFwcyk6IFRyZWF0IHRoZSByZXR1cm4gdmFsdWUgb2YgdmFsaWRhdG9yIGFzIGZsYWdzCglmb3IgY21hcC4KCjIwMDUtMTEtMjkgIENoaWEtSSBXdSAgPGI5MDIwMTA0N0BudHUuZWR1LnR3PgoKCSogc3JjL3NmbnQvdHRjbWFwLmMgKFRUX0NNYXAxMlJlY18sIHR0X2NtYXAxMl9pbml0LCB0dF9jbWFwMTJfbmV4dCk6CglOZXcgc3RydWN0dXJlcyBhbmQgZnVuY3Rpb25zIGZvciBmYXN0IGBuZXh0IGNoYXInLgoJKHR0X2NtYXAxMl9jaGFyX21hcF9iaW5hcnkpOiBOZXcgZnVuY3Rpb24gdG8gZG8gYGNoYXJjb2RlID0+IGdseXBoCglpbmRleCcgYnkgYmluYXJ5IHNlYXJjaC4KCSh0dF9jbWFwMTJfY2hhcl9pbmRleCwgdHRfY21hcDEyX2NoYXJfbmV4dCk6IFVzZQoJdHRfY21hcDEyX2NoYXJfbWFwX2JpbmFyeS4KCSh0dF9mYWNlX2J1aWxkX2NtYXBzKTogQ2hlY2sgdGFibGUgYW5kIG9mZnNldCBjb3JyZWN0bHkgKGVxdWFsaXR5IGlzCgltaXNzaW5nKS4KCjIwMDUtMTEtMTUgIERldGxlZiBX/HJrbmVyICA8VGV0aVNvZnRAYXBnLmxhaG4uZGU+CgoJKiBidWlsZHMvYW1pZ2Evc21ha2VmaWxlOiBBZGp1c3RlZCB0aGUgY29tcGlsZXIgb3B0aW9ucwoJdG8gdGhlIGN1cnJlbnQgc291cmNlcywgbm93IHJlYWxseSBidWlsZHMgdGhlIGd4dmFsaWQsIGd6aXAKCWFuZCBwc25hbWVzIG1vZHVsZXMuCgoJKiBidWlsZHMvYW1pZ2Evc3JjL2Jhc2UvZnRzeXN0ZW0uYzogVGhlIGFzc3VtZWQgU2VlaygpIHBvc2l0aW9uCglpbiB0aGUgZmlsZSBjYWNoZSB3YXMgb2ZmIGJ5IG9uZSBieXRlIHdoaWNoIGNvdWxkIGNhdXNlIGZhbHNlCgllcnJvcnMgaW4gZm9udCBmaWxlcy4KCjIwMDUtMTEtMjQgIHN1enVraSB0b3NoaXlhICA8bXBzdXp1a2lAaGlyb3NoaW1hLXUuYWMuanA+CgoJKiBidWlsZHMvbWFjL0ZyZWVUeXBlLm02OGtfZmFyLm1ha2UudHh0LAoJYnVpbGRzL21hYy9GcmVlVHlwZS5tNjhrX2NmbS5tYWtlLnR4dCwKCWJ1aWxkcy9tYWMvRnJlZVR5cGUucHBjX2NsYXNzaWMubWFrZS50eHQsCglidWlsZHMvbWFjL0ZyZWVUeXBlLnBwY19jYXJib24ubWFrZS50eHQ6CglVcGRhdGVkIGZvciBNUFcgdG8gYnVpbGQgYWxsIGF2YWlsYWJsZSBtb2R1bGVzLgoKMjAwNS0xMS0yMSAgSOV2YXJkIFdhbGwgIDxoYWF2YXJkd0BpZmkudWlvLm5vPgoKCSogc3JjL2JkZi9iZGZkcml2ci5jIChiZGZfaW50ZXJwcmV0X3N0eWxlLCBCREZfRmFjZV9Eb25lKTogRml4IHNtYWxsCgltZW1vcnkgbGVhay4KCjIwMDUtMTEtMjEgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIHNyYy9zZm50L3R0bG9hZC5jIChzZm50X2luaXQpOiBBZGQgdHJhY2luZyBtZXNzYWdlLgoKMjAwNS0xMS0yMSAgQ2hpYS1JIFd1ICA8YjkwMjAxMDQ3QG50dS5lZHUudHc+CgoJKiBzcmMvc2ZudC90dHNiaXQwLmMgKHR0X3NiaXRfZGVjb2Rlcl9sb2FkX2ltYWdlKTogSW1hZ2Vfb2Zmc2V0IHdhcwoJYWRkZWQgdHdpY2UgdG8gaW1hZ2Vfc3RhcnQgaWYgaW1hZ2VfZm9ybWF0IHdhcyAyIG9yIDUuCgoyMDA1LTExLTIxICBDaGlhLUkgV3UgIDxiOTAyMDEwNDdAbnR1LmVkdS50dz4KCgkqIHNyYy9zZm50L3Nmb2Jqcy5jIChzZm50X2luaXRfZmFjZSk6IENoZWNrIHRoYXQgZm9ybWF0X3RhZyBpcyBrbm93bgoJYmVmb3JlIGxvYWRpbmcgdGhlIHRhYmxlIGRpcmVjdG9yeS4KCgkqIHNyYy9zZm50L3R0bG9hZC5jICh0dF9mYWNlX2xvYWRfc2ZudF9oZWFkZXIsCgl0dF9mYWNlX2xvYWRfZGlyZWN0b3J5KTogRGVsYXkgc2ZudF9kaXJfY2hlY2sgZnJvbQoJdHRfZmFjZV9sb2FkX3NmbnRfaGVhZGVyIHRvIHR0X2ZhY2VfbG9hZF9kaXJlY3RvcnkuCgoyMDA1LTExLTIwICBDaGlhLUkgV3UgIDxiOTAyMDEwNDdAbnR1LmVkdS50dz4KCgkqIHNyYy9zZm50L3R0bG9hZC5jIChzZm50X2Rpcl9jaGVjayk6IENsZWFuIHVwIGFuZCByZXR1cm4gY29ycmVjdAoJZXJyb3IgY29kZS4KCShzZm50X2luaXQpOiBOZXcgZnVuY3Rpb24gdG8gZmlsbCBpbiBmYWNlLT50dGNfaGVhZGVyLiAgQSBub24tVFRDIGZvbnQKCWlzIHN5bnRoZXNpemVkIGludG8gYSBUVEMgZm9udCB3aXRoIG9uZSBvZmZzZXQgdGFibGUuCgkodHRfZmFjZV9sb2FkX3NmbnRfaGVhZGVyKTogVXNlIHNmbnRfaW5pdC4KCUZpeCBhbiBpbnZhbGlkIGFjY2VzcyBpZiB0aGUgZm9udCBpcyBUVEMgYW5kIGZhY2VfaW5kZXggaXMgLTEuCgoyMDA1LTExLTE4ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBzcmMvc2ZudC90dGxvYWQuYyAodHRfZmFjZV9sb2FkX21ldHJpY3MpOiBJZ25vcmUgZXhjZXNzIG51bWJlcgoJb2YgbWV0cmljcyBpbnN0ZWFkIG9mIGFib3J0aW5nLiAgUGF0Y2ggc3VnZ2VzdGVkIGJ5IERlcmVrIE5vb25idXJnLgoKCSogc3JjL2NmZi9jZmZnbG9hZC5jIChjZmZfc2xvdF9sb2FkKSwgc3JjL2NpZC9jaWRnbG9hZC5jCgkoY2lkX3Nsb3RfbG9hZF9nbHlwaCksIHNyYy90eXBlMS90MWdsb2FkLmMgKFQxX0xvYWRfR2x5cGgpOiBTY2FsZQoJdGhlIGdseXBoIHByb3Blcmx5IGlmIG5vIGhpbnRlciBpcyBhdmFpbGFibGUuCgoJKiBkb2NzL0NIQU5HRVM6IE1lbnRpb24gc2NhbGluZyBidWcuCgoyMDA1LTExLTE4ICBzdXN1emtpIHRvc2hpeWEgIDxtcHN1enVraUBoaXJvc2hpbWEtdS5hYy5qcD4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvZnRneHZhbC5oLCBzcmMvYmFzZS9mdGd4dmFsLmMKCShGVF9UcnVlVHlwZUdYX0ZyZWUsIEZUX0NsYXNzaWNLZXJuX0ZyZWUpOiBOZXcgZnVuY3Rpb25zIHRvIGZyZWUKCWJ1ZmZlcnMgYWxsb2NhdGVkIGJ5IGd4dmFsaWQgbW9kdWxlLgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2Z0b3R2YWwuaCwgc3JjL2Jhc2UvZnRvdHZhbC5jCgkoRlRfT3BlblR5cGVfRnJlZSk6IE5ldyBmdW5jdGlvbiB0byBmcmVlIGJ1ZmZlciBhbGxvY2F0ZWQgYnkKCW90dmFsaWQgbW9kdWxlLgoKMjAwNS0xMS0xOCAgQ2hpYS1JIFd1ICA8YjkwMjAxMDQ3QG50dS5lZHUudHc+CgoJKiBidWlsZHMvdW5peC9mdHN5c3RlbS5jIChGVF9TdHJlYW1fT3BlbiwgRlRfTmV3X01lbW9yeSwKCUZUX0RvbmVfTWVtb3J5KSwgYnVpbGRzL3Ztcy9mdHN5c3RlbS5jIChGVF9TdHJlYW1fT3BlbiwgRlRfTmV3X01lbW9yeSwKCUZUX0RvbmVfTWVtb3J5KSwgYnVpbGRzL3dpbjMyL2Z0ZGVidWcuYyAoRlRfTWVzc2FnZSwgRlRfUGFuaWMpOgoJcy9GVF9FWFBPUlQvRlRfQkFTRS8uCgoyMDA1LTExLTE3ICBEZXRsZWYgV/xya25lciAgPFRldGlTb2Z0QGFwZy5sYWhuLmRlPgoKCSogYnVpbGRzL2FtaWdhL3NyYy9iYXNlL2Z0ZGVidWcuYyAoRlRfVHJhY2VfR2V0X0NvdW50LAoJRlRfVHJhY2VfR2V0X05hbWUsIEZUX01lc3NhZ2UsIEZUX1BhbmljKSwKCWJ1aWxkcy9hbWlnYS9zcmMvYmFzZS9mdHN5c3RlbS5jIChGVF9OZXdfTWVtb3J5LCBGVF9Eb25lX01lbW9yeSwKCUZUX1N0cmVhbV9PcGVuKTogcy9GVF9FWFBPUlQvRlRfQkFTRS8uCgoyMDA1LTExLTE3ICBEZXRsZWYgV/xya25lciAgPFRldGlTb2Z0QGFwZy5sYWhuLmRlPgoKCSogYnVpbGRzL2FtaWdhL21ha2VmaWxlLCBidWlsZHMvYW1pZ2EvbWFrZWZpbGUub3M0LAoJYnVpbGRzL2FtaWdhL3NtYWtlZmlsZSwKCWJ1aWxkcy9hbWlnYS9pbmNsdWRlL2ZyZWV0eXBlL2NvbmZpZy9mdG1vZHVsZS5oOiBVcGRhdGVkIHRoZSBBbWlnYQoJYnVpbGQgZmlsZXMgKGFkZGVkIHN1cHBvcnQgZm9yIHRoZSBneHZhbGlkIG1vZHVsZSkuCgoyMDA1LTExLTE3ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJQWRkIHZlcnRpY2FsIG1ldHJpY3Mgc3VwcG9ydCB0byBPcGVuVHlwZSBDRkYgb3V0bGluZXMuICBCYXNlZCBvbiBhCglwYXRjaCBmcm9tIE1pa2UgTW9lbmluZyA8TWlrZU1AUmV0ZWtTb2x1dGlvbnMuY29tPi4KCgkqIHNyYy9jZmYvY2ZmZ2xvYWQuYyAoY2ZmX2ZhY2VfZ2V0X3ZlcnRpY2FsX21ldHJpY3MpOiBOZXcgZnVuY3Rpb24uCgkoY2ZmX3Nsb3RfbG9hZCk6IFVzZSBjZmZfZmFjZV9nZXRfdmVydGljYWxfbWV0cmljcy4KCgkqIGRvY3MvQ0hBTkdFUzogVXBkYXRlZC4KCjIwMDUtMTEtMTcgIENoaWEtSSBXdSAgPGI5MDIwMTA0N0BudHUuZWR1LnR3PgoKCSogc3JjL2Jhc2UvZnRjYWxjLmMgKEZUX011bFRvNjQpOiBDb21tZW50ZWQgb3V0LgoKCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9mdGNhbGMuaCAoRlRfU3FydEZpeGVkKSwKCXNyYy9iYXNlL2Z0Y2FsYy5jIChGVF9TcXJ0Rml4ZWQpLAoJaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9mdGRlYnVnLmggKEZUX1RyYWNlX0dldF9Db3VudCwKCUZUX1RyYWNlX0dldF9OYW1lLCBGVF9NZXNzYWdlLCBGVF9QYW5pYyksIHNyYy9iYXNlL2Z0ZGVidWcuYwoJKEZUX1RyYWNlX0dldF9Db3VudCwgRlRfVHJhY2VfR2V0X05hbWUsIEZUX01lc3NhZ2UsIEZUX1BhbmljKSwKCWluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvZnRvYmpzLmggKEZUX05ld19NZW1vcnksIEZUX0RvbmVfTWVtb3J5KSwKCWluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvZnRzdHJlYW0uaCAoRlRfU3RyZWFtX09wZW4pLAoJc3JjL2Jhc2UvZnRzeXN0ZW0uYyAoRlRfTmV3X01lbW9yeSwgRlRfRG9uZV9NZW1vcnksIEZUX1N0cmVhbV9PcGVuKToKCXMvRlRfRVhQT1JUL0ZUX0JBU0UvLgoKCSogYnVpbGRzL2V4cG9ydHMubWs6IE1hbnVhbGx5IGFkZCBUVF9OZXdfQ29udGV4dCB0byBFWFBPUlRTX0xJU1QKCXRvby4KCjIwMDUtMTEtMTUgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy9iYXNlL2Z0dHJpZ29uLmMgKGZ0X3RyaWdfcHJlbm9ybSk6IEZpeCBhIGJ1ZyB0aGF0IGNyZWF0ZWQKCWludmFsaWQgY29tcHV0YXRpb25zLCByZXN1bHRpbmcgaW4gdmVyeSB3ZWlyZCBidWdzIGluIFRydWVUeXBlCglieXRlY29kZSBoaW50ZWQgZm9udHMuCgoJKiBzcmMvdHJ1ZXR5cGUvdHRpbnRlcnAuYyAoRlRfVU5VU0VEX0VYRUMpOiBEb24ndCBwZXJmb3JtIGEKCXN0cnVjdHVyZSBjb3B5IGVhY2ggdGltZS4KCjIwMDUtMTEtMTEgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIHNyYy9jYWNoZS9mdGNjYWNoZS5jIChGVENfQ2FjaGVfQ2xlYXIpLCBzcmMvY2FjaGUvZnRjbWFuYWcuYwoJKEZUQ19NYW5hZ2VyX0NoZWNrKTogUmVtb3ZlIEZUX0VYUE9SVF9ERUYgdGFnLgoKCSogc3JjL2Jhc2UvZnRjYWxjLmMgKEZUX0FkZDY0KTogUmVtb3ZlIEZUX0VYUE9SVF9ERUYgdGFnLgoJKEZUX0RpdjY0YnkzMiwgRlRfU3FydDMyKTogQ29tbWVudGVkIG91dC4gIFVudXNlZC4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvZnRjYWxjLmggKFNRUlRfMzIpOiBSZW1vdmVkLiAgVW51c2VkLgoJKEZUX1NxcnQzMik6IENvbW1lbnRlZCBvdXQuICBVbnVzZWQuCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2NhY2hlL2Z0Y2NhY2hlLmg6CglzL2Z0Y19ub2RlX2Rlc3Ryb3kvRlRDX05vZGVfRGVzdHJveS8uCgoJKiBzcmMvY2FjaGUvZnRjY2JhY2suaCAoZnRjX25vZGVfZGVzdHJveSk6IE5ldyBkZWNsYXJhdGlvbi4KCgkqIHNyYy9jYWNoZS9mdGNjYWNoZS5jIChmdGNfbm9kZV9kZXN0cm95KTogVXNlIEZUX0xPQ0FMX0RFRiB0YWcuCgkoRlRDX05vZGVfRGVzdHJveSk6IE5ldyBleHBvcnRlZCB3cmFwcGVyIGZ1bmN0aW9uIGZvcgoJZnRjX25vZGVfZGVzdHJveS4KCgkqIHNyYy9jYWNoZS9mdGNtYW5hZy5jOiBJbmNsdWRlIGZ0Y2NiYWNrLmMuCgoyMDA1LTExLTEwICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBzcmMvYXV0b2ZpdC9hZmFuZ2xlcy5jLCBzcmMvYXV0b2ZpdC9hZnR5cGVzLmggKGFmX2FuZ2xlX2RpZmYpOgoJQ29tbWVudCBvdXQuICBVbnVzZWQuCgoJKiBidWlsZHMvZXhwb3J0cy5tayAoJChFWFBPUlRTX0xJU1QpKTogQWRkIFRUX1J1bklucy4KCjIwMDUtMTEtMTAgIENocmlzdGlhbiBCaWVzaW5nZXIgIDxjYmllc2luZ2VyQHdlYi5kZT4KCgkqIGJ1aWxkcy9iZW9zL2Jlb3MubWs6IENhbGwgYmVvcy1kZWYubWsgYmVmb3JlIGFueXRoaW5nIGVsc2UgdG8KCWRlZmluZSB0aGUgc2VwYXJhdG9yLgoKCSogYnVpbGRzL3VuaXgvdW5peC1jYy5pbiAoTElOS19MSUJSQVJZKTogQWRkIGAtbm8tdW5kZWZpbmVkJyBmbGFnLgoKMjAwNS0xMS0wNyAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogc3JjL3R5cGUxL3QxYWZtLmMgKFQxX1JlYWRfUEZNKTogWmVybyBvZmZzZXQgbWVhbnMgYG5vIGtlcm5pbmcKCXRhYmxlIGF2YWlsYWJsZScuICBGcm9tIFNlcmdleSBUb2xzdG92IDxzdG9sc3RvdkBlc3JpLmNvbT4uCgoyMDA1LTExLTAzICBWaWxsZSBTeXJq5GzkICA8c3lyamFsYUBzY2kuZmk+CgoJKiBzcmMvYmFzZS9mdG9ianMuYyAoRlRfT3Blbl9GYWNlKTogQXZvaWQgcG9zc2libGUgbWVtb3J5IGxlYWsuCgoyMDA1LTExLTAyICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJTWFrZSBjb21waWxpbmcgaW5zdHJ1Y3Rpb25zIGluIGRvY3MvQ1VTVE9NSVpFIHdvcmsgYWdhaW4uCgoJKiBidWlsZHMvdW5peC91bml4LWNjLmluIChDUFBGTEFHUyk6IE5ldyB2YXJpYWJsZS4KCShDRkxBR1MpOiBEb24ndCBpbmNsdWRlIEBDUFBGTEFHU0AuCgkqIGJ1aWxkcy9mcmVldHlwZS5tayAoRlRfQ0ZMQUdTKTogQWRkIENQUEZMQUdTLgoKMjAwNS0xMC0yOCAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCVVwZGF0ZSBidWlsZCBzeXN0ZW0gdG8gc3VwcG9ydCB0aGUgZ2VuZXJhdGlvbiBvZiBhIGxpc3Qgb2YgZXhwb3J0ZWQKCXN5bWJvbHMgb3IgV2luZG93cyAuREVGIGZpbGVzIGJ5IHBhcnNpbmcgdGhlIHB1YmxpYyBoZWFkZXJzIHdpdGggdGhlCglgYXBpbmFtZXMnIHRvb2wgbG9jYXRlZCBpbiBzcmMvdG9vbHMvYXBpbmFtZXMuYy4KCglPbmx5IHRlc3RlZCBvbiBVbml4IGF0IHRoZSBtb21lbnQuICBPbiBXaW5kb3dzLCB0aGUgLkRFRiBmaWxlIGlzCglnZW5lcmF0ZWQgYnV0IGlzbid0IHVzZWQgeWV0IHRvIGdlbmVyYXRlIGEgRExMLgoKCSogYnVpbGRzL2V4cG9ydHMubWs6IE5ldyBmaWxlLgoKCSogYnVpbGRzL2ZyZWV0eXBlLm1rOiBJbmNsdWRlIGV4cG9ydHMubWsuCgkoZGxsKTogTmV3IHRhcmdldC4KCShjbGVhbl9wcm9qZWN0X2Rvcyk6IEZpeCBydWxlLgoKCSogYnVpbGRzL2NvbXBpbGVyL3Zpc3VhbGMubWsgKFRFKSwgYnVpbGRzL2Rvcy9kb3MtZGVmLm1rIChFKSwKCWJ1aWxkcy9vczIvb3MyLWRlZi5tayAoRSksIGJ1aWxkcy93aW4zMi93aW4zMi1kZWYubWsgKEUpOiBOZXcKCXZhcmlhYmxlcyBmb3IgY29udHJvbGxpbmcgZXhlY3V0YWJsZSBleHRlbnNpb25zLgoKCSogYnVpbGRzL3VuaXgvdW5peC1jYy5pbiAoRVhQT1JUU19MSVNULCBDQ2V4ZSksCglidWlsZHMvd2luMzIvdzMyLWJjYy5taywgYnVpbGRzL3dpbjMyL3czMi1nY2MubWssCglidWlsZHMvd2luMzIvdzMyLWljYy5taywgYnVpbGRzL3dpbjMyL3czMi1pY2MubWssCglidWlsZHMvd2luMzIvdzMyLW1pbmd3MzIubWssIGJ1aWxkcy93aW4zMi93MzItdmNjLAoJYnVpbGRzL3dpbjMyL3czMi13YXQubWsgKEVYUE9SVFNfTElTVCwgRVhQT1JUX09QVElPTlMsCglBUElOQU1FU19PUFRJT05TKTogTmV3IHRhcmdldHMgZm9yIGNvbnRyb2xsaW5nIHRoZSBgYXBpbmFtZXMnIHRvb2wuCgoJKiBKYW1maWxlIChHZW5FeHBvcnRTeW1ib2xzKTogVXBkYXRlZC4KCgoJKiBzcmMvcGZyL3BmcnR5cGVzLmgsIHNyYy9wZnIvcGZybG9hZC5jLCBzcmMvcGZyL3Bmcm9ianMuYwoJWyFGVF9PUFRJTUlaRV9NRU1PUlldOiBGb2xkIG1lbW9yeSBvcHRpbWl6YXRpb24gY29kZSBpbnRvCglGVF9PUFRJTUlaRV9NRU1PUlkgY2h1bmtzIGZvciBiZXR0ZXIgbWFpbnRhaW5hYmlsaXR5IGFuZCBzaW1wbGljaXR5LgoKCgkqIHNyYy9iYXNlL2Z0dHJpZ29uLmMgKGZ0X3RyaWdfcHJlbm9ybSksIHNyYy9iYXNlL2Z0Y2FsYy5jCgkoRlRfTXVsRml4KTogUGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9ucy4KCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL2Z0Z2xvYWRyLmggKEZUX0dMWVBITE9BREVSX0NIRUNLX1AsCglGVF9HTFlQSExPQURFUl9DSEVDS19DLCBGVF9HTFlQSExPQURFUl9DSEVDS19QT0lOVFMpOiBOZXcgbWFjcm9zIGZvcgoJY2hlY2tpbmcgcG9pbnRzIGFuZCBjb250b3Vycy4gIFVwZGF0ZSBjYWxsZXJzIHRvIHVzZQoJRlRfR0xZUEhMT0FERVJfQ0hFQ0tfUE9JTlRTIGluc3RlYWQgb2YgRlRfR2x5cGhMb2FkZXJfQ2hlY2tQb2ludHMKCWF0IHByb2ZpbGUtZGV0ZWN0ZWQgaG90LXNwb3RzLgoKCSogc3JjL2Jhc2UvZnRnbG9hZHIuYyAoRlRfR2x5cGhMb2FkZXJfQ2hlY2tQb2ludHMpOiBTZXQgYGFkanVzdCcKCXRvIDAgdG8gbm90IGNhbGwgYEFkanVzdFBvaW50cycgZXZlcnkgdGltZS4KCgoJKiBzcmMvYXV0b2ZpdC9hZnR5cGVzLmggKEFGX0FOR0xFX0RJRkYpOiBOZXcgbWFjcm8gdG8gaW5saW5lCglGVF9BbmdsZV9EaWZmLgoKCSogc3JjL2F1dG9maXQvYWZoaW50cy5jIChhZl9kaXJlY3Rpb25fY29tcHV0ZSk6IFJlLWltcGxlbWVudC4KCShhZl9nbHlwaF9oaW50c19jb21wdXRlX2luZmxlY3Rpb25zLCBhZl9nbHlwaF9oaW50c19yZWxvYWQpOiBVc2UKCUFGX0FOR0xFX0RJRkYgdG8gc3BlZWQgdXAgdGhlIGRldGVjdGlvbiBvZiBpbmZsZXhpb25zLgoKCgkqIHNyYy90b29scy9hcGluYW1lcy5jOiBJbmNsdWRlIDxzdHJpbmcuaD4uCgkoT3V0cHV0Rm9ybWF0KTogTmV3IGVudW1lcmF0aW9uLgoJKG5hbWVzX2R1bXApOiBBZGQgdHdvIHBhcmFtZXRlcnMgdG8gY29udHJvbCBvdXRwdXQgZm9ybWF0IGFuZCBETEwKCW5hbWUuCgkobmFtZXNfZHVtcF93aW5kZWYpOiBSZW1vdmVkLiAgQ29kZSBmb2xkZWQgaW50byBgbmFtZXNfZHVtcCcuCgkocmVhZF9oZWFkZXJfZmlsZSk6IFVzZSBpc2FsbnVtLCBub3QgaXNhbHBoYS4gIE90aGVyd2lzZSBmdW5jdGlvbgoJbmFtZXMgd2l0aCBkaWdpdHMgYXJlbid0IHJlYWQgY29ycmVjdGx5LgoJKHVzYWdlKTogVXBkYXRlZC4KCShtYWluKTogTmV3IG9wdGlvbiBgLW8nIHRvIGNvbnRyb2wgb3V0cHV0IGZpbGUgbmFtZS4KCU5ldyBvcHRpb24gYC1kJyB0byBpbmRpY2F0ZSBETEwgZmlsZSBuYW1lLgoJRXh0ZW5kIGAtdycgZmxhZyB0byBoYW5kbGUgQm9ybGFuZCBhbmQgV2F0Y29tIGNvbXBpbGVycyBhbmQgbGlua2Vycy4KCjIwMDUtMTAtMjggIHN1enVraSB0b3NoaXlhICA8bXBzdXp1a2lAaGlyb3NoaW1hLXUuYWMuanA+CgoJKiBidWlsZHMvbWFjL2Z0bGliLnByaiwgYnVpbGRzL21hYy9mcmVldHlwZS5tYWs6IFJlbW92ZWQuCglmdGxpYi5wcmogaXMgdW5tYWludGFpbmVkIGFuZCBpbmNvbXBhdGlibGUgd2l0aCBjdXJyZW50IHRyZWUuCglmcmVldHlwZS5tYWsgaXMgdW5yZWNvdmVyYWJseSBicm9rZW4uCgoJKiBidWlsZHMvbWFjL2Z0bGliLnByai54bWw6IEFkZGVkLgoJR2VuZXJhdGVkIGJ5IE1ldHJvd2Vya3MgQ29kZVdhcnJpb3IgOS4wLgoKCSogYnVpbGRzL21hYy9GcmVlVHlwZS5tNjhrX2Zhci5tYWtlLnR4dCwKCWJ1aWxkcy9tYWMvRnJlZVR5cGUubTY4a19jZm0ubWFrZS50eHQsCglidWlsZHMvbWFjL0ZyZWVUeXBlLnBwY19jbGFzc2ljLm1ha2UudHh0LAoJYnVpbGRzL21hYy9GcmVlVHlwZS5wcGNfY2FyYm9uLm1ha2UudHh0OiBBZGRlZC4KCVNrZWxldG9uIGZpbGVzIG9mIE1QVyBtYWtlZmlsZXMuCgoJKiBidWlsZHMvbWFjL2FzY2lpMm1wdy5weTogQWRkZWQuCglQeXRob24gc2NyaXB0IHRvIG1ha2UgTVBXIG1ha2VmaWxlIGZyb20gc2tlbGV0b24uCgoJKiBidWlsZHMvbWFjL1JFQURNRTogVXBkYXRlZC4KCUFsbW9zdCByZXdyaXR0ZW4gdG8gdXNlIG5ldyBmaWxlcy4KCjIwMDUtMTAtMjggIHN1enVraSB0b3NoaXlhICA8bXBzdXp1a2lAaGlyb3NoaW1hLXUuYWMuanA+CgoJKiBzcmMvYmFzZS9mdG1hYy5jOiBGaXggaW52YWxpZCBjYXN0cyBmcm9tIE5VTEwgdG8gaW50ZWdlciB0eXBlZAoJdmFyaWFibGVzLiAgQWR2aXNlZCBieSBEYXZpZCBUdXJuZXIsIE1hc2F0YWtlIFlBTUFUTywgU2VhbiBNY0JyaWRlLAoJYW5kIEdlb3JnZSBXaWxsaWFtcy4KCjIwMDUtMTAtMjcgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvZnRzeXNtZW0uaCwgaW5jbHVkZS9mcmVldHlwZS9mdHN5c2lvLmg6IFJlbW92ZWQuCglPYnNvbGV0ZS4KCjIwMDUtMTAtMjUgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIHNyYy9zZm50L3NmZHJpdmVyLmMgKHNmbnRfaW50ZXJmYWNlKTogTW92ZSBvdXQKCWB0dF9mYWNlX2dldF9rZXJuaW5nJyBmcm9tIGEgI2lmZGVmIGNsYXVzZS4gIFJlcG9ydGVkIGJ5IFRvbnkgSi4KCUliYnMgPHRpYnNAc2ouY28udWs+LgoKMjAwNS0xMC0yMyAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogc3JjL2Jhc2UvZnRkYmdtZW0uYyAoZnRfbWVtX2RlYnVnX3JlYWxsb2MpOiBNYWtlIGl0IGNvbXBpbGUgd2l0aAoJQysrLgoKMjAwNS0xMC0yMSAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCSogc3JjL2Jhc2UvZnRkYmdtZW0uYyAoZnRfbWVtX3RhYmxlX3NldCwgZnRfbWVtX2RlYnVnX3JlYWxsb2MpOgoJQW5vdGhlciByZWFsbG9jIG1lbW9yeSBjb3VudGluZyBidWcgZml4LgoKCSogc3JjL3Rvb2xzL0phbWZpbGU6IEFkZCBtaXNzaW5nIGZpbGUuCgoJKiBzcmMvbHp3L0phbWZpbGU6IEZpeCBpbmNvcnJlY3Qgc291cmNlIGZpbGUgcmVmZXJlbmNlLgoKMjAwNS0xMC0yMCAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCSogc3JjL2Jhc2UvZnRkYmdtZW0uYyAoZnRfbWVtX3RhYmxlX3NldCwgZnRfbWVtX3RhYmxlX3JlbW92ZSwKCWZ0X21lbV9kZWJ1Z19hbGxvYywgZnRfbWVtX2RlYnVnX2ZyZWUsIGZ0X21lbV9kZWJ1Z19yZWFsbG9jKTogRml4ZXMKCXRvIGJldHRlciBhY2NvdW50IGZvciBtZW1vcnkgcmVhbGxvY2F0aW9ucy4KCgkqIHNyYy9sencvZnRsencyLmMsIHNyYy9sencvZnR6b3Blbi5oLCBzcmMvbHp3L2Z0em9wZW4uYywKCXNyYy9sencvcnVsZXMubWs6IEZpcnN0IHZlcnNpb24gb2YgTFpXIGxvYWRlciByZS1pbXBsZW1lbnRhdGlvbi4KCUFwcGFyZW50bHksIHRoaXMgc2F2ZXMgYWJvdXQgMzMwIEtCIG9mIGhlYXAgbWVtb3J5IHdoZW4gbG9hZGluZwoJdGltUjI0LnBjZi5aLgoKMjAwNS0xMC0yMCAgQ2hpYS1JIFd1ICA8YjkwMjAxMDQ3QG50dS5lZHUudHc+CgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2Z0Yml0bWFwLmggKEZUX0JpdG1hcF9Db3B5LCBGVF9CaXRtYXBfRW1ib2xkZW4pLAoJc3JjL2Jhc2UvZnRiZGYuYyAoRlRfR2V0X0JERl9Qcm9wZXJ0eSksIHNyYy9jYWNoZS9mdGNtcnUuYwoJKEZUQ19NcnVMaXN0X1Jlc2V0LCBGVENfTXJ1TGlzdF9Eb25lLCBGVENfTXJ1TGlzdF9Mb29rdXApOiBGaXgKCUZUX0VYUE9SVC9GVF9FWFBPUlRfREVGIHRhZ2dpbmcuCgoyMDA1LTEwLTE5ICBDaGlhLUkgV3UgIDxiOTAyMDEwNDdAbnR1LmVkdS50dz4KCgkqIHNyYy90cnVldHlwZS90dGdsb2FkLmMgKFRUX0xvYWRfR2x5cGgpOiBBbGxvdyBzaXplLT50dG1ldHJpY3MgdG8KCWJlIGludmFsaWQgd2hlbiBGVF9MT0FEX05PX1NDQUxFIGlzIHNldC4KCjIwMDUtMTAtMTcgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy9iYXNlL2Z0b2Jqcy5jIChGVF9PcGVuX0ZhY2UpOiBEb24ndCBjYWxsIEZUX05ld19HbHlwaFNsb3QgYW5kCglGVF9OZXdfU2l6ZSBpZiB3ZSBhcmUgb3BlbmluZyBhIGZhY2Ugd2l0aCBmYWNlX2luZGV4IDwgMCAod2hpY2ggaXMKCW9ubHkgdXNlZCBmb3IgdGVzdGluZyB0aGUgZm9ybWF0KS4KCgkqIHNyYy9neHZhbGlkL2d4dm1vcnQwLmMgKGd4dl9tb3J0X3N1YnRhYmxlX3R5cGUwX2VudHJ5X3ZhbGlkYXRlKToKCVJlbW92ZSBjb21waWxlciB3YXJuaW5nLgoKMjAwNS0xMC0xNiAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCSogc3JjL3Rvb2xzL2FwaW5hbWVzLmM6IEFkZCBuZXcgdG9vbCB0byBleHRyYWN0IHB1YmxpYyBBUEkgZnVuY3Rpb24KCW5hbWVzIGZyb20gaGVhZGVyIGZpbGVzLgoKMjAwNS0xMC0wNSAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCUFkZCBGVF9GQUNFX0ZMQUdfSElOVEVSIHRvIGluZGljYXRlIHRoYXQgYSBzcGVjaWZpYyBmb250IGRyaXZlciBoYXMKCWEgaGludGluZyBlbmdpbmUgb2YgaXRzIG93bi4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvZnJlZXR5cGUuaCAoRlRfRkFDRV9GTEFHX0hJTlRFUik6IE5ldyBtYWNyby4KCgkqIHNyYy9jZmYvY2Zmb2Jqcy5jIChjZmZfZmFjZV9pbml0KSwgc3JjL2NpZC9jaWRvYmpzLmMKCShjaWRfZmFjZV9pbml0KSwgc3JjL3RydWV0eXBlL3R0b2Jqcy5jICh0dF9mYWNlX2luaXQpCglbVFRfQ09ORklHX09QVElPTl9CWVRFQ09ERV9JTlRFUlBSRVRFUl0sIHNyYy90eXBlMS90MW9ianMuYwoJKFQxX0ZhY2VfSW5pdCksIHNyYy90eXBlNDIvdDQyb2Jqcy5jIChUNDJfRmFjZV9Jbml0KQoJW1RUX0NPTkZJR19PUFRJT05fQllURUNPREVfSU5URVJQUkVURVJdOiBVcGRhdGUgZmFjZSBmbGFncy4KCgkqIGRvY3MvQ0hBTkdFUzogRG9jdW1lbnQgaXQuCgoyMDA1LTA5LTI3ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBidWlsZHMvdW5peC9mcmVldHlwZTIubTQ6IEFkZCBsaWNlbnNlIGV4Y2VwdGlvbiBzbyB0aGF0IHRoZSBmaWxlCgljYW4gYmUgdXNlZCBpbiBhbnkgb3RoZXIgYXV0b2NvbmYgc2NyaXB0LgoKMjAwNS0wOS0yNiAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCSogc3JjL2F1dG9maXQvYWZsYXRpbi5jIChhZl9sYXRpbl9jb21wdXRlX3N0ZW1fd2lkdGgpOiBGaXggYmFkCgljb21wdXRhdGlvbiBvZiB0aGUgYHZlcnRpY2FsJyBmbGFnLCBjYXVzaW5nIHVnbHkgdGhpbmdzIGluIExDRCBtb2RlCglhbmQgb3RoZXJzLgoKMjAwNS0wOS0yMyAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCSogc3JjL2F1dG9maXQvYWZsYXRpbi5jIChhZl9sYXRpbl9oaW50c19pbml0KTogRml4IGEgYnVnIHRoYXQKCXByZXZlbnRlZCBpbnRlcm5hbCBoaW50IG1vZGUgYml0ZmxhZ3MgZnJvbSBiZWluZyBjb21wdXRlZCBjb3JyZWN0bHkuCgoJKiBzcmMvYmFzZS9KYW1maWxlOiBBZGRpbmcgc3JjL2Jhc2UvZnRneHZhbC5jLgoKCSogc3JjL2d4dmFsaWQvZ3h2YnNsbi5jLCBzcmMvZ3h2YWxpZC9neHZjb21tbi5jLAoJc3JjL2d4dmFsaWQvZ3h2ZmVhdC5jLCBzcmMvZ3h2YWxpZC9neHZqdXN0LmMsIHNyYy9neHZhbGlkL2d4dmtlcm4uYywKCXNyYy9neHZhbGlkL2d4dmxjYXIuYywgc3JjL2d4dmFsaWQvZ3h2bW9ydC5jLAoJc3JjL2d4dmFsaWQvZ3h2bW9ydDAuYywgc3JjL2d4dmFsaWQvZ3h2bW9ydDEuYywKCXNyYy9neHZhbGlkL2d4dm1vcnQyLmMsIHNyYy9neHZhbGlkL2d4dm1vcnQ0LmMsCglzcmMvZ3h2YWxpZC9neHZtb3J0NS5jLCBzcmMvZ3h2YWxpZC9neHZtb3J4LmMsCglzcmMvZ3h2YWxpZC9neHZtb3J4MC5jLCBzcmMvZ3h2YWxpZC9neHZtb3J4MS5jLAoJc3JjL2d4dmFsaWQvZ3h2bW9yeDIuYywgc3JjL2d4dmFsaWQvZ3h2bW9yeDUuYywKCXNyYy9neHZhbGlkL2d4dm9wYmQuYywgc3JjL2d4dmFsaWQvZ3h2cHJvcC5jLAoJc3JjL3RydWV0eXBlL3R0Z2xvYWQuYzogUmVtb3ZlIF9tYW55XyBjb21waWxlciB3YXJuaW5ncyB3aGVuCgljb21waWxpbmcgd2l0aCBWaXN1YWwgQysrIGF0IG1heGltdW0gbGV2ZWwgKC9XNCkuCgoJKiBzcmMvYXV0b2ZpdC9hZmFuZ2xlcy5jIChhZl9hbmdsZV9hdGFuKTogUmVwbGFjZWQgQ09SRElDLWJhc2VkCglpbXBsZW1lbnRhdGlvbiB3aXRoIG9uZSB1c2luZyBsb29rdXAgdGFibGVzLiAgVGhpcyBzaW1wbGUgdGhpbmcKCXNwZWVkcyB1cCBnbHlwaCBsb2FkaW5nIGJ5IDE4JSwgYWNjb3JkaW5nIHRvIGZ0YmVuY2ghCgoJKiBzcmMvc2ZudC9zZmRyaXZlci5jIChzZm50X2dldF9pbnRlcmZhY2UpOiBEb24ndCBjaGVjayBmb3IKCWBnZXRfc2ZudCcgYW5kIGBsb2FkX3NmbnQnIG1vZHVsZSBpbnRlcmZhY2VzLgoKMjAwNS0wOS0yMiAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogZG9jcy9DSEFOR0VTOiBNZW50aW9uIFNJTkcgR2x5cGhsZXQgc3VwcG9ydC4KCjIwMDUtMDktMjIgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy9iYXNlL0phbWZpbGU6IERpc2FibGUgY29tcGlsYXRpb24gb2YgZnRneHZhbCBtb2R1bGUKCXRlbXBvcmFyaWx5LgoKMjAwNS0wOS0xOSAgRGF2aWQgU29tZXJzICA8ZHNvbWVyc0BvbXoxMy5jb20+CgoJKiBmcmVldHlwZTIvc3JjL3NmbnQvdHRsb2FkLmMgKHNmbnRfZGlyX2NoZWNrKTogTW9kaWZpZWQgdG8gYWxsb3cgYQoJZm9udCB0byBoYXZlIG5vIGBoZWFkJyB0YWJsZSBpZiB0YWJsZXMgYFNJTkcnIGFuZCBgTUVUQScgYXJlCglwcmVzZW50OyB0aGlzIGlzIHRvIHN1cHBvcnQgYFNJTkcgR2x5cGhsZXQnLgoKCWBTSU5HIEdseXBobGV0JyBpcyBhbiBleHRlbnNpb24gdG8gT3BlblR5cGUgZGV2ZWxvcGVkIGJ5IEFkb2JlCglwcmltYXJpbHkgdG8gZmFjaWxpdGF0ZSBhZGRpbmcgc3VwcGxlbWVudGFsIGdseXBocyB0byBhbiBPcGVuVHlwZQoJZm9udCAod2l0aCBlbXBoYXNpcyBvbiwgYnV0IG5vdCBuZWNlc3Nhcml5IGxpbWl0ZWQgdG8sIGdhaWppIHRvIGEKCUNKSyBmb250KS4gIEEgU0lORyBHbHlwaGxldCBGb250IGlzIGFuIE9wZW5UeXBlIGZvbnQgdGhhdCBjb250YWlucwoJdGhlIG91dGxpbmUocyksIGVpdGhlciBpbiBhIGBnbHlmJyBvciBgQ0ZGJyB0YWJsZSwgZm9yIGEgZ2x5cGg7CglgY21hcCcsIGBCQVNFJywgYW5kIGBHU1VCJyB0YWJsZXMgYXJlIHByZXNlbnQgd2l0aCB0aGUgc2FtZSBmb3JtYXQKCWFuZCBmdW5jdGlvbmFsaXkgYXMgYSByZWd1bGFyIE9wZW5UeXBlIGZvbnQ7IHRoZXJlIGFyZSBubyBgbmFtZScsCglgaGVhZCcsIGBPUy8yJywgYW5kIGBwb3N0JyB0YWJsZXM7IHRoZXJlIGFyZSB0d28gbmV3IHRhYmxlcywgYFNJTkcnCgl3aGljaCBjb250YWlucyBkZXRhaWxzIGFib3V0IHRoZSBnbHlwaGxldCwgYW5kIGBNRVRBJyB3aGljaCBjb250YWlucwoJbWV0YWRhdGEuCgoJRnVydGhlciBpbmZvcm1hdGlvbiBvbiB0aGUgU0lORyBHbHlwaGxldCBmb3JtYXQgY2FuIGJlIGZvdW5kIGF0OgoKCSAgaHR0cDovL3d3dy5hZG9iZS5jb20vcHJvZHVjdHMvaW5kZXNpZ24vc2luZ19nYWlqaS5odG1sCgoJKiBmcmVldHlwZTIvaW5jbHVkZS9mcmVldHlwZS90dGFncy5oIChUVEFHX1NJTkcsIFRUQUdfTUVUQSk6IE5ldwoJbWFjcm9zIGZvciB0aGUgT3BlblR5cGUgdGFibGVzIGBTSU5HJyBhbmQgYE1FVEEnLiAgVGhlc2UgdHdvIHRhYmxlcwoJYXJlIHVzZWQgaW4gU0lORyBHbHlwaGxldCBGb3JtYXQgZm9udHMuCgoyMDA1LTA5LTA5ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBzcmMvc2ZudC9zZm9ianMuYyAoc2ZudF9sb2FkX2ZhY2UpOiBSZWFjdGl2YXRlIGNvZGUgdG8gc2V0CglGVF9GQUNFX0ZMQUdfS0VSTklORyB3aGljaCBoYXMgYmVlbiBjb21tZW50ZWQgb3V0IGVycm9uZW91c2x5LgoKCSogZG9jcy9DSEFOR0VTOiBEb2N1bWVudCBpdC4KCjIwMDUtMDktMDUgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCglGaXhlcyBmb3IgYG1ha2UgbXVsdGknIGFuZCB1c2luZyBDKysgY29tcGlsZXIuCgoJKiBneHZhbGlkL2d4dmNvbW1uLmMgKGd4dl9zZXRfbGVuZ3RoX2J5X3VzaG9ydF9vZmZzZXQsCglneHZfc2V0X2xlbmd0aF9ieV91bG9uZ19vZmZzZXQsIGd4dl9hcnJheV9nZXRsaW1pdHNfYnl0ZSwKCWd4dl9hcnJheV9nZXRsaW1pdHNfdXNob3J0KTogRGVjbGFyZSB3aXRoIEZUX0xPQ0FMX0RFRi4KCShneHZfY29tcGFyZV9yYW5nZXMpOiBNYWtlIGl0IHN0YXRpYy4KCShneHZfTG9va3VwVGFibGVfZm10MF92YWxpZGF0ZSwgZ3h2X0xvb2t1cFRhYmxlX2ZtdDJfdmFsaWRhdGUsCglneHZfTG9va3VwVGFibGVfZm10NF92YWxpZGF0ZSwgZ3h2X0xvb2t1cFRhYmxlX2ZtdDZfdmFsaWRhdGUsCglneHZfTG9va3VwVGFibGVfZm10OF92YWxpZGF0ZSwgZ3h2X0xvb2t1cFRhYmxlX3ZhbGlkYXRlKTogSW1wcm92ZQoJdHJhY2UgbWVzc2FnZXMuCgkoZ3h2X1N0YXRlQXJyYXlfdmFsaWRhdGUsIGd4dl9YU3RhdGVBcnJheV92YWxpZGF0ZSk6IHMvY2xhc3MvY2xhenovLgoJKEdYVl9TVEFURVRBQkxFX0hFQURFUl9TSVpFLCBHWFZfU1RBVEVIRUFERVJfU0laRSwKCUdYVl9YU1RBVEVUQUJMRV9IRUFERVJfU0laRSwgR1hWX1hTVEFURUhFQURFUl9TSVpFKTogTW92ZSB0bwoJZ3h2Y29tbW4uaC4KCgkqIGd4dmFsaWQvZ3h2Y29tbW4uaDogQWRkIHByb3RvdHlwZXMgZm9yCglneHZfU3RhdGVUYWJsZV9zdWJ0YWJsZV9zZXR1cCwgZ3h2X1hTdGF0ZVRhYmxlX3N1YnRhYmxlX3NldHVwLAoJZ3h2X1hTdGF0ZVRhYmxlX3ZhbGlkYXRlLCBneHZfYXJyYXlfZ2V0bGltaXRzX2J5dGUsCglneHZfYXJyYXlfZ2V0bGltaXRzX3VzaG9ydCwgZ3h2X3NldF9sZW5ndGhfYnlfdXNob3J0X29mZnNldCwKCWd4dl9zZXRfbGVuZ3RoX2J5X3Vsb25nX29mZnNldCwgZ3h2X29kdGVjdF9hZGRfcmFuZ2UsCglneHZfb2R0ZWN0X3ZhbGlkYXRlLgoJKEdYVl9TVEFURVRBQkxFX0hFQURFUl9TSVpFLCBHWFZfU1RBVEVIRUFERVJfU0laRSwKCUdYVl9YU1RBVEVUQUJMRV9IRUFERVJfU0laRSwgR1hWX1hTVEFURUhFQURFUl9TSVpFKTogTW92ZWQgZnJvbQoJZ3h2Y29tbW4uYy4KCgkqIHNyYy9neHZhbGlkL2d4dmJzbG4uYyAoZ3h2X2JzbG5fTG9va3VwVmFsdWVfdmFsaWRhdGUsCglneHZfYnNsbl9wYXJ0c19mbXQxX3ZhbGlkYXRlKTogSW1wcm92ZSB0cmFjZSBtZXNzYWdlcy4KCgkqIGd4dmFsaWQvZ3h2ZmVhdC5jOiBTcGxpdCBvZmYgcHJlZGVmaW5lZCByZWdpc3RyeSBzdHVmZiB0by4uLgoJKiBneHZhbGlkL2d4dmZlYXQuaDogTmV3IGZpbGUuCgoJKiBneHZhbGlkL2d4dmp1c3QuYyAoZ3h2X2p1c3Rfd2RjX2VudHJ5X3ZhbGlkYXRlKTogSW1wcm92ZSB0cmFjZQoJbWVzc2FnZS4KCgkqIGd4dmFsaWQvZ3h2a2Vybi5jIChHWFZfa2Vybl9EaWFsZWN0KTogQWRkIEtFUk5fRElBTEVDVF9VTktOT1dOLgoJKGd4dl9rZXJuX3N1YnRhYmxlX2ZtdDFfdmFsdWVUYWJsZV9sb2FkLAoJZ3h2X2tlcm5fc3VidGFibGVfZm10MV9zdWJ0YWJsZV9zZXR1cCwKCWd4dl9rZXJuX3N1YnRhYmxlX2ZtdDFfZW50cnlfdmFsaWRhdGUpOiBGaXggQysrIGNvbXBpbGVyIGVycm9ycy4KCShneHZfa2Vybl9jb3ZlcmFnZV92YWxpZGF0ZSk6IFVzZSBLRVJOX0RJQUxFQ1RfVU5LV09XTi4KCUltcHJvdmUgdHJhY2UgbWVzc2FnZS4KCShneHZfa2Vybl92YWxpZGF0ZV9nZW5lcmljKTogRml4IEMrKyBjb21waWxlciBlcnJvci4KCUltcHJvdmUgdHJhY2UgbWVzc2FnZS4KCShneHZfa2Vybl92YWxpZGF0ZV9jbGFzc2ljKTogRml4IEMrKyBjb21waWxlciBlcnJvci4KCgkqIGd4dmFsaWQvZ3h2bW9ydDAuYyAoZ3h2X21vcnRfc3VidGFibGVfdHlwZTBfdmFsaWRhdGUpOiBEZWNsYXJlCgl3aXRoIEZUX0xPQ0FMX0RFRi4KCgkqIGd4dmFsaWQvZ3h2bW9ydDEuYwoJKGd4dl9tb3J0X3N1YnRhYmxlX3R5cGUxX3N1YnN0aXR1dGlvblRhYmxlX2xvYWQsCglneHZfbW9ydF9zdWJ0YWJsZV90eXBlMV9zdWJ0YWJsZV9zZXR1cCk6IEZpeCBDKysgY29tcGlsZXIgZXJyb3JzLgoJKGd4dl9tb3J0X3N1YnRhYmxlX3R5cGUxX3N1YnN0VGFibGVfdmFsaWRhdGUpOiBJbXByb3ZlIHRyYWNlCgltZXNzYWdlLgoJKGd4dl9tb3J0X3N1YnRhYmxlX3R5cGUxX3ZhbGlkYXRlKTogRGVjbGFyZSB3aXRoIEZUX0xPQ0FMX0RFRi4KCgkqIGd4dmFsaWQvZ3h2bW9ydDIuYyAoZ3h2X21vcnRfc3VidGFibGVfdHlwZTJfb3B0dGFibGVfbG9hZCwKCWd4dl9tb3J0X3N1YnRhYmxlX3R5cGUyX3N1YnRhYmxlX3NldHVwLAoJZ3h2X21vcnRfc3VidGFibGVfdHlwZTJfbGlnQWN0aW9uT2Zmc2V0X3ZhbGlkYXRlLAoJZ3h2X21vcnRfc3VidGFibGVfdHlwZTJfbGlnYXR1cmVUYWJsZV92YWxpZGF0ZSk6IEZpeCBDKysgY29tcGlsZXIKCWVycm9ycy4KCShneHZfbW9ydF9zdWJ0YWJsZV90eXBlMl92YWxpZGF0ZSk6IERlY2xhcmUgd2l0aCBGVF9MT0NBTF9ERUYuCgoJKiBneHZhbGlkL2d4dm1vcnQ0LmMgKGd4dl9tb3J0X3N1YnRhYmxlX3R5cGU0X3ZhbGlkYXRlKTogRGVjbGFyZQoJd2l0aCBGVF9MT0NBTF9ERUYuCgoJKiBneHZhbGlkL2d4dm1vcnQ1LmMgKGd4dl9tb3J0X3N1YnRhYmxlX3R5cGU1X3N1YnRhYmxlX3NldHVwLAoJZ3h2X21vcnRfc3VidGFibGVfdHlwZTVfSW5zZXJ0TGlzdF92YWxpZGF0ZSk6IEZpeCBDKysgY29tcGlsZXIKCWVycm9ycy4KCShneHZfbW9ydF9zdWJ0YWJsZV90eXBlNV92YWxpZGF0ZSk6IERlY2xhcmUgd2l0aCBGVF9MT0NBTF9ERUYuCgoJKiBneHZhbGlkL2d4dm1vcnQuYzogSW5jbHVkZSBneHZmZWF0LmguCgkoZ3h2X21vcnRfZmVhdHVyZWFycmF5X3ZhbGlkYXRlLCBneHZfbW9ydF9jb3ZlcmFnZV92YWxpZGF0ZSk6CglEZWNsYXJlIHdpdGggRlRfTE9DQUxfREVGLgoJKGd4dl9tb3J0X3N1YnRhYmxlc192YWxpZGF0ZSwgZ3h2X21vcnRfdmFsaWRhdGUpOiBJbXByb3ZlIHRyYWNlCgltZXNzYWdlcy4KCgkqIGd4dmFsaWQvZ3h2bW9ydC5oIChneHZfbW9ydF9mZWF0dXJlX3ZhbGlkYXRlKTogUmVtb3ZlLgoKCSogZ3h2YWxpZC9neHZtb3J4MC5jIChneHZfbW9yeF9zdWJ0YWJsZV90eXBlMF92YWxpZGF0ZSk6IERlY2xhcmUKCXdpdGggRlRfTE9DQUxfREVGLgoKCSogZ3h2YWxpZC9neHZtb3J4MS5jCgkoZ3h2X21vcnhfc3VidGFibGVfdHlwZTFfc3Vic3RpdHV0aW9uVGFibGVfbG9hZCwKCWd4dl9tb3J4X3N1YnRhYmxlX3R5cGUxX3N1YnRhYmxlX3NldHVwLAoJZ3h2X21vcnhfc3VidGFibGVfdHlwZTFfZW50cnlfdmFsaWRhdGUsCglneHZfbW9yeF9zdWJ0YWJsZV90eXBlMV9zdWJzdGl0dXRpb25UYWJsZV92YWxpZGF0ZSk6IEZpeCBDKysKCWNvbXBpbGVyIGVycm9ycy4KCShneHZfbW9yeF9zdWJ0YWJsZV90eXBlMV92YWxpZGF0ZSk6IERlY2xhcmUgd2l0aCBGVF9MT0NBTF9ERUYuCgoJKiBneHZhbGlkL2d4dm1vcngyLmMgKGd4dl9tb3J4X3N1YnRhYmxlX3R5cGUyX29wdHRhYmxlX2xvYWQsCglneHZfbW9yeF9zdWJ0YWJsZV90eXBlMl9zdWJ0YWJsZV9zZXR1cCwKCWd4dl9tb3J4X3N1YnRhYmxlX3R5cGUyX2xpZ0FjdGlvbkluZGV4X3ZhbGlkYXRlLAoJZ3h2X21vcnhfc3VidGFibGVfdHlwZTJfbGlnYXR1cmVUYWJsZV92YWxpZGF0ZSk6IEZpeCBDKysgY29tcGlsZXIKCWVycm9ycy4KCShneHZfbW9yeF9zdWJ0YWJsZV90eXBlMl92YWxpZGF0ZSk6IERlY2xhcmUgd2l0aCBGVF9MT0NBTF9ERUYuCglGaXggdHlwby4KCgkqIGd4dmFsaWQvZ3h2bW9yeDQuYyAoZ3h2X21vcnhfc3VidGFibGVfdHlwZTRfdmFsaWRhdGUpOiBEZWNsYXJlCgl3aXRoIEZUX0xPQ0FMX0RFRi4KCgkqIGd4dmFsaWQvZ3h2bW9yeDUuYyAoZ3h2X21vcnhfc3VidGFibGVfdHlwZTVfaW5zZXJ0aW9uR2x5cGhfbG9hZCwKCWd4dl9tb3J4X3N1YnRhYmxlX3R5cGU1X3N1YnRhYmxlX3NldHVwKTogRml4IEMrKyBjb21waWxlciBlcnJvci4KCShneHZfbW9yeF9zdWJ0YWJsZV90eXBlNV92YWxpZGF0ZSk6IERlY2xhcmUgd2l0aCBGVF9MT0NBTF9ERUYuCgoJKiBneHZhbGlkL2d4dm1vcnguYyAoZ3h2X21vcnhfc3VidGFibGVzX3ZhbGlkYXRlLAoJZ3h2X21vcnhfdmFsaWRhdGUpOiBJbXByb3ZlIHRyYWNlIG1lc3NhZ2UuCgoJKiBneHZhbGlkL2d4dm9wYmQuYyAoZ3h2X29wYmRfTG9va3VwRm10NF90cmFuc2l0KTogRml4IGNvbXBpbGVyCgl3YXJuaW5ncy4KCShneHZfb3BiZF92YWxpZGF0ZSk6IEltcHJvdmUgdHJhY2UgbWVzc2FnZS4KCgkqIGd4dmFsaWQvZ3h2cHJvcC5jOiBEZWNvcmF0ZSBjb25zdGFudHMgd2l0aCBgVScgYW5kIGBMJyB3aGVyZQoJYXBwcm9wcmlhdGUuCgkoZ3h2X3Byb3BfemVyb19hZHZhbmNlX3ZhbGlkYXRlLCBneHZfcHJvcF92YWxpZGF0ZSk6IEltcHJvdmUgdHJhY2UKCW1lc3NhZ2UuCgoJKiBneHZhbGlkL2d4dnRyYWsuYyAoZ3h2X3RyYWtfdHJhY2tUYWJsZV92YWxpZGF0ZSk6IFJlbW92ZSB1bnVzZWQKCXBhcmFtZXRlci4gIFVwZGF0ZSBhbGwgY2FsbGVycy4KCShneHZfdHJha192YWxpZGF0ZSk6IEltcHJvdmUgdHJhY2UgbWVzc2FnZS4KCgkqIHJ1bGVzLm1rIChHWFZfRFJWX0gpOiBBZGQgZ3h2ZmVhdC5oLgoKMjAwNS0wOS0wMSAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogc3JjL2d4dmFsaWQvZ3h2YnNsbi5jIChHWFZfQlNMTl9WQUxVRV9FTVBUWSk6IEFkZCBgVScuCgoJKiBzcmMvZ3h2YWxpZC9neG1vcnQxLmMgKEdYVl9NT1JUX1NVQlRBQkxFX1RZUEUxX0hFQURFUl9TSVpFKSwKCXNyYy9neHZhbGlkL2d4bW9ydDIuYyAoR1hWX01PUlRfU1VCVEFCTEVfVFlQRTJfSEVBREVSX1NJWkUpOiBGaXgKCXR5cG8uCgoJKiBzcmMvZ3h2YWxpZC9neHZtb3J4MC5jLCBzcmMvZ3h2YWxpZC9neHZtb3J4MS5jLAoJc3JjL2d4dmFsaWQvZ3h2bW9yeDIuYywgc3JjL2d4dmFsaWQvZ3h2bW9yeDQuYywKCXNyYy9neHZhbGlkL2d4dm1vcng1LmMsIHNyYy9neHZhbGlkL2d4dm1vcnQuYzogSW1wcm92ZSB0cmFjZQoJbWVzc2FnZXMuCglEZWNvcmF0ZSBjb25zdGFudHMgd2l0aCBgVScgYW5kIGBMJyB3aGVyZSBhcHByb3ByaWF0ZS4KCUZpeCBjb21waWxlciB3YXJuaW5ncy4KCjIwMDUtMDgtMzEgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIHNyYy90cnVldHlwZS90dGdsb2FkLmMgKGxvYWRfdHJ1ZXR5cGVfZ2x5cGgpOiBGaXggdHlwby4KCgkqIHNyYy9neHZhbGlkL2d4dmJzbG4uYyAoZ3h2X2JzbG5fdmFsaWRhdGUpOiBGaXggdHJhY2UgbWVzc2FnZS4KCgkqIHNyYy9neHZhbGlkL2d4dmNvbW1uLmMgKGd4dl9vZHRlY3RfYWRkX3JhbmdlKTogVXNlIGBjb25zdCcuCgoJKiBzcmMvZ3h2YWxpZC9neHZmZWF0LmMsIHNyYy9neHZhbGlkL2d4dmp1c3QuYywKCXNyYy9neHZhbGlkL2d4dmtlcm4uYywgc3JjL2d4dmFsaWQvZ3h2bGNhci5jLCBzcmMvZ3h2YWxpZC9neHZtb2QuYywKCXNyYy9neHZhbGlkL2d4dm1vcnQwLmMsIHNyYy9neHZhbGlkL2d4dm1vcnQxLmMsCglzcmMvZ3h2YWxpZC9neHZtb3J0Mi5jLCBzcmMvZ3h2YWxpZC9neHZtb3J0NC5jLAoJc3JjL2d4dmFsaWQvZ3h2bW9ydDUuYywgc3JjL2d4dmFsaWQvZ3h2bW9ydC5jOiBJbXByb3ZlIHRyYWNlCgltZXNzYWdlcy4KCURlY29yYXRlIGNvbnN0YW50cyB3aXRoIGBVJyBhbmQgYEwnIHdoZXJlIGFwcHJvcHJpYXRlLgoJRml4IGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAwNS0wOC0zMCAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogc3JjL2d4dmFsaWQvUkVBRE1FOiBSZXZpc2VkLgoJKiBzcmMvZ3h2YWxpZC9neHZic2xuLmM6IEZpeCBjb21waWxlciB3YXJuaW5ncy4KCSogc3JjL2d4dmFsaWQvZ3h2Y29tbW4uYzogRml4IGNvbXBpbGVyIHdhcm5pbmdzLgoJKGd4dl9YRW50cnlUYWJsZV92YWxpZGF0ZSwgZ3h2X2NvbXBhcmVfcmFuZ2VzKTogUmVtb3ZlIHVudXNlZAoJcGFyYW1ldGVyLiAgVXBkYXRlIGFsbCBjYWxsZXJzLgoJSW1wcm92ZSB0cmFjZSBtZXNzYWdlcy4KCVNvbWUgZm9ybWF0dGluZy4KCjIwMDUtMDgtMjkgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvZnJlZXR5cGUuaCwgaW5jbHVkZS9mcmVldHlwZS9mdGNoYXB0ZXJzLmg6IEFkZAoJYSBwcmVsaW1pbmFyeSBzZWN0aW9uIHdpdGggc29tZSBleHBsYW5hdGlvbnMgYWJvdXQgdXNlciBhbGxvY2F0aW9uLgoKCSogc3JjL3Rvb2xzL2RvY21ha2VyL3RvaHRtbC5weSAoSHRtbEZvcm1hdHRlci5zZWN0aW9uX2VudGVyKToKCURvbid0IGFib3J0IGlmIHRoZXJlIGFyZSBubyBkYXRhIHR5cGVzLCBmdW5jdGlvbnMsIGV0Yy4sIGluIGEKCXNlY3Rpb24uCglQcmludCBzeW5vcHNpcyBvbmx5IGlmIHdlIGhhdmUgYSBkYXRhIHR5cGUsIGZ1bmN0aW9uLCBldGMuCgoJKiBkb2NzL0lOU1RBTEwuQU5ZLCBkb2NzL0lOU1RBTEwsIGRvY3MvSU5TVEFMTC5VTlgsIGRvY3MvQ1VTVE9NSVpFLAoJZG9jcy9JTlNUQUxMLkdOVSwgZG9jcy9UUlVFVFlQRSwgZG9jcy9ERUJVRywgZG9jcy9VUEdSQURFLlVOWCwKCWRvY3MvVkVSU0lPTi5ETEwsIGRvY3MvZm9ybWF0cy50eHQ6IFJldmlzZWQsIGZvcm1hdHRlZC4KCjIwMDUtMDgtMjggIEdlb3JnZSBXaWxsaWFtcyAgPGd3d0BzaWxjb20uY29tPgoKCSogc3JjL3RydWV0eXBlL3R0Z2xvYWQuYyBbVFRfTUFYX0NPTVBPU0lURV9SRUNVUlNFXTogUmVtb3ZlZC4KCShsb2FkX3RydWV0eXBlX2dseXBoKTogTGltaXQgcmVjdXJzaW9uIGRlcHRoIGJ5IGBtYXhDb21wb25lbnREZXB0aCcuCgoyMDA1LTA4LTI1ICBKLiBBbGkgSGFybG93ICA8YWxpQGF2cmMuY2l0eS5hYy51az4KCgkqIGJ1aWxkcy91bml4L2ZyZWV0eXBlMi5pbiAoQ0ZsYWdzKTogQWRkIG1pc3NpbmcgZGlyZWN0b3J5LgoKMjAwNS0wOC0yNCAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogZG9jcy9DSEFOR0VTOiBNZW50aW9uIGd4dmFsaWQgbW9kdWxlLgoKMjAwNS0wOC0yMyAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogc3JjL2F1dG9maXQvYWZsYXRpbi5jIChhZl9sYXRpbl9tZXRyaWNzX3NjYWxlKTogSW5pdGlhbGl6ZQoJcmVuZGVyIG1vZGUgcHJvcGVybHkuICBSZXBvcnRlZCBieSBjaHJpc0Bkb2tlaW4uY28udWsuCgoyMDA1LTA4LTIzICBzdXp1a2kgdG9zaGl5YSAgPG1wc3V6dWtpQGhpcm9zaGltYS11LmFjLmpwPgoKCUFkZCBneHZhbGlkIG1vZHVsZSB0byB2YWxpZGF0ZSBUcnVlVHlwZSBHWC9BQVQgdGFibGVzLgoKCU1vZGlmaWNhdGlvbnMgb24gZXhpc3RpbmcgZmlsZXM6CgoJKiBKYW1maWxlOiBSZWdpc3RlciBneHZhbGlkIG1vZHVsZS4KCSogc3JjL2Jhc2UvSmFtZmlsZTogUmVnaXN0ZXIgZnRneHZhbC5jLgoJKiBzcmMvYmFzZS9ydWxlLm1rOiBSZWdpc3RlciBmdGd4dmFsLmMuCgkqIGRvY3MvSU5TVEFMTC5BTlk6IFJlZ2lzdGVyIGd4dmFsaWQvZ3h2YWxpZC5jLgoKCSogaW5jbHVkZS9mcmVldHlwZS9jb25maWcvZnRoZWFkZXIuaCAoRlRfR1hfVkFMSURBVEVfSCk6IE5ldyBtYWNybwoJdG8gaW5jbHVkZSBneHZhbGlkIGhlYWRlciBmaWxlLgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2NvbmZpZy9mdG1vZHVsZS5oOiBSZWdpc3RlciBneHZfbW9kdWxlX2NsYXNzLgoKCSogaW5jbHVkZS9mcmVldHlwZS9mdGNoYXB0ZXJzLmg6IEFkZCBjb21tZW50IGFib3V0IGd4X3ZhbGlkYXRpb24uCgkqIGluY2x1ZGUvZnJlZXR5cGUvZnRvdHZhbC5oOiBDaGFuZ2Uga2V5d29yZCBGVF9WQUxJREFURV9YWFgKCXRvIEZUX1ZBTElEQVRFX09UWFhYIHRvIGNvLWV4aXN0IHdpdGggZ3h2YWxpZC4KCSogaW5jbHVkZS9mcmVldHlwZS90dHRhZ3MuaDogQWRkIHRhZ3MgZm9yIFRydWVUeXBlIEdYL0FBVCB0YWJsZXMuCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL2Z0c2Vydi5oIChGVF9TRVJWSUNFX0dYX1ZBTElEQVRFX0gpOiBOZXcKCW1hY3JvIGZvciBneHZhbGlkIHNlcnZpY2UuCgkqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvZnR0cmFjZS5oOiBBZGQgdHJhY2UgZmFjaWxpdGllcyBmb3IKCWd4dmFsaWQuCgoJTmV3IGZpbGVzIG9uIGV4aXN0aW5nIGRpcmVjdG9yaWVzOgoKCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9zZXJ2aWNlcy9zdmd4dmFsLmg6IFJlZ2lzdHJhdGlvbiBvZgoJdmFsaWRhdGlvbiBzZXJ2aWNlIGZvciBUcnVlVHlwZSBHWC9BQVQgYW5kIGNsYXNzaWMga2VybiB0YWJsZS4KCSogaW5jbHVkZS9mcmVldHlwZS9mdGd4dmFsLmg6IFB1YmxpYyBBUEkgZGVmaW5pdGlvbiB0byB1c2UgZ3h2YWxpZC4KCSogc3JjL2Jhc2UvZnRneHZhbC5jOiBQdWJsaWMgQVBJIG9mIGd4dmFsaWQuCgoJTmV3IGZpbGVzIHVuZGVyIHNyYy9neHZhbGlkLzoKCgkqIHNyYy9neHZhbGlkL0phbWZpbGUgc3JjL2d4dmFsaWQvUkVBRE1FIHNyYy9neHZhbGlkL21vZHVsZS5tawoJc3JjL2d4dmFsaWQvcnVsZXMubWsgc3JjL2d4dmFsaWQvZ3h2YWxpZC5jIHNyYy9neHZhbGlkL2d4dmFsaWQuaAoJc3JjL2d4dmFsaWQvZ3h2YnNsbi5jIHNyYy9neHZhbGlkL2d4dmNvbW1uLmMgc3JjL2d4dmFsaWQvZ3h2Y29tbW4uaAoJc3JjL2d4dmFsaWQvZ3h2ZXJyb3IuaCBzcmMvZ3h2YWxpZC9neHZmZWF0LmMgc3JjL2d4dmFsaWQvZ3h2Zmdlbi5jCglzcmMvZ3h2YWxpZC9neHZqdXN0LmMgc3JjL2d4dmFsaWQvZ3h2a2Vybi5jIHNyYy9neHZhbGlkL2d4dmxjYXIuYwoJc3JjL2d4dmFsaWQvZ3h2bW9kLmMgc3JjL2d4dmFsaWQvZ3h2bW9kLmggc3JjL2d4dmFsaWQvZ3h2bW9ydC5jCglzcmMvZ3h2YWxpZC9neHZtb3J0Lmggc3JjL2d4dmFsaWQvZ3h2bW9ydDAuYyBzcmMvZ3h2YWxpZC9neHZtb3J0MS5jCglzcmMvZ3h2YWxpZC9neHZtb3J0Mi5jIHNyYy9neHZhbGlkL2d4dm1vcnQ0LmMgc3JjL2d4dmFsaWQvZ3h2bW9ydDUuYwoJc3JjL2d4dmFsaWQvZ3h2bW9yeC5jIHNyYy9neHZhbGlkL2d4dm1vcnguaCBzcmMvZ3h2YWxpZC9neHZtb3J4MC5jCglzcmMvZ3h2YWxpZC9neHZtb3J4MS5jIHNyYy9neHZhbGlkL2d4dm1vcngyLmMgc3JjL2d4dmFsaWQvZ3h2bW9yeDQuYwoJc3JjL2d4dmFsaWQvZ3h2bW9yeDUuYyBzcmMvZ3h2YWxpZC9neHZvcGJkLmMgc3JjL2d4dmFsaWQvZ3h2cHJvcC5jCglzcmMvZ3h2YWxpZC9neHZ0cmFrLmM6IE5ldyBmaWxlcywgZ3h2YWxpZCBib2R5LgoKMjAwNS0wOC0yMSAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogc3JjL3RydWV0eXBlL3R0Z2xvYWQuYyAoVFRfTG9hZF9HbHlwaCk6IE9ubHkgdHJhbnNsYXRlIG91dGxpbmUKCXRvICgwLDApIGlmIGJpdCAxIG9mIHRoZSBgaGVhZCcgdGFibGUgaXNuJ3Qgc2V0LiAgVGhpcyBpbXByb3ZlcwoJcmVuZGVyaW5nIG9mIGJ1Z2d5IGZvbnRzLgoKMjAwNS0wOC0yMCAgQ2hpYSBJIFd1ICA8YjkwMjAxMDQ3QG50dS5lZHUudHc+CgoJKiBzcmMvdHJ1ZXR5cGUvdHRkcml2ZXIuYyAoTG9hZF9HbHlwaCk6IERvbid0IGNoZWNrIHRoZSB2YWxpZGl0eSBvZgoJdHRtZXRyaWNzIGhlcmUuICBUcnVlVHlwZSBmb250cyB3aXRoIG9ubHkgc2JpdHMgYWx3YXlzIGhhdmUKCXR0bWV0cmljcy52YWxpZCBzZXQgdG8gZmFsc2UuCgoJKiBzcmMvdHJ1ZXR5cGUvdHRnbG9hZC5jIChUVF9Mb2FkX0dseXBoKTogQ2hlY2sgdGhhdCB0dG1ldHJpY3MgaXMKCXZhbGlkIGJlZm9yZSBsb2FkaW5nIG91dGxpbmUgZ2x5cGguCgoJKiBzcmMvY2FjaGUvZnRjaW1hZ2UuYyAoRlRDX0lOb2RlX05ldyk6IEZpeCBhIG1lbW9yeSBsZWFrLgoKMjAwNS0wOC0yMCAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogc3JjL3NmbnQvdHRsb2FkLmMgKHR0X2ZhY2VfbG9hZF9tZXRyaWNzX2hlYWRlcik6IElnbm9yZSBtaXNzaW5nCglgaGhlYScgdGFibGUgZm9yIFNGTlQgTWFjIGZvbnRzLiAgQ2hhbmdlIGJhc2VkIG9uIGEgcGF0Y2ggYnkKCW1wc3V6dWtpQGhpcm9zaGltYS11LmFjLmpwLgoKMjAwNS0wOC0yMCAgTWFzYXRha2UgWUFNQVRPICA8amV0QGd5dmUub3JnPgoKCSogc3JjL290dmFsaWQvb3R2bW9kLmMgKG90dl92YWxpZGF0ZSk6IFVzZSBmdF92YWxpZGF0b3JfcnVuIGluc3RlYWQKCW9mIGZ0X3NldGptcC4KCjIwMDUtMDgtMTkgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIHNyYy90cnVldHlwZS90dGdsb2FkLmMgKGxvYWRfdHJ1ZXR5cGVfZ2x5cGgpOiBGaXggY29tcGlsZXIKCXdhcm5pbmdzLgoKMjAwNS0wOC0xNiAgQ2hpYSBJIFd1ICA8YjkwMjAxMDQ3QG50dS5lZHUudHc+CgoJKiBzcmMvdHJ1ZXR5cGUvdHRpbnRlcnAuYywgc3JjL3RydWV0eXBlL3R0aW50ZXJwLmg6IFVwZGF0ZSBjb3B5cmlnaHQKCW1lc3NhZ2VzLgoKMjAwNS0wOC0xNiAgQ2hpYSBJIFd1ICA8YjkwMjAxMDQ3QG50dS5lZHUudHc+CgoJKiBzcmMvdHJ1ZXR5cGUvdHRpbnRlcnAuYywgc3JjL3RydWV0eXBlL3R0aW50ZXJwLmg6IFJlbW92ZSBvcmlnaW5hbAoJVFRfRG9uZV9Db250ZXh0IGFuZCByZW5hbWUgVFRfRGVzdHJveV9Db250ZXh0IHRvIFRUX0RvbmVfQ29udGV4dAoJd2l0aCBzbGlnaHQgY2hhbmdlcy4KCVVwZGF0ZSBhbGwgY2FsbGVycy4KCShUVF9OZXdfQ29udGV4dCk6IE5vdyB0YWtlcyBUVF9Ecml2ZXIgYXJndW1lbnQgZGlyZWN0bHkuCglVcGRhdGUgYWxsIGNhbGxlcnMuCgoJKiBzcmMvdHJ1ZXR5cGUvdHRvYmpzLmggKHR0X3Nsb3RfaW5pdCk6IE5ldyBmdW5jdGlvbi4KCSogc3JjL3RydWV0eXBlL3R0b2Jqcy5jICh0dF9kcml2ZXJfaW5pdCk6IEluaXRpYWxpemUgZXhlY3V0aW9uCgljb250ZXh0IGhlcmUuCgkodHRfc2xvdF9pbml0KTogTmV3IGZ1bmN0aW9uIHRvIGNyZWF0ZSBleHRyYSBwb2ludHMgZm9yIHRoZSBpbnRlcm5hbAoJZ2x5cGggbG9hZGVyLiAgV2UgdGhlbiB1c2UgaXQgZGlyZWN0bHksIGluc3RlYWQgb2YgZmFjZSdzIGdseXBoCglsb2FkZXIsIHdoZW4gbG9hZGluZyBnbHlwaC4KCgkqIHNyYy90cnVldHlwZS90dGRyaXZlci5jICh0dF9kcml2ZXJfY2xhc3MpOiBVc2UgdHRfc2xvdF9pbml0IGZvcgoJZ2x5cGggc2xvdCBpbml0aWFsaXphdGlvbi4KCShMb2FkX0dseXBoKTogTG9hZCBmbGFnIGRlcGVuZGVuY2llcyBhcmUgaGFuZGxlZCBoZXJlLiAgUmV0dXJuIGVycm9yCglpZiBzaXplIGlzIE5VTEwuCgoJKiBzcmMvdHJ1ZXR5cGUvdHRnbG9hZC5jOiBIZWF2eSBjbGVhbnVwIGFuZCByZWZhY3RvcmluZy4KCShvcmdfdG9fY3VyKTogUmVtb3ZlZC4KCShUVF9Mb2FkX1NpbXBsZV9HbHlwaCk6IENhbGwgRlRfR2x5cGhMb2FkZXJfQ2hlY2tQb2ludHMuCgkoVFRfSGludF9HbHlwaCk6IE5ldyBmdW5jaW9uIHRvIGhpbnQgYSB6b25lLCBwcmVwYXJlZCBieSBjYWxsZXIuCgkoVFRfUHJvY2Vzc19TaW1wbGVfR2x5cGgpOiBzL2xvYWQvbG9hZGVyLy4KCVVzZSBsb2FkZXItPnBwIHZhbHVlcyBpbnN0ZWFkIG9mIHJlY2FsY3VsYXRpb24uCglVc2UgVFRfSGludF9HbHlwaC4KCU5vIG5lZWQgdG8gc2F2ZS9yZXN0b3JlIGxvYWRlci0+c3RyZWFtIGJlZm9yZSBhbmQgYWZ0ZXIKCVRUX1ZhcnlfR2V0X0dseXBoX0RlbHRhcyBub3cuCgkoVFRfTE9BREVSX1NFVF9QUCk6IE5ldyBtYWNybyB0byBjYWxjdWxhdGUgYW5kIHNldCB0aGUgZm91ciBwaGFudG9tCglwb2ludHMuCgkobG9hZF90cnVldHlwZV9nbHlwaCk6IE5ldmVyIHNldCBleGVjLT5nbHlwaFNpemUgdG8gMC4gIFRoaXMgY2xvc2VzCglTYXZhbm5haCBidWcgIzEzMTA3LgoJRm9yZ2V0IGdseXBoIGZyYW1lIGJlZm9yZSBjYWxsaW5nIFRUX1Byb2Nlc3NfU2ltcGxlX0dseXBoLgoJVXNlIFRUX0xPQURFUl9TRVRfUFAuCglTY2FsZSBhbGwgZm91ciBwaGFudG9tIHBvaW50cy4KCVNwbGl0IG9mZiBzb21lIGZ1bmN0aW9uYWxpdHkgdG8gLi4uCgkoVFRfUHJvY2Vzc19Db21wb3NpdGVfQ29tcG9uZW50LCBUVF9Qcm9jZXNzX0NvbXBvc2l0ZV9HbHlwaCk6IFRoZXNlCgluZXcgZnVuY3Rpb25zLgoJKFRUX0xvYWRfR2x5cGgpOiBTZXQgdmFyaW91cyBmaWVsZHMgb2YgYGdseXBoJyBoZXJlLCBub3QgaW4KCWxvYWRfdHJ1ZXR5cGVfZ2x5cGggYW5kIGNvbXB1dGVfZ2x5cGhfbWV0cmljcy4KCVNwbGl0IG9mZiBzb21lIGZ1bmN0aW9uYWxpdHkgdG8gLi4uCgkobG9hZF9zYml0X2ltYWdlLCB0dF9sb2FkZXJfaW5pdCk6IFRoZXNlIG5ldyBmdW5jdGlvbnMuCgkoY29tcHV0ZV9nbHlwaF9tZXRyaWNzKTogQ2FsbCBGVF9PdXRsaW5lX0dldF9DQm94LgoKMjAwNS0wOC0wOCAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogZG9jcy9JTlNUQUxMLkFOWTogVXBkYXRlZC4KCjIwMDUtMDgtMDUgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIHNyYy9jZmYvY2ZmZ2xvYWQuYyAoY2ZmX2J1aWxkZXJfY2xvc2VfY29udG91ciksCglzcmMvcHNhdXgvcHNvYmpzLmMgKHQxX2J1aWxkZXJfY2xvc2VfY29udG91cik6IFByb3RlY3QgYWdhaW5zdAoJemVybyBgb3V0bGluZScgcG9pbnRlci4KCgkqIHNyYy9iYXNlL2Z0Z2xvYWRyLmMgKEZUX0dseXBoTG9hZGVyX0FkZCk6IFByb3RlY3QgYWdhaW5zdCB6ZXJvCglgbG9hZGVyJyBhZGRyZXNzLgoKMjAwNS0wOC0wMyAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogc3JjL3NmbnQvc2Zkcml2ZXIuYyAoc2ZudF9pbnRlcmZhY2UpIFtGVF9PUFRJTUlaRV9NRU1PUlldOgoJUmVhY3RpdmF0ZSBwb2ludGVycyB0byB0dF9maW5kX3NiaXRfaW1hZ2UgYW5kIHR0X2xvYWRfc2JpdF9tZXRyaWNzCgl0byBtYWtlIFggd29yayBhZ2Fpbi4KCjIwMDUtMDgtMDIgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIHNyYy9vdHZhbGlkL290dmNvbW1uLmg6IFJlbW92ZSBkZWFkIGNvZGUuCgoyMDA1LTA3LTMxICBDaGlhIEkgV3UgIDxiOTAyMDEwNDdAbnR1LmVkdS50dz4KCgkqIHNyYy90cnVldHlwZS90dG9ianMuaCAodHRfc2l6ZV9ydW5fZnBnbSwgdHRfc2l6ZV9ydW5fcHJlcCk6IE5ldwoJZnVuY3Rpb25zLgoKCSogc3JjL3RydWV0eXBlL3R0b2Jqcy5jICh0dF9zaXplX3J1bl9mcGdtLCB0dF9zaXplX3J1bl9wcmVwKTogTmV3CglmdW5jdGlvbnMuCgkodHRfc2l6ZV9pbml0KTogQWRkIDQsIGluc3RlYWQgb2YgMiwgKHBoYW50b20pIHBvaW50cyB0byB0d2lsaWdodAoJem9uZS4KCU1vdmUgY29kZSB0aGF0IHJ1bnMgZnBnbSB0byB0dF9zaXplX3J1bl9mcGdtLgoJKFJlc2V0X091dGxpbmVfU2l6ZSk6IE1vdmUgY29kZSB0aGF0IHJ1bnMgcHJlcCB0byB0dF9zaXplX3J1bl9wcmVwLgoJKHR0X2dseXBoem9uZV9uZXcpOiBBbGxvY2F0ZSByaWdodCBzaXplIG9mIGFycmF5cy4KCVNldCBtYXhfcG9pbnRzIGFuZCBtYXhfY29udG91cnMgcHJvcGVybHkuCgoyMDA1LTA3LTI2ICBDaGlhIEkgV3UgIDxiOTAyMDEwNDdAbnR1LmVkdS50dz4KCgkqIHNyYy90cnVldHlwZS90dGRyaXZlci5jIChTZXRfQ2hhcl9TaXplcyk6IEF2b2lkIHVubmVjZXNzYXJ5Cgljb21wdXRhdGlvbnMgYW5kIGNsZWFuIHVwLgoKCSogc3JjL3RydWV0eXBlL3R0b2Jqcy5oIChzdHJ1Y3QgVFRfU2l6ZVJlY18pOiBDb21tZW50IG9uIHRoZQoJaW50ZXJuYWwgY29weSBvZiBtZXRyaWNzLgoKMjAwNS0wNy0xMiAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogaW5jbHVkZS9mcmVldHlwZS9mdG91dGxuLmggKEZUX091dGxpbmVfRW1ib2xkZW4pOiBGaXggcHJvdG90eXBlLgoJUmVwb3J0ZWQgYnkgWGVyeGVzLgoKMjAwNS0wNy0wNCAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9mdG1lbW9yeS5oIChGVF9SRUFMTE9DX0FSUkFZKTogRml4IHR5cG8uCglSZXBvcnRlZCBieSBCcmV0dCBIdXRsZXkuCgoyMDA1LTA2LTMwICBEYXZpZCBUdXJuZXIgIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJKiBzcmMvc2ZudC9mdGJpdG1hcC5jLCBzcmMvdHJ1ZXR5cGUvdHRnbG9hZC5jLCBzcmMvc2ZudC90dGNtYXAuYzoKCVJlbW92aW5nIGNvbXBpbGVyIHdhcm5pbmdzIChWaXN1YWwgQysrIC9XNCkuCgoKCUltcGxlbWVudCBhIHdvcmstYXJvdW5kIGZvciBicm9rZW4gQyBwcmVwcm9jZXNzb3IgaW4gVmlzdWFsIEMrKyAoaXQKCWhhcyBiZWVuIGNvbmZpcm1lZCBieSB0aGUgTVMgZGV2ZWxvcGVycyB0aGF0IGl0IGlzIGluZGVlZCBhIGJ1ZwoJd2hpY2ggd29uJ3QgYmUgZml4ZWQgaW4gdGhlIHZlcnkgbmVhciBmdXR1cmUpLgoKCSogSmFtZmlsZSAoRlQyX0NPTVBPTkVOVFMpOiBJbmNsdWRlIG90dmFsaWQgKGFnYWluKS4KCgkqIHNyYy9vdHZhbGlkL290dmNvbW1uLmggKE9UVl9OQU1FLCBPVFZfRlVOQyk6IE5ldyBtYWNyb3MuCgkoT1RWX05FU1QxLCBPVFZfTkVTVDIsIE9UVl9ORVNUMyk6IFVzZSBPVFZfTkFNRSBhbmQgT1RWX0ZVTkMgdG8KCWF2b2lkIGFyZ3VtZW50IGV4cGFuc2lvbiBieSBhcmd1bWVudCBwcmVzY2FuLgoJQXBwZW5kIGBGdW5jJyB0byBhbGwgYWZmZWN0ZWQgbWFjcm9zIGFuZCBjaGFuZ2UgdGhlbSB0byB0YWtlIGp1c3QgYQoJc2luZ2xlIGFyZ3VtZW50LiAgRXhhbXBsZTogYEF0dGFjaExpc3QnIGlzIHJlbmFtZWQgdG8KCWBBdHRhY2hMaXN0RnVuYycuCgoJKiBzcmMvb3R2YWxpZC9vdHZnZGVmLmMsIHNyYy9vdHZhbGlkL290dmdwb3MuYywKCXNyYy9vdHZhbGlkL290dmdzdWIuYywgc3JjL290dmpzdGYuYzogQXBwZW5kIGBGdW5jJyB0byBtYWNyb3MKCWFmZmVjdGVkIGJ5IHRoZSBjaGFuZ2VzIHRvIE9UVl9ORVNUeCBhbmQgbW9kaWZ5IHRoZW0gdG8gdGFrZSBqdXN0IGEKCXNpbmdsZSBhcmd1bWVudC4KCjIwMDUtMDYtMjAgIENoaWEgSSBXdSAgPGI5MDIwMTA0N0BudHUuZWR1LnR3PgoKCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9mdG9ianMuaCwgc3JjL2Jhc2UvZnRvYmpzLmM6IE5ldyBmdW5jdGlvbgoJZnRfZ2x5cGhzbG90X2dyaWRfZml0X21ldHJpY3MuCgoJKiBzcmMvdHJ1ZXR5cGUvdHRnbG9hZC5jIChjb21wdXRlX2dseXBoX21ldHJpY3MpOiBVc2UKCWZ0X2dseXBoc2xvdF9ncmlkX2ZpdF9tZXRyaWNzLgoKCSogc3JjL2NmZi9jZmZnbG9hZC5jIChjZmZfc2xvdF9sb2FkKSwgc3JjL2NpZC9jaWRnbG9hZC5jCgkoY2lkX3Nsb3RfbG9hZF9nbHlwaCksIHNyYy90eXBlMS90MWdsb2FkLmMgKFQxX0xvYWRfR2x5cGgpOiBVc2UKCWZ0X2dseXBoc2xvdF9ncmlkX2ZpdF9tZXRyaWNzLgoJRlRfT3V0bGluZV9HZXRfQ0JveCBpcyBjYWxsZWQgdHdpY2UuCgoJKiBzcmMvYmFzZS9mdHN5bnRoLmMgKEZUX0dseXBoU2xvdF9FbWJvbGRlbik6IE1vZGlmeSBtZXRyaWNzIHRvIG1vcmUKCXJlYXNvbmFibGUgdmFsdWVzIHdoZW4gZW1ib2xkZW5pbmcgb3V0bGluZSBnbHlwaHMuICBUaGUgdGhlb3JldGljCglvbmVzIGFyZSB1bnJlYWxpc3RpYy4KCjIwMDUtMDYtMTYgIENoaWEgSSBXdSAgPGI5MDIwMTA0N0BudHUuZWR1LnR3PgoKCSogc3JjL2Jhc2UvZnRvdXRsbi5jIChGVF9PdXRsaW5lX0VtYm9sZGVuKTogU3RyZW5ndGggc2hvdWxkIGJlCgloYWx2ZWQuCgoJKiBzcmMvYmFzZS9mdHN5bnRoLmMgKEZUX0dseXBoU2xvdF9FbWJvbGRlbik6IENoYW5nZSB0aGUgZGVmYXVsdAoJc3RyZW5ndGguCglEb24ndCBpbmNyZWFzZSBzbG90LT5hZHZhbmNlLnkuCgoyMDA1LTA2LTE2ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ZyZWV0eXBlLmggKEZSRUVUWVBFX01JTk9SKTogU2V0IHRvIDIuCgkoRlJFRVRZUEVfUEFUQ0gpOiBTZXQgdG8gMC4KCgkqIGJ1aWxkcy91bml4L2NvbmZpZ3VyZS5hYyAodmVyc2lvbl9pbmZvKTogU2V0IHRvIDk6OTozLgoJQ3VycmVudGx5LCB3ZSBhcmUgc3RpbGwgYmluYXJ5IGNvbXBhdGlibGUuCgoJKiBidWlsZHMvd2luMzIvdmlzdWFsYy9pbmRleC5odG1sLAoJYnVpbGRzL3dpbjMyL3Zpc3VhbGMvZnJlZXR5cGUuZHNwLAoJYnVpbGRzL3dpbjMyL3Zpc3VhbGMvZnJlZXR5cGUudmNwcm9qOiBzLzIxOS8yMTEwLywgcy8yLjEuOS8yLjEuMTAvLgoKCSogYnVpbGRzL2ZyZWV0eXBlLm1rIChyZWZkb2MpLCBSRUFETUUsIEphbWZpbGUgKFJlZkRvYyk6CglzLzIuMS45LzIuMS4xMC8uCgoJKiBkb2NzL0NIQU5HRVMsIGRvY3MvVkVSU0lPTi5ETEw6IFVwZGF0ZWQuCgoJKiBDaGFuZ2VMb2c6IFNwbGl0IG9mZiBvbGRlciBlbnRyaWVzIGludG8uLi4KCSogQ2hhbmdlTG9nLjIwLCBDaGFuZ2VMb2cuMjE6IFRoZXNlIG5ldyBmaWxlcy4KCjIwMDUtMDYtMTUgIEtpcmlsbCBTbWVsa292ICA8a2lyckBtbnMuc3BiLnJ1PgoKCVRoZSBuZXh0IHJlbGVhc2Ugd2lsbCBiZSAyLjIuMCwgc28gZG9uJ3Qgd29ycnkgYWJvdXQgc291cmNlIGNvZGUKCWJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LgoKCSogaW5jbHVkZS9mcmVldHlwZS9mdGltYWdlLmggKEZUX091dGxpbmVfTW92ZVRvRnVuYywKCUZUX091dGxpbmVfTGluZVRvRnVuYywgRlRfT3V0bGluZV9Db25pY1RvRnVuYywKCUZUX091dGxpbmVfQ3ViaWNUb0Z1bmMsIEZUX1NwYW5GdW5jLCBGVF9SYXN0ZXJfUmVuZGVyRnVuYyksCglpbmNsdWRlL2ZyZWV0eXBlL2Z0cmVuZGVyLmggKEZUX0dseXBoX1RyYW5zZm9ybUZ1bmMsCglGVF9SZW5kZXJlcl9SZW5kZXJGdW5jLCBGVF9SZW5kZXJlcl9UcmFuc2Zvcm1GdW5jKTogRGVjb3JhdGUKCXBhcmFtZXRlcnMgd2l0aCBgY29uc3QnIHdoZXJlIGFwcHJvcHJpYXRlLgoKMjAwNS0wNi0xNSAgQ2hpYSBJIFd1ICA8YjkwMjAxMDQ3QG50dS5lZHUudHc+CgoJKiBzcmMvc2ZudC90dHNiaXQuYyAodHRfZmFjZV9sb2FkX3NiaXRfaW1hZ2UpOiBDb21wdXRlIHZlcnRCZWFyaW5nWQoJdG8gbWFrZSBnbHlwaHMgY2VudGVyZWQgdmVydGljYWxseS4KCgkqIHNyYy90cnVldHlwZS90dGdsb2FkLmMgKGNvbXB1dGVfZ2x5cGhfbWV0cmljcyk6IENvbXB1dGUKCXZlcnRCZWFyaW5nWSB0byBtYWtlIGdseXBocyBjZW50ZXJlZCB2ZXJ0aWNhbGx5LgoJRml4IHNvbWUgYnVncyBpbiB2ZXJ0aWNhbCBtZXRyaWNzOgoKCSAgLiBsb2FkZXItPnBwMy55IGFuZCBsb2FkZXItPnBwNC55IGFyZSBpbiAyNi42IGZvcm1hdCwgbm90IGluIGZvbnQKCSAgICB1bml0cy4KCSAgLiBBcyB3ZSB1c2UgdGhlIGdseXBoJ3MgY2JveCB0byBjYWxjdWxhdGUgdGhlIHRvcCBiZWFyaW5nIG5vdwoJICAgIHRoZXJlIGlzcyBubyBuZWVkIHRvIGFkanVzdCBgdG9wJy4KCjIwMDUtMDYtMTUgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIHNyYy9vdHZhbGlkL290dmNvbW1uLmggKE9UVl9PUFRJT05BTF9UQUJMRSk6IFVzZSBGVF9VU2hvcnQgdG8gYmUKCWluIHN5bmMgd2l0aCBPVFZfT1BUSU9OQUxfT0ZGU0VULiAgUmVwb3J0ZWQgYnkgWUFNQVRPIE1hc2F0YWtlLgoKMjAwNS0wNi0xMyAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogZG9jcy9yZWxlYXNlOiBVcGRhdGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDb3B5cmlnaHQgMjAwNSwgMjAwNiBieQpEYXZpZCBUdXJuZXIsIFJvYmVydCBXaWxoZWxtLCBhbmQgV2VybmVyIExlbWJlcmcuCgpUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgRnJlZVR5cGUgcHJvamVjdCwgYW5kIG1heSBvbmx5IGJlIHVzZWQsIG1vZGlmaWVkLAphbmQgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBGcmVlVHlwZSBwcm9qZWN0IGxpY2Vuc2UsCkxJQ0VOU0UuVFhULiAgQnkgY29udGludWluZyB0byB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgeW91CmluZGljYXRlIHRoYXQgeW91IGhhdmUgcmVhZCB0aGUgbGljZW5zZSBhbmQgdW5kZXJzdGFuZCBhbmQgYWNjZXB0IGl0CmZ1bGx5LgoKCkxvY2FsIFZhcmlhYmxlczoKdmVyc2lvbi1jb250cm9sOiBuZXZlcgpjb2Rpbmc6IGxhdGluLTEKRW5kOgo=