MjAwMS0xMC0xOCAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKICAgICAgICAqIHNyYy9wc25hbWVzL3BzdGFibGVzLmgsIHNyYy90b29scy9nbG5hbWVzLnB5OiByZXdyb3RlIHRoZSAiZ2xuYW1lcy5weSIKICAgICAgICBzY3JpcHQgdXNlZCB0byBnZW5lcmF0ZSB0aGUgInBzdGFibGVzLmgiIGhlYWRlciBmaWxlLiBUaGUgb2xkIG9uZQogICAgICAgIGNvbnRhaW5lZCBhIGJ1ZyAoeWVzICEhKSB0aGF0IG1hZGUgRnJlZVR5cGUgcmV0dXJuIGluY29ycmVjdCBnbHlwaAogICAgICAgIG5hbWVzIGZvciBjZXJ0YWluIGdseXBocy4uCgoKKip0ZXN0KioKCiAgICAgICAgKiBzcmMvdHJ1ZXR5cGUvdHRkcml2ZXIuYzogY2hhbmdpbmcgY29tcHV0YXRpb24gb2YgcGl4ZWwgc2l6ZSBmcm9tCiAgICAgICAgY2hhcmFjdGVyIHNpemUgdG8gdXNlIHJvdW5kaW5nLiBUaGlzIGlzIGFuIGV4cGVyaW1lbnQgdG8gc2VlIGlmIHRoaXMKICAgICAgICBnaXZlcyB2YWx1ZXMgc2ltaWxhciB0byBXaW5kb3dzIGZvciBzY2FsZWQgYXNjZW50L2Rlc2NlbnQvZXRjLi4KCiAgICAgICAgKiBzcmMvYmFzZS9mdGNhbGMuYyAoRlRfRGl2NjRieTMyKTogY2hhbmdlZCB0aGUgaW1wbGVtZW50YXRpb24KICAgICAgICBzbGlnaHRseSBzaW5jZSB0aGUgb3JpZ2luYWwgY29kZSB3YXMgbWlzLWNvbXBpbGVkIG9uIE1hYyBtYWNoaW5lcwogICAgICAgIHVzaW5nIHRoZSBNUFcgQyBjb21waWxlci4uCgogICAgICAgICogc3JjL2Jhc2UvZnRvYmpzLmMgKEZUX1JlYWxsb2MpOiB3aGVuIGEgbWVtb3J5IGJsb2NrIHdhcyBncm93bgogICAgICAgIHRocm91Z2ggRlRfUmVhbGxvYywgdGhlIG5ldyBieXRlcyB3ZXJlIG5vdCBzZXQgdG8gMCwgd2hpY2ggY3JlYXRlZAogICAgICAgIHNvbWUgc3RyYW5nZSBidWdzIGluIHRoZSBQb3N0c2NyaXB0IGhpbnRlcgoKICAgICAgICAqIHNyYy9jaWQvY2lkZ2xvYWQuYzogYWRkaW5nIHN1cHBvcnQgdG8gbmV3IHBvc3RzY3JpcHQgaGludGVyCiAgICAgICAgCiAgICAgICAgKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL3BzZ2xvYmFsLmgsCiAgICAgICAgICBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL3BzaGludHMuaCwKICAgICAgICAgIGluY2x1ZGUvZnJlZXR5cGUvY29uZmlnL2Z0bW9kdWxlLmgsCiAgICAgICAgICBzcmMvcHNoaW50ZXIvSmFtZmlsZSwKICAgICAgICAgIHNyYy9wc2hpbnRlci9wc2hhbGdvLmgsCiAgICAgICAgICBzcmMvcHNoaW50ZXIvcHNoYWxnbzEuaCwKICAgICAgICAgIHNyYy9wc2hpbnRlci9wc2hhbGdvMS5jLAogICAgICAgICAgc3JjL3BzaGludGVyL3BzaGFsZ28yLmgsCiAgICAgICAgICBzcmMvcHNoaW50ZXIvcHNoYWxnbzIuYywKICAgICAgICAgIHNyYy9wc2hpbnRlci9wc2hnbG9iLmgsCiAgICAgICAgICBzcmMvcHNoaW50ZXIvcHNoZ2xvYi5jLAogICAgICAgICAgc3JjL3BzaGludGVyL3BzaGludGVyLmMsCiAgICAgICAgICBzcmMvcHNoaW50ZXIvcHNobW9kLmMsCiAgICAgICAgICBzcmMvcHNoaW50ZXIvcHNobW9kLmgsCiAgICAgICAgICBzcmMvcHNoaW50ZXIvcHNocmVjLmMsCiAgICAgICAgICBzcmMvcHNoaW50ZXIvcHNocmVjLmggOiBBZGRpbmcgbmV3IHBvc3RzY3JpcHQgaGludGVyIG1vZHVsZQoKICAgICAgICAqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvZnRvYmpzLmgsCiAgICAgICAgICBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL2ludGVybmFsLmgsCiAgICAgICAgICBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL3BzYXV4LmgsCiAgICAgICAgICBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL3QxdHlwZXMuaCwKICAgICAgICAgIHNyYy9wc2F1eC9wc29ianMuYywKICAgICAgICAgIHNyYy9wc2F1eC9wc29ianMuaCwKICAgICAgICAgIHNyYy9wc2F1eC90MWRlY29kZS5oLAogICAgICAgICAgc3JjL3BzYXV4L3QxZGVjb2RlLmMsCiAgICAgICAgICBzcmMvdHlwZTEvdDFkcml2ZXIuYywKICAgICAgICAgIHNyYy90eXBlMS90MWdsb2FkLmMsCiAgICAgICAgICBzcmMvdHlwZTEvdDFvYmpzLmMsCiAgICAgICAgICBzcmMvdHlwZTEvdDFvYmpzLmggOiB1cGRhdGVzIHRvIHVzZSB0aGUgbmV3IHBvc3RzY3JpcHQgaGludGVyCgogICAgICAgICogdGVzdHMvSmFtZmlsZSwgdGVzdHMvZ3ZpZXcuYzogQWRkaW5nIGEgbmV3IGdseXBoIGhpbnRpbmcKICAgICAgICB2aWV3ZXIvZGVidWdnZXIgdG8gdGhlIHNvdXJjZSB0cmVlLiBOb3RlIHRoYXQgeW91IHdpbGwgX25vdF8gYmUKICAgICAgICBhYmxlIHRvIGNvbXBpbGUgaXQgc2luY2UgaXQgZGVwZW5kcyBvbiBhbiB1bmF2YWlsYWJsZSBncmFwaGljcwogICAgICAgIGxpYnJhcnkgbmFtZWQgIk5pcnZhbmEiIHRvIHJlbmRlciB2ZWN0b3IgaW1hZ2VzLi4KCgoKMjAwMS0xMC0xNyAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCSogVmVyc2lvbiAyLjAuNSByZWxlYXNlZC4KCT09PT09PT09PT09PT09PT09PT09PT09PT0KCgkqIGluY2x1ZGUvZnJlZXR5cGUvZnJlZXR5cGUuaCwgaW5jbHVkZS9pbnRlcm5hbC9mdG9ianMuaCwKCXNyYy9iYXNlL2Z0b2Jqcy5jLCBzcmMvc2ZudC9zZmRyaXZlci5jLCB0eXBlMS90MWRyaXZlci5jLAoJY2lkL2NpZHJpdmVyLmM6IEFkZGluZyBhIG5ldyBmdW5jdGlvbiBuYW1lZCAnRlRfR2V0X1Bvc3RzY3JpcHRfTmFtZScgdG8KCXJldHJpZXZlIHRoZSBQb3N0c2NyaXB0IG5hbWUgb2YgYSBnaXZlbiBmb250LiBTaG91bGQgd29yayB3aXRoIGFsbAoJZm9ybWF0cyBleGNlcHQgcHVyZSBDRkYvQ0VGIGZvbnRzICh0aGlzIHdpbGwgYmUgYWRkZWQgc29vbikuCgoJKiBSRUFETUUsIGRvY3MvQ0hBTkdFUzogdXBkYXRlZCBmb3IgMi4wLjUgcmVsZWFzZQoKCjIwMDEtMTAtMDggIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCglGaXhlZCBhIGJ1ZyBpbiBgZ2xuYW1lcy5weScgdGhhdCBwcmV2ZW50ZWQgaXQgZnJvbSBnZW5lcmF0aW5nCgljb3JyZWN0IGdseXBoIG5hbWVzIHRhYmxlcy4gIFRoaXMgcmVzdWx0ZWQgaW4gdGhlIHVuYXZhaWxhYmlsaXR5IG9mCgljZXJ0YWluIGdseXBocyBsaWtlIGBDYWN1dGUnLCBgY2FjdXRlJyBhbmQgYGxzbGFzaCcgaW4gVW5pY29kZQoJY2hhcm1hcHMsIGV2ZW4gaWYgdGhlc2Ugd2VyZSBwcmVzZW50IGluIHRoZSBmb250IChjYXVzaW5nIHByb2JsZW1zCglmb3IgUG9saXNoIHVzZXJzKS4KCgkqIHNyYy90b29scy9nbG5hbWVzLnB5IChtYWNfc3RhbmRhcmRfbmFtZXMpOiBGaXhlZC4KCSh0MV9zdGFuZGFyZF9zdHJpbmdzKTogU29tZSBmaXhlcyBhbmQgcmVuYW1lZCB0byAuLi4KCShzaWRfc3RhbmRhcmRfbmFtZXMpOiBUaGlzLgoJKHQxX2V4cGVydF9lbmNvZGluZyk6IEZpeGVkLgoJKHRoZV9hZG9iZV9nbHlwaF9saXN0KTogUmVuYW1lZCB0byAuLi4KCShhZG9iZV9nbHlwaF9uYW1lcyk6IFRoaXMuCgkodGhlX2Fkb2JlX2dseXBocyk6IFJlbmFtZWQgdG8gLi4uCgkoYWRvYmVfZ2x5cGhfdmFsdWVzKTogVGhpcy4KCShkdW1wX21hY19pbmRpY2VzLCBkdW1wX2dseXBoX2xpc3QsIGR1bXBfdW5pY29kZV92YWx1ZXMsIG1haW4pOgoJVXBkYXRlZC4KCSogc3JjL3BzbmFtZXMvcHN0YWJsZXMuaDogUmVnZW5lcmF0ZWQuCgkqIHNyYy9wc25hbWVzL3BzbW9kdWxlLmMgKFBTX1VuaWNvZGVfVmFsdWUpOiBGaXggb2Zmc2V0LgoJRml4IHJldHVybiB2YWx1ZS4KCVVzZSBgc2lkX3N0YW5kYXJkX3RhYmxlJyBhbmQgYHBzX25hbWVzX3RvX3VuaWNvZGUnIGluc3RlYWQgb2YKCWB0MV9zdGFuZGFyZF9nbHlwaHMnIGFuZCBgbmFtZXNfdG9fdW5pY29kZScuCgkoUFNfTWFjaW50b3NoX05hbWUpOiBVc2UgYHBzX2dseXBoX25hbWVzJyBpbnN0ZWFkIG9mCglgc3RhbmRhcmRfZ2x5cGhfbmFtZXMnLgoJKFBTX1N0YW5kYXJkX1N0cmluZ3MpOiBVc2UgYHNpZF9zdGFuZGFyZF9uYW1lcycgaW5zdGVhZCBvZgoJYHQxX3N0YW5kYXJkX2dseXBocycuCgoJKiBkb2MvQlVHUywgZG9jL1RPRE86IE5ldyBkb2N1bWVudHMuCgoyMDAxLTEwLTA3ICBSaWNoYXJkIEJhcmJlciAgPHJpY2hAc29sdXRpb251ay5jb20+CgoJKiBzcmMvY2FjaGUvZnRscnUuYyAoRlRfTHJ1X0xvb2t1cF9Ob2RlKTogRml4ZWQgYSBidWcgdGhhdCBwcmV2ZW50ZWQKCWNvcnJlY3QgTFJVIGJlaGF2aW91ci4KCjIwMDEtMTAtMDcgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCglzZXRqbXAoKSBhbmQgbG9uZ2ptcCgpIGFyZSBub3cgdXNlZCBmb3Igcm9sbGJhY2sgKGkuZS4gd2hlbiBtZW1vcnkKCXBvb2wgb3ZlcmZsb3cgb2NjdXJzKS4KCglGdW5jdGlvbiBuYW1lcyBhcmUgbm93IGFsbCB1bmlmb3JtbHkgcHJlZml4ZWQgd2l0aCBgZ3JheV8nLgoKCSogc3JjL3Ntb290aC9mdGdyYXlzLmM6IEluY2x1ZGUgPHNldGptcC5oPi4KCShFcnJSYXN0ZXJfTWVtb3J5T3ZlcmZsb3cpOiBOZXcgbWFjcm8uCgkoVEFyZWEpOiBOZXcgdHlwZSB0byBzdG9yZSBhcmVhIHZhbHVlcyBpbiBlYWNoIGNlbGwgKHVzaW5nIGBpbnQnIHdhcwoJdG9vIHNtYWxsIG9uIDE2LWJpdCBzeXN0ZW1zKS4gIDxsaW1pdHMuaD4gaXMgaW5jbHVkZWQgdG8gcHJvcGVybHkKCWdldCB0aGUgbmVlZGVkIGRhdGEgdHlwZS4KCShUQ2VsbCwgVFJhc3Rlcik6IFVzZSBpdC4KCShUUmFzdGVyKTogTmV3IGVsZW1lbnQgYGp1bXBfYnVmZmVyJy4KCShncmF5X2NvbXB1dGVfY2JveCk6IFVzZSBgUkFTX0FSRycgYXMgdGhlIG9ubHkgcGFyYW1ldGVyIGFuZCBnZXQKCWBvdXRsaW5lJyBmcm9tIGl0LgoJKGdyYXlfcmVjb3JkX2NlbGwpOiBVc2UgbG9uZ2ptcCgpLgoJKGdyYXlfc2V0X2NlbGwpOiBVc2UgZ3JheV9yZWNvcmRfY2VsbCgpIGZvciBlcnJvciBoYW5kbGluZy4KCShncmF5X3JlbmRlcl9saW5lLCBncmF5X3JlbmRlcl9jb25pYywgZ3JheV9yZW5kZXJfY3ViaWMpOiBTaW1wbGlmeS4KCShncmF5X2NvbnZlcnRfZ2x5cGhfaW5uZXIpOiBOZXcgZnVuY3Rpb24sIHVzaW5nIHNldGptcCgpLgoJKGdyYXlfY29udmVydF9nbHlwaCk6IFVzZSBpdC4KCjIwMDEtMTAtMDcgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCglQcm92aWRlIGEgcHVibGljIEFQSSB0byBtYW5hZ2UgbXVsdGlwbGUgc2l6ZSBvYmplY3RzIGZvciBhIGdpdmVuCglGVF9GYWNlIGluIHRoZSBuZXcgaGVhZGVyIGZpbGUgYGZ0c2l6ZXMuaCcuCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2Z0c2l6ZXMuaDogTmV3IGhlYWRlciBmaWxlLCAKCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9mdG9ianMuaDogVXNlIGl0LgoJUmVtb3ZlIGRlY2xhcmF0aW9ucyBvZiBGVF9OZXdfU2l6ZSBhbmQgRlRfRG9uZV9TaXplIChtb3ZlZCB0bwoJZnRzaXplcy5oKS4KCSogaW5jbHVkZS9mcmVldHlwZS9jb25maWcvZnRoZWFkZXIuaCAoRlRfU0laRVNfSCk6IE5ldyBtYWNyby4KCSogc3JjL2Jhc2UvZnRvYmpzLmMgKEZUX0FjdGl2YXRlX1NpemUpOiBOZXcgZnVuY3Rpb24uCgkqIHNyYy9jYWNoZS9mdGNtYW5hZy5jOiBJbmNsdWRlIGZ0c2l6ZXMuaC4KCShmdGNfbWFuYWdlcl9pbml0X3NpemUsIGZ0Y19tYW5hZ2VyX2ZsdXNoX3NpemUpOiBVc2UKCUZUX0FjdGl2YXRlX1NpemUuCgoyMDAxLTA5LTIwICBEZXRsZWYgV/xya25lciAgPFRldGlTb2Z0QGFwZy5sYWhuLmRlPgoKCSogYnVpbGRzL2FtaWdhLyo6IEFkZGVkIHBvcnQgdG8gQW1pZ2Egd2l0aCB0aGUgU0FTL0MgY29tcGlsZXIuCgoyMDAxLTA5LTE1ICBEZXRsZWYgV/xya25lciAgPFRldGlTb2Z0QGFwZy5sYWhuLmRlPgoKCSogc3JjL3R5cGUxL3QxYWZtLmMgKFQxX0RvbmVfQUZNKTogRnJlZSBgYWZtJy4KCjIwMDEtMDktMTAgIFlhbyBaaGFuZyAgPHl6aGFuZ0BzaGFyZW1lZGlhLmNvbT4KCgkqIHNyYy9zZm50L3R0Y21hcC5jIChjb2RlX3RvX2luZGV4Mik6IEhhbmRsZSBjb2RlIHZhbHVlcyB3aXRoCgloaS1ieXRlID09IDAgY29ycmVjdGx5LgoKMjAwMS0wOS0xMCAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogYnVpbGRzL2xpbmstc3RkLm1rICgkKFBST0pFQ1RfTElCUkFSWSkpOiBGaXggdHlwby4KCjIwMDEtMDgtMzAgIE1hcnRpbiBNdXNrZW5zICA8bW11c2tlbnNAYXVyZWxvbi5jb20+CgoJKiBzcmMvdHlwZTEvdDFsb2FkLmMgKHBhcnNlX2ZvbnRfbWF0cml4KTogQSBuZXcgd2F5IHRvIGNvbXB1dGUgdGhlCgl1bml0cyBwZXIgRU0gd2l0aCBncmVhdGVyIGFjY3VyYWN5IChpbXBvcnRhbnQgZm9yIGVtYmVkZGVkIFQxIGZvbnRzCglpbiBQREYgZG9jdW1lbnRzIHRoYXQgd2VyZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIFRydWVUeXBlCglvbmVzKS4KCgkqIHNyYy90eXBlMS90MWxvYWQuYyAoaXNfYWxwaGEpOiBOb3cgc3VwcG9ydHMgIisiIGluIGZvbnQgbmFtZXM7Cgl0aGlzIGlzIHVzZWQgaW4gZW1iZWRkZWQgZm9udHMuCgoJKiBzcmMvcHNhdXgvcHNvYmpzLmMgKFBTX1RhYmxlX0FkZCk6IEZpeGVkIGEgcmVhbGxvY2F0aW9uIGJ1ZyB0aGF0CglnZW5lcmF0ZWQgYSBkYW5nbGluZyBwb2ludGVyIHJlZmVyZW5jZS4KCjIwMDEtMDgtMzAgIEFudGhvbnkgRmVpayAgPGFmZWlja0Bob3RtYWlsLmNvbT4KCgkqIHNyYy90eXBlMS90MWFmbS5jIChUMV9SZWFkX0FmbSk6IE5vdyBjb3JyZWN0bHkgc2V0cyB0aGUgZmxhZwoJRlRfRkFDRV9GTEFHX0tFUk5JTkcgd2hlbiBhcHByb3ByaWF0ZSBmb3IgVHlwZTEgKyBBRk0gZmlsZXMuCgoyMDAxLTA4LTI1ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBzcmMvc2ZudC90dGxvYWQuYyAoVFRfTG9hZF9DTWFwKTogRml4IGZyYW1lIGxlbmd0aCBvZgoJYGNtYXBfcmVjX2ZpZWxkcycuCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2Z0ZXJyb3JzLmggWyFGVF9DT05GSUdfT1BUSU9OX1VTRV9NT0RVTEVfRVJST1JTXToKCVVuZGVmaW5lIEZUX0VSUl9CQVNFIGJlZm9yZSBkZWZpbmluZyBhZ2Fpbi4KCjIwMDEtMDgtMjIgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIHNyYy90cnVldHlwZS90dGludGVycC5oOiBGaXggcHJvdG90eXBlIG9mIFRUX01vdmVfRnVuYy4KCjIwMDEtMDgtMjEgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIGJ1aWxkcy9kb3MvZG9zLWRlZi5tayAoTk9fT1VUUFVUKTogRG9uJ3QgdXNlIGAmPicgYnV0IGA+Jy4KCjIwMDEtMDgtMjEgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvY29uZmlnL2Z0b3B0aW9uLmg6IENoYW5nZWQgdGhlIGRlZmF1bHQgc2V0dGluZwoJZm9yIEZUX0NPTkZJR19PUFRJT05fVVNFX01PRFVMRV9FUlJPUlMgdG8gdW5kZWZpbmVkLCBzaW5jZSBpdCBicmVha3MKCXNvdXJjZSBjb21wYXRpYmlsaXR5IGluIGEgZmV3IGNhc2VzLiAgVXBkYXRlZCB0aGUgY29tbWVudCB0byBleHBsYWluCgl0aGF0IHRvby4KCjIwMDEtMDgtMTcgIE1hcnRpbiBNdXNrZW5zICA8bW11c2tlbnNAYXVyZWxvbi5jb20+CgoJKiBzcmMvYmFzZS9mdGNhbGMuYyAoRlRfTXVsRGl2KTogRml4ZWQgc2VyaW91cyB0eXBvLgoKMjAwMS0wOC0xMiAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCVVwZGF0aW5nIHRvIE9wZW5UeXBlIDEuMy4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvdHR0eXBlcy5oIChUVF9DTWFwMCwgVFRfQ01hcDIsIFRUX0NNYXA0LAoJVFRfQ01hcDYpOiBBZGRpbmcgZmllbGQgYGxhbmd1YWdlJy4KCShUVF9DTWFwVGFibGUpOiBSZW1vdmluZyBmaWVsZCBgbGFuZ3VhZ2UnLgoJVHlwZSBvZiBgbGVuZ3RoJyBmaWVsZCBjaGFuZ2VkIHRvIEZUX1VMb25nLgoJQWRkaW5nIGZpZWxkcyBmb3IgY21hcHMgZm9ybWF0IDgsIDEwLCBhbmQgMTIuCgkoVFRfQ01hcEdyb3VwKTogTmV3IGF1eGlsaWFyeSBzdHJ1Y3R1cmUuCgkoVFRfQ01hcDhfMTIsIFRUX0NNYXAxMCk6IE5ldyBzdHJ1Y3R1cmVzLgoJKiBpbmNsdWRlL2ZyZWV0eXBlL3R0dGFibGVzLmggKFRUX0hvcmlIZWFkZXIsIFRUX1ZlcnRIZWFkZXIpOgoJUmVtb3ZlZCBsYXN0IGVsZW1lbnQgb2YgYFJlc2VydmVkJyBhcnJheS4KCSogaW5jbHVkZS9mcmVldHlwZS90dG5hbWVpZC5oIChUVF9QTEFURk9STV9DVVNUT00sIFRUX01TX0lEX1VDU180LAoJVFRfTkFNRV9JRF9DSURfRklOREZPTlRfTkFNRSk6IE5ldyBtYWNyb3MuCgoJKiBzcmMvc2ZudC90dGNtYXAuYyAoVFRfQ2hhck1hcF9Mb2FkKTogVXBkYXRlZCBsb2FkaW5nIG9mIGBsYW5ndWFnZScKCWZpZWxkIHRvIHRoZSBuZXcgc3RydWN0dXJlcy4KCUZpeGVkIGZyZWVpbmcgb2YgYXJyYXlzIGluIGNhc2Ugb2YgdW5zdWNjZXNzZnVsIGxvYWRzLgoJQWRkZWQgc3VwcG9ydCBmb3IgbG9hZGluZyBmb3JtYXQgOCwgMTAsIGFuZCAxMiBjbWFwcy4KCShUVF9DaGFyTWFwX0ZyZWUpOiBBZGRlZCBzdXBwb3J0IGZvciBmcmVlaW5nIGZvcm1hdCA4LCAxMCwgYW5kIDEyCgljbWFwcy4KCShjb2RlX3RvX2luZGV4NCk6IFNtYWxsIGltcHJvdmVtZW50LgoJKGNvZGVfdG9faW5kZXg2KTogRGl0dG8uCgkoY29kZV90b19pbmRleDhfMTIsIGNvZGVfdG9faW5kZXgxMCk6IE5ldyBmdW5jdGlvbnMuCgkqIHNyYy9zZm50L3R0bG9hZC5jIChUVF9Mb2FkX01ldHJpY3NfSGVhZGVyKTogVXBkYXRlZCB0byBuZXcKCXN0cnVjdHVyZS4KCShUVF9Mb2FkX0NNYXApOiBEaXR0by4KCgkqIHNyYy9zZm50L3Nmb2Jqcy5jICh0dF9lbmNvZGluZ3MpOiBBZGQgTVMgVUNTNCB0YWJsZSAoYmVmb3JlIE1TCglVbmljb2RlKS4KCjIwMDEtMDgtMTEgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIHNyYy90eXBlMS90MWRyaXZlci5jICh0MV9nZXRfbmFtZV9pbmRleCk6IEZpeCBjb21waWxlciB3YXJuaW5nLgoKMjAwMS0wOC0wOSAgVG9tIEthY3ZpbnNreSAgPHRqa0BhbXMub3JnPgoKCSogc3JjL2NmZi9jZmZkcml2ci5jIChnZXRfY2ZmX2dseXBoX25hbWUpOiBSZW5hbWVkIHRvCgljZmZfZ2V0X2dseXBoX25hbWUgZm9yIGNvbnNpc3RlbmN5LgoKCShjZmZfZ2V0X2dseXBoX2luZGV4KTogTWlub3IgZG9jdW1lbnRhdGlvbiBjaGFuZ2UuCgoJKiBzcmMvdHlwZTEvdDFkcml2ZXIuYyAodDFfZ2V0X25hbWVfaW5kZXgpOiBOZXcgZnVuY3Rpb24gdXNlZCBpbgoJR2V0X0ludGVyZmFjZSBhcyB0aGUgZnVuY3Rpb24gcmV0dXJuZWQgd2hlbiB0aGUgIm5hbWVfaW5kZXgiCglmdW5jdGlvbiBpcyByZXF1ZXN0ZWQuCgoJKGdldF90MV9nbHlwaF9uYW1lKTogUmVuYW1lZCB0byB0MV9nZXRfZ2x5cGhfbmFtZSBmb3IgY29uc2lzdGVuY3kuCgoyMDAxLTA4LTA4ICBUb20gS2Fjdmluc2t5ICA8dGprQGFtcy5vcmc+CgoJKiBzcmMvY2ZmL2NmZmxvYWQuYzogUmVtb3ZlZCBkZWZpbml0aW9ucyBvZiBjZmZfaXNvYWRvYmVfY2hhcnNldCwKCWNmZl9leHBlcnRfY2hhcnNldCwgY2ZmX2V4cGVydHN1YnNldF9jaGFyc2V0LCBjZmZfc3RhbmRhcmRfZW5jb2RpbmcsCglhbmQgY2ZmX2V4cGVydF9lbmNvZGluZyBhcnJheXMgdG8gY2ZmbG9hZC5oLgoKCSogc3JjL2NmZi9jZmZsb2FkLmg6IEFkZGVkIGRlZmluaXRpb25zIG9mIGNmZl9pc29hZG9iZV9jaGFyc2V0LAoJY2ZmX2V4cGVydF9jaGFyc2V0LCBjZmZfZXhwZXJ0c3Vic2V0X2NoYXJzZXQsIGNmZl9zdGFuZGFyZF9lbmNvZGluZywKCWFuZCBjZmZfZXhwZXJ0X2VuY29kaW5nIGFycmF5cy4KCgkqIHNyYy9jZmYvY2ZmZHJpdnIuYyAoY2ZmX2dldF9uYW1lX2luZGV4KTogTmV3IGZ1bmN0aW9uLCByZXR1cm5lZAoJd2hlbiBgY2ZmX2dldF9pbnRlcmZhY2UnIGlzIGNhbGxlZCB3aXRoIGEgcmVxdWVzdCBmb3IgdGhlCgkibmFtZV9pbmRleCIgZnVuY3Rpb24uCgoJKGNmZl9nZXRfaW50ZXJmYWNlKTogTW9kaWZpZWQgc28gdGhhdCBpdCByZXR1cm5zIHRoZSBmdW5jdGlvbgoJYGNmZl9nZXRfbmFtZV9pbmRleCcgd2hlbiB0aGUgIm5hbWVfaW5kZXgiIGZ1bmN0aW9uIGlzIHJlcXVlc3RlZC4KCgkqIHNyYy9iYXNlL2Z0b2Jqcy5jIChGVF9HZXRfTmFtZV9JbmRleCk6IE5ldyBmdW5jdGlvbiwgdXNlZCB0bwoJcmV0dXJuIGEgZ2x5cGggaW5kZXggZm9yIGEgZ2l2ZW4gZ2x5cGggbmFtZSBvbmx5IGlmIHRoZSBkcml2ZXIKCXN1cHBvcnRzIGdseXBoIG5hbWVzLgoKCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9mdG9ianMuaCAoRlRfTmFtZV9JbmRleF9SZXF1ZXN0ZXIpOgoJTmV3IGZ1bmN0aW9uIHBvaW50ZXIgdHlwZSBkZWZpbnRpb24gdXNlZCBpbiB0aGUgZnVuY3Rpb24KCUZUX0dldF9OYW1lX0luZGV4LgoKCSogaW5jbHVkZS9mcmVldHlwZS9mcmVldHlwZS5oIChGVF9HZXRfTmFtZV9JbmRleCk6IEFkZGVkCglkb2N1bWVudGF0aW9uIGFuZCBwcm90b3R5cGUuCgoyMDAxLTA3LTI2ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBidWlsZHMvY3lnd2luLyo6IFJlbW92ZWQuICBVc2UgdGhlIHVuaXggc3R1ZmYgaW5zdGVhZC4KCjIwMDEtMDctMjYgIEpvdWsgSmFuc2VuICA8am91a2pAaHJlbS5zdG0udHVkZWxmdC5ubD4KCgkqIGJ1aWxkcy92bXMvZnRjb25maWcuaCAoRlRfQ0FMTEJBQ0tfREVGKTogVXBkYXRlZCB0byBjaGFuZ2UgZGF0ZWQKCTIwMDEtMDYtMjcuCgoyMDAxLTA3LTE3ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL3BzYXV4LmggKFBTX1RhYmxlKTogVXNlIEZUX09mZnNldCBmb3IKCWBjdXJzb3InIGFuZCBgY2FwYWNpdHknLgoJKiBzcmMvcHNhdXgvcHNvYmpjLmMgKHJlYWxsb2NhdGVfdDFfdGFibGUpOiBVc2UgRlRfTG9uZyBmb3Igc2Vjb25kCglwYXJhbWV0ZXIuCgkoUFNfVGFibGVfQWRkKTogVXNlIEZUX09mZnNldCBmb3IgYG5ld19zaXplJy4KCglBZGQgc3VwcG9ydCBmb3IgdmVyc2lvbiAwLjUgbWF4cCB0YWJsZXMuCgoJKiBzcmMvc2ZudC90dGxvYWQuYyAoVFRfTG9hZF9NYXhQcm9maWxlKTogSW1wbGVtZW50IGl0LgoJKFRUX0xvYWRfT1MyKTogSW5pdGlhbGl6ZSBzb21lIHZhbHVlcy4KCjIwMDEtMDctMTMgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIHNyYy9iYXNlL2Z0c3ludGguYzogSW5jbHVkZSBmdGNhbGMuaCB1bmNvbmRpdGlvbmFsbHkuCgoyMDAxLTA3LTA3ICBEYXZpZCBUdXJuZXIgIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJKiBzcmMvdHJ1ZXR5cGUvdHRnbG9hZC5jLCBzcmMvdHJ1ZXR5cGUvdHRpbnRlcnAuYywgc3JjL3BjZi9wY2ZyZWFkOgoJUmVtb3ZlZCBwZWRhbnRpYyBjb21waWxlciB3YXJuaW5ncyB3aGVuIHRoZSBieXRlY29kZSBpbnRlcnByZXRlciBpcwoJY29tcGlsZWQgaW4uCgoyMDAxLTA3LTAzICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBzcmMvYXV0b2hpbnQvYWhoaW50LmMgKGFoX2hpbnRlcl9hbGlnbl93ZWFrX3BvaW50cyk6IFJlbW92ZQoJdW51c2VkIHZhcmlhYmxlIGBlZGdlcycuCgkoYWhfaGludGVyX2xvYWQpOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcyBgb2xkX3dpZHRoJyBhbmQKCWBuZXdfd2lkdGgnLgoJKiBzcmMvY2lkL2NpZGxvYWQuYyAoY2lkX2RlY3J5cHQpOiBVc2UgYFUnIGZvciBjb25zdGFudCAoYWdhaW4pLgoJKiBzcmMvcHNhdXgvcHNvYmpzLmMgKFQxX0RlY3J5cHQpOiBEaXR0by4KCSogc3JjL3R5cGUxL3QxcGFyc2UuYyAoVDFfR2V0X1ByaXZhdGVfRGljdCk6IERpdHRvLgoKMjAwMS0wNi0yOCAgRGF2aWQgVHVybmVyIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJKiBpbmNsdWRlL2ludGVybmFsL2Z0c3RyZWFtLmg6IE1vZGlmaWVkIHRoZSBkZWZpbml0aW9ucwoJb2YgdGhlIEZUX0dFVF9YWFhYIGFuZCBORVhUX1hYWFggbWFjcm9zIGZvciAxNi1iaXQgY29ycmVjdG5lc3MuCgoyMDAxLTA2LTI2ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBzcmMvY2lkL2NpZGxvYWQuYywgc3JjL2NpZC9jaWRsb2FkLmggKGNpZF9kZWNyeXB0KTogVXNlIEZUX09mZnNldAoJaW5zdGVhZCBvZiBGVF9JbnQgYXMgdHlwZSBmb3IgYGxlbmd0aCcgcGFyYW1ldGVyLgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL3BzYXV4LmggKFBTQXV4X0ludGVyZmFjZSk6IFVwZGF0ZWQuCgoyMDAxLTA2LTI3ICBXb2xmZ2FuZyBEb21y9nNlICA8cG9ydGhvcy5kb21yb2VzZUBoYXJ6LmRlPgoKCSogc3JjL3BzYXV4L3Bzb2Jqcy5jLCBzcmMvcHNhdXgvcHNvYmpzLmggKFQxX0RlY3J5cHQpOiBVc2UgRlRfT2Zmc2V0CglpbnN0ZWFkIG9mIEZUX0ludCBhcyB0eXBlIGZvciBgbGVuZ3RoJyBwYXJhbWV0ZXIuCgoKCSogVmVyc2lvbiAyLjAuNCByZWxlYXNlZC4KCT09PT09PT09PT09PT09PT09PT09PT09PT0KCgoyMDAxLTA2LTI3ICBEYXZpZCBUdXJuZXIgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCgkqIGJ1aWxkcy91bml4L2Z0Y29uZmlnLmluOiBDaGFuZ2VkIHRoZSBkZWZpbml0aW9uIG9mIHRoZQoJRlRfQ0FMTEJBQ0tfREVGIG1hY3JvLgoKCSogaW5jbHVkZS9mcmVldHlwZS9mdGNvbmZpZy5oLCBzcmMvKi8qLmM6IENoYW5nZWQgdGhlIGRlZmluaXRpb24gYW5kCgl1c2Ugb2YgdGhlIEZUX0NBTExCQUNLX0RFRiBtYWNybyBpbiBvcmRlciB0byBzdXBwb3J0IDE2LWJpdAoJY29tcGlsZXJzLgoKCSogYnVpbGRzL3VuaXgvZnRjb25maWcuaW46IENoYW5nZWQgdGhlIGRlZmluaXRpb24gb2YgdGhlCglGVF9DQUxMQkFDS19ERUYgbWFjcm8uCgoJKiBzcmMvc2ZudC90dGxvYWQuYyAoVFRfTG9hZF9LZXJuKTogVGhlIGtlcm4gdGFibGUgbG9hZGVyIG5vdyBlbnN1cmVzCgl0aGF0IHRoZSBrZXJuaW5nIHRhYmxlIGlzIGNvcnJlY3RseSBzb3J0ZWQgKHNvbWUgcHJvYmxlbSBmb250cyBkb24ndAoJaGF2ZSBhIGNvcnJlY3Qga2VybiB0YWJsZSkuCgoyMDAxLTA2LTI2ICBXb2xmZ2FuZyBEb21y9nNlICA8cG9ydGhvcy5kb21yb2VzZUBoYXJ6LmRlPgoKCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9mdHN0cmVhbS5oIChGVF9HRVRfT0ZGM19MRSk6IEZpeCB0eXBvLgoKMjAwMS0wNi0yNCAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCSogc3JjL2Jhc2UvZnRjYWxjLmMgKGZ0X2RpdjY0YnkzMik6IEZpeGVkIHRoZSBzb3VyY2UgdG8gd29yawoJY29ycmVjdGx5IG9uIDE2LWJpdCBzeXN0ZW1zLgoKMjAwMS0wNi0yMyAgQW50aG9ueSBGb2sgIDxmb2tAZGViaWFuLm9yZz4KCgkqIGRlYmlhbi8qOiBBZGRlZCBEZWJpYW4gcGFja2FnZSBidWlsZCBkaXJlY3RvcnkgZm9yIDIuMC40LgoKMjAwMS0wNi0yMiAgRGF2aWQgVHVybmVyIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJKiBkb2NzL1BBVEVOVFM6IEFkZGVkIHBhdGVudHMgZGlzY2xhaW1lci4gIFRoaXMgb25lIHdhcyBtaXNzaW5nIQogICAgCgkqIGRvY3MvQ0hBTkdFUywgZG9jcy90b2RvOiBVcGRhdGVkIGZvciB0aGUgdXBjb21pbmcgMi4wLjQgcmVsZWFzZS4KCjIwMDEtMDYtMjAgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvY29uZmlnL2Z0Y29uZmlnLmg6IEFkZCB0d28gbW9yZSBgTCdzIHRvCgljb25zdGFudHMuCglBZGQgbWlzc2luZyBzZW1pY29sb25zLgoKCSogYnVpbGRzL3RvcGxldmVsLm1rOiBEbyBzaW1pbGFyIGNoYW5nZSBhcyBmb3IKCWJ1aWxkcy91bml4L2RldGVjdC5tay4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvZnJlZXR5cGUuaCAoRlRfRU5DX1RBRyk6IE5ldyB2ZXJzaW9uIHRvIG1ha2UgaXQKCWVhc2llciB0byByZWRlZmluZS4KCSogaW5jbHVkZS9mcmVldHlwZS9mdGltYWdlLmggKEZUX0lNQUdFX1RBRyk6IERpdHRvLgoKCSogc3JjL3BjZi9wY2ZyZWFkLmMgKHBjZl9nZXRfZW5jb2RpbmdzKTogQWRkIGNhc3QuCgoyMDAxLTA2LTE5ICBEYXZpZCBUdXJuZXIgIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJKiBidWlsZHMvd2luMzIvdmlzdWFsYy9mcmVldHlwZS5kc3AsIGJ1aWxkcy93aW4zMi92aXN1YWxjL2luZGV4Lmh0bWw6CglVcGRhdGVkIHRoZSBWaXN1YWwgQysrIHByb2plY3QgKGZvciB0aGUgMi4wLjQgcmVsZWFzZSkuCgoJKiBidWlsZHMvdW5peC9kZXRlY3QubWs6IEFkZGVkIHJ1bGUgZm9yIEFJWCBkZXRlY3Rpb24gKHdoaWNoIHVzZXMKCS91c3Ivc2Jpbi9pbml0IGluc3RlYWQgb2YgL3NiaW4vaW5pdCkuCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2Z0ZXJyb3JzLmgsIHNyYy8qLyplcnIqLmg6IFVwZGF0ZWQgc29tZSBvZiB0aGUKCWVycm9yIG1hY3JvcyB0byBzaW1wbGlmeSBoYW5kbGluZyBvZiBuZXcgZXJyb3Igc2NoZW1lLgoKMjAwMS0wNi0xOSAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogaW5jbHVkZS9mcmVldHlwZS9mdHR5cGVzLmggKEZUX0VSUk9SX01PRFVMRSk6IE5ldyBtYWNyby4KCjIwMDEtMDYtMTkgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCglSZW1vdmluZyBfbG90c18gb2YgY29tcGlsZXIgd2FybmluZ3Mgd2hlbiB0aGUgbW9zdCBwZWRhbnRpYyB3YXJuaW5nCglsZXZlbHMgb2YgVmlzdWFsIEMrKyBhbmQgQm9ybGFuZCBDKysgYXJlIHVzZWQuICBUb28gbWFueSBmaWxlcyB0byBiZQoJbGlzdGVkIGhlcmUsIGJ1dCBGVDIgbm93IGNvbXBpbGVzIHdpdGhvdXQgd2FybmluZ3Mgd2l0aCBWQysrIGFuZCB0aGUKCSIvVzQiIHdhcm5pbmcgbGV2ZWwgKGxpbnQtc3R5bGUpLgoKCSogaW5jbHVkZS9mcmVldHlwZS9mcmVldHlwZS5oIChGVF9OZXdfTWVtb3J5X0ZhY2UpOiBVcGRhdGVkCglkb2N1bWVudGF0aW9uLgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2Z0dHlwZXMuaCAoRlRfQk9PTCk6IE5ldyBtYWNyby4KCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9mdGRlYnVnLmg6IEFkZCAjcHJhZ21hIGZvciBWaXN1YWwgQysrCgl0byBzdXBwcmVzcyB3YXJuaW5nLgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL2Z0c3RyZWFtLmggKEZUX0dFVF9TSE9SVF97QkUsTEV9LAoJRlRfR0VUX09GRjNfe0JFLExFfSwgRlRfR0VUX0xPTkdfe0JFLExFfSk6IE5ldyBtYWNyb3MuCgkoTkVYVF8qKTogVXNlIHRoZW0uCgkqIHNyYy9hdXRvaGludC9haGdsb2JhbC5jOiBJbmNsdWRlIEZUX0lOVEVSTkFMX0RFQlVHX0guCgkoRlRfTmV3X01lbW9yeV9GYWNlKTogQWRkIGBjb25zdCcgdG8gZnVuY3Rpb24gZGVjbGFyYXRpb24uCgoyMDAxLTA2LTE4ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJTWlub3IgY2xlYW51cHMgdG8gcmVtb3ZlIGNvbXBpbGVyIHdhcm5pbmdzLgoKCSogaW5jbHVkZS9mcmVldHlwZS9jYWNoZS9mdGNtYW5hZy5oIChGVENfTUFYX0JZVEVTX0RFRkFVTFQpOiBVc2UKCWBMJyBmb3IgY29uc3RhbnQuCgkqIGluY2x1ZGUvZnJlZXR5cGUvY29uZmlnL2Z0b3B0aW9uLmggKEZUX1JFTkRFUl9QT09MX1NJWkUpOiBEaXR0by4KCSogc3JjL2Jhc2UvZnRjYWxjLmMgKEZUX011bERpdik6IFVzZSBgTCcgZm9yIGNvbnN0YW50LgoJKiBzcmMvYmFzZS9mdGdseXBoLmMgKEZUX0dseXBoX0dldF9DQm94KTogUmVtb3ZlIGBlcnJvcicgdmFyaWFibGUuCgkqIHNyYy9iYXNlL2Z0dHJpZ29uLmMgKGZ0X3RyaWdfYXJjdGFuX3RhYmxlKTogVXNlIGBMJyBmb3IgY29uc3RhbnRzLgoJKiBzcmMvYmFzZS9mdG9ianMuYyAoRlRfRG9uZV9TaXplKTogRml4IHJldHVybiB2YWx1ZS4KCShGVF9TZXRfQ2hhcl9TaXplLCBGVF9TZXRfUGl4ZWxfU2l6ZXMsIEZUX0dldF9LZXJuaW5nKTogUmVtb3ZlCgl1bnVzZWQgYG1lbW9yeScgdmFyaWFibGUuCgkqIHNyYy9hdXRvaGludC9haGdseXBoLmMgKGFoX2dldF9vcmllbnRhdGlvbik6IFVzZSBgTCcgZm9yIGNvbnN0YW50LgoJKiBzcmMvYXV0b2hpbnQvYWhoaW50LmMgKGFoX2hpbnRfZWRnZXNfMywKCWFoX2hpbnRlcl9hbGlnbl9lZGdlX3BvaW50cyk6IFJlbW92ZSB1bnVzZWQgYGJlZm9yZScgYW5kIGBhZnRlcicKCXZhcmlhYmxlcy4KCShhaF9oaW50ZXJfYWxpZ25fd2Vha19wb2ludHMpOiBSZW1vdmUgdW51c2VkIGBlZGdlX2xpbWl0JyB2YXJpYWJsZS4KCShhaF9oaW50ZXJfbG9hZCk6IFJlbW92ZSB1bnVzZWQgYG5ld19hZHZhbmNlJywgYHN0YXJ0X2NvbnRvdXInLAoJYW5kIGBtZXRyaWNzJyB2YXJpYWJsZXMuCgkqIHNyYy9jZmYvY2ZmbG9hZC5jIChDRkZfTG9hZF9FbmNvZGluZyk6IFJlbW92ZSBkZWFkIGNvZGUgdG8gYXZvaWQKCWNvbXBpbGVyIHdhcm5pbmcuCgkqIHNyYy9jZmYvY2Zmb2Jqcy5jIChDRkZfSW5pdF9GYWNlKTogUmVtb3ZlIHVudXNlZCBgYmFzZV9vZmZzZXQnCgl2YXJpYWJsZS4KCSogc3JjL2NmZi9jZmZnbG9hZC5jIChDRkZfUGFyc2VfQ2hhclN0cmluZ3MpOiBSZW1vdmUgdW51c2VkCglgb3V0bGluZScgdmFyaWFibGUuCgkoY2ZmX2NvbXB1dGVfYmlhcyk6IFVzZSBgVScgZm9yIGNvbnN0YW50LgoJKiBzcmMvY2lkL2NpZGxvYWQuYyAoY2lkX2RlY3J5cHQpOiBEaXR0by4KCSogc3JjL3BzYXV4L3Bzb2Jqcy5jIChUMV9EZWNyeXB0KTogRGl0dG8uCgkqIHNyYy9wc2F1eC90MWRlY29kZS5jIChUMV9EZWNvZGVyX1BhcnNlX0NoYXJTdHJpbmdzKTogRGl0dG8uCgkqIHNyYy9zZm50L3R0bG9hZC5jIChUVF9Mb2FkX0tlcm4pOiBSZW1vdmUgdW51c2VkIGB2ZXJzaW9uJwoJdmFyaWFibGUuCgkqIHNyYy9zZm50L3R0c2JpdC5jIChUVF9Mb2FkX1NCaXRfSW1hZ2UpOiBSZW1vdmUgdW51c2VkIGB0b3AnCgl2YXJpYWJsZS4KCSogc3JjL3RydWV0eXBlL3R0Z2xvYWQuYyAobG9hZF90cnVldHlwZV9nbHlwaCk6IFJlbW92ZSB1bnVzZWQKCWBudW1fY29udG91cnMnIGFuZCBgaW5zX29mZnNldCcgdmFyaWFibGVzLgoJKGNvbXB1dGVfZ2x5cGhfbWV0cmljcyk6IFJlbW92ZSB1bnVzZWQgYFRvcCcgYW5kIGB4X3NjYWxlJwoJdmFyaWFibGVzLgoJKFRUX0xvYWRfR2x5cGgpOiBSZW1vdmUgdW51c2VkIGBtZW1vcnknIHZhcmlhYmxlLgoJKiBzcmMvc21vb3RoL2Z0Z3JheXMuYyAoZ3JheXNfcmFzdGVyX3JlbmRlcik6IFVzZSBgTCcgZm9yIGNvbnN0YW50cy4KCjIwMDEtMDYtMTggIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCglNYWtlIHRoZSBuZXcgZXJyb3Igc2NoZW1lIHNvdXJjZSBjb21wYXRpYmxlIHdpdGggb2xkZXIgRlQgdmVyc2lvbnMKCWJ5IGludHJvZHVjaW5nIGFub3RoZXIgbGF5ZXIuCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2Z0ZXJyb3JzLmggKEZUX0VSUk9SREVGXywgRlRfTk9FUlJPUkRFRl8pOiBOZXcKCW1hY3Jvcy4KCShGVF9OT0VSUk9SREVGKTogUmVtb3ZlZC4KCSogaW5jbHVkZS8qLyplcnIqLmg6IFVzZSBGVF9FUlJPUkRFRl8gYW5kIEZUX05PRVJST1JERUZfLgoKMjAwMS0wNi0xNiAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogaW5jbHVkZS9mcmVldHlwZS9mcmVldHlwZS5oIChGVF9FTkNfVEFHKTogTmV3IG1hY3JvLgoJKEZUX0VuY29kaW5nXyk6IFVzZSBpdC4KCSogaW5jbHVkZS9mcmVldHlwZS9mdGltYWdlLmggKEZUX0lNQUdFX1RBRyk6IERlZmluZSBpdAoJY29uZGl0aW9uYWxseS4KCjIwMDEtMDYtMTQgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCglNb2RpZmllZCB0aGUgVHJ1ZVR5cGUgaW50ZXJwcmV0ZXIgdG8gbGV0IGl0IHVzZSB0aGUgbmV3Cgl0cmlnb25vbWV0cmljIGZ1bmN0aW9ucyBwcm92aWRlZCBpbiAiZnR0cmlnb24uaCIuICBUaGlzIGdldHMgcmlkIG9mCglzb21lIG9sZCA2NC1iaXQgY29tcHV0YXRpb24gcm91dGluZXMsIGFzIHdlbGwgYXMgbWFueSB3YXJuaW5ncyB3aGVuCgljb21waWxpbmcgdGhlIGxpYnJhcnkgd2l0aCB0aGUgImxvbmcgbG9uZyIgNjQtYml0IGludGVnZXIgdHlwZS4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvY29uZmlnL2Z0b3B0aW9uLmg6IFVuZGVmaW5lCglGVF9DT05GSUdfT1BUSU9OX09MRF9DQUxDUy4KCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9mdGNhbGMuaDogUmVhcnJhbmdlIHVzZSBvZgoJRlRfQ09ORklHX09QVElPTl9PTERfQ0FMQ1MuCgkqIHNyYy9iYXNlL2Z0Y2FsYy5jOiBBZGQgZGVjbGFyYXRpb24gb2YgRlRfSW50NjQgaWYKCUZUX0NPTkZJR19PUFRJT05fT0xEX0NBTENTIGlzbid0IGRlZmluZWQuCgkqIHNyYy90cnVldHlwZS90dGludGVycC5jOiBVc2UgRlRfVFJJR09OT01FVFJZX0guCgkoTm9ybSk6IEFkZCBhIHNwZWNpYWwgdmVyc2lvbiBpZiBGVF9DT05GSUdfT1BUSU9OX09MRF9DQUxDUyBpc24ndAoJZGVmaW5lZC4KCShDdXJyZW50X1JhdGlvLCBOb3JtYWxpemUpOiBTaW1wbGlmeSBjb2RlLgoKMjAwMS0wNi0xMSAgTWlrZSBPd2VucyAgPE1Pd2Vuc0BhbXRkYXRhc291dGguY29tPgoKCSogc3JjL2Jhc2UvZnRjYWxjLmMgKEZUX011bERpdiwgRlRfRGl2Rml4LCBGVF9TcXJ0NjQpOiBSZW1vdmUKCWNvbXBpbGVyIHdhcm5pbmdzLgoKMjAwMS0wNi0wOCAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogYnVpbGRzL3VuaXgvY29uZmlndXJlLmluOiBSZW5hbWVkIHRvIC4uLgoJKiBidWlsZHMvdW5peC9jb25maWd1cmUuYWM6IFRoaXMgdG8gbWFrZSBzdXJlIHRoYXQgYXV0b2NvbmYgMi41MCBpcwoJbmVlZGVkLgoJUnVuIGBhdXRvdXBkYXRlJyBvbiBpdC4KCUluY3JlYXNlIGB2ZXJzaW9uX2luZm8nIHRvIDc6MDoxLgoJKiBidWlsZHMvdW5peC9jb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoKMjAwMS0wNi0wOCAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCSogc3JjL2F1dG9oaW50L2FoaGludC5jIChhaF9oaW50ZXJfbG9hZF9nbHlwaCk6IEZpeGVkIGEgYnVnIHRoYXQKCWNvcnJ1cHRlZCB0cmFuc2Zvcm1lZCBnbHlwaHMgdGhhdCB3ZXJlIGF1dG8taGludGVkICh0aGUgdHJhbnNmb3JtCgl3YXMgYXBwbGllZCB0d2ljZSkuCgoJRml4ZWQgYSBidWcgdGhhdCByZXR1cm5lZCBhbiBpbnZhbGlkIGxpbmVhciB3aWR0aCBmb3IgY29tcG9zaXRlCglUcnVlVHlwZSBnbHlwaHMuCgoJKiBpbmNsdWRlL2ludGVybmFsL3R0dHlwZXMuaCAoVFRfTG9hZGVyXyk6IFR3byBuZXcgZWxlbWVudHMgYGxpbmVhcicKCWFuZCBgbGluZWFyX2RlZicuCgkqIHNyYy90cnVldHlwZS90dGdsb2FkLmMgKGxvYWRfdHJ1ZXR5cGVfZ2x5cGgsCgljb21wdXRlX2dseXBoX21ldHJpY3MpOiBVc2UgaXQuCgoJKiBpbmNsdWRlL2Z0dHlwZXMuaCAoRlRfRVJST1JfQkFTRSk6IE5ldyBtYWNyby4KCSogc3JjL2Jhc2UvZnRvYmpzLmMgKEZUX09wZW5fRmFjZSwgRlRfUmVuZGVyX0dseXBoX0ludGVybmFsKTogVXNlIGl0Cgl0byBtYWtlIHNvdXJjZSBjb2RlIHdvcmsgd2l0aCB0aGUgbmV3IGVycm9yIHNjaGVtZSBpbXBsZW1lbnRlZCBieQoJV2VybmVyLgoJKiBzcmMvYmFzZS9mdG91dGxuLmMgKEZUX091dGxpbmVfUmVuZGVyKTogRGl0dG8uCgoyMDAxLTA2LTA3ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJVXBkYXRpbmcgdG8gbGlidG9vbCAxLjQuMCBhbmQgYXV0b2NvbmYgMi41MC4KCgkqIGJ1aWxkcy91bml4L2x0Y29uZmlnOiBSZW1vdmVkLgoJKiBidWlsZHMvdW5peC9sdG1haW4uc2gsIGJ1aWxkcy91bml4L2NvbmZpZ3VyZS5pbiwKCWJ1aWxkcy91bml4L2FjbG9jYWwubTQ6IFVwZGF0ZWQuCgkqIGJ1aWxkcy91bml4L2NvbmZpZ3VyZTogUmVnZW5lcmF0ZWQuCgoyMDAxLTA2LTA2ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJQ29tcGxldGUgcmVkZXNpZ24gb2YgZXJyb3IgY29kZXMuICBQbGVhc2UgY2hlY2sgZnRtb2RlcnIuaCBmb3IgbW9yZQoJZGV0YWlscy4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvY2ZmZXJycy5oLAoJaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC90dGVycm9ycy5oLAoJaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC90MWVycm9ycy5oOiBSZW1vdmVkLiAgUmVwbGFjZWQgd2l0aCBmaWxlcwoJbG9jYWwgdG8gdGhlIG1vZHVsZS4gIEFsbCBleHRyYSBlcnJvciBjb2RlcyBoYXZlIGJlZW4gbW92ZWQgdG8KCWBmdGVycm9ycy5oJy4KCgkqIHNyYy9zZm50L3R0cG9zdC5oOiBNb3ZlIGVycm9yIGNvZGVzIHRvIGBmdGVycm9ycy5oJy4KCgkqIHNyYy9hdXRvaGludC9haGVycm9ycy5oLCBzcmMvY2FjaGUvZnRjZXJyb3IuaCwgc3JjL2NmZi9jZmZlcnJzLmgsCglzcmMvY2lkL2NpZGVycnMuaCwgc3JjL3BjZi9wY2ZlcnJvci5oLCBzcmMvcHNhdXgvcHNhdXhlcnIuaCwKCXNyYy9wc25hbWVzL3BzbmFtZXJyLmgsIHNyYy9yYXN0ZXIvcmFzdGVycnMuaCwgc3JjL3NmbnQvc2ZlcnJvcnMuaCwKCXNyYy9zbW9vdGgvZnRzbWVycnMuaCwgc3JjL3RydWV0eXBlL3R0ZXJyb3JzLmgsCglzcmMvdHlwZTEvdDFlcnJvcnMuaCwgc3JjL3dpbmZvbnRzL2ZudGVycnMuaDogTmV3IGZpbGVzIGRlZmluaW5nIHRoZQoJZXJyb3IgbmFtZXMgZm9yIHRoZSBtb2R1bGUgaXQgYmVsb25ncyB0by4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvZnRtb2RlcnIuaDogTmV3IGZpbGUsIGRlZmluaW5nIHRoZSBtb2R1bGUgZXJyb3IKCW9mZnNldHMuICBJdHMgc3RydWN0dXJlIGlzIHNpbWlsYXIgdG8gYGZ0ZXJyb3JzLmgnLgoKCSogaW5jbHVkZS9mcmVldHlwZS9mdGVycm9ycy5oIChGVF9OT0VSUk9SREVGKTogTmV3IG1hY3JvLgoJKEZUX0VSUk9SREVGKTogUmVkZWZpbmVkIHRvIHVzZSBtb2R1bGUgZXJyb3Igb2Zmc2V0cy4KCUFsbCBpbnRlcm5hbCBlcnJvciBjb2RlcyBhcmUgbm93IHB1YmxpYzsgdW51c2VkIGVycm9yIGNvZGVzIGhhdmUKCWJlZW4gcmVtb3ZlZCwgc29tZSBhcmUgbmV3LgoKCSogaW5jbHVkZS9mcmVldHlwZS9jb25maWcvZnRoZWFkZXIuaCAoRlRfTU9EVUxFX0VSUk9SU19IKTogTmV3CgltYWNyby4KCSogaW5jbHVkZS9mcmVldHlwZS9jb25maWcvZnRvcHRpb24uaAoJKEZUX0NPTkZJR19PUFRJT05fVVNFX01PRFVMRV9FUlJPUlMpOiBOZXcgbWFjcm8uCgoJQWxsIG90aGVyIHNvdXJjZSBmaWxlcyBoYXZlIGJlZW4gdXBkYXRlZCB0byB1c2UgdGhlIG5ldyBlcnJvciBjb2RlczsKCXNvbWUgYWxyZWFkeSBleGlzdGluZyAoaW50ZXJuYWwpIGVycm9yIGNvZGVzIGxvY2FsIHRvIGEgbW9kdWxlIGhhdmUKCWJlZW4gcmVuYW1lZCB0byBnaXZlIHRoZW0gdGhlIHNhbWUgbmFtZSBhcyBpbiB0aGUgYmFzZSBtb2R1bGUuCgoJQWxsIG1ha2UgZmlsZXMgaGF2ZSBiZWVuIHVwZGF0ZWQgdG8gaW5jbHVkZSB0aGUgbG9jYWwgZXJyb3IgZmlsZXMuCgoyMDAxLTA2LTA2ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBzcmMvY2lkL2NpZHRva2Vucy5oOiBSZXBsYWNlZCB3aXRoLi4uCgkqIHNyYy9jaWQvY2lkdG9rZW4uaDogVGhpcyBmaWxlIGZvciA4KzMgY29uc2lzdGVuY3kuCgoJKiBzcmMvcmFzdGVyL2Z0cmFzdGVyLmM6IFVzZSBtYWNyb3MgZm9yIGhlYWRlciBmaWxlIG5hbWVzLgoKCSogc3JjL2luY2x1ZGUvZnJlZXR5cGUvdHR0YWJsZXMuaCAoVFRfSG9yaUhlYWRlcl8sIFRUX1ZlcnRIZWFkZXJfKToKCUZpeCBsZW5ndGggb2YgYFJlc2VydmVkJyBhcnJheS4gIE5vdGUgdGhhdCB0aGlzIGlzbid0IHRoZSByZWFsIGZpeAoJc2luY2UgcmVjZW50IE9wZW5UeXBlIHNwZWNzIGhhdmUgaW50cm9kdWNlZCBhIGBDYXJldE9mZnNldCcgZmllbGQKCWluc3RlYWQgb2YgdGhlIGZpcnN0IHJlc2VydmVkIGJ5dGUuCgoyMDAxLTA1LTI5ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBJTlNUQUxMOiBNaW5vciBmaXhlcy4KCgoJKiBWZXJzaW9uIDIuMC4zIHJlbGVhc2VkLgoJPT09PT09PT09PT09PT09PT09PT09PT09PQoKCjIwMDEtMDUtMjkgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCgkqIElOU1RBTEwsIGRvY3MvQ0hBTkdFUzogVXBkYXRlZC4KCjIwMDEtMDUtMjUgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCglNb3ZlZCBzZXZlcmFsIGRvY3VtZW50cyBmcm9tIHRoZSB0b3AtbGV2ZWwgdG8gdGhlICJkb2NzIiBkaXJlY3RvcnkuCgoJKiBzcmMvYmFzZS9mdGNhbGMuYyAoRlRfRGl2Rml4KTogU21hbGwgZml4IHRvIHJldHVybiB2YWx1ZS4KCjIwMDEtMDUtMTYgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy90cnVldHlwZS90dGdsb2FkLmMgKGxvYWRfdHJ1ZXR5cGVfZ2x5cGgpOiBGaXhlZCBhIGJ1ZyBpbiB0aGUKCWNvbXBvc2l0ZSBsb2FkZXIuICBTcG90dGVkIGJ5IEtlaXRoIFBhY2thcmQuCgkqIHNyYy9iYXNlL2Z0b2Jqcy5jIChGVF9HbHlwaExvYWRlcl9DaGVja19Qb2ludHMsCglGVF9HbHlwaExvYWRlcl9DaGVja19TdWJnbHlwaHMpOiBEaXR0by4KCjIwMDEtMDUtMTQgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCglGaXhlZCB0aGUgaW5jb3JyZWN0IGJsdWUgem9uZSBjb21wdXRhdGlvbnMsIGFuZCBpbXByb3ZlZCB0aGUKCWNvbXBvc2l0ZSBzdXBwb3J0LiAgTm90ZSB0aGF0IHRoZXNlIGNoYW5nZXMgcmVzdWx0IGluIGltcHJvdmVkCglyZW5kZXJpbmcsIHdoaWxlIHNvbWV0aW1lcyBpbnRyb2R1Y2luZyB0aGVpciBvd24gYXJ0ZWZhY3RzLiAgVGhpcyBpcwoJcHJvYmFibHkgdGhlIGxhc3QgYmlnIGNoYW5nZSB0byB0aGUgYXV0b2hpbnRlciBiZWZvcmUgdGhlCglpbnRyb2R1Y3Rpb24gb2YgYSBjb21wbGV0ZSByZXBsYWNlbWVudC4KCgkqIHNyYy9hdXRvaGludC9haGdsb2JhbC5jIChzb3J0X3ZhbHVlcyk6IEZpeCBsb29wLgoJKiBzcmMvYXV0b2hpbnQvYWhnbHlwaC5jOiBSZW1vdmVkIHNvbWUgb2Jzb2xldGUgY29kZS4KCShhaF9vdXRsaW5lX2NvbXB1dGVfZWRnZXMpOiBNb2RpZnkgY29kZSB0byBzZXQgdGhlIGFoX2VkZ2Vfcm91bmQKCWZsYWcuCgkoYWhfb3V0bGluZV9jb21wdXRlX2JsdWVfZWRnZXMpOiBBZGQgY29kZSB0byBjb21wdXRlIGFjdGl2ZSBibHVlCgl6b25lcy4KCSogc3JjL2F1dG9oaW50L2FoaGludC5jIChhaF9oaW50ZXJfZ2x5cGhfbG9hZCk6IENoYW5nZSBsb2FkX2ZsYWdzCgl2YWx1ZS4KCgkqIHNyYy9iYXNlL2Z0Y2FsYy5jIChGVF9EaXZGaXgpOiBGaXhlZCBhIGJ1ZyBpbiB0aGUgNjQtYml0IGNvZGUgdGhhdAoJY3JlYXRlZCBpbmNvcnJlY3Qgc2NhbGUgZmFjdG9ycyEKCShGVF9Sb3VuZF9GaXgsIEZUX0NlaWxGaXgsIEZUX0Zsb29yRml4KTogTWlub3IgaW1wcm92ZW1lbnRzLgoKMjAwMS0wNS0xMiAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogaW5jbHVkZS9mcmVldHlwZS9mdGJib3guaDogRlRCQk9YX0ggLT4gX19GVEJCT1hfSF9fLgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2Z0dHJpZ29uLmg6IF9fRlRfVFJJR09OT01FVFJZX0hfXyAtPgoJX19GVFRSSUdPTl9IX18uCglJbmNsdWRlIEZUX0ZSRUVUWVBFX0guCglCZWF1dGlmaWVkOyBhZGRlZCBjb3B5cmlnaHQuCgkqIHNyYy9iYXNlL2Z0dHJpZ29uLmM6IEJlYXV0aWZpZWQ7IGFkZGVkIGNvcHlyaWdodC4KCjIwMDEtMDUtMTEgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy9jZmYvY2ZmcGFyc2UuYyAoY2ZmX3BhcnNlX2ZvbnRfbWF0cml4KSwgc3JjL2NpZC9jaWRsb2FkLmMKCShwYXJzZV9mb250X21hdHJpeCksIHNyYy90eXBlMS90MWxvYWQuYyAocGFyc2VfZm9udF9tYXRyaXgpOiBGaXhlZAoJdGhlIGluY29ycmVjdCBFTSBzaXplIGNvbXB1dGF0aW9uLgoKCSogaW5jbHVkZS9mcmVldHlwZS9mdHRyaWdvbi5oLCBzcmMvYmFzZS9mdHRyaWdvbi5jOiBOZXcgZmlsZXMsCglhZGRpbmcgdHJpZ29ub21ldHJpYyBmdW5jdGlvbnMgdG8gdGhlIGNvcmUgQVBJICh1c2luZyBDb3JkaWMKCWFsZ29yaXRobXMpLgoJKiBzcmMvYmFzZS9mdGJhc2UuYywgc3JjL2Jhc2UvSmFtZmlsZSwgc3JjL2Jhc2UvcnVsZXMubWs6IFVzZSB0aGVtLgoKCSogYnVpbGRzL25ld2xpbmU6IE5ldyBmaWxlLgoJKiBidWlsZHMvdG9wX2xldmVsLm1rLCBidWlsZHMvZGV0ZWN0Lm1rOiBVc2UgaXQuICBUaGlzIGZpeGVzCglwcm9ibGVtcyB3aXRoIE1ha2Ugb24gV2luZG93cyAyMDAwLCBhcyB3ZWxsIGFzIHByb2JsZW1zIHdoZW4gIm1ha2UKCWRpc3RjbGVhbiIgaXMgaW52b2tlZCBvbiBhIG5vbi1Vbml4IHBsYXRmb3JtIHdoZW4gdGhlcmUgaXMgbm8KCSJjb25maWcubWsiIGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4KCgkqIGJ1aWxkcy9mcmVldHlwZS5tazogRml4ZWQgYSBwcm9ibGVtIHdpdGggb2JqZWN0IGRlbGV0aW9ucyB1bmRlcgoJRG9zL1dpbmRvd3MvT1MvMiBzeXN0ZW1zLgoKCUFkZGVkIG5ldyBkaXJlY3RvcnkgdG8gaG9sZCB0b29scyBhbmQgdGVzdCBwcm9ncmFtcy4KCgkqIGRvY3MvZG9jbWFrZXIucHksIGRvY3MvZ2xuYW1lcy5weTogTW92ZWQgdG8uLi4KCSogc3JjL3Rvb2xzL2RvY21ha2VyLnB5LCBzcmMvdG9vbHMvZ2xuYW1lcy5weTogVGhpcyBwbGFjZS4KCSogc3JjL3Rvb2xzL2NvcmRpYy5weTogTmV3IGZpbGUgdXNlZCB0byBjb21wdXRlIGFyY3RhbmdlbnQgdGFibGUKCW5lZWRlZCBieSBmdHRyaWdvbi5jLgoJKiBzcmMvdG9vbHMvdGVzdF9iYm94LmMsIHNyYy90b29scy90ZXN0X3RyaWcuYzogTmV3IHRlc3QgZmlsZXMuCgoJKiBzcmMvdG9vbHMvZG9jbWFrZXIucHk6IEltcHJvdmVkIHRoZSBzY3JpcHQgdG8gYWRkIHRoZSBjdXJyZW50IGRhdGUKCWF0IHRoZSBmb290ZXIgb2YgZWFjaCB3ZWIgcGFnZSAodXNlZnVsIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4KCXZlcnNpb25zKS4KCgkqIEphbWZpbGU6IEZpeGVkIGluY29ycmVjdCBIRFJNQUNSTyBhcmd1bWVudC4KCgkqIFRPRE86IFJlbW92ZWQgdGhlIGN1YmljIGFyYyBiYm94IGNvbXB1dGF0aW9uIG5vdGUsIHNpbmNlIGl0IGhhcyBiZWVuCglmaXhlZCByZWNlbnRseS4KCSogc3JjL2Jhc2UvZnRiYm94LmMgKHRlc3RfY3ViaWNfemVybyk6IFJlbmFtZWQgdG8uLi4KCSh0ZXN0X2N1YmljX2V4dHJlbWEpOiBUaGlzIGZ1bmN0aW9uLiAgVXNlIGBVTCcgZm9yIHVuc2lnbmVkIGxvbmcKCWNvbnN0YW50cy4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvdDF0YWJsZXMuaCwgaW5jbHVkZS9mcmVldHlwZS9jb25maWcvZnRvcHRpb24uaDoKCUZvcm1hdHRpbmcuCgoyMDAxLTA1LTEwICBEYXZpZCBUdXJuZXIgIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJKiBzcmMvYmFzZS9mdG9ianMuYyAoRlRfT3Blbl9GYWNlKTogRml4ZWQgYSBzbWFsbCBtZW1vcnkgbGVhawoJd2hpY2ggaGFwcGVuZWQgd2hlbiB0cnlpbmcgdG8gb3BlbiAwLXNpemUgZm9udCBmaWxlcyEKCjIwMDEtMDUtMDkgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvZnRjYWxjLmg6IE1vdmUgZGVjbGFyYXRpb24gb2YKCUZUX1NxcnRGaXhlZCgpIG91dCBvZiBgI2lmZGVmIEZUX0xPTkc2NCcuCgoyMDAxLTA1LTA4ICBGcmFuY2VzY28gWmFwcGEgTmFyZGVsbGkgIDxGcmFuY2VzY28uWmFwcGEuTmFyZGVsbGlAZW5zLmZyPgoKCSogc3JjL3BjZmRyaXZlci5jIChQQ0ZfTG9hZF9HbHlwaCk6IEZpeGVkIGluY29ycmVjdCBiaXRtYXAgd2lkdGgKCWNvbXB1dGF0aW9uLgoKMjAwMS0wNS0wOCAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCSogZG9jcy9kb2NtYWtlci5weTogVXBkYXRlZCB0aGUgRG9jTWFrZXIgc2NyaXB0IGluIG9yZGVyIHRvIGFkZAoJY29tbWFuZCBsaW5lIG9wdGlvbnMgKC0tb3V0cHV0LC0tcHJlZml4LC0tdGl0bGUpLCBmaXggdGhlIGVycm9uZW91cwoJbGluZSBudW1iZXJzIHJlcG9ydGVkIGR1cmluZyBlcnJvcnMgYW5kIHdhcm5pbmdzLCBhbmQgb3RoZXIKCWZvcm1hdHRpbmcgaXNzdWVzLgoKCSogc3JjL2Jhc2UvZnRjYWxjLmMgKEZUX011bERpdiwgRlRfTXVsRml4LCBGVF9EaXZGaXgpOiBWYXJpb3VzIHRpbnkKCWZpeGVzIHJlbGF0ZWQgdG8gcm91bmRpbmcgaW4gNjQtYml0cyByb3V0aW5lcyBhbmQKCXBzZXVkby0ib3B0aW1pemF0aW9ucyIuCgoyMDAxLTA0LTI3ICBEYXZpZCBUdXJuZXIgIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJKiBzcmMvYmFzZS9mdGJib3guYyAoQkJveF9DdWJpY19DaGVjayk6IEZpeGVkIHRoZSBjb2VmZmljaWVudAoJbm9ybWFsaXphdGlvbiBhbGdvcml0aG0gKGludmFsaWQgZmluYWwgYml0IHBvc2l0aW9uLCBhbmQgaW52YWxpZAoJc2hpZnQgY29tcHV0YXRpb24pLgoKMjAwMS0wNC0yNiAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogYnVpbGRzL3VuaXgvY29uZmlnLmd1ZXNzLCBidWlsZHMvdW5peC9jb25maWcuc3ViOiBVcGRhdGVkIHRvCglsYXRlc3QgdmVyc2lvbnMgZnJvbSBnbnUub3JnLgoKCSogYnVpbGRzL2NvbXBpbGVyL2djYy1kZXYubWs6IEFkZCBgLVduby1sb25nLWxvbmcnIGZsYWcuCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL2Z0Y2FsYy5oOiBEZWZpbmUgRlRfU3FydEZpeGVkKCkKCXVuY29kaXRpb25hbGx5LgoJKiBzcmMvYmFzZS9mdGJib3guYzogSW5jbHVkZSBGVF9JTlRFUk5BTF9DQUxDX0guCglGaXggY29tcGlsZXIgd2FybmluZ3MuCgkqIHNyYy9iYXNlL2Z0Y2FsYy5jOiBGaXggKHBvdGVudGlhbCkgY29tcGlsZXIgd2FybmluZ3MuCgoyMDAxLTA0LTI2ICBEYXZpZCBUdXJuZXIgIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJKiBzcmMvYmFzZS9mdGNhbGMuYyAoRlRfU3FydEZpeGVkKTogQ29ycmVjdGVkL29wdGltaXplZCB0aGUgMzItYml0CglmaXhlZC1wb2ludCBzcXVhcmUgcm9vdCBjb21wdXRhdGlvbi4gIEl0IGlzIG5vdyB1c2VkIGV2ZW4gd2l0aAoJNjQtYml0cyBpbnRlZ2VycywgYXMgaXQgaXMgX211Y2hfIGZhc3RlciB0aGFuIGNhbGxpbmcgRlRfU3FydDY0IDotKQoKCSogc3JjL2Jhc2UvZnRiYm94LmM6IFJlbW92ZWQgaW52YWxpZCAiI2luY2x1ZGUgRlRfQkVaSUVSX0giIGxpbmUuCgoyMDAxLTA0LTI1ICBEYXZpZCBUdXJuZXIgIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJKiBzcmMvYmFzZS9mdGJib3guYyAoQkJveF9DdWJpY19DaGVjayk6IFJld3JvdGUgZnVuY3Rpb24gdG8gdXNlCglkaXJlY3QgY29tcHV0YXRpb25zIHdpdGggMTYuMTYgdmFsdWVzIGluc3RlYWQgb2Ygc3ViLWRpdmlzaW9ucy4gIEl0CglpcyBub3cgc2xvd2VyLCBidXQgcHJvdmVzIGEgcG9pbnQgOi0pCgoJKiBzcmMvcmFzdGVyL2Z0cmFzdGVyLmMsIHNyYy9zbW9vdGgvZnRncmF5cy5jLCBzcmMvYmFzZS9mdGJib3guYzoKCUZpeGVkIHRoZSBiZXppZXIgc3RhY2sgZGVwdGhzLgoKCSogc3JjL2Jhc2UvZnRjYWxjLmMgKEZUX011bEZpeCk6IE1pbm9yIHJvdW5kaW5nIGZpeC4KCgkqIGJ1aWxkcy9iZW9zOiBBZGRlZCBCZU9TLXNwZWNpZmljIGZpbGVzIHRvIHRoZSBvbGQgYnVpbGQgc3lzdGVtCgkobm8gY2hhbmdlcyB3ZXJlIG5lY2Vzc2FyeSB0byBzdXBwb3J0IEJlT1MgaW4gdGhlIEphbWZpbGUgdGhvdWdoKS4KCjIwMDEtMDQtMjAgIERhdmlkIFR1cm5lciAgPGRhdmlkQGZyZWV0eXBlLm9yZz4KCgkqIGZ0Y29uZmlnLmgsIGZ0b3B0aW9uLmg6IFVwZGF0ZWQgImZ0Y29uZmlnLmgiIHRvIGRldGVjdCA2NC1iaXQgaW50Cgl0eXBlcyBvbiBwbGF0Zm9ybXMgd2hlcmUgQXV0b2NvbmYgaXMgbm90IGF2YWlsYWJsZSkuICBBbHNvIHJlbW92ZWQKCUZUQ0FMQ19VU0VfTE9OR19MT05HIGFuZCByZXBsYWNlZCBpdCB3aXRoCglGVF9DT05GSUdfT1BUSU9OX0ZPUkNFX0lOVDY0LgoKCSogYnVpbGRzL3dpbjMyL2ZyZWV0eXBlLmRzcDogVXBkYXRlZCB0aGUgVmlzdWFsIEMrKyBwcm9qZWN0IGZpbGUuCglEb2Vzbid0IGNyZWF0ZSBhIERMTCB5ZXQuCgoJKiBjZmZnbG9hZC5jOiBSZW1vdmVkIGEgY29tcGlsYXRpb24gd2FybmluZy4KCjIwMDEtMDQtMTAgIFRvbSBLYWN2aW5za3kgIDx0amtAYW1zLm9yZz4KCgkqIHQxbG9hZC5jIChwYXJzZV9jaGFyc3RyaW5ncyk6IENoYW5nZWQgY29kZSBmb3IgcGxhY2luZyAubm90ZGVmCglnbHlwaCBpbnRvIHNsb3QgMCBzbyB0aGF0IHdlIG5vIGxvbmdlciBoYXZlIGEgbWVtb3J5IGFjY2VzcwoJdmlvbGF0aW9uLgoKCSogdDFsb2FkLmg6IEluIHN0cnVjdHVyZSBUMV9Mb2FkZXIsIGFkZGVkIHN3YXBfdGFibGUgKG9mIHR5cGUKCVBTX1RhYmxlKSB0byBmYWNpbGl0YXRlIHBsYWNpbmcgdGhlIC5ub3RkZWYgZ2x5cGggaW50byBzbG90IDAuCgoyMDAxLTA0LTEwICBGcmFuY2VzY28gWmFwcGEgTmFyZGVsbGkgIDxmcmFuY2VzY28uemFwcGEubmFyZGVsbGlAZW5zLmZyPgoKCSogc3JjL3BjZi9wY2Zkcml2ZXIuYyAoUENGX0dldF9DaGFyX0luZGV4KTogRml4IHJldHVybiB2YWx1ZS4KCjIwMDEtMDQtMDkgIExhdXJlbmNlIFdpdGhlcnMgIDxsd2l0aGVyc0Bsd2l0aGVycy5kZW1vbi5jby51az4KCgkqIGJ1aWxkcy9kb3MvZGV0ZWN0Lm1rOiBBZGQgc3VwcG9ydCBmb3IgYmFzaC4KCjIwMDEtMDQtMDUgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIGJ1aWxkcy9vczIvKi5tazogVGhlc2UgZmlsZXMgaGF2ZSBiZWVuIGZvcmdvdHRlbiB0byB1cGRhdGUgdG8KCXRoZSBzdHJ1Y3R1cmUgb2Ygc2ltaWxhciBtYWtlZmlsZXMuCgkqIGJ1aWxkcy9kb3MvKi5tazogRGl0dG8uCgkqIGJ1aWxkcy9hbnNpLyoubWs6IERpdHRvLgoKCSogYnVpbGRzL3dpbjMyL3dpbjMyLWRlZi5tayAoQlVJTEQpOiBGaXggdHlwby4KCgkqIGJ1aWxkcy9jb21waWxlci8qLm1rIChDTEVBTl9MSUJSQVJZKTogRG9uJ3QgdXNlIE5PX09VVFBVVC4KCVRoaXMgaXMgYWxyZWFkeSB1c2VkIGluIHRoZSBsaW5rXyoubWsgZmlsZXMuCgoyMDAxLTA0LTAzICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBzcmMvKi9KYW1maWxlOiBTbGlnaHQgY2hhbmdlcwl0byBtYWtlIGZpbGVzIG1vcmUgY3J5cHRpYy4KCjIwMDEtMDQtMDMgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIEphbWZpbGUsIHNyYy9KYW1maWxlLCBzcmMvKi9KYW1maWxlOiBGb3JtYXR0ZWQuICBTbGlnaHQgY2hhbmdlcwoJdG8gZ2l2ZSBmaWxlcyBpZGVudGljYWwgc3RydWN0dXJlLgoKMjAwMS0wNC0wMiAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogQ0hBTkdFUzogUmVmb3JtYXR0ZWQsIG1pbm9yIGZpeGVzLgoJKiBUT0RPOiBVcGRhdGVkLgoJKiBSRUFETUU6IEZvcm1hdHRpbmcuCgkqIGluY2x1ZGUvZnJlZXR5cGUvZnJlZXR5cGUuaDogRm9ybWF0dGluZy4KCgkqIEphbWZpbGU6IEZpeCB0eXBvLgoKCSogc3JjL2NmZi9jZmZwYXJzZS5jOiBNb3ZlIGVycm9yIGNvZGUgI2RlZmluZXMgdG8uLi4KCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9jZmZlcnJzLmg6IFRoaXMgZmlsZS4KCSogc3JjL2NmZi9jZmZkcml2ci5jLCBzcmMvY2ZmL2NmZm9ianMuYywgc3JjL2NmZi9jZmZsb2FkLmM6IFJlcGxhY2VkCglgRlRfRXJyXyonIHdpdGggYENGRl9FcnJfKicuCgkqIHNyYy9jaWQvY2lkcGFyc2UuYzogUmVwbGFjZWQgYEZUX0Vycl8qJyB3aXRoIGBUMV9FcnJfKicuCgkqIHNyYy9wc2F1eC9wc29ianMuYywgc3JjL3BzYXV4L3QxZGVjb2RlLmM6IERpdHRvLgoJKiBzcmMvc2ZudC9zZm9iY3MuYywgc3JjL3NmbnQvdHRsb2FkLmM6IFJlcGxhY2VkIGBGVF9FcnJfKicgd2l0aAoJYFRUX0Vycl8qJy4KCSogc3JjL3RydWV0eXBlL3R0Z2xvYWQuYywgc3JjL3RydWV0eXBlL3R0b2Jqcy5jOiBEaXR0by4KCSogc3JjL3R5cGUxL3QxZ2xvYWQuYywgc3JjL3R5cGUxL3QxbG9hZC5jLCBzcmMvdHlwZTEvdDFvYmpzLmMsCglzcmMvdHlwZTEvdDFwYXJzZS5jOiBSZXBsYWNlZCBgRlRfRXJyXyonIHdpdGggYFQxX0Vycl8qJy4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvY2ZmZXJycy5oOiBBZGQKCWBDRkZfRXJyX1Vua25vd25fRmlsZV9Gb3JtYXQnLgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL3QxZXJyb3JzLmg6IEFkZAoJYFQxX0Vycl9Vbmtub3duX0ZpbGVfRm9ybWF0Jy4KCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC90dGVycm9ycy5oOiBBZGQKCWBUVF9FcnJfVW5rbm93bl9GaWxlX0Zvcm1hdCcuCgoJKiBzcmMvY2ZmL2NmZmxvYWQuaDogQWRkIGBjZmZfKl9lbmNvZGluZycgYW5kIGBjZmZfKl9jaGFyc2V0JwoJcmVmZXJlbmNlcy4KCSogc3JjL3BzYXV4L3Bzb2Jqcy5jOiBJbmNsdWRlIGBGVF9JTlRFUk5BTF9UWVBFMV9FUlJPUlNfSCcuCgoJKiBzcmMvY2ZmL2NmZm9ianMuYyAoQ0ZGX0luaXRfRmFjZSwgQ0ZGX0RvbmVfRmFjZSk6IFVzZQoJRlRfTE9DQUxfREVGLgoJKiBzcmMvY2lkL2NpZG9ianMuYyAoQ0lEX0RvbmVfRHJpdmVyKTogRGl0dG8uCgkqIHNyYy90cnV0eXBlL3R0b2Jqcy5jIChUVF9Jbml0X0ZhY2UsIFRUX0RvbmVfRmFjZSwgVFRfSW5pdF9TaXplKToKCURpdHRvLgoJKiBzcmMvdHlwZTEvdDFvYmpzLmMgKFQxX0RvbmVfRHJpdmVyKTogRGl0dG8uCgkqIHNyYy9wY2YvcGNmZHJpdmVyLmMgKFBDRl9Eb25lX0ZhY2UpOiBEaXR0by4KCSogc3JjL3BjZi9wY2YuaDogVXNlIEZUX0xPQ0FMIGZvciBgUENGX0RvbmVfRmFjZScuCgoyMDAxLTA0LTAyICBUb20gS2Fjdmluc2t5ICA8dGprQGFtcy5vcmc+CgoJKiBzcmMvc2ZudC90dGxvYWQuYyAoVFRfTG9hZF9NZXRyaWNzKTogRml4IGFuIGltcHJvcGVyIHBvaW50ZXIKCWRlcmVmZXJlbmNlLiAgU3VibWl0dGVkIGJ5IEhlcmJlcnQgRHVlcnIgPGR1ZXJyQHN1bi5jb20+CgoyMDAxLTAzLTI2ICBUb20gS2Fjdmluc2t5ICA8dGprQGFtcy5vcmc+CgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2NvbmZpZy9mdGNvbmZpZy5oOiBDaGFuZ2VkIGhleGFkZWNpbWFsCgljb25zdGFudHMgdG8gdXNlIHN1ZmZpeCBVIHRvIGF2b2lkIHByb2JsZW1zIHdpdGggSFAtVVgncyBjODkKCWNvbXBpbGVyLiAgU3VibWl0dGVkIGJ5IEcuVy4gTHVjYXMgPGdsdWNhc0Bzb25hbHlzdHMuY29tPgoKMjAwMS0wMy0yNCAgRGF2aWQgVHVybmVyICA8ZGF2aWQudHVybmVyQGZyZWV0eXBlLm9yZz4KCgkqIEphbXJ1bGVzLCBKYW1maWxlLCBzcmMvSmFtZmlsZSwgc3JjLyovSmFtZmlsZTogQWRkaW5nIGphbWZpbGVzIHRvCgl0aGUgc291cmNlIHRyZWUuICBTZWUgd3d3LmZyZWV0eXBlLm9yZy9qYW0vaW5kZXguaHRtbCBmb3IgZGV0YWlscy4KCgoJKiBWZXJzaW9uIDIuMC4yIHJlbGVhc2VkLgoJPT09PT09PT09PT09PT09PT09PT09PT09PQoKCjIwMDEtMDMtMjAgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIGJ1aWxkcy93aW4zMi9kZXRla3QubWs6IEZpeCAuUEhPTlkgdGFyZ2V0IGZvciBJbnRlbCBjb21waWxlci4KCjIwMDEtMDMtMjAgIERhdmlkIFR1cm5lciAgPGRhdmlkLnR1cm5lckBmcmVldHlwZS5vcmc+CgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2NvbmZpZy9mdGhlYWRlci5oLCBpbmNsdWRlL2ZyZWV0eXBlL2Z0c25hbWVzLmg6CglSZW5hbWVkICJmdG5hbWVzLmgiIHRvICJmdHNuYW1lcy5oIiwgYW5kIEZUX05BTUVTX0ggdG8KCUZUX1NGTlRfTkFNRVNfSC4KCgkqIGRvY3MvZG9jbWFrZXIucHk6IEFkZGVkIGdlbmVyYXRpb24gb2YgSU5ERVggbGluayBpbiB0YWJsZSBvZgoJY29udGVudHMuCgoJKiBJTlNUQUxMLCBkb2NzL0JVSUxEOiBVcGRhdGVkIGRvY3VtZW50YXRpb24gdG8gaW5kaWNhdGUgdGhhdCB0aGUKCWNvbXBpbGF0aW9uIHByb2Nlc3MgaGFzIGNoYW5nZWQgc2xpZ2h0bHkgKG5vIG1vcmUgYHNyYycgcmVxdWlyZWQgaW4KCXRoZSBpbmNsdWRlIHBhdGgpLgoKCSogYnVpbGRzLyovKi1kZWYubWs6IENoYW5nZWQgdGhlIG9iamVjdHMgZGlyZWN0b3J5IGZyb20gIm9iaiIgdG8KCSJvYmpzIi4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvY29uZmlnL2Z0aGVhZGVyLmg6IFJlbW92ZWQgb2Jzb2xldGUgbWFjcm9zIGxpa2UKCUZUX1NPVVJDRV9GSUxFLCBldGMuIGFuZCBhZGRlZCBjYWNoZS1zcGVjaWZpYyBtYWNybyBkZWZpbml0aW9ucyB0aGF0Cgl3ZXJlIHByZXZpb3VzbHkgZGVmaW5lZCBpbiA8ZnJlZXR5cGUvZnRjYWNoZS5oPi4gIEFkZGVkIGNvbW1lbnRzIHRvCgliZSBpbmNsdWRlZCBpbiBhIG5ldyBBUEkgUmVmZXJlbmNlIHNlY3Rpb24uCgoJKiBzcmMvKi8qOiBSZW1vdmVkIHRoZSB1c2Ugb2YgRlRfU09VUkNFX0ZJTEUsIGV0Yy4gIE5vdywgZWFjaAoJY29tcG9uZW50IG5lZWRzIHRvIGFkZCBpdHMgb3duIGRpcmVjdG9yeSB0byB0aGUgaW5jbHVkZSBwYXRoIGF0Cgljb21waWxlIHRpbWUuICBNb2RpZmllZCBhbGwgInJ1bGVzLm1rIiBhbmQgImRlc2NyaXAubW1zIgoJYWNjb3JkaW5nbHkuCgoyMDAxLTAzLTIwICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBidWlsZHMvdW5peC9jb25maWd1cmUuaW46IEFkZCAkZnRfdmVyc2lvbi4KCSogYnVpbGRzL3VuaXgvZnJlZXR5cGUtY29uZmlnLmluOiBVc2UgaXQuCgkqIGJ1aWxkcy91bml4L2NvbmZpZ3VyZTogVXBkYXRlZC4KCjIwMDEtMDMtMTkgIFRvbSBLYWN2aW5za3kgIDx0amtAYW1zLm9yZz4KCgkqIHNyYy90eXBlMS90MWxvYWQuYyAocGFyc2VfZm9udF9tYXRyaXgpOiBBc3NpZ24gdGhlIHVuaXRzIHBlciBlbQoJdmFsdWUgYW4gdW5zaWduZWQgc2hvcnQgdmFsdWUsIGZpcnN0IGJ5IHNoaWZ0aW5nIHJpZ2h0IDE2IGJpdHMsCgl0aGVuIGJ5IGNhc3RpbmcgdGhlIHJlc3VsdHMgdG8gRlRfVVNob3J0LgoKCSogc3JjL2NmZi9jZmZwYXJzZS5jIChjZmZfcGFyc2VfZm9udF9iYm94KTogQXNzaWduIHRoZSB1bml0cyBwZXIgZW0KCXZhbHVlIGFuIHVuc2lnbmVkIHNob3J0IHZhbHVlLCBmaXJzdCBieSBzaGlmdGluZyByaWdodCAxNiBiaXRzLAoJdGhlbiBieSBjYXN0aW5nIHRoZSByZXN1bHRzIHRvIEZUX1VTaG9ydC4KCjIwMDEtMDMtMTcgIERhdmlkIFR1cm5lciAgPGRhdmlkLnR1cm5lckBmcmVldHlwZS5vcmc+CgoJKiBzcmMvY2lkL2NpZG9ianMuYywgc3JjL2NpZC9jaWRsb2FkLmMsIHNyYy9wY2YvcGNmcmVhZC5jLAoJc3JjL3R5cGUxL3QxbG9hZC5jLCBzcmMvdHlwZTEvdDFvYmpzLmM6IEFkZGVkIGEgZmV3IGNhc3RzIHRvIHJlbW92ZQoJY29tcGlsZXIgd2FybmluZ3MgaW4gcGVkYW50aWMgbW9kZXMuCgoJKiBpbmNsdWRlL2NvbmZpZy9mdDJidWlsZC5oLCBpbmNsdWRlL2NvbmZpZy9mdGhlYWRlci5oOiBUaGUgZmlsZQoJImZ0MmJ1aWxkLmgiIHdhcyByZW5hbWVkIHRvICJmdGhlYWRlci5oIiB0byBhdm9pZCBjb25mbGljdHMgd2l0aCB0aGUKCXRvcC1sZXZlbCA8ZnQyYnVpbGQuaD4uCgoJKiBpbmNsdWRlL2NvbmZpZy9mdGhlYWRlci5oOiBBZGRlZCBuZXcgc2VjdGlvbiBkZXNjcmliaW5nIHRoZSAjaW5jbHVkZQoJbWFjcm9zLgoKMjAwMS0wMy0xNyAgVG9tIEthY3ZpbnNreSAgPHRqa0BhbXMub3JnPgoKCSogc3JjL2NmZi9jZmZwYXJzZS5jIChjZmZfcGFyc2VfZm9udF9iYm94KTogT2J0YWluIHJvdW5kZWQgRlRfRml4ZWQKCXZhbHVlcyBmb3IgdGhlIGJvdW5kaW5nIGJveCBudW1iZXJzLgoKCSogc3JjL2NmZi9jZmZvYmpzLmMgKENGRl9Jbml0X0ZhY2UpOiBXaGVuIHByb2Nlc3NpbmcgYSBDRkYvQ0VGIGZvbnQsCglzZXQgYHJvb3QtPmFzY2VuZGVyJyAoYHJvb3QtPmRlc2NlbmRlcicpIHRvIHRoZSBpbnRlZ2VyIHBhcnQgb2YKCWByb290LT5iYm94LnlNYXgnIChgcm9vdC0+YmJveC55TWluJywgcmVzcGVjdGl2ZWx5KS4KCjIwMDEtMDMtMTYgIFRvbSBLYWN2aW5za3kgIDx0amtAYW1zLm9yZz4KCgkqIHNyYy9jZmYvY2ZmZHJpdnIuYyAoZ2V0X2NmZl9nbHlwaF9uYW1lKTogIE5ldyBmdW5jdGlvbi4gIFVzZWQgaW4KCWNmZl9nZXRfaW50ZXJmYWNlIHRvIGZhY2lsaXRhdGUgZ2V0dGluZyBhIGdseXBoIG5hbWUgZm9yIGdseXBoIGluZGV4Cgl2aWEgRlRfR2V0X0dseXBoX05hbWUoKS4KCgkoY2ZmX2dldF9pbnRlcmZhY2UpOiBBZGRlZCBzdXBwb3J0IGZvciBnZXR0aW5nIGEgZ2x5cGggbmFtZSB2aWEgdGhlCgkiZ2x5cGhfbmFtZSIgbW9kdWxlIGludGVyZmFjZS4gIFVzZXMgdGhlIG5ldyBmdW5jdGlvbgoJZ2V0X2NmZl9nbHlwaF9uYW1lKCkuCglTdWJtaXR0ZWQgYnkgU2FuZGVyIHZhbiBkZXIgV2FsIDxzdmR3YWxAeHM0YWxsLm5sPgoKCSogc3JjL2NmZi9jZmZvYmpzLmMgKENGRl9Jbml0X0ZhY2UpOiBMb2dpY2FsIG9yIHRoZSBmYWNlIGZsYWdzIHdpdGgKCUZUX0ZBQ0VfRkxBR19HTFlQSF9OQU1FUyBvbmx5IGlmIEZUX0NPTkZJR19PUFRJT05fTk9fR0xZUEhfTkFNRVMgaXMKCW5vdCBkZWZpbmVkLiAgVGhpcyBpcyB0byBhZGQgc3VwcG9ydCBmb3IgZ2V0dGluZyBhIGdseXBoIG5hbWUgZnJvbSBhCglnbHlwaCBpbmRleCB2aWEgRlRfR2V0X0dseXBoX05hbWUoKS4KCVN1Ym1pdHRlZCBieSBTYW5kZXIgdmFuIGRlciBXYWwgPHN2ZHdhbEB4czRhbGwubmw+CgoJKiBzcmMvY2ZmL2NmZmdsb2FkLmMgKENGRl9QYXJzZV9DaGFyU3RyaW5ncyk6IEFkZGVkIHN1cHBvcnQgZm9yCglkZXByZWNhdGVkIG9wZXJhdG9yICJkb3RzZWN0aW9uIi4KCVN1Ym1pdHRlZCBieSBTYW5kZXIgdmFuIGRlciBXYWwgPHN2ZHdhbEB4czRhbGwubmw+CgoyMDAxLTAzLTEyICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBzcmMvcHNhdXgvdDFkZWNvZGUuYyAoVDFfRGVjb2Rlcl9QYXJzZV9DaGFyc3RyaW5ncyk6IEZpeCBlcnJvcgoJbWVzc2FnZXMuCgoJKiBJTlNUQUxMLCBkb2NzL0JVSUxEOiBXZSBuZWVkIEdOVSBtYWtlIDMuNzguMSBvciBuZXdlci4KCjIwMDEtMDMtMTIgIFRvbSBLYWN2aW5za3kgIDx0amtAYW1zLm9yZz4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvcHNhdXguaDogIENoYW5nZWQgdGhlIGxlbklWIG1lbWJlciBvZgoJdGhlIFQxX0RlY29kZXJfIHN0cnVjdCB0byBiZSBhbiBGVF9JbnQgaW5zdGVhZCBvZiBhbiBGVF9VSW50LgoKCSogc3JjL3BzYXV4L3QxZGVjb2RlLmMgKFQxX0RlY29kZXJfUGFyc2VfQ2hhcnN0cmluZ3MpOiAgQWRqdXN0Cglmb3IgbGVuSVYgc2VlZCBieXRlcyBhdCB0aGUgc3RhcnQgb2YgYSBkZWNyeXB0ZWQgc3Vicm91dGluZS4KCgkqIHNyYy9jaWQvY2lkbG9hZC5jIChjaWRfcmVhZF9zdWJycyk6IERlY3J5cHQgc3Vicm91dGluZXMgb25seQoJaWYgbGVuSVYgPj0gMC4KCgkqIHNyYy9jaWQvY2lkZ2xvYWQuYyAoY2lkX2xvYWRfZ2x5cGgpOiBEZWNyeXB0IGNoYXJzdHJpbmdzIG9ubHkKCWlmIGxlbklWID49IDAuCgoyMDAxLTAzLTExICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBUT0RPOiBVcGRhdGVkLgoKCSogc3JjL3BjZi9wY2ZyZWFkLmM6IFB1dCBSRUFEX0ZpZWxkcygpIGFsd2F5cyBpbiBhIGNvbmRpdGlvbmFsIHRvCglhdm9pZCBjb21waWxlciB3YXJuaW5ncy4KCjIwMDEtMDMtMTAgIFRvbSBLYWN2aW5za3kgIDx0amtAYW1zLm9yZz4KCgkqIFRPRE86IE5ldyBmaWxlLgoKCSogaW5jbHVkZS9mcmVldHlwZS9mcmVldHlwZS5oOiBBZGRlZCBwcm90b3R5cGVzIGFuZCBub3RlcyBmb3IKCXRocmVlIG5ldyBmdW5jdGlvbnM6IEZUX1JvdW5kRml4LCBGVF9DZWlsRml4LCBhbmQgRlRfRmxvb3JGaXguCgkqIHNyYy9iYXNlL2Z0Y2FsYy5jIChGVF9Sb3VuZEZpeCwgRlRfQ2VpbEZpeCwgRlRfRmxvb3JGaXgpOiBBZGRlZAoJaW1wbGVtZW50YXRpb24gY29kZS4KCgkqIHNyYy9jaWQvY2lkb2Jqcy5jIChDSURfSW5pdF9GYWNlKTogVXNlIGNhbGN1bGF0ZWQgdW5pdHNfcGVyX0VNLAoJYW5kIGlmIHRoYXQgaXMgbm90IGF2YWlsYWJsZSwgZGVmYXVsdCB0byAxMDAwIHVuaXRzIHBlciBFTS4gIENoYW5nZWQKCWFzc2lnbm1lbnQgY29kZSBmb3IgYXNjZW5kZXIgYW5kIGRlc2NlbmRlciB2YWx1ZXMuCgkqIHNyYy9jaWQvY2lkbG9hZC5jIChwYXJzZV9mb250X21hdHJpeCk6IEFkZGVkIHVuaXRzX3Blcl9FTQoJcHJvY2Vzc2luZy4KCShwYXJzZV9mb250X2Jib3gpOiBDaGFuZ2VkIHRvIHVzZSBGVF9GaXhlZCBudW1iZXIgaGFuZGxpbmcuCgoJKiBzcmMvdHlwZTEvdDFvYmpzLmMgKFQxX0luaXRfRmFjZSk6IENoYW5nZWQgdGhlIGFzc2lnbm1lbnQgY29kZQoJZm9yIGFzY2VuZGVyLCBkZXNjZW5kZXIsIGFuZCBtYXhfYWR2YW5jZV93aWR0aC4KCSogc3JjL3R5cGUxL3QxbG9hZC5jIChwYXJzZV9mb250X2Jib3gpOiBDaGFuZ2VkIHRvIHVzZSBGVF9GaXhlZAoJbnVtYmVyIGhhbmRsaW5nLgoKMjAwMS0wMy0xMCAgSGVucmlrIEdydWJic3Ry9m0gIDxncnViYmFAcm94ZW4uY29tPgoKCSogc3JjLyovKi5jOiBBZGRlZCBtYW55IGNhc3RzIHRvIG1ha2UgY29kZSBtb3JlIDY0Yml0LXNhZmUuCgoyMDAxLTAzLTA3ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBJTlNUQUxMLCBkb2NzL0JVSUxEOiBXZSBuZWVkIEdOVSBtYWtlIDMuNzggb3IgbmV3ZXIuCgoyMDAxLTAzLTA3ICBUb20gS2Fjdmluc2t5ICA8dGprQGFtcy5vcmc+CgoJKiBzcmMvdHlwZTEvdDFvYmpzLmMgKFQxX0luaXRfRmFjZSk6IE1pbm9yIGNvcnJlY3Rpb246IFdlIG11c3Qgd2FpdAoJdW50aWwgcGFyc2VfZm9udF9iYm94IGlzIGNoYW5nZWQgYmVmb3JlIHdlIHVzZSBsb2dpY2FsIHNoaWZ0IHJpZ2h0cwoJaW4gdGhlIGFzc2lnbm1lbnRzIG9mIGByb290LT5hc2NlbmRlcicsIGByb290LT5kZXNjZW5kZXInLCBhbmQKCWByb290LT5tYXhfYWR2YW5jZV93aWR0aCcuCgoJKFQxX0RvbmVfRmFjZSk6IEZyZWUgYGNoYXJfbmFtZScgdGFibGUgdG8gYXZvaWQgYSBtZW1vcnkgbGVhay4KCVN1Ym1pdHRlZCBieSBTYW5kZXIgdmFuIGRlciBXYWwgPHN2ZHdhbEB4czRhbGwubmw+LgoKMjAwMS0wMy0wNSAgVG9tIEthY3ZpbnNreSAgPHRqa0BhbXMub3JnPgoKCSogc3JjL2NmZi9jZmZnbG9hZC5jIChDRkZfTG9hZF9HbHlwaCk6IFNldCBnbHlwaCBjb250cm9sIGRhdGEgdG8gdGhlCgl0aGUgVHlwZSAyIGdseXBoIGNoYXJzdHJpbmcgKHVzZWQgYnkgY29udmVyc2lvbiBwcm9ncmFtcykuCglTdWJtaXR0ZWQgYnkgSGEgU2hhbyA8aGFzaGFvQGNoaW5lc2UuY29tPi4KCjIwMDEtMDMtMDQgIEFudG9pbmUgTGVjYSAgPEFudG9pbmUuTGVjYUByZW5hdWx0LmZyPgoKCSogaW5jbHVkZS9mcmVldHlwZS90dG5hbWVpZC5oOiBDb3JyZWN0IGEgc3R1cGlkIHR5cG8gd2hpY2ggcHJldmVudGVkCgljb3JyZWN0IGNvbXBpbGF0aW9uIChUVF9NU19MQU5HSURfVElHUklHTkFfRVRISU9QSUEgYXBwZWFyZWQgdHdpY2UpLgoKMjAwMS0wMy0wNCAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogc3JjL2F1dG9oaW50L2FodHlwZXMuaCAoQUhfSGludGVyKTogQWRkIGVsZW1lbnRzCglgZGlzYWJsZV9ob3J6X2VkZ2VzJywgYGRpc2FibGVfdmVydF9lZGdlcycuCgkqIHNyYy9hdXRvaGludC9haGhpbnQuYwkoYWhfaGludF9lZGdlc18zLCBhaF9oaW50ZXJfaGludF9lZGdlcyk6IFVzZQoJdGhlbSAoYW5kIHJlbW92ZSBzdGF0aWMgdmFyaWFibGVzIHdpdGggdGhlIHNhbWUgbmFtZXMpLgoJKiBzcmMvcGNmL3BjZnV0aWwuYyAoQml0T3JkZXJJbnZlcnQpOiBBZGQgYGNvbnN0Jy4KCSogZG9jcy9nbG5hbWVzLnB5OiBVcGRhdGVkIHRvIGxhdGVzdCBwc3RhYmxlcy5oIGNoYW5nZXMuCgoJKiBidWlsZHMvdW5peC9kZXRlY3QubWs6IEFkZCB0ZXN0IGZvciBIdXJkLgoJKiBidWlsZHMvaHVyZC9kZXRlY3QubWs6IFJlbW92ZWQuCgoyMDAxLTAzLTA0ICBTYW5kZXIgdmFuIGRlciBXYWwgIDxzdmR3YWxAeHM0YWxsLm5sPgoKCSogc3JjL3BzbmFtZXMvcHN0YWJsZXMuaDogQWRkIG1vcmUgYGNvbnN0Jy4KCSogc3JjL3BjZi9wY2Z1dGlsLmM6IERpdHRvLgoKMjAwMS0wMy0wNCAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogc3JjL2Jhc2UvZnRnbHlwaC5jIChGVF9HbHlwaF9Ub19CaXRtYXApOiBGaXhpbmcgdHlwbwoJKEZUX0dseXBoX0RvbmUgLT4gRlRfRG9uZV9HbHlwaCkuCgoyMDAxLTAzLTAxICBBbnRvaW5lIExlY2EgIDxBbnRvaW5lLkxlY2FAcmVuYXVsdC5mcj4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvdHRuYW1laWQuaDogQWRkZWQgc29tZSBuZXcgTWljcm9zb2Z0IGxhbmd1YWdlCgljb2RlcyBhbmQgTENJRHMgYXMgZm91bmQgaW4gT2ZmaWNlIFhwLgoKMjAwMS0wMi0yOCAgRGF2aWQgVHVybmVyICA8ZGF2aWQudHVybmVyQGZyZWV0eXBlLm9yZz4KCgkqIGJ1aWxkcy9odXJkL2RldGVjdC5tazogTmV3IGZpbGUuICBBZGRlZCBzdXBwb3J0IHRvIGRldGVjdCB0aGUgR05VCglIdXJkIG9wZXJhdGluZyBzeXN0ZW0gYXMgVW5peC1saWtlLiAgRml4IHN1Ym1pdHRlZCBieSBBbnRob255IEZvawoJPGZva2FAZGViaWFuLm9yZz4uCgoJKiBzcmMvdHlwZTEvdDFnbG9hZC5jIChUMV9Mb2FkX0dseXBoKTogU2V0IGdseXBoIGNvbnRyb2wgZGF0YSB0byB0aGUKCXRoZSBUeXBlIDEgZ2x5cGggY2hhcnN0cmluZyAodXNlZCBieSBjb252ZXJzaW9uIHByb2dyYW1zKS4KCVN1Ym1pdHRlZCBieSBIYSBTaGFvIDxoYXNoYW9AY2hpbmVzZS5jb20+LgoKMjAwMS0wMi0yMiAgRGF2aWQgVHVybmVyICA8ZGF2aWQudHVybmVyQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy9iYXNlL2Z0Z3JheXMuYyAoZ3JheXNfc3dlZXApOiBUaGUgZnVuY3Rpb24gZGlkbid0IGV4aXQKCWltbWVkaWF0ZWx5IGlmIGBudW1fY2VsbHMnIHdhcyAwIGFzIGl0IHNob3VsZC4gIFRoYW5rcyB0byBCb3JpcyBmb3IKCWZpbmRpbmcgdGhpcyBvdXQuCgoJKiBzcmMvYmFzZS9mdGdseXBoLmMgKEZUX0dseXBoX1RvX0JpdG1hcCk6IEZpeGVkIG1lbW9yeSBsZWFrIHdoZW4KCWJpdG1hcCByZW5kZXJpbmcgZmFpbHMgKHRoYW5rcyB0byBHcmFoYW0gQXNoZXIpLgoKMjAwMS0wMi0xMyAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogZG9jcy9kb2NtYWtlci5weSAoRG9jU2VjdGlvbjo6YWRkX2VsZW1lbnQpOiBVc2UKCWBzZWxmLnByaW50X2Vycm9yKCknLgoKCSogYnVpbGRzL3VuaXgvY29uZmlnLntndWVzcyxzdWJ9OiBVcGRhdGVkIChmcm9tIGZ0cC5nbnUub3JnKS4KCjIwMDEtMDItMTMgIERhdmlkIFR1cm5lciAgPGRhdmlkLnR1cm5lckBmcmVldHlwZS5vcmc+CgoJKiBkb2NzL2RvY21ha2VyLnB5LCBpbmNsdWRlL2ZyZWV0eXBlLyouaDogVXBkYXRlZCB0aGUgRG9jTWFrZXIKCXNjcmlwdCB0byBzdXBwb3J0IGNoYXB0ZXJzIGFuZCBzZWN0aW9uIGJsb2NrIG9yZGVyaW5nLiAgVXBkYXRlZCB0aGUKCXB1YmxpYyBoZWFkZXIgZmlsZXMgYWNjb3JkaW5nbHkuCgoJKiBzcmMvYmFzZS9mdGdseXBoLmMgKEZUX0dseXBoX0NvcHkpOiBBZHZhbmNlIHdpZHRoIGFuZCBnbHlwaCBmb3JtYXQKCXdlcmUgbm90IGNvcnJlY3RseSBjb3BpZWQuCgoyMDAxLTAyLTA4ICBUb20gS2Fjdmluc2t5ICA8dGprQGFtcy5vcmc+CgoJKiBzcmMvY2ZmL2NmZnBhcnNlLmMgKGNmZl9wYXJzZV9mb250X21hdHJpeCk6IFJlbW92ZWQgYW4KCXVubmVjZXNzYXJ5IGZwcmludGYoIHN0ZGVyciwgLi4uICkuCgoyMDAxLTAyLTA3ICBUb20gS2Fjdmluc2t5ICA8dGprQGFtcy5vcmc+CgoJKiBzcmMvdHlwZTEvdDFvYmpzLmMgKFQxX0luaXRfRmFjZSk6IEFkZGVkIGNvZGUgdG8gZ2V0IHRoZQoJdW5pdHNfcGVyX0VNIGZyb20gdGhlIHZhbHVlIGFzc2lnbmVkIGluIHBhcnNlX2ZvbnRfbWF0cml4LCBpZgoJYXZhaWxhYmxlLiAgRGVmYXVsdCB0byAxMDAwIGlmIG5vdCBhdmFpbGFibGUuCgoJKiBzcmMvY2ZmL2NmZnBhcnNlLmMgKGNmZl9wYXJzZV9mb250X21hdHJpeCk6IEFkZGVkIGxvZ2ljIHRvIGdldAoJdGhlIHVuaXRzX3Blcl9FTSBmcm9tIHRoZSBGb250TWF0cml4LgoKCShjZmZfcGFyc2VfZml4ZWRfdGhvdXNhbmQpOiBOZXcgZnVuY3Rpb24uIEdldHMgYSByZWFsIG51bWJlciBmcm9tCgl0aGUgQ0ZGIGZvbnQsIGJ1dCBtdWx0aXBsaWVzIGJ5IDEwMDAgKHRoaXMgaXMgdG8gYXZvaWQgcm91bmRpbmcKCWVycm9ycyB3aGVuIHBsYWNpbmcgdGhpcyByZWFsIG51bWJlciBpbnRvIGEgMTYuMTYgZml4ZWQgbnVtYmVyKS4KCgkoY2ZmX3BhcnNlX3JlYWwpOiBBZGRlZCBjb2RlIHNvIHRoYXQgdGhlIGludGVnZXIgcGFydCBpcyBtb3ZlZAoJaW50byB0aGUgaGlnaCBzaXh0ZWVuIGJpdHMgb2YgdGhlIDE2LjE2IGZpeGVkIG51bWJlci4KCgkqIHNyYy9jZmYvY2Zmb2Jqcy5jIChDRkZfSW5pdF9GYWNlKTogQWRkZWQgbG9naWMgdG8gZ2V0IHRoZSB1bml0cwoJcGVyIEVNIGZyb20gdGhlIENGRiBkaWN0aW9uYXJ5LCBpZiBhdmFpbGFibGUuCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL2NmZnR5cGVzLmg6IEluIHN0cnVjdCBDRkZfRm9udF9EaWN0XywKCWFkZGVkIGEgdW5pdHNfcGVyX2VtIG1lbWJlciB0byBmYWNpbGl0YXRlIHBhc3Npbmcgb2YgdW5pdHNfcGVyX2VtCglmcm9tIGZ1bmN0aW9uIGNmZl9wYXJzZV9mb250X21hdHJpeC4KCgkqIHNyYy90eXBlMS90MWxvYWQuYyAoaXNfYWxwaGEpOiBNYWtlIGAtJyBhIGxlZ2FsIGFscGhhbnVtZXJpYwoJY2hhcmFjdGVyLiAgVGhpcyBpcyBzbyB0aGF0IGZvbnQgbmFtZXMgd2l0aCBgLScgYXJlIGZ1bGx5IHBhcnNlZCwKCWV0Yy4uLgoKMjAwMS0wMi0wMiAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogc3JjL3BzYXV4L3Bzb2Jqcy5jIChzaGlmdF9lbGVtZW50cyk6IFJlbW92ZSBpZiBjbGF1c2UgKHdoaWNoIGlzCglvYnNvbGV0ZSBub3cpLgoKCShyZWFsbG9jYXRlX3QxX3RhYmxlLCBQU19UYWJsZV9Eb25lKTogUmVwbGFjZSBSRUFMTE9DKCkgd2l0aCBBTExPQygpCgkrIE1FTV9Db3B5KCkgdG8gYXZvaWQgYSBtZW1vcnkgYnVnLgoKMjAwMS0wMi0wMSAgRGF2aWQgVHVybmVyICA8ZGF2aWQudHVybmVyQGZyZWV0eXBlLm9yZz4KCgkqIGRvY3MvZG9jbWFrZXIucHk6IEltcHJvdmVkIHRoZSBpbmRleCBzb3J0aW5nIHJvdXRpbmUgdG8gcGxhY2UKCWNhcGl0YWwgbGV0dGVycyBiZWZvcmUgc21hbGwgb25lcy4gIEFkZGVkIHRoZSAiPG9yZGVyPiIgbWFya2VyIHRvCglzZWN0aW9uIGJsb2NrcyBpbiBvcmRlciB0byBnaXZlIHRoZSBvcmRlciBvZiBibG9ja3MuCgoyMDAxLTAxLTMwICBBbnRvaW5lIExlY2EgIDxBbnRvaW5lLkxlY2FAcmVuYXVsdC5mcj4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvdHRuYW1laWQuaDogTGF0ZXN0IHVwZGF0ZXMgdG8gTWljcm9zb2Z0IGxhbmd1YWdlCglJRCBjb2Rlcy4KCjIwMDEtMDEtMjQgIFRvbSBLYWN2aW5za3kgIDx0amtAYW1zLm9yZz4KCgkqIHNyYy9jZmYvdDFsb2FkLmMgKHBhcnNlX2ZvbnRfbWF0cml4KTogQWRkZWQgaGV1cmlzdGljIHRvIGdldAoJdW5pdHNfcGVyX0VNIGZyb20gdGhlIGZvbnQgbWF0cml4LgoKCShwYXJzZV9kaWN0KTogRGVsZXRlZCB0ZXN0IHRvIHNlZSB3aGV0aGVyIHRoZSBGb250SW5mbyBrZXl3b3JkIGhhcwoJYmVlbiBzZWVuLiAgRGVsZXRpb24gb2YgdGhpcyB0ZXN0IGFsbG93cyBmb250cyB3aXRob3V0IEZvbnRJbmZvCglkaWN0aW9uYXJpZXMgdG8gYmUgcGFyc2VkIGJ5IHRoZSBUeXBlIDEgZHJpdmVyLgoKCShUMV9PcGVuX0ZhY2UpOiBEZWxldGVkIGVtcHR5IHN1YnJvdXRpbmVzIGFycmF5IHRlc3QgdG8gbWFrZSBzdXJlCglmb250cyB3aXRoIG5vIHN1YnJvdXRpbmVzIHN0aWxsIGFyZSBwYXJzZWQuCgoyMDAxLTAxLTE3ICBGcmFuY2VzY28gWmFwcGEgTmFyZGVsbGkgIDxmcmFuY2VzY28uemFwcGEubmFyZGVsbGlAZW5zLmZyPgoKCSogc3JjL3BjZnJlYWQuYyAocGNmX2dldF9wcm9wZXJ0aWVzLCBwY2ZfZ2V0X21ldHJpY3MsCglwY2ZfZ2V0X2JpdG1hcHMpOiBGaXggY29tcGlsZXIgZXJyb3JzLgoKMjAwMS0wMS0xMSAgRGF2aWQgVHVybmVyICA8ZGF2aWQudHVybmVyQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy9wY2YvcGNmcmVhZC5jOiBSZW1vdmVkIHNvbWUgY29tcGlsYXRpb24gd2FybmluZ3MgcmVsYXRlZAoJdG8gY29tcGFyaXNvbiBvZiBzaWduZWQgdnMuIHVuc2lnbmVkIGludGVnZXJzLgoKCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9mdGRlYnVnLmg6IENoYW5nZWQgdGhlIGRlYnVnIHRyYWNlCgljb25zdGFudHMgZnJvbSB0cmFjZV90Mnh4eHggdG8gdHJhY2VfY2ZmeHh4eCB0byBiZSBhYmxlIHRvIGNvbXBpbGUKCXRoZSBDRkYgZHJpdmVyIGluIGRlYnVnIG1vZGUuCgoyMDAxLTAxLTExICBNYXR0aGV3IENyb3NieSAgPG1jcm9zYnlAbWFydGhvbi5vcmc+CgoJKiBidWlsZHMvdW5peC9mcmVldHlwZS1jb25maWcuaW46IEZpeCBwcm9ibGVtcyB3aXRoIHNlcGFyYXRlCgktLXByZWZpeCBhbmQgLS1leGVjLXByZWZpeC4KCjIwMDEtMDEtMTEgIERhdmlkIFR1cm5lciAgPGRhdmlkLnR1cm5lckBmcmVldHlwZS5vcmc+CgoJKiBkb2NzL2RvY21ha2VyLnB5OiBBZGRlZCBjcm9zcy1yZWZlcmVuY2VzIGdlbmVyYXRpb24gYXMgd2VsbCBhcwoJbW9yZSByb2J1c3QgaGFuZGxpbmcgb2YgcGF0aG5hbWUgd2lsZGNhcmQgbWF0Y2hpbmcuCgoyMDAxLTAxLTEwICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBkb2NzL2RvY21ha2VyLnB5OiBNaW5vciBpbXByb3ZlbWVudHMgdG8gcmVkdWNlIHVud2FudGVkIHNwYWNlcwoJYW5kIGVtcHR5IGxpbmVzIGluIG91dHB1dC4KCjIwMDEtMDEtMDkgIERhdmlkIFR1cm5lciAgPGRhdmlkLnR1cm5lckBmcmVldHlwZS5vcmc+CgoJKiBkb2NzL2RvY21ha2VyLnB5OiBJbXByb3ZlZCBzY3JpcHQgdG8gZ2VuZXJhdGUgdGFibGUgb2YgY29udGVudHMKCWFuZCBpbmRleCBwYWdlcy4gIEl0IGFsc28gc3VwcG9ydHMgd2lsZGNhcmRzIG9uIG5vbiBVbml4IHN5c3RlbXMuCgoJKiBpbmNsdWRlL2ZyZWV0eXBlLyouaCwgaW5jbHVkZS9mcmVldHlwZS9jYWNoZS8qLmg6IFVwZGF0ZWQgY29tbWVudHMKCXRvIGluY2x1ZGUgc2VjdGlvbiBkZWZpbml0aW9ucy9kZWxpbWl0YXRpb25zIGZvciB0aGUgQVBJIFJlZmVyZW5jZQoJZ2VuZXJhdG9yLgoKCSogaW5jbHVkZS9mcmVldHlwZS9mcmVldHlwZS5oOiBNb3ZlZCBkZWNsYXJhdGlvbiBvZgoJYEZUX0dlbmVyaWNfRmluYWxpemVyJyBhbmQgdGhlIGBGVF9HZW5lcmljJyBzdHJ1Y3R1cmUgdG8uLi4KCSogaW5jbHVkZS9mcmVldHlwZS9mdHR5cGVzLmg6IGhlcmUuCgoyMDAxLTAxLTA0ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBpbmNsdWRlL2ZyZWV0eXBlL3R0bmFtZWlkLmg6IFVwZGF0ZWQgVW5pY29kZSBjb2RlIHJhbmdlIGNvbW1lbnRzLgoKMjAwMS0wMS0wMyAgVG9tIEthY3ZpbnNreSAgPHRqa0BhbXMub3JnPgoKCSogc3JjL2NmZi9ydWxlcy5tazogVXNlIGNmZmdsb2FkLntjLGh9IGluc3RlYWQgb2YgdDJnbG9hZC57YyxofS4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvaW50ZXJuYWwuaDogQ2hhbmdlZCB0byB1c2UgY2ZmdHlwZXMuaAoJKGNmZmVycnMuaCkgaW5zdGVhZCBvZiB0MnR5cGVzLmggKHQyZXJyb3JzLmgsIHJlc3BlY3RpdmVseSkuCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL2NmZnR5cGVzLmg6IE1lcmdlZCBpbiBjaGFuZ2VzIGZyb20KCXQydHlwZXMuaCBhbmQgbWFkZSB0aGlzIHRoZSBjYW5vbmljYWwgYHR5cGVzJyBoZWFkZXIgZm9yIHRoZSBDRkYKCWRyaXZlci4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvdDJ0eXBlcy5oOiBUaGlzIGZpbGUgd2FzIG1lcmdlZCB3aXRoCgljZmZ0eXBlcy5oIGFuZCBpcyBubyBsb25nZXIgbmVjZXNzYXJ5LgoKCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC90MmVycm9ycy5oOglSZW5hbWVkIHRvIGNmZmVycnMuaC4KCgkqIHNyYy9jZmYvY2Zmb2Jqcy5jLCBzcmMvY2ZmL2NmZm9ianMuaCwgc3JjL2NmZi9jZmZwYXJzZS5jLAoJc3JjL2NmZi9jZmZkcml2ci5jLCBzcmMvY2ZmL2NmZi5jLCBzcmMvY2ZmL2NmZmxvYWQuYywKCXNyYy9jZmYvY2ZmZ2xvYWQuYywgc3JjL2NmZi9jZmZnbG9hZC5oOiBDaGFuZ2VkIHRvIHVzZQoJY2ZmZ2xvYWQue2MsaH0gaW5zdGVhZCBvZiB0Mmdsb2FkLntjLGh9LiAgQWxsIG9jY3VyZW5jZXMgb2YgdDJfCgkoVDJfKSB3ZXJlIHJlcGxhY2VkIHdpdGggY2ZmXyAoQ0ZGXywgcmVzcGVjdGl2ZWx5KS4KCgkqIHNyYy9jZmYvdDJnbG9hZC5oOiBSZW5hbWVkIGNmZmdsb2FkLmguCgoJKiBzcmMvY2ZmL3QyZ2xvYWQuYzogUmVuYW1lZCBjZmZnbG9hZC5jCgoyMDAwLTAxLTAyICBKb3VrIEphbnNlbiAgPGpvdWtqQGhyZW0uc3RtLnR1ZGVsZnQubmw+CgoJKiBidWlsZHMvdm1zOiBTdXBwb3J0IGZpbGVzIGZvciBWTVMgYXJjaGl0ZWN0dXJlIGFkZGVkLgoJKiBkZXNjcmlwLm1tcywgc3JjLyovZGVzY3JpcC5tbXM6IFZNUyBtYWtlZmlsZXMgYWRkZWQuCgkqIFJFQURNRS5WTVM6IE5ldyBmaWxlLgoKMjAwMC0wMS0wMSAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogTElDRU5TRS5UWFQ6IEFkZGVkIGluZm8gYWJvdXQgUENGIGRyaXZlciBsaWNlbnNlLgoKMjAwMS0wMS0wMSAgRnJhbmNlc2NvIFphcHBhIE5hcmRlbGxpICA8ZnJhbmNlc2NvLnphcHBhLm5hcmRlbGxpQGVucy5mcj4KCgkqIHNyYy9wY2YvKjogTmV3IGRyaXZlciBtb2R1bGUgZm9yIFBDRiBmb250IGZvcm1hdCAodXNlZCBpbgoJWCBXaW5kb3dzKS4KCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9mdGRlYnVnLmggKEZUX1RyYWNlKTogQWRkZWQgdmFsdWVzIGZvcgoJUENGIGRyaXZlci4KCSogaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9wY2Z0eXBlcy5oOiBOZXcgZmlsZS4KCSogaW5jbHVkZS9mcmVldHlwZS9jb25maWcvZnRtb2R1bGUuaDogQWRkZWQgUENGIGRyaXZlciBtb2R1bGUuCgoyMDAxLTAxLTAxICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBzcmMvd2luZm9udHMvd2luZm50LmMgKEZOVF9HZXRfQ2hhcl9JbmRleCk6IEZpeCBwYXJhbWV0ZXIgdHlwZS4KCjIwMDAtMTItMzEgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIGJ1aWxkcy9tb2R1bGVzLm1rIChjbGVhbl9tb2R1bGVfbGlzdCk6IEZpeGVkIGRlbGV0aW9uIG9mIG1vZHVsZQoJZmlsZSBpbiBjYXNlIGBtYWtlIG1ha2VfbW9kdWxlX2xpc3QnIGlzIGNhbGxlZCBiZWZvcmUgYG1ha2Ugc2V0dXAnLgoKMjAwMC0xMi0zMCAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogc3JjL2NmZi9jZmZsb2FkLmMgKENGRl9Mb2FkX0NoYXJzZXQpOiBJbXByb3ZlZCBlcnJvciBtZXNzYWdlcy4KCShDRkZfTG9hZF9DaGFyc2V0LCBDRkZfTG9hZF9FbmNvZGluZyk6IFJlbW92ZSB1bm5lY2Vzc2FyeSB2YXJpYWJsZQoJZGVmaW5pdGlvbi4KCjIwMDAtMTItMzAgIFRvbSBLYWN2aW5za3kgIDx0amtAYW1zLm9yZz4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvdDJ0eXBlcy5oLAoJaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9jZmZ0eXBlcy5oOiBDaGFuZ2VkIHRoZSBzdHJ1Y3R1cmVzIGZvcgoJQ0ZGX0VuY29kaW5nIGFuZCBDRkZfRW5jb2RpbmcgZm9yIHRoZSBuZXcgaW1wbGVtZW50YXRpb25zIG9mIHRoZQoJY2hhcnNldCBhbmQgZW5jb2RpbmcgcGFyc2VycyBpbiB0aGUgQ0ZGIGRyaXZlci4KCgkqIHNyYy9jZmYvdDJnbG9hZC5jICh0Ml9sb29rdXBfZ2x5cGhfYnlfc3RkY2hhcmNvZGUsCgl0Ml9vcGVyYXRvcl9zZWFjKTogQWRkZWQgdGhlc2UgZnVuY3Rpb25zIGZvciB1c2UgaW4gaW1wbGVtZW50aW5nIHRoZQoJc2VhYyBlbXVsYXRpb24gcHJvdmlkZWQgYnkgdGhlIFR5cGUgMiBlbmRjaGFyIG9wZXJhdG9yLgoJKFQyX1BhcnNlX0NoYXJTdHJpbmdzKTogQWRkZWQgc2VhYyBlbXVsYXRpb24gZm9yIHRoZSBlbmRjaGFyCglvcGVyYXRvci4KCgkqIHNyYy9jZmYvY2ZmbG9hZC5jIChDRkZfTG9hZF9FbmNvZGluZywgQ0ZGX0xvYWRfQ2hhcnNldCwKCUNGRl9Eb25lX0VuY29kaW5nLCBDRkZfRG9uZV9DaGFyc2V0KTogRXh0ZW5kZWQgdG8gbG9hZCBhbmQgcGFyc2UgdGhlCgljaGFyc2V0L2VuY29kaW5nIHRhYmxlcywgYW5kIGZyZWUgdGhlIG1lbW9yeSB1c2VkIGJ5IHRoZW0gd2hlbiB0aGUKCUNGRiBkcml2ZXIgaXMgZmluaXNoZWQgd2l0aCB0aGVtLiAgQWRkZWQgdGFibGVzCgoJICAgIGNmZl9pc29hZG9iZV9jaGFyc2V0CgkgICAgY2ZmX2V4cGVydF9jaGFyc2V0CgkgICAgY2ZmX2V4cGVydHN1YnNldF9jaGFyc2V0CgkgICAgY2ZmX3N0YW5kYXJkX2VuY29kaW5nCgkgICAgY2ZmX2V4cGVydF9lbmNvZGluZwoKCXNvIHRoYXQgdGhlIGVuY29kaW5nL2NoYXJzZXQgcGFyc2VyIGNhbiBoYW5kbGUgcHJlZGVmaW5lZCBlbmNvZGluZ3MgYW5kCgljaGFyc2V0cy4KCjIwMDAtMTItMjQgIFRvbSBLYWN2aW5za3kgIDx0amtAYW1zLm9yZz4KCgkqIHNyYy9jZmYvdDJnbG9hZC5jIChUMl9Mb2FkX0dseXBoKTogQWRkZWQgY29kZQlzbyB0aGF0IHRoZSBmb250Cgl0cmFuc2Zvcm0gaXMgYXBwbGllZC4KCgkqIHNyYy9jZmYvY2ZmcGFyc2UuYyAoY2ZmX3BhcnNlX2ZvbnRfbWF0cml4KTogQWRkZWQgY29kZSBzbyB0aGF0Cgl0aGUgZm9udCBtYXRyaXggbnVtYmVycwlhcmUgc2NhbGVkIGJ5IDEvKG1hdHJpeC0+eXkpLiAgQWxzbywgdGhlCglvZmZzZXQgdmVjdG9yIG5vdyBjb250YWlucyBpbnRlZ2VyIHZhbHVlcyBpbnN0ZWFkIG9mIDE2LjE2IGZpeGVkCgludW1iZXJzLgoKMjAwMC0xMi0yMiAgVG9tIEthY3ZpbnNreSAgPHRqa0BhbXMub3JnPgoKCSogc3JjL2F1dG9oaW50L2FoaGludC5jIChhaF9oaW50ZXJfbG9hZF9nbHlwaCk6CglSZW1vdmVkIHVubmVjZXNzYXJ5IGNvbW1lbnRzIGFuZCBjb21tZW50ZWQtb3V0IGNvZGUuCgoyMDAwLTEyLTIxICBEYXZpZCBUdXJuZXIgIDxkYXZpZC50dXJuZXJAZnJlZXR5cGUub3JnPgoKCSogc3JjL2NpZC9jaWRhZm0uYywgc3JjL2NpZC9jaWRhZm0uaDogcmVtb3ZlZCB1bi1uZWVkZWQgZmlsZXMsCgl3ZSdsbCB3b3JrIG9uIHN1cHBvcnRpbmcgQ0lEIEFGTSBmaWxlcyBsYXRlciBJIGd1ZXNzIDotKQoKMjAwMC0xMi0yMSAgVG9tIEthY3ZpbnNreSAgPHRqa0BhbXMub3JnPgoKCSogc3JjL2F1dG9oaW50L2FoaGludC5jIChhaF9oaW50ZXJfbG9hZCwgYWhfaGludGVyX2xvYWRfZ2x5cGgpOgoJQ2hhbmdlZCBzbyB0aGF0IGZvbnRzIHdpdGggYSBub24tc3RhbmRhcmQgRm9udE1hdHJpeCByZW5kZXIKCWNvcnJlY3RseS4gIFByZXZpb3VzbHksIHRoZSBmaXJzdCBnbHlwaCByZW5kZXJlZCBmcm9tIHN1Y2ggYQoJZm9udCBkaWQgbm90IGhhdmUgdGhlIHRyYW5mb3JtYXRpb24gbWF0cml4IGFwcGxpZWQuCgoyMDAwLTEyLTE3ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiAqLm1rOiBBZGRlZCBsb3RzIG9mIGAuUEhPTlknIHRhcmdldHMuCgoyMDAwLTEyLTE3ICBLYXJzdGVuIEZsZWlzY2hlciAgPGtmbGVpc2MxQGZvcmQuY29tPgoKCSogKi5tazogSW1wbGVtZW50ZWQgYHBsYXRmb3JtJyB0YXJnZXQgdG8gZGlzYWJsZSBhdXRvLWRldGVjdGlvbi4KCjIwMDAtMTItMTQgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIGRvY3MvZGVzaWduL21vZHVsZXMuaHRtbDogUmVtb3ZlZC4gIENvdmVyZWQgYnkgZGVzaWduLSouaHRtbC4KCgkqIElOU1RBTEw6IEFkZGVkIGluZm8gYWJvdXQgbWFrZXBwLgoKMjAwMC0xMi0xNCAgRGF2aWQgVHVybmVyICA8ZGF2aWQudHVybmVyQGZyZWV0eXBlLm9yZz4KCglBZGRlZCBzdXBwb3J0IGZvciBjbGlwcGVkIGRpcmVjdCByZW5kZXJpbmcgaW4gdGhlIHNtb290aCByZW5kZXJlci4KCVRoaXMgc2hvdWxkIG5vdCBicmVhayBiaW5hcnkgY29tcGF0aWJpbGl0eSBvZiBleGlzdGluZyBhcHBsaWNhdGlvbnMuCgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2Z0dHlwZXMuaCwgaW5jbHVkZS9mcmVldHlwZS9mdGltYWdlLmg6IE1vdmUKCWRlZmluaXRpb24gb2YgdGhlIEZUX0JCb3ggc3RydWN0dXJlIGZyb20gdGhlIGZvcm1lciB0byB0aGUgbGF0dGVyLgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2Z0aW1hZ2UuaDogQWRkIGBmdF9yYXN0ZXJfZmxhZ19jbGlwJyB2YWx1ZSB0bwoJRlRfUmFzdGVyX0ZsYWcgZW51bWVyYXRpb24uCglBZGQgYGNsaXBfYm94JyBlbGVtZW50IHRvIEZUX1Jhc3Rlcl9QYXJhbXMgc3RydWN0dXJlLgoJKiBzcmMvc21vb3RoL2Z0Z3JheXMuYyAoZ3JheXNfY29udmVydF9nbHlwaCk6IEltcGxlbWVudCBpdC4KCgkqIElOU1RBTEw6IFVwZGF0ZWQgaW5zdGFsbGF0aW9uIGluc3RydWN0aW9ucyBvbiBXaW4zMiwgbGlzdGluZyB0aGUKCW5ldyAibWFrZSBzZXR1cCBsaXN0IiB0YXJnZXQgdXNlZCB0byBsaXN0IHN1cHBvcnRlZAoJY29tcGlsZXJzL3RhcmdldHMuCgoJKiBzcmMvcmFzdGVyL2Z0cmFzdGVyLmMgKGZ0X2JsYWNrX3JlbmRlcik6IFRlc3QgZm9yIHVuc3VwcG9ydGVkCglkaXJlY3QgcmVuZGVyaW5nIGJlZm9yZSB0ZXN0aW5nIGFyZ3VtZW50cy4KCjIwMDAtMTItMTMgIERhdmlkIFR1cm5lciAgPGRhdmlkLnR1cm5lckBmcmVldHlwZS5vcmc+CgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2NvbmZpZy9mdDJidWlsZC5oLAoJaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9pbnRlcm5hbC5oOiBGaXhlZCBoZWFkZXIgaW5jbHVzaW9uIG1hY3JvcwoJdG8gdXNlIGRpcmVjdCBkZWZpbml0aW9ucy4gIFRoaXMgaXMgdGhlIG9ubHkgd2F5IHRvIGRvIHRoZXNlIHRoaW5ncwoJaW4gYSBwb3J0YWJsZSB3YXkgOi0oICBUaGUgcmVzdCBvZiB0aGUgY29kZSBzaG91bGQgZm9sbG93IHNob3J0bHkKCXRob3VnaCBldmVyeXRoaW5nIGNvbXBpbGVzIG5vdy4KCgkqIGJ1aWxkcy9jb21waWxlci9pbnRlbGMubWssIGJ1aWxkcy9jb21waWxlci93YXRjb20ubWs6IE5ldyBmaWxlcy4KCgkqIGJ1aWxkcy93aW4zMi9kZXRlY3QubWs6IEFkZGVkIHN1cHBvcnQgZm9yIHRoZSBJbnRlbCBDL0MrKwoJY29tcGlsZXIsIGFzIHdlbGwgYXMgX3ByZWxpbWluYXJ5XyAocmVhZDogZG9lc24ndCB3b3JrISkgc3VwcG9ydCBmb3IKCVdhdGNvbS4gIEFsc28gYWRkZWQgYSBuZXcgc2V0dXAgdGFyZ2V0LiAgVHlwZSAibWFrZSBzZXR1cCBsaXN0IiBmb3IKCWEgbGlzdCBvZiBzdXBwb3J0ZWQgY29tbWFuZC1saW5lIGNvbXBpbGVycyBvbiBXaW4zMi4KCgkqIHNyYy9iYXNlL2Z0ZGVidWcuYzogQWRkZWQgZHVtbXkgc3ltYm9sIHRvIGF2b2lkIGVtcHR5IGZpbGUgaWYKCWNvbmRpdGlvbmFscyBhcmUgb2ZmLgoKMjAwMC0xMi0xMyAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogYnVpbGRzL3VuaXgvZnRzeXN0ZW0uYzogRml4ZWQgdHlwb3MuICBGaXhlZCBpbmNsdXNpb24gb2Ygd3JvbmcKCWZ0Y29uZmlnLmggZmlsZS4KCjIwMDAtMTItMTIgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIGluY2x1ZGUvZnJlZXR5cGUvY29uZmlnL2Z0MmJ1aWxkLmggKEZUMl9ST09ULCBGVDJfQ09ORklHX1JPT1QpOgoJUmVtb3ZlZC4gIEFOU0kgQyBkb2Vzbid0IChleHBsaWNpdGx5KSBhbGxvdyBtYWNybyBleHBhbnNpb24gaW4KCWFyZ3VtZW50cyB1c2luZyBgIyMnLgoJKEZUMl9QVUJMSUNfRklMRSwgRlQyX0NPTkZJR19GSUxFLCBGVDJfSU5URVJOQUxfRklMRSk6IFVzZSBkaXJlY3RvcnkKCW5hbWVzIGRpcmVjdGx5LiAgTWFrZSB0aGVtIGNvbmZpZ3VyYWJsZS4gIFVzZSBgIyMnIHRvIHN0cmlwIGxlYWRpbmcKCWFuZCB0cmFpbGluZyBzcGFjZXMgZnJvbSBhcmd1bWVudHMuCgoJKiBidWlsZHMvdW5peC9mdDJ1bml4Lmg6IEFkYXB0ZWQuCgoJKiBzcmMvYmFzZS9mdHN5c3RlbS5jIChmdF9hbGxvYywgZnRfcmVhbGxvYywgZnRfZnJlZSwgZnRfaW9fc3RyZWFtLAoJZnRfY2xvc2Vfc3RyZWFtKTogVXNlIEZUX0NBTExCQUNLX0RFRi4KCgkqIGJ1aWxkcy91bml4L2Z0c3lzdGVtLmM6IFVzZSBuZXcgaGVhZGVyIHNjaGVtZS4KCShGVF9Eb25lX01lbW9yeSk6IFVzZSBmcmVlKCkgZnJvbSBGVF9NZW1vcnkgc3RydWN0dXJlLgoKCSogc3JjL2Jhc2UvZnRpbml0LmMsIHNyYy9iYXNlL2Z0bWFjLmM6IEhlYWRlciBzY2hlbWUgZml4ZXMuCgoyMDAwLTEyLTExICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2NvbmZpZy9mdDJidWlsZC5oIChGVDJfQ09ORklHX1JPT1QsCglGVDJfUFVCTElDX0ZJTEUsIEZUMl9DT05GSUdfRklMRSwgRlQyX0lOVEVSTkFMX0ZJTEUsCglGVF9TT1VSQ0VfRklMRSk6IFVzZSBgIyMnIG9wZXJhdG9yIHRvIGJlIHJlYWxseSBBTlNJIEMgY29tcGxpYW50LgoKMjAwMC0xMi0wOSAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogYnVpbGRzL3VuaXgvZGV0ZWN0Lm1rOiBSZW1vdmUgdW51c2VkIFVTRV9DRkxBR1MgdmFyaWFibGUuCgoyMDAwLTEyLTA4ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiAqLyouaDogQ2hhbmdlZCBib2R5IGluY2x1c2lvbiBtYWNybyBuYW1lcyB0byBzdGFydCBhbmQgZW5kIHdpdGgKCWBfXycgKHRob3NlIHdoaWNoIGhhdmVuJ3QgY29udmVydGVkIHlldCkuICBGaXhlZCBtaW5vciBjb252ZXJzaW9uCglpc3N1ZXMuCgoJKiBzcmMvd2luZm9udHMvd2luZm50LmM6IFVwZGF0ZWQgdG8gbmV3IGhlYWRlciBpbmNsdXNpb24gc2NoZW1lLgoKCSogc3JjL3RydWV0eXBlL3R0aW50ZXJwLmM6IFJlbW92ZSB1bnVzZWQgQ0FMQ19MZW5ndGgoKSBtYWNyby4KCjIwMDAtMTItMDcgIERhdmlkIFR1cm5lciAgPGRhdmlkLnR1cm5lckBmcmVldHlwZS5vcmc+CgoJKiAqLyouW2NoXTogQ2hhbmdlZCBzb3VyY2UgZmlsZXMgdG8gYWRoZXJlIHRvIHRoZSBuZXcKCWhlYWRlciBpbmNsdXNpb24gc2NoZW1lLiAgTm90IGNvbXBsZXRlbHkgdGVzdGVkIGJ1dCB3b3JrcyBmb3Igbm93CgloZXJlLgoKCSogc3JjL2NmZi90MmRyaXZlci5jOiBSZW5hbWVkIGFuZCB1cGRhdGVkIHRvLi4uCgkqIHNyYy9jZmYvY2ZmZHJpdnIuYzogTmV3IGZpbGUuCgkqIHNyYy9jZmYvdDJkcml2ZXIuaDogUmVuYW1lZCBhbmQgdXBkYXRlZCB0by4uLgoJKiBzcmMvY2ZmL2NmZmRyaXZyLmg6IE5ldyBmaWxlLgoJKiBzcmMvY2ZmL3QybG9hZC5jOiBSZW5hbWVkIGFuZCB1cGRhdGVkIHRvLi4uCgkqIHNyYy9jZmYvY2ZmbG9hZC5jOiBOZXcgZmlsZS4KCSogc3JjL2NmZi90MmxvYWQuaDogUmVuYW1lZCBhbmQgdXBkYXRlZCB0by4uLgoJKiBzcmMvY2ZmL2NmZmxvYWQuaDogTmV3IGZpbGUuCgkqIHNyYy9jZmYvdDJvYmpzLmM6IFJlbmFtZWQgYW5kIHVwZGF0ZWQgdG8uLi4KCSogc3JjL2NmZi9jZmZvYmpzLmM6IE5ldyBmaWxlLgoJKiBzcmMvY2ZmL3Qyb2Jqcy5oOiBSZW5hbWVkIGFuZCB1cGRhdGVkIHRvLi4uCgkqIHNyYy9jZmYvY2Zmb2Jqcy5oOiBOZXcgZmlsZS4KCSogc3JjL2NmZi90MnBhcnNlLmM6IFJlbmFtZWQgYW5kIHVwZGF0ZWQgdG8uLi4KCSogc3JjL2NmZi9jZmZwYXJzZS5jOiBOZXcgZmlsZS4KCSogc3JjL2NmZi90MnBhcnNlLmg6IFJlbmFtZWQgYW5kIHVwZGF0ZWQgdG8uLi4KCSogc3JjL2NmZi9jZmZwYXJzZS5oOiBOZXcgZmlsZS4KCSogc3JjL2NmZi90MnRva2Vucy5oOiBSZW5hbWVkIGFuZCB1cGRhdGVkIHRvLi4uCgkqIHNyYy9jZmYvY2ZmdG9rZW4uaDogTmV3IGZpbGUuCgoJKiBzcmMvY2ZmL2NmZi5jLCBzcmMvY2ZmL3J1bGVzLm1rOiBVcGRhdGVkLgoKMjAwMC0xMi0wNiAgRGF2aWQgVHVybmVyICA8ZGF2aWQudHVybmVyQGZyZWV0eXBlLm9yZz4KCgkqIHNyYy9jYWNoZS9mdGxydS5jIChGVF9McnVfRG9uZSk6IEZpeGVkIG1lbW9yeSBsZWFrLgoKMjAwMC0xMi0wNiAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogYnVpbGRzL21vZHVsZS5tazogUmVwbGFjZWQgYHh4eCAjJyB3aXRoIGB4eHgkKHNwYWNlKS4KCSogYnVpbGRzL29zMi9kZXRla3QubWssIGJ1aWxkcy93aW4zMi9kZXRla3QubWs6IE1vdmVkIGNvbW1lbnQgdG8KCWF2b2lkIHRyYWlsaW5nIHNwYWNlcyBpbiB2YXJpYWJsZS4KCSogYnVpbGRzL2ZyZWV0eXBlLm1rOiBVc2UgJChEKSBpbnN0ZWFkIG9mICREIHRvIG1ha2Ugc3RhdGVtZW50IG1vcmUKCXJlYWRhYmxlLgoKCSogZG9jcy9kb2NtYWtlci5weTogRm9ybWF0dGluZy4KCjIwMDAtMTItMDUgIERhdmlkIFR1cm5lciAgPGRhdmlkLnR1cm5lckBmcmVldHlwZS5vcmc+CgoJKiBzcmMvcHNhdXgvcHNhdXhtb2QuYzogRml4ZWQgYSBicm9rZW4gaW5jbHVzaW9uIG9mIGNvbXBvbmVudAoJaGVhZGVyIGZpbGVzIChhbiBGVF9GTEFUX0NPTVBJTEUgdGVzdCB3YXMgbWlzc2luZykuCgoJKiBzcmMvY2FjaGUvZnRjbWFuYWcuYyAoRlRDX01hbmFnZXJfRG9uZSk6IEZpeGVkIGEgYnVnIHRoYXQgY2F1c2VkCglhbiBvY2Nhc2lvbmFsIGNyYXNoIHdoZW4gdGhlIGZ1bmN0aW9uIHdhcyBjYWxsZWQgKGR1ZSB0byBhIGRhbmdsaW5nCglwb2ludGVyKS4KCgkqIHNyYy9iYXNlL2Z0c3lzdGVtLmMgKEZUX0RvbmVfTWVtb3J5KTogRml4ZWQgYW4gb2J2aW91cyBidWc6CglUaGUgQU5TSSAiZnJlZSgpIiBmdW5jdGlvbiB3YXMgY2FsbGVkIGluc3RlYWQgb2YgIm1lbW9yeS0+ZnJlZSgpIi4KCgkqIGRvY3MvZG9jbWFrZXIucHk6IEFkZGVkIHNlY3Rpb24gZmlsdGVyaW5nLCBtdWx0aS1wYWdlIGdlbmVyYXRpb24KCShpbmRleCBwYWdlIGdlbmVyYXRpb24gaXMgc3RpbGwgbWlzc2luZyB0aG91Z2gpLgoKMjAwMC0xMi0wNCAgRGF2aWQgVHVybmVyICA8ZGF2aWQudHVybmVyQGZyZWV0eXBlLm9yZz4KCgkqIGJ1aWxkcy91bml4L2luc3RhbGwubWssIGJ1aWxkcy91bml4L2Z0MnVuaXguaDogVGhlIGZpbGUgImZ0MnVuaXguaCIKCWlzIG5vdyBpbnN0YWxsZWQgYXMgPGZ0MmJ1aWxkLmg+IGZvciBVbml4IHN5c3RlbXMuICBOb3RlIHRoYXQgd2UKCXN0aWxsIHVzZSB0aGUgImZyZWV0eXBlMi9mcmVldHlwZSIgaW5zdGFsbGF0aW9uIHBhdGggZm9yIG5vdy4KCgkqICovKi5bY2hdOiBOb3cgdXNpbmcgPGZ0MmJ1aWxkLmg+IGFzIHRoZSBkZWZhdWx0IGJ1aWxkIGFuZCBzZXR1cAoJY29uZmlndXJhdGlvbiBmaWxlIGluIGFsbCBwdWJsaWMgaGVhZGVycy4gIEludGVybmFsIHNvdXJjZSBmaWxlcwoJc3RpbGwgbmVlZCBzb21lIGNoYW5nZXMgdGhvdWdoLgoKCSogYnVpbGRzL2RldmVsL2Z0MmJ1aWxkLmgsIGJ1aWxkcy9kZXZlbC9mdG9wdGlvbi5oOiBDcmVhdGVkIGEgbmV3CglkaXJlY3RvcnkgdG8gaG9sZCBhbGwgZGV2ZWxvcG1lbnQgb3B0aW9ucyBmb3IgYm90aCB0aGUgVW5peCBhbmQKCVdpbjMyIGRldmVsb3BlciBidWlsZHMuCgoJKiBidWlsZHMvd2luMzIvZGV0ZWN0Lm1rLCBidWlsZHMvd2luMzIvdzMyLWJjY2QubWssCglidWlsZHMvd2luMzIvdzMyLWRldi5tazogQ2hhbmdlZCB0aGUgZGV2ZWxvcGVyIGJ1aWxkIHRhcmdldHMgdG8KCSJkZXZlbC1nY2MiIGFuZCAiZGV2ZWwtYmNjIiBpbiBvcmRlciB0byBiZSBhYmxlIHRvIGRldmVsb3Agd2l0aCB0aGUKCUJvcmxhbmQgQysrIGNvbXBpbGVyLgoKMjAwMC0xMi0wMSAgRGF2aWQgVHVybmVyICA8ZGF2aWQudHVybmVyQGZyZWV0eXBlLm9yZz4KCgkqIFZlcnNpb24gMi4wLjEgcmVsZWFzZWQuCgk9PT09PT09PT09PT09PT09PT09PT09PT09CgoJKiBidWlsZHMvdW5peC9jb25maWd1cmUuaW4sIGJ1aWxkcy91bml4L2NvbmZpZ3VyZSwKCWJ1aWxkcy9jeWd3aW4vY29uZmlndXJlLmluLCBidWlsZHMvY3lnd2luL2NvbmZpZ3VyZTogU2V0dGluZwoJInZlcnNpb25faW5mbyIgdG8gNjoxOjAgZm9yIHRoZSAyLjAuMSByZWxlYXNlLgoKCSogQ0hBTkdFUzogQWRkZWQgYSBzdW1tYXJ5IG9mIGNoYW5nZXMgYmV0d2VlbiAyLjAuMSBhbmQgMi4wLgoKCSogYnVpbGRzL3VuaXgvZnRjb25maWcuaW4sIGJ1aWxkcy9jeWd3aW4vZnRjb25maWcuaW46IENoYW5nZXMKCXRvIGFsbG93IGNvbXBpbGF0aW9uIHVuZGVyIFVuaXggd2l0aCB0aGUgVW5peC1zcGVjaWZpYyBjb25maWcKCWZpbGVzLgoKMjAwMC0xMi0wMSAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogSU5TVEFMTDogUmV2aXNlZC4KCSogYnVpbGRzL2NvbXBpbGVyL2JjYy1kZXYubWssIGJ1aWxkcy9jb21waWxlci92aXN1YWxhZ2UubWssCglidWlsZHMvY29tcGlsZXIvYmNjLm1rLCBidWlsZHMvd2luMzIvdzMyLWJjYy5taywKCWJ1aWxkcy93aW4zMi93MzItYmNjZC5tazogUmV2aXNlZC4KCSogaW5jbHVkZS9mcmVldHlwZS9jb25maWcvZnRidWlsZC5oLAoJaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC9pbnRlcm5hbC5oOiBSZXZpc2VkLgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2Z0aW1hZ2UuaDogVXBkYXRlZCB0byBuZXcgaGVhZGVyIGluY2x1c2lvbiBzY2hlbWUuCgoyMDAwLTExLTMwICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBidWlsZHMvdG9wbGV2ZWwubWsgKC5QSE9OWSk6IEFkZGluZyBgZGlzdGNsZWFuJy4KCSogYnVpbGRzL3VuaXgvZGV0ZWN0Lm1rICguUEhPTlkpOiBBZGRpbmcgYGRldmVsJywgYHVuaXgnLCBgbGNjJywKCWBzZXR1cCcuCgoyMDAwLTExLTMwICBEYXZpZCBUdXJuZXIgIDxkYXZpZC50dXJuZXJAZnJlZXR5cGUub2dyPgoKCSogSU5TVEFMTDogU2xpZ2h0bHkgdXBkYXRlZCB0aGUgcXVpY2sgc3RhcnRlciBkb2N1bWVudGF0aW9uIHRvCglpbmNsdWRlIElERSBjb21waWxhdGlvbiwgcHJldmVudCBhZ2FpbnN0IEJTRCBNYWtlLCBhbmQgc3BlY2lmeSAibWFrZQoJc2V0dXAiIGluc3RlYWQgb2YgYSBzaW5nbGUgIm1ha2UiIGZvciBidWlsZCBjb25maWd1cmF0aW9uLgoKCSogaW5jbHVkZS9jb25maWcvZnRidWlsZC5oLCBpbmNsdWRlL2ludGVybmFsL2ludGVybmFsLmg6IEFkZGVkIG5ldwoJY29uZmlndXJhdGlvbiBmaWxlcyB1c2VkIHRvIGRldGVybWluZSB0aGUgbG9jYXRpb24gb2YgYWxsIHB1YmxpYywKCWNvbmZpZ3VyYXRpb24sIGFuZCBpbnRlcm5hbCBoZWFkZXIgZmlsZXMgZm9yIEZyZWVUeXBlIDIuICBNb2RpZmllZAoJYWxsIGhlYWRlcnMgdW5kZXIgImluY2x1ZGUvZnJlZXR5cGUiIHRvIHJlZmxlY3QgdGhpcyBjaGFuZ2UuICBOb3RlCgl0aGF0IHdlIHN0aWxsIG5lZWQgdG8gY2hhbmdlIHRoZSBsaWJyYXJ5IHNvdXJjZSBmaWxlcyB0aGVtc2VsdmVzCgl0aG91Z2guCgoJKiBidWlsZHMvY29tcGlsZXIvYmNjLm1rLCBidWlsZHMvY29tcGlsZXIvYmNjLWRldi5taywKCWJ1aWxkcy93aW4zMi93MzItYmNjLm1rLCBidWlsZHMvd2luMzIvdzMyLWJjY2QubWssCglidWlsZHMvd2luMzIvZGV0ZWN0Lm1rOiBBZGRlZCBuZXcgZmlsZXMgdG8gc3VwcG9ydCBjb21waWxhdGlvbiB3aXRoCgl0aGUgZnJlZSBCb3JsYW5kIEMrKyBjb21tYW5kLWxpbmUgY29tcGlsZXIuICBNb2RpZmllZCB0aGUgZGV0ZWN0aW9uCglydWxlcyB0byByZWNvZ25pemUgdGhlIG5ldyAiYmNjMzIiIHRhcmdldCBpbiAibWFrZSBzZXR1cCBiY2MzMiIuCgoJKiBzcmMvc2ZudC90dGNtYXAuYywgc3JjL3NmbnQvdHRwb3N0LmMsIHNyYy9zZm50L3R0c2JpdC5jLAoJc3JjL3RydWV0eXBlL3R0b2Jqcy5jLCBzcmMvdHJ1ZXR5cGUvdHRnbG9hZC5jLAoJc3JjL3RydWV0eXBlL3R0aW50ZXJwLmM6IEZpeGVkIGEgZmV3IGNvbXBhcmlzb25zIHRoYXQgQm9ybGFuZCBDKysKCWRpZG4ndCByZWFsbHkgbGlrZS4gIEJhc2ljYWxseSwgdGhpcyBjb21waWxlciBjb21wbGFpbnMgd2hlbiBGVF9VSW50CglpcyBjb21wYXJlZCB0byBGVF9VU2hvcnQgKGFwcGFyZW50bHksIGl0IHByb21vdGVzIGBVU2hvcnQnIHRvIGBJbnQnCglpbiB0aGVzZSBjYXNlcykuCgoyMDAwLTExLTMwICBUb20gS2Fjdmluc2t5ICA8dGprQGFtcy5vcmc+CgoJKiB0Mm9ianMuYyAoVDJfSW5pdF9GYWNlKTogQWRkZWQgY2FsY3VsYXRpb24gb2YgYGZhY2UtPmhlaWdodCcgZm9yCglwdXJlIENGRiBmb250cy4KCgkqIHQxb2Jqcy5jIChUMV9Jbml0X0ZhY2UpOiBGaXhlZCBjb21wdXRhdGlvbiBvZiBgZmFjZS0+aGVpZ2h0Jy4KCjIwMDAtMTEtMjkgIERhdmlkIFR1cm5lciAgPGRhdmlkLnR1cm5lckBmcmVldHlwZS5vcmc+CgoJKiBzcmMvYmFzZS9mdGJib3guYyAoQkJveF9Db25pY19DaGVjayk6IEZpeGVkIGEgcmVhbGx5IHN0dXBpZAoJYnVnIGluIHRoZSBmb3JtdWxhIHVzZWQgdG8gY29tcHV0ZSB0aGUgY29uaWMgQul6aWVyIGV4dHJlbWEKCW9mIG5vbi1tb25vdG9ub3VzIGFyY3MuCgoyMDAwLTExLTI5ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBzcmMvYmFzZS9mdGNhbGMuYyAoRlRfU3FydEZpeGVkKSwgc3JjL2Jhc2UvZnRvYmpzLmMKCShGVF9TZXRfUmVuZGVyZXIpOiBVc2UgRlRfRVhQT1JUX0RFRi4KCSogc3JjL2NhY2hlL2Z0Y2ltYWdlLmMgKEZUQ19JbWFnZV9DYWNoZV9Mb29rdXApLAoJc3JjL2NhY2hlL2Z0Y21hbmFnLmMgKEZUQ19NYW5hZ2VyX0RvbmUsIEZUQ19NYW5hZ2VyX1Jlc2V0LAoJRlRDX01hbmFnZXJfTG9va3VwX0ZhY2UsIEZUQ19NYW5hZ2VyX0xvb2t1cF9TaXplLAoJRlRDX01hbmFnZXJfUmVnaXN0ZXJfQ2FjaGUpLCBzcmMvY2FjaGUvZnRjc2JpdHMuYwoJKEZUQ19TQml0X0NhY2hlX0xvb2t1cCk6IERpdHRvLgoKCSogc3JjL2luY2x1ZGUvZnJlZXR5cGUvY2FjaGUvZnRjZ2x5cGguaCAoRlRDX0dseXBoTm9kZV9Jbml0KSwKCXNyYy9pbmNsdWRlL2ZyZWV0eXBlL2Z0bWFjLmggKEZUX05ld19GYWNlX0Zyb21fRk9ORCk6IFVzZSBGVF9FWFBPUlQuCgoyMDAwLTExLTI5ICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBzcmMvc2ZudC9zZmRyaXZlci5jOiBJbmNsdWRlIHR0c2JpdC5oIGFuZCB0dHBvc3QuaCBvbmx5Cgljb25kaXRpb25hbGx5LgoKCSogc3JjL3RydWV0eXBlL3R0ZHJpdmVyLmMgKFNldF9DaGFyX1NpemVzLCBTZXRfUGl4ZWxfU2l6ZXMpOiBTZXQKCWBzaXplLT5zdHJpa2VfaW5kZXgnIG9ubHkgY29uZGl0aW9uYWxseS4KCgkqIHNyYy90eXBlMS90MWRyaXZlci5jLCBzcmMvdHlwZTEvdDFvYmpzLmM6IEluY2x1ZGUgdDFhZm0uaCBvbmx5Cgljb25kaXRpb25hbGx5LgoKCSogc3JjL3dpbmZvbnRzL3dpbmZudC5oOiBNb3ZlIGFsbCB0eXBlIGRlZmluaXRpb25zIHRvLi4uCgkqIHNyYy9pbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL2ZudHR5cGVzLmg6IE5ldyBmaWxlLgoJKiBzcmMvd2luZm9udHMvd2luZm50LmM6IFVzZSBpdC4KCjIwMDAtMTEtMjkgID8/PyA/Pz8gIDxkYXJpbkBlYXplbC5jb20+CgoJKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL2Z0ZGVidWcuaDogUmVwbGFjZWQgRlRfQ0FUIGFuZCBGVF9YQ0FUCgl3aXRoIGEgZGlyZWN0IHNvbHV0aW9uICh3aGljaCBhbHNvIHNhdGlmaWVzIHBpY2t5IGNvbXBpbGVycykuCgoyMDAwLTExLTI4ICBZQU1BTk8tVUNISSBIaWRldG9zaGkgIDxtZXJAZGluLm9yLmpwPgoKCSogc3JjL3RydWV0eXBlL3R0b2Jqcy5jIChUVF9Jbml0X1NpemUpOiBGaXggI2lmZGVmJ3MgdG8gd29yayB3aXRoCglkaXNhYmxlZCBpbnRlcnByZXRlciBhbHNvLgoKCSogc3JjL2Jhc2UvZnRuYW1lcy5jIChGVF9HZXRfU2ZudF9OYW1lX0NvdW50KTogRml4IGluY29ycmVjdAoJcGFyZW50aGVzZXMuCgoyMDAwLTExLTI2ICBUb20gS2Fjdmluc2t5ICA8dGprQGFtcy5vcmc+CgoJKiBzcmMvY2ZmL3QyZ2xvYWQuYyAoVDJfUGFyc2VfQ2hhclN0cmluZ3MpOiBBZGRlZCBsb2dpYyB0byBnbHlwaAoJd2lkdGggc2V0dGluZyBjb2RlIHRvIHRha2UgaW50byBhY2NvdW50IGV2ZW4vb2RkIGFyZ3VtZW50IGNvdW50cwoJYW5kIGdseXBoIHdpZHRoIG9wZXJhbmQgYmVmb3JlIGVuZGNoYXIvaG1vdmV0by92bW92ZXRvLgoKMjAwMC0xMS0yNiAgV2VybmVyIExlbWJlcmcgIDx3bEBnbnUub3JnPgoKCSogYnVpbGRzL2Fuc2kvYW5zaS5tazogRml4IGluY2x1c2lvbiBvcmRlciBvZiBmaWxlcy4KCjIwMDAtMTEtMjYgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCgkqIHNyYy90eXBlMS90MW9ianMuYyAoVDFfSW5pdF9GYWNlKTogQ29tcHV0ZSBzdHlsZSBmbGFncy4KCjIwMDAtMTEtMjYgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIGJ1aWxkcy9jb21waWxlci9hbnNpLWNjLm1rIChDTEVBTl9MSUJSQVJZKTogRml4IHJ1bGUgYW5kCgljb25kaXRpb25hbC4KCjIwMDAtMTEtMjMgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIHNyYy90eXBlMS90MWxvYWQuYyAocGFyc2Vfc3VicnMsIHBhcnNlX2NoYXJzdHJpbmdzKTogVXNlIGRlY3J5cHQKCWZ1bmN0aW9uIGZyb20gUFNBdXggbW9kdWxlLgoKCSogc3JjL3R5cGUxL3QxcGFyc2UuYyAoVDFfRG9uZV9QYXJzZSk6IFJlbmFtZWQgdG8uLi4KCShUMV9GaW5hbGl6ZV9QYXJzZXIpOiBOZXcgZnVuY3Rpb24gKHRvIGF2b2lkIG5hbWUgY2xhc2ggd2l0aCBhCglmdW5jdGlvbiBpbiB0aGUgUFNBdXggbW9kdWxlKS4KCShUMV9EZWNyeXB0KTogUmVtb3ZlZCBzaW5jZSBpdCBpcyBkdXBsaWNhdGVkIGluIHRoZSBQU0F1eCBtb2R1bGUuCgkoVDFfR2V0X1ByaXZhdGVfRGljdCk6IEFkZGVkIGBwc2F1eCcgYXMgbmV3IHBhcmFtZXRlcjsgdXNlIGRlY3J5cHQKCWZ1bmN0aW9uIGZyb20gUFNBdXggbW9kdWxlLgoKCSogc3JjL3R5cGUxL3QxcGFyc2UuaDogQWRhcHRlZC4KCjIwMDAtMTEtMjIgIFRvbSBLYWN2aW5za3kgIDx0amtAYW1zLm9yZz4KCgkqIHNyYy9jZmYvdDJvYmpzLmMgKFQyX0luaXRfRmFjZSk6IEZvciBwdXJlIENGRiBmb250cywgc2V0Cglgcm9vdC0+bnVtX2ZhY2VzJyB0byBgY2ZmLT5udW1fZmFjZXMnIGFuZCBzZXQgYHVuaXRzX3Blcl9FTScKCXRvIDEwMDAuCgoJKiBzcmMvY2ZmL3QycGFyc2UuYyAocGFyc2VfdDJfcmVhbCk6IEZpeGVkIHJlYWwgbnVtYmVyIHBhcnNpbmcKCWxvb3AuCgoJKiBzcmMvY2ZmL3QybG9hZC5jIChUMl9HZXRfU3RyaW5nKTogQ2FsbGVkIFQyX0dldF9OYW1lIHdpdGggYQoJc2lkIHRoYXQgd2FzIG9mZiBieSBvbmUuCgoyMDAwLTExLTE2ICBEYXZpZCBUdXJuZXIgIDxkYXZpZEBmcmVldHlwZS5vcmc+CgoJKiBzcmMvYXV0b2hpbnQvYWh0eXBlcy5oIChBSF9IaW50ZXIpOiBBZGRlZCBuZXcgZmllbGRzIHRvIGNvbnRyb2wKCWF1dG8taGludGluZyBvZiBzeW50aGV0aWMgVHlwZSAxIGZvbnRzLgoKCSogc3JjL2F1dG9oaW50L2FoaGludC5jIChhaF9oaW50ZXJfbG9hZCwgYWhfaGludGVyX2xvYWRfZ2x5cGgpOgoJQWRkZWQgYXV0by1oaW50aW5nIHN1cHBvcnQgb2Ygc3ludGhldGljIFR5cGUgMSBmb250cy4KCjIwMDAtMTEtMTIgIFRvbSBLYWN2aW5za3kgIDx0amtAYW1zLm9yZz4KCgkqIHNyYy9zZm50L3R0bG9hZC5jIChUVF9Mb29rVXBfVGFibGUsIFRUX0xvYWRfR2VuZXJpY19UYWJsZSk6IENoYW5nZQoJdHJhY2luZyBvdXRwdXQuCgoJKiBzcmMvc2ZudC9zZm9ianMuYyAoU0ZOVF9Mb2FkX0ZhY2UpOiBTZXQgYm9vbGVhbiB2YXJpYWJsZQoJYGhhcy1vdXRsaW5lJyB0byB0cnVlIG9ubHkgaWYgdGhlIGZvbnQgaGFzIGEgYGdseWYnIG9yIGBDRkYgJyB0YWJsZS4KCjIwMDAtMTEtMTEgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIGJ1aWxkcy93aW4zMi92aXN1YWxjL2ZyZWV0eXBlLmRzcDogRml4IHJhc3RlcjEtPnJhc3RlciBhbmQKCXR5cGUxei0+dHlwZTEuCgoyMDAwLTExLTExICBUb20gS2Fjdmluc2t5ICA8dGprQGFtcy5vcmc+CgoJKiBidWlsZHMvdW5peC9mcmVldHlwZS1jb25maWcuaW4sIGJ1aWxkcy9jeWd3aW4vZnJlZXR5cGUtY29uZmlnLmluOgoJQWRkZWQgYSAtLWxpYnRvb2wgb3B0aW9uLiAgV2hlbiBmcmVldHlwZS1jb25maWcgLS1saWJ0b29sIGlzCglpbnZva2VkLCB0aGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgbGlidG9vbCBjb252ZW5pZW5jZSBsaWJyYXJ5CglpcyByZXR1cm5lZC4KCjIwMDAtMTEtMTEgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIGJ1aWxkcy9jeWd3aW4vY3lnd2luLWRlZi5pbjogU2FtZSBmaXggYXMgcHJldmlvdXMuCgoyMDAwLTExLTEwICBUb20gS2Fjdmluc2t5ICA8dGprQGFtcy5vcmc+CgoJKiBidWlsZHMvdW5peC91bml4LWRlZi5pbjogQWRkCgoJICAgIElOU1RBTExfUFJPR1JBTSA6PSBASU5TVEFMTF9QUk9HUkFNQAoJICAgIElOU1RBTExfU0NSSVBUICA6PSBASU5TVEFMTF9TQ1JJUFRACgoJc28gdGhhdCBpbnN0YWxsYXRpb24gb2YgZnJlZXR5cGUtY29uZmlnIGRvZXMgbm90IGZhaWwuCgoyMDAwLTExLTEwICBXZXJuZXIgTGVtYmVyZyAgPHdsQGdudS5vcmc+CgoJKiBidWlsZHMvY3lnd2luL2ZyZWV0eXBlLWNvbmZpZy5pbiwgYnVpbGRzL3VuaXgvZnJlZXR5cGUtY29uZmlnLmluOgoJTW92ZSB0ZXN0IGRvd24gZm9yIGVtcHR5IC0tZXhlYy1wcmVmaXguCglGaXggLS12ZXJzaW9uLgoKCSogYnVpbGRzL2N5Z3dpbi9pbnN0YWxsLm1rLCBidWlsZHMvdW5peC9pbnN0YWxsLm1rOiBVc2UKCSQoSU5TVEFMTF9TQ1JJUFQpIGZvciBpbnN0YWxsYXRpb24gb2YgZnJlZXR5cGUtY29uZmlnLgoKCSogYnVpbGRzL2N5Z3dpbi9pbnN0YWxsLm1rOiBGaXggY2xlYW4gdGFyZ2V0IG5hbWVzLgoKMjAwMC0xMS0wOSAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgoKCSogVmVyc2lvbiAyLjAgcmVsZWFzZWQuCgk9PT09PT09PT09PT09PT09PT09PT09PQoKCkxvY2FsIFZhcmlhYmxlczoKdmVyc2lvbi1jb250cm9sOiBuZXZlcgpjb2Rpbmc6IGxhdGluLTEKRW5kOgo=