PT09IHJlbGVhc2UgMS4xNC4yID09PQoKMjAxOC0wNy0yMCAwMDo0Njo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogbWVzb24uYnVpbGQ6CgkgIFJlbGVhc2UgMS4xNC4yCgoyMDE4LTA3LTIwIDAwOjQ2OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JldHJhY2Vycy54bWw6CgkgIFVwZGF0ZSBkb2NzCgoyMDE4LTA3LTE4IDIxOjEzOjU3IC0wNDAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBpZ2FsaWEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IERvIG5vdCBjaGVjayBpZiBOVUxMIGlzIGFuIGVtdHB5IGNhcHMKCSAgZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzIGNhbiByZXR1cm4gTlVMTCBpbiB2YXJpb3VzIGNvbmRpdGlvbnMKCSAgdGh1cyB3ZSBzaG91bGQgbm90IHRyZWF0IGl0cyByZXN1bHQgYXMgdmFsaWQgY2Fwcy4KCSAgSW4gYWxsIG90aGVyIHBsYWNlcyBOVUxMIGlzIHByb3Blcmx5IGhhbmRsZWQuCgoyMDE4LTA2LTE4IDE2OjI5OjE4ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuYzoKCSAgY29uY2F0OiBQcm9wZXJseSBmb3J3YXJkIHRoZSBTRUdNRU5UIHNlcW51bQoKMjAxOC0wNS0yMSAwOToxNDozNyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdHByb3RlY3Rpb24uYzoKCSAgZ3N0OiBhZGQgc29tZSBHSVIgYXJyYXkgYW5ub3RhdGlvbnMKCjIwMTgtMDUtMjAgMTM6NTM6MzEgKzAyMDAgIENocmlzdG9waCBSZWl0ZXIgPHJlaXRlci5jaHJpc3RvcGhAZ21haWwuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9jb250cm9sbGVyX21rZW51bS5weToKCSAgbWVzb246IEZpeCBkZXRlY3Rpb24gb2YgZ2xpYi1ta2VudW1zIHVuZGVyIE1TWVMyCgkgIFVuZGVyIE1TWVMyIGdsaWItbWtlbnVtcyBpcyBhbiBleGVjdXRhYmxlIGFuZCBoYXMgYSAuZXhlIGV4dGVuc2lvbiBhbmQKCSAgdGhlIHBhdGggZG9lcyBub3QgZW5kIHdpdGggImdsaWItbWtlbnVtcyIuCgkgIE1ha2UgdGhlIHNjcmlwdCBjb21wYXJlIHRoZSBwYXRoIHdpdGhvdXQgdGhlIGZpbGUgZXh0ZW5zaW9uIGluc3RlYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTYyNzMKCj09PSByZWxlYXNlIDEuMTQuMSA9PT0KCjIwMTgtMDUtMTcgMTM6MTc6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIG1lc29uLmJ1aWxkOgoJICBSZWxlYXNlIDEuMTQuMQoKMjAxOC0wNS0xNyAxMzoxNzoyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZXRyYWNlcnMueG1sOgoJICBVcGRhdGUgZG9jcwoKMjAxOC0wNS0xNyAxMjozNzoyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2hyLnBvOgoJICBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE4LTA1LTEwIDAwOjA1OjUxICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEZpeCByYWNlIGNvbmRpdGlvbiBjYXVzaW5nIHRoZSBzYW1lIHByb2JlIHRvIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcwoJICBQcm9iZXMgd2VyZSByZW1lbWJlcmluZyBhIGNvb2tpZSB0aGF0IHdhcyB1c2VkIHRvIGNoZWNrIGlmIHRoZSBwcm9iZSB3YXMKCSAgYWxyZWFkeSBjYWxsZWQgdGhpcyB0aW1lIGJlZm9yZSB0aGUgcHJvYmVzIGxpc3QgY2hhbmdlZC4gSG93ZXZlciB0aGUKCSAgc2FtZSBwcm9iZXMgY291bGQndmUgYmVlbiBjYWxsZWQgYnkgYW5vdGhlciB0aHJlYWQgaW4gYmV0d2VlbiBhbmQgdGh1cwoJICBnb3R0ZW4gYSBuZXcgY29va2llLCBhbmQgd291bGQgdGhlbiBiZSBjYWxsZWQgYSBzZWNvbmQgdGltZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5NTk4NwoKMjAxOC0wNS0wNCAwOToyOToyMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wdHAtaGVscGVyLmM6CgkgIGdzdDogVXNlIG1lbWNweSgpIGluc3RlYWQgb2Ygc3RybmNweSgpIHdoZXJlIGFwcHJvcHJpYXRlCgkgIHN0cm5jcHkoKSBpcyBhc3N1bWVkIHRvIGJlIGZvciBzdHJpbmdzIHNvIHRoZSBjb21waWxlciBhc3N1bWVzIHRoYXQKCSAgaXQgd2lsbCBuZWVkIGFuIGV4dHJhIGJ5dGUgZm9yIHRoZSBzdHJpbmctdGVybWluYW5pbmcgTlVMTC4KCSAgRm9yIGNhc2VzIHdoZXJlIHdlIGtub3cgaXQncyBhY3R1YWxseSAiYmluYXJ5IiBkYXRhLCBqdXN0IGNvcHkgaXQKCSAgd2l0aCBtZW1jcHkuCgkgIEZpeGVzIGNvbXBpbGVyIHdhcm5pbmdzIHdpdGggZ2NjIDguCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTU3NTYKCjIwMTgtMDUtMDUgMTY6MTY6NDUgKzAyMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBmaXggYWJvcnQgZHVlIHRvIHVuZGVyZmxvdyB3aGVuIGNyZWF0aW5nIDAtc2l6ZWQgbGlzdAoJICBnc3RfYnVmZmVyX2xpc3RfbmV3X3NpemVkKDApIHdpbGwgY2F1c2UgYW4gdW5kZXJmbG93IGluIGEgY2FsY3VsYXRpb24KCSAgd2hpY2ggdGhlbiBtYWtlcyBpdCB0cnkgdG8gYWxsb2NhdGUgaHVnZSBhbW91bnRzIG9mIG1lbW9yeSwgd2hpY2gKCSAgbWF5IGxlYWQgdG8gYWJvcnRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk1NzU4CgoyMDE4LTA1LTA1IDExOjMyOjEyICswMjAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYWdncmVnYXRvcjogZml4IGV4cG9ydHMgYW5kIHNpbmNlIG1hcmtlciBmb3IgbmV3IEFQSQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk1MzMyCgoyMDE4LTA0LTIzIDExOjM0OjE5IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBBZGQgQVBJIHRvIGNoZWNrIGlmIGEgcGFkIGhhcyBhIG5ldyBidWZmZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5NTMzMgoKMjAxOC0wNC0yMCAxMjozMDoyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogZml4IGludmFsaWQga2V5d29yZCBhcmd1bWVudCB3YXJuaW5ncwoJICBjYy5jb21waWxlcygpIGRvZXNuJ3QgaGF2ZSBhICdwcmVmaXgnIGFyZ3VtZW50ICh5ZXQpIGFuZCB0aGUKCSAgcHJlZml4IGhhcyBhbHJlYWR5IGJlZW4gcHJlcGVuZGVkIHRvIHRoZSBzb3VyY2UgY29kZSBzbmlwcGV0cy4KCSAgaHR0cHM6Ly9naXRodWIuY29tL21lc29uYnVpbGQvbWVzb24vaXNzdWVzLzIzNjQKCjIwMTgtMDQtMTcgMTE6MjQ6MzEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWUsIGlucHV0c2VsZWN0b3I6IHNob3cgcGFkIHByb3BlcnRpZXMgaW4gZ3N0LWluc3BlY3QtMS4wCgoyMDE4LTA0LTEzIDIwOjE1OjQ2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSAgYmFzZTogZml4IHNvbWUgR0lSIGFubm90YXRpb25zCgkgIE1vc3RseSByZWxhdGVkIHRvIG91dCBwYXJhbWV0ZXJzIGFuZCB0aGVpciB0cmFuc2ZlcgoKMjAxOC0wMy0yOSAxODo1OTo0MyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0OiBhZGQgc29tZSBHSVIgYXJyYXkgYW5ub3RhdGlvbnMKCjIwMTgtMDQtMTEgMTk6NTY6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBnc3RkZWJ1ZzogZml4IG9jY2FzaW9uYWwgZGVhZGxvY2tzIG9uIHdpbmRvd3Mgd2hlbiBvdXRwdXR0aW5nIGRlYnVnIGxvZ2dpbmcKCSAgV2hlbiBvdXRwdXR0aW5nIGRlYnVnIGxvZ3Mgb24gV2luZG93cywgc29tZSBzZWN0aW9ucyBhcmUgcHJvdGVjdGVkCgkgIHdpdGggYSBub24tcmVjdXJzaXZlIGxvY2suIFR1cm5zIG91dCB0aG91Z2ggdGhhdCBnc3RfZGVidWdfbWVzc2FnZV9nZXQoKQoJICBtaWdodCBpbmRpcmVjdGx5LCB2aWEgb3VyIHByaW50ZiBmb3JtYXQgZXh0ZW5zaW9ucywgY2FsbCBjb2RlIHdoaWNoCgkgIGluIHR1cm4gd291bGQgdHJ5IHRvIGxvZyBzb21ldGhpbmcgd2hlbiBpdCBjYW4ndCBoYW5kbGUgc29tZXRoaW5nLiBJZgoJICB0aGF0IGhhcHBlbnMgd2UgZW5kIHVwIGluIGdzdF9kZWJ1Z19sb2dfZGVmYXVsdCgpIGFnYWluIHJlY3Vyc2l2ZWx5IGFuZAoJICB0cnkgdG8gYWdhaW4gdGFrZSB0aGUgbG9jayB0aGF0J3MgYWxyZWFkeSB0YWtlbiwgdGh1cyBkZWFkbG9ja2luZy4KCSAgRm9ybWF0IHRoZSBkZWJ1ZyBtZXNzYWdlIHN0cmluZyBvdXRzaWRlIG9mIHRoZSBjcml0aWNhbCBzZWN0aW9uCgkgIGluc3RlYWQgdG8gYXZvaWQgdGhpcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NDM4MgoKMjAxOC0wNC0wOSAxNDoxOToxOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1cmkuaDoKCSAgZ3N0dXJpOiBpbmNsdWRlIGdzdGNvbmZpZy5oIGVhcmxpZXIgZm9yIEdTVF9BUEkgZGVmaW5lCgoyMDE4LTAzLTI3IDEwOjI1OjQ2ICswMjAwICBKYW4gQWxleGFuZGVyIFN0ZWZmZW5zIChoZWZ0aWcpIDxqYW4uc3RlZmZlbnNAZ21haWwuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSAgZ3N0aW5mbzogZml4IGRlYnVnIGxldmVscyBiZWluZyBhcHBsaWVkIGluIHRoZSB3cm9uZyBvcmRlcgoJICBSZW1vdmUgdW5uZWVkZWQgcmVhcHBsaWNhdGlvbiBvZiBwYXR0ZXJucy4gQmVzaWRlcyBiZWluZwoJICBzdXBlcmZsdW91cyAoZ3N0X2RlYnVnX3Jlc2V0X3RocmVzaG9sZCBhbHJlYWR5IGFwcGxpZXMKCSAgcGF0dGVybnMpIGl0IHdhcyBhbHNvIHdyb25nIGFuZCBkaWRuJ3Qgc3RvcCBjaGVja2luZyBwYXR0ZXJucwoJICBhZnRlciB0aGUgZmlyc3QgbWF0Y2ggKGJyb2tlbiBpbiA2N2U5ZDEzOSkuCgkgIEFsc28gZml4IHVwIHVuaXQgdGVzdCB3aGljaCBjaGVja2VkIGZvciB0aGUgd3Jvbmcgb3JkZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTQ3MTcKCjIwMTgtMDMtMjkgMTI6MzY6MTEgKzExMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBmaXggZGVlcC1lbGVtZW50LWFkZGVkIHNpZ25hbCBkZWJ1ZyBsb2cgbWVzc2FnZQoJICBBZGRpbmcgdGhlIGJpbiB0byB0aGUgY2hpbGQgZWxlbWVudCBkb2Vzbid0IHJlYWxseSBtYWtlIHNlbnNlLgoKMjAxOC0wMy0yMCAxNjoxMTowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIGdzdDogRml4IGNvbXBpbGF0aW9uIHdpdGggbGF0ZXN0IEdMaWIKCSAgZ19vYmplY3RfcmVmKCkgZm9yd2FyZHMgdGhlIHR5cGUgb2YgaXRzIGFyZ3VtZW50IG5vd2FkYXlzLgoJICAuL2dyYW1tYXIueTo0MDk6MTQ6IGVycm9yOiBhc3NpZ25tZW50IGZyb20gaW5jb21wYXRpYmxlIHBvaW50ZXIgdHlwZSBbLVdlcnJvcj1pbmNvbXBhdGlibGUtcG9pbnRlci10eXBlc10KCSAgZ3N0Y2hpbGRwcm94eS5jOjIxMjo3OiBlcnJvcjogYXNzaWdubWVudCBmcm9tIGluY29tcGF0aWJsZSBwb2ludGVyIHR5cGUgWy1XZXJyb3I9aW5jb21wYXRpYmxlLXBvaW50ZXItdHlwZXNdCgoyMDE4LTAzLTIxIDEwOjIwOjE0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L25ldC5oOgoJICBuZXQ6IEluY2x1ZGUgZ3N0bmV0Y29udHJvbG1lc3NhZ2VtZXRhLmggaW4gbmV0LmgKCjIwMTgtMDMtMjEgMTA6MTM6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5oOgoJICBwYXJhbXNwZWNzOiBTZXQgZy1pIGFubm90YXRpb24gdmFsdWVzIGZvciBHU1RfUEFSQU1fKiBjb25zdGFudHMKCjIwMTgtMDMtMjEgMTA6MTE6MzAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgZWxlbWVudGZhY3Rvcnk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9ERUNPREFCTEUgaGFkIERFQ1JZUFRPUiBhZGRlZCwgdXBkYXRlIGctaSBhbm5vdGF0aW9uIHZhbHVlCgo9PT0gcmVsZWFzZSAxLjE0LjAgPT09CgoyMDE4LTAzLTE5IDIwOjA5OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiBtZXNvbi5idWlsZDoKCSAgUmVsZWFzZSAxLjE0LjAKCjIwMTgtMDMtMTkgMjA6MDk6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmV0cmFjZXJzLnhtbDoKCSAgVXBkYXRlIGRvY3MKCj09PSByZWxlYXNlIDEuMTMuOTEgPT09CgoyMDE4LTAzLTEzIDE5OjA4OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiBtZXNvbi5idWlsZDoKCSAgUmVsZWFzZSAxLjEzLjkxCgoyMDE4LTAzLTEzIDE5OjA4OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JldHJhY2Vycy54bWw6CgkgIFVwZGF0ZSBkb2NzCgoyMDE4LTAzLTEzIDExOjU0OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvbWVzb24uYnVpbGQ6CgkqIGRvY3MvbGlicy9tZXNvbi5idWlsZDoKCSAgbWVzb246IGRvY3M6IHVwZGF0ZSBhcGkgZGVjb3JhdG9ycyB0byBpZ25vcmUKCjIwMTgtMDMtMTIgMjM6MTI6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIGRvY3M6IGZpeHVwIGZvciBuZXcgbGlicyBBUEkgZXhwb3J0IGRlY29yYXRvcnMKCjIwMTgtMDMtMTIgMjM6MDM6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXQuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y29udHJvbG1lc3NhZ2VtZXRhLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0Lmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmg6CgkqIGxpYnMvZ3N0L25ldC9tZXNvbi5idWlsZDoKCSogbGlicy9nc3QvbmV0L25ldC1wcmVsdWRlLmg6CgkqIGxpYnMvZ3N0L25ldC9uZXQuaDoKCSAgbmV0OiBHU1RfRVhQT1JUIC0+IEdTVF9ORVRfQVBJCgkgIFdlIG5lZWQgZGlmZmVyZW50IGV4cG9ydCBkZWNvcmF0b3JzIGZvciB0aGUgZGlmZmVyZW50IGxpYnMuCgkgIEZvciBub3cgbm8gYWN0dWFsIGNoYW5nZSB0aG91Z2gsIGp1c3QgcmVuYW1lIGJlZm9yZSB0aGUgcmVsZWFzZSwKCSAgYW5kIGFkZCBwcmVsdWRlIGhlYWRlcnMgdG8gZGVmaW5lIHRoZSBuZXcgZGVjb3JhdG9yIHRvIEdTVF9FWFBPUlQuCgoyMDE4LTAzLTEyIDIzOjAzOjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogY29tbW9uOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2NvbnRyb2xsZXItcHJlbHVkZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2NvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9jb250cm9sbGVyX21rZW51bS5weToKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHByb3h5Y29udHJvbGJpbmRpbmcuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvbWVzb24uYnVpbGQ6CgkgIGNvbnRyb2xsZXI6IEdTVF9FWFBPUlQgLT4gR1NUX0NPTlRST0xMRVJfQVBJCgkgIFdlIG5lZWQgZGlmZmVyZW50IGV4cG9ydCBkZWNvcmF0b3JzIGZvciB0aGUgZGlmZmVyZW50IGxpYnMuCgkgIEZvciBub3cgbm8gYWN0dWFsIGNoYW5nZSB0aG91Z2gsIGp1c3QgcmVuYW1lIGJlZm9yZSB0aGUgcmVsZWFzZSwKCSAgYW5kIGFkZCBwcmVsdWRlIGhlYWRlcnMgdG8gZGVmaW5lIHRoZSBuZXcgZGVjb3JhdG9yIHRvIEdTVF9FWFBPUlQuCgoyMDE4LTAzLTEyIDIzOjAzOjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2NoZWNrLXByZWx1ZGUuaDoKCSogbGlicy9nc3QvY2hlY2svY2hlY2suaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL21lc29uLmJ1aWxkOgoJICBjaGVjazogR1NUX0VYUE9SVCAtPiBHU1RfQ0hFQ0tfQVBJCgkgIFdlIG5lZWQgZGlmZmVyZW50IGV4cG9ydCBkZWNvcmF0b3JzIGZvciB0aGUgZGlmZmVyZW50IGxpYnMuCgkgIEZvciBub3cgbm8gYWN0dWFsIGNoYW5nZSB0aG91Z2gsIGp1c3QgcmVuYW1lIGJlZm9yZSB0aGUgcmVsZWFzZSwKCSAgYW5kIGFkZCBwcmVsdWRlIGhlYWRlcnMgdG8gZGVmaW5lIHRoZSBuZXcgZGVjb3JhdG9yIHRvIEdTVF9FWFBPUlQuCgoyMDE4LTAzLTEyIDIzOjAzOjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9iYXNlLXByZWx1ZGUuaDoKCSogbGlicy9nc3QvYmFzZS9iYXNlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJKiBsaWJzL2dzdC9iYXNlL21lc29uLmJ1aWxkOgoJICBiYXNlOiBHU1RfRVhQT1JUIC0+IEdTVF9CQVNFX0FQSQoJICBXZSBuZWVkIGRpZmZlcmVudCBleHBvcnQgZGVjb3JhdG9ycyBmb3IgdGhlIGRpZmZlcmVudCBsaWJzLgoJICBGb3Igbm93IG5vIGFjdHVhbCBjaGFuZ2UgdGhvdWdoLCBqdXN0IHJlbmFtZSBiZWZvcmUgdGhlIHJlbGVhc2UsCgkgIGFuZCBhZGQgcHJlbHVkZSBoZWFkZXJzIHRvIGRlZmluZSB0aGUgbmV3IGRlY29yYXRvciB0byBHU1RfRVhQT1JULgoKMjAxOC0wMy0xMiAyMzowMzoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RhbGxvY2F0b3IuaDoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmg6CgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuaDoKCSogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmg6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJKiBnc3QvZ3N0ZGV2aWNlLmg6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmg6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5oOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXJmYWN0b3J5Lmg6CgkqIGdzdC9nc3RkeW5hbWljdHlwZWZhY3RvcnkuaDoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RlbnVtdHlwZXMuaC50ZW1wbGF0ZToKCSogZ3N0L2dzdGVycm9yLmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmg6CgkqIGdzdC9nc3RwYXJzZS5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cG9sbC5oOgoJKiBnc3QvZ3N0cHJlc2V0Lmg6CgkqIGdzdC9nc3Rwcm9taXNlLmg6CgkqIGdzdC9nc3Rwcm90ZWN0aW9uLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHNhbXBsZS5oOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiBnc3QvZ3N0c3RyZWFtY29sbGVjdGlvbi5oOgoJKiBnc3QvZ3N0c3RyZWFtcy5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkqIGdzdC9nc3R0YXNrLmg6CgkqIGdzdC9nc3R0YXNrcG9vbC5oOgoJKiBnc3QvZ3N0dG9jLmg6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuaDoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBnc3QvZ3N0dHJhY2VyZmFjdG9yeS5oOgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmg6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5Lmg6CgkqIGdzdC9nc3R1cmkuaDoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJICBnc3Q6IEdTVF9FWFBPUlQgLT4gR1NUX0FQSQoJICBXZSBuZWVkIGRpZmZlcmVudCBleHBvcnQgZGVjb3JhdG9ycyBmb3IgdGhlIGRpZmZlcmVudCBsaWJzLgoJICBGb3Igbm93IG5vIGFjdHVhbCBjaGFuZ2UgdGhvdWdoLCBqdXN0IHJlbmFtZSBiZWZvcmUgdGhlIHJlbGVhc2UsCgkgIGFuZCBhZGQgcHJlbHVkZSBoZWFkZXJzIHRvIGRlZmluZSB0aGUgbmV3IGRlY29yYXRvciB0byBHU1RfRVhQT1JULgoKMjAxOC0wMy0wOCAxMzozMDozMCArMTEwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHByb21pc2UuYzoKCSAgcHJvbWlzZTogYmUgbW9yZSBleHBsaWNpdCBpbiBkb2NzIGFib3V0IHdoby93aGVuIHRvIHVzZSByZXBseS9pbnRlcnJ1cHQvZXhwaXJlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTQxNTMKCjIwMTgtMDMtMDcgMTE6MTk6MjUgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBCYWxhbmNlIHVubG9jay91bmxvY2tfc3RvcCBpbiBfc3JjX3N0b3AoKQoJICBPdGhlcndpc2UgaXQncyBwb3NzaWJsZSB0aGF0IHdlIHdvbid0IGJlIGFibGUgdG8gc3RhcnQgYWdhaW4KCSAgZGVwZW5kaW5nIHRoZSBpbXBsZW1lbnRhdGlvbi4gV2UgZG8gc3RhcnQvc3RvcCBpbiBub3JtYWwgdXNlIGNhc2VzCgkgIHdoZW5ldmVyIEdTVF9RVUVSWV9TQ0hFRFVMSU5HIGhhcHBlbnMgYmVmb3JlIHdlIGFyZSBzdGFydGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk0MTQ5CgoyMDE4LTAzLTA3IDExOjE2OjAwIC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogTm8gbmVlZCB0byBzdG9wIGZsdXNoaW5nIGluIHN0YXJ0X2NvbXBsZXRlCgkgIFRoZSBmbHVzaGluZyBzdGF0ZSBpcyBoYW5kbGVkIGEgYml0IGRpZmZlcmVudGx5LCB0aGVyZSBpcyBubyBuZWVkCgkgIHRvIHN0b3AgZmx1c2hpbmcgaW4gc3RhcnRfY29tcGxldGUuIFRoaXMgd291bGQgb3RoZXIgcmVzdWx0IGluCgkgIHVubG9ja19zdG9wIGJlaW5nIGNhbGxlZCB3aXRob3V0IHVubG9ja19zdGFydC4KCSAgVW5saWtlIHdoYXQgdGhlIG9sZCBjb21tZW50IHNheXMsIHRoZXJlIGlzIG5vIG5lZWQgdG8gdGFrZSB0aGUgbGl2ZQoJICBsb2NrIGhlcmUsIHdlIGFyZSBzdGlsbCBzaW5nbGUgdGhyZWFkZWQgYXQgdGhpcyBwb2ludCAoYXBwIHRocmVhZAoJICBvciB0aGUgc3RhdGUgY2hhbmdlIHRocmVhZCkuIEFsc28sIHdlIHdpbGwgd2FpdCBmb3IgcGxheWluZyBzdGF0ZQoJICBpbiBjcmVhdGUvZ2V0cmFuZ2UsIG5vIG5lZWQgdG8gZG8gdGhhdCB0d2ljZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5NDE0OQoKMjAxOC0wMy0wNSAxMTo1MjoyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IENoYW5nZSBkb3QtZmlsZSBmdW5jdGlvbnMgZG9jdW1lbnRhdGlvbiB0byBwcm9wZXIgZ3RrLWRvYwoJICBUaGlzIHdheSBnb2JqZWN0LWludHJvc3BlY3Rpb24gYWxzbyBwaWNrcyBpdCB1cCBhbmQgaGFuZGxlcyBvdXIKCSAgYW5ub3RhdGlvbnMuCgkgIFNlZSBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ29iamVjdC1pbnRyb3NwZWN0aW9uL2lzc3Vlcy8xOTQKCjIwMTgtMDMtMDQgMTA6NTM6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgcXVldWVhcnJheTogSW1wbGVtZW50IHBvcF90YWlsX3N0cnVjdCgpIGZvciBjb21wbGV0ZW5lc3MKCSAgQWxsIG90aGVyIHZhcmlhbnRzIG9mIHtwZWVrLHBvcH1fe2hlYWQsdGFpbH1feyxzdHJ1Y3R9IHdlcmUgYWxyZWFkeQoJICBpbXBsZW1lbnRlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5NDAzNQoKMjAxOC0wMy0wNCAxMDoyNDo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHVyaS5jOgoJICBnc3Q6IEFkZCBzb21lIG1vcmUgKHR5cGUgZmlsZW5hbWUpIGFubm90YXRpb25zCgo9PT0gcmVsZWFzZSAxLjEzLjkwID09PQoKMjAxOC0wMy0wMyAyMTo1MTo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogbWVzb24uYnVpbGQ6CgkgIFJlbGVhc2UgMS4xMy45MAoKMjAxOC0wMy0wMyAyMTo1MTo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZXRyYWNlcnMueG1sOgoJICBVcGRhdGUgZG9jcwoKMjAxOC0wMi0xMyAyMjoyMDoxOCArMTEwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNwYXJzZWZpbGUuYzoKCSAgcGx1Z2luczogRG9uJ3QgZm9yY2UgNjQtYml0IGZpbGUvc2VlayBmdW5jdGlvbnMgdmFyaWFudHMgb24gYW5kcm9pZAoJICBNb3N0IGZ1bmN0aW9ucyBhcmUgYXV0b21hdGljYWxseSBjaG9zZW4gZnJvbSB0aGUgX0ZJTEVfT0ZGU0VUX0JJVFMKCSAgZGVmaW5lLCB0aGUgcmVtYWluaW5nIG9uZSAoZnN0YXQpIGlzIG9ubHkgYXZhaWxhYmxlIG9uIEFQSSA+PSAyMSBzbwoJICBjaGVjayBmb3IgdGhhdAoKMjAxOC0wMy0wMSAyMjoyMToxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgQWRkIG5ldyBzeW1ib2wgdG8gZG9jcyBhbmQgLmRlZiBmaWxlCgkgIEZpeGVzIG1ha2UgY2hlY2sKCjIwMTgtMDMtMDEgMTY6MTk6MDkgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5Lmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgcXVldWU6IElnbm9yZSB0aHJlc2hvbGRzIGlmIGEgcXVlcnkgaXMgcXVldWVkCgkgIFRoZSBxdWV1ZSBnZXRzIGZpbGxlZCBieSB0aGUgdGFpbCwgc28gYSBxdWVyeSB3aWxsIGFsd2F5cyBiZSB0aGUgdGFpbAoJICBvYmplY3QsIG5vdCB0aGUgaGVhZCBvYmplY3QuIEFsc28gYWRkIGEgX3BlZWtfdGFpbF9zdHJ1Y3QoKSBtZXRob2QgdG8gdGhlCgkgIEdzdFF1ZXVlQXJyYXkgdG8gZW5hYmxlIGxvb2tpbmcgYXQgdGhlIHRhaWwuCgkgIFdpdGggdW5pdCB0ZXN0IHRvIHByZXZlbnQgZnV0dXJlIHJlZ3Jlc3Npb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjI4NzUKCjIwMTgtMDMtMDEgMTg6Mzg6MDEgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXVAY2VudHJpY3VsYXIuY29tPgoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiAtV2Zvcm1hdC0qIHJlcXVpcmUgLVdmb3JtYXQKCjIwMTgtMDMtMDEgMTc6MjA6MDYgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXVAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L3ByaW50Zi9tZXNvbi5idWlsZDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbWVzb24uYnVpbGQ6CgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogZW5hYmxlIG1vcmUgd2FybmluZ3MKCSAgTW9kZWxlZCBvbiB0aGUgYXV0b3Rvb2xzIGJ1aWxkLCAtVyBmbGFncyBhcmUgb25seQoJICBhZGRlZCBpZiB0aGUgY29tcGlsZXIgc3VwcG9ydHMgdGhlbS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5Mzk1OAoKMjAxOC0wMy0wMSAwMDozMToxMSArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWdncmVnYXRvci5jOgoJICBnc3RhZ2dyZWdhdG9yOiBwYWRzIG11c3QgaW5oZXJpdCBmcm9tICNHc3RBZ2dyZWdhdG9yUGFkCgkgIERvY3VtZW50IHRoaXMsIGFuZCB0YWtlIGFkdmFudGFnZSBvZiB0aGF0IGZhY3QgdG8gdXNlCgkgIEdzdEFnZ3JlZ2F0b3Iuc3JjcGFkLnNlZ21lbnQgaW5zdGVhZCBvZiBHc3RBZ2dyZWdhdG9yLnNlZ21lbnQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5Mzk0MgoKMjAxOC0wMy0wMSAwMToxNTozNCArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWdncmVnYXRvci5jOgoJICBSZXZlcnQgImdzdGFnZ3JlZ2F0b3I6IHBhZHMgbXVzdCBpbmhlcml0IGZyb20gI0dzdEFnZ3JlZ2F0b3JQYWQiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOTc3NGIzNzc1ZDg0ODNlNTY5N2Y5MTk2YTI2YzFlNTgzMTExM2JkNi4KCSAgUHVzaGVkIGJ5IG1pc3Rha2UKCjIwMTgtMDMtMDEgMDE6MTI6MDcgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXVAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBlbnN1cmUgd2UgYnVpbGQgYSBnaG9zdCBwYWQgLi4KCSAgV2hlbiB3ZSBjb25zdHJ1Y3QgZnJvbSBhIGN1c3RvbSBHVHlwZQoKMjAxOC0wMy0wMSAwMTowOTo0OCArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IG1peGVkIGRlY2xhcmF0aW9ucwoKMjAxOC0wMy0wMSAwMDozMToxMSArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWdncmVnYXRvci5jOgoJICBnc3RhZ2dyZWdhdG9yOiBwYWRzIG11c3QgaW5oZXJpdCBmcm9tICNHc3RBZ2dyZWdhdG9yUGFkCgkgIERvY3VtZW50IHRoaXMsIGFuZCB0YWtlIGFkdmFudGFnZSBvZiB0aGF0IGZhY3QgdG8gdXNlCgkgIEdzdEFnZ3JlZ2F0b3Iuc3JjcGFkLnNlZ21lbnQgaW5zdGVhZCBvZiBHc3RBZ2dyZWdhdG9yLnNlZ21lbnQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5Mzk0MgoKMjAxOC0wMi0yOCAxOTo1Mzo0MiArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogYWxsb3cgc3JjIEdzdEFnZ3JlZ2F0b3JQYWRzCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkzOTE3CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTM5MzQKCjIwMTgtMDItMjggMTk6NTE6NDQgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXVAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIHBhZCwgZ2hvc3RwYWQ6IHVzZSB0aGUgdGVtcGxhdGUgZ3R5cGUgaWYgc3BlY2lmaWVkCgkgIEFsc28gbWFrZSBzdXJlIHRoZSBHVHlwZSBwYXNzZWQgdG8gdGhlIHdpdGhfZ3R5cGUgdmVyc2lvbnMKCSAgb2YgdGhlIHRlbXBsYXRlIGNvbnN0cnVjdG9ycyBpc19hIEdzdFBhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkzOTMzCgoyMDE4LTAyLTIxIDIyOjI1OjI1IC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCBpbnRlZ2VyIG92ZXJmbG93IGluIGJpdHJhdGUgY2FsY3VsYXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5MzI4NAoKMjAxOC0wMi0yMSAyMjowMTozNiAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBBdm9pZCBvdmVyZmxvdyBpbiB1cGRhdGVfaW50ZXJ2YWwgY2FsY3VsYXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5MzI4NAoKMjAxOC0wMi0yMSAyMTo0Mzo1OSAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXggY2hlY2sgZm9yIHVwZGF0ZV9pbnRlcnZhbAoJICB1cGRhdGVfaW50ZXJ2YWwgbWF5IGJlIC0xCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTMyODQKCjIwMTgtMDItMTkgMTU6Mzk6NDYgKzA5MDAgIEp1c3RpbiBLaW0gPGp1c3Rpbi5raW1AY29sbGFib3JhLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogVXNlIC5keWxpYiBzdWZmaXggaWYgZGFyd2luCgkgIEZvciBNYWMgT1MsIEdTVF9FWFRSQV9NT0RVTEVfU1VGRklYIHNob3VsZCBiZSBzZXQgYXMgJy5keWxpYicuCgkgIE90aGVyd2lzZSwgR1N0cmVhbWVyIGZhaWxzIHRvIGxvYWQgaXRzIHBsdWdpbnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTM1ODQKCjIwMTgtMDItMDEgMTg6Mjk6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5Lmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvcXVldWVhcnJheS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHF1ZXVlYXJyYXk6IGFkZCBfcGVla190YWlsKCkgYW5kIF9wb3BfdGFpbCgpCgkgIEFQSTogZ3N0X3F1ZXVlX2FycmF5X3BvcF90YWlsKCkKCSAgQVBJOiBnc3RfcXVldWVfYXJyYXlfcGVla190YWlsKCkKCSAgVGhlc2Ugd2lsbCBiZSBuZWVkZWQgbGF0ZXIgZm9yIGFwcHNyYy4KCjIwMTgtMDItMTMgMTI6Mzg6MzMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R1cmkuYzoKCSAgZ3N0OiBmaXggc29tZSBHSVIgYW5ub3RhdGlvbnMKCSAgTW9zdGx5IHJlbGF0ZWQgdG8gb3V0IHBhcmFtZXRlcnMgYW5kIHRoZWlyIHRyYW5zZmVyCgoyMDE4LTAxLTEwIDA0OjA4OjU3ICswMTAwICBBbGljaWEgQm95YSBHYXJjw61hIDxhYm95YUBpZ2FsaWEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzaW5rLmM6CgkgIGdzdGJhc2VzaW5rOiBJbmNsdWRlIHNlZ21lbnQub2Zmc2V0IGluIHRoZSBjb21wdXRhdGlvbiBvZiBwb3NpdGlvbgoJICBQb3NpdGlvbiBxdWVyaWVzIHdpdGggR1NUX0ZPUk1BVF9USU1FIGFyZSBzdXBwb3NlZCB0byByZXR1cm4gc3RyZWFtCgkgIHRpbWUuCgkgIGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKCkgZXN0aW1hdGVzIHRoZSBjdXJyZW50IHN0cmVhbSB0aW1lIG9uIGl0cwoJICBvd24gaW5zdGVhZCBvZiB1c2luZyBnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSgpLCBidXQgdGhlIGFsZ29yaXRobQoJICB1c2VkIHdhcyBub3QgdGFraW5nIHNlZ21lbnQub2Zmc2V0IGludG8gYWNjb3VudCwgcmVzdWx0aW5nIGluIGludmFsaWQKCSAgdmFsdWVzIHdoZW4gdGhpcyBmaWVsZCB3YXMgc2V0IHRvIGEgbm9uLXplcm8gdmFsdWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTI0MzQKCjIwMTgtMDItMTUgMTI6NTg6NDMgKzExMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkgIHRyYWNlcnM6IGxhdGVuY3k6IGFsbG93IGZvciBub24gcGFyZW50ZWQgcGFkcyB0byBzZW5kIGxhdGVuY3kgcHJvYmVzCgkgIFN1Y2ggYSBzZXR1cCBpcyB1c2VkIGluIHJ0c3BzcmMgZm9yIGl0cyBUQ1AgY29ubmVjdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkzNDc4CgoyMDE4LTAyLTE1IDE5OjQ0OjE0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmV0cmFjZXJzLnhtbDoKCSogbWVzb24uYnVpbGQ6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuMTMuMSA9PT0KCjIwMTgtMDItMTUgMTY6MzE6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBORVdTOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmV0cmFjZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIG1lc29uLmJ1aWxkOgoJICBSZWxlYXNlIDEuMTMuMQoKMjAxOC0wMi0xNSAxMzozNjoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICB0ZXN0czogcGlwZWxpbmU6IHRyeSB0byBtYWtlIHRlc3RfcGlwZWxpbmVfcmVzZXRfc3RhcnRfdGltZSBtb3JlIHJlbGlhYmxlCgkgIE9jY2FzaW9uYWxseSB0aGlzIHRlc3Qgd291bGQgZmFpbCwgZXNwZWNpYWxseSBpZiB0aGUgc3lzdGVtIGlzIHVuZGVyIGxvYWQsCgkgIGJlY2F1c2UgdGhlIHBvc2l0aW9uIHF1ZXJ5IHdvdWxkIHBpY2sgdXAgdGhlIGxhc3QgcG9zaXRpb24gZnJvbSB0aGUKCSAgbGFzdCBidWZmZXIgdGltZXN0YW1wIHdoaWNoIGhhcyBhIGxvd2VyIHRpbWVzdGFtcCB0aGFuIHdoYXQgd2UncmUKCSAgbG9va2luZyBmb3IuIFRoZSBzbGVlcCBpcyBsb25nIGVub3VnaCwgaG93ZXZlci4gSXQncyB1bmNsZWFyIHRvIG1lIHdoeQoJICBleGFjdGx5IHRoaXMgaGFwcGVucyBidXQgdGhlcmUgc2VlbXMgdG8gYmUgc29tZSBraW5kIG9mIHNjaGVkdWxpbmcKCSAgaXNzdWUgZ29pbmcgb24gYXMgdGhlIHN0cmVhbWluZyB0aHJlYWQgZmxvb2RzIHRoZSBzaW5rIHdpdGggYnVmZmVycy4KCSAgTGV0J3MgdGhyb3R0bGUgdGhlIGZha2VzcmMgdG8gMTAwIGJ1ZmZlcnMgcGVyIHNlY29uZCBhbmQgbWFrZSB0aGUgc2luawoJICBzeW5jIHRvIHRoZSBjbG9jayB0byByZXN0b3JlIHNvbWUgc2FuaXR5LiBJdCBzaG91bGQgYmUgdG90YWxseSBzdWZmaWNpZW50CgkgIHRvIHRlc3Qgd2hhdCB3ZSB3YW50IHRvIHRlc3QsIGFuZCBzZWVtcyB0byBtYWtlIHRoaW5ncyByZWxpYWJsZSBoZXJlLgoKMjAxOC0wMi0xNSAxMjowMzoyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzoKCSAgdGVzdHM6IHVyaTogZml4IGJ1aWxkIHdpdGhvdXQgLURHU1RfRElTQUJMRV9ERVBSRUNBVEVECgkgIE11c3QgdW5kZWZpbmUgaXQgYmVmb3JlIGluY2x1ZGluZyBnc3QgaGVhZGVycywgc2luY2UgdGhlIHRlc3QKCSAgdGVzdHMgZGVwcmVjYXRlZCBBUEkuCgoyMDE4LTAyLTE1IDEyOjA5OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBnc3Rjb25maWcuaDogd2FudCBkZXByZWNhdGlvbiB3YXJuaW5ncyBpZiBHU1RfRElTQUJMRV9ERVBSRUNBVEVEIGlzICpzZXQqCgkgIEZpeCBpbnZlcnRlZCBsb2dpYy4gSWYgR1NUX0RJU0FCTEVfREVQUkVDQVRFRCBpcyB1bmRlZmluZWQsCgkgIHdlIGRvbid0IHdhbnQgd2FybmluZ3MgYWJvdXQgZGVwcmVjYXRlZCBBUEksIGFuZCBpZiBpdCdzCgkgIGRlZmluZWQgd2UgZG8gd2FudCB3YXJuaW5ncy4KCjIwMTgtMDItMTUgMTE6Mjg6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwby9iZy5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDE4LTAyLTE0IDE5OjM3OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogYWRkIGZsb3cgY29tYmluZXIgcmVmL3VucmVmIHRvIGRvY3MKCSAgU28gbmV3LWluLTEuMTIgaW5kZXggYWN0dWFsbHkgaGFzIHNvbWUgZW50cmllcy4KCjIwMTgtMDItMTQgMTk6MTM6MjggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICBkb2NzOiBhZGQgaW5kZXggZm9yIG5ldyBzeW1ib2xzIGluIDEuMTQKCjIwMTgtMDItMTQgMTk6MTI6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICBkb2NzOiBhZGQgaW5kZXggZm9yIG5ldyBzeW1ib2xzIGluIDEuMTIKCjIwMTgtMDItMDggMTc6MjI6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IG1ha2UgdmVyc2lvbiBudW1iZXJzIGludHMgYW5kIGZpeCBpbnQvc3RyaW5nIGNvbXBhcmlzb24KCSAgV0FSTklORzogVHJ5aW5nIHRvIGNvbXBhcmUgdmFsdWVzIG9mIGRpZmZlcmVudCB0eXBlcyAoc3RyLCBpbnQpLgoJICBUaGUgcmVzdWx0IG9mIHRoaXMgaXMgdW5kZWZpbmVkIGFuZCB3aWxsIGJlY29tZSBhIGhhcmQgZXJyb3IKCSAgaW4gYSBmdXR1cmUgTWVzb24gcmVsZWFzZS4KCjIwMTgtMDItMDMgMTc6NTY6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9wcmludGYvTWFrZWZpbGUuYW06CgkgIGF1dG90b29sczogdXNlIC1mbm8tc3RyaWN0LWFsaWFzaW5nIHdoZXJlIHN1cHBvcnRlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY5MTgzCgoyMDE4LTAyLTAzIDE3OjU1OjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGZpeCBndGstZG9jIHdhcm5pbmcgcmVnYXJkaW5nIF9nZXRfbl9tZXRhKCkgZGVjbGFyYXRpb24KCjIwMTgtMDItMDIgMDA6MjQ6MjAgKzExMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3Rwcm9taXNlLmM6CgkqIGdzdC9nc3Rwcm9taXNlLmg6CgkgIGdzdHByb21pc2U6IGFkZCBzaW5jZSAxLjE0IG1hcmtlcnMKCjIwMTctMTAtMTggMjE6MjQ6MTkgKzExMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCB3ZWJydGMgdG8gbGlicmFyaWVzCgoyMDE4LTAxLTMxIDE0OjAxOjM2ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgZ3N0YnVmZmVyLmg6IG1vdmUgRkxBR19MQVNUIGRvY3VtZW50YXRpb24gYmFjayB0byB0aGUgYm90dG9tCgoyMDE4LTAxLTMxIDEzOjM2OjE1ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiBhbm5vdGF0ZSB2aXJ0dWFsIG1ldGhvZHMKCjIwMTgtMDEtMzAgMTY6NDE6MzkgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXVAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBnc3RidWZmZXI6IGFkZCBHU1RfQlVGRkVSX0ZMQUdfTk9OX0RST1BQQUJMRQoJICBUaGlzIGNhbiBiZSB1c2VkIHRvIGlkZW50aWZ5IGJ1ZmZlcnMgZm9yIHdoaWNoIGEgaGlnaGVyIHBlcmNlbnRhZ2UKCSAgb2YgcmVkdW5kYW5jeSBzaG91bGQgYmUgYWxsb2NhdGVkIHdoZW4gcGVyZm9ybWluZyBmb3J3YXJkIGVycm9yCgkgIGNvcnJlY3Rpb24sIG9yIHRvIHByZXZlbnQgc3RpbGwgdmlkZW8gZnJhbWVzIGZyb20gYmVpbmcgZHJvcHBlZCBieQoJICBlbGVtZW50cyBkdWUgdG8gUW9TLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkzMDA4CgoyMDE4LTAxLTMwIDIwOjMwOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiB1c2UgLWZuby1zdHJpY3QtYWxpYXNpbmcgaWYgc3VwcG9ydGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjkxODMKCjIwMTctMTItMjMgMTY6NDU6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogYWRkIGdzdF9idWZmZXJfZ2V0X25fbWV0YSgpIGNvbnZlbmllbmNlIGZ1bmN0aW9uCgkgIENvdW50cyBob3cgbWFueSBtZXRhcyB0aGVyZSBhcmUgZm9yIGEgY2VydGFpbiBhcGkgdHlwZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5MTkxOAoKMjAxNy0xMC0yMiAxODowNTozMCArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bkBhcnVucmFnaGF2YW4ubmV0PgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkZXZpY2UuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cHJvdGVjdGlvbi5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0c3RyZWFtY29sbGVjdGlvbi5jOgoJKiBnc3QvZ3N0c3RyZWFtcy5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdDogRml4IHVwIGEgYnVuY2ggb2YgR0lSIGFubm90YXRpb25zCgkgIFRoaXMgaXMgbW9zdGx5IG9uIG51bGxhYmxlIHJldHVybiB2YWx1ZXMsIGFuZCBzb21lIG90aGVyIG1pbm9yIG9uZXMgdGhhdAoJICBJIHJhbiBhY3Jvc3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODkzMTkKCjIwMTctMDUtMjcgMDU6MTk6MjAgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW5AYXJ1bnJhZ2hhdmFuLm5ldD4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkgIGRldmljZW1vbml0b3I6IFJldHVybiBOVUxMIGluc3RlYWQgb2YgRkFMU0UKCSAgU2FtZSBlZmZlY3QsIG1lYW5pbmcgaXMgY2xlYXJlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4OTMxOQoKMjAxOC0wMS0yNiAxMjo0MjoyOCArMDEwMCAgRnJhbsOnb2lzIExhaWduZWwgPGZlbmdhbGluQGZyZWUuZnI+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVzc2FnZTogQWRkIGdzdF9tZXNzYWdlX3dyaXRhYmxlX3N0cnVjdHVyZSgpCgkgIEFkZCBnc3RfbWVzc2FnZV93cml0YWJsZV9zdHJ1Y3R1cmUoKSB0byBiZSBhYmxlIHRvIGFkZCBleHRyYSBmaWVsZHMgdG8KCSAgbWVzc2FnZXMgKGFuZCBiZSBvbiBwYXIgd2l0aCBHc3RFdmVudCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTI5MjgKCjIwMTgtMDEtMjMgMjI6NDk6NTIgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXVAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGRlbGVnYXRlIGJ1ZmZlciBza2lwcGluZyB0byB0aGUgYWdncmVnYXRlIHRocmVhZAoJICBBcyB3ZSBkbyB0aGF0IGZvciBzZXJpYWxpemVkIGV2ZW50cyBhcyB3ZWxsLCBhbmQgdGhlIHN1YmNsYXNzIHdpbGwKCSAgbW9zdCBsaWtlbHkgbmVlZCB0byBhY2Nlc3MgcGFkLT5zZWdtZW50IHRvIG1ha2UgaXRzIGRlY2lzaW9ucywKCSAgZG9pbmcgdGhhdCBmcm9tIHRoZSBzaW5rcGFkJ3Mgc3RyZWFtaW5nIHRocmVhZHMgd2FzIHJhY3kuCgoyMDE3LTEyLTI4IDEyOjEyOjQ1ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgQVBJOiBHc3RBZ2dyZWdhdG9yUGFkLnNraXBfYnVmZmVyIHZpcnR1YWwgbWV0aG9kCgkgIEFsbG93cyBzdWJjbGFzc2VzIHRvIHByZXZlbnQgYnVmZmVycyBmcm9tIGJlaW5nIHF1ZXVlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MTkyOAoKMjAxOC0wMS0yMyAyMDowNDowMiArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgYmFzZXNyYzogQW5ub3RhdGUgc29tZSBvZiB0aGUgdmlydHVhbCBtZXRob2RzCgoyMDE4LTAxLTIzIDA4OjU2OjM0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FnZ3JlZ2F0b3IuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBhZ2dyZWdhdG9yOiByZW5hbWUgX2dldF9idWZmZXIoKSAtPiBfcGVla19idWZmZXIoKSBhbmQgX3N0ZWFsIC0+IF9wb3AKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5MTIwNAoKMjAxOC0wMS0yMCAxNTozMDo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkgIGNoaWxkcHJveHk6IGdyYWNlZnVsbHkgaGFuZGxlIG1ldGhvZHMgYmVpbmcgTlVMTAoJICBEbyB0aGlzIGZvciBhbGwgbWV0aG9kIGludm9rZSBmdW5jdGlvbnMgZm9yIGNvbnNpc3RlbmN5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMTU0CgoyMDE4LTAxLTE4IDE4OjExOjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBmaXggLmRlZiBmaWxlIGZvciBuZXcgQVBJCgkgIEZpeGVzIGNoZWNrICsgZGlzdGNoZWNrCgoyMDE3LTA4LTAxIDEwOjQzOjMyICswMjAwICBNaWNoZWxlIERpb25pc2lvIDxtaWNoZWxlLmRpb25pc2lvQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHA6IGZpeCBidWlsZCBmYWlsdXJlIHdpdGggI3VuZGVmIFVTRV9NRUFTVVJFTUVOVF9GSUxURVJJTkcKCSAgIkxhYmVsIOKAmG91dOKAmSB1c2VkIGJ1dCBub3QgZGVmaW5lZCIsIHNpbmNlIGl0J3MgYWxzbyB1c2VkIGJ5CgkgIHRoZSBVU0VfTUVESUFOX1BSRV9GSUxURVJJTkcgYnJhbmNoLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg1NjMxCgoyMDE4LTAxLTE4IDE5OjE2OjEyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkgIHBhZHRlbXBsYXRlOiBBbmQgYWRkIG1pc3NpbmcgR1NUX0VYUE9SVCB0byBnc3RfcGFkX3RlbXBsYXRlX25ld193aXRoX2d0eXBlKCkKCjIwMTgtMDEtMTggMTk6MTU6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgcGFkdGVtcGxhdGU6IEFkZCBtaXNzaW5nIFNpbmNlOiAxLjE0IG1hcmtlciB0byBnc3RfcGFkX3RlbXBsYXRlX25ld193aXRoX2d0eXBlKCkKCjIwMTgtMDEtMTggMTk6MDg6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkgIHBhZHRlbXBsYXRlOiBBZGQgZ3N0X3BhZF90ZW1wbGF0ZV9uZXdfd2l0aF9ndHlwZSgpCgkgIEZvciBiZWluZyBhYmxlIHRvIGNyZWF0ZSBhIHBhZCB0ZW1wbGF0ZSB3aXRoIEdUeXBlIHdpdGhvdXQgaGF2aW5nIGEKCSAgc3RhdGljIHBhZCB0ZW1wbGF0ZS4KCjIwMTgtMDEtMTggMTk6MDc6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgcGFkdGVtcGxhdGU6IEFkZCBTaW5jZTogMS4xNCBtYXJrZXIgdG8gZ3N0X3BhZF90ZW1wbGF0ZV9uZXdfZnJvbV9zdGF0aWNfcGFkX3RlbXBsYXRlX3dpdGhfZ3R5cGUoKQoKMjAxOC0wMS0xNiAxMDoxNzo1OCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBBdm9pZCBzdHJlYW0tZGVhZC1sb2NrIG9uIGRlYWN0aXZhdGlvbgoJICBUaGUgZm9sbG93aW5nIGNhc2UgY2FuIGhhcHBlbiB3aGVuIHR3byB0aHJlYWQgdHJ5IHRvIGFjdGl2YXRlIGFuZAoJICBkZWFjdGl2YXRlIGEgcGFkIGF0IHRoZSBzYW1lIHRpbWU6CgkgIFQxOiBzdGFydHMgdG8gZGVhY3RpdmF0ZSwgY2FsbHMgcHJlX2FjdGl2YXRlKCksIHNldHMgaW5fYWN0aXZhdGlvbgoJICB0byBUUlVFIGFuZCBjYXJyaWVzIG9uCgkgIFQyOiBzdGFydHMgdG8gYWN0aXZhdGUsIGNhbGxzIHByZV9hY3RpdmF0ZSgpLCBpbl9hY3RpdmF0aW9uIGlzIFRSVUUKCSAgc28gaXQgd2FpdHMgb24gdGhlIEdDb25kCgkgIFQxOiBjYWxscyBwb3N0X2FjdGl2YXRlKCksIHRyaWVzIHRvIGFjcXVpcmUgdGhlIHN0cmVhbWluZyBsb2NrIC4uCgkgIGJ1dCBjYW4ndCBiZWNhdXNlIFQyIGlzIGN1cnJlbnRseSBob2xkaW5nIGl0CgkgIFdpdGggdGhpcyBwYXRjaCwgdGhlIGRlYWRsb2NrIHdpbGwgbm8gbG9uZ2VyIGhhcHBlbiBidXQgZG9lcyBub3QKCSAgc29sdmUgdGhlIHByb2JsZW0gdGhhdDoKCSAgVDI6IHdpbGwgcmVzdW1lIGFjdGl2YXRpb24gb2YgdGhlIHBhZCwgc2V0IHRoZSBwYWQgbW9kZSB0byB0aGUgdGFyZ2V0CgkgIG9uZSAoUFVTSCBvciBQVUxMKSBhbmQgZXZlbnR1YWxseSB0aGUgc3RyZWFtaW5nIGxvY2sgZ2V0cyByZWxlYXNlZC4KCSAgVDE6IGlzIGFibGUgdG8gZmluaXNoIGNhbGxpbmcgcG9zdF9hY3RpdmF0ZSgpIC4uLiBidXQgLi4uIHRoZSBwYWQKCSAgd2Fzbid0IGRlYWN0aXZhdGVkIChUMiB3YXMgdGhlIGxhc3Qgb25lIHRvICJhY3RpdmF0ZSIgdGhlIHBhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5MjM0MQoKMjAxOC0wMS0xNSAxODoxMzo0NSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBSZWxlYXNlIHBlbmRpbmcgZ19jb25kX3dhaXQoKSB3aGVuIHN0b3BwaW5nL3BhdXNpbmcgdGFzawoJICBPdGhlcndpc2Ugd2Ugd291bGQgZGVhZGxvY2sgd2FpdGluZyBmb3JldmVyIGZvciB0aGUgc3RyZWFtaW5nIGxvY2sKCSAgdG8gYmUgcmVsZWFzZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5MjM0MQoKMjAxOC0wMS0xMyAxMTowODowMCArMDgwMCAgSnVuIFhpZSA8anVuLnhpZUBzYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgdHlwZWZpbmRoZWxwZXI6IGZpeCBjb25mdXNpbmcgZGVidWcgbG9nIG1lc3NhZ2UKCSAgSW4gY2FzZSBvZiBhIHNob3J0IGJ1ZmZlciwgdGhlIGRlYnVnIGxvZyBpcyBxdWl0ZSBjb25mdXNpbmcuCgkgIERpc3Rpbmd1aXNoIHRoZSB0d28gdHlwZXMgb2YgZmFpbHVyZSBjYXNlcyB0byBtYWtlIGl0IGNsZWFyZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTI0ODYKCjIwMTgtMDEtMTIgMTg6NDc6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGRvY3M6IGV4cGxpY2l0IHJlZmVyIHRvIEdPYmplY3QgZG9jcyBmb3IgZmxvYXRpbmcgcmVmcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4NDc3CgoyMDE4LTAxLTExIDE5OjUyOjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSAgdGVzdHM6IGZha2VzaW5rOiBtYWtlIG5vdGlmeSBzdHJlc3MgdGVzdCB3b3JrIGJldHRlciBvbiBXaW5kb3dzCgkgIFNldCB1cCBhbGwgdGVuIHBpcGVsaW5lcyBhbmQgcHJlcm9sbCB0aGVtIGZpcnN0LCBhbmQgb25seSBzZXQKCSAgdGhlbSB0byBwbGF5aW5nIHRvIHJ1biB3aWxkIGFmdGVyIHRoZXkncmUgYWxsIHNldCB1cC4gSWYgd2Ugc2V0CgkgIHRoZW0gdG8gUExBWUlORyBkaXJlY3RseSBhbmQgbGV0IHRob3NlIHRocmVhZHMgcnVuIHdpbGQsIHRoZW4KCSAgaXQgbWlnaHQgdGFrZSBhZ2VzIChtYW55IHNlY29uZHMpIGZvciB0aGUgb3RoZXIgcGlwZWxpbmVzIHRvCgkgIGV2ZW4gZ2V0IHVwIGFuZCBydW5uaW5nLCBlc3BlY2lhbGx5IG9uIG1hY2hpbmVzIHdpdGggb25seSBvbmUKCSAgb3IgdHdvIGNvcmVzLCBhbmQgb3BlcmF0aW5nIHN5c3RlbXMgdGhhdCBzdWNrIGF0IHNjaGVkdWxpbmcuCgkgIE5vdyB0aGUgZmFrZXNpbmsgdGVzdCB0YWtlcyAxOSBzZWNzIGluc3RlYWQgb2YgNzEgc2VjcyBvbiBhCgkgIHNpbmdsZS1jcHUgd2luZG93cyBtYWNoaW5lLgoKMjAxOC0wMS0xMSAxOTozMjowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSAgdGVzdHM6IGZpbGVzcmM6IG1vcmUgV2luZG93cyBmaXhlcwoJICBGaXggdHlwbyBpbiBuZXdseS1hZGRlZCB3aW5kb3dzIHVyaSB0ZXN0LgoKMjAxOC0wMS0xMSAxODo0NDo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogdXNlIGdfZ2V0X21vbm90b25pY190aW1lKCkgYXMgZmFsbGJhY2sgaW4gZ3N0X3V0aWxzX2dldF90aW1lc3RhbXAoKQoJICBUaGlzIGlzIGEgYmV0dGVyIGZpdCBnaXZlbiB0aGF0IHRoZSBmdW5jdGlvbiBkb2NzIHNheSB0aGlzCgkgIHNob3VsZCAob25seSkgYmUgdXNlZCBmb3IgaW50ZXJ2YWwgbWVhc3VyZW1lbnRzLCBidXQgYWxzbwoJICB0aGlzIHNlZW1zIHRvIGdpdmUgbXVjaCBiZXR0ZXIgZ3JhbnVsYXJpdHkgb24gV2luZG93cwoJICBzeXN0ZW1zLCB3aGVyZSBiZWZvcmUgdGhpcyBjaGFuZ2UgdGhlcmUgd291bGQgb2Z0ZW4gYmUKCSAgMTAtMjAgbGluZXMgb2YgZGVidWcgbG9nIHdpdGggdGhlIHNhbWUgdGltZXN0YW1wIHVwIGZyb250LgoKMjAxOC0wMS0xMSAxODozOTo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICB0ZXN0czogc3lzdGVtY2xvY2s6IHNjYWxlIHN0cmVzcyB0ZXN0IHRocmVhZHMgYWNjb3JkaW5nIHRvIG51bWJlciBvZiBjcHVzCgkgIFNjYWxlIHRoZSBudW1iZXIgb2YgdGhyZWFkcyB1c2VkIGluIHRoZSBzdHJlc3MgdGVzdHMgYWNjb3JkaW5nIHRvCgkgIHRoZSBudW1iZXIgb2YgY29yZXMvY3B1cy4gV2Ugd2FudCBzb21lIGNvbnRlbnRpb24sIGJ1dCB3ZSBhbHNvCgkgIGRvbid0IHdhbnQgdG9vIG11Y2ggY29udGVudGlvbiwgYXMgc29tZSBvcGVyYXRpbmcgc3lzdGVtcyBhcmUKCSAgYmV0dGVyIGF0IGhhbmRsaW5nIDEwMCB0aHJlYWRzIHJ1bm5pbmcgd2lsZCBvbiBhIHNpbmdsZSBjb3JlCgkgIHRoYW4gb3RoZXJzLgoKMjAxOC0wMS0xMSAxNzoxMDo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiBwbHVnaW5fbG9hZCgpIG11c3QgcmV0dXJuIGEgcmVmIGV2ZW4gaWYgaXQgd2FzIGxvYWRlZCBhbHJlYWR5CgkgIEZpeCByZWZjb3VudGluZyBpc3N1ZSB3aGVuIHBsdWdpbiB3YXMgbG9hZGVkIGFscmVhZHkuCgkgIGdzdF9wbHVnaW5fbG9hZCgpIGlzIHN1cHBvc2VkIHRvIHJldHVybiBhIHJlZiwgc28gaXQKCSAgbXVzdCBhbHdheXMgcmV0dXJuIGEgcmVmLgoJICBUaGlzIGFsc28gZml4ZXMgdGhlIGdzdHBsdWdpbiB1bml0IHRlc3Qgb24gd2luZG93cyB3aGVyZQoJICBmb3JrIGlzIG5vdCBhdmFpbGFibGUgYW5kIHdoZXJlIHRlc3RfbG9hZF9jb3JlZWxlbWVudHMoKQoJICB3b3VsZCB1bnJlZiBhIHBsdWdpbiByZWYgaXQgZGlkbid0IGdldCBhbmQgdGhlbiBtZXNzIHVwCgkgIHRoZSBpbnRlcm5hbCByZWdpc3RyeSBwbHVnaW4gbGlzdCBzdGF0ZSBmb3IgdGhlIG5leHQgdGVzdCwKCSAgaW4gY2FzZSB3aGVyZSB0aGUgdGVzdCByZWdpc3RyeSBkb2VzIG5vdCBleGlzdCB5ZXQuCgoyMDE4LTAxLTExIDE0OjU2OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJICB0ZXN0czogZmlsZXNyYzogZml4IGZvciB3aW5kb3dzCgkgIExvY2F0aW9uIHBhdGhzIGhhdmUgYmFja3NsYXNoZXMgb24gd2luZG93cyB3aGVuIGNvbnZlcnRlZCBmcm9tIFVSSS4KCjIwMTgtMDEtMTEgMTI6Mjc6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBsaWJzOiBjaGVjazogcHJpbnQgc3RhY2t0cmFjZSBvbiB1bmV4cGVjdGVkIGNyaXRpY2FscwoKMjAxOC0wMS0xMSAxMjowMjo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0dy5oOgoJICB0ZXN0czogYWJpOiBmaXggYWJpIHRlc3Qgb24gNjQtYml0IFdpbmRvd3MKCSAgQWRkIGhlYWRlciB3aXRoIHN0cnVjdHVyZSBzaXplcyBmb3IgNjQtYml0IHdpbmRvd3MgYXMgd2VsbC4KCSAgVGhleSdyZSBhbG1vc3QgdGhlIHNhbWUgYXMgb24gTGludXgsIGJ1dCBpdCBsb29rcyBsaWtlIHRoaW5ncwoJICBsaWtlIHBhZGRpbmcgdW5pb25zIGdldCBhbGlnbmVkIHNsaWdodGx5IGRpZmZlcmVudGx5IHNvIHRoZXJlCgkgIGFyZSBhIGhhbmRmdWwgb2YgZGlmZmVyZW5jZXM6CgkgIHNpemVvZihHc3RHaG9zdFBhZCkgaXMgNTI4LCBleHBlY3RlZCA1MzYKCSAgc2l6ZW9mKEdzdFBhZCkgaXMgNTEyLCBleHBlY3RlZCA1MjAKCSAgc2l6ZW9mKEdzdFBhZFByb2JlSW5mbykgaXMgNjQsIGV4cGVjdGVkIDcyCgkgIHNpemVvZihHc3RQcm94eVBhZCkgaXMgNTIwLCBleHBlY3RlZCA1MjgKCjIwMTgtMDEtMTEgMTE6Mzg6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJICB0ZXN0czogaW5mbzogZml4IHBvc3QgaW5pdCBjYXQgcmVnIHRlc3Qgb24gd2luZG93cyBhbmQgd2l0aCBDS19GT1JLPW5vCgkgIFRoZSB0ZXN0IGNoZWNrcyB0aGF0IGNhdGVnb3JpZXMgbm90IGNvdmVyZWQgYnkgdGhlIHBhdHRlcm4gaW4gdGhlCgkgIEdTVF9ERUJVRyBzdHJpbmcgaGF2ZSBkZWJ1ZyBsZXZlbCBHU1RfTEVWRUxfREVGQVVMVCBzZXQsIGJ1dCBwcmV2aW91cwoJICB0ZXN0cyBtZXNzIHdpdGggdGhlIGRlZmF1bHQgdGhyZXNob2xkLCB3aGljaCBtYWRlIHRoaXMgdGVzdCBmYWlsIG9uCgkgIFdpbmRvd3Mgb3Igd2hlbiBydW4gd2l0aCBDS19GT1JLPW5vLiBGaXggdGhpcyBieSByZXNldHRpbmcgZXZlcnl0aGluZwoJICBhdCB0aGUgYmVnaW5uaW5nLCBhbmQgdGhlbiBhbHNvIGRvIGEgc2FuaXR5IGNoZWNrIGFmdGVyd2FyZHMuCgoyMDE4LTAxLTExIDExOjM2OjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogcmVzZXQgZGVmYXVsdCB0aHJlc2hvbGQgdG8gTEVWRUxfREVGQVVMVCBub3QgMAoJICBpbiBzZXRfdGhyZXNob2xkX2Zyb21fc3RyaW5nKCkuCgoyMDE3LTExLTA4IDIwOjA1OjAzICswMTAwICBIw6V2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suaC5pbjoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0L2xpYmNvbXBhdC5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9tZXNvbi5idWlsZDoKCSogbGlicy9nc3QvY2hlY2svbWVzb24uYnVpbGQ6CgkqIGxpYnMvZ3N0L21lc29uLmJ1aWxkOgoJKiBwa2djb25maWcvbWVzb24uYnVpbGQ6CgkqIHRlc3RzL21lc29uLmJ1aWxkOgoJICBtZXNvbjogbWFrZSBjaGVjayBhbmQgdGVzdHMgYnVpbGQgb24gV2luZG93cyB3aXRoIG1zdmMKCjIwMTgtMDEtMDIgMTA6MDI6NDUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGdzdGhhcm5lc3M6IFJlbW92ZSBkb3VibGUgZnJlZQoKMjAxNy0xMi0yNiAxODowODozMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RzdHJlYW1zLmg6CgkgIHN0cmVhbXM6IEdzdFN0cmVhbVR5cGUvR3N0U3RyZWFtIGFyZSBhdmFpbGFibGUgc2luY2UgMS4xMAoJICBBbm5vdGF0ZSB0aGVtIGFzIHN1Y2guCgoyMDE3LTEyLTI2IDEzOjQ2OjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBza2lwIHRyYW5zbGF0aW9ucyBpZiBnZXR0ZXh0IGlzIG5vdCBhdmFpbGFibGUKCjIwMTctMTItMjYgMTI6NTE6MjIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogcmVtb3ZlIERFQlVHX0ZVTkNQVFIKCSAgVGhlIG5ldyBnc3RfZWxlbWVudF9kb19mb3JlYWNoX3BhZCgpIGRvZXMgbm90IHByaW50IHRoZSBmdW5jdGlvbnMgYW55bW9yZS4KCjIwMTctMTItMjYgMTI6MTc6NTMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBpbnNwZWN0OiBhZGQgY29tbWVudCBmb3IgaG93IHRvIGltcHJvdmUgdHJhY2VyIHN1cHBvcnQKCjIwMTctMTItMjYgMTE6Mjk6MzkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBhZGQgYSBGSVhNRS0yLjAgZm9yIHRoZSBmb3JtYXQgcGFyYW1ldGVycwoJICBDYXB0dXJlIHRoZSBzb21ld2hhdCBub3Qgb3JkaW5hcnkgdXNlIG9mIHRoZSBleHRyYSBmb3JtYXQgcGFyYW1ldGVyIGluIGEKCSAgY29tbWVudC4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg5NzkKCjIwMTctMTItMjQgMTY6MjE6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0LmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRlaW5pdC5jOgoJKiB0ZXN0cy9jaGVjay9tZXNvbi5idWlsZDoKCSAgU2tpcCBnc3RfZGVpbml0KCkgaWYgZ3N0cmVhbWVyIHdhcyBub3QgaW5pdGlhbGl6ZWQgcHJvcGVybHkKCSAgQ2FuIGhhcHBlbiBpZiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIG9wdGlvbiBwYXJzaW5nLCBmb3IgZXhhbXBsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MTkxNAoKMjAxNy0xMi0yMyAyMzo0MzozMyArMDEwMCAgSmFuIEFsZXhhbmRlciBTdGVmZmVucyAoaGVmdGlnKSA8amFuLnN0ZWZmZW5zQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgdGVzdHM6IG11bHRpcXVldWU6IFJlcGxhY2UgbGFyZ2UgdGVzdCBtYWNybyB3aXRoIGZ1bmN0aW9uCgkgIEp1c3QgYSBiaXQgb2YgY2xlYW51cC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Njg2NwoKMjAxNy0xMi0xNSAwOTo0Mzo0MCArMDEwMCAgSmFuIEFsZXhhbmRlciBTdGVmZmVucyAoaGVmdGlnKSA8amFuLnN0ZWZmZW5zQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgdGVzdHM6IG11bHRpcXVldWU6IENoZWNrIHdlIGdldCBDUkVBVEUrRU5URVIgc3RyZWFtLXN0YXR1c2VzIHdoZW4gYWRkaW5nIHBhZHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Njg2NwoKMjAxNy0xMi0xNSAwOToxNDo1NyArMDEwMCAgSmFuIEFsZXhhbmRlciBTdGVmZmVucyAoaGVmdGlnKSA8amFuLnN0ZWZmZW5zQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBEb24ndCBzdGFydCBuZXcgcGFkcyB1bnRpbCBwYXJlbnRlZAoJICBTdGFydCB0YXNrIG9uIG5ldyBzb3VyY2UgcGFkcyBhZGRlZCBhdCBydW50aW1lIGFmdGVyIHRoZXkKCSAgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZSBlbGVtZW50LCBub3QgZHVyaW5nIGFjdGl2YXRpb24uCgkgIFRoaXMgZW5zdXJlcyB0aGUgcGFkcyBjYW4gcG9zdCB0aGVpciBDUkVBVEUgc3RyZWFtLXN0YXR1cwoJICBtZXNzYWdlcyBhbmQgdGhlIGFwcGxpY2F0aW9uIGNhbiBzZXQgdGhyZWFkIHByaW9yaXRpZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY4NjcKCjIwMTctMTItMTUgMDk6MTQ6MDcgKzAxMDAgIEphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRpZykgPGphbi5zdGVmZmVuc0BnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogU3BsaXQgdGFzayBoYW5kbGluZyBmcm9tIGdzdF9zaW5nbGVfcXVldWVfZmx1c2gKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Njg2NwoKMjAxNy0xMi0yMyAyMzoyNTo1OCArMDEwMCAgSmFuIEFsZXhhbmRlciBTdGVmZmVucyAoaGVmdGlnKSA8amFuLnN0ZWZmZW5zQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBBdm9pZCBhIG1heWJlLXVuaW5pdGlhbGl6ZWQgd2FybmluZwoJICBBcmNoIExpbnV4IHg4Nl82NCwgZ2NjIDcuMi4xLTIsIC1PZyAtZzMKCjIwMTctMTItMjEgMTM6NDc6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkgIGRvd25sb2FkYnVmZmVyOiBEb24ndCBob2xkIHRoZSBtdXRleCB3aGlsZSBwb3NpbnQgdGhlIGRvd25sb2FkLWNvbXBsZXRlIG1lc3NhZ2UKCSAgU29tZXRoaW5nIG1pZ2h0IGhhbmRsZSBpdCBmcm9tIGEgc3luYyBtZXNzYWdlIGhhbmRsZXIgYW5kIGNhbGwgYmFjayBpbnRvCgkgIGRvd25sb2FkYnVmZmVyLCBjYXVzaW5nIGEgZGVhZGxvY2suCgoyMDE3LTEyLTIwIDE4OjU2OjIzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBzZXRfZGVmYXVsdCgpIGNsb2NrIHBhcmFtZXRlciBjYW4gYmUgTlVMTAoKMjAxNy0xMi0yMCAxODoxMTo0OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IEFubm90YXRlIHNldF9jbG9jaygpIGNsb2NrIHBhcmFtZXRlciB3aXRoIGFsbG93LW5vbmUKCjIwMTctMTItMjAgMTg6MDk6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBBbm5vdGF0ZSBzZXRfYnVzKCkgYnVzIHBhcmFtZXRlciBhcyBhbGxvdy1ub25lCgkgIEl0J3MgcG9zc2libGUgdG8gcmVwbGFjZSB0aGUgYnVzIHdpdGggTlVMTC9Ob25lCgoyMDE3LTEyLTEwIDIyOjUwOjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogdXBkYXRlIGZvciBnbCBsaWIgbW92ZSBmcm9tIGJhZCB0byBiYXNlCgoyMDE3LTEyLTExIDIwOjU4OjE2IC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogQWxsb3cgZ29pbmcgcGFzc3Rocm91Z2ggaW5zaWRlIGRlY2lkZV9hbGxvY2F0aW9uCgkgIFN1Yi1jbGFzcyBtYXkgd2FudCB0byBkZWNpZGUgdG8gZ28gcGFzc3Rocm91Z2gvaW4tcGxhY2UgYnkgaW5zcGVjdGluZwoJICB0aGUgc3VwcG9ydCBtZXRhIEFQSXMuIFRoaXMgcGF0Y2ggZHVwbGljYXRlcyB0aGUgY2hlY2sgZm9yIHRoaXMgbW9kZSwKCSAgc28gd2Ugc3RpbGwgZG9uJ3QgZG8gdW5lZWRlZCBhbGxvY2F0aW9uIHF1ZXJ5IHdoaWxlIHdlIGFsbG93IHN1Yi1jbGFzc2VzCgkgIHRvIHN3aXRjaCB0aGUgYmVoYXZpb3VyIGR1cmluZyBpdCdzIG93biBkZWNpZGVfYWxsb2NhdGlvbiBjYWxsLgoJICBOb3RpY2UgdGhhdCBzdWNoIHN1Yi1jbGFzcyBuZWVkIHRvIHJlc2V0IHRoZSBjbGFzcyB0byBub24tcGFzc3Rocm91Z2ggaW4KCSAgc2V0X2NhcHMoKSBpbiBvcmRlciBmb3IgZGVjaWRlX2FsbG9jYXRpb24gdG8gYmUgY2FsbGVkIGFnYWluLiBUaGlzIGlzCgkgIG5lZWRlZCBvdGhlcndpc2Ugd2UnZCBiZSBkb2luZyBhbiBhbGxvY2F0aW9uIHF1ZXJ5IGluIGVsZW1lbnQgaW4gd2hpY2gKCSAgaXQgbWFrZSBubyBzZW5zZSAobm90YWJseSBjYXBzZmlsdGVyKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5MTQ1MwoKMjAxNy0xMi0xNyAxNDoxODozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiBBbm5vdGF0ZSBhZGRfZGVwZW5kZW5jeSgpIGFyZ3VtZW50cyBhcyBOVUxMLXRlcm1pbmF0ZWQgYXJyYXlzCgoyMDE3LTEyLTE0IDAwOjAzOjA0ICswNTMwICBVbWFuZyBKYWluIDxtYWlsdW1hbmdqYWluQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSAgZG9jczogR3N0QnVzOiBQcm92aWRlIG1vcmUgaW5mb3JtYXRpb24gZm9yIHJlZi91bnJlZiBkdXJpbmcgYnVzIHdhdGNoLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkxNTg4CgoyMDE3LTEyLTE0IDE2OjA1OjAwICsxMTAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXBkYXRlIHdpbjMyIGRlZnMgZm9yIHRyYWNlciBBUEkgYWRkaXRpb24KCjIwMTctMTItMTQgMTQ6NDg6NDcgKzExMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZThjN2E3MSB0byAzZmEyYzllCgoyMDE3LTEyLTA1IDIxOjM2OjM0ICsxMTAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JldHJhY2Vycy54bWw6CgkqIGdzdC9nc3R0cmFjZXJmYWN0b3J5LmM6CgkqIGdzdC9nc3R0cmFjZXJmYWN0b3J5Lmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsZWFrcy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIGRvY3M6IGluY2x1ZGUgdHJhY2VycyBpbiB0aGUgZG9jdW1lbnRhdGlvbgoJICBSZXF1aXJlcyBleHBvc2luZyB0aGUgdHJhY2VyIEdUeXBlIGZyb20gdGhlIEdzdFRyYWNlckZhY3RvcnkgaW4gb3JkZXIKCSAgdG8gbGluayB0aGUgcGx1Z2luIHdpdGggdGhlIHRyYWNlciBpbiB0aGUgZG9jdW1lbnRhdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5MTI1MwoKMjAxNy0xMi0wNSAyMDo1NjowOSArMTEwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBjaGVjay9oYXJuZXNzOiBmaXggdHJhbnNmZXIgYW5ub3RhdGlvbnMgb24gYnVmZmVyIHBhc3NpbmcgZnVuY3Rpb25zCgoyMDE3LTA4LTMwIDEzOjAzOjI4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBiYXNlc3JjOiBhZGQgYnVmZmVyIGxpc3Qgc3VwcG9ydAoJICBBZGQgYSBnc3RfYmFzZV9zcmNfc3VibWl0X2J1ZmZlcl9saXN0KCkgZnVuY3Rpb24gdGhhdCBhbGxvd3Mgc3ViY2xhc3NlcwoJICB0byBwcm9kdWNlIGEgYnVmZmVybGlzdCBjb250YWluaW5nIG11bHRpcGxlIGJ1ZmZlcnMgaW4gdGhlIDo6Y3JlYXRlKCkKCSAgZnVuY3Rpb24uIFRoZSBidWZmZXJzIGluIHRoZSBidWZmZXIgbGlzdCB3aWxsIHRoZW4gYWxzbyBiZSBwdXNoZWQgb3V0CgkgIGluIG9uZSBnbyBhcyBhIEdzdEJ1ZmZlckxpc3QuIFRoaXMgY2FuIHJlZHVjZSBwdXNoIG92ZXJoZWFkCgkgIHNpZ25pZmljYW50bHkgZm9yIHNvdXJjZXMgd2l0aCBwYWNrZXRpc2VkIGlucHV0cyAoc3VjaCBhcyB1ZHBzcmMpCgkgIGluIGhpZ2gtdGhyb3VnaHB1dCBzY2VuYXJpb3MuCgkgIFRoZSBfc3VibWl0X2J1ZmZlcl9saXN0KCkgYXBwcm9hY2ggd2FzIGNob3NlbiBiZWNhdXNlIGl0IGlzIGZhaXJseQoJICBzdHJhaWdodC1mb3J3YXJkLCBiYWNrd2FyZHMtY29tcGF0aWJsZSwgYmluZGluZ3MtZnJpZW5kbHkgKGFzIG9wcG9zZWQKCSAgdG8gZS5nLiBtYWtpbmcgdGhlIGNyZWF0ZSBmdW5jdGlvbiByZXR1cm4gYSBtaW5pIG9iamVjdCBpbnN0ZWFkKSwKCSAgYW5kIGl0IGFsbG93cyB0aGUgc3ViY2xhc3MgbWF4aW11bSBjb250cm9sOiB0aGUgc3ViY2xhc3MgY2FuIGRlY2lkZQoJICBkeW5hbWljYWxseSBhdCBydW50aW1lIHdoZXRoZXIgdG8gcmV0dXJuIGEgbGlzdCBvciBhIHNpbmdsZSBidWZmZXIKCSAgKHdoaWNoIHdvdWxkIGJlIG1lc3NpZXIgaWYgd2UgYWRkZWQgYSBjcmVhdGVfbGlzdCB2aXJ0dWFsIG1ldGhvZCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAyNDEKCjIwMTctMDgtMzEgMDE6MTg6MjggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogbWlub3IgY29kZSByZWFkYWJpbGl0eSBpbXByb3ZlbWVudAoKMjAxNy0xMi0wNyAxMjowNToyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJICBkb2NzOiBGaXggYSBmZXcgZ3RrLWRvYyB3YXJuaW5ncwoJICBCcm9rZW4gbGlua3MgbW9zdGx5LgoKMjAxNy0xMi0wNiAyMDo1ODo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWdncmVnYXRvci5jOgoJICB0ZXN0czogYWdncmVnYXRvcjogZml4IGNhcHMgbGVhayBpbiB1bml0IHRlc3QKCjIwMTctMTItMDYgMTc6MDc6MjkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogSGFuZGxlIEdTVF9QQURfUFJPQkVfSEFORExFRCBvbiBzdGlja3kgZXZlbnQgcHVzaAoJICBXaGVuIGFjdHVhbGx5IHB1c2hpbmcgYW4gZXZlbnQsIGlmIHdlIGdldCBHU1RfRkxPV19DVVNUT01fU1VDQ0VTU18xCgkgICh3aGljaCBpcyB0aGUgY29udmVyc2lvbiBvZiBHU1RfUEFEX1BST0JFX0hBTkRMRUQgcmV0dXJuIHZhbHVlKSwKCSAgZG9uJ3QgY29uc2lkZXIgdGhlIHN0aWNrIGV2ZW50IHB1c2ggYXMgaWdub3JlZCwgYnV0IGFzIGhhbmRsZWQKCjIwMTctMTItMDYgMTM6NDA6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIGV2ZW50L3F1ZXJ5L21lc3NhZ2U6IEFubm90YXRlIGdldF9zdHJ1Y3R1cmUoKSByZXR1cm4gdmFsdWUgYXMgbnVsbGFibGUKCjIwMTctMTItMDYgMTM6MzY6MzAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IEFkZCBhbiBlbXB0eSBzdHJ1Y3R1cmUgaW4gd3JpdGFibGVfc3RydWN0dXJlKCkgaWYgdGhlcmUgaXMgbm9uZSB5ZXQKCSAgVGhpcyBpcyBjb25zaXN0ZW50IHdpdGggaG93IGl0IHdvcmtzIGZvciBHc3RFdmVudCBhbHJlYWR5LgoKMjAxNy0xMi0wNSAxODoyMTowMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rwcm9taXNlLmM6CgkqIGdzdC9nc3RzdHJlYW1jb2xsZWN0aW9uLmg6CgkqIGdzdC9nc3RzdHJlYW1zLmg6CgkgIGRvY3M6IE1pc2MgYWRkaXRpb24vZml4ZXMKCSAgQW5kIGFsc28gYWRkIHRoZSAiU2luY2UiIEFQSSBzZWN0aW9ucyBmb3IgMS4xMiBhbmQgMS4xNAoKMjAxNy0xMi0wNSAxODoyMDozNCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZG9jczogQWRkIGRvY3VtZW50YXRpb24gZm9yIEdTVF9TRVFOVU1fSU5WQUxJRAoJICBBbmQgbGluayB0byBpdAoKMjAxNy0xMi0wNSAxNzoyODo1NSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IE5ldmVyIHJldHVybiBhIGdyb3VwX2lkIG9mIDAsIGFkZCBHU1RfR1JPVVBfSURfSU5WQUxJRAoJICBWYXJpb3VzIHBsdWdpbnMgdXNlIHNwZWNpYWwgdmFsdWVzICgwIG9yIEdfTUFYVUlOVDMyKSBhcyBhbgoJICBpbnZhbGlkL3Vuc2V0IGdyb3VwX2lkLCBidXQgbm90aGluZyBndWFyYW50ZWVzIGEgZ3JvdXBpZCB3b24ndCBoYXZlCgkgIHRoYXQgdmFsdWUuCgkgIEluc3RlYWQgZGVmaW5lIGEgdmFsdWUgd2hpY2ggZ3JvdXBfaWQgd2lsbCBuZXZlciBoYXZlIGFuZCBtYWtlCgkgIGdzdF9ncm91cF9pZF9uZXh0KCkgYWx3YXlzIHJldHVybiBhIHZhbHVlIGRpZmZlcmVudCBmcm9tIHRoYXQuCgkgIEFQSTogR1NUX0dST1VQX0lEX0lOVkFMSUQKCjIwMTctMTItMDUgMTY6NDI6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IG1ha2UgYmluZGluZ3MgdXNlIHRoZSBHQnl0ZXMgdmFyaWFudCBmb3IgX3Rha2VfYWxsX2RhdGEoKQoKMjAxNi0xMS0yMyAxMzoxMjozNiArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiB1c2UgbmV3IHRha2VfYWxsX2RhdGEoKSBmdW5jdGlvbiBpbiBfZHVtcF90b19maWxlKCkuCgoyMDE3LTEyLTA1IDE1OjI4OjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogYWRkIGdzdF9oYXJuZXNzX3Rha2VfYWxsX2RhdGEoKSArIF90YWtlX2FsbF9kYXRhX2FzX3tieXRlcyxidWZmZXJ9KCkKCSAgQ29udmVuaWVuY2UgZnVuY3Rpb24gdG8ganVzdCBncmFiIGFsbCBwZW5kaW5nIGRhdGEKCSAgZnJvbSB0aGUgaGFybmVzcywgZS5nLiBpZiB3ZSBqdXN0IHdhbnQgdG8gY2hlY2sgaWYKCSAgaXQgbWF0Y2hlcyB3aGF0IHdlIGV4cGVjdCBhbmQgd2UgZG9uJ3QgY2FyZSBhYm91dAoJICB0aGUgY2h1bmtpbmcgb3IgYnVmZmVyIG1ldGFkYXRhLgoJICBCYXNlZCBvbiBwYXRjaCBieTogSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKMjAxNy0xMi0wNSAxNToxNjozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBkb2N1bWVudCB0aGF0IF9leHRyYWN0X2R1cCgpIHdpbGwgcmV0dXJuIE5VTEwgZm9yIDAtc2l6ZWQgYnVmCgkgIEFuZCBtYWtlIGl0IGV4cGxpY2l0LCBhbmQgZG9uJ3QgY2FsbCBfZXh0cmFjdCgpIG9uIE5VTEwgZGF0YSBidWZmZXIuCgoyMDE3LTEyLTA1IDEyOjI3OjE4ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9tZXNvbi5idWlsZDoKCSAgbWVzb246IFVzZSBhcnJheSBzeW50YXggaW5zdGVhZCBvZiAuZ2V0KCkgaW4gdGVzdHMKCjIwMTctMTEtMjQgMDI6Mzk6NDMgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9wYXJzZS9tZXNvbi5idWlsZDoKCSAgbWVzb246IFVzZSBuZXcgZmluZF9wcm9ncmFtIGZhbGxiYWNrIHN5bnRheAoJICBXZSB1c2UgdGhpcyBzeW50YXggaW4gbGlicy9nc3QvaGVscGVycy9tZXNvbi5idWlsZCBhbHJlYWR5LgoKMjAxNy0xMi0wNCAxODowODozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGdzdDogZ3N0X2VsZW1lbnRfcmVtb3ZlX3BhZCgpIGlzIHRyYW5zZmVyIG5vbmUgZm9yIHRoZSBwYWQKCSAgV2hpbGUgdGhlIHJlZmNvdW50IG9mIHRoZSBwYWQgaXMgZGVjcmVhc2VkLCBpdCdzIHRoZSByZWZjb3VudCB0aGF0IGlzCgkgIG93bmVkIGJ5IHRoZSBwYXJlbnQgKGkuZS4gdGhlIGVsZW1lbnQpIGFuZCBub3QgdGhlIG9uZSBwYXNzZWQgaW4gYnkgdGhlCgkgIGNhbGxlci4KCSAgRml4ZXMgYSBtZW1vcnkgbGVhayBpbiBiaW5kaW5ncy4KCjIwMTctMTItMDQgMTE6MjQ6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IGFkZCBmaW5pc2hfYnVmZmVyKCkgdmZ1bmMKCSAgU28gc3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUgdGhlIGZpbmlzaCBiZWhhdmlvdXIKCSAgYW5kL29yIGRlY29yYXRlIG9yIG1vZGlmeSBidWZmZXJzIGJlZm9yZSB0aGV5CgkgIGdldCBwdXNoZWQgb3V0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwOTgxCgoyMDE3LTEyLTA0IDEyOjI5OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGRpc2FibGUgdGFnIG1lcmdpbmcgYW5kIGZvcndhcmRpbmcgZm9yIG5vdwoJICBTdWJjbGFzc2VzIHNob3VsZCBoYW5kbGUgdGhpcyBmb3Igbm93LgoKMjAxNy0xMS0wNiAyMDoyMzoxMiArMDEwMCAgSmFuIEFsZXhhbmRlciBTdGVmZmVucyAoaGVmdGlnKSA8amFuLnN0ZWZmZW5zQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkgIGRldmljZW1vbml0b3I6IEF2b2lkIG1heWJlLXVuaW5pdGlhbGl6ZWQgY29tcGlsZXIgd2FybmluZwoJICBPbiBBcmNoIExpbnV4IHg4Nl82NCwgZ2NjIDcuMi4wLTMsIC1PZyAtZzM6CgkgIGdzdGRldmljZW1vbml0b3IuYzogSW4gZnVuY3Rpb24g4oCYYnVzX3N5bmNfbWVzc2FnZeKAmToKCSAgZ3N0ZGV2aWNlbW9uaXRvci5jOjI3Njo4OiBlcnJvcjog4oCYbWF0Y2hlc+KAmSBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMgZnVuY3Rpb24gWy1XZXJyb3I9bWF5YmUtdW5pbml0aWFsaXplZF0KCSAgVGhpcyBjb21taXQgYWxzbyBzaW1wbGlmaWVzIHRoZSBjb2RlIGEgYml0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg5OTgzCgoyMDE3LTEyLTAzIDE0OjQ4OjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgZ3N0OiBBbm5vdGF0ZSB2YXJpb3VzIHN0cmluZ3MgYXMgdHlwZSBmaWxlbmFtZSBpZiB0aGV5IHJlcHJlc2VudCBhIHBhdGgvZmlsZW5hbWUKCjIwMTctMTItMDIgMTU6NDQ6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBob29rIHVwIHRvIGRvY3MKCjIwMTctMTItMDIgMTU6MjQ6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2Jhc2UuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvbWVzb24uYnVpbGQ6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL21lc29uLmJ1aWxkOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGFnZ3JlZ2F0b3I6IGhvb2sgdXAgdG8gYnVpbGQgc3lzdGVtCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzkwMTAKCjIwMTctMTItMDIgMTU6MTI6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJICBNb3ZlIEdzdEFnZ3JlZ2F0b3IgZnJvbSAtYmFkIHRvIGNvcmUKCSAgTWVyZ2UgYnJhbmNoICdhZ2dyZWdhdG9yLW1vdmUnCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzkwMTAKCjIwMTctMTEtMDYgMjE6MDc6NTEgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXVAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBSZW1vdmUga2xhc3MtPnNpbmtwYWRzX3R5cGUKCSAgVGhpcyBwb3NlZCBwcm9ibGVtcyBmb3IgdGhlIHB5dGhvbiBiaW5kaW5ncyAoYW5kIHBvc3NpYmx5IG90aGVycykuCgkgIEluc3RlYWQsIHN1YmNsYXNzZXMgbm93IHVzZSBhZGRfcGFkX3RlbXBsYXRlX3dpdGhfZ3R5cGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODk5ODYKCjIwMTctMTEtMDIgMTg6MzI6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogYWRkIGRvYyBibHVyYiBmb3IgZ3N0X2FnZ3JlZ2F0b3JfcGFkX2lzX2VvcygpCgoyMDE3LTExLTAyIDE2OjA1OjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IGFsc28gcmVtb3ZlIG5vdy11bnVzZWQgUGFkRm9yZWFjaEZ1bmMgZGVjbGFyYXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NTY3OQoKMjAxNy0wOC0wMiAxMjowODoyNiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogUmVtb3ZlIHBhZCBpdGVyYXRvciBmdW5jdGlvbgoJICBVc2UgbmV3IGdzdF9lbGVtZW50X2ZvcmVhY2hfc2lua19wYWQoKSBmcm9tIGNvcmUgaW5zdGVhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NTY3OQoKMjAxNy0xMS0wMiAxMjo0NjoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiB1c2UgbmV3IGdzdF9lbGVtZW50X2ZvcmVhY2hfc2lua19wYWQoKQoJICBJbnN0ZWFkIG9mIGdzdF9hZ2dyZWdhdG9yX2l0ZXJhdGVfc2lua3BhZHMoKSB3aGljaCB3aWxsCgkgIHNvb24gYmUgcmVtb3ZlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NTY3OQoKMjAxNy0xMS0wMSAxNToxODowOCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBhZGQgbW9yZSBjb21tZW50cwoKMjAxNy0xMC0yMyAxMTo1MjozOCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWdncmVnYXRvci5jOgoJICB0ZXN0czogY29tbWVudCBhbmQgbG9nZ2luZyBjbGVhbnVwcyBmb3IgYXVkaW9taXhlciBhbmQgYWdncmVnYXRvcgoJICBSZW1vdmUgc29tZSByZWZlcmVuY2VzIHRvICdjb2xsZWN0cGFkcycuIExvZ3MgcGFkcyB0aHJvdWdoIHRoZSBvYmplY3QgdmFyaWFudHMuCgkgIEFkZCBzb21lIG1vcmUgY29tbWVudHMuIFJlbW92ZSBhIGxlZnQgb3ZlciBjb21tZW50LgoKMjAxNy0xMC0yMiAxOTo0MzoxNyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBmaXggdHlwZSBmb3IgbGF0ZW5jeSBwcm9wZXJ0eSAoaW50NjQgLT4gR1N0Q2xvY2tUaW1lKQoJICBUaGUgdmFsdWUgaXMgdXNlZCBhcyBHc3RDbG9ja1RpZW0gaW4gdGhlIGNvZGUuIEFkYXB0IHRoZSBoYWNrXkheSF5IXkhjb2RlCgkgIGluIGxpdmUtYWRkZXIuCgoyMDE3LTA3LTEzIDE5OjAzOjE5IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IERvbid0IHRha2UgZmx1c2ggbG9jayBmcm9tIG91dHB1dCB0aHJlYWQKCSAgSW5zdGVhZCBqdXN0IHRha2UgaXQgaW4gdGhlIGNoYWluIGZ1bmN0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg0OTExCgoyMDE3LTA3LTEzIDE4OjM4OjM0IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IERvbid0IGJsb2NrIGlmIGFkZGluZyB0byB0aGUgdGFpbCBvZiB0aGUgcXVldWUKCSAgSWYgd2UncmUgYWRkaW5nIHRvIHRoZSB0YWlsIG9mIHRoZSBxdWV1ZSwgaXQncyBiZWNhdXNlIHdlJ3JlIGNvbnZlcnRpbmcKCSAgYSBnYXAgZXZlbnQsIHNvIGRvbid0IGJsb2NrIHRoZXJlIGl0IG1lYW5zIHdlJ3JlIGNhbGxpbmcgZnJvbSB0aGUgb3V0cHV0CgkgIHRocmVhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NDkxMQoKMjAxNy0xMC0xNyAwODowMzowMiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiByZXZpZXcgY29kZSByZWxhdGVkIHRvIHRpbWUgbGV2ZWwKCSAgQWRkIGEgY29tbWVudCBmb3Igd2hlbiB0aGUgc3RhdGUgbWF0dGVycy4gVXNlIGEgbG9jYWwgdmFyIGZvciBwcml2IGluCgkgIHVwZGF0ZV90aW1lX2xldmVsKCkgdG8gaW1wcm92ZSByZWFkYWJpbGl0eS4gTW92ZSB0aGUgb3VyX2xhdGVuY3kgbG9jYWwKCSAgdmFyIGJlbG93IHRoZSBxdWVyeSByZXN1bHRzIGNoZWNrcy4KCjIwMTctMTAtMTcgMDc6NTE6NTEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogaW5pdCBsYXRlbmN5IHZhbHVlcyB3aXRoIDAgaW5zdGVhZCBvZiBGQUxTRQoKMjAxNy0xMC0xNSAyMDo0NjowOSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBjb2RlIGNsZWFudXAgZm9yIGV2ZW50IGFuZCBxdWVyeSBmdW5jCgkgIE9ubHkgbG9vayB1cCBrbGFzcyBmb3Igbm9uIHNlcmlhbGl6ZWQgZXZlbnRzL3F1ZXJpZXMuIEZvciBldmVudHMgcmVtb3ZlCgkgIHN1cGVyZmx1b3VzIGFzc2lnbm1lbnQgZm9yIHRoZSByZXR1cm4gdmFsdWUgaW4gdGhlIGZsdXNoaW5nIGNhc2UuCgoyMDE3LTEwLTE1IDE3OjQ2OjQ1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IHNpbXBsaWZ5IHBhZF9ldmVudF9mdW5jIGZvciBGTFVTSF9TVE9QIGV2ZW50cwoJICBXZSB3YW50IHRvIHNraXAgc2VyaWFsaXphdGlvbiBmb3IgRkxVU0hfU1RPUCBldmVudHMgKGFwcGFyZW50bHkpLiBXZSBjYW4KCSAgc2ltcGxpZnkgdGhlIGNvZGUgdG8gYWRkIGl0IHRvIHRoZSB0b3AtbGV2ZWwgY29uZGl0aW9ucy4gVGhlcmUgd2FzIG5vdGhpbmcKCSAgZG9uZSBpbiB0aGUgZmlyc3QgY29kZSBwYXRoIGlmIHRoZSBldmVudCB3YXMgRkxVU0hfU1RPUC4KCjIwMTctMTAtMTUgMTY6NTc6MTMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogZHJvcCBzcGVjaWFsIGNhc2luZyBmb3IgZW9zCgkgIEp1c3QgcXVldWUgaXQgbGlrZSBhbnkgb3RoZXIgc2VyaWFsaXplZCBldmVudC4gVGhpcyB3YXkgd2UgZG9uJ3QgbmVlZCB0bwoJICBjaGVjayBpZiB0aGVyZSBzdGlsbCBhcmUgYnVmZmVycyBpbiB0aGUgcXVldWUuCgkgIFZhbGlkYXRlZCB3aXRoIHRoZSB0ZXN0cyBhbmQgZ3N0LWxhdW5jaC0xLjAgcGlwZWxpbmVzLgoKMjAxNy0xMC0xNSAxNjo1MToyMSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBhZGQgYSBkb2MtYmxvYiBmb3IgdGhlIGV2ZW50X2Z1bmMKCjIwMTctMTAtMTUgMTY6NDg6MjEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogcmVuYW1lIGEgbG9jYWwgdmFyaWFibGUKCSAgVGhlIHZhcmlhYmxlIHRyYWNrcyB3aGV0ZXIgdGhlIHF1ZXVlIGlzIG5vdCBlbXB0eSwgYnV0IG51bV9idWZmZXJzPT0wLiBUaGF0CgkgIG1lYW5zIHdlIGhhdmUgZXZlbnRzIG9yIHF1ZXJpZXMgdG8gcHJvY2Vzcy4gUmVuYW1lIGFjY29yZGluZ2x5LgoKMjAxNy0xMC0xNSAxMjoxNzo0MiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiByZW1vdmUgY29tbWVudGVkIGNvZGUKCSAgVGhlIFNFR01FTlRfRE9ORSBldmVudCBkb2VzIG5vdCByZXF1aXJlIGFueSBzcGVjaWFsIHRyZWF0bWVudC4gVGhpcyBpcwoJICBjb21tZW50ZWQgb3V0IGluIDZlZmMxMDZhNjcuCgoyMDE3LTEwLTE1IDEyOjE0OjI4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IG1vdmUgdGhlIGNvbW1lbnQgZm9yIHRoZSBsb2NrcyB0byB0aGUgbG9jayBtYWNyb3MKCSAgTG9va3MgbGlrZSBzb21lIGNvZGUgd2FzIGluc2VydGVkIGFmdGVyd2FyZHMuCgoyMDE3LTEwLTE1IDEwOjQ0OjQ0ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGltcHJvdmUgc2VjdGlvbiBkb2NzCgkgIE1lbnRpb24gaG93IGRhdGEgZW5kcyB1cCBpbiB0aGUgcXVldWVzLiBEb2N1bWVudCB0aGUgcmVsYXRpb24gb2YgdGhlIHBhZAoJICBmdW5jdGlvbnMgYW5kIHRoZSBjbGFzcyB2bWV0aG9kcyB0byBnZXQgZXZlbnRzIGFuZCBxdWVyaWVzLgoKMjAxNy0xMC0xNCAxODoxODo0NCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBhZGQgdHdvIG1vcmUgdGVzdHMgZm9yIGEgc2VxdWVuY2Ugb2YgZGF0YQoJICBUaGlzIHZlcmlmaWVzIHRoYXQgd2UgaGFuZGxlIGV2ZW50cyBhbmQgcXVlcmllcyBhdCB0aGUgaGVhZCBvZiB0aGUgcXVldWUgYW5kCgkgIHRoZW4gYnVmZmVycy4KCjIwMTctMTAtMTQgMTM6MjY6MDIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogcmVmYWN0b3IgdGhlIHRlc3QgaGVscGVyCgkgIE1ha2UgdGhlIHRlc3QgaGVscGVycyB1c2UgYSBxdWV1ZS4gVGhpcyBsZXRzIHVzIGFsc28gdGVzdCBzZXF1ZW5jZXMgb2YgZXZlbnRzLAoJICBxdWVyaWVzIGFuZCBkYXRhLgoKMjAxNy0xMC0xNCAxMjowODoxOSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiB0ZXN0IGNsZWFudXAKCSAgUmVtb3ZlIGdzdF9pbml0KCkgZnJvbSBhIGZldyB0ZXN0cy4gVXNlIF9PQkpFQ1QgdmFyaWFudHMgaW4gbG9nZ2luZy4gUmVtb3ZlCgkgIGFyYml0cmFyeSBleHRyYSBibGFuayBsaW5lcy4gTWFrZSBwdXNoX2V2ZW50KCkgbW9yZSBsaWtlIHB1c2hfYnVmZmVyKCkgLSBzZXQKCSAgdGhlIGV2ZW50IHRvIE5VTEwgYW5kIGFkZCBjbGVhbnVwIHRvIF9jaGFpbl9kYXRhX2NsZWFyKCkuCgoyMDE3LTEwLTAzIDEyOjM2OjEwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGNsZWFudXAgZXZlbnQgZm9yd2FyZGluZwoJICBEb24ndCBjb3B5IHRoZSB3aG9sZSBldmVudCBzdHJ1Y3QuIFNldCB0aGUgaW5wdXQgcGFyYW1zIHdoZW4gd2UgY2FsbCB0aGUKCSAgZm9yd2FyZGluZyBoZWxwZXIuIEluaXRpYWxpemUgdGhlIGludGVybmFsIGZpZWxkcyBhbmQgcmV0dXJuIHZhbHVlcyBpbiB0aGUKCSAgaGVscGVyLgoKMjAxNy0xMC0wMyAxMjowODo0MiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBzaW1wbGlmeSBzcmNfZXZlbnQKCSAgQXZvaWQgZXh0cmEgcmVmL3VucmVmLCB3ZSBoYXZlIGEgcmVmIGFuZCBkb19zZWVrIHVucmVmcy4gSnVzdCByZXR1cm4gdGhlIHJlc3VsdAoJICBhcyB3ZSBoYXZlLiBUaGlzIGxldHMgdXMgcmVtb3ZlIHRoZSBsb2NhbCB2YXIgcGx1cyB0aGUgbGFiZWwuCgoyMDE3LTA5LTE3IDEyOjM3OjAzIC0wNzAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IHJlZ2lzdGVyIGZ1bmMgZm9yIGRvX2V2ZW50c19hbmRfcXVlcmllcwoJICBUaGlzIGZpeGVzIGxvZ2dpbmcgdGhlIGZ1bmMgcHRyIGZyb20gX2l0ZXJhdGVfc2lua3BhZHMoKS4KCjIwMTctMDktMTcgMTI6MzA6MzcgLTA3MDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogb25seSBzZXQgY2xpcHBlZF9idWZmZXIgdG8gTlVMTCBpZiBuZWVkZWQKCjIwMTctMDktMTcgMTI6MjU6MzcgLTA3MDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogcmVuYW1lIGNoZWNrX2V2ZW50cwoJICBUaGlzIGZ1bmN0aW9uIGFsc28gaGFuZGxlcyBxdWVyaWVzLiBVcGRhdGUgdGhlIGNvZGUgdG8gbG9vcCB1bnRpbCBhbGwgZXZlbnRzIGFuZAoJICBxdWV1cmllcyBhcmUgaGFuZGxlZC4KCjIwMTctMDktMTcgMTI6MjQ6NTQgLTA3MDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogYWRkIGEgZmV3IG1vcmUgY29tbWVudHMgdG8gUGFkUHJpdmF0ZSBzdHJ1Y3QKCjIwMTctMDktMTcgMTE6Mzk6MTIgLTA3MDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogcmVuYW1lIGJ1ZmZlcnMgZmllbGQgdG8gZGF0YQoJICBUaGUgcXVldWUgc3RvcmVzIGJ1ZmZlcnMsIGV2ZW50cyBhbmQgcXVlcmllcy4KCjIwMTctMDktMTcgMTA6MTg6NTYgLTA3MDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IGRvY3VtZW50YWlvbiBmaXhlcwoJICBGaXggdHlwb3MgYW5kIHJlbW92ZSBwYXJhbXMgZG9jcywgd2hlcmUgdGhlIHBhcmFtIHdhcyBtb3ZlZC4KCjIwMTctMDktMDUgMTQ6MjY6NTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FnZ3JlZ2F0b3IuYzoKCSAgY2hlY2s6IEZpeCB1c2FnZSBvZiBkdWFsIHByb2JlcwoJICBVc2luZyB0d28gKG9yIG1vcmUpIHByb2JlcyBvbiB0aGUgc2FtZSBwYWQgd2hlcmUgb25lIG9mIHRoZSBwcm9iZQoJICByZXR1cm5zIEhBTkRMRUQgb3IgRFJPUCBpcyB0cmlja3kgc2luY2UgdGhlIG90aGVyIHByb2JlcyBtaWdodAoJICBub3QgYmUgY2FsbGVkLgoJICBJbnN0ZWFkIHVzZSByZWd1bGFyIHByb2JlcyBhbmQgYSBwcm9wZXIgcGFkICh0aGUgc2lua3BhZCBhbHJlYWR5IGV4aXN0ZWQsCgkgIGl0IG9ubHkgcmVxdWlyZWQgdG8gYmUgYWN0aXZhdGVkIGFuZCBoYXZlIGEgZHVtbXkgY2hhaW4gZnVuY3Rpb24gZm9yCgkgIHRoZSBldmVudHMvYnVmZmVycyB0byBiZSByZWNlaXZlZC9oYW5kbGVkIHByb3Blcmx5KQoKMjAxNy0wNy0zMCAxMjoxNzo1NyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBsb2cgYWxsIGV2ZW50cwoJICBXZSBhbHJlYWR5IGxvZyBhIGZldyBldmVudHMgZXhwbGljaXRseSwganVzdCBsb2cgdGhlbSBhbGwgd2l0aCBtb3JlIGRldGFpbC4KCjIwMTctMDctMjkgMTY6NTQ6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogZml4IGhlYWRlciBmb3JtYXR0aW5nCgoyMDE3LTA3LTI0IDE4OjM4OjU3ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFJlbW92ZSB0aGUgR0FQIGV2ZW50IGZyb20gdGhlIHF1ZXVlIGJlZm9yZSBxdWV1ZWluZyB1cCB0aGUgR0FQIGJ1ZmZlcgoJICBPdGhlcndpc2UgY2hlY2tfZXZlbnRzKCkgd2lsbCBub3QgcmVtb3ZlIHRoZSBHQVAgZXZlbnQgKGFzIHRoZSBxdWV1ZQoJICB0YWlsIGlzIG5vdCB0aGUgZXZlbnQgYW55bW9yZSBidXQgdGhlIEdBUCBidWZmZXIpLCB0aGVuIHRoZSBHQVAgYnVmZmVyCgkgIGlzIGhhbmRsZWQsIHRoZW4gdGhlIEdBUCBldmVudCBpcyBoYW5kbGVkIGFnYWluLCAuLi4gZm9yZXZlci4KCjIwMTctMDctMTggMDA6MzA6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogbWFyayBzeW1ib2xzIGV4cGxpY2l0bHkgZm9yIGV4cG9ydCB3aXRoIEdTVF9FWFBPUlQKCjIwMTctMDctMTMgMjI6MDA6NTggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogcmVtb3ZlIGR1cGxpY2F0ZWQgY29kZSBmcmFnbWVudAoJICBUaGlzIGNvZGUgYWxyZWFkeSBydW5zIGFib3ZlIHdoZW4gKGV2ZW50IHx8IHF1ZXJ5KS4KCjIwMTctMDctMTMgMjE6NTU6NTUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogY29kZSBjbGVhbnVwcwoJICBGaXggY29tbWVudCB0eXBvcywgc29tZSBjb3B5J24ncGFzdGUgaW4gbG9nZ2luZy4gQWRkIG1vcmUgZG9jIGNvbW1lbnRzLgoKMjAxNy0wNC0xMyAyMjoxMTo1NSArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IEludmFsaWRhdGUgcGFkJ3MgdGFpbCBwb3NpdGlvbiAuLi4KCSAgd2hlbiBkZXF1ZXVpbmcgYSBzZWdtZW50IGV2ZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg0NTkzCgoyMDE3LTA3LTAxIDIwOjIzOjI1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGZpeCAiJ2FnZ2NsYXNzJyBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMgZnVuY3Rpb24iCgoyMDE3LTA1LTIzIDAwOjUzOjU3ICswMjAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFByb2Nlc3Mgc2VyaWFsaXplZCBxdWVyaWVzIHRocm91Z2ggdGhlIHF1ZXVlCgkgIFRoaXMgZW5zdXJlcyB0aGF0IHRoZXkgcmVhbGx5IGdldCBwcm9jZXNzZWQgaW4gb3JkZXIgd2l0aAoJICBidWZmZXJzLiBKdXN0IHdhaXRpbmcgZm9yIHRoZSBxdWV1ZSB0byBiZSBlbXB0eSBpcyBzb21ldGltZXMgbm90CgkgIGVub3VnaCBhcyB0aGUgYnVmZmVycyBhcmUgZHJvcHBlZCBmcm9tIHRoZSBwYWQgYmVmb3JlIHRoZSByZXN1bHQgaXMKCSAgcHVzaGVkIHRvIHRoZSBuZXh0IGVsZW1lbnQsIHNvbWV0aW1lcyByZXN1bHRpbmcgaW4gc3VycHJpc2luZwoJICByZS1vcmRlcmluZy4KCjIwMTctMDUtMjMgMDA6NTM6MjMgKzAyMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogU2V0IGZsb3cgdG8gRkxVU0hJTkcgb24gcGFkIHN0b3AKCSAgRml4ZXMgYSByYXJlIHJhY2Ugd2hlcmUgdGhlIHBhZCBpcyBiZWluZyBzdG9wcGVkIHdoaWxlIGRvaW5nIGEgcXVlcnkuCgoyMDE2LTExLTE4IDE0OjQ0OjE2IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFJlcXVlc3QgcGFkIHRlbXBsYXRlcyB3aGljaCBhcmUgbm90IHJlcXVlc3QgcGFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODI5MjAKCjIwMTYtMTEtMTggMTQ6NDE6NTQgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogRG9uJ3QgcmVzdHJpY3Qgc2luayBwYWQgbmFtZXMKCSAgU2luayBwYWRzIGNvdWxkIGhhdmUgb3RoZXIgbmFtZXMgdGhhbiBzaW5rXyV1CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODI5MjAKCjIwMTctMDUtMjEgMTU6MTk6MTcgKzAyMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IEltcGxlbWVudCBwcm9wb3NlIGFsbG9jYXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MjkxOAoKMjAxNy0wNS0yMSAxNDozNDoxMyArMDIwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBDaGVjayBmb3IgdGhlIHJlc3VsdCBvZiBjYXBzIGV2ZW50cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgyOTE4CgoyMDE3LTA1LTIxIDE0OjI4OjAwICswMjAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IENhcHMgZXZlbnQgYWx3YXlzIGdvZXMgdG8gdGhlIGFnZ3JlZ2F0ZSB0aHJlYWQKCSAgU28gbm8gbmVlZCB0byBjaGVjayBpdCBoZXJlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgyOTE4CgoyMDE3LTA1LTIwIDE2OjU4OjU0ICswMjAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBBZGQgZG93bnN0cmVhbSBhbGxvY2F0aW9uIHF1ZXJ5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY1MjkKCjIwMTctMDUtMjAgMTU6NTY6MTYgKzAyMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogUmVtb3ZlIHVudXNlZCBHU1RfRkxPV19OT1RfSEFORExFRAoKMjAxNy0wNS0yMCAxNDoyNDo1NyArMDIwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBhZGQgc2ltcGxlIHN1cHBvcnQgZm9yIGNhcHMgaGFuZGxpbmcKCSAgTW9kZWxsZWQgb2ZmIHRoZSB2aWRlb2FnZ3JlZ2F0b3IgY2FwcyBoYW5kbGluZyBhcyB0aGF0IHNlZW1zIHRoZSBtb3N0CgkgIG1hdHVyZSBhZ2dyZWd0b3ItdXNpbmcgaW1wbGVtZW50YXRpb24gdGhhdCBoYXMgY2FwcyBoYW5kbGluZyB0aGVyZSBpcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NjkzMQoKMjAxNy0wNS0yMCAxMzoxMDo1MyArMDIwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFJlc2V0IHVwc3RyZWFtIGxhdGVuY3kgb24gZmlyc3QgYnVmZmVyCgkgIEluIHRoZSBjYXNlIGFuIGFnZ3JlZ2F0b3IgaXMgY3JlYXRlZCBhbmQgcGFkcyBhcmUgcmVxdWVzdGVkIGJ1dCBvbmx5CgkgIGxpbmtlZCBsYXRlciwgd2UgZW5kIHVwIG5ldmVyIHVwZGF0aW5nIHRoZSB1cHN0cmVhbSBsYXRlbmN5LgoJICBUaGlzIHdhcyBiZWNhdXNlIGxhdGVuY3kgcXVlcmllcyBvbiBwYWRzIHRoYXQgYXJlIG5vdCBsaW5rZWQgc3VjY2VlZCwKCSAgc28gd2UgbmV2ZXIgZGlkIGEgbmV3IHF1ZXJ5IG9uY2UgYSBsaXZlIHNvdXJjZSBoYXMgYmVlbiBsaW5rZWQsIHNvIHRoZQoJICB0aHJlYWQgd2FzIG5ldmVyIHN0YXJ0ZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTc1NDgKCjIwMTYtMDUtMTQgMTU6NTI6MzcgKzAyMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogQWx3YXlzIGhhbmRsZSBzeW5jJ2VkIGV2ZW50cyBvbiBvdXRwdXQgdGhyZWFkCgkgIEhhdmluZyBhbGwgc3luY2hyb25pemVkIGV2ZW50cyBhbHdheXMgYmUgaGFuZGxlZCBvbiB0aGUgb3V0cHV0CgkgIHRocmVhZCBzaG91bGQgbWFrZSBzeW5jaHJvbml6YXRpb24gZWFzaWVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgxNjczCgoyMDE2LTA3LTA2IDE2OjM5OjE3IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBEZWxheSBjbGlwcGluZyB0byBvdXRwdXQgdGhyZWFkCgkgIFRoaXMgaXMgcmVxdWlyZWQgYmVjYXVzZSB0aGUgc3luY2hyb25pemVkIGV2ZW50cyBsaWtlIGNhcHMgb3Igc2VnbWVudHMKCSAgbWF5IG9ubHkgYmUgcHJvY2Vzc2VkIG9uIHRoZSBvdXRwdXQgdGhyZWFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgxNjczCgoyMDE2LTA3LTA3IDE2OjEzOjU3IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IE1ha2UgcGFkIGVvcyBhcyBzb29uIGFzIGFsbCBidWZmZXJzIGFyZSBwcm9jZXNzZWQsIGRvbnQgd2F5IGZvciBldmVudHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MTY3MwoKMjAxNi0wNy0wNyAxMTo0Nzo0MCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBPbmx5IGNvdW50IGJ1ZmZlcnMgd2hlbiBkZWNsYXJpbmcgcXVldWUgZnVsbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgxNjczCgoyMDE2LTA3LTA2IDE2OjQxOjQ0IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBTaW1wbGlmeSBjbGlwIGZ1bmN0aW9uCgkgIFRoZSByZXR1cm4gdmFsdWUgd2FzIGlnbm9yZWQgYW55d2F5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODE2NzMKCjIwMTYtMDUtMTUgMTY6MDQ6NTggKzAzMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogT25seSBkZWNsYXJlIGZpcnN0IGJ1ZmZlciBvbiBhY3R1YWwgYnVmZmVyCgkgIFRoZSBmdW5jdGlvbiBuZWVkcyB0byBiZSB1bmxvY2tlZCBpZiBhbnkgZGF0YSBpcyByZWNlaXZlZCwgYnV0IG9ubHkKCSAgZW5kIHRoZSBmaXJzdCBidWZmZXIgcHJvY2Vzc2luZyBvbiBhbiBhY3R1YWwgYnVmZmVyLCBzeW5jaHJvbml6ZWQgZXZlbnRzCgkgIGRvbid0IG1hdHRlciBvbiB0aGUgZmlyc3QgYnVmZmVyIHByb2Nlc3NpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODE2NzMKCjIwMTctMDUtMDkgMjA6MjA6MDcgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogU2V0IGluaXRpYWwgcG9zaXRpb24gb24gZmlyc3QgYnVmZmVyCgkgIFNldCB0aGUgaW5pdGlhbCBwb3NpdGlvbiBvbiB0aGUgZmlyc3QgYnVmZmVyLCBvdGhlcndpc2UgdGhlIHF1ZXVlCgkgIHdpbGwgZ3JvdyB3aXRob3V0IGxpbWl0cyBiZWZvcmUgdGhlIG91dHB1dCB0aHJlYWQgaXMgc3RhcnRlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MTY3MwoKMjAxNy0wNS0wOSAyMDowNjoyOSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBSZXNldCB0aGUgcGFkJ3MgZmlyc3QgYnVmZmVyIGZsYWcgd2l0aCB0aGUgcmVzdAoJICBUaGVyZSBpcyBub3QgcmVhc29uIHRvIGhhdmUgc2VwYXJhdGUgY29kZSB0byByZXNldCB0aGlzIG9uZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MTY3MwoKMjAxNy0wNS0wOSAyMDowNTo1NSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBSZXNldCBwYWQgb24gaW5pdAoJICBGYWN0b3Igb3V0IHRoZSBwYWQgcmVzZXQgY29kZSBmcm9tIHRoZSBmbHVzaGluZyBhbmQgdXNlIGl0IG9uIGluaXQgYXMgd2VsbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgxNjczCgoyMDE3LTA1LTA5IDIwOjEzOjU4IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IEZpeCBpbmRlbnRhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgxNjczCgoyMDE3LTAzLTA4IDE1OjAxOjEzIC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBkb2NzOiBQb3J0IGFsbCBkb2NzdHJpbmcgdG8gZ3RrLWRvYyBtYXJrZG93bgoKMjAxNy0wNC0xMiAxMjowNjo1MiAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogTWFrZSBpbnN0YW5jZSB2YXIgbmFtZSBtYXRjaCAgYmV0d2VlbiAuYyBhbmQgLmgKCSAgTWFraW5nIEdJIGhhcHB5CgoyMDE3LTA0LTA3IDEwOjE5OjQzICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBnc3RhZ2dyZWdhdG9yOiBmaXggZXZlbnQgdXNlIGFmdGVyIGZyZWUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MTAxNwoKMjAxNi0wOS0wNiAxNjowNTo1MyAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogVXNlIHRoZSBldmVudF9mdWxsIGZ1bmN0aW9uIGZvciBHc3RBZ2dyZWdhdG9yUGFkcwoJICBBbGxvd2luZyB1cyB0byB0ZWxsIEdzdFBhZCB3aHkgd2UgYXJlIGZhaWxpbmcgYW4gZXZlbnQsIHdoaWNoIG1pZ2h0CgkgIGJlIGJlY2F1c2Ugd2UgYXJlICdmbHVzaGluZycgZXZlbiBpZiB0aGUgc2lua3BhZCBpcyBub3QgaW4gZmx1c2ggc3RhdGUKCSAgYXQgdGhhdCBwb2ludC4KCjIwMTYtMDUtMjUgMTM6Mzg6NDcgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBSZXZlcnQgImFnZ3JlZ2F0b3I6IFN0YXJ0IHRoZSB0YXNrIHdoZW4gbGlua2VkIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDMwMjU4MGMzODE1MTM2ZDI5NDc5YzNhOGNhZTYxMWQ2ZTJmZjM3MDkuCgoyMDE2LTA0LTEzIDE2OjMwOjI4IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogU3RhcnQgdGhlIHRhc2sgd2hlbiBsaW5rZWQKCSAgVW50aWwgbm93IHdlIHdvdWxkIHN0YXJ0IHRoZSB0YXNrIHdoZW4gdGhlIHBhZCBpcyBhY3RpdmF0ZWQuIFBhcnQgb2YgdGhlCgkgIGFjdGl2aWF0aW9uIGNvbmNpc3Qgb2YgdGVzdGluZyBpZiB0aGUgcGlwZWxpbmUgaXMgbGl2ZSBvciBub3QuCgkgIFVuZm9ydHVuYXRseSwgdGhpcyBpcyBvZnRlbiB0b28gc29vbiwgYXMgaXQncyBsaWtlbHkgdGhhdCB0aGUgcGFkIGdldAoJICBhY3RpdmF0ZWQgYmVmb3JlIGl0IGlzIGZ1bGx5IGxpbmtlZCBpbiBkeW5hbWljIHBpcGVsaW5lLgoJICBJbnN0ZWFkLCBzdGFydCB0aGUgdGFzayB3aGVuIHRoZSBmaXJzdCBzZXJpYWxpemVkIGV2ZW50IGFycml2ZS4gVGhpcyBpcwoJICBhIHNhZmUgbW9tZW50IGFzIHdlIGtub3cgdGhhdCB0aGUgdXBzdHJlYW0gY2hhaW4gaXMgY29tcGxldGUgYW5kIGp1c3QKCSAgbGlrZSB0aGUgcGFkIGFjdGl2YXRpb24sIHRoZSBwYWRzIGFyZSBsb2NrZWQsIGhlbmNlIGNhbm5vdCBjaGFuZ2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTc1NDgKCjIwMTYtMDQtMjIgMTA6MTU6MzkgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBDaGVjayBhbGwgcGFkcyBmb3IgZGF0YSB3aGVuIGxpdmUKCSAgV2hlbiBsaXZlLCB3ZSBzdGlsbCBuZWVkIHRvIGluc3BlY3QgYWxsIHBhZHMgcXVldWUgaW4gb3JkZXIgdG8gZGV0ZXJtaW4KCSAgaWYgd2UgaGF2ZSByZWNlaXZlZCB0aGUgZmlyc3QgYnVmZmVyIG9yIG5vdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTQzMQoKMjAxNi0wNC0xNSAxNjo1MToxNyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IEZpeCBsb2NraW5nIHdoZW4gdXNpbmcgdGhlIGNsb2NrCgkgIFRoaXMgZml4ZXMgYSByYWNlIHdoZXJlIHdlIGNoZWNrIGlmIHRoZXJlIGlzIGEgY2xvY2ssIHRoZW4gaXQgZ2V0CgkgIHJlbW92ZWQgYW5kIHdlIGVuZHVwIGNhbGxpbmcgZ3N0X2Nsb2NrX25ld19zaW5nbGVfc2hvdF9pZCgpIHdpdGggYSBOVUxMCgkgIHBvaW50ZXIgaW5zdGVhZCBvZiBhIHZhbGlkIGNsb2NrIGFuZCBhbHNvIGNhbGxpbmcgZ3N0X29iamVjdF91bnJlZigpCgkgIHdpdGggYSBOVUxMIHBvaW50ZXIgbGF0ZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTc1NDgKCjIwMTYtMDQtMDMgMTc6NTY6MDYgKzAyMDAgIEF1csOpbGllbiBaYW5lbGxpIDxhdXJlbGllbi56YW5lbGxpQGRhcmtvc3BoZXJlLmZyPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IHJlbW92ZSBkdXBsaWNhdGVkIHRlc3Qgb2YgZmxvd19yZXR1cm4gaW4gcGFkX2NoYWluX2ludGVybmFsCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQ1NDkKCjIwMTYtMDMtMjggMTM6NTI6MDcgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogRml4IGxlYWsgaW4gdW5pdCB0ZXN0CgkgIEdTVF9QQURfUFJPQkVfSEFORExFRCBtZWFucyB0aGF0IHdlIHNob3VsZCd2ZSB1bnJlZmZlZCB0aGUgcHJvYmUgZGF0YSwKCSAgaXQgd2FzIGhhbmRsZWQgYnkgdXMgaW4gb25lIHdheSBvciBhbm90aGVyLgoKMjAxNi0wMy0yNyAxOTowNjo1MCArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IEZpeCBzdHJjbXAgdGVzdCBmb3Igc2luayB0ZW1wbGF0ZQoKMjAxNi0wMy0yNyAxODo0MTozMCArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IERvbid0IHRyeSB0byBiZSB0b28gc21hcnQgd2hpbGUgYWxsb2NhdGluZyBwYWQgbmFtZXMKCSAgUHJldmlvdXNseSwgd2hpbGUgYWxsb2NhdGluZyB0aGUgcGFkIG51bWJlciBmb3IgYSBuZXcgcGFkLCBhZ2dyZWdhdG9yIHdhcwoJICBtYWludGFpbmluZyBhbiBpbnRlcmVzdGluZyByZWxhdGlvbnNoaXAgYmV0d2VlbiB0aGUgcGFkIGNvdW50IGFuZCB0aGUgcGFkCgkgIG51bWJlci4KCSAgSWYgeW91IHJlcXVlc3RlZCBhIHNpbmsgcGFkIGNhbGxlZCAic2lua182IiwgcGFkY291bnQgKHdoaWNoIGlzIGJhZGx5IG5hbWVkIGFuZAoJICBhY3R1YWxseSBtZWFucyBudW1iZXItb2YtcGFkcy1taW51cy1vbmUpIHdvdWxkIGJlIHNldCB0byA2LiBXaGljaCBtZWFucyB0aGF0IGlmCgkgIHlvdSB0aGVuIHJlcXVlc3RlZCBhIHNpbmsgcGFkIGNhbGxlZCAic2lua18wIiwgaXQgd291bGQgYmUgYXNzaWduZWQgdGhlIG5hbWUKCSAgInNpbmtfNiIgYWdhaW4sIHdoaWNoIGZhaWxzIHRoZSBub24tdW5pcXVlbmVzcyB0ZXN0IGluc2lkZSBnc3RlbGVtZW50LmMuCgkgIFRoaXMgY2FuIGJlIGZpeGVkIGJ5IGluc3RlYWQgc2V0dGluZyBwYWRjb3VudCB0byBiZSA3IGluIHRoYXQgY2FzZSwgYnV0IHRoaXMKCSAgYnJlYWtzIG1hbnVhbCBtYW5hZ2VtZW50IG9mIHBhZCBuYW1lcyBieSB0aGUgYXBwbGljYXRpb24gc2luY2UgaXQgdGhlbiBiZWNvbWVzCgkgIGltcG9zc2libGUgdG8gcmVxdWVzdCBhIHBhZCBjYWxsZWQgInNpbmtfMiIuIEluc3RlYWQsIHdlIGZpeCB0aGlzIGJ5IGFsd2F5cwoJICBkaXJlY3RseSB1c2luZyB0aGUgcmVxdWVzdGVkIG5hbWUgYXMgdGhlIHNpbmsgcGFkIG5hbWUuIFVuaXF1ZW5lc3Mgb2YgdGhlIHBhZAoJICBuYW1lIGlzIHRlc3RlZCBzZXBhcmF0ZWx5IGluc2lkZSBnc3RyZWFtZXIgY29yZS4gSWYgbm8gbmFtZSBpcyByZXF1ZXN0ZWQsIHdlIHVzZQoJICB0aGUgbmV4dCBhdmFpbGFibGUgcGFkIG51bWJlci4KCSAgTm90ZSB0aGF0IHRoaXMgaXMgaW1wb3J0YW50IHNpbmNlIHRoZSBzaW5rcGFkIG51bWJlcmluZyBpbiBhZ2dyZWdhdG9yIGlzIG5vdAoJICBtZWFuaW5nbGVzcy4gVmlkZW9hZ2dyZWdhdG9yIHVzZXMgaXQgdG8gZGVjaWRlIHRoZSBaLW9yZGVyIG9mIHZpZGVvIGZyYW1lcy4KCjIwMTYtMDMtMDQgMTU6NTA6MjYgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FnZ3JlZ2F0b3IuYzoKCSAgYmFkOiB1c2UgbmV3IGdzdF9lbGVtZW50X2NsYXNzX2FkZF9zdGF0aWNfcGFkX3RlbXBsYXRlKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzA4MQoKMjAxNS0xMS0wOSAxNjowODozMCArMDkwMCAgSHl1bmp1biBLbyA8enpvb24ua29Ac2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FnZ3JlZ2F0b3IuYzoKCSAgdGVzdHM6YWdncmVnYXRvcjogZml4IHRjIGZhaWx1cmUgYW5kIGNvcnJlY3QgY2hlY2sgdmFsdWUKCSAgRmFpbHVyZSBieSB0aGlzIGNvbW1pdCAyZGZhNTQ4ZjM2NDU4NDQwODJjM2RiNjVkOTZkODcyNTU3MDFiM2FkLCB3aGljaCBpcwoJICB0byBhcHBlbmQgaG9va3MgaW5zdGVhZCBvZiBwcmVwZW5kLgoJICBCZWNhdXNlIG9mIHRoaXMgY2hhbmdlLCBhZ2dyZXRhdGVkX2NiIGlzIG5vdCBjYWxsZWQgYW5kIGxlYWRzIHRvIGZhaWx1cmUuCgkgIEFuZCBjb3JyZWN0IHRvIGNoZWNrIGZsdXNoIHN0b3AgdmFsdWUgaW5zdGVhZCBvZiBmbHVzaCBzdGFydCB2YWx1ZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3ODAxCgoyMDE1LTExLTA1IDEyOjM2OjQ4ICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzYmdAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IHVzZSBHU1RfU1RJTUVfRk9STUFUIGZvciBHc3RDbG9ja1RpbWVEaWZmCgkgIE5vIG5lZWQgdG8gbWFudWFsbHkgaGFuZGxlIG5lZ2F0aXZlIHZhbHVlIG9mIGRlYWRsaW5lLCBHU1RfU1RJTUVfRk9STUFUIGRvZXMKCSAgZXhhY3RseSB0aGlzLgoKMjAxNS0xMS0wMyAxOTowOTozMyAtMDgwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBkb24ndCBjb21wYXJlIHRlbXBsIGluc3RhbmNlIHBvaW50ZXJzCgkgIE9uZSBjYW4gcGFzcyB0aGUgUGFkVGVtcGxhdGUgZnJvbSB0aGUgZWxlbWVudF9jbGFzcyBvciB0aGUgb25lIGZyb20gdGhlIGZhY3RvcnkuCgkgIFdoaWxlIHRoZXkgaGF2ZSB0aGUgc2FtZSBjb250ZW50LCB0aGUgYWRkcmVzc2VzIGFyZSBkaWZmZXJlbnQuCgoyMDE1LTExLTAzIDE0OjQxOjU3IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFNldCB0byBydW5uaW5nIGluIGEgc2luZ2xlIHBsYWNlCgkgIE9ubHkgc2V0IHRvIHJ1bm5pbmcgd2hlbiB0aGUgdGhyZWFkIGlzIGFjdHVhbGx5IHN0YXJ0ZWQuCgoyMDE1LTExLTAzIDE0OjM3OjI2IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IERvY3VtZW50IG1vcmUgbG9ja2luZwoKMjAxNS0xMS0wMiAyMDoxMDozNSAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBIb2xkIG9iamVjdCBsb2NrIHdoaWxlIG1hbmlwdWxhdGluZyB0aGUgc2VnbWVudAoJICBNYWtlIHN1cmUgdGhlIG9iamVjdCBsb2NrIGlzIGhlbGQgd2hlbiBhZ2dyZWdhdG9yLT5zZWdtZW50IGlzCgkgIG1vZGlmaWVkLgoKMjAxNS0xMS0wMiAxOTowNTowMSAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBSZW1vdmUgZGVhZCBjb2RlCgkgIFRoaXMgY29kZSB3aWxsIG5ldmVyIGJlIGNhbGxlZCBhcyBtYXg+PW1pbiBpbiBhbGwgY2FzZXMuIElmIHRoZSB1cHN0cmVhbQoJICBsYXRlbmN5IHF1ZXJ5IHJldHVybmVkIG1pbj5tYXgsIHRoZSBmdW5jdGlvbiBhbHJlYWR5IHJldHVybmVkIGFuZCBhbGwKCSAgdmFsdWVzIHRoYXQgYXJlIGFkZGVkIHRvIHRob3NlIGhhdmUgbWF4Pj0gbWluLgoKMjAxNS0xMC0yMyAxNTo0MjoyNCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogQWRkIGNyZWF0ZV9uZXdfcGFkKCkgdmZ1bmMgdG8gYWxsb3cgc3ViY2xhc3NlcyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBiZWhhdmlvdXIKCSAgTm90IGFsbCBhZ2dyZWdhdG9yIHN1YmNsYXNzZXMgd2lsbCBoYXZlIGEgc2luZ2xlIHBhZCB0ZW1wbGF0ZSBjYWxsZWQgc2lua18ldQoJICBhbmQgbWlnaHQgZG8gc29tZXRoaW5nIHNwZWNpYWwgZGVwZW5kaW5nIG9uIHdoYXQgdGhlIGFwcGxpY2F0aW9uIHJlcXVlc3RzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3MDE4CgoyMDE1LTA5LTMwIDE5OjA1OjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IENvbnZlcnQgR1NUX0VSUk9SX09CSkVDVCgpIGZvciBzZWVrIGV2ZW50cyB0byBHU1RfREVCVUdfT0JKRUNUKCkKCjIwMTUtMDktMzAgMTk6MDM6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogRm9yIHRoZSBzdGFydCB0aW1lIHNlbGVjdGlvbiwgb25seSBzZXQgdGhlIHNlZ21lbnQgcG9zaXRpb24KCSAgc2VnbWVudC50aW1lIGFuZCBzZWdtZW50LnN0YXJ0IGNhbiBzdGF5IHRoZSBzYW1lLCBhbmQgd2VyZSBhbHdheXMgdGhlIHNhbWUKCSAgYmVmb3JlIGFueXdheSBiZWNhdXNlIG9mIGEgbWlzdGFrZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NTYyMwoKMjAxNS0wOC0zMSAxNjoxMjo0MCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBEb24ndCBmb3J3YXJkIFFPUyBldmVudHMgdG8gc2lua3BhZHMgdGhhdCBoYWQgbm8gYnVmZmVyIHlldAoJICBPdGhlcndpc2UgdGhleSB3aWxsIHJlY2VpdmUgYSBRT1MgZXZlbnQgdGhhdCBoYXMgZWFybGllc3RfdGltZT0wIChiZWNhdXNlIHdlCgkgIGNhbid0IGhhdmUgbmVnYXRpdmUgdGltZXN0YW1wcyksIGFuZCBjb25zaWRlciB0aGVpciBidWZmZXIgYXMgdG9vIGxhdGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDM1NgoKMjAxNS0wOS0xNyAxOTo0MjozNCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBLZWVwIGF0IGxlYXN0IHR3byBidWZmZXJzIGluIHRoZSBxdWV1ZSBpbiBsaXZlIG1vZGUKCSAgV2hlbiBpbiBsaXZlIG1vZGUsIHRoZSBxdWV1ZSBuZWVkcyB0byBob2xkIHRoZSBjdXJyZW50bHkgcHJvY2Vzc2VkCgkgIGJ1ZmZlciBhbmQgb25lIG1vcmUgYXQgbGVhc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQ4NTEKCjIwMTUtMDktMTEgMTI6MjE6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogRG9jdW1lbnQgdGhhdCBnZXRfbmV4dF90aW1lKCkgc2hvdWxkIHJldHVybiBydW5uaW5nIHRpbWUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MzE5NgoKMjAxNS0wOC0yOCAyMzowNToyMCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBBbHNvIGlnbm9yZSBzdGFydC10aW1lIG9uIHNlZWsgZnJvbSBnc3RfZWxlbWVudF9zZW5kX2V2ZW50KCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MzgwNgoKMjAxNS0wNy0wMiAxOTozNDo0MyAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWdncmVnYXRvci5jOgoJICB0ZXN0czogQWRkIHRlc3QgZm9yIHNlZWtpbmcgbGl2ZSBwaXBlbGluZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTc2OAoKMjAxNS0wNy0wMiAxOToxOTozMyAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWdncmVnYXRvci5jOgoJICB0ZXN0czogTWFrZSBzb3VyY2UgbGl2ZSB0byByZS1lbmFibGUgYWdncmVnYXRvciB0aW1lb3V0IHRlc3RzCgkgIFRoZSBsaXZlIG1vZGUgaXMgb25seSBlbmFibGVkIGlmIG9uZSBvZiB0aGUgc291cmNlcyBpZiBsaXZlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1NzY4CgoyMDE1LTAzLTA2IDE5OjUwOjA4IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBRdWV1ZSAibGF0ZW5jeSIgYnVmZmVycyBhdCBlYWNoIHNpbmsgcGFkLgoJICBJbiB0aGUgY2FzZSB3aGVyZSB5b3UgaGF2ZSBhIHNvdXJjZSBnaXZpbmcgdGhlIEdzdEFnZ3JlZ2F0b3Igc21hbGxlcgoJICBidWZmZXJzIHRoYW4gaXQgdXNlcywgd2hlbiBpdCByZWFjaGVzIGEgdGltZW91dCwgaXQgd2lsbCBjb25zdW1lIHRoZQoJICBmaXJzdCBidWZmZXIsIHRoZW4gdHJ5IHRvIHJlYWQgYW5vdGhlciBidWZmZXIgZm9yIHRoZSBwYWQuIElmIHRoZQoJICBwcmV2aW91cyBlbGVtZW50IGlzIG5vdCBmYXN0IGVub3VnaCwgaXQgbWF5IGdldCB0aGUgbmV4dCBidWZmZXIgZXZlbgoJICB0aG91Z2ggaXQgbWF5IGJlIHF1ZXVlZCBqdXN0IGJlZm9yZS4gVG8gcHJldmVudCB0aGF0IHJhY2UsIHRoZSBlYXNpZXN0CgkgIHNvbHV0aW9uIGlzIHRvIG1vdmUgdGhlIHF1ZXVlIGluc2lkZSB0aGUgR3N0QWdncmVnYXRvclBhZCBpdHNlbGYuIEl0CgkgIGFsc28gbWVhbnMgdGhhdCB0aGVyZSBpcyBubyBuZWVkIGZvciBzdHJhbmdlIGNvZGUgY2F1c2UgYnkgaW5jcmVhc2luZwoJICB0aGUgbWluIGxhdGVuY3kgd2l0aG91dCBpbmNyZWFzaW5nIHRoZSBtYXggbGF0ZW5jeSBwcm9wb3J0aW9uYWxseS4KCSAgVGhpcyBhbHNvIG1lYW5zIHF1ZXVpbmcgdGhlIHN5bmNocm9uaXplZCBldmVudHMgYW5kIHBvc3NpYmx5IGFjdGluZwoJICBvbiB0aGVtIG9uIHRoZSBzcmMgdGFzay4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTc2OAoKMjAxNS0wNy0yOSAyMDowNzowOSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBEZWZhdWx0IHRvICJ6ZXJvIiBzdGFydCB0aW1lIHNlbGVjdGlvbiBtb2RlIGFzIGRvY3VtZW50ZWQKCjIwMTUtMDctMjkgMjA6MDY6MTEgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogSWdub3JlIHRoZSAiZmlyc3QiIG1vZGUgaWYgdGhlIHNlZ21lbnQgbm90IGEgdGltZSBzZWdtZW50CgoyMDE1LTA2LTE1IDE4OjMwOjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IEFkZCBwcm9wZXJ0eSB0byBzZWxlY3QgaG93IHRvIGRlY2lkZSBvbiBhIHN0YXJ0IHRpbWUKCSAgQmVmb3JlIGFnZ3JlZ2F0b3IgYmFzZWQgZWxlbWVudHMgYWx3YXlzIHN0YXJ0ZWQgYXQgcnVubmluZyB0aW1lIDAsCgkgIG5vdyBpdCdzIHBvc3NpYmxlIHRvIHNlbGVjdCB0aGUgZmlyc3QgaW5wdXQgYnVmZmVyIHJ1bm5pbmcgdGltZSBvcgoJICBleHBsaWNpdGx5IHNldCBhIHN0YXJ0LXRpbWUgdmFsdWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDk5NjYKCjIwMTUtMDctMjggMjE6MTU6NDMgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogUXVlcnkgdGhlIHBlZXIgbGF0ZW5jeSBhZ2FpbiBvbiB0aGUgbmV4dCBvcHBvcnR1bml0eSBhZnRlciBhIHBhZCB3YXMgYWRkZWQgb3IgcmVtb3ZlZAoJICBBZGRpbmcgYSBwYWQgd2lsbCBhZGQgYSBuZXcgdXBzdHJlYW0gdGhhdCBtaWdodCBoYXZlIGEgYmlnZ2VyIG1pbmltdW0gbGF0ZW5jeSwKCSAgc28gd2UgbWlnaHQgaGF2ZSB0byB3YWl0IGxvbmdlci4gT3IgaXQgbWlnaHQgYmUgdGhlIGZpcnN0IGxpdmUgdXBzdHJlYW0sIGluCgkgIHdoaWNoIGNhc2Ugd2Ugd2lsbCBoYXZlIHRvIHN0YXJ0IGRlYWRsaW5lIGJhc2VkIGFnZ3JlZ2F0aW9uLgoJICBSZW1vdmluZyBhIHBhZCB3aWxsIHJlbW92ZSBhIG5ldyB1cHN0cmVhbSB0aGF0IG1pZ2h0IGhhdmUgaGFkIHRoZSBiaWdnZXN0CgkgIGxhdGVuY3ksIHNvIHdlIGNhbiBub3cgc3RvcCB3YWl0aW5nIGEgYml0IGVhcmxpZXIuIE9yIGl0IG1pZ2h0IGJlIHRoZSBsYXN0CgkgIGxpdmUgdXBzdHJlYW0sIGluIHdoaWNoIGNhc2Ugd2UgY2FuIHN0b3AgZGVhZGxpbmUgYmFzZWQgYWdncmVnYXRpb24uCgoyMDE1LTA1LTA2IDEzOjA3OjUyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogYWRkIGEgY29udmVuaWVuY2UgbWFjcm8gdG8gZ2V0IHRoZSBzb3VyY2UgcGFkCgkgIEVhc2llciB0aGFuIGNhc3Rpbmcgb3IgYWNlc3NpbmcgdGhlIHBhcmVudCBldmVyeXdoZXJlCgoyMDE1LTA2LTAxIDE4OjUwOjE0IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IERvY3VtZW50IHRoYXQgdGhlIGxhdGVuY3kgaXMgaW4gbnMKCjIwMTUtMDUtMjggMDA6NTk6MzkgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFB1c2ggRU9TIG9uIGVycm9yIHJldHVybi4KCSAgQmVmb3JlIHNodXR0aW5nIGRvd24gdGhlIHNyY3BhZCB0YXNrIGR1ZSB0byBhCgkgIGRvd25zdHJlYW0gZXJyb3IsIHB1c2ggYW4gRU9TIHRvIGdpdmUgZG93bnN0cmVhbQoJICBhIGNoYW5jZSB0byBzaHV0IGRvd24gc29tZXdoYXQgY2xlYW5seS4KCjIwMTUtMDMtMjkgMTc6NTM6MjMgLTAzMDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBkb2N1bWVudCBnYXAgaGFuZGxpbmcgYmVoYXZpb3IKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjI0OQoKMjAxNS0wMy0yNyAxOTozNjo0MiAtMDMwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGRyb3Agc3RhbGUgd2hpdGUgc3BhY2UgYXQgd2FybmluZwoKMjAxNS0wMy0yNyAxOToyODowNSAtMDMwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9hZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGZpeCB0eXBvIGluIHRlc3Qgc3VpdGUKCjIwMTUtMDMtMjcgMTg6MzI6MjcgLTAzMDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBhZGQgZ2FwIGV2ZW50IGhhbmRsaW5nIHVuaXQgdGVzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2MjQ5CgoyMDE1LTAzLTE3IDIyOjEzOjA2IC0wMzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogaW1wbGVtZW50IGdhcCBoYW5kbGluZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2MjQ5CgoyMDE1LTA0LTAxIDIyOjEwOjExIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFVuaWZ5IGRvd25zdHJlYW0gZmxvdyByZXR1cm4gYW5kIGZsdXNoaW5nCgkgIEFsc28gbWVhbnMgdGhhdCBoYXZpbmcgYSBub24tT0sgZG93bnN0cmVhbSBmbG93IHJldHVybgoJICB3YWtlcyB1cCB0aGUgY2hhaW4gZnVuY3Rpb25zLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3MjIwCgoyMDE1LTA0LTAxIDIxOjQ1OjAxIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IEZsdXNoaW5nIGlzIGFsd2F5cyBpbiBwYWQgbG9jaywgbm8gbmVlZCB0byBhdG9taWNzCgkgIFRoZSB1c2FnZSBvZiBhdG9taWNzIHdhcyBhbHdheXMgZG91YnRmdWwgYXMgaXQgd2FzIHVzZWQgdG8gcmVsZWFzZSBhCgkgIEdDb25kCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDcyMjAKCjIwMTUtMDQtMDEgMjE6Mzg6MTEgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogUmVzZXQgcGVuZGluZ19lb3Mgb24gcGFkIGZsdXNoCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDcyMjAKCjIwMTUtMDQtMDEgMjE6Mzc6MjUgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogVW5pZnkgY29kZSB0byBzZXQgYSBwYWQgZmx1c2hpbmcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzIyMAoKMjAxNS0wMy0wNiAyMToxMjo1MiAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogUXVlcnkgbGF0ZW5jeSBvbiBmaXJzdCBpbmNvbWluZyBidWZmZXIuCgkgIEFuZCBrZWVwIG9uIHF1ZXJ5aW5nIHVwc3RyZWFtIHVudGlsIHdlIGdldCBhIHJlcGx5LgoJICBBbHNvLCB0aGUgX2dldF9sYXRlbmN5X3VubG9ja2VkKCkgbWV0aG9kIHJlcXVpcmVkIGJlaW5nIGNhbGxkCgkgIHdpdGggYSBwcml2YXRlIGxvY2ssIHNvIHJlbW92ZWQgdGhlIF91bmxvY2tlZCgpIHZhcmlhbnQgZnJvbSB0aGUgQVBJLgoJICBBbmQgaXQgbm93IHJldHVybnMgR1NUX0NMT0NLX1RJTUVfTk9ORSB3aGVuIHRoZSBlbGVtZW50IGlzIG5vdCBsaXZlIGFzCgkgIHdlIHRoaW5rIHRoYXQgMCB1cHN0cmVhbSBsYXRlbmN5IGlzIHBvc3NpYmxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1NzY4CgoyMDE1LTAzLTA2IDIxOjEyOjEzIC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IEJlIG1vcmUgYWdncmVzc2l2ZSB3aXRoIGludmFsaWQgcmVwbGllcyB0byBvdXIgbGF0ZW5jeSBxdWVyeQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1NzY4CgoyMDE1LTAzLTA4IDAyOjA0OjExICsxMTAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcnk6IGRvbid0IHJlZGVmaW5lIEdTVF9GTE9XX0NVU1RPTV9TVUNDRVNTCgoyMDE1LTAyLTI3IDAwOjI2OjAwICswNTMwICBBcnVuIFJhZ2hhdmFuIDxnaXRAYXJ1bnJhZ2hhdmFuLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBVc2Ugc3RhbmRhcmQgdXBzdHJlYW0gbGF0ZW5jeSBxdWVyeWluZyBsb2dpYwoJICBUaGUgc2FtZSBmdW5jdGlvbmFsaXR5IGlzIGR1cGxpY2F0ZWQgaW4gdGhlIGRlZmF1bHQgbGF0ZW5jeSBxdWVyeWluZwoJICBub3cuCgoyMDE1LTAyLTE5IDIxOjIxOjU2IC0wNTAwICBPbGl2aWVyIENyZXRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogVXNlIHNyY19sb2NrIHRvIHByb3RlY3QgbGF0ZW5jeSByZWxhdGVkIG1lbWJlcnMKCSAgT25lIGhhcyB0byB1c2UgdGhlIHNyY19sb2NrIGFueXdheSB0byBwcm90ZWN0IHRoZSBtaW4vbWF4L2xpdmUgc28gdGhleQoJICBjYW4gYmUgbm90aWZpZWQgYXRvbWljYWxseSB0byB0aGUgc3JjIHRocmVhZCB0byB3YWtlIGl0IHVwIG9uIGNoYW5nZXMsCgkgIHN1Y2ggYXMgcHJvcGVydHkgY2hhbmdlcy4gU28gbm8gcG9pbnQgaW4gaGF2aW5nIGEgc2Vjb25kIGxvY2suCgkgIEFsc28sIHRoZSBvYmplY3QgbG9jayB3YXMgYmVpbmcgaGVsZCBhY3Jvc3MgYSBjYWxsIHRvCgkgIEdTVF9FTEVNRU5UX1dBUk5JTkcsIGd1YXJhbnRlZWluZyBhIGRlYWRsb2NrLgoKMjAxNS0wMi0xOSAxODo1MzozMiAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBSZW1vdmUgdW50cnVlIGNvbW1lbnQKCjIwMTUtMDItMTkgMTg6MzA6MzUgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogRG9uJ3QgdHJ5IHRvIHB1c2ggdGFncyB3aGlsZSBmbHVzaCBzZWVraW5nCgkgIFRoZSBkb3duc3RyZWFtIHNlZ21lbnQgY291bGQgaGF2ZSBiZWVuIGZsdXNoZWQgYWxyZWFkeSwgc28KCSAgbmVlZCB0byByZS1zZW5kIHRoZSBzZWdtZW50IGV2ZW50IGJlZm9yZSByZS1zZW5kaW5nIHRoZSB0YWdzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQyNjg0CgoyMDE1LTAyLTE5IDExOjA0OjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFVzZSB0aGUgc2lua3BhZHMgaXRlcmF0b3IgZGlyZWN0bHkgdG8gcXVlcnkgdXBzdHJlYW0gbGF0ZW5jaWVzCgkgIFdoaWxlIGdzdF9hZ2dyZWdhdG9yX2l0ZXJhdGVfc2lua3BhZHMoKSBtYWtlcyBzdXJlIHRoYXQgZXZlcnkgcGFkIGlzIG9ubHkKCSAgdmlzaXRlZCBvbmNlLCBldmVuIHdoZW4gdGhlIGl0ZXJhdG9yIGhhcyB0byByZXN5bmMsIHRoaXMgaXMgbm90IGFsbCB3ZSBoYXZlCgkgIHRvIGRvIGZvciBxdWVyeWluZyB0aGUgbGF0ZW5jeS4gV2hlbiB0aGUgaXRlcmF0b3IgcmVzeW5jcyB3ZSBhY3R1YWxseSBoYXZlCgkgIHRvIHF1ZXJ5IGFsbCBwYWRzIGZvciB0aGUgbGF0ZW5jeSBhZ2FpbiBhbmQgZm9yZ2V0IG91ciBwcmV2aW91cyByZXN1bHRzLiBJdAoJICBtaWdodCBoYXZlIGhhcHBlbmVkIHRoYXQgYSBwYWQgd2FzIHJlbW92ZWQsIHdoaWNoIGluZmx1ZW5jZWQgdGhlIHJlc3VsdCBvZgoJICB0aGUgbGF0ZW5jeSBxdWVyeS4KCjIwMTUtMDItMTkgMTA6NTc6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogTW92ZSBnc3RfYWdncmVnYXRvcl9nZXRfbGF0ZW5jeV91bmxvY2tlZCgpIGEgYml0CgkgIEl0IHdhcyBiZXR3ZWVuIGFub3RoZXIgZnVuY3Rpb24gYW5kIGl0cyBoZWxwZXIgZnVuY3Rpb24gYmVmb3JlLCB3aGljaCB3YXMKCSAgY29uZnVzaW5nIHdoZW4gcmVhZGluZyB0aGUgY29kZSBhcyBpdCBoYWQgbm90aGluZyB0byBkbyB3aXRoIHRoZSBvdGhlcgoJICBmdW5jdGlvbnMuCgoyMDE1LTAyLTE5IDAxOjI4OjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IEZhaWwgdGhlIGxhdGVuY3kgcXVlcnkgaWYgb25lIG9mIHRoZSB1cHN0cmVhbSBxdWVyaWVzIGZhaWxzCgoyMDE1LTAyLTE4IDE1OjUzOjUzIC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IERvY3VtZW50IGxvY2tpbmcgb3JkZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjY4NAoKMjAxNS0wMi0xOCAxNToxMToxNCAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBSZW5hbWUgY29uZnVzaW5seSBuYW1lZCBTUkNfU1RSRUFNX0xPQ0sgbWFjcm9zIHRvIFNSQ19MT0NLCgkgIFRoaXMgd2lsbCBtYXRjaCB0aGUgbmFtZSBvZiB0aGUgbG9jayBpdHNlbGYuIEl0IGlzIGFsc28gbm90IGEgc3RyZWFtCgkgIGxvY2sgYXMgaXQgbm90IHJlY3Vyc2l2ZSBhbmQgbm90IGhlbGQgd2hpbGUgcHVzaGluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjY4NAoKMjAxNS0wMi0xOCAxNTowNjowMSAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBSZW5hbWUgY29uZnVzaW5nbHkgbmFtZWQgc3RyZWFtIGxvY2sgdG8gZmx1c2ggbG9jawoJICBUaGlzIGxvY2sgaXMgbm90IHdoYXQgaXMgY29tbW9ubHkga25vd24gYXMgYSAic3RyZWFtIGxvY2siIGluIEdTdHJlbWVyLAoJICBpdCdzIG5vdCByZWN1cnNpdmUgYW5kIGl0J3MgdGFrZW4gZnJvbSB0aGUgbm9uLXNlcmlhbGl6ZWQgRkxVU0hfU1RBUlQgZXZlbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDI2ODQKCjIwMTUtMDItMTggMTU6MDQ6MDQgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogRml4IG1hY3JvIGluZGVuZGF0aW9uCgkgIENoYW5nZXMgbm8gY29kZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQyNjg0CgoyMDE1LTAyLTEzIDIzOjQ1OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGRyb3AgR0FQIGV2ZW50cyB1bnRpbCB3ZSBoYW5kbGUgdGhlbSBwcm9wZXJseQoKMjAxNS0wMi0xMyAxNTo1MzoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogdXNlIG5ldyBnc3RfYWdncmVnYXRvcl9wYWRfZHJvcF9idWZmZXIoKQoKMjAxNS0wMi0xMyAxNTo0OTo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogYWRkIGdzdF9hZ2dyZWdhdG9yX3BhZF9kcm9wX2J1ZmZlcigpCgkgIHN0ZWFsX2J1ZmZlcigpICsgdW5yZWYgc2VlbXMgdG8gYmUgYSB3aWRlLXNwcmVhZCBpZGlvbQoJICAod2hpY2ggcGVyaGFwcyBpbmRpY2F0ZXMgdGhhdCBzb21ldGhpbmcgaXMgbm90IHF1aXRlCgkgIHJpZ2h0IHdpdGggdGhlIHdheSBhZ2dyZWdhdG9yIHBhZCB3b3JrcyBjdXJyZW50bHkpLgoKMjAxNS0wMi0xMiAxMzozMjozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBvbmx5IHBvc3QgbGF0ZW5jeSBtZXNzYWdlIGlmIGFueXRoaW5nIGNoYW5nZWQKCSAgUGVyaGFwcyB3ZSBzaG91bGQgY2hlY2sgZm9yIGVsZW1lbnQgc3RhdGUgYXMgd2VsbCBhbmQKCSAgb25seSBwb3N0IGl0IGlmIGluIFBMQVlJTkcgc3RhdGUuCgoyMDE1LTAyLTExIDE0OjE2OjIxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIEltcHJvdmUgYW5kIGZpeCBMQVRFTkNZIHF1ZXJ5IGhhbmRsaW5nCgkgIFRoaXMgbm93IGZvbGxvd3MgdGhlIGRlc2lnbiBkb2NzIGV2ZXJ5d2hlcmUsIGVzcGVjaWFsbHkgdGhlIG1heGltdW0gbGF0ZW5jeQoJICBoYW5kbGluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDEwNgoKMjAxNS0wMi0xMCAxMDo0OToxNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBQYXVzZSBzcmNwYWQgdGFzayBvbiBmbG93IGVycm9ycwoJICBPdGhlcndpc2Ugd2Ugd2lsbCBjYWxsIHRoZSB0YXNrIGZ1bmN0aW9uIG92ZXIgYW5kIG92ZXIgYWdhaW4gdW50aWwKCSAgdXBzdHJlYW0gZmluYWxseSBoYW5kbGVkIHRoZSBmbG93IHJldHVybiBhbmQgc2h1dHMgdXMgZG93bi4KCjIwMTUtMDItMDYgMTA6NTk6MjcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogU3RyZWFtbGluZSBsYXRlbmN5IGNhbGN1bGF0aW9ucwoJICBNaW4gbGF0ZW5jeSBjYW4gbmV2ZXIgYmUgaW52YWxpZCwgbGF0ZW5jeSBwcm9wZXJ0eSBjYW4gbmV2ZXIgYmUgaW52YWxpZAoJICBlaXRoZXIuIFNvIG5vIG5lZWQgdG8gY2hlY2sgZm9yIGFsbCB0aGVzZSB0aGluZ3MgaW4gdmFyaW91cyBwbGFjZXMuCgoyMDE1LTAyLTA2IDEwOjM2OjI4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IElmIHVwc3RyZWFtIGhhcyBubyBtYXggbGF0ZW5jeSBidXQgdGhlIHN1YmNsYXNzIGhhcywgdGFrZSB0aGUgc3ViY2xhc3MgbWF4IGxhdGVuY3kKCjIwMTUtMDItMDYgMTA6MzM6NTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogRml4IG1pbj5tYXggbGF0ZW5jeSBlcnJvciBjaGVjawoJICBXZSBoYXZlIHRvIGluY2x1ZGUgdGhlIHVwc3RyZWFtIGxhdGVuY3ksIG91ciBvd24gbGF0ZW5jeSBhbmQgdGhlIHN1YmNsYXNzCgkgIGxhdGVuY3kgaW4gdGhlIGNhbGN1bGF0aW9ucy4KCSAgRklYTUU6IFRoaXMgaXMgc3RpbGwgbm90IGVudGlyZWx5IGNvcnJlY3QKCjIwMTUtMDItMDYgMTA6MzA6NTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogRG9uJ3QgYWRkIHRoZSBsYXRlbmN5IHByb3BlcnR5IHRvIHRoZSBtYXggbGF0ZW5jeQoJICBJdCBoYXMgbm8gbWVhbmluZyBmb3IgdGhlIG1heCBsYXRlbmN5IGFuZCBpcyBvbmx5IHVzZWQgdG8gaW5jcmVhc2UgdGhlIG1pbgoJICBsYXRlbmN5LgoKMjAxNS0wMS0yNiAxNzowNjoyOSArMDEwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IENsZWFudXAgbG9ja2luZyBhcm91bmQgQWdncmVnYXRvclBhZCBmbHVzaCByZWxhdGVkIGZpZWxkcwoJICBBbmQgZG9jdW1lbnQgdGhlIGxvY2tpbmcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjY4NAoKMjAxNS0wMS0yNiAxMzoxMTowNSArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGtlZXAgY2hhaW4gZnVuY3Rpb25zIGFzIGR1bWIgYXMgcG9zc2libGUuCgkgICsgQSBwYWQgY2hhaW4gZnVuY3Rpb24gaGFzIG5vIGJ1c2luZXNzIGNoZWNraW5nIG90aGVyIHBhZHMsCgkgIHRoYXQncyB3aGF0IHRoZSBhZ2dyZWdhdGUgdGhyZWFkIGlzIGZvci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjY4NAoKMjAxNS0wMS0yNiAxMTozMjo0NyArMDEwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IE1vcmUgZml4ZXMgYXJvdW5kIGxvY2tpbmcgd2hlbiBhY2Nlc3NpbmcgcHJvdGVjdGVkIHByaXZhdGUgZmllbGRzCgkgIEluIHNvbWUgbW9yZSBwbGFjZXMgd2Ugd2VyZSBhY2Nlc3NpbmcgR3N0QWdncmVnYXRvci0+c2VnbWVudAoJICBhbmQgR3N0QWdncmVnYXRvci0+c2VxbnVtIHdpdGhvdXQgaG9sZGluZyB0aGUgR1NUX09CSkVDVF9MT0NLCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDI2ODQKCjIwMTUtMDEtMjYgMTE6Mjk6MDggKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogTWFrZSB0aGUgUEFEX0xPQ0sgcHJpdmF0ZQoJICBJbnN0ZWFkIG9mIHVzaW5nIHRoZSBHU1RfT0JKRUNUX0xPQ0sgd2Ugc2hvdWxkIGhhdmUKCSAgYSBkZWRpY2F0ZWQgbXV0ZXggZm9yIHRoZSBwYWQgYXMgaXQgaXMgYWxzbyBhc3NvY2lhdGVkCgkgIHdpdGggdGhlIG11dGV4IG9uIHRoZSBFVkVOVF9NVVRFWCBvbiB3aGljaCB3ZSB3YWl0CgkgIGluIHRoZSBfY2hhaW4gZnVuY3Rpb24gb2YgdGhlIHBhZC4KCSAgVGhlIEdzdEFnZ3JlZ2F0b3JQYWQuc2VnbWVudCBpcyBzdGlsbCBwcm90ZWN0ZWQgd2l0aCB0aGUKCSAgR1NUX09CSkVDVF9MT0NLLgoJICBSZW1vdmUgdGhlIGdzdF9hZ2dyZWdhdG9yX3BhZF9wZWFrX3VubG9ja2VkIG1ldGhvZCBhcyBpdCBkb2VzIG5vdCBtYWtlCgkgIHNlbnNlIGFueW1vcmUgd2l0aCBhIHByaXZhdGUgbG9jay4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjY4NAoKMjAxNS0wMS0yNiAxMToyNTo1NCArMDEwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogSGlkZSBHc3RBZ2dyZWdhdG9yUGFkIGJ1ZmZlciBhbmQgRU9TIGZpbGVkcwoJICBBbmQgYWRkIGEgZ2V0dGVyIGZvciB0aGUgRU9TLgoJICBUaGUgdXNlciBzaG91bGQgYWx3YXlzIHVzZSB0aGUgdmFyaW91cyBnZXR0ZXJzIHRvIGFjY2VzcwoJICB0aG9zZSBmaWVsZHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjY4NAoKMjAxNS0wMS0yMSAxODo0MTo0MyAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBEb2N1bWVudCBsb2NraW5nIG9mIEdzdEFnZ3JlZ2F0b3JQcml2YXRlIG1lbWJlcnMKCSAgTW9zdCBvZiB0aGVtIGFyZSBwcm90ZWN0ZWQgYnkgdGhlIG9iamVjdCBsb2NrLCBzcGVjaWZ5CgkgIHdoaWNoIG9uZXMgdXNlIGEgZGlmZmVyZW50IGxvY2suCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDI2ODQKCjIwMTUtMDEtMjEgMTg6NDc6MDkgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogRG9jdW1lbnQgaG93IHRoZSBzZWdtZW50IGlzIHByb3RlY3RlZAoJICBEb2N1bWVudCB0aGF0IGl0IGNhbiBvbmx5IGJlIGFjY2Vzc2VkIHdpdGggdGhlIG9iamVjdCBsb2NrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQyNjg0CgoyMDE1LTAxLTIxIDE5OjQ0OjU3IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFByb3RlY3QgYWxsIGxhdGVuY3kgcmVsYXRlZCBtZW1iZXJzIHdpdGggdGhlIG9iamVjdCBsb2NrCgkgIFRoZSBsb2NraW5nIHdhcyBub3QgY29uc2lzdGVudCwgbm93IGNvbnNpc3RlbnRseSB1c2UgdGhlIG9iamVjdCBsb2NrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQyNjg0CgoyMDE1LTAxLTIxIDE5OjQzOjEyIC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBEb2N1bWVudCBsb2NraW5nIGZvciBnc3RfYWdncmVnYXRvcl9nZXRfbGF0ZW5jeV91bmxvY2tlZCgpCgkgIFJlbmFtZWQgaXQgdG8gX3VubG9ja2VkKCkgdG8gbWFrZSBpdCBjbGVhci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjY4NAoKMjAxNS0wMS0yMSAxOTozNToyNSAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBQcm90ZWN0IHRoZSBzcmNwYWQgY2FwcyBuZWdvdGlhdGlvbiB3aXRoIHRoZSBzdHJlYW0gbG9jawoJICBJbnN0ZWFkIG9mIGFkZGluZyBhbm90aGVyIGxvY2ssIHVzZSB0aGUgc3JjcGFkIHN0cmVhbSBsb2NrLCB3aGljaCBpcyBhbHJlYWR5CgkgIHRha2VuIGFueXdheSB0byBwdXNoIG91dCB0aGUgbmV3IGNhcHMgaWYgbmVlZGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQyNjg0CgoyMDE1LTAxLTIxIDE5OjMzOjE4IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFByb3RlY3QgdGhlIHRhZ3Mgd2l0aCB0aGUgb2JqZWN0IGxvY2sKCSAgVGhlIHRhZ3MgcmVsYXRlZCB2YXJpYWJsZXMgd2VyZSBzb21ldGltZXMgcHJvdGVjdGVkLCBzb21ldGltZXMgbm90IGFuZAoJICBzb21ldGltZXMgYXRvbWljLiBQdXQgdGhlbSBhbGwgdW5kZXIgdGhlIG9iamVjdCBsb2NrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQyNjg0CgoyMDE1LTAxLTIxIDE4OjUzOjIwIC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IENvbnNpc3Rlbmx5IGxvY2sgdGhlIGZsb3dfcmV0dXJuIHN0YXRlCgkgIFVzZSB0aGUgb2JqZWN0J3MgbG9jayB0byBwcm90ZWN0IGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQyNjg0CgoyMDE1LTAxLTIxIDE4OjQ1OjM2IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IENvbnNpc3RlbnRseSBsb2NrIHNvbWUgbWVtYmVycwoJICBTb21lIG1lbWJlcnMgc29tZXRpbWVzIHVzZWQgYXRvbWljIGFjY2Vzcywgc29tZXRpbWVzIHdoZXJlIG5vdCBsb2NrZWQgYXQKCSAgYWxsLiBJbnN0ZWFkIGNvbnNpc3RlbnRseSB1c2UgYSBtdXRleCB0byBwcm90ZWN0IHRoZW0sIGFsc28gZG9jdW1lbnQKCSAgdGhhdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjY4NAoKMjAxNS0wMS0xNCAxNDozODowOSAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogUHJvdGVjdCBleHBvcnRlZCBwYWQgbWVtYmVycyB3aXRoIHRoZSBwYWQncyBvYmplY3QgbG9jawoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQyNjg0CgoyMDE1LTAxLTE0IDE0OjM1OjE1IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBSZXBsYWNlIGV2ZW50IGxvY2sgd2l0aCBwYWQncyBvYmplY3QgbG9jawoJICBSZWR1Y2UgdGhlIG51bWJlciBvZiBsb2NrcyBzaW1wbGlmeSBjb2RlLCB3aGF0IGlzIHByb3RlY3RzCgkgIGlzIGV4cG9zZWQsIGJ1dCB0aGUgbG9jayB3YXMgbm90LgoJICBBbHNvIG1lYW5zIGFkZGluZyBhbiBfdW5sb2NrZWQgdmVyc2lvbiBvZiBnc3RfYWdncmVnYXRvcl9wYWRfc3RlYWxfYnVmZmVyKCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDI2ODQKCjIwMTUtMDEtMDkgMjI6MDE6MDAgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogUHJvdGVjdCBkYXRhIHdpdGggdGhlIHNhbWUgbXV0ZXggYXMgR0NvbmQKCSAgV2hlbmV2ZXIgYSBHQ29uZCBpcyB1c2VkLCB0aGUgc2FmZXN0IHBhcmFkaWdtIGlzIHRvIHByb3RlY3QKCSAgdGhlIHZhcmlhYmxlIHdoaWNoIGNoYW5nZSBpcyBzaWduYWxsZWQgYnkgdGhlIEdDb25kIHdpdGggdGhlIHNhbWUKCSAgbXV0ZXggdGhhdCB0aGUgR0NvbmQgZGVwZW5kcyBvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjY4NAoKMjAxNS0wMS0xNCAyMzo0NzoxOSArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IE5pdHBpY2sgc3BhY2luZy9wdW5jdHVhdGlvbiBpbiBkZWJ1ZyBsb2dnaW5nCgoyMDE1LTAxLTA5IDIxOjUxOjQwIC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFJlbW92ZSBwb2ludGxlc3MgYXRvbWljCgkgIEl0IGlzIG9ubHkgbW9kaWZpZWQgZnJvbSB0aGUgc3RyZWFtaW5nIHRocmVhZAoKMjAxNS0wMS0wOSAyMTozMDozNiAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBGaXggcXVlcnkgbGVhawoKMjAxNS0wMS0wOSAxNjo0MzozOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBQcmludCBqaXR0ZXIgZnJvbSBjbG9jayB3YWl0aW5nIGluIHRoZSBkZWJ1ZyBsb2dzCgoyMDE1LTAxLTA0IDE3OjE1OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGRvbid0IHVzZSBpdGVyYXRvciB3aGVuIHNldHRpbmcgZmx1c2ggcGVuZGluZyBvbiBwYWRzCgoyMDE1LTAxLTA0IDE2OjU3OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGNoZWNrIGlmIHBhZHMgYXJlIHJlYWR5IG1vcmUgZWZmaWNpZW50bHkKCSAgTm8gbmVlZCB0byB1c2UgYW4gaXRlcmF0b3IgZm9yIHRoaXMgd2hpY2ggY3JlYXRlcyBhIHRlbXBvcmFyeQoJICBzdHJ1Y3R1cmUgZXZlcnkgdGltZSBhbmQgYWxzbyBpbnZvbHZlcyB0YWtpbmcgYW5kIHJlbGVhc2luZyB0aGUKCSAgb2JqZWN0IGxvY2sgbWFueSB0aW1lcyBpbiB0aGUgY291cnNlIG9mIGl0ZXJhdGluZy4gTm90IHRvIG1lbnRpb24KCSAgYWxsIHRoYXQgR0xpc3QgaGFuZGxpbmcgaW4gZ3N0X2FnZ3JlZ2F0b3JfaXRlcmF0ZV9zaW5rcGFkcygpLgoKMjAxNS0wMS0wNCAxMjo1OToxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBuYW1lIHZmdW5jIGFyZ3VtZW50cyBjb25zaXN0ZW50bHkKCjIwMTUtMDEtMDEgMTU6NDY6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogYWRkIGctaSB0cmFuc2ZlciBhbmQgc2NvcGUgYW5ub3RhdGlvbnMKCjIwMTUtMDEtMDEgMTQ6MTA6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogcmVnaXN0ZXIgbmFtZXMgb2YgaXRlcmF0ZV9zaW5rcGFkcyBmdW5jdGlvbnMgd2l0aCBkZWJ1ZyBzeXN0ZW0KCjIwMTUtMDEtMDEgMTQ6MDM6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogcmVkdWNlIGRlYnVnIG1lc3NhZ2VzIGZvciB0YWtpbmcvcmVsZWFzaW5nIGxvZ3MgdG8gVFJBQ0UgbGV2ZWwKCSAgRG9uJ3Qgc3BhbSBkZWJ1ZyBsb2cgd2l0aCB0aGlzIHN0dWZmLgoKMjAxNC0xMi0zMSAxODoxNjoyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogbW92ZSBwcm9wZXJ0eSBtZW1iZXIgaW50byBwcml2YXRlIHN0cnVjdHVyZQoJICBPdXIgbG9ja2luZyAob3IgbGFjayB0aGVyZW9mKSB3aGlsZSBhY2Nlc3NpbmcgdGhpcyBhbHNvCgkgIGxvb2tzIGdlbmVyYWxseSBxdWl0ZSBkb2RneS4KCjIwMTQtMTItMzEgMTQ6NTA6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogcmVtb3ZlIGVtcHR5IGRpc3Bvc2UgZnVuY3Rpb24KCjIwMTQtMTItMzAgMjM6NTg6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IGdpdmUgcHJpdmF0ZSBmdW5jdGlvbnMgbmFtZXNwYWNlIHByZWZpeAoJICBFc3BlY2lhbGx5IHRoZSBHU1RfREVCVUdfRlVOQ1BUUiBvbmVzLgoKMjAxNC0xMi0zMSAxMjozNTowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBmaXggdXAgc29tZSBkb2NzIGNvbW1lbnRzIGluIGhlYWRlcgoKMjAxNC0xMi0zMCAyMzo0NDo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogcmVtb3ZlIG5vdy11bnVzZWQgc3lzdGVtIGNsb2NrIG1lbWJlcgoKMjAxNC0xMi0zMCAxOToyMjowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogbWFrZSBHc3RBZ2dyZWdhdG9yUGFkRm9yZWFjaEZ1bmMgdGFrZSBhbiBHc3RBZ2dyZWdhdG9yUGFkCgoyMDE0LTEyLTMwIDE3OjUwOjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGJyaW5nIHN0YXJ0L3N0b3AgdmZ1bmMgc2VtYW50aWNzIGluIGxpbmUgd2l0aCBvdGhlciBiYXNlY2xhc3NlcwoJICBTdWItY2xhc3Mgc2hvdWxkIG5vdCBoYXZlIHRvIGNoYWluIHVwIHRvIEdzdEFnZ3JlZ2F0b3IncyBzdGFydC9zdG9wCgkgIHZmdW5jcywgc2FtZSBhcyBpbiBHc3RCYXNlU3JjLCBHc3RCYXNlU2luaywgR3N0QmFzZVRyYW5zZm9ybSBldGMuCgoyMDE0LTEyLTI4IDE4OjI2OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IHJlbW92ZSBwb2ludGxlc3MgR1NUX0RFQlVHX0ZVTkNQVFIKCSAgTm90IHVzZWZ1bCBmb3IgR09iamVjdCB2ZnVuY3MuCgoyMDE0LTEyLTI4IDE4OjI0OjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IHJlbW92ZSBkdXBsaWNhdGUgcGFkIHBhcmVudF9jbGFzcyB2YXJpYWJsZQoJICBHX0RFRklORV9UWVBFIGFscmVhZHkgcHJvdmlkZXMgb25lLCBqdXN0IG5lZWQgdG8gdXNlIGl0LgoKMjAxNC0xMi0yOCAxODoyMjo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBhZGQgX0NBU1QoKSB2YXJpYW50cyBmb3IgY2FzdCBtYWNyb3MKCjIwMTQtMTItMjggMDE6MTM6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogbWFrZSBwYWRkaW5nIGxhcmdlcgoJICBFc3AuIHRoZSBjbGFzcyBzdHJ1Y3R1cmVzLCBjYW4ndCBoYXZlIGVub3VnaAoJICBzcGFyZSBzcGFjZSBmb3IgdmlydHVhbCBmdW5jdGlvbnMuCgoyMDE0LTEyLTI3IDE2OjE1OjQxICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogTG9nIHRvIHRoZSBwYWQgaW5zdGVhZCBvZiB0aGUgZWxlbWVudAoJICBNb3JlIGNvcnJlY3Qgd2F5IG9mIGRvaW5nIHRoZSBzYW1lIHRoaW5nIGFzIGJlZm9yZQoKMjAxNC0xMi0yNyAwOTo0OTo0MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBNYWtlIHN1cmUgdGhhdCB0aGUgbWluaW11bSBsYXRlbmNpZXMgYXJlIG5ldmVyIEdTVF9DTE9DS19USU1FX05PTkUKCjIwMTQtMTItMjcgMDk6NDI6NTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogV2FpdCBmb3IgdGhlIG1pbmltdW0gbGF0ZW5jeSwgbm90IHRoZSBtYXhpbXVtCgkgIFRoZSBtaW5pbXVtIGxhdGVuY3kgaXMgdGhlIGxhdGVuY3kgd2UgaGF2ZSB0byB3YWl0IGF0IGxlYXN0CgkgIHRvIGd1YXJhbnRlZSB0aGF0IGFsbCB1cHN0cmVhbXMgaGF2ZSBwcm9kdWNlZCBkYXRhLiBUaGUgbWF4aW11bQoJICBsYXRlbmN5IGhhcyBubyBtZWFuaW5nIGxpa2UgdGhhdCBhbmQgc2hvdWxkbid0IGJlIHVzZWQgZm9yIHdhaXRpbmcuCgoyMDE0LTEyLTI3IDA0OjIxOjM2ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogQ2xhbXAgdGhlIG1pbiBsYXRlbmN5IGF0IHRoZSBtYXggaWYgaXQncyBncmVhdGVyCgoyMDE0LTEyLTI3IDA0OjIxOjI2ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogUHJpbnQgdGhlIHNpbmtwYWQgbmFtZSB3aGlsZSBsb2dnaW5nIGxhdGVuY3kgcXVlcmllcwoJICBWZXJ5IHVzZWZ1bCB3aGlsZSBkZWJ1Z2dpbmcuCgoyMDE0LTEyLTI3IDA0OjE5OjUyICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogVGFrZSB0aGUgc3RyZWFtIGxvY2sgd2hlbiBpdGVyYXRpbmcgc2luayBwYWRzCgkgIFdoZW4gaXRlcmF0aW5nIHNpbmsgcGFkcyB0byBjb2xsZWN0IHNvbWUgZGF0YSwgd2Ugc2hvdWxkIHRha2UgdGhlIHN0cmVhbSBsb2NrIHNvCgkgIHdlIGRvbid0IGdldCBzdGFsZSBkYXRhIGFuZCBwb3NzaWJseSBkZWFkbG9jayBiZWNhdXNlIG9mIHRoYXQuIFRoaXMgZml4ZXMKCSAgYSBkZWZpbml0aXZlIGRlYWRsb2NrIGluIF93YWl0X2FuZF9jaGVjaygpIHRoYXQgbWFuaWZlc3RzIHdpdGggaGlnaCBtYXgKCSAgbGF0ZW5jaWVzIGluIGEgbGl2ZSBwaXBlbGluZSwgYW5kIGZpeGVzIG90aGVyIHBvc3NpYmxlIHJhY2UgY29uZGl0aW9ucy4KCjIwMTQtMTItMjMgMTE6NDU6MDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogRG9uJ3QgbGVhayBmbHVzaC1zdGFydCBldmVudHMKCjIwMTQtMTItMjMgMTA6MjQ6MjcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogQWxzbyBjaGFuZ2UgdGhlIGRlZmF1bHQgbGF0ZW5jeSB0byAwLCBub3QganVzdCB0aGUgbWluaW11bQoKMjAxNC0xMi0yMyAwOTo1MjoyMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBGaXggZG9jcyBhbmQgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgbGF0ZW5jeSBwcm9wZXJ0eQoKMjAxNC0xMi0yMiAyMjoxOTo1MiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBBbHNvIGluY2x1ZGUgdGhlIHN1YmNsYXNzIGxhdGVuY3kgaW4gdGhlIHJlc3VsdCBvZiB0aGUgbGF0ZW5jeSBxdWVyeQoKMjAxNC0xMi0yMiAxNToyNjozNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBQb3N0IGEgbGF0ZW5jeSBtZXNzYWdlIGlmIHRoZSB2YWx1ZSBvZiB0aGUgbGF0ZW5jeSBwcm9wZXJ0eSBjaGFuZ2VzCgoyMDE0LTEyLTIyIDE1OjAzOjU5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFdha2UgdXAgdGhlIHNyYyB0aHJlYWQgYWZ0ZXIgaGFuZGxpbmcgYSBsYXRlbmN5IHF1ZXJ5CgkgIER1ZSB0byBjaGFuZ2VkIGxhdGVuY2llcyBvciBjaGFuZ2VkIGxpdmUtbmVzcyB3ZSBtaWdodCBoYXZlIHRvCgkgIGFkanVzdCBpZiB3ZSB3YWl0IG9uIGEgZGVhZGxpbmUgYXQgYWxsIGFuZCBob3cgbG9uZy4KCjIwMTQtMTItMjIgMTU6MDA6MzYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogRG9uJ3QgY291bnQgdGhlIG51bWJlciBvZiB0aW1lcyB3ZSBuZWVkIHRvIHdha2UgdXAgYnV0IGluc3RlYWQgY2hlY2sgYWxsIGNvbmRpdGlvbnMgZm9yIHdhaXRpbmcgYWdhaW4KCSAgVGhpcyBzaW1wbGlmaWVzIHRoZSBjb2RlIGFuZCBhbHNvIG1ha2VzIHN1cmUgdGhhdCB3ZSBkb24ndCBmb3JnZXQgdG8gY2hlY2sgYWxsCgkgIGNvbmRpdGlvbnMgZm9yIHdhaXRpbmcuCgkgIEFsc28gZml4IGEgcG90ZW50aWFsIGRlYWRsb2NrIGNhdXNlZCBieSBub3QgY2hlY2tpbmcgaWYgd2UncmUgYWN0dWFsbHkgc3RpbGwKCSAgcnVubmluZyBiZWZvcmUgc3RhcnRpbmcgdG8gd2FpdC4KCjIwMTQtMTItMTcgMTk6NTE6MzIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IEFkZCBmdW5jdGlvbiB0byBhbGxvdyBzdWJjbGFzc2VzIHRvIHNldCB0aGVpciBvd24gbGF0ZW5jeQoJICBGb3IgYXVkaW9taXhlciB0aGlzIGlzIG9uZSBibG9ja3NpemUsIGZvciB2aWRlb2FnZ3JlZ2F0b3IgdGhpcyBzaG91bGQKCSAgYmUgdGhlIGR1cmF0aW9uIG9mIG9uZSBvdXRwdXQgZnJhbWUuCgoyMDE0LTEyLTE3IDE3OjU0OjA5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogQWRkIGEgdGltZW91dCBwYXJhbWV0ZXIgdG8gOjphZ2dyZWdhdGUoKQoJICBXaGVuIHRoaXMgaXMgVFJVRSwgd2UgcmVhbGx5IGhhdmUgdG8gcHJvZHVjZSBvdXRwdXQuIFRoaXMgaGFwcGVucwoJICBpbiBsaXZlIG1peGluZyBtb2RlIHdoZW4gd2UgaGF2ZSB0byBvdXRwdXQgc29tZXRoaW5nIGZvciB0aGUgY3VycmVudAoJICB0aW1lLCBubyBtYXR0ZXIgaWYgd2UgaGF2ZSBlbm91Z2ggaW5wdXQgb3Igbm90LgoKMjAxNC0xMi0xNiAxOTo0OTozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWdncmVnYXRvci5jOgoJICB0ZXN0czogZml4IGFnZ3JlZ2F0b3IgdW5pdCB0ZXN0IGFmdGVyIHByb3BlcnR5IHJlbmFtaW5nCgoyMDE0LTEyLTE2IDE3OjMzOjAxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFNvbWUgbWlub3IgY2xlYW51cAoKMjAxNC0xMi0wNSAxODoxOTo1NCArMTEwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBtYWtlIHRoZSBzcmMgcGFkIHRhc2sgZHJpdmUgdGhlIHBpcGVsaW5lIGZvciBsaXZlIHBpcGVsaW5lcwoJICBUaGlzIHJlbW92ZXMgdGhlIHVzZXMgb2YgR0FzeW5jUXVldWUgYW5kIHJlcGxhY2VzIGl0IHdpdGggZXhwbGljaXQKCSAgR011dGV4LCBHQ29uZCBhbmQgd2FrZXVwIGNvdW50IHdoaWNoIGlzIHVzZWQgZm9yIHRoZSBub24tbGl2ZSBjYXNlLgoJICBGb3IgbGl2ZSBwaXBlbGluZXMsIHRoZSBhZ2dyZWdhdG9yIHdhaXRzIG9uIHRoZSBjbG9jayB1bnRpbCBlaXRoZXIKCSAgZGF0YSBhcnJpdmVzIG9uIGFsbCBzaW5rIHBhZHMgb3IgdGhlIGV4cGVjdGVkIG91dHB1dCBidWZmZXIgdGltZQoJICBhcnJpdmVzIHBsdXMgdGhlIHRpbWVvdXQvbGF0ZW5jeSBhdCB3aGljaCB0aW1lLCB0aGUgc3ViY2xhc3MKCSAgcHJvZHVjZXMgYSBidWZmZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDExNDYKCjIwMTQtMTItMTQgMDE6Mjk6MjYgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWdncmVnYXRvci5jOgoJICB0ZXN0cy9hZ2dyZWdhdG9yOiBVc2UgY29ycmVjdCB0eXBlIHdoZW4gc2V0dGluZyBwcm9wZXJ0eQoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQxNDk1CgoyMDE0LTExLTE5IDE3OjE3OjA2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFVuYmxvY2sgZXZlbnRzL3F1ZXJpZXMgaW1tZWRpYXRlbHkgaWYgdGhlIHBhZCBpcyBmbHVzaGluZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwMzc2CgoyMDE0LTExLTE5IDE3OjE1OjAyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IERyb3Agc2VyaWFsaXplZCBldmVudHMvcXVlcmllcyBpZiB0aGUgcGFkIGlzIGZsdXNoaW5nCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDAzNzYKCjIwMTQtMTEtMTkgMTc6MDM6NDEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogQmxvY2sgc2VyaWFsaXplZCBldmVudHMvcXVlcmllcyB1bnRpbCB0aGUgcGFkIGhhcyBjb25zdW1lZCBhbGwgYnVmZmVycwoJICBPdGhlcndpc2UgdGhlIGNhcHMgb2YgdGhlIHBhZCBtaWdodCBjaGFuZ2Ugd2hpbGUgdGhlIHN1YmNsYXNzIHN0aWxsIHdvcmtzIHdpdGgKCSAgYSBidWZmZXIgb2YgdGhlIG9sZCBjYXBzLCBhc3N1bWluZyB0aGUgdGhlIGN1cnJlbnQgcGFkIGNhcHMgYXBwbHkgdG8gdGhhdAoJICBidWZmZXIuIFdoaWNoIHRoZW4gbGVhZHMgdG8gY3Jhc2hlcyBhbmQgb3RoZXIgbmljZSBlZmZlY3RzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwMzc2CgoyMDE0LTExLTE5IDE3OjAzOjMzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IEZpeCB0eXBvIGluIGRlYnVnIG91dHB1dAoKMjAxNC0xMS0xNyAxNDowMDoxMCArMTEwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBhZGQgX2dldF9sYXRlbmN5KCkgZm9yIHN1YmNsYXNzIHVzYWdlCgkgIEFQSTogZ3N0X2FnZ3JlZ2F0b3JfZ2V0X2xhdGVuY3kKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczOTk5NgoKMjAxNC0xMC0yMCAxODoyNTowOCArMDUzMCAgVmluZWV0aCBUIE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYXVkaW9taXhlcjogY3JpdGljYWwgZXJyb3IgZm9yIGJsb2Nrc2l6ZSwgdGltZW91dCBtaW4vbWF4IHZhbHVlcwoJICBBdWRpb21peGVyIGJsb2Nrc2l6ZSwgY2FudCBiZSAwLCBoZW5jZSBhZGp1c3RpbmcgdGhlIG1pbmltdW0gdmFsdWUgdG8gMQoJICB0aW1lb3V0IHZhbHVlIG9mIGFnZ3JlZ2F0b3IgaXMgZGVmaW5lZCB3aXRoIE1BWCBvZiBNQVhJTlQ2NCwKCSAgYnV0IGl0IGNhbm5vdCBjcm9zcyBHX01BWExPTkcgKiBHU1RfU0VDT05EIC0gMQoJICBIZW5jZSBjaGFuZ2VkIHRoZSBtYXggdmFsdWUgb2YgdGhlIHNhbWUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczODg0NQoKMjAxNC0xMC0wNyAxNjo1NzoyNyArMTEwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9hZ2dyZWdhdG9yLmM6CgkgIHRlc3RzL2FnZ3JlZ2F0b3I6IGFkZCB0aW1lb3V0IGhhbmRsaW5nIHRlc3QgZm9yIHRoZSB0aW1lb3V0IHBhcmFtZXRlcgoKMjAxNC0xMC0wNiAyMTo0NjoyNCArMTEwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGFkZCBsYXRlbmN5IHF1ZXJ5IGhhbmRsaW5nCgoyMDE0LTEwLTA2IDE4OjIzOjAzICsxMTAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IGFkZCBhIHRpbWVvdXQgcHJvcGVydHkgZGV0ZXJtaW5pbmcgYnVmZmVyIHdhaXQgdGltZQoJICBEZXRlcm1pbmVzIHRoZSBhbW91bnQgb2YgdGltZSB0aGF0IGEgcGFkIHdpbGwgd2FpdCBmb3IgYSBidWZmZXIgYmVmb3JlCgkgIGJlaW5nIG1hcmtlZCB1bnJlc3BvbnNpdmUuCgkgIE5ldHdvcmsgc291cmNlcyBtYXkgZmFpbCB0byBwcm9kdWNlIGJ1ZmZlcnMgZm9yIGFuIGV4dGVuZGVkIHBlcmlvZCBvZiB0aW1lLAoJICBjdXJyZW50bHkgY2F1c2luZyB0aGUgcGlwZWxpbmUgdG8gc3RhbGwgcG9zc2libHkgaW5kZWZpbml0ZWx5LCB3YWl0aW5nIGZvcgoJICB0aGVzZSBidWZmZXJzIHRvIGFwcGVhci4KCSAgU3ViY2xhc3NlcyBzaG91bGQgcmVuZGVyIHVucmVzcG9uc2l2ZSBwYWRzIHdpdGggZWl0aGVyIHNpbGVuY2UgKGF1ZGlvKSwgdGhlCgkgIGxhc3QgKHZpZGVvKSBmcmFtZSBvciB3aGF0IG1ha2VzIHRoZSBtb3N0IHNlbnNlIGluIHRoZSBnaXZlbiBjb250ZXh0LgoKMjAxNC0wOS0xNyAxNjo0ODowMiArMDIwMCAgSmFuIEFsZXhhbmRlciBTdGVmZmVucyAoaGVmdGlnKSA8amFuLnN0ZWZmZW5zQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBSZXBsYWNlIEdNYWluQ29udGV4dCB3aXRoIEdBc3luY1F1ZXVlICh2MikKCSAgVGhlIHByZXZpb3VzIGltcGxlbWVudGF0aW9uIGtlcHQgYWNjdW11bGF0aW5nIEdTb3VyY2VzLAoJICBzbG93aW5nIGRvd24gdGhlIGl0ZXJhdGlvbiBhbmQgbGVha2luZyBtZW1vcnkuCgkgIEluc3RlYWQgb2YgdHJ5aW5nIHRvIGZpeCB0aGUgbWFpbiBjb250ZXh0IGZsdXNoaW5nLCByZXBsYWNlCgkgIGl0IHdpdGggYSBHQXN5bmNRdWV1ZSB3aGljaCBpcyBzaW1wbGUgdG8gZmx1c2ggYW5kIGhhcwoJICBsZXNzIG92ZXJoZWFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2NzgyCgoyMDE0LTA4LTA1IDE1OjM2OjMwICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogU2V0IHNlcW51bSBvbmx5IHdoZW4gc2VnbWVudHMgYXJlIHJlY2VpdmVkLgoKMjAxNC0wOC0wMiAxODoyNTowMSArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IEFkZCBhIHN0cmVhbWluZyBsb2NrIHNvIHRvIHNlY3VyZSBmbHVzaCBzdGFydCBhY3Rpb24KCSAgV2l0aG91dCBhIGxvY2sgdGhhdCBpcyB0YWtlbiBpbiBGTFVTSF9TVEFSVCB3ZSBoYWQgYSByYXJlIHJhY2Ugd2hlcmUgd2UKCSAgZW5kIHVwIGFnZ3JlZ2F0aW5nIGEgYnVmZmVyIHRoYXQgd2FzIGJlZm9yZSB0aGUgd2hvbGUgRkxVU0hfU1RBUlQvU1RPUAoJICBkYW5jZS4gVGhhdCBjb3VsZCBsZWFkIHRvIHZlcnkgd3JvbmcgYmVoYXZpb3VyIGluIHN1YmNsYXNzZXMuCgoyMDE0LTA3LTE4IDEzOjU4OjU1ICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogUXVlcnkgc2Vla2luZyB3aGVuIGEgc2VlayBmYWlsZWQgdG8gc2VlIGlmIGl0IHdhcyBleHBlY3RlZAoJICBBbmQgZG8gbm90IHdvcnJ5IGlmIHNlZWtpbmcgZmFpbGVkIG9uIGEgc3RyZWFtIHRoYXQgaXMgbm90IHNlZWthYmxlCgoyMDE0LTA3LTE4IDAxOjQxOjI2ICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogc2V0IGZ1dHVyZSBzZXFudW0gYmVmb3JlIHByb3BhZ2F0aW5nIHRoZSBzZWVrIGV2ZW50LgoJICBTbyB0aGUgc2VxbnVtIGlzIHByb3Blcmx5IHNldCBmb3IgdGhlIGZvbGxvd2luZyBldmVudHMuCgoyMDE0LTA3LTA4IDE2OjE2OjU1ICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogU3RvcmUgc2VnbWVudCB3aGVuIHNlZWtlZCBpbiBSRUFEWSBmb3IgbGF0ZXIgdXNlCgoyMDE0LTEwLTA2IDEwOjExOjIzICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFVucmVmIHRoZSB0YWdsaXN0IGluIEdzdEFnZ3JlZ2F0b3I6OnN0b3AoKQoKMjAxNC0xMC0wMyAxMjozNDoxNSArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFRha2UgbG9jayB0byBlbnN1cmUgc2V0X2NhcHMgaXMgbm90IGNhbGxlZCBjb25jdXJlbnRseQoJICBBdm9pZGluZyB0byBiZSBpbiBhbiBpbmNvbnNpc3RlbnQgc3RhdGUgd2hlcmUgd2UgZG8gbm90IGhhdmUKCSAgYWN0dWFsIG5lZ290aWF0ZSBjYXBzIHNldCBhcyBzcmNjYXBzIGFuZCBsZWFkaW5nIHRvIHBvaW50IHdoZXJlIHdlCgkgIHRyeSB0byB1bnJlZiAtPnNyY2NhcHMgd2hlbiB0aGV5IGhhdmUgYWxyZWFkeSBiZWVuIHNldCB0byBOVUxMLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1MDQyCgoyMDE0LTA4LTExIDIzOjM4OjQwICsxMDAwICBNYXR0aGV3IFdhdGVycyA8eXN0cmVldDAwQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBmaXggdXAgZG9jIGNvbW1lbnQgZm9yIHNldF9zcmNfY2FwcwoJICBJdCBkb2VzIG5vdCBvY2N1ciAnbGF0ZXInIGFueW1vcmUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMjY2MgoKMjAxNC0wOC0wNyAxOTo1NDozNiArMTAwMCAgTWF0dGhldyBXYXRlcnMgPHlzdHJlZXQwMEBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgdmlkZW9hZ2dyZWdhdG9yOiBwdXNoIHRoZSBjYXBzIGV2ZW50IGFzIHNvb24gYXMgd2UgcmVjZWl2ZSBpdAoJICBBbG9uZyB3aXRoIHRoZSByZXF1aXJlZCBtYW5kYXRvcnkgZGVwZW5kZW50IGV2ZW50cy4KCSAgU29tZSBlbGVtZW50cyBuZWVkIHRvIHBlcmZvcm0gYW4gYWxsb2NhdGlvbiBxdWVyeSBpbnNpZGUKCSAgOjpuZWdvdGlhdGVkX2NhcHMoKS4gIFdpdGhvdXQgdGhlIGNhcHMgZXZlbnQgYmVpbmcgc2VudCBwcmlvciwKCSAgZG93bnN0cmVhbSBlbGVtZW50cyB3aWxsIGJlIHVuYWJsZSB0byBhbnN3ZXIgYW5kIHdpbGwgcmV0dXJuCgkgIGFuIGVycm9yLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyNjYyCgoyMDE0LTA3LTE2IDE2OjU3OjM1ICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogUmVzZXQgZmxvd19yZXR1cm4gKmFmdGVyKiBzdG9wcGluZyB0aGUgc3JjcGFkIHRhc2suCgkgIE90aGVyd2lzZSBpdCBtaWdodCBiZSBzZXQgaW4gYW4gYWxyZWFkeSBydW5uaW5nIGFnZ3JlZ2F0ZSBmdW5jdGlvbi4KCjIwMTQtMDctMTAgMTM6MTg6MjEgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBGbHVzaCBzaW5rcGFkcyB3aGVuIHN0b3BwaW5nCgkgIEFsbCB2YWx1ZXMgYXJlIG1lYW5pbmdsZXNzIGluIHRoYXQgY2FzZSwgc28gd2Ugc2hvdWxkIG1ha2Ugc3VyZSB0aGF0CgkgIHdlIGNsZWFuIGV2ZXJ5dGhpbmcKCjIwMTQtMDctMTAgMTM6MTU6NTUgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBEbyBub3QgZm9yZ2V0IHRvIHJlc2V0IHRoZSBmbG93IHJldHVybiB3aGVuIHN0b3BpbmcKCSAgU2V0dGluZyBpdCB0byBGTFVTSElORyB3aGVuIHRoZSBlbGVtZW50IGlzIG5vdCBzdGFydGVkLCBhbmQgdG8gT0sKCSAgd2hlbiBpdCBzdGFydHMuCgoyMDE0LTA3LTA4IDE2OjQ4OjA4ICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogSGFuZGxlIGV2ZW50IHNlcW51bQoKMjAxNC0wNy0wNiAxNjoxNzowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBmaXggbG9ja2luZwoJICBXZSB3b3VsZCB1bmxvY2sgYSBtdXRleCB3ZSBuZXZlciBsb2NrZWQgb24gU0VHTUVOVAoJICBldmVudHMuCgoyMDE0LTA2LTMwIDEyOjIyOjA3ICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IEF2b2lkIGRlc3Ryb3lpbmcgc291cmNlcyB3ZSBkbyBub3Qgb3duCgkgICsgVW5yZWYgdGhlIG1haW5jb250ZXh0IGluIGEgbmV3IGRpc3Bvc2UgZnVuY3Rpb24KCSAgKyBNYWtlIHN1cmUgdG8gcmVtb3ZlIGFsbCBzb3VyY2VzIG9uIGRpc3Bvc2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMjQ0NQoKMjAxNC0wNi0yOCAxMToyMDo0MyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FnZ3JlZ2F0b3IuYzoKCSAgdGVzdHM6IGFnZ3JlZ2F0b3I6IGZpeCB2YXJpb3VzIGxlYWtzIGluIHRoZSB0ZXN0cwoKMjAxNC0wNi0yOCAwOTozNDowNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogYWx3YXlzIHN0b3JlIG9yIHVucmVmIHRoZSBidWZmZXIgb24gdGhlIF9jaGFpbiBmdW5jdGlvbgoJICBPdGhlcndpc2UgaXQgbGVha3MsIGFuZCBpdCBpcyB2ZXJ5IGNvbW1vbiB0byBnbyB0byBmbHVzaGluZyB3aGVuIHRoZQoJICBwaXBlbGluZSBpcyBzdG9wcGluZywgbGVha2luZyBhIGJ1ZmZlci4KCjIwMTQtMDYtMjggMDk6MzI6MzIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGFsd2F5cyB1bnJlZiB0aGUgYnVmZmVyIG9uIF9maW5pc2ggZnVuY3Rpb24KCSAgT3RoZXJ3aXNlIHRoZSB1c2VyIGRvZXNuJ3Qga25vdyBpZiBpdCB3YXMgdW5yZWYnZCBvciBub3QKCjIwMTQtMDYtMjggMDk6MzE6NTUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGFkZCBkaXNwb3NlL2ZpbmFsaXplIGZ1bmN0aW9ucwoJICBBZGQgZnVuY3Rpb25zIHRvIGJlIGFibGUgdG8gY2xlYW51cCB0aGUgbXV0ZXgvY29uZCBhbmQgcGVuZGluZyBidWZmZXJzCgkgIG9uIHRoZSBhZ2dyZWdhdG9yIGFuZCBvbiBpdHMgcGFkCgoyMDE0LTA2LTI2IDEwOjUzOjE2ICsxMDAwICBNYXR0aGV3IFdhdGVycyA8eXN0cmVldDAwQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBwbHVnIGEgbWVtb3J5IGxlYWsgb2YgdGhlIHNyY2NhcHMKCjIwMTQtMDYtMjEgMTY6NTE6MDEgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBsaWJzOmJhc2U6IFByb3Blcmx5IGRlY2xhcmUgQVBJcyBhcyBVTlNUQUJMRQoKMjAxNC0wNi0yMSAxMzo0NToxMyArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IEZpeCByZXF1ZXN0ZWQgcGFkIG5hbWUKCjIwMTQtMDUtMjIgMTk6NDQ6MzcgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSogdGVzdHMvY2hlY2svbGlicy9hZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IEFkZCBuZXcgR3N0QWdncmVnYXRvciBiYXNlIGNsYXNzCgkgIFRoaXMgYmFzZSBjbGFzcyBoYXMgYmVlbiBhZGRlZCB0byBhIG5ld2x5IGNyZWF0ZWQgbGliZ3N0YmFkYmFzZSBsaWJyYXJ5CgkgIENvLUF1dGhvcmVkIGJ5OiBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzE5MTcKCjIwMTctMTItMDIgMTI6MDI6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJICB0ZXN0czogaW5mbzogYWRkIHRlc3QgZm9yIHBvc3QtZ3N0X2luaXQoKSBjYXRlZ29yeSByZWdpc3RyYXRpb24gcGVyZgoJICBXaGVuIHJlZ2lzdGVyaW5nIGNhdGVnb3JpZXMgYWZ0ZXIgZ3N0X2luaXQoKSB3ZSB3b3VsZCByZS1jaGVjayAqYWxsKgoJICBjYXRlZ29yaWVzIGFnYWluc3QgdGhlIGV4aXN0aW5nIEdTVF9ERUJVRyBwYXR0ZXJucyBhZ2Fpbiwgd2hlcmVhcwoJICBpdCdzIGVub3VnaCB0byBqdXN0IGNoZWNrIHRoZSBuZXcgY2F0ZWdvcnkuIE1vcmVvdmVyLCB3ZSB3b3VsZCBwYXJzZQoJICB0aGUgR1NUX0RFQlVHIHBhdHRlcm4gc3RyaW5nIGFnYWluIGFuZCByZS1hZGQgdGhhdCB0byB0aGUgZXhpc3RpbmcKCSAgcGF0dGVybiBsaXN0IGZvciBldmVyeSBuZXdseS1yZWdpc3RlcmVkIGRlYnVnIGNhdGVnb3J5LCBhbmQgdGhlbgoJICBjaGVjayB0aGF0IGFnYWluc3QgYWxsIGNhdGVnb3JpZXMgb2YgY291cnNlLiBUaGlzIG1hZGUgcmVnaXN0ZXJpbmcKCSAgY2F0ZWdvcmllcyBhZnRlciBnc3RfaW5pdCgpIHZlcnkgdmVyeSBzbG93LgoKMjAxNy0xMi0wMiAxMjoyOToyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGFsd2F5cyBjaGVjayBtYXRjaCBwYXR0ZXJucyBmb3IgbmV3IGRlYnVnIGNhdGVnb3JpZXMKCSAgTm90IG9ubHkgaWYgYSBtYXRjaCBwYXR0ZXJuIHdhcyBzZXQgb3JpZ2luYWxseSB2aWEgR1NUX0RFQlVHLgoJICBQYXR0ZXJucyBtaWdodCBiZSBzZXQgcHJvZ3JhbW1hdGljYWxseSBhcyB3ZWxsIGFmdGVyIGFsbC4KCjIwMTctMTItMDIgMTI6MjI6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBmaXggcGVyZm9ybWFuY2UgaXNzdWUgd2l0aCByZWdpc3RlcmluZyBjYXRlZ29yaWVzIGFmdGVyIGdzdF9pbml0KCkKCSAgV2hlbiByZWdpc3RlcmluZyBhIG5ldyBkZWJ1ZyBjYXRlZ29yeSBhZnRlciBnc3RfaW5pdCgpLCBzaW1wbHkgY2hlY2sKCSAgdGhlIGV4aXN0aW5nIHBhdHRlcm5zIGFnYWluc3QgdGhhdCBuZXcgY2F0ZWdvcnkuCgkgIE5vIG5lZWQgdG8gaXRlcmF0ZSBvdmVyIGFsbCBjYXRlZ29yaWVzIGFuZCByZWNoZWNrIHRoZW0gYWxsIGFnYWluc3QKCSAgdGhlIGV4aXN0aW5nIHBhdHRlcm5zLgoJICBBbHNvLCBubyBuZWVkIHRvIHJlLXBhcnNlIHRoZSBleGlzdGluZyBwYXR0ZXJuIHN0cmluZyBzZXQgdmlhIEdTVF9ERUJVRwoJICBhbmQgYWRkIHRoZSBzYW1lIHNldCBvZiBtYXRjaCBwYXR0ZXJucyBhbGwgb3ZlciBhZ2FpbiB0byB0aGUgZXhpc3RpbmcKCSAgbGlzdCBvZiBtYXRjaCBwYXR0ZXJucyBldmVyeSB0aW1lIHdlIHJlZ2lzdGVyIGEgbmV3IGRlYnVnIGNhdGVnb3J5LgoJICBDb21iaW5lZCB3aXRoIGl0ZXJhdGluZyBhbGwgZGVidWcgY2F0ZWdvcmllcyBvbiBhIGNoYW5nZSB0aGlzIHdvdWxkCgkgIG1ha2UgYWRkaW5nIGRlYnVnIGNhdGVnb3JpZXMgYWZ0ZXIgZ3N0X2luaXQoKSB2ZXJ5IHZlcnkgdmVyeSBzbG93LgoKMjAxNy0xMi0wMSAxMzozMzo0OCAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW4tc2Nhbm5lcjogTWVhc3VyZSBzdHJpbmcgbGVuZ3RoIGluIGJ5dGVzCgkgIGdfc3RybmR1cCgpIHdhbnRzIGEgbnVtYmVyIG9mIGJ5dGVzIHRvIGNvcHksIHNvIHVzZSBzdHJsZW4gaW50ZWFkIG9mCgkgIFVURi04IHN0cmxlbiBmdW5jdGlvbi4KCjIwMTctMTEtMzAgMTc6NDk6MTAgKzAxMDAgIE1pY2hhZWwgVHJldHRlciA8bS50cmV0dGVyQHBlbmd1dHJvbml4LmRlPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cGNsb2NrOiBkbyBub3QgcmVxdWlyZSBhIG5hbWUgdG8gY3JlYXRlIGEgY2xvY2sKCSAgVGhlIGdzdF9wdHBfY2xvY2tfbmV3KCkgZG9lcyBub3QgYWN0dWFsbHkgcmVxdWlyZSBhIG5hbWUuIEhvd2V2ZXIsIGZvcgoJICBleGFtcGxlIHRoZSBydHBqaXR0ZXJidWZmZXIgbWF5IGNyZWF0ZSBhIGNsb2NrIHdpdGhvdXQgYSBuYW1lLCBmYWlsLCBhbmQKCSAgZmFsbCBiYWNrIHRvIG5vdCB1c2luZyB0aGUgUFRQIGNsb2NrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkxMDM0CgoyMDE3LTExLTI4IDIzOjM3OjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IGdzdC1pbnNwZWN0OiBmaXggcmVhZGFibGUgZmxhZyBwcmludGluZyBmb3IgcGFkIHByb3BlcnRpZXMKCjIwMTctMTEtMjcgMjA6MDk6NDIgKzExMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gM2Y0YWE5NiB0byBlOGM3YTcxCgoyMDE3LTExLTI2IDEzOjMxOjI4IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIFJldmVydCAicHJlc2V0OiBEbyBub3Qgc2F2ZSBkZXByZWNhdGVkIHByb3BlcnRpZXMiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgODFlMTBmNjEyMzFhZDU2Y2E0YWEwNzI3ODk5M2I4N2M2ZWMwZjA1OC4KCSAgQSBtaXN0YWtlIGxlYWQgdG8gY29tbWl0dGluZyBpdCB0d2ljZSBpbiBhIHdlaXJkIHdheS4KCjIwMTctMTEtMDMgMTI6MjA6NDcgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHByZXNldC5jOgoJICBwcmVzZXQ6IERvIG5vdCBzYXZlIGRlcHJlY2F0ZWQgcHJvcGVydGllcwoJICBJdCB3aWxsIGdfd2FybiB1cG9uIGRlc2VyaWFsaXphdGlvbiBhbmQgd2Ugc2hvdWxkIG5vdCB1c2UKCSAgdGhvc2UgYW55d2F5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg5ODcxCgoyMDE3LTExLTA4IDEyOjQ2OjQ0IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBBdm9pZCBhc3NlcnRpb25zIHdoZW4gZ2V0dGluZyB0YWcgbmljayBmcm9tIHVucmVnaXN0ZXIgdGFnCgkgIFdpdGggc2VyaWFsaXplZCBHc3REaXNjb3ZlcmVySW5mb3Mgd2UgbWlnaHQgZW5kIHVwIHRyeWluZyB0byB1c2UKCSAgdGFncyB0aGF0IGhhdmUgbm90IGJlZW4gcmVnaXN0ZXJlZC4KCjIwMTctMTEtMDMgMTI6MjM6NTAgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgcHJlc2V0OiBEbyBub3Qgc2F2ZSBkZXByZWNhdGVkIHByb3BlcnRpZXMKCSAgSXQgd2lsbCBnX3dhcm4gdXBvbiBkZXNhcmlhbGl6YXRpb24gYW5kIHdlIHNob3VsZCBub3QgdXNlCgkgIHRob3NlIGFueXdheS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4OTg3MQoKMjAxNy0xMC0xMyAwMDoyMTowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJICB0cmFjZXJzOiBsb2c6IG5vIG5lZWQgdG8gbGluayB0byBvdXIgaW50ZXJuYWwgcHJpbnRmIGltcGxlbWVudGF0aW9uCgkgIFRoZSBjYWxsIHRvIF9fZ3N0X3Zhc3ByaW50ZigpIHdhcyByZW1vdmVkIGluIGNvbW1pdCAxYTNlMjE4YjguCgoyMDE3LTExLTI2IDAwOjIwOjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IGdzdC1pbnNwZWN0OiBkb24ndCBwcmludCBlbGVtZW50IGZsYWdzIHdoY2ggYXJlIGFsd2F5cyAnbm9uZScKCSAgV2UgcHJpbnQgdGhlIGludGVyZXN0aW5nIGZsYWdzIGxpa2UgY2xvY2tpbmcgY2FwYWJpbGl0aWVzIHNlcGFyYXRlbHkKCSAgbGF0ZXIsIHRoaXMgZnVuY3Rpb24ganVzdCBhbHdheXMgcHJpbnRzICdub25lJywgc28gcmVtb3ZlIGl0LgoKMjAxNy0xMS0yNSAyMzo0Mzo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogZ3N0LWluc3BlY3Q6IHByaW50IHBhZCBwcm9wZXJ0aWVzIHdoZXJlIHdlIGtub3cgdGhlIHN1YmNsYXNzIHR5cGUKCjIwMTctMTEtMjUgMjI6Mjc6MDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogZ3N0LWluc3BlY3Q6IHJlZmFjdG9yIHdheSBpbmRlbnRhdGlvbiBpcyBkb25lIGR1cmluZyBwcmludGluZwoKMjAxNy0xMS0yNSAxMzowNzoxMiArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGdzdGluZm86IFVzZSBmcmVlIGluc3RlYWQgb2YgZ19mcmVlCgkgIEJlY2F1c2UKCjIwMTctMTEtMjUgMTI6NDQ6MTEgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBnc3RpbmZvOiBEb24ndCBsZWFrIGFycmF5IG9mIHN0cmluZ3MKCSAgVGhlIGFycmF5IHByb3ZpZGVkIGJ5IGJhY2t0cmFjZV9zeW1ib2xzIG5lZWRzIHRvIGJlIGZyZWVkLgoKMjAxNy0xMS0yNCAxMjowODowNyArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgY2hlY2svYnVmZmVyOiBSZW1vdmUgdXNsZXNzIG1lbWNtcCB3aXRoIGVtcHR5IHNpemUKCSAgMSkgY2hlY2tpbmcgbm90aGluZyBhZ2FpbnN0IG5vdGhpbmcgaXMgcG9pbnRsZXNzCgkgIDIpIG1lbWNtcCBuZWVkcyB0byBiZSBwcm92aWRlZCBub24tTlVMTCBhcmd1bWVudHMKCjIwMTctMTEtMjQgMTI6MDU6MjYgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0dXRpbHM6IEZpeCBsaW5lYXIgcmVncmVzc2lvbiBjb21wYXJpc2lvbgoJICBUaGUgY2hlY2sgZm9yIGRyb3BwaW5nIHByZWNpc2lvbiB3YXMgd3Jvbmcgd2hlbiBzeHggYW5kIHN5eSB3ZXJlIG5lZ2F0aXZlLgoJICBpZiB0aGV5IGFyZSBuZWdhdGl2ZSB0aGVuICJHX01BWElOVDY0IC0gdmFsIiB3b3VsZCBhbHdheXMgb3ZlcmZsb3cKCSAgVGhlIGNoZWNrIHdhcyBtZWFudCB0byB1c2UgR19NSU5JTlQ2NCAobGlrZSBpbiB0aGUgbG9vcCBjb250YWluZWQganVzdAoJICBhZnRlcikuCgoyMDE3LTExLTI0IDEzOjU4OjAxICsxMTAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IGFkZCBtaXNzaW5nIGhhcm5lc3MgZnVuY3Rpb24gdG8gc3ltYm9sIGV4cG9ydCBsaXN0CgkgIEZpeGVzIGluIHVzZXIgY29kZToKCSAgdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgZ3N0X2hhcm5lc3NfYWRkX2VsZW1lbnRfc2lua19wYWQnCgkgIEFsc28gcmVvcmRlciBoYXJuZXNzIGZ1bmN0aW9uIGxpc3QgdG8gYmUgc3RyaWN0bHkgaW4gYWxwaGFiZXRpY2FsIG9yZGVyIGFuZAoJICBkb3VibGUgY2hlY2sgdGhlIGxpc3Qgd2l0aDoKCSAgYXdrICd7IGlmICgkMSAhfiAvI2RlZmluZS8pIGlmICgkMiB+IC9nc3RfaGFybmVzc18vKSB7IHByaW50ICQyIH07IGlmICgkMyB+IC9nc3RfaGFybmVzc18vKSB7IHByaW50ICQzfSB9JyBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmggfCBzb3J0CgoyMDE3LTExLTI0IDEzOjQxOjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY2Fwc2ZpbHRlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9kYXRhdXJpc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmRzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmFsdmUuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjaGlsZHByb3h5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udGV4dC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y3BwLmNjOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmRleC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFyYW1zcGVjcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwb2xsLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwcmVzZXQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByaW50Zi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJvbWlzZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJvdGVjdGlvbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cmVhbS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWdzZXR0ZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhc2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0aGFybmVzcy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0dGVzdGNsb2NrLmM6CgkgIHRlc3RzOiBpbmNsdWRlIGNvbmZpZy5oIGFuZCBkb24ndCBpbmNsdWRlIHVuaXggaGVhZGVycwoJICBJbiBtYW55IGNhc2VzIHRoZSB1bmlzdGQuaCBpbmNsdWRlcyB3ZXJlbid0IGFjdHVhbGx5IG5lZWRlZC4KCSAgUHJlcGFyYXRpb24gZm9yIG1ha2luZyB0ZXN0cyB3b3JrIG9uIFdpbmRvd3Mgd2l0aCBNU1ZDLgoKMjAxNy0xMS0yNCAxMzoyMTo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzoKCSAgdGVzdHM6IGFkZCBtaXNzaW5nIGxpY2Vuc2UgaGVhZGVyIHRvIHRlc3RfdHJhbnNmb3JtLmMKCjIwMTctMTEtMTAgMTY6MjY6NTAgKzAxMDAgIE1pa2hhaWwgRmx1ZGtvdiA8bWlzaGFAcGV4aXAuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkqIHBsdWdpbnMvTWFrZWZpbGUuYW06CgkgIGdzdHRyYWNldXRpbHM6IGFjdHVhbGx5IGRpc2FibGUgdHJhY2luZyBzeXN0ZW0gaG9va3MgaWYgY29uZmlndXJlZAoJICBgLi9jb25maWd1cmUgLS1kaXNhYmxlLWdzdC10cmFjZXItaG9va3NgIGRpZG4ndCBkbyBhbnl0aGluZywgaG9va3Mgd2VyZQoJICBhbHdheXMgZW5hYmxlZCByZWdhcmRsZXNzIG9mIHRoZSBvcHRpb24uIEl0IHdvcmtzIGNvcnJlY3RseSBpbiB0aGUKCSAgTWVzb24gYnVpbGQgdGhvdWdoLgoKMjAxNy0xMC0yNiAxMjowOTowNyArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXRpbHM6IGFkZCBnc3RfdXRpbHNfZHVtcF9idWZmZXIoKQoJICBVc2VmdWwgZm9yIGRlYnVnZ2luZy4KCjIwMTctMTAtMTAgMTU6NDQ6NTEgKzAyMDAgIEjDpXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiBwa2djb25maWcvbWVzb24uYnVpbGQ6CgkgIG1lc29uLmJ1aWxkOiB1c2Ugam9pbl9wYXRocygpIG9uIHByZWZpeAoJICBTbyB0aGF0ICIvIiBhcmUgY29ycmVjdCBvbiBXaW5kb3dzIGFuZCB0aGUgcGF0aHMgaW4KCSAgdGhlIC5wYyBmaWxlcyBhcmUgbGlrZSBDOi9zb21lL3doZXJlIGFuZCBub3QKCSAgQzpcc29tZVx3aGVyZS4KCjIwMTctMTEtMjQgMDk6NDk6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIGxpYnM6IGZpeCBpbmRlbnRhdGlvbgoKMjAxNy0wOC0xOCAxNDozMDozMiArMDIwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBwYWQ6IGdzdF9wYWRfYWN0aXZhdGVfbW9kZSgpIGFsd2F5cyBzdWNjZWVkIGlmIHNhbWUgbW9kZQoJICBDaGVja2luZyB0aGF0IHRoZSBwYWQgaXMgaW4gdGhlIGNvcnJlY3QgbW9kZSBiZWZvcmUgdGhlIHBhcmVudCBpcwoJICBjaGVja2VkIG1ha2VzIHRoZSBjYWxsIGFsd2F5cyBzdWNjZWVkIGlmIHRoZSBtb2RlIGlzIG9rLgoJICBUaGlzIGZpeGVzIGEgcmFjZSB3aXRoIGdob3N0cGFkIHdoZXJlIGdzdF9wYWRfYWN0aXZhdGVfbW9kZSgpIGNvdWxkCgkgIHRyaWdnZXIgYSBnX2NyaXRpY2FsKCkgaWYgdGhlIGdob3N0cGFkIGlzIHVucGFyZW50ZWQgd2hpbGUgdGhlCgkgIHByb3h5cGFkIGlzIGRlYWN0aXZhdGluZywgZm9yIGluc3RhbmNlIGlmIHRoZSBnaG9zdHBhZCBpcyByZWxlYXNlZC4KCSAgTW9yZSBzcGVjaWZpY2FsbHksIGdzdF9naG9zdF9wYWRfaW50ZXJuYWxfYWN0aXZhdGVfcHVzaF9kZWZhdWx0KCkncwoJICBjYWxsIHRvIGdzdF9wYWRfYWN0aXZhdGVfbW9kZSgpIHdvdWxkIGZhaWwgaWYgZ2hvc3RwYWQgZG9lc24ndCBoYXZlIGEKCSAgcGFyZW50LiBXaXRoIHRoaXMgcGF0Y2ggaXQgd2lsbCByZXR1cm4gdHJ1ZSBvZiBtb2RlIGlzIGFscmVhZHkKCSAgY29ycmVjdC4KCjIwMTctMDMtMzEgMTY6MzY6MDUgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5oOgoJICBnc3RiYXNldHJhbmZvcm06IHJlcGxhY2UgR1NUX0JBU0VfVFJBTlNGT1JNIHdpdGggR1NUX0JBU0VfVFJBTlNGT1JNX0NBU1QKCSAgVG8gYXZvaWQgYSBnbG9iYWwgdHlwZS1sb2NrIG9uIGNoYWluIGV0Yy4KCjIwMTctMTEtMjQgMDk6NTM6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IHJldHVybiBUUlVFIGlmIHRhcmdldCBwYWQgd2FzIGFscmVhZHkgc2V0CgkgIFRoZSBzdGF0ZSBpcyBhcyBpdCBzaG91bGQgYmUsIHNvIG5vIHJlYXNvbiB0byByZXR1cm4KCSAgRkFMU0UgcmVhbGx5LCBldmVyeXRoaW5nJ3MgZ29vZC4KCjIwMTctMTEtMjQgMDk6NDA6MDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IGFjY2VzcyBpbnRlcm5hbCBwYWQgd2l0aCBsb2NrIGhlbGQKCjIwMTctMDMtMzAgMDk6MTc6MDggKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IGZpeCByYWNlLWNvbmRpdGlvbiB3aGlsZSB0ZWFyaW5nIGRvd24KCSAgQW4gdXBzdHJlYW0gcXVlcnkgd2lsbCB0YWtlIGEgcmVmIG9uIHRoZSBpbnRlcm5hbCBwcm94eXBhZCwgYW5kIGNhbgoJICBoZW5jZSBlbmQgdXAgb3duaW5nIHRoZSBsYXN0IHJlZmVyZW5jZSB0byB0aGF0IHBhZCwgY2F1c2luZyBhIGNyYXNoLgoKMjAxMy0wMy0yMyAxMzo0NDo1MSArMDEwMCAgSGFha29uIFNwb3JzaGVpbSA8aGFha29uLnNwb3JzaGVpbUBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogQWRkIHRlc3Qgc3VpdGUgdGltZSBlbGFwc2VkIG91dHB1dAoKMjAxNy0xMS0yMyAxNToyODozOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IE9ubHkgY2FsY3VsYXRlIGxldmVsIGlmIHdlIGhhdmUgdmFsaWQgbGV2ZWxzCgkgIERvaW5nIGNhbGN1bGF0aW9ucyB3aXRoIEdTVF9DTE9DS19TVElNRV9OT05FIHdvdWxkIHJlc3VsdCBpbgoJICBjb21wbGV0ZWx5IGJvZ3VzIGxldmVscwoKMjAxNy0xMS0yMyAxMzo1Njo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogYWxsb2NhdGUgc2xpZ2h0bHkgbGFyZ2VyIHRoYW4gbmVlZGVkIHRhYmxlcyBhdCBzdGFydHVwCgkgIElmIHdlIHByZS1hbGxvY2F0ZSBvbmx5ICpleGFjdGx5KiBhcyBtYW55IG5vZGVzIGFzIHdlIG5lZWQgZm9yIHRoZQoJICBjb3JlIHR5cGVzLCB3ZSBhcmUgcHJhY3RpY2FsbHkgZ3VhcmFudGVlZCBhIHJlLWFsbG9jIHdoZW4gZXh0ZXJuYWwKCSAgY29kZSBsaWtlIEdzdFZpZGVvVGltZUNvZGUgb3IgR3N0RW5jb2RpbmdQcm9maWxlIHJlZ2lzdGVyIHRoZWlyCgkgIG93biBHc3RWYWx1ZSB0aGluZ3MuIFNvIGFsbG9jYXRlIGEgYml0IG1vcmUgdGhhbiBzdHJpY3RseSBuZWVkZWQuCgoyMDE3LTExLTA2IDIxOjEwOjU0ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZCB0ZW1wbGF0ZXM6IEFsbG93IHNwZWNpZnlpbmcgR1R5cGUKCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzEzMDEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4OTk4NgoKMjAxNy0xMS0yMiAxNTo1OTozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIGZvciBsYXRlc3QgcHJvbWlzZSBhcGkgY2hhbmdlcwoKMjAxNy0wNC0wMyAyMjoyMDo1MSArMTAwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0cHJvbWlzZS5jOgoJKiBnc3QvZ3N0cHJvbWlzZS5oOgoJKiBnc3QvbWVzb24uYnVpbGQ6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByb21pc2UuYzoKCSogdGVzdHMvY2hlY2svbWVzb24uYnVpbGQ6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3Q6IGFkZCBhIHByb21pc2Ugb2JqZWN0CgkgIEFuIG9iamVjdCB0aGF0IGNhbiBiZSB3YWl0ZWQgb24gYW5kIGFza2VkIGZvciBhc3luY2hyb25vdXMgdmFsdWVzLgoJICBJbiBtdWNoIHRoZSBzYW1lIHdheSBhcyBwcm9taXNlL2Z1dHVyZXMgaW4ganMvamF2YS9ldGMKCSAgQSBjYWxsYmFjayBjYW4gYmUgaW5zdGFsbGVkIGZvciB3aGVuIHRoZSBwcm9taXNlIGNoYW5nZXMgc3RhdGUuCgkgIE9yaWdpbmFsIGlkZWEgYnkKCSAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgkgIFdpdGggY29udHJpYnV0aW9ucyBmcm9tCgkgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCSAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldUBjZW50cmljdWxhci5jb20+CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODk4NDMKCjIwMTctMTEtMjAgMTc6MDE6MDQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnljaHVua3M6IE1ha2Ugc3VyZSB3ZSB1c2UgYWxpZ25lZCBtZW1vcnkKCSAgVGhpcyBpcyBpbiB0aGUgc2FtZSB2ZWluIGFzIGZvciBhbGwgb3RoZXIgZmVhdHVyZXMuIFNvbWUgc3lzdGVtcwoJICBtaWdodCBub3QgYWxsb3cgdW5hbGlnbmVkIHJlYWQuCgoyMDE3LTExLTE3IDAwOjE1OjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IGdzdC1pbnNwZWN0OiBzdG9wIHByaW50aW5nIGVsZW1lbnQgc3RhdGVfY2hhbmdlIGZ1bmN0aW9uCgkgIFRoaXMgaXMgcmVhbGx5IG5vdCBpbnRlcmVzdGluZyBhdCBhbGwsIG5vdCBzdXJlIHdoeSB3ZSBwcmludCB0aGlzLgoKMjAxNy0xMS0xNyAwMDoxNDozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiBnc3QtaW5zcGVjdDogZml4IGRvdWJsZSBlbXB0eSBsaW5lIGFmdGVyIHBhZCB0ZW1wbGF0ZXMKCjIwMTctMTEtMTYgMTA6NDc6NDYgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJICBnc3RwYWQ6IE1ha2UgcGFkIChkZSlhY3RpdmF0aW9uIGF0b21pYwoJICBUaGUgZm9sbG93aW5nIGNvdWxkIGhhcHBlbiBwcmV2aW91c2x5OgoJICAqIFQxOiBjYWxscyBnc3RfcGFkX3NldF9hY3RpdmUoKQoJICAqIFQyOiBjdXJyZW50bHkgKGRlKWFjdGl2YXRpbmcgaXQKCSAgKiBUMTogZ3N0X3BhZF9zZXRfYWN0aXZlKCkgcmV0dXJucywgY2FsbGVyIGFzc3VtZXMgdGhhdCB0aGUgcGFkIGhhcwoJICBjb21wbGV0ZWQgdGhlIHJlcXVlc3RlZCAoZGUpYWN0aXZhdGlvbiAuLi4gd2hlcmVhcyBpdCBpcyBub3QKCSAgdGhlIGNhc2Ugc2luY2UgdGhlIGFjdHVhbCAoZGUpYWN0aXZhdGlvbiBpbiBUMiBtaWdodCBzdGlsbCBiZQoJICBnb2luZyBvbi4KCSAgVG8gZW5zdXJlIGF0b21pY2l0eSBvZiBwYWQgKGRlKWFjdGl2YXRpb24sIHdlIHVzZSBhIGludGVybmFsCgkgIHZhcmlhYmxlIChhbmQgY29uZCkgdG8gZW5zdXJlIG9ubHkgb25lIHRocmVhZCBhdCBhIHRpbWUgZ29lcyB0aHJvdWdoCgkgIHRoZSBhY3R1YWwgKGRlKWFjdGl2YXRpb24gYmxvY2sKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5MDQzMQoKMjAxNy0xMS0xNiAwODoyNjoxMiArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBNYWtlIGNhbGxzIHRvIEdzdFBhZEFjdGl2YXRlRnVuY3Rpb24gTVQtc2FmZQoJICBjaGVja2luZyB3aGV0aGVyIHdlIGFscmVhZHkgd2VyZSBpbiB0aGUgdGFyZ2V0IEdzdFBhZE1vZGUgd2FzIGJlaW5nCgkgIGRvbmUgdG9vIGVhcmx5IGFuZCB0aGVyZSB3YXMgdGhlIHJpc2sgdGhhdCB3ZSAqd291bGQqIGVuZCB1cAoJICAoZGUpYWN0aXZhdGluZyBhIHBhZCBtb3JlIHRoYW4gb25jZS4KCSAgSW5zdGVhZCwgcmUtZG8gdGhlIGNoZWNrIGZvciBwYWQgbW9kZSB3aGVuIGVudGVyaW5nIHRoZSBmaW5hbCBwYWQKCSAgKGRlKWFjdGl2YXRpb24gYmxvY2suCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTA0MzEKCjIwMTctMTEtMTAgMTI6MDc6MjggLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkgIHBhcmFtc3BlYzogTW92ZSBjb25kaXRpb24gY2hlY2sgaW5zaWRlIHRoZSBnX3JldHVybgoJICBJdCdzIG1vc3RseSBhIGRlYnVnIGNoZWNrIGFuZCBjcmFzaCBhdm9pZGFuY2UsIGl0J3MgYmV0dGVyIHRvCgkgIGtlZXAgYWxsIHRoZSBjb25kaXRpb24gaW5zaWRlIHRoZSBtYWNyby4KCjIwMTctMTEtMTAgMTI6MDM6MDAgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkgIHBhcmFtc3BlYzogQWRkIG1pc3Npbmcgc2luY2UgZm9yIF9zcGVjX2FycmF5KCkKCjIwMTctMTEtMTAgMTQ6MTA6MzEgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJICBjb25jYXQ6IEhhbmRsZSBzaW5nbGUtcGFkIHVzZS1jYXNlcwoJICBXaGVuIEVPUyByZWFjaGVzIGNvbmNhdCwgaXQgd2lsbCBzd2l0Y2ggdG8gdGhlIG5leHQgY2FuZGlkYXRlIGFzIGl0cwoJICBhY3RpdmF0ZSBwYWQuCgkgIFRoZSBwcm9ibGVtIGFyaXNlcyB3aGVuIHRoZXJlIGlzIG9ubHkgb25lIHNpbmtwYWQsIHRoZSAiYWN0aXZlIiBwYWQKCSAgYmVjb21lcyBOVUxMLiBUaGlzIHJlc3VsdHMgaW4gY29uY2F0IGJlY29taW5nIHVudXNhYmxlIGFmdGVyIGl0IHJlY2VpdmVzCgkgIGEgKnNpbmdsZSogRU9TIG9uIGl0cyBzaW5nbGUgc2lua3BhZC4KCSAgSWYgd2UgZGV0ZWN0IHRoZXJlIGlzIGEgc2luZ2xlIHNpbmtwYWQgYW5kIHRoZXJlIGlzIG5vIGN1cnJlbnQgYWN0aXZlIHBhZDoKCSAgKiBJZiB3ZSBhcmUgd2FpdGluZyAoZnJvbSBzZWxlY3RlZCBzaW5rIGV2ZW50L2J1ZmZlciksIGJlY29tZSB0aGUgY3VycmVudAoJICBhY3RpdmUgcGFkLgoJICAqIElmIHRoZXJlIGlzIGEgc2VlayByZXF1ZXN0LCBzZW5kIGl0IHVwc3RyZWFtLiBXZSBkb24ndCBzd2l0Y2ggdGhlCgkgIGFjdGl2ZV9zaW5rcGFkIHByb3BlcnR5IGF0IHRoYXQgcG9pbnQgaW4gdGltZSwgc2luY2UgdGhlIHNlZWsgY291bGQKCSAgZmFpbC4gSWYgdGhlIHNlZWsgc3VjY2VlZHMsIHRoZSBmb2xsb3dpbmcgU0VHTUVOVCAob3IgU1RSRUFNX1NUQVJUKQoJICB3aWxsIGNhdXNlIHRoZSBwYWRfd2FpdCgpIHRvIGVsZWN0IHRoYXQgcGFkIGFzIHRoZSBuZXcgYWN0aXZlIG9uZS4KCSAgKiBGbHVzaCBldmVudHMgZ2V0IGZvcndhcmRlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkwMTY3CgoyMDE3LTExLTA5IDE3OjM4OjE5ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuYzoKCSAgY29uY2F0OiBNYWtlIFFvUyBmb3J3YXJkIE1ULXNhZmUKCSAgSW4gdGhlIHNhbWUgd2F5IGl0J3MgZG9uZSBmb3Igb3RoZXIgZXZlbnQgZm9yd2FyZGluZy4KCjIwMTctMDQtMTMgMTY6Mjg6NTQgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSAgbGF0ZW5jeSB0cmFjZXI6IGFkZCB0aW1lc3RhbXAgdG8gdHJhY2VyIHJlY29yZHMKCSAgSW5jbHVkZSB0aGUgdGltZXN0YW1wIG9mIHRoZSByZWNvcmRlZCBsb2cgYXMgaW4gdGhlICdzdGF0cycgdHJhY2VyLgoJICBUaGlzIGNhbiBiZSB1c2VmdWwsIGZvciBleGFtcGxlLCB0byBwbG90IGEgZ3JhcGggc2hvd2luZyB0aGUgbGF0ZW5jeQoJICBvdmVyIHRpbWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODEzMTUKCjIwMTctMTEtMDQgMTE6NDU6NTQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIHR5cGVmaW5kaGVscGVyOiBGaXggb3ZlcmZsb3cgc29tZSBtb3JlCgkgIE5vdGhpbmcgZ3VhcmFudGVlZCB0aGF0IG9mZitzaXplIHdvdWxkbid0IGV4Y2VlZCBhIDIqKjY0IHZhbHVlLgoJICBJbnN0ZWFkIHdlIHJldmVyc2UgdGhlIG9wZXJhdGlvbiBhbmQgdXNlIGEgc3VidHJhY3Rpb24uCgoyMDE3LTExLTA0IDEwOjM0OjEwICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICB0eXBlZmluZGhlbHBlcjogRml4IHNpZ25lZCBpbnRlZ2VyIG92ZXJmbG93CgkgIE1ha2Ugc3VyZSB0aGUgd2hvbGUgY2FsY3VsYXRpb24gaXMgZG9uZSB3aXRoIDY0Yml0IHVuc2lnbmVkIHZhbHVlcwoJICAoVG8gYmUgcmVhZHkgZm9yIHBlb3BsZSB3YW50IHRvIHR5cGVmaW5kIGV4YWJ5dGUgZmlsZXMpLgoKMjAxNy0wOC0wMSAxMTowNjozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBlbGVtZW50OiBhZGQgZ3N0X2VsZW1lbnRfZm9yZWFjaF8qcGFkKCkKCSAgQWRkIGNvbnZlbmllbmNlIEFQSSB0aGF0IGl0ZXJhdGVzIG92ZXIgYWxsIHBhZHMsIHNpbmsgcGFkcyBvcgoJICBzb3VyY2UgcGFkcyBhbmQgbWFrZXMgc3VyZSB0aGF0IHRoZSBmb3JlYWNoIGZ1bmN0aW9uIGlzIGNhbGxlZAoJICBleGFjdGx5IG9uY2UgZm9yIGVhY2ggcGFkLgoJICBUaGlzIGlzIGEgS0lTUyBpbXBsZW1lbnRhdGlvbi4gSXQgZG9lc24ndCB1c2UgR3N0SXRlcmF0b3IgYW5kCgkgIGRvZXNuJ3QgdHJ5IHRvIGRvIGNsZXZlciB0aGluZ3MgbGlrZSByZXN5bmMgaWYgcGFkcyBhcmUgYWRkZWQKCSAgb3IgcmVtb3ZlZCB3aGlsZSB0aGUgZnVuY3Rpb24gaXMgZXhlY3V0aW5nLiBXZSBjYW4gc3RpbGwgZG8gdGhhdAoJICBpbiBmdXR1cmUgaWYgd2UgdGhpbmsgaXQncyBuZWVkZWQsIGJ1dCBpbiBwcmFjdGljZSBpdCB3aWxsCgkgIGxpa2VseSBtYWtlIGFic29sdXRlbHkgbm8gZGlmZmVyZW5jZSB3aGF0c29ldmVyLCBzaW5jZSB0aGVzZQoJICB0aGluZ3Mgd2lsbCBoYXZlIHRvIGJlIGhhbmRsZWQgcHJvcGVybHkgZWxzZXdoZXJlIGJ5IHRoZSBlbGVtZW50CgkgIGFueXdheSBpZiB0aGV5J3JlIGltcG9ydGFudC4KCSAgQWZ0ZXIgYWxsLCBpdCdzIGFsd2F5cyBwb3NzaWJsZSB0aGF0IGEgcGFkIGlzIGFkZGVkIG9yIHJlbW92ZWQKCSAganVzdCBhZnRlciB0aGUgaXRlcmF0b3IgZmluaXNoZXMgaXRlcmF0aW5nLCBidXQgYmVmb3JlIHRoZQoJICBmdW5jdGlvbiByZXR1cm5zLgoJICBUaGlzIGlzIGFsc28gYSByZXBsYWNlbWVudCBmb3IgZ3N0X2FnZ3JlZ2F0b3JfaXRlcmF0ZV9zaW5rX3BhZHMoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NTY3OQoKMjAxNy0xMC0yNyAxNDo1ODoyOCArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGVha3MuYzoKCSAgZ3N0bGVha3MuYzogYWx3YXlzIGxvZyBsZWFrcyBsaXN0aW5nCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODk1NTYKCjIwMTctMTEtMDEgMTI6Mjc6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvbWVzb24uYnVpbGQ6CgkgIG5ldDogQWRkIG5ldyBmaWxlIHRvIHRoZSBtZXNvbi5idWlsZAoKMjAxNy0xMS0wMSAxMTozMTo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL21pc2MvbmV0Y2xvY2stcmVwbGF5LmM6CgkgIGV4YW1wbGVzL25ldGNsb2NrLXJlcGxheTogRml4IGJ1aWxkCgoyMDE3LTEwLTMwIDEwOjQ5OjA2ICswMTAwICBSb2JlcnQgUm9zZW5ncmVuIDxyb2JlcnRyQGF4aXMuY29tPgoKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dXRpbHMuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHV0aWxzLmg6CgkgIG5ldHV0aWxzOiBBZGQgdXRpbCBmb3Igc2V0dGluZyBzb2NrZXQgRFNDUAoJICBVdGlsIGZ1bmN0aW9uIGZvciBzZXR0aW5nIFFvUyBEU0NQIGFkZGVkLCB0byByZW1vdmUgZHVwbGljYXRlZCBjb2RlIGluCgkgIG5ldGNsaWVudGNsb2NrIGFuZCBuZXR0aW1lcHJvdmlkZXIuIEZpeCBidWlsZCBlcnJvciBpZiBtaXNzaW5nIElQX1RPUy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NDczNwoKMjAxNy0xMC0zMSAxMTozOToyMyArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5oOgoJICBnc3R2YWx1ZTogQ2FzdCBHU1RfTUFLRV9GT1VSQ0MgYXJndW1lbnRzCgkgIFRvIG1ha2UgaXQgZXhwbGljaXQgdGhhdCB3ZSBhcmUgZGVhbGluZyB3aXRoIHVpbnQzMiB0YXJnZXRzCgkgIEF2b2lkcyBlcnJvbmVvdXMgIHJ1bnRpbWUgZXJyb3I6IGxlZnQgc2hpZnQgb2YgbmVnYXRpdmUgdmFsdWUgLTEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4OTcwMAoKMjAxNy0xMC0xMSAxMTowODoxMiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSAgbGF0ZW5jeS10cmFjZXI6IEV4Y2x1ZGUgc3luY2hyb25pemF0aW9uIHRpbWUKCSAgVGhlIGdvYWwgb2YgdGhpcyB0cmFjZXIgaXMgdG8gbWVhc3VyZSB0aGUgcHJvY2Vzc2luZyBsYXRlbmN5IGJldHdlZW4gYQoJICBzcmMgYW5kIGEgc2luay4gSW4gcHVzaCBtb2RlLCB0aGUgdGltZSB3YXMgcmVhZCBhZnRlciB0aGUgY2hhaW4gZnVuY3Rpb24KCSAgaGF2ZSByZXR1cm5lZC4gQXMgdGhlIGFtb3VudCBvZiB0aW1lIHdlIHdhaXQgdG8gZ2V0IHN5bmNoZWQgaXMgcmV2ZXJzZQoJICB0byB0aGUgYW1vdW50IG9mIGxhdGVuY3kgdGhlIHNvdXJjZSBpbnRyb2R1Y2VkLCB0aGUgcmVzdWx0IHdhcyBxdWl0ZQoJICBzdXJwcmlzaW5nLgoJICBUaGlzIHBhdGNoIG1vdmVzIHRoZSBsYXRlbmN5IGNhbGN1bGF0aW9uIGluIHRoZSBwcmUtcHVzaCBob29rLiBXaGVuCgkgIHRoZXJlIGlzIG5vIHByb2Nlc3NpbmcgaW4gYSBhIHBpcGVsaW5lIChlLmcuIGZha2VzcmMgISBmYWtlc2luayksIHRoZQoJICBsYXRlbmN5IHdpbGwgbm93IGJlIDAgYXMgaXQncyBzdXBwb3NlZCB0by4gRm9yIHB1bGwgbW9kZSwgdGhlIGNvZGUgd2FzCgkgIGFscmVhZHkgY29ycmVjdC4gV2hlbiBHc3RCYXNlU2luayBvcGVyYXRlIGluIHB1bGwgbW9kZSwgdGhlIHByb2Nlc3NpbmcKCSAgdGltZSBpcyBkb25lIGR1cnJpbmcgdGhlIHB1bGwsIHNvIHB1bGwtcG9zdCBpcyB0aGUgcmlnaHQgaG9vay4gVGhlCgkgIHN5bmNocm9uaXphdGlvbiB3aWxsIGhhcHBlbiBhZnRlciB0aGUgcHVsbCBoYXMgZW5kZWQuIE5vdGUgdGhhdAoJICBHc3RCYXNlU2luayByYXJlbHkgb3BlcmF0ZSBpbiBwdWxsIG1vZGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg0MzEKCjIwMTctMTAtMjcgMDk6NTM6MDYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IERvbid0IGFsbG93IGludmFsaWQgU0VMRUNUX1NUUkVBTVMgZXZlbnQgY3JlYXRpb24KCSAgQXNraW5nIHRvIHNlbGVjdCBubyBzdHJlYW1zIG1ha2VzIG5vIHNlbnNlIGFuZCBjYW4gY3JlYXRlIHZhcmlvdXMKCSAgaXNzdWVzLgoJICBJZiBvbmUgZG9lc24ndCBvbmUgYW55IHN0cmVhbSBpdCBzaG91bGQgZGVhY3RpdmF0ZSAob3Igbm90IHVzZSkgdGhlCgkgIGVsZW1lbnQgaW4gcXVlc3Rpb24uCgoyMDE3LTEwLTI1IDE3OjEwOjE1ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IEZpeCBidWlsZCB3aXRoIG9wdGlvbiBwYXJzaW5nIGRpc2FibGVkCgoyMDE3LTEwLTIwIDE3OjI4OjExICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogdXBkYXRlIHRoZSB0ZXN0cwoJICBCb3kgc2NvdXQgcnVsZS4gTWFrZSBpcyBhIGxpdHRsZSBsZXNzIHBhaW5mdWwgdG8gZGVidWcgdGhlIHRlc3RzIGJ5IHVzaW5nCgkgIGZhaWxfdW5sZXNzX2VxdWFsc197dWludDY0LGludDY0LGZsb2F0fSB3aGVyZSBhcHByb3ByaWF0ZS4gSWRlYWxseSB0aGUgbGFyZ2UKCSAgdGVzdHMgd291bGQgYmUgc3BsaXR0ZWQgdG8gYXZvaWQgZ3Vlc3NpbmcgZGF0YSBkZXBlbmRlbmNpZXMuCgoyMDE3LTEwLTIwIDE2OjE1OjAxICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgc2VnbWVudDogY2xhcmlmeSB0aGUgc2VnbWVudCBkb2NzIGZvciB0aGUgZHVyYXRpb24KCjIwMTctMTAtMjAgMTY6MTE6NDQgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBSZXZlcnQgInNlZ21lbnQ6IGFsc28gaW50aWFsaXplIHRoZSBkdXJhdGlvbiIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBmMWJhYWFlMTc1NTdmYTc1YTliY2Q5NDBiOTk0NTk3NzE0YmUyZjc0LgoKMjAxNy0xMC0yMCAxNDozMDo0MiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IGFsc28gaW50aWFsaXplIHRoZSBkdXJhdGlvbgoJICBJZiBzdGFydCBhbmQgc3RvcCBhcmUgc2V0LCBjYWxjdWxhdGUgdGhlIGR1cmF0aW9uIGFuZCBzZXQgaXQgdG9vLgoKMjAxNy0xMC0yMCAxMzowMjozNSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBwcmludCBtb3JlIGRldGFpbHMgZm9yIHR5cGVmaW5kIGFuZCB0cmFjZXIgZmVhdHVyZXMKCSAgUHJpbnQgZnVsbCBkZXRhaWxzIGZvciB0eXBlZmluZCBmZWF0dXJlcy4gUHJpbnQgc29tZSBvZiB0aGUgYXZhaWxhYmxlIGZlYXR1cmVzCgkgIGZvciB0cmFjZXJzIGFuZCBhZGQgc29tZSB0b2RvcyBmb3IgdGhlIG9uZXMgd2UnZCBsaWtlIHRvIHNlZS4KCjIwMTctMTAtMjAgMTE6MTY6NDYgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogcmVkdWNlIGNhc3RpbmcgYmFjayBhbmQgZm9ydGgKCSAgUmVmYWN0b3IgdGhlIHByaW50X2VsZW1lbnRfaW5mbygpIHRvIHRha2UgYSBHc3RQbHVnaW5GZWF0dXJlLiBSZWR1Y2VzIHRoZSBuZWVkCgkgIHRvIGNhc3QgdG8gYW5kIGZyb20gR3N0RWxlbWVudEZhY3RvcnkuCgoyMDE3LTEwLTIwIDExOjA4OjE0ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IHNpbXBsaWZ5IHRoZSBjb2RlIGZvciBwcmludGluZyBmZWF0dXJlIGluZm8KCSAgUmVuYW1lIHByaW50X2VsZW1lbnRfZmVhdHVyZXMoKSB0byBwcmludF9mZWF0dXJlX2luZm8oKSBhbmQgbW92ZSB0aGUgY29kZSB0aGF0CgkgIGhhbmRsZXMgdGhlIEVsZW1lbnRGYWN0b3J5IHRoZXJlLiBUaGlzIHNpbXBsaWZpZXMgdGhlIGNhbGxpbmcgY29kZSBhbmQgaW1wcm92ZXMKCSAgcmVhZGFiaWxpdHkuCgkgIEFsc28gZG9uJ3QgbGVhayB0aGUgZmVhdHVyZXMgZm9yIG90aGVyIGZhY3Rvcmllcy4KCjIwMTctMDYtMDIgMTY6Mjc6MjkgKzAyMDAgIFJvYmVydCBSb3NlbmdyZW4gPHJvYmVydHJAYXhpcy5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IEFkZCBwb3NzaWJpbGl0eSB0byBzZXQgUW9TIERTQ1AgdmFsdWUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NDczNwoKMjAxNy0wNi0wMSAxNTo0ODoxNiArMDIwMCAgUm9iZXJ0IFJvc2VuZ3JlbiA8cm9iZXJ0ckBheGlzLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgbmV0dGltZXByb3ZpZGVyOiBBZGQgcG9zc2liaWxpdHkgdG8gc2V0IFFvUyBEU0NQIHZhbHVlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODQ3MzcKCjIwMTctMTAtMTggMDI6MzE6MTIgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBzZXFudW06IE5ldmVyIHJldHVybiBhIHNlcW51bSBvZiAwLCByZXNldCBHU1RfU0VRTlVNX0lOVkFMSUQKCSAgVmFyaW91cyBwbHVnaW5zIHVzZSB0aGUgdmFsdWUgb2YgJzAnIGFzIGFuIGludmFsaWQgc2VxbnVtIHZhbHVlCgkgIChxdGRlbXV4IGZvciBtYXRjaGluZyBkdXBsaWNhdGVkIHNlZWsgZXZlbnRzLCBmb3IgZXhhbXBsZSkuIE1ha2UKCSAgdGhhdCBiZWhhdmlvdXIgZXhwbGljaXQsIGNyZWF0ZSBhIEdTVF9TRVFOVU1fSU5WQUxJRCB2YWx1ZSwKCSAgYW5kIGVuc3VyZSBnc3RfdXRpbF9zZXFudW1fbmV4dCBuZXZlciByZXR1cm5zIGl0LgoKMjAxNy0xMC0xNiAxNjowNjozNyArMDUzMCAgQXNoaXNoIEt1bWFyIDxrci5hc2hpc2hAc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSAgcXVldWVhcnJheTogRml4IGZvciBwb3NzaWJsZSBjcmFzaGVzIGR1ZSB0byBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2luZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4ODM4CgoyMDE3LTEwLTE1IDE1OjU5OjExICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogbWVudGlvbiB0aGUgcXVlcnkgZnVuY3Rpb24gaW4gdGhlIGRvY3MgYXMgd2VsbAoKMjAxNy0xMC0wNiAyMTo1OTowMyArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkgIGdzdGJ1ZmZlcjogZml4IG1ldGEgcmVtb3ZhbCBpbiBnc3RfYnVmZmVyX2ZvcmVhY2hfbWV0YQoJICBXaGVuIHVwZGF0aW5nIHRoZSBsaW5rZWQgbGlzdCwgcHJldi0+bmV4dCA9IG5leHQgaXMgY29ycmVjdAoJICBpZiBwcmV2IGlzIGFjdHVhbGx5IHVwZGF0ZWQgYWZ0ZXIgYmVpbmcgc2V0IHRvIHRoZSBoZWFkCgkgIG9mIHRoZSBsaXN0IGF0IHRoZSBzdGFydC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODYxNwoKMjAxNy0xMC0xMCAxNTo1MzozOCArMDIwMCAgZmVuZ2FsaW4gPGZlbmdhbGluQGZyZWUuZnI+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5jOgoJICBmbG93Y29tYmluZXI6IEZpeCB2ZXJzaW9uIGZvciByZWYgYW5kIHVucmVmIGZ1bmN0aW9ucwoJICBUaGUgZnVuY3Rpb25zIHdlcmUgaW50cm9kdWNlZCBpbiB2ZXJzaW9uIDEuMTIuMSwgR3N0Rmxvd0NvbWJpbmVyIHdhcwoJICBpbnRyb2R1Y2VkIGluIDEuNC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODc3OAoKMjAxNy0xMC0wNSAxMzozNToxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHVzZSBuZXcgZ3N0X2J1ZmZlcl9saXN0X2NhbGN1bGF0ZV9zaXplKCkgdXRpbGl0eSBmdW5jdGlvbgoKMjAxNy0xMC0wNSAxMDoyNDoyNCArMDUzMCAgQXNoaXNoIEt1bWFyIDxrci5hc2hpc2hAc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuYzoKCSAgZGV2aWNlLXByb3ZpZGVyOiBnc3RfZGV2aWNlX3Byb3ZpZGVyX3VuaGlkZV9wcm92aWRlcigpIGFsd2F5cyBmYWlscwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4NTIwCgoyMDE3LTEwLTA0IDE0OjE2OjQ2ICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiBnc3QvbWVzb24uYnVpbGQ6CgkqIGxpYnMvZ3N0L2Jhc2UvbWVzb24uYnVpbGQ6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvbWVzb24uYnVpbGQ6CgkqIGxpYnMvZ3N0L25ldC9tZXNvbi5idWlsZDoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiByZW1vdmUgdnNfbW9kdWxlX2RlZnMKCSAgVGhlIEdTVF9FWFBPUlQgc2hvdWxkIGhhbmRsZSBpdC4KCjIwMTctMTAtMDMgMTM6NTQ6MjUgLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bnRwcGFja2V0LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgVXNlIHByb3BlciBHdGtEb2Mgbm90YXRpb24gZm9yIE5VTEwvRkFMU0UvVFJVRQoKMjAxNy0xMC0wMiAxNzo1OToxNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBiaW46IGl0ZXJhdGVfc29ydGVkOiBFbnN1cmUgc291cmNlcyBhcmUgYWx3YXlzIHJldHVybmVkIGxhc3QKCSAgRm9yIGxpbmtlZCBlbGVtZW50cywgdGhlIHJlc3VsdGluZyBnc3RfYmluX2l0ZXJhdGVfc29ydGVkKCkgd2lsbAoJICBwcm9wZXJseSByZXR1cm4gZWxlbWVudHMgZnJvbSBzaW5rIHRvIHNvdXJjZXMuCgkgIElmIHdlIGhhdmUgc29tZSBlbGVtZW50cyB0aGF0IGFyZSBub3QgbGlua2VkLCB3ZSAqc3RpbGwqIHdhbnQgdG8KCSAgZW5zdXJlIHRoYXQgd2UgcmV0dXJuOgoJICAqIEluIHByaW9yaXR5IGFueSBzaW5rcwoJICAqIExhc3Qgb2YgYWxsIGFueSBzb3VyY2VzCgkgICogQW5kIGluIGJldHdlZW4gYW55IGVsZW1lbnQgd2hpY2ggaXMgbmVpdGhlciBzb3VyY2Ugbm9yIHNpbmsKCSAgRm9yIHRoaXMgdG8gd29yaywgd2hlbiBsb29raW5nIGZvciB0aGUgbmV4dCBjYW5kaWRhdGUgZWxlbWVudCwKCSAgbm90IG9ubHkgY2hlY2sgdGhlIGRlZ3JlZSBvcmRlciwgYnV0IGlmIHRoZXJlIGFyZSB0d28gY2FuZGlkYXRlcwoJICB3aXRoIHRoZSBzYW1lIGRlZ3JlZSBvcmRlciwgcHJlZmVyIHRoZSBub24tc291cmNlIG9uZS4KCSAgQW1vbmdzdCBvdGhlciB0aGluZ3MsIHRoaXMgZml4ZXMgdGhlIGNhc2Ugd2hlcmUgd2UgYWN0aXZhdGluZyBhCgkgIGJpbiBjb250YWluaW5nIHVubGlua2VkIHNvdXJjZXMgYW5kIG90aGVyIGVsZW1lbnRzLiBXaXRob3V0IHRoaXMKCSAgd2UgY291bGQgZW5kIHVwIGFjdGl2YXRpbmcgc291cmNlcyAod2hpY2ggbWlnaHQgc3RhcnQgYWRkaW5nIHBhZHMKCSAgdG8gYmUgbGlua2VkKSBiZWZvcmUgb3RoZXIgKHRvIHdoaWNoIHRob3NlIG5ldyBzb3VyY2UgZWxlbWVudCBwYWRzCgkgIG1pZ2h0IGJlIGxpbmtlZCkgYXJlIG5vdCBhY3RpdmF0ZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODQzNAoKMjAxNy0xMC0wMiAxNDoxMToxOSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkgIHRlZS10ZXN0OiBUZXN0IGEgcmVhbCB1c2UgY2FzZQoJICBUaGUgcmVhbCB1c2UgY2FzZSBpcyB3aGVuIGRvd25zdHJlYW0gZGlkbid0IHNldCBhIHBvb2wgb3IKCSAgYWxsb2NhdGlvbiBwYXJhbXMsIGluIHdoaWNoIGNhc2Ugd2UgZXhwZWN0IHRoZSB0ZWUgdG8gbm90CgkgIGNyZWF0ZSBhIHBvb2wgb3IgcGFyYW0gZnJvbSB0aGluIGFpci4gRG93c3RyZWFtIHNldHRpbmcKCSAgYW4gcG9vbCB3aXRoIHNpemU9MCB3YXMgaW4gZmFjdCB0ZXN0aW5nIGEgZG93bnN0cmVhbSBlbGVtZW50CgkgIGJ1Zy4gVGhlIGZhY3Qgd2UgaGFuZGxlIHRoYXQgaXMgYWNjaWRlbnRhbC4KCjIwMTctMTAtMDIgMTY6MjY6MzMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSAgdGVlOiBkb24ndCBjcmVhdGUgYSBwb29sIGlmIG5vbmUgaXMgbmVlZGVkCgkgIElmIHRoZSBhZ2dyZWdhdGVkIHNpemUgaXMgMCBhbmQgd2UgY3JlYXRlIGEgcG9vbCwgdGhlIHBvb2wgd291bGQgcHJvdmlkZQoJICBidWZmZXJzIHdpdGggbm8gbWVtb3J5IGFzc2lnbmVkLiBIYW5kbGUgdGhhdCBjYXNlIGFuZCBza2lwIHRoZSBwb29sLgoJICBUaGlzIHdhcyB0aGUgYmVoYXZpb3VyIGJlZm9yZSBjZjgwM2VhOWY0ZTNmZGU5MmMxZGE4NmVjYzQ3NDQ0MDM1ZjdjMGE3LgoJICBBZGQgYSB0ZXN0IGZvciB0aGlzIHNjZW5hcmlvLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwNzU4CgoyMDE3LTEwLTAyIDEzOjM1OjUyIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSAgdGVlOiBSZS1lbmFibGVkIGFsbG9jIHF1ZXJ5ICsgYWxsb3ctbm90LWxpbmtlZCB0ZXN0CgkgIEluIHRoZSB1bml0IHRlc3QgcmVmYWN0b3JpbmcsIHRoZSB1bmxpbmtlZCBwYWQgcmVxdWlyZWQgdG8gdGVzdAoJICB0aGUgZGlmZmVyZW50IGJlaGF2aW91ciBpbmR1Y2VkIGJ5ICJhbGxvdy1ub3QtbGlua2VkIiBwcm9wZXJ0eQoJICB3YXMgcmVtb3ZlZC4KCSAgQ29tbWl0IGUzNjRkNzk0NGVjYmFiODZkZWE3M2MwZWUzZTYzOWU3NjY5MzhkMzYKCSAgTW92ZSBhbGwgdGhlIGNvZGUgZm9yIHRoaXMgdGVzdCBpbiB0aGUgcHJvcGVyIGZ1bmN0aW9uLCBhbmQgcmUtYWRkCgkgIHRoZSBtaXNzaW5nIHVubGlua2VkIHBhZC4gVGhpcyBtYWtlcyB0aGUgdGVzdCB1c2VmdWwgYWdhaW4uCgoyMDE3LTEwLTAyIDE2OjI1OjAwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkgIHRlZTogc3BsaXQgdGhlIGFsbG9jYXRpb24gcXVlcnkgdGVzdAoJICBTcGxpdCB0aGUgbGFyZ2UgYWxsb2NhdGlvbl9xdWVyeSB0ZXN0IGludG8gc2VwZXJhdGUgdGVzdHMuIEFkZCBhIHNldHVwIGhlbHBlcgoJICB0byByZWR1Y2UgY29kZSBkdXBsaWNhdGlvbi4gRml4IHRoZSBvcmlnaW5hbCB0ZXN0IHRoYXQgdXNlZCBmYWlsX3VubGVzcyBpbnN0ZWFkCgkgIG9mIGNrX2Fzc2VydF9pbnRfZXEgYW5kIGhhZCBpdCBhY2NpZGVudGlhbGx5IHdvcmtpbmcuCgoyMDE3LTEwLTAyIDE2OjIyOjAwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGFkZCBhIHRvZG8gY29tbWVudAoJICBQcmludGluZyBOVUxMIGlzIGNvbmZ1c2luZyB3aGVuIHRoZSB0eXBlIGlzIGUuZy4gYSBHQXJyYXkgdGhhdCBpcyBub3QgZW1wdHkuCgoyMDE3LTEwLTAyIDEzOjE0OjIxICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBkb2MgY29uc2lzdGVuY3kKCSAgTWVudGlvbiB0aGF0IGl0IGlzIHRoZSAnYnVmZmVyIHNpemUnLCBsaWtlIHdlIGRvIGVsc2V3aGVyZS4KCjIwMTctMDktMjggMTA6MTc6NTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSBleHBvcnRzIGZpbGUKCjIwMTctMDktMjcgMjA6Mjk6MDYgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXVAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIGdzdDogTW9kaWZ5IGJlaGF2aW91ciBvZiBnc3RfZ2V0X21haW5fZXhlY3V0YWJsZV9wYXRoCgkgIFRvIGFjdHVhbGx5IHJldHVybiB0aGUgcGF0aCBvZiB0aGUgZXhlY3V0YWJsZSwgbm90IGl0cwoJICBkaXJlY3RvcnkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODgyNTYKCjIwMTctMDktMjYgMjE6NTE6NTMgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXVAY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3Q6IEFQSTogZ3N0X2dldF9tYWluX2V4ZWN1dGFibGVfcGF0aCgpCgkgIFRoaXMgaXMgdXNlZnVsIGZvciBwbHVnaW5zIHRoYXQgbmVlZCB0byBpbnNwZWN0IHRoZQoJICBmb2xkZXIgb2YgdGhlIG1haW4gZXhlY3V0YWJsZSBpbiBvcmRlciB0byBkZXRlcm1pbmUgdGhlCgkgIHNldCBvZiBmZWF0dXJlcyB0aGV5IHdpbGwgZXhwb3NlLCBmb3IgZXhhbXBsZToKCSAgaHR0cHM6Ly9naXRodWIuY29tL2NlbnRyaWN1bGFyL2dzdHJlYW1lci12c3QzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODgyMTQKCjIwMTctMDktMjcgMTM6MDc6MjUgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXVAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IERvIG5vdCB0cnkgdG8gZGV0ZXJtaW5lIGV4ZWN1dGFibGUgcGF0aCBvbiBpT1MuCgkgIFRoZSBtZXRob2QgdXNlZCByZWxpZXMgb24gImxpYnByb2MuaCIsIHdoaWNoIGlzIG9ubHkgYXZhaWxhYmxlCgkgIG9uIE9TWC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODIzNAoKMjAxNy0wOS0yNyAxMzowMToxMyArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogRml4IHR5cG8gaW4gd2luZG93cyBmdW5jdGlvbiBuYW1lLgoJICBHZXRNb2R1bGVGaWxlbmFtZSAtPiBHZXRNb2R1bGVGaWxlTmFtZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4MjM0CgoyMDE3LTA5LTI3IDEwOjA2OjEyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgZXhwb3J0IGZpbGUKCjIwMTctMDktMjYgMTU6MTU6MjcgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXVAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdC5jOgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wbHVnaW4tc2Nhbm5lci5jOgoJICBwbHVnaW4gZGVwZW5kZW5jaWVzOiBmaXggNmNkZGNlNzY2M2NiNGI2ZWUwNjE5NTBkMjAzNjVmNDJjYjc1NTg1MQoJICBUaGVyZSB3ZXJlIGEgZmV3IGVycm9yczoKCSAgKiBUaGUgcGx1Z2luIHNjYW5uZXIgbm93IGFjY2VwdHMgZXhlY3V0YWJsZSBwYXRoIGFzIGFuIGFyZ3VtZW50LgoJICBJbiBjYXNlIGl0IGlzIE5VTEwsIGFyZ2MgPT0gMgoJICAqIFdlIGZpbmQgdGhlIGV4ZWN1dGFibGUgcGF0aCBpbiBpbml0X3ByZSBpbnN0ZWFkIG9mIGdzdF9pbml0LAoJICBhbGxvd2luZyB0aGlzIHRvIHdvcmsgd2hlbiBnc3QgaXMgaW5pdGlhbGl6ZWQgdGhyb3VnaCB0aGUKCSAgb3B0aW9uIGdyb3VwIChlZyBnc3QtaW5zcGVjdCkKCSAgKiBUaGVyZSB3YXMgYSBzZW1pLWNvbG9uIG1pc3NpbmcgaW4gdGhlIF9fQVBQTEVfXyAjaWZkZWYKCjIwMTctMDktMjUgMjA6MzU6NTkgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXVAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcGx1Z2luLXNjYW5uZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBsdWdpbjogQVBJOiBHU1RfUExVR0lOX0RFUEVOREVOQ1lfRkxBR19QQVRIU19BUkVfUkVMQVRJVkVfVE9fRVhFCgkgIFdoZW4gYSBwbHVnaW4gZGVjbGFyZXMgYSBkZXBlbmRlbmN5IHVzaW5nIHRoaXMgZmxhZywgYWxsIHRoZQoJICByZWxhdGl2ZSBwYXRocyBhcmUgY29uc2lkZXJlZCB0byBiZSByZWxhdGl2ZSB0byB0aGUgcGF0aCBvZgoJICB0aGUgbWFpbiBleGVjdXRhYmxlLgoJICBXZSB0cnkgdG8gZGV0ZXJtaW5lIHRoZSBwYXRoIG9mIHRoZSBleGVjdXRhYmxlIHBvcnRhYmx5LAoJICB3aXRoIGltcGxlbWVudGF0aW9ucyBwcm92aWRlZCBmb3IgTGludXgsIFdpbmRvd3MgYW5kIE1hYy4KCSAgSWYgcmV0cmlldmFsIG9mIHRoZSBwYXRoIGZhaWxzLCB3ZSB3aWxsIG5vdCBkZXRlY3QgY2hhbmdlcy4KCSAgSW4gb3JkZXIgZm9yIHRoZSBtYWluIGV4ZWN1dGFibGUgcGF0aCB0byBiZSB0aGUgc2FtZSB3aGVuCgkgIHNjYW5uaW5nIGEgcGx1Z2luIGluIGEgY2hpbGQgcHJvY2VzcywgYSBuZXcgdmFyaWFibGUgaXMKCSAgZXhwb3NlZCBpbiBnc3RfcHJpdmF0ZS5oLCBfZ3N0X2V4ZWN1dGFibGVfcGF0aAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4MTUyCgoyMDE3LTA5LTIxIDE0OjEzOjQ3ICswMzAwICBWaXZpYSBOaWtvbGFpZG91IDx2aXZpYUBhaGlydS5ldT4KCgkqIHNjcmlwdHMvZ2l0LXVwZGF0ZS5zaDoKCSAgZ2l0LXVwZGF0ZTogQWxzbyBidWlsZCAkRVhUUkFfTU9EVUxFUwoJICBEb2luZyBhIGdpdCBwdWxsIGJ1dCBub3QgYXV0b2dlbi5zaCAvIG1ha2UgaXMgbm90IGNvbnNpc3RlbnQgYmVoYXZpb3VyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg3OTgxCgoyMDE3LTA5LTE5IDIzOjU4OjI2ICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1QGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBQcmludCBHc3RWYWx1ZUFycmF5IHByb3BlcnRpZXMgbmljZWx5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODc5MjQKCjIwMTctMDQtMDEgMDc6MTU6MjIgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBNdWx0aXF1ZXVlOiBkb24ndCBhbGxvdyBkcm9wcGluZyBTRUdNRU5UX0RPTkUgZXZlbnRzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODA3OTUKCjIwMTctMDktMTcgMTg6NTU6MTkgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiBHc3RTdGFja1RyYWNlRmxhZ3Mgd2VyZSBhZGRlZCBpbiAxLjEyCgoyMDE3LTA4LTMxIDEzOjA1OjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBwbHVnaW5zOiB1c2UgbmV3IGdzdF9idWZmZXJfbGlzdF9jYWxjdWxhdGVfc2l6ZSgpCgoyMDE3LTA4LTMxIDEyOjU0OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcmxpc3Q6IGFkZCBnc3RfYnVmZmVyX2xpc3RfY2FsY3VsYXRlX3NpemUoKQoJICBSZXR1cm5zIHNpemUgaW4gYnl0ZXMuCgoyMDE3LTA4LTMwIDEzOjUwOjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcmxpc3Q6IGFkZCBnc3RfYnVmZmVyX2xpc3RfZ2V0X3dyaXRhYmxlKCkKCSAgRW5zdXJlcyBidWZmZXIgaXMgd3JpdGFibGUuIFVzZWZ1bCBpZiB3ZSB3YW50IHRvIGNoYW5nZQoJICBtZXRhZGF0YSBvbiBpdCBzdWNoIGFzIHRpbWVzdGFtcHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAyNDEKCjIwMTctMDktMTIgMTg6MzA6MDAgKzAzMDAgIE1pY2hhZWwgU2hpZ29yaW4gPG1pa2VAYWx0bGludXgub3JnPgoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBnc3Rjb25maWcuaC5pbjogaW5pdGlhbCBlMmsgYXJjaCBzdXBwb3J0CgkgIFRoaXMgbWFrZXMgZ3N0cmVhbWVyIGJ1aWxkYWJsZSBvbiBFbGJydXMgMjAwMC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NzU4NwoKMjAxNy0wOS0wOSAxNjoxNDowNSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IEdzdERlYnVnQ29sb3JGbGFncyBhcmUgZmxhZ3MsIG5vdCBhbiBlbnVtCgkgIEFubm90YXRlIGFzIHN1Y2guCgoyMDE3LTA5LTA2IDEwOjAxOjU4IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgaWRlbnRpdHk6IEFkZCBhIGRyb3AtYWxsb2NhdGlvbiBwcm9wZXJ0eQoJICBXaGVuIGVuYWJsZWQsIHRoaXMgcHJvcGVydHkgd2lsbCBtYWtlIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5IGZhaWwuIFRoaXMgaXMKCSAgdGhlIHNhbWUgYXMgb25lIGNvdWxkIGhhdmUgZG9uZSB1c2luZyBhIHRlZSBiZWZvcmUgdGhlIHRlZSBzdGFydGVkCgkgIGltcGxlbWVudGluZyB0aGUgYWxsb2NhdGlvbiBxdWVyeS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDc1OAoKMjAxNy0wOS0wNSAxNTo1Nzo1MSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkgIHRlZTogQWxsb2NhdGUgb25lIG1vcmUgYnVmZmVyIHdoZW4gbXVsdGktcGxleGluZwoJICBUaGlzIGV4dHJhIGJ1ZmZlciBlbnN1cmUgdGhhdCB0aGUgZG93bnN0cmVhbSB0aHJlYWRzIGFyZSBub3Qgc3RhcnZlZAoJICB3aGVuIG11bHRpcGxleGluZyBhIHN0cmVhbS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDc1OAoKMjAxNy0wOS0wNSAxNTo0NTozMyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkgIHRlZTogQWRkIHRlc3QgZm9yIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA3NTgKCjIwMTctMDgtMDggMTc6Mzk6NDMgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogSW1wbGVtZW50IGFsbG9jYXRpb24gcXVlcnkgYWdncmVnYXRpb24KCSAgVGhpcyB3aWxsIGFnZ3JlZ2F0ZSBhbGxvY2F0aW9uIHBhcmFtcywgcG9vbCBhbmQgd2lsbCBrZWVwIGFsbAoJICBtZXRhIHRoYXQgaGFzIG5vIHBhcmFtZXRlcnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA3NTgKCjIwMTctMDgtMDggMTc6MzU6MTkgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogRGVwcmVjYXRlIGFsbG9jLXBhZCBwcm9wZXJ0eQoJICBJdCBoYXMgbm8gZWZmZWN0LCBub3QgaW1wbGVtZW50ZWQsIGFuZCB3b3VsZCBsZWFkIHRvIGJhZCByZW5kZXJpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA3NTgKCjIwMTctMDktMDQgMTI6MjA6NDMgKzAyMDAgIE1pZ3VlbCBQYXLDrXMgPG1wYXJpc2RpYXpAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFkZCB0ZXN0IHRvIGNoZWNrIGhhbmRsZWQgYW5kIGRyb3AgcHJvYmVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODcyNDMKCjIwMTctMDktMDQgMTQ6MzM6MjkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRG9uJ3QgY2FsbCByZW1haW5pbmcgcHJvYmVzIGFmdGVyIHRoZXkgcmV0dXJuIERST1BQRUR8SEFORExFRAoJICBJZiBtdWx0aXBsZSBwcm9iZXMgYXJlIHNldCBvbiBhIHBhZCBhbmQgb25lIHByb2JlIHJldHVybnMgZWl0aGVyCgkgIEdTVF9QQURfUFJPQkVfSEFORExFRCBvciBHU1RfUEFEX1BST0JFX0RST1BQRUQgd2UgbmVlZCB0byBzdG9wCgkgIGNhbGxpbmcgdGhlIHJlbWFpbmluZyBwcm9iZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODcyNDMKCjIwMTctMDgtMjYgMTM6NDQ6MzggLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogSGFuZGxlIHNlcmlhbGl6aW5nIE5VTEwgR1ZhbHVlQXJyYXkKCSAgQ29uY2lkZXIgdGhlbSBhcyBhbiBlbXB0eSBhcnJheSBhbmQgZG8gbm90IHNlZ2ZhdWx0Li4uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODY2NzAKCjIwMTctMDgtMjQgMTY6MDA6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCB0YWdsaXN0IHVwZGF0ZSBzcGFtCgkgIFdlIHdvdWxkIGNvbnN0YW50bHkgcmUtcG9zdCB0aGUgdGFnbGlzdCBiZWNhdXNlCgkgIHBvc3RlZF9hdmdfcmF0ZSBvbmx5IGdldHMgc2V0IHRvIGF2Z19iaXRyYXRlIGlmCgkgIHBhcnNlLT5wcml2LT5wb3N0X2F2Z19iaXRyYXRlIGlzIHRydWUsIHNvIGlmIGl0J3MKCSAgZmFsc2UgdGhlIHBvc3RlZCByYXRlIHdpbGwgYWx3YXlzIGRpZmZlciBmcm9tIHRoZQoJICBjdXJyZW50IGF2ZXJhZ2UgcmF0ZSBhbmQgd2UnZCBxdWV1ZSBhbiB1cGRhdGUsCgkgIHdoaWNoIGxlYWRzIHRvIHVzIHNwYW1taW5nIGRvd25zdHJlYW0gYW5kIHRoZQoJICBhcHBsaWNhdGlvbiB3aXRoIHRhZ2xpc3QgdXBkYXRlcy4KCSAgRml4IHRoaXMgYnkgb25seSBxdWV1aW5nIGFuIHVwZGF0ZSBpZiB0aGUgYXZlcmFnZQoJICByYXRlIHdpbGwgYWN0dWFsbHkgYmUgcG9zdGVkLgoJICBUaGVzZSB0YWdsaXN0cyB1cGRhdGVzIGNvdWxkIGNhdXNlIGV4cGVuc2l2ZQoJICBvcGVyYXRpb25zIG9uIHRoZSBhcHBsaWNhdGlvbiBzaWRlLCBlLmcuIGluIFRvdGVtLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg2NTYxCgoyMDE3LTA4LTE3IDEyOjIzOjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogUkVBRE1FOgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDQ4YTVkODUgdG8gM2Y0YWE5NgoKMjAxNy0wOC0xNyAxNDoxMzozOSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGVsZW1lbnQvZGV2aWNlcHJvdmlkZXI6IEFkZCBpbnN0YW5jZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBjbGFzcyBwcm9wZXJ0aWVzCgkgIFRoYXQgaXMsIHRoZSBtZXRhZGF0YSBhbmQgcGFkIHRlbXBsYXRlcy4gVXNpbmcgaW5zdGFuY2UgZ2V0dGVycyBpcwoJICBlYXNpZXIgdG8gZGVhbCB3aXRoIGZvciBiaW5kaW5ncywgZXNwZWNpYWxseSBhdXRvZ2VuZXJhdGVkIG9uZXMuCgoyMDE3LTA4LTE2IDIyOjQ3OjMxICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkgIGlkZW50aXR5OiBSZXR1cm4gRkxVU0hJTkcgaW5zdGVhZCBvZiBFT1MgYW5kIGRvbid0IHN0YXJ0IHdhaXRpbmcgZm9yIGFueXRoaW5nIGlmIGN1cnJlbnRseSBmbHVzaGluZwoJICBPdGhlcndpc2Ugd2UgbWlnaHQgdHJ5IHVuc2NoZWR1bGluZyBhIGNsb2NrIGlkICh0aGF0IGRvZXMgbm90IGV4aXN0CgkgIHlldCksIHRoZW4gdGhlIHN0cmVhbWluZyB0aHJlYWQgd2FpdHMgZm9yIGlkIGFuZCB0aGUgc3RhdGUgY2hhbmdlIG5ldmVyCgkgIGNvbnRpbnVlcyBiZWNhdXNlIHRoZSBzdHJlYW1pbmcgdGhyZWFkIGlzIGJsb2NrZWQuCgkgIEFsc28gc2h1dHRpbmcgZG93biBhbmQgZmx1c2hpbmcgYW5kIHNpbWlsYXIgc2hvdWxkIHJldHVybiBGTFVTSElORywgbm90CgkgIEVPUy4gVGhlIHN0cmVhbSBpcyBub3Qgb3Zlciwgd2UncmUganVzdCBub3QgYWNjZXB0aW5nIGFueSBidWZmZXJzCgkgIGFueW1vcmUuCgoyMDE3LTA4LTE0IDExOjAxOjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYWxsb2NhdG9yOiBIaWRlIHByaXZhdGUgc3lzbWVtIEdUeXBlIGZ1bmMKCSAgV2FzIG5ldmVyIGV4cG9zZWQgaW4gYW55IGhlYWRlciBmaWxlLCBvbmx5IGV4cG9ydGVkCgkgIGJ5IGFjY2lkZW50LgoKMjAxNy0wOC0xMSAyMToxNzowNiArMDIwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IEFkZCBzd2l0Y2hlcyBmb3IgZW5hYmxpbmcvZGlzYWJsaW5nIGxpYmR3IGFuZCBsaWJ1bndpbmQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3ODE5MwoKMjAxNy0wOC0xMyAxMDo1MDowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC9saWJjb21wYXQuaDoKCSAgbGliY2hlY2s6IGZpeCBidWlsZCBmYWlsdXJlCgkgIE5lZWQgdG8gZGVmaW5lIENLX0RMTF9FWFAgdG8gZXh0ZXJuIGFzIHdlbGwgaW4gbGliY29tcGF0LmgKCSAgd2hpY2ggZ2V0cyBpbmNsdWRlZCBiZWZvcmUgdGhlIGludGVybmFsLWNoZWNrLmggd2hlcmUgdGhlCgkgIG90aGVyIGZhbGxiYWNrIGRlZmluaXRpb24gZm9yIENLX0RMTF9FWFAgaXMuCgkgIGR1cGxpY2F0ZSBzeW1ib2wgX2NoZWNrX21pbm9yX3ZlcnNpb24gaW46CgkgIGxpYmNoZWNraW50ZXJuYWwuYShsaWJjaGVja2ludGVybmFsX2xhLWNoZWNrLm8pCgkgIGxpYmNoZWNraW50ZXJuYWwuYShsaWJjaGVja2ludGVybmFsX2xhLWNoZWNrX2xvZy5vKQoKMjAxNy0wOC0xMSAxMToxMjowOSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IEFsbG93IHJlLXVzYWJpbGl0eSBhZnRlciBFT1MKCSAgQWZ0ZXIgRU9TLCBpdCBpcyBwb3NzaWJsZSBmb3IgYSBwYWQgdG8gYmUgcmVzZXR0ZWQgYnkgc2VuZGluZwoJICBlaXRoZXIgYSBTVFJFQU1fU1RBUlQgb3IgU0VHTUVOVCBldmVudAoJICBNaW1pYyB0aGUgc2FtZSBiZWhhdmlvdXIgd2hlbiByZWNlaXZpbmcgU1RSRUFNX1NUQVJUL1NFR01FTlQgZXZlbnRzCgkgIGluIHF1ZXVlIGlmIHdlIGFyZSBFT1MnZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg2MDU2CgoyMDE3LTA4LTEwIDEzOjMyOjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbWVzb24uYnVpbGQ6CgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogaGlkZSBzeW1ib2xzIGJ5IGRlZmF1bHQgdW5sZXNzIGV4cGxpY2l0bHkgZXhwb3J0ZWQKCjIwMTctMDgtMTAgMTE6MTU6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmguaW46CgkgIGxpYnM6IGNoZWNrOiBzcHJpbmtsZSBzb21lIEdTVF9FWFBPUlQKCSAgSGF2ZSB0byBtb2RpZnkgbGliY2hlY2sgaGVhZGVyIGEgYml0IHRvIGF2b2lkIHdhcm5pbmdzCgkgIGFib3V0IGR1cGxpY2F0ZSAnZXh0ZXJuIGV4dGVybicuCgkgIEFsc28gbmVlZHMgc29tZSBhZGRpdGlvbnMgdG8gdGhlIGxpYmNoZWNrIG1lc29uLmJ1aWxkIGZpbGUKCSAgdG8gZGVmaW5lIENLX0VYUF9ETEwgd2hlbiBidWlsZGluZyB0aGUgc3RhdGljIGxpYmNoZWNrLgoKMjAxNy0wOC0wOCAxMjo1NjoyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogZml4IGctaXItc2Nhbm5lciB3YXJuaW5nIGFib3V0IGJvZ3VzIHRyYW5zZmVyIGFubm90YXRpb25zCgkgIGZvciB2YXJhcmcgcGFyYW1ldGVycy4gVmFyYXJnIGZ1bmN0aW9ucyBhcmUgbm90IGludHJvc3BlY3RhYmxlIGFueXdheSwKCSAgc28gbWlnaHQganVzdCBhcyB3ZWxsIG1hcmsgdGhlbSBhcyAnKHNraXApJyB3aGlsZSB3ZSdyZSBhdCBpdC4KCSAgZ3N0dXRpbHMuYzoyNjExOiBXYXJuaW5nOiBHc3Q6IGludmFsaWQgInRyYW5zZmVyIiBhbm5vdGF0aW9uIGZvciA8dmFyYXJncz46IG9ubHkgdmFsaWQgZm9yIG9iamVjdCBhbmQgR1ZhcmlhbnQgdHlwZXMKCjIwMTctMDgtMDkgMTY6MTU6MjMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEFsbG93IHJlLXVzYWJpbGl0eSBhZnRlciBFT1MKCSAgQWZ0ZXIgRU9TLCBpdCBpcyBwb3NzaWJsZSBmb3IgYSBwYWQgdG8gYmUgcmVzZXR0ZWQgYnkgc2VuZGluZwoJICBlaXRoZXIgYSBTVFJFQU1fU1RBUlQgb3IgU0VHTUVOVCBldmVudAoJICBNaW1pYyB0aGUgc2FtZSBiZWhhdmlvdXIgd2hlbiByZWNlaXZpbmcgU1RSRUFNX1NUQVJUL1NFR01FTlQgZXZlbnRzCgkgIGluIHF1ZXVlMiBpZiB3ZSBhcmUgRU9TJ2QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NjA1NgoKMjAxNy0wOC0wOSAxMDo1MTozOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHBsdWdpbnM6ICpxdWV1ZSogZWxlbWVudHM6IEhhbmRsZSBTVFJFQU1fU1RBUlQgaW4gRU9TIHNpdHVhdGlvbgoJICBXaGVuIHF1ZXVlLWxpa2UgZWxlbWVudHMgYXJlIGluICJFT1MiIHNpdHVhdGlvbiAocmVjZWl2ZWQgR1NUX0ZMT1dfRU9TCgkgIGZyb20gZG93bnN0cmVhbSBvciBFT1Mgd2FzIHB1c2hlZCksIHRoZXkgZHJhaW4gYnVmZmVycy9ldmVudHMgdGhhdAoJICB3b3VsZG4ndCBiZSBwcm9jZXNzZWQgYW55d2F5IGFuZCBsZXQgdGhyb3VnaCBldmVudHMgdGhhdCBtaWdodAoJICBtb2RpZnkgdGhlIEVPUyBzaXR1YXRpb24uCgkgIFByZXZpb3VzbHkgb25seSBHU1RfRVZFTlRfRU9TIGFuZCBHU1RfRVZFTlRfU0VHTUVOVCBldmVudHMgd2VyZSBsZXQKCSAgdGhyb3VnaCwgYnV0IHdlIGFsc28gbmVlZCB0byBhbGxvdyBHU1RfRVZFTlRfU1RSRUFNX1NUQVJUIHRvIGdvCgkgIHRocm91Z2ggc2luY2UgaXQgcmVzZXRzIHRoZSBFT1Mgc3RhdGUgb2YgcGFkcyBzaW5jZSAxLjYKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NjAzNAoKMjAxNy0wOC0wOCAyMToxOTozMiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogU2tpcCBnc3RfY2FsY3VsYXRlX2xpbmVhcl9yZWdyZXNzaW9uKCkgaW4gYmluZGluZ3MKCjIwMTctMDgtMDcgMTI6MjQ6MzcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEhhbmRsZSBidWZmZXJpbmcgbGV2ZWxzIG9uIE5PVF9MSU5LRUQKCSAgV2hlbiBkb3duc3RyZWFtIHJldHVybnMgTk9UX0xJTktFRCwgd2UgcmV0dXJuIHRoZSBidWZmZXJpbmcgbGV2ZWwKCSAgYXMgYmVpbmcgMTAwJS4KCSAgU2luY2UgdGhlIHF1ZXVlIGlzIG5vIGxvbmdlciBiZWluZyBjb25zdW1lZC91c2VkIGRvd25zdHJlYW0sIHdlCgkgIHdhbnQgYXBwbGljYXRpb25zIHRvIGVzc2VudGlhbGx5ICJpZ25vcmUiIHRoaXMgcXVldWUgZm9yIGJ1ZmZlcmluZwoJICBwdXJwb3Nlcy4KCSAgSWYgb3RoZXIgc3RyZWFtcyBhcmUgc3RpbGwgYmVpbmcgdXNlZCwgdGhvc2Ugc3RyZWFtIGJ1ZmZlcmluZyBsZXZlbHMKCSAgd2lsbCBiZSB1c2VkLiBJZiBub25lIGFyZSB1c2VkLCB1cHN0cmVhbSB3aWxsIHBvc3QgYW4gZXJyb3IgbWVzc2FnZQoJICBvbiB0aGUgYnVzIGluZGljYXRpbmcgbm8gc3RyZWFtcyBhcmUgdXNlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NTc5OQoKMjAxNy0wOC0wNyAxMToyMzozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L21lc29uLmJ1aWxkOgoJKiBkb2NzL2xpYnMvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBmaXggZ3RrLWRvYyBpbnZvY2F0aW9uCgkgIEFyZ3VtZW50IGlzIGNhbGxlZCAic2Nhbm9ianNfYXJncyIsIGFuZCB3ZSB3ZXJlIG1pc3NpbmcgYSBxdW90ZS4KCjIwMTctMDgtMDcgMTE6MDY6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvbWVzb24uYnVpbGQ6CgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogZml4IGEgZmV3IHdhcm5pbmdzCgoyMDE3LTA4LTA3IDEwOjMzOjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGtnY29uZmlnL21lc29uLmJ1aWxkOgoJICBtZXNvbjogYWRkIC1sbSB0byBnc3RyZWFtZXItY2hlY2stMS4wIHBrZ2NvbmZpZyBmaWxlCgkgIEZpeGVzIHdhcm5pbmcgd2l0aCBtZXNvbiBmcm9tIGdpdCBhYm91dCBMSUJNIG5vdCBiZWluZwoJICBkZWZpbmVkIGluIHRoZSBjb25maWd1cmF0aW9uX2RhdGEuCgoyMDE3LTA4LTAyIDIxOjAyOjMyICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFJlY2hlY2sgc3RpY2t5IGV2ZW50cyBhZnRlciBub24tYmxvY2tpbmcgYnVmZmVyIHByb2JlcyBhbmQgYmxvY2tpbmcgZXZlbnQgcHJvYmVzCgkgIFdpdGhvdXQgdGhlIGZvcm1lciwgZXZlbnQgY2hhbmdlcyAoZS5nLiBzZXR0aW5nIGEgcGFkIG9mZnNldCkgZG9lcyBub3QKCSAgdGFrZSBlZmZlY3QgZm9yIHRoZSBjdXJyZW50IGJ1ZmZlciBidXQgb25seSBmb3IgdGhlIG5leHQgb25lLiBXaXRob3V0CgkgIHRoZSBsYXR0ZXIsIG5vbi1ibG9ja2luZyBldmVudCBwcm9iZXMgd291bGQgbm90IHNlZSBhbnkgdXBkYXRlZCBldmVudHMKCSAgeWV0LgoKMjAxNy0wNy0yOSAxMDoyODowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGZpeCBidWlsZCB3aXRoIGdzdCBkZWJ1Z2dpbmcgZGlzYWJsZWQKCjIwMTctMDctMTcgMjE6MDM6MTEgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVidWc6IEFkZCBhIG1lbW9yeSByaW5nYnVmZmVyIGJhc2VkIGRlYnVnIGxvZ2dlcgoJICBUaGlzIHN0b3JlcyBkZWJ1ZyBsb2dzIGluIG1lbW9yeSBwZXIgdGhyZWFkIGFuZCB1c2VzIHVwIHRvIGEKCSAgY29uZmlndXJhYmxlIGFtb3VudCBvZiBieXRlcyBwZXIgdGhyZWFkIGZvciB0aGUgbG9ncy4gSW5hY3RpdmUgdGhyZWFkcwoJICBhcmUgdGltZWQgb3V0IGFmdGVyIGEgY29uZmlndXJhYmxlIGFtb3VudCBvZiB0aW1lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg1MDM1CgoyMDE3LTA3LTI4IDE3OjI3OjE4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogQWRkIG1pc3Npbmcgb3V0IGFubm90YXRpb25zIGZvciB2YXJpb3VzIHBhcmFtZXRlcnMKCjIwMTctMDctMjYgMTQ6MTc6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuaDoKCSAgZG93bmxvYWRidWZmZXI6IHJlbW92ZSB1bnVzZWQgc3RydWN0IG1lbWJlcgoJICBUaGlzIHdhcyB1c2VkIGluIHF1ZXVlMiB3aGVuIGhhbmRsaW5nIGluIGNvbWluZyBzZXJpYWxpemVkCgkgIHF1ZXJpZXMsIGJ1dCBkb3dubG9hZGJ1ZmZlciBqdXN0IHJlZnVzZXMgc2VyaWFsaXplZCBxdWVyaWVzLgoKMjAxNS0wMy0xMCAxNjo0Mjo0NCArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJICBjaGVjazogZHVwbGljYXRlIGNvZGUgYnJhbmNoZXMKCSAgQ0lEICMxMjI2NDQ2CgoyMDE3LTA3LTI2IDExOjE1OjU4ICswMzAwICBHZW9yZ2UgS2lhZ2lhZGFraXMgPGdlb3JnZS5raWFnaWFkYWtpc0Bjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogZG9jdW1lbnQgdGhhdCBnc3RfZWxlbWVudF9jb250aW51ZV9zdGF0ZSBuZWVkcyB0byBiZSBjYWxsZWQgd2l0aCB0aGUgU1RBVEVfTE9DSwoJICBJdCBpbnRlcm5hbGx5IGNhbGxzIGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSgpLCB3aGljaCByZXF1aXJlcyB0aGUgU1RBVEVfTE9DSwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg1NDMxCgoyMDE3LTA3LTIwIDE3OjMxOjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBmaXggY29tcGlsZXIgd2FybmluZ3MgZm9yIFNJR0hVUCBoYW5kbGVycyBvbiB3aW5kb3dzCgkgIEZpeCB1bnVzZWQgdmFyaWFibGUvZnVuY3Rpb24gY29tcGlsZXIgd2FybmluZ3Mgb24gd2luZG93cy4KCSAgVGhlIFNJR0hVUCBoYW5kbGluZyBpcyBvbmx5IGF2YWlsYWJsZSB1bmRlciB1bml4LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgzNjYxCgoyMDE3LTA3LTIwIDE0OjE3OjQ4ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEZpeCBhY2Nlc3MgdG8gTlVMTCBwb2ludGVyCgkgIHNxIGNhbiBiZSBOVUxMLgoJICBBbHNvIGZpeCBjb21taXQgbWVzc2FnZSAoaXQncyB0aGUgcXVldWUgd2UgYXJlIGl0ZXJhdGluZyBvdmVyIHRoYXQgd2UKCSAgYXJlIGxvZ2dpbmcsIG5vdCB0aGUgb25lIHBhc3NlZCBhcyBhcmd1bWVudCkuCgkgIENJRCAjMTQxNTU2OQoKMjAxNy0wNy0wMyAxNToxNzozMyArMDkwMCAgU2V1bmdoYSBZYW5nIDxzaC55YW5nQGxnZS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogQ2FsY3VsYXRlIGludGVybGVhdmUgb25seSB3aXRoaW4gZWFjaCBzdHJlYW1pbmcgdGhyZWFkCgkgIC4uLiBhbmQgdXNlIHRoZSBiaWdnZXN0IGludGVybGVhdmUgdmFsdWUgYW1vbmcgc3RyZWFtaW5nIHRocmVhZHMuCgkgIFRoaXMgaXMgdG8gb3B0aW1pemUgbXVsdGlxdWV1ZSBzaXplIGFkYXB0YXRpb24gb24gYWRhcHRpdmUgc3RyZWFtaW5nCgkgIHVzZSBjYXNlIHdpdGggInVzZS1pbnRlcmxlYXZlIiBwcm9wZXJ0eS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NDQ0OAoKMjAxNy0wNy0xNSAxMjo0MDoyOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL21lc29uLmJ1aWxkOgoJICBtZXNvbjogcG86IHVzZSBnbGliIHByZXNldCBhbmQgcmVhZCBsYW5ndWFnZSBsaXN0IGZyb20gTElOR1VBUwoJICBTdXBwb3J0ZWQgc2luY2UgbWVzb24gMC4zNywgc28gd2UgY2FuIHVzZSBpdCBub3cuCgoyMDE3LTA3LTE1IDExOjU0OjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogZG9uJ3QgbW9kaWZ5IG1lbW9yeSBpZiBpdCdzIGNsZWFybHkgbm90IGEgdmFsaWQgbWluaW9iamVjdAoJICBBZGQgYmFjayBmdW5jdGlvbiBndWFyZCB0aGF0IGNoZWNrcyB0aGUgcmVmY291bnQgaW4gYSByZWFkLW9ubHkKCSAgb3BlcmF0aW9uIGZpcnN0LCBhbmQgYmFpbCBvdXQgd2l0aG91dCBtb2RpZnlpbmcgdGhlIHBhc3NlZC1pbgoJICBtZW1vcnkgaWYgaXQncyBjbGVhcmx5IG5vdCBhIHZhbGlkIG1pbmkgb2JqZWN0LiBPdGhlcndpc2Ugd2UKCSAgcHJvYmFibHkgY2F1c2UgbW9yZSBoYXJtIHRoYW4gZ29vZC4gV2Uga2VlcCB0aGUgc2Vjb25kIHNhbml0eQoJICBjaGVjayBiYXNlZCBvbiB0aGUgJ3JlYWwgcmVmY291bnQnIGF0IHRoZSB0aW1lIG9mIHRoZSB1bnJlZgoJICBhcm91bmQgZm9yIG5vdyB0b28uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODQzODMKCjIwMTctMDctMTQgMTY6NTY6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGJhc2VzcmM6IGRlcHJlY2F0ZSBub24tZnVuY3Rpb25hbCAidHlwZWZpbmQiIHByb3BlcnR5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzY1NjUKCjIwMTctMDctMTAgMTY6NTI6MzggKzAyMDAgIEZyYW5jaXNjbyBWZWxhenF1ZXogPGZyYW5jaXN2QGlmaS51aW8ubm8+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbXBsZXhpdHkuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9jb21wbGV4aXR5LnNjbToKCSAgYmVuY2htYXJrOiBmaXggY29tcGxleGl0eSBiZW5jaG1hcmsKCSAgTWFrZSBjb21wbGV4aXR5IGJlbmNobWFyayBjb2RlIHdvcmsgZm9yIGNvbXBsZXhpdHkgPiAxCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODQ3NTQKCjIwMTctMDctMTQgMTY6MTI6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogbWVzb24uYnVpbGQ6CgkgIHdpbjMyOiBmaW5kIHBsdWdpbiBzY2FubmVyIGluIGxpYmV4ZWNkaXIgc3ViZGlyIGFzIGNvbmZpZ3VyZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTExNQoKMjAxNy0wNy0xMyAyMTo1MjozNCArMDgwMCAgSmFzb24gTGluIDxzaGFuZ2NoaWVoQHJlYWx0ZWsuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZml4IGJ1ZmZlciBsZWFrcyBpZiBwcmVyb2xsIGZhaWxlZAoJICBidWZmZXIgaXMgbm90IHVucmVmZXJlbmVkIGlmIHByZXJvbGwgZmFpbGVkCgkgIDpEZXRhaWxlZCBOb3RlczoKCSAgLSBQcm9ibGVtIDogdmlkZW8gZnJlZXplIHdoZW4gc3dpdGNoaW5nIGZyb20gcGF1c2UgdG8gMS8yLUZGIHJlcGVhdGVkbHkKCSAgLSBSb290Q2F1c2UgOiBidWZmZXIgbGVha3MgaW4gYmFzZXNpbmsKCSAgLSBTb2x1dGlvbiA6IHVucmVmIHRoZSBidWZmZXIgaWYgcHJlcm9sbGVkIGZhaWxlZAoJICA6VGVzdGluZyBQcmVmb3JtZWQ6CgkgIEhvdyB0byBUZXN0IDoKCSAgcGF1c2UgLT4gMS8yIEZGIC0+IHJlc3VtZSAtPiBwYXVzZSAtPiAxLzIgRkYgLi4uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODQ5MzIKCjIwMTctMDYtMTEgMTU6MTU6MTMgKzAwMDAgIEdyYWhhbSBMZWdnZXR0IDxtaW5mcmluQHNoYXJwLmZtPgoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkqIHRvb2xzL2dzdC1sYXVuY2gtMS4wLjE6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgR2VuZXJhdGUgYSBnc3RyZWFtZXIgcGlwZWxpbmUgZGlhZ3JhbSBvbiBTSUdIVVAuCgkgIFVzZWZ1bCBmb3IgZGVidWdnaW5nIGEgcGlwZWxpbmUgdGhhdCByZWZ1c2VzIHRvIGVudGVyIGEgZ2l2ZW4gc3RhdGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODM2NjEKCjIwMTctMDYtMjYgMTE6NDY6MzkgKzAzMDAgIEdlb3JnZSBLaWFnaWFkYWtpcyA8Z2VvcmdlLmtpYWdpYWRha2lzQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZm9yd2FyZCBTSU5LX01FU1NBR0UgZXZlbnRzIGRvd25zdHJlYW0KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NDU1MQoKMjAxNy0wNy0xMSAxNDo1NjowMyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBGaXggYmFzaGNvbXAgaW5zdGFsbGF0aW9uCgkgIEZvciBzb21lIHJlYXNvbiB0aGUgZG91YmxlIHF1b3RlcyBlbmRlZCB1cCBpbiB0aGUgcGF0aCwgaGVuY2UKCSAgdGhlIGhlbHBlciB3aGVyZSBpbnN0YWxsZWQgYXQgIi4iL3NoYXJlLy4uLgoKMjAxNy0wNy0xMSAxNDo1NTo0MiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZGF0YS9iYXNoLWNvbXBsZXRpb24vaGVscGVycy9tZXNvbi5idWlsZDoKCSogbWVzb24uYnVpbGQ6CgkqIHBsdWdpbnMvZWxlbWVudHMvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBVc2Ugam9pbl9wYXRocyBhbmQgLnNldF9xdW90ZWQgd2hlcmUgcG9zc2libGUKCjIwMTctMDctMTEgMTY6MTU6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwa2djb25maWcvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBwa2djb25maWc6IGFkZCBsaWJ1bndpbmQvbGliZHcgdG8gZ3N0cmVhbWVyLTEuMCBSZXF1aXJlcy5wcml2YXRlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODQ3OTUKCjIwMTctMDctMTEgMTU6Mjk6NDQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkgIHBrZ2NvbmZpZzogQWRkIHByaXZhdGUgcmVxdWlyZW1lbnRzCgkgIEFkZCBsaWJ1bndpbmQgYW5kIGR3IHRvIHRoZSAucGMgUmVxdWlyZXMucHJpdmF0ZS4gRml4ZXMgc3RhdGljIGxpYnJhcnkKCSAgY29tcGlsYXRpb24gaWYgZ3N0cmVhbWVyIHdhcyBjb21waWxlZCB3aXRoIG9uZSBvZiB0aG9zZSBkZXBlbmRlbmNpZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NDc5NQoKMjAxNy0wNy0wOSAyMToyMDowMyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHVzZSBHU1RfQ0xPQ0tfVElNRSBtYWNyb3MgZm9yIHJlYWRhYmlsaXR5CgkgIFJlcGxhY2Ugc29tZSAtMSBjb21wYXJpc29uIHdpdGggR1NUX0NMT0NLX1RJTUUgbWFjcm9zLgoKMjAxNy0wNy0wOSAyMToxNjo0NCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGNvcnJlY3Qgc29tZSBjb21tZW50cyBhbmQgYWRkIG1vcmUgbG9nZ2luZwoJICBBZGQgbW9yZSBsb2dnaW5nIHRvIGFuYWx5emUgZXZlbnQgaGFuZGxpbmcgKGVzcGVjaWFsbHkgZmFpbHVyZSBjYXNlcykuCgoyMDE3LTA1LTAxIDEzOjM1OjA5IC0wNzAwICBTY290dCBEIFBoaWxsaXBzIDxzY290dC5kLnBoaWxsaXBzQGludGVsLmNvbT4KCgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICB0b29sczogZ3N0LXN0YXRzOiBVc2Ugc3RhbmRhcmQgY2hhcmFjdGVyIGVzY2FwZXMKCSAgSGF2aW5nICdcZScgZXhwYW5kIHRvICdceDFiJyBpcyBhIGdudSBleHRlbnNpb24uIEkgZGlkbid0IHNlZSBhbnkKCSAgZG9jdW1lbnQgZGVzY3JpYmluZyB0aGUgYmVoYXZpb3IsIGJ1dCBnY2MgYWxzbyBzZWVtcyB0byBleHBhbmQKCSAgJ1xbJyB0byAnWycuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODIwMjgKCjIwMTctMDctMDcgMTI6MDY6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcGFyc2UvbWVzb24uYnVpbGQ6CgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogZmluZCBweXRob24zIHZpYSBweXRob24zIG1vZHVsZQoJICBBbmQgcmVuYW1lIHB5dGhvbjMgdmFyaWFibGUgaW4gbWVzb24gYnVpbGQgZmlsZXMgZm9yIGNsYXJpdHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODMxOTgKCjIwMTctMDctMDUgMTM6MjA6MTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvbWVzb24uYnVpbGQ6CgkqIG1lc29uX29wdGlvbnMudHh0OgoJKiBwbHVnaW5zL21lc29uLmJ1aWxkOgoJKiB0ZXN0cy9jaGVjay9tZXNvbi5idWlsZDoKCSAgbWVzb246IGFkZCBvcHRpb24gdG8gZGlzYWJsZSB0cmFjZXIgaG9va3MKCjIwMTctMDctMDUgMTM6MTk6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIHRlc3RzOiBtZW1vcnk6IHNraXAgdGVzdCB0aGF0IGRlcGVuZHMgb24gZGVidWcgc3lzdGVtIGlmIGl0J3MgZGlzYWJsZWQKCjIwMTctMDctMDUgMTM6MTc6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSAgdHJhY2luZzogZml4IGJ1aWxkIHdpdGggdHJhY2VyIGhvb2tzIGRpc2FibGVkCgoyMDE3LTA3LTAzIDA5OjAzOjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogbWFrZSByZWZjb3VudCB0cmFjaW5nIGFuZCBkZWJ1ZyBsb2dnaW5nIHJlbGlhYmxlCgkgIFRyYWNpbmcgb2YgdGhlIHJlZmNvdW50cyB3YXNuJ3QgdGhyZWFkLXNhZmUsIGFuZCBsb2cgb3V0cHV0IG9mCgkgIHRoZSByZWZjb3VudCB2YWx1ZXMgYmVmb3JlL2FmdGVyIHdhc24ndCByZWxpYWJsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NDM4MwoKMjAxNy0wNy0wMyAyMTowNjoyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiBjbGFyaWZ5IGNvZGUgdGhhdCBkZWR1Y2VzIHBsdWdpbiBuYW1lIGZyb20gZmlsZSBuYW1lCgkgIE1ha2UgdGhlIGZpbmFsIGVsc2UgYnJhbmNoIGV4cGxpY2l0IGZvciBjbGFyaXR5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgzMzMzCgoyMDE3LTA2LTI3IDA3OjQ0OjE3ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLWRvY3MuaDoKCSAgZG9jczogYWRkIGEgbWlzc2luZyBjb25zdCBpbiBieXRlcmVhZGVyIGRvY3MKCSAgVGhpcyBzeW5jcyB0aGUgcHJvdG90eXBlIHdpdGggZ3N0Ynl0ZXJlYWRlci5oCgoyMDE3LTA2LTI5IDEwOjUwOjUwIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogUmVtb3ZlZCB1bnVzZWQgcHJpdmF0ZSBtZW1iZXIgcW9zX2VuYWJsZWQKCjIwMTctMDYtMjYgMTQ6MDk6MjAgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBEb24ndCByZWFsbG9jYXRlIGJ1ZmZlcnMgd2hlbiBmbHVzaGluZwoJICBJbnN0ZWFkIG9mIHVzaW5nIGdzdF9idWZmZXJfcG9vbF9zZXRfYWN0aXZlKCkgd2hlbiBmbHVzaGluZywgdXNlCgkgIGdzdF9idWZmZXJfcG9vbF9zZXRfZmx1c2hpbmcoKSwgdGhpcyBhdm9pZHMgdW5lZWRlZCByZWFsbG9jYXRpb24gb2YgdGhlCgkgIGJ1ZmZlcnMuCgoyMDE3LTA2LTAxIDEwOjM2OjI2IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogRG9uJ3QgaG9sZCBMSVZFX0xPQ0sgaW4gY3JlYXRlL2FsbG9jL2ZpbGwKCSAgSG9sZGluZyB0aGlzIGxvY2sgb24gbGl2ZSBzb3VyY2UgcHJldmVudHMgdGhlIHNvdXJjZSBmcm9tIGNoYW5naW5nCgkgIHRoZSBjYXBzIGluIDo6Y3JlYXRlKCkgd2l0aG91dCByaXNraW5nIGEgZGVhZGxvY2suIFRoaXMgaGFzIGNvbnNlcXVlbmNlcwoJICBhcyB0aGUgTElWRV9MT0NLIHdhcyByZXBsYWNpbmcgdGhlIFNUUkVBTV9MT0NLIGluIG1hbnkgc2l0dWF0aW9uLiBBcyBhCgkgIHNpZGUgZWZmZWN0OgoJICAtIFdlIG5vIGxvbmdlciBuZWVkIHRvIHVubG9jayB3aGVuIGRvaW5nIHBsYXkvcGF1c2UgYXMgdGhlIExJVkVfTE9DSwoJICBpc24ndCBoZWxkLiBXZSB0aGVuIGxldCB0aGUgY3JlYXRlKCkgY2FsbCBmaW5pc2gsIGJ1dCB3aWxsIGJsb2NrIGlmCgkgIHRoZSBzdGF0ZSBoYXZlIGNoYW5nZWQgbWVhbndoaWxlLiBUaGlzIGhhcyB0aGUgYmVuZWZpdCB0aGF0CgkgIHdhaXRfcHJlcm9sbCgpIGNhbGxzIGluIHN1YmNsYXNzIGlzIG5vIGxvbmdlciBuZWVkZWQuCgkgIC0gV2Ugbm8gbG9uZ2VyIG5lZWQgdG8gY2hhbmdlIHRoZSBzdGF0ZSB0byB1bmxvY2ssIHNpbXBsaWZ5aW5nIHRoZQoJICBzZXRfZmx1c2hpbmcoKSBpbnRlcmZhY2UKCSAgLSBXZSBuZWVkIGRpZmZlcmVudCBoYW5kbGluZyBmb3IgRU9TIGRlcGVuZGluZyBpZiB3ZSBhcmUgaW4gcHVzaCBvciBwdWxsCgkgIG1vZGUuCgkgIFRoaXMgcGF0Y2ggYWxzbyBkb2N1bWVudCB0aGUgbG9ja2luZyBvZiBlYWNoIHByaXZhdGUgY2xhc3MgbWVtYmVyIGFuZAoJICB0aGUgbG9ja2luZyBvcmRlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MzMwMQoKMjAxNy0wNi0wMSAxMDowMToxMyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IFByb3RlY3QgYWNjZXNzIHRvIHBvb2wgYW5kIGFsbG9jYXRvcgoJICBUaGlzIHdhcyBvbmx5IHBhcnRseSBwcm90ZWN0ZWQgYnkgdGhlIG9iamVjdCBsb2NrLiBBbHdheXMgdGFrZSB0aGUKCSAgb2JqZWN0IGxvY2sgdG8gYWNjZXNzIHRoZSBjdXJyZW50bHkgY29uZmlndXJlZCBwb29sIGFuZCBhbGxvY2F0b3IuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODMzMDEKCjIwMTctMDYtMjkgMDg6MzA6NTAgKzA5MDAgIEppbW15IE9obiA8eW9uZ2ppbi5vaG5AbGdlLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBGaXggbWVtb3J5IGxlYWsgaW4gcHJpbnRfcGFkX3RlbXBsYXRlc19pbmZvCgkgIGdzdF9zdGF0aWNfY2Fwc19nZXQgZnVuY3Rpb24gcmV0dXJuZWQgYWxsb2NhdGVkIG1lbW9yeS4KCSAgU28sIEl0IHNob3VsZCBiZSBmcmVlIHVzaW5nIGdzdF9jYXBzX3VucmVmLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg0MzExCgoyMDE3LTA2LTI5IDA5OjEwOjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBjaGVjayBmb3IgcHBvbGwoKSBhcyB3ZWxsCgoyMDE3LTA2LTI3IDA5OjU5OjUyIC0wNDAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRvb2xzL21lc29uLmJ1aWxkOgoJICBtZXNvbjogQWRkIGNvbmZpZ2luYyBhcyBpbmNsdWRlX2RpcmVjdG9yeSBpbiB0b29scy8KCSAgT3RoZXJ3aXNlIHdoZW4gdGhlIGdsaWIgaXMgdXNlZCBhcyBhIHN1YnByb2plY3QgY29uZmlnLmggaXMgdGhlIGdsaWIKCSAgb25lLCBub3Qgb3Vycy4KCjIwMTctMDYtMjMgMTU6MTM6MTYgLTA0MDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBBbGxvdyB1c2luZyBnbGliIGFzIGEgc3VicHJvamVjdAoKMjAxNy0wNi0yOCAwOTo1NDo1NiArMDIwMCAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgPGNhbHZhcmlzQGlnYWxpYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cHJvdGVjdGlvbi5jOgoJKiBnc3QvZ3N0cHJvdGVjdGlvbi5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcHJvdGVjdGlvbjogYWRkIGZ1bmN0aW9uIHRvIGZpbHRlciBzeXN0ZW0gaWRzCgkgIGdzdF9wcm90ZWN0aW9uX2ZpbHRlcl9zeXN0ZW1zX2J5X2F2YWlsYWJsZV9kZWNyeXB0b3JzKCkgdGFrZXMgYW4gYXJyYXkKCSAgb2Ygc3RyaW5ncyBhbmQgcmV0dXJucyBhIG5ldyBhcnJheSBvZiBzdHJpbmdzIGZpbHRlcmVkIGJ5IHRoZSBhdmFpbGFibGUKCSAgZGVjcnlwdG9ycyBmb3IgdGhlbSBzbyB0aGUgb25lcyB5b3UgZ2V0IGFyZSB0aGUgb25lcyB0aGF0IHlvdSBzaG91bGQgYmUKCSAgYWJsZSB0byBkZWNyeXB0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcwMTA3CgoyMDE3LTA2LTIzIDExOjExOjQ0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBmaXggd2l0aC1wYWNrYWdlLW5hbWUgb3B0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODQwODIKCjIwMTctMDYtMDIgMDA6NTI6MzcgKzAyMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIGdzdHBsdWdpbjogcmVtb3ZlIGdzdCBwcmVmaXggd2hlbiBsb2FkaW5nIHBsdWdpbiBvbiBNU1ZDCgkgIFdoZW4gYnVpbGRpbmcgd2l0aCBNZXNvbiBhbmQgTVNWQywgb3VyIHBsdWdpbnMgZG9uJ3QgaGF2ZSBhICdsaWJnc3QnCgkgIHN1ZmZpeCBhbmQgYXJlIGp1c3QgJ2dzdGZvby5kbGwnLCBzbyBsb29rIGZvciB0aGF0IHRvby4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MzMzMwoKMjAxNy0wNi0yMSAxMDo0ODo1MiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBzaW5rY2FwcyBjYW4gYmUgTlVMTCBpbiBkZWZhdWx0IGNhcHMgbmVnb3RpYXRpb24KCSAgVGhpcyB3YXMgY2F1c2luZyBoYXJtbGVzcyBhc3NlcnRpb24gYWJvdXQgdGhlIHVucmVmZmVkIGNhcHMgbm90IGJlaW5nIG9mCgkgIHR5cGUgY2Fwcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NDA0MQoKMjAxNy0wNi0yMCAxMTowNTo0MSAtMDQwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSAuZGVmIGZpbGUKCjIwMTctMDYtMTQgMTc6MTI6MzIgLTA0MDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsczogQWRkIGEgZnVuY3Rpb24gdG8gZ2V0IGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIEdzdFN0YXRlQ2hhbmdlCgkgIEFQSToKCSAgZ3N0X3N0YXRlX2NoYW5nZV9nZXRfbmFtZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgzNzk4CgoyMDE3LTA2LTE1IDEwOjM4OjI5IC0wNDAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBlbGVtZW50OiBBZGQgbWlzc2luZyB2YWx1ZXMgZm9yICJ0byBzYW1lIiBzdGF0ZSBjaGFuZ2VzCgkgIEFuZCBoYW5kbGUgbmV3bHkgYWRkZWQgR3N0U3RhdGVDaGFuZ2UgdmFsdWVzIGluIEdzdFBpcGVsaW5lCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODM3OTgKCjIwMTctMDYtMjAgMTU6NTc6NDcgKzA5MDAgIEhlZWt5b3VuZyBTZW8gPGhlZWt5b3VuZy5zZW9AbGdlLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogRml4IGxlYWsgaW4gZmFpbGVkIGNhc2Ugb2YgcmVncmVzc2lvbiBvdmVyZmxvdyBjaGVja2luZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgzOTc4CgoyMDE3LTA2LTIwIDE2OjEwOjA3ICswOTAwICBIZWVreW91bmcgU2VvIDxoZWVreW91bmcuc2VvQGxnZS5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnljaHVuazogRml4IGxlYWsgaW4gZmFpbGVkIGNhc2Ugb2YgcmVhZGluZyBwbHVnaW4gZGVwZW5kZW5jeSBzdHJpbmcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4Mzk3OAoKMjAxNy0wNi0yMCAxMDowMDoxNiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkgIGNvbnRyb2xsZXI6IEV4cG9ydCBib3hlZCB0eXBlIGNvcHkvZnJlZSBmdW5jdGlvbnMgZm9yIEdzdENvbnRyb2xQb2ludAoKMjAxNy0wNi0yMCAwOTo1NzowMSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYmFzZTogRXhwb3J0IGJveGVkIHR5cGUgY29weS9mcmVlIGZ1bmN0aW9ucyBmb3IgdGhlIHJlbWFpbmluZyB0eXBlcwoKMjAxNy0wNi0xNiAxMzozNDowMCArMDAwMCAgQW5kcmVqcyBWYXNpbGpldnMgPGFuZHJlanMudmFzaWxqZXZzQHVibnQuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cDogVW5yZWYgdGltZW91dCBHU291cmNlIGZvciBkZWxheSByZXF1ZXN0cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgzODY0CgoyMDE3LTA2LTE1IDEwOjUxOjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzoKCSogdGVzdHMvY2hlY2svbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBmaXggdGVzdHMgYnVpbGQgd2l0aCAtLXdlcnJvcgoJICBOZWVkIHRvIHBhc3MgLURHU1RfRElTQUJMRV9ERVBSRUNBVEVEIHRvIGF2b2lkIHdhcm5pbmdzIHdoZW4KCSAgdGVzdGluZyBkZXByZWNhdGVkIEFQSSBzdWNoIGFzIGdzdF91cmlfY29uc3RydWN0KCkuCgkgIEFsc28gcmVtb3ZlICNpZm5kZWYgR1NUX0RJU0FCTEVfREVQUkVDQVRFRCBndWFyZCBmcm9tIGhlYWRlcgoJICBmaWxlLCB3ZSBkb24ndCB1c2UgdGhvc2UgYW55IG1vcmUgZm9yIGZ1bmN0aW9ucywgdGhlCgkgIEdTVF9ERVBSRUNBVEVEX0ZPUiBtYWNybyBpcyBlbm91Z2guCgoyMDE3LTA2LTE0IDE3OjM2OjU3ICswMjAwICBEaW1pdHJpb3MgS2F0c2Fyb3MgPHBhdGNoZXJ3b3JrQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6CgkgIGdzdHVyaTogRml4ZWQgaW5jb3JyZWN0IGVzY2FwaW5nIG9mIHBhdGggYXMgYSBnZW5lcmljIHN0cmluZwoJICBUaGUgZ3N0X3VyaV9jb25zdHJ1Y3QgZnVuY3Rpb24gd2FzIGVzY2FwaW5nIHRoZSBsb2NhdGlvbiBzdHJpbmcKCSAgYXMgYSBnZW5lcmljIHVyaSBzdHJpbmcuIFRoaXMgaXMgaW5jb3JyZWN0IHNpbmNlIHRoZSBzbGFzaCgnLycpCgkgIGNoYXJhY3RlcnMgYXJlIHJlc2VydmVkIGZvciB1c2UgaW4gdGhpcyBleGFjdCBjYXNlLiBUaGUgcGF0Y2gKCSAgY2hhbmdlcyB0aGUgZXNjYXBlX3N0cmluZyBmdW5jdGlvbiBtb2RlIHRvIGhhbmRsZSB0aGUgcGF0aCBjb3JyZWN0bHkuCgkgIEkgaGF2ZSBkZWxldGVkIHRoZSBlc2NhcGVfc3RyaW5nIGZ1bmN0aW9uIHNpbmNlIGl0IGlzIG5vIGxvbmdlciBiZWluZwoJICB1c2VkIGFuZCBoYXZlIGNyZWF0ZWQgYSB1bml0IHRlc3QgZm9yIHRoZSBmdW5jdGlvbi4gSSBoYXZlIGFsc28KCSAgZGVwcmVjYXRlZCB0aGlzIGZ1bmN0aW9uIGluIGZhdm91ciBvZiB0aGUgR3N0VXJpIEFQSS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4Mzc4NwoKMjAxNy0wNi0wNyAxMTo0MjoyOCAtMDQwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9tZXNvbi5idWlsZDoKCSAgbWVzb246IERvIG5vdCB1c2UgcGF0aCBzZXBhcmF0b3IgaW4gdGVzdCBuYW1lcwoJICBBdm9pZGluZyB3YXJuaW5ncyBsaWtlOgoJICBXQVJOSU5HOiBUYXJnZXQgImVsZW1lbnRzL2F1ZGlvYW1wbGlmeSIgaGFzIGEgcGF0aCBzZXBhcmF0b3IgaW4gaXRzIG5hbWUuCgoyMDE3LTA1LTMxIDIwOjQwOjAwICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IFB1dCBjb3JyZWN0IGFubm90YXRpb25zIG9uIGdzdF9iaW5fYWRkKCkgdG9vCgoyMDE3LTA1LTIzIDAwOjUxOjEyICswMjAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IEhvbGQgb2JqZWN0IGxvY2sgd2hpbGUgdXBkYXRpbmcgbGF0ZW5jeQoJICBPdGhlcndpc2UgaW4gZ3N0X2Jhc2Vfc3JjX3F1ZXJ5X2xhdGVuY3koKSwgaXQgZW5kZWQgdXAKCSAgc29tZXRpbWVzIHRoaW5raW5nIGl0IHdhc24ndCAtMSB3aGVuIGl0IHdhcyBhY3R1YWxseS4KCjIwMTctMDUtMjIgMTI6MDE6NDEgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIG9iamVjdDogQWRkIG1pc3NpbmcgYW5ub3RhdGlvbnMgdG8gZ2V0X3ZhbHVlX2FycmF5KCkgLyBnZXRfdmFsdWVfZ19hcnJheSgpCgkgIFNhbWUgYXMgYWxyZWFkeSB1c2VkIGluIEdzdENvbnRyb2xCaW5kaW5nLgoKMjAxNy0wNS0yMSAxODoxMTozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZy5oLm1lc29uOgoJICBtZXNvbjogYWN0dWFsbHkgcmVtb3ZlIGNvbmZpZy5oLm1lc29uIGFzIHdlbGwKCjIwMTctMDUtMjEgMTk6MTY6NTcgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cHJvdGVjdGlvbi5jOgoJICBwcm90ZWN0aW9uOiBGaXggYW5ub3RhdGlvbnMgZm9yIGdzdF9wcm90ZWN0aW9uX3NlbGVjdF9zeXN0ZW0oKQoKMjAxNy0wNS0yMSAxNzowNDoxMCArMDIwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiBTdG9wIHBsdWdpbiBzeW1ib2wgbmFtZSBhdCBmaXJzdCAuCgkgIFRoaXMgaXMgYmVjYXVzZSB0aGUgcHl0aG9uIHBsdWdpbiBlbmRzIHVwIG5hbWVkCgkgIGxpYmdzdHB5dGhvbi5jcHl0aG9uLTM1bS14ODZfNjQtbGludXgtZ251LnNvIHNvIHdlIG5lZWQgdG8gc3RvcAoJICBhdCB0aGUgZmlyc3QgZG90LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgyOTI0CgoyMDE3LTA1LTIxIDE0OjI2OjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogTWFrZWZpbGUuYW06CgkqIGdzdC9tZXNvbi5idWlsZDoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBkb24ndCBuZWVkIGNvbmZpZy5oLm1lc29uIGFueSBtb3JlCgkgIE1lc29uIGRvZXMgdGhlIGxhcmdlZmlsZSBzdXBwb3J0IGF1dG9tYXRpY2FsbHkgbm93YWRheXMsIGFuZAoJICBjYW4gZ2VuZXJhdGUgYSBjb25maWcuaCBmcm9tIGNvbmZpZ3VyYXRpb25fZGF0YSgpIHdpdGhvdXQgYQoJICB0ZW1wbGF0ZSBhcyBpbnB1dC4KCjIwMTctMDUtMjEgMDk6MDI6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBjb21tb246CgkqIG1lc29uLmJ1aWxkOgoJKiB0ZXN0cy9jaGVjay9tZXNvbi5idWlsZDoKCSAgbWVzb246IG1ha2UgQysrIGNvbXBpbGVyIG9wdGlvbmFsCgkgIEl0J3Mgb25seSB1c2VkIHRvIGJ1aWxkIHRlc3RzIHRvIHNlZSBpZiBvdXIgaGVhZGVycyBhcmUgQysrIGNsZWFuLgoKMjAxNy0wNS0yMCAxNzo1NzozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL21lc29uLmJ1aWxkOgoJICBtZXNvbjogY2hlY2s6IGdlbmVyYXRlIC5naXIgZmlsZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgyMTczCgoyMDE3LTA1LTIwIDE5OjQyOjUxICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RwYXJzZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFyc2U6IE1ha2UgZ3N0X3BhcnNlX2NvbnRleHRfY29weSgpIHB1YmxpYyBmb3IgYmluZGluZ3MKCjIwMTctMDUtMjAgMTY6NDQ6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSAgdG9vbHM6IGRpc3QgbmV3IGdzdC1zdGF0cyBtYW4gcGFnZQoJICBGaXhlcyBtZXNvbiBidWlsZCBmcm9tIHRhcmJhbGwuCgoyMDE3LTA1LTIwIDE2OjQzOjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSAgRGlzdCBtZXNvbiBwdHAgaGVscGVyIGluc3RhbGwgc2NyaXB0CgkgIEZpeGVzIG1lc29uIGJ1aWxkIGZyb20gdGFyYmFsbC4KCjIwMTctMDUtMjAgMTM6MjQ6MTggKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxlYWtzLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsZWFrcy5oOgoJICBsZWFrczogSGFuZGxlIHN1YmNsYXNzZXMgaW4gZmlsdGVycyBldmVuIGZvciB1bmhhbmRsZWQvbGF6eSBsb2FkZWQgdHlwZXMKCSAgVXNpbmcgdHlwZW5hbWUgaW4gdGhlIHNldCBvZiB1bmhhbmRsZWQgdHlwZXMgaW5zdGVhZCBvZiB0aGUgcXVhcmsgc28KCSAgdGhhdCB3ZSBhbHNvIGhhbmRsZSBzdWJjbGFzc2VzIGFzIHdpdGggb3RoZXIgZmlsdGVycy4KCjIwMTctMDUtMTkgMTk6MjI6MjcgKzAyMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IGFkZCBtaXNzaW5nIEUgY2hhcmFjdGVyIHRvIHRoZSBsZWdlbmQKCSAgVGhlIEUgY2hhcmFjdGVyIG9uIHBhZHMgaW5kaWNhdGVzIHRoZSBwcmVzZW5jZSBvZiB0aGUgRU9TIGZsYWcuCgoyMDE3LTA1LTE3IDIxOjUwOjI1ICswMjAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBnc3QtcGx1Z2luOiBhbGxvdyAnLScgaW4gcGx1Z2luIGZpbGUgbmFtZQoJICAnLScgd2lsbCBiZSB0cmFuc2xhdGVkIHRvIHVuZGVyc2NvcmUgd2hlbiBkZXRlcm1pbmluZyBzeW1ib2wgbmFtZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgyNzU2CgoyMDE2LTA2LTIwIDE1OjU4OjU5ICswMjAwICBDaHJpc3RvcGggUmVpdGVyIDxyZWl0ZXIuY2hyaXN0b3BoQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIGdzdDogcmVmX3NpbmsoKSBzb21lIG1vcmUgZmxvYXRpbmcgcmVmZXJlbmNlcyByZXR1cm5lZCBieSBnX29iamVjdF9uZXcoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQzMDYyCgoyMDE3LTA1LTE1IDE4OjU4OjM4ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdHN0cmVhbWNvbGxlY3Rpb24uYzoKCSogZ3N0L2dzdHN0cmVhbXMuYzoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBnc3Q6IENsZWFyIGZsb2F0aW5nIGZsYWcgaW4gY29uc3RydWN0b3Igb2YgYWxsIEdzdE9iamVjdCBzdWJjbGFzc2VzIHRoYXQgYXJlIG5vdCBvd25lZCBieSBhbnkgcGFyZW50CgkgIEkuZS4gbW9zdCBvZiB0aGVtIHVuZm9ydHVuYXRlbHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDMwNjIKCjIwMTctMDUtMTUgMTQ6MzQ6NTcgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkgIGFsbG9jYXRvcjogcmVmX3NpbmsoKSB0aGUgZ2xvYmFsIHN5c21lbSBhbGxvY2F0b3IgYWZ0ZXIgY3JlYXRpb24KCSAgSXQncyBub3Qgb3duZWQgYnkgdGhlIGZpcnN0IG9uZSB0byBhc2sgZm9yIGl0LCBidXQgYnkgdGhpcyB2ZXJ5IGNvZGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDMwNjIKCjIwMTctMDUtMTUgMTQ6MzI6NDggKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJICBnc3Q6IERvbid0IHJlZl9zaW5rKCkgR3N0T2JqZWN0IHN1YmNsYXNzZXMgaW4gaW5zdGFuY2VfaW5pdC9jb25zdHJ1Y3RvcgoJICBUaGlzIGlzIHNvbWV0aGluZyBiaW5kaW5ncyBjYW4ndCBoYW5kbGUgYW5kIGl0IGNhdXNlcyBsZWFrcy4gSW5zdGVhZAoJICBtb3ZlIHRoZSByZWZfc2luaygpIHRvIHRoZSBleHBsaWNpdCwgbmV3KCkgY29uc3RydWN0b3JzLgoJICBUaGlzIG1lYW5zIHRoYXQgYWJzdHJhY3QgY2xhc3NlcywgYW5kIGFueXRoaW5nIHRoYXQgY2FuIGhhdmUgc3ViY2xhc3NlcywKCSAgd2lsbCBoYXZlIHRvIGRvIHJlZl9zaW5rKCkgaW4gdGhlaXIgbmV3KCkgZnVuY3Rpb24gbm93LiBTcGVjaWZpY2FsbHkKCSAgdGhpcyBhZmZlY3RzIEdzdENsb2NrIGFuZCBHc3RDb250cm9sU291cmNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQzMDYyCgoyMDE3LTA1LTE1IDE0OjMyOjAwICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c3RyZWFtY29sbGVjdGlvbi5jOgoJKiBnc3QvZ3N0c3RyZWFtcy5jOgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHByb3h5Y29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBnc3Q6IENvcnJlY3RseSBhbm5vdGF0ZSBmdW5jdGlvbnMgdGFraW5nIGZsb2F0aW5nIHJlZmVyZW5jZSBwYXJhbWV0ZXJzIGFuZCByZXR1cm5pbmcgZmxvYXRpbmcgcmVmZXJlbmNlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyOTYwCgoyMDE3LTA1LTE1IDE0OjI5OjA1ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3Q6IEhhbmRsZSBmbG9hdGluZyByZWZlcmVuY2VzIGNvbnNpc3RlbnRseQoJICBJZiBhIGZ1bmN0aW9uIHRha2VzIGEgZmxvYXRpbmcgcmVmZXJlbmNlIHBhcmFtZXRlciwgaXQgc2hvdWxkIGFsc28gYmUKCSAgc2lua2VkIGluIGVycm9yIGNhc2VzLiBPdGhlcndpc2UgdGhlIGZ1bmN0aW9uIGJlaGF2ZXMgZGlmZmVyZW50bHkKCSAgYmV0d2VlbiBlcnJvciBhbmQgbm9ybWFsIGNhc2VzLCB3aGljaCBpcyBpbXBvc3NpYmxlIGZvciBiaW5kaW5ncyB0bwoJICBoYW5kbGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDc5OTAKCjIwMTUtMDctMTAgMTU6MzY6NTkgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0OiBGaXggZmxvYXRpbmcgcmVmZXJlbmNlIGluY29uc2lzdGVuY2llcyBpbiBlcnJvciBjYXNlcwoJICBJZiBhIGZ1bmN0aW9uIHRha2VzIGEgZmxvYXRpbmcgcmVmZXJlbmNlIGFuZCBzaW5rcyBpdCwgaXQgc2hvdWxkIGFsc28gZG8KCSAgdGhhdCBpbiBlcnJvciBjYXNlcy4gSS5lLiBjYWxsIHJlZl9zaW5rKCkgZm9sbG93ZWQgYnkgdW5yZWYoKS4KCSAgT3RoZXJ3aXNlIHRoZSByZWZlcmVuY2UgY291bnRpbmcgYmVoYXZpb3VyIG9mIHRoZSBmdW5jdGlvbiB3aWxsIGJlCgkgIGRpZmZlcmVudCBiZXR3ZWVuIHRoZSBnb29kIGFuZCB0aGUgZXJyb3IgY2FzZSwgYW5kIHNpbXBseSBpbmNvbnNpc3RlbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDc5OTAKCjIwMTctMDUtMTYgMTM6MzE6MDYgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgQWxzbyB1c2UgZGVmYXVsdCB2aXNpYmlsaXR5IGZvciBwbHVnaW5zIHN5bWJvbAoKMjAxNy0wNS0xNiAxMzoyOTozOCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogY29uZmlnLmgubWVzb246CgkqIGNvbmZpZ3VyZS5hYzoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9tZXNvbi5idWlsZDoKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJICBSZW1vdmUgcGx1Z2luIHNwZWNpZmljIHN0YXRpYyBidWlsZCBvcHRpb24KCSAgU3RhdGljIGFuZCBkeW5hbWljIHBsdWdpbnMgbm93IGhhdmUgdGhlIHNhbWUgaW50ZXJmYWNlLiBUaGUgc3RhbmRhcmQKCSAgLS1lbmFibGUtc3RhdGljLy0tZW5hYmxlLXNoYXJlZCB0b2dnbGUgYXJlIHN1ZmZpY2llbnQuCgoyMDE3LTA1LTE2IDAwOjAyOjExICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBmaXggZ3N0cHJpbnRmIHRlc3QgbGlua2luZwoJICBNdXN0IGxpbmsgYWdhaW5zdCBnc3RwcmludCBoZWxwZXIgbGliIHRvIHVzZSBwcml2YXRlIHN5bWJvbC4KCjIwMTctMDUtMTAgMTM6MDM6MzEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIGdzdGNvbmZpZy5oOiB1c2UgZGVmYXVsdCB2aXNpYmlsaXR5IGZvciBHU1RfRVhQT1JUIGZvciBnY2MvY2xhbmcgdG9vCgkgIFRoaXMgd2lsbCBiZSBuZWVkZWQgbGF0ZXIgd2hlbiB3ZSBzd2l0Y2ggdG8gdXNpbmcgLWZ2aXNpYmlsaXR5PWhpZGRlbi4KCjIwMTctMDUtMTAgMTM6MDc6MzEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBnc3Q6IGFkZCBHU1RfREVQUkVDQVRFRF9GT1IoKSBhbmQgYWxzbyBleHBvcnQgZGVwcmVjYXRlZCBzeW1ib2xzCgkgIENhbid0IHVzZSBhICNpZm5kZWYgR1NUX0RJU0FCTEVfREVQUkVDQVRFRCBndWFyZCBhcm91bmQgZGVwcmVjYXRlZAoJICBmdW5jdGlvbnMgYW55IG1vcmUsIGFzIHRoZXkgd29uJ3QgZ2V0IGV4cG9ydGVkIHRoZW4uIEJlc2lkZXMsIHdlCgkgIGdldCBhIG5pY2VyIGVycm9yIG1lc3NhZ2UgZnJvbSB0aGUgY29tcGlsZXIgdGVsbGluZyB1cyB3aGF0IGZ1bmN0aW9uCgkgIHRvIHVzZSBpbnN0ZWFkIHRoaXMgd2F5LgoKMjAxNy0wNS0xMCAxMDo1NjoxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGFsbG9jYXRvci5oOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuaDoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RidXMuaDoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5oOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmg6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJKiBnc3QvZ3N0ZGV2aWNlLmg6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmg6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5oOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXJmYWN0b3J5Lmg6CgkqIGdzdC9nc3RkeW5hbWljdHlwZWZhY3RvcnkuaDoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RlbnVtdHlwZXMuaC50ZW1wbGF0ZToKCSogZ3N0L2dzdGVycm9yLmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmg6CgkqIGdzdC9nc3RwYXJzZS5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cG9sbC5oOgoJKiBnc3QvZ3N0cHJlc2V0Lmg6CgkqIGdzdC9nc3Rwcm90ZWN0aW9uLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHNhbXBsZS5oOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiBnc3QvZ3N0c3RyZWFtY29sbGVjdGlvbi5oOgoJKiBnc3QvZ3N0c3RyZWFtcy5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkqIGdzdC9nc3R0YXNrLmg6CgkqIGdzdC9nc3R0YXNrcG9vbC5oOgoJKiBnc3QvZ3N0dG9jLmg6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuaDoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBnc3QvZ3N0dHJhY2VyZmFjdG9yeS5oOgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmg6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5Lmg6CgkqIGdzdC9nc3R1cmkuaDoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJICBnc3Q6IG1hcmsgc3ltYm9scyBleHBsaWNpdGx5IGZvciBleHBvcnQgd2l0aCBHU1RfRVhQT1JUCgkgIE9uZSBvbWlzc2lvbjogZ3N0X2FsbG9jYXRvcl9zeXNtZW1fZ2V0X3R5cGUoKSB3YXMKCSAgZXhwb3J0ZWQgYnV0IG5ldmVyIGluIGFueSBwdWJsaWMgaGVhZGVyIGZpbGUuCgoyMDE3LTA1LTEwIDAwOjExOjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogY29tbW9uOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2NvbnRyb2xsZXJfbWtlbnVtLnB5OgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0cHJveHljb250cm9sYmluZGluZy5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuaDoKCSAgbGliczogY29udHJvbGxlcjogbWFyayBzeW1ib2xzIGV4cGxpY2l0bHkgZm9yIGV4cG9ydCB3aXRoIEdTVF9FWFBPUlQKCjIwMTctMDUtMDkgMTY6MTk6MzEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSAgbGliczogYmFzZTogbWFyayBzeW1ib2xzIGV4cGxpY2l0bHkgZm9yIGV4cG9ydCB3aXRoIEdTVF9FWFBPUlQKCjIwMTctMDUtMDkgMTY6MDE6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjb250cm9sbWVzc2FnZW1ldGEuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suaDoKCSAgbGliczogbmV0OiBtYXJrIHN5bWJvbHMgZXhwbGljaXRseSBmb3IgZXhwb3J0IHdpdGggR1NUX0VYUE9SVAoKMjAxNy0wNS0xMyAxODozMDoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJKiBtZXNvbl9vcHRpb25zLnR4dDoKCSAgbWVzb246IGFkZCBvcHRpb25zIHRvIHNldCBwYWNrYWdlIG5hbWUgYW5kIG9yaWdpbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgyMTcyCgoyMDE3LTA1LTEzIDE4OjE5OjA1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICBkb2NzOiB1c2UgdGhlIGZ1bGwgcGF0aCB0byBpZ25vcmUgZGlycwoKMjAxNy0wNS0xMiAxNzo0OToyNSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgZG9jczogcmVtb3ZlIHN0cmF5ICcsXCcgZnJvbSBkb2MgY29tbWVudAoKMjAxNy0wMi0yNSAxMjoxODoxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBBZGQgR3N0UmVmZXJlbmNlVGltZXN0YW1wTWV0YQoJICBUaGlzIGlzIGEgbWV0YSB0aGF0IGdlbmVyaWNhbGx5IGFsbG93cyB0byBhdHRhY2ggYWRkaXRpb25hbCByZWZlcmVuY2UKCSAgdGltZXN0YW1wcyB0byBhIGJ1ZmZlciwgdGhhdCBkb24ndCBoYXZlIHRvIHJlbGF0ZSB0byB0aGUgcGlwZWxpbmUgY2xvY2sKCSAgaW4gYW55IHdheS4KCSAgRXhhbXBsZXMgb2YgdGhpcyBjb3VsZCBiZSBhbiBOVFAgdGltZXN0YW1wIHdoZW4gdGhlIG1lZGlhIHdhcyBjYXB0dXJlZCwKCSAgYSBmcmFtZSBjb3VudGVyIG9uIHRoZSBjYXB0dXJlIHNpZGUgb3IgdGhlIChsb2NhbCkgVU5JWCB0aW1lc3RhbXAgd2hlbgoJICB0aGUgbWVkaWEgd2FzIGNhcHR1cmVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc5MjEzCgoyMDE3LTA1LTA5IDE2OjI5OjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBidW1wIG1lc29uIHZlcnNpb24gcmVxdWlyZW1lbnQgdG8gMC40MC4xCgoyMDE2LTEyLTE1IDEyOjQ4OjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidXM6IEFkZCBmdW5jdGlvbiB0byBnZXQgdGhlIGZpbGUgZGVzY3JpcHRvciBvZiB0aGUgYnVzCgkgIFRoaXMgaXMgdXNlZnVsIGZvciBpbnRlZ3JhdGlvbiB3aXRoIG90aGVyIGV2ZW50IGxvb3BzIHRoYXQgd29yayBieQoJICBwb2xsaW5nIGZpbGUgZGVzY3JpcHRvcnMuIEdfSU9fSU4gd2lsbCBhbHdheXMgYmUgc2V0IHdoZW5ldmVyIGEgbWVzc2FnZQoJICBpcyBhdmFpbGFibGUgY3VycmVudGx5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc2MTI2CgoyMDE3LTAyLTI3IDIxOjM4OjExIC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIHBsdWdpbjogVW5pZnkgc3RhdGljIGFuZCBkeW5hbWljIHBsdWdpbiBpbnRlcmZhY2UKCSAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSBlbnRyeSBwb2ludCBvZiBlYWNoIHBsdWdpbiBpbiBvcmRlciB0byB1bmlmeSB0aGUKCSAgaW50ZXJmYWNlIGZvciBzdGF0aWMgYW5kIGR5bmFtaWMgcGx1Z2luLiBXaGF0IHdlIGRvIGlzIHJlcGxhY2UgdGhlCgkgIGN1cnJlbnQgc3RhdGljIHBsdWdpbiBpbnRlcmZhY2UgYW5kIGV4dGVuZCB0aGUgZHltYW1pYyBvbmUuIFRoZSBwbHVnaW4KCSAgZW50cnkgd2FzIGEgQyBzdHJ1Y3R1cmUsIG5hbWUgImdzdF9wbHVnaW5fZGVzYyIuIFdpdGggdGhpcyBwYXRjaCwgdGhlCgkgIGludGVyZmFjZSBpcyBub3c6CgkgIEdzdFBwbHVnaW5EZXNjICpnc3RfcGx1Z2luXzxuYW1lPl9nZXRfZGVzYyh2b2lkKTsKCSAgVGhlIHJlYXNvbiB3ZSBjaGFuZ2UgdGhlIEMgc3RydWN0dXJlIGludG8gZnVuY3Rpb24sIGlzIHRoYXQgaXQgaXMKCSAgcG90ZW50aWFsbHkgbW9yZSBjb21tb24gdG8gaGF2ZSBmdW5jdGlvbiBwb2ludGVycywgYXZvaWRpbmcgcG9zc2libGUKCSAgYmluZGluZyBsYW5ndWFnZSBsaW1pdGF0aW9uLiBBZGRpdGlvbmFsbHkgdG8gdGhhdC4gVGhpcyBjaGFuZ2UgcHJldmVudHMKCSAgdGhlIHN5bWJvbHMgZnJvbSBjbGFzaGluZyBiZXR3ZWVuIHBsdWdpbnMsIGFsbG93aW5nIHRvIGJ1aWxkIG9uY2UgdGhlCgkgIHBsdWdpbiAoYXNzdW1pbmcgeW91IGhhdmUgLWZQSUMpLgoJICBPbiB0aGUgcGx1Z2luIGxvYWRlciBzaWRlLCB3ZSBzeW1wbHkgZGVyaXZlIHRoZSBzaGFyZWQgb2JqZWN0IGJhc2VuYW1lCgkgIHRvIGV4dHJhY3QgdGhlIHBsdWdpbiBuYW1lLiBJZiB0aGlzIHN5bWJvbCBpcyBub3QgZm91bmQsIHdlIGZhbGxiYWNrIHRvCgkgIGdzdF9wbHVnaW5fZGVzYyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4KCSAgVGhpcyBoYXMgb25lIHNpZGUgZWZmZWN0LCB3aGljaCBpcyB0aGF0IHRoZSBzaGFyZWQgb2JqZWN0cyBub3cgbmVlZCB0bwoJICBiZSBuYW1lZCBhZnRlciB0aGVpciBwbHVnaW4gbmFtZS4gVGhpcyBpcyBnZW5lcmFsbHkgdGhlIGNhc2Ugd2l0aCBmZXcKCSAgZXhjZXB0aW9ucy4gVGhlIGJlbmlmaXQgb2YgdGhpcyBsaW1pdGF0aW9uIGlzIHRoYXQgeW91IGNhbiBjb250cm9sIHRoZQoJICBnc3RfcGx1Z2luXzxuYW1lPl9kZXNjIGNsYXNoIGF0IGZpbGUgbGV2ZWwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzkzNDQKCjIwMTctMDUtMDkgMDk6MjQ6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL21lc29uLmJ1aWxkOgoJICBtZXNvbjogZml4IHNlYXJjaCBwYXRoIGZvciBzZXRjYXAKCjIwMTctMDUtMDcgMTE6MTc6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBtYWtlIGxvY2FsIHZhcmlhYmxlIHN0YXRpYwoKMjAxNy0wNS0wNSAxMjoyMzo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvcHRwX2hlbHBlcl9wb3N0X2luc3RhbGwuc2g6CgkgIG1lc29uOiBmYWlsIHNpbGVudGx5IGluIHB0cCBoZWxwZXIgcG9zdCBpbnN0YWxsIHNjcmlwdAoJICAuLiBpbiBjYXNlIHBlcm1pc3Npb25zL2NhcGFiaWxpdGllcyBjb3VsZCBub3QgYmUgc2V0LgoKMjAxNy0wNS0wNSAxMjowMjozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiB1c2UgY2MuZmluZF9saWJyYXJ5KCkKCSAgZmluZF9saWJyYXJ5KCkgd2FzIGRlcHJlY2F0ZWQgYW5kIHJlbW92ZWQgaW4gbGF0ZXIgdmVyc2lvbnMuCgoyMDE3LTA1LTA1IDExOjQ5OjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlnLmgubWVzb246CgkqIGdzdC9tZXNvbi5idWlsZDoKCSogbGlicy9nc3QvaGVscGVycy9tZXNvbi5idWlsZDoKCSogbGlicy9nc3QvaGVscGVycy9wdHBfaGVscGVyX3Bvc3RfaW5zdGFsbC5zaDoKCSogbWVzb24uYnVpbGQ6CgkqIG1lc29uX29wdGlvbnMudHh0OgoJICBtZXNvbjogYWRkIGdzdC1wdHAtaGVscGVyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzQ0MTgKCjIwMTctMDUtMDUgMDk6MTA6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IGZpeCBpbmRlbnRhdGlvbgoJICBObyB0YWJzIHBsZWFzZS4KCjIwMTctMDUtMDUgMDA6NDU6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJICBoZWxwZXJzOiByZW1vdmUgb2xkIGNydWZ0IGZyb20gQ0xFQU5GSUxFUwoJICBUaGVzZSBmaWxlcyBhcmUgbm8gbG9uZ2VyIGJ1aWx0LCBzbyBubyBuZWVkIHRvIGNsZWFuIHRoZW0uCgoyMDE3LTA0LTI5IDExOjMwOjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiBtZXNvbi5idWlsZDoKCSAgZy1pOiBubyBuZWVkIHRvIGxvYWQgcmVnaXN0cnkgaW4gZy1pIHNjYW5uZXIKCjIwMTctMDUtMDQgMjE6Mzc6MjggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBNYWtlZmlsZS5hbToKCSogZ3N0LWVsZW1lbnQtY2hlY2stMS4wLm00OgoJICBEb24ndCBnZW5lcmF0ZSBnc3QtZWxlbWVudC1jaGVjay0xLjAubTQgb24gdGhlIGZseSBhbmQgZml4IG1lc29uIGJ1aWxkCgkgIFRoaXMgd2lsbCBpbnRlcmZlcmUgd2l0aCAnZ2l0IHB1bGwnLiBZb3Ugd2lsbCBoYXZlIHRvIHJlbW92ZSB0aGUKCSAgb2xkIGdlbmVyYXRlZCBnc3QtZWxlbWVudC1jaGVjay0xLjAubTQgbWFudWFsbHkgaWYgeW91J3JlIHB1bGxpbmcKCSAgb24gYSBkaXJ0eSBidWlsZCBkaXJlY3RvcnksIHNvcnJ5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgyMTc0CgoyMDE3LTA1LTA0IDIxOjA2OjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBpbnN0YWxsIGdzdC1lbGVtZW50LWNoZWNrLTEuMC5tNAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgyMTc0CgoyMDE3LTA0LTMwIDEyOjEwOjQ5ICswOTAwICBZYXN1c2hpIFNIT0pJIDx5YXNoaUBhdG1hcmstdGVjaG5vLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogQWJvcnQgd2hlbiBmYWlsZWQgdG8gY29uc3RydWN0IHRoZSBzcGVjaWZpZWQgcGlwZWxpbmUKCSAgZ3N0X2hhcm5lc3NfbmV3X3BhcnNlKCkgcmV0dXJucyB3aXRob3V0IGFueSBlcnJvciBldmVuIGlmIGl0IGRvZXNuJ3QKCSAgZmluZCB0aGUgc3BlY2lmaWVkIGVsZW1lbnQuICBUaGVuIGEgc3VjY2VlZGluZyBjYWxsIHRvCgkgIGdzdF9oYXJuZXNzX3NldF9zaW5rX2NhcHNfc3RyKCkgY2F1c2VzIGFuIGVycm9yIGxpa2UgdGhpczoKCSAgVW5leHBlY3RlZCBjcml0aWNhbC93YXJuaW5nOiBnc3RfcGFkX3B1c2hfZXZlbnQ6IGFzc2VydGlvbiAnR1NUX0lTX1BBRCAocGFkKScgZmFpbGVkCgkgIFRoaXMgaXMgYSBiaXQgY3J5cHRpYyBhbmQgZG9lc24ndCBnaXZlIHVzZXJzIGFueSBjbHVlIHdoYXQgd2FzIGdvaW5nCgkgIG9uLgoJICBnc3RfaGFybmVzc19uZXdfcGFyc2UoKSBjYWxscyBnc3RfaGFybmVzc19hZGRfcGFyc2UoKSB3aXRoIGEgbmV3bHkKCSAgY3JlYXRlZCBlbXB0eSBoYXJuZXNzIGFuZCB0aGUgZ2l2ZW4gcGlwZWxpbmUgZGVzY3JpcHRpb24gc3RyaW5nLCBidXQKCSAgZ3N0X2hhcm5lc3NfYWRkX3BhcnNlKCkgZG9lcyBub3QgaGF2ZSBhIHdheSB0byBwcm9wYWdhdGUgdGhlIGVycm9yCgkgIGJhY2sgdG8gdGhlIGNhbGxlci4gIFNpbmNlIHRoZSBmdW5jdGlvbiwgZ3N0X2hhcm5lc3NfYWRkX3BhcnNlKCksIGlzIGEKCSAgcHVibGljIEFQSSwgaXQncyBub3QgYSBnb29kIGlkZWEgdG8gY2hhbmdlIGl0cyBzaWduYXR1cmUuICBUaGlzIHBhdGNoLAoJICBpbnN0ZWFkLCBtYWtlcyB0aGUgZnVuY3Rpb24gdG8gZ19lcnJvcigpIHdoZW4gaXQgZGlzY292ZXJzIGFueSBlcnJvci4KCSAgV2l0aCB0aGlzIGNoYW5nZSB0aGUgc2FtZSBlcnJvciBwcmludHM6CgkgICoqIChteWVsZW1lbnQtdGVzdDoyNTM0NSk6IEVSUk9SICoqOiBVbmFibGUgdG8gY3JlYXRlIHBpcGVsaW5lICdiaW4uKCBteWVsZW1lbnQgKSc6IG5vIGVsZW1lbnQgIm15ZWxlbWVudCIKCSAgVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb2YgZ3N0X3BhcnNlX2xhdW5jaF9mdWxsKCkgZG9lc24ndCByZXR1cm4KCSAgcGFydGlhbGx5IGNvbnN0cnVjdGVkIHBpcGVsaW5lIHdoZW4gR1NUX1BBUlNFX0ZMQUdfRkFUQUxfRVJST1JTIGlzCgkgIHNwZWNpZmllZCwgaG93ZXZlciwgdGhpcyBwYXRjaCBhbHNvIGFkZHMgYSBjaGVjayBmb3IgaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODE5NTgKCjIwMTctMDUtMDQgMTg6NTk6MTQgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIG1lc29uLmJ1aWxkOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjEyLjAgPT09CgoyMDE3LTA1LTA0IDE1OjM2OjU1ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogbWVzb24uYnVpbGQ6CgkgIFJlbGVhc2UgMS4xMi4wCgoyMDE3LTA1LTA0IDE1OjAwOjE2ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2FzdC5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9mdXIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTctMDUtMDIgMTQ6MzU6NTAgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBEb24ndCBwYXNzIGEgTlVMTCBkZWJ1ZyBzdHJpbmcgdG8gZ191dGY4X3ZhbGlkYXRlKCkKCSAgZ191dGY4X3ZhbGlkYXRlKCkgY3Jhc2hlcyBvbiBOVUxMLCBidXQgTlVMTCBpcyB2YWxpZCBmb3IgdGhlIGRlYnVnCgkgIHN0cmluZyBub25ldGhlbGVzcy4KCjIwMTctMDUtMDIgMTQ6Mjc6MTQgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogQ2hlY2sgaWYgbWV0YSB0cmFuc2Zvcm1fZnVuYyBpcyBOVUxMIGJlZm9yZSB1c2luZyBpdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgyMDUwCgoyMDE3LTA1LTAyIDEwOjMyOjU0ICswMjAwICBGcsOpZMOpcmljIERhbGxlYXUgPGZyZWRlcmljLmRhbGxlYXVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBDaGVjayBpZiBtZXRhIHRyYW5zZm9ybV9mdW5jIGlzIE5VTEwgYmVmb3JlIHVzaW5nIGl0CgkgIEFuIHVudGVzdGVkIHBvaW50ZXIgc2VnZmF1bHRlZCBpbiB3ZWJraXQgd2hpbGUgcGxheWluZyB2aWRlbwoJICBvbiBpbXg2IHNhYnJlbGl0ZS4gSXQgdHVybmVkIG91dCB0aGF0IHRoZSBpbXggcGx1Z2luIGRpZG4ndAoJICBpbXBsZW1lbnQgdGhlIG1ldGEgdHJhbnNmb3JtIGZ1bmN0aW9uLgoJICBUaGUgZm9sbG93aW5nIEdTVF9ERUJVRyB0cmFjZSB3YXMgdmlzaWJsZToKCSAgZ3N0YmFzZXRyYW5zZm9ybS5jOjE3Nzk6Zm9yZWFjaF9tZXRhZGF0YTo8Y29udjI+IGNvcHkgbWV0YWRhdGEKCSAgR3N0SW14VnB1QnVmZmVyTWV0YUFQSQoJICBUaHJlYWQgMjYgdnF1ZXVlOnNyYyByZWNlaXZlZCBzaWduYWwgU0lHU0VHViwgU2VnbWVudGF0aW9uIGZhdWx0LgoJICAoZ2RiKSBidAoJICAweDAwMDAwMDAwIGluID8/ICgpCgkgIDB4NzNmOGQ3ZDggaW4gZm9yZWFjaF9tZXRhZGF0YSAoaW5idWY9MHhjOWIwMjAsIG1ldGE9MHg0NzRiMjQ5MCwKCSAgdXNlcl9kYXRhPTxvcHRpbWl6ZWQgb3V0PikgYXQgZ3N0YmFzZXRyYW5zZm9ybS5jOjE3ODEKCSAgMHg3M2ViM2VhOCBpbiBnc3RfYnVmZmVyX2ZvcmVhY2hfbWV0YSAoYnVmZmVyPWJ1ZmZlckBlbnRyeT0weGM5YjAyMCwKCSAgZnVuYz0weDczZjhkNzA1IDxmb3JlYWNoX21ldGFkYXRhPiwKCSAgdXNlcl9kYXRhPXVzZXJfZGF0YUBlbnRyeT0weDQ3NGIyNGQ0KQoJICBhdCBnc3RidWZmZXIuYzoyMjM0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODIwNTAKCjIwMTctMDQtMjggMTk6NDM6NDkgKzAyMDAgIFbDrWN0b3IgTWFudWVsIErDoXF1ZXogTGVhbCA8dmphcXVlekBpZ2FsaWEuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGNoZWNrIG5vbi1udWxsIGJlZm9yZSBkZXJlZmVyZW5jZQoJICBJdCBpcyBwb3NzaWJsZSB0byB1c2UgZ3N0X2RlaW5pdCgpIHdpdGhvdXQgcmVnaXN0ZXJpbmcgdGhlIGJhc2UKCSAgY2xhc3Nlcy4gRm9yIGV4YW1wbGUsIHdoZW4gdXNpbmcgZ3N0X2luaXRfZ2V0X29wdGlvbl9ncm91cCgpIGFuZAoJICBjYWxsIHRoZSBwcm9ncmFtIHdpdGggYW4gaW52YWxpZCBwYXJhbWV0ZXIuIEluIHRoYXQgY2FzZSwKCSAgZ3N0X2RlaW5pdCgpIHdpbGwgbGVhZCB0byBhIHNlZ21lbnRhdGlvbiBmYXVsdCwgc2luY2UgdGhlcmUgaXMgYQoJICBkZXJlZmVyZW5jZSB0byBhIHBvaW50ZXIgdGhhdCBpcyBudWxsLgoJICBUaGlzIHBhdGNoIHZhbGlkYXRlcyBpZiB0aGUgdHlwZSBpcyBub24tbnVsbCBiZWZvcmUgZGVyZWZlcmVuY2luZwoJICBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MTkxNAoKMjAxNy0wNC0yOCAxMTo1Nzo0MSArMDIwMCAgTmljb2xhIE11cmlubyA8bmljb2xhLm11cmlub0BnbWFpbC5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgb3BlbmN2IHRvIGJhZCBsaWJzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODE4ODkKCj09PSByZWxlYXNlIDEuMTEuOTEgPT09CgoyMDE3LTA0LTI3IDE3OjI0OjA1ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogbWVzb24uYnVpbGQ6CgkgIFJlbGVhc2UgMS4xMS45MQoKMjAxNy0wNC0yNyAxNTo0ODozMyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hc3QucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZnVyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE3LTA0LTI3IDE1OjIxOjI2ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vTElOR1VBUzoKCSogcG8vYXN0LnBvOgoJKiBwby9mdXIucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE3LTA0LTI0IDIwOjI3OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA2MGFlZWY2IHRvIDQ4YTVkODUKCjIwMTctMDQtMjEgMTU6MDQ6MzIgKzAyMDAgIEtvb3AgTWFzdCA8a3dtQHJhaW5ib3ctcnVubmVyLm5sPgoKCSogdG9vbHMvbWVzb24uYnVpbGQ6CgkgIE1lc29uOiBhbHNvIGJ1aWxkIGFuZCBpbnN0YWxsIGdzdC1zdGF0cy0xLjAgYW5kIGl0J3MgbWFuIHBhZ2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODE1ODUKCjIwMTctMDQtMjEgMTU6MDM6MTggKzAyMDAgIEtvb3AgTWFzdCA8a3dtQHJhaW5ib3ctcnVubmVyLm5sPgoKCSogdG9vbHMvZ3N0LXN0YXRzLTEuMC4xOgoJICBBZGQgdmVyeSBzaW1wbGUgbWFuIHBhZ2UgZm9yIGdzdC1zdGF0cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MTU4NQoKMjAxNy0wNC0yMSAxMDo1MTo1OSAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBkb2M6IEZpeCBzb21lIGRvY3RzaW5nIG1ha2luZyBHSSBoYXBweQoKMjAxNy0wNC0wNiAxNzo1MToyOSAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBkb2M6IEZpeCBHc3RDaGFuZ2VTdGF0ZSBkb2NzdHJpbmcKCjIwMTctMDQtMTkgMTc6MzE6MzggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBNb3ZlIGRlYnVnIG91dHB1dCBpbiBmb3JfZWFjaF90aHJlc2hvbGRfYnlfZW50cnkoKSB0byBUUkFDRSBsZXZlbAoJICBJdCdzIG90aGVyd2lzZSBhcHBlYXJpbmcgbWFueSwgbWFueSB0aW1lcyBpbiBsb2dzIGFuZCB1c3VhbGx5IGlzIG5vdGhpbmcKCSAgeW91J3JlIGludGVyZXN0ZWQgaW4uCgoyMDE3LTAzLTMxIDEyOjIyOjAwICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zZWVrLmM6CgkgIHRlc3RzOiBmaXggbWVzc2FnZSBsZWFrIGluIHNlZWsgdGVzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgwNzU3CgoyMDE3LTAzLTI5IDE5OjI2OjUzICswOTAwICBZYXN1c2hpIFNIT0pJIDx5YXNoaUBhdG1hcmstdGVjaG5vLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBmaXggdHlwbyBpbiBkZWJ1ZyBsb2cgb3V0cHV0CgkgIFRoaXMgdW5iYWxhbmNlZCBjbG9zaW5nIHBhcmVudGhlc2lzIGlzIGxlZnRvdmVyIGZyb20gdGhlIGNvbW1pdAoJICA4YjczOWQ5MWU3LiBJdCB1c2VkIHRvIHdyYXAgdGhlIGNhcHMgYnV0IHdlIGRvbid0IHNlZW0gdG8gZG8gdGhhdCBpbgoJICB0aGUgY3VycmVudCBjb2RlLgoJICBTbywganVzdCByZW1vdmUgaXQuIE5vIGZ1bmN0aW9uYWxpdHkgaGFzIGJlZW4gY2hhbmdlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MTQ4NAoKMjAxNy0wNC0xMCAxNjoyODo1NyArMDIwMCAgUmljbyBUenNjaGljaGhvbHogPHJpY290ekB1YnVudHUuY29tPgoKCSogZ3N0L21lc29uLmJ1aWxkOgoJKiBsaWJzL2dzdC9iYXNlL21lc29uLmJ1aWxkOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL21lc29uLmJ1aWxkOgoJKiBsaWJzL2dzdC9uZXQvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBBIGNvdXBsZSBmb3IgR0lSLWdlbmVyYXRpb24gZml4ZXMKCjIwMTctMDQtMTIgMDk6NDg6NTMgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9tZXNvbi5idWlsZDoKCSAgbWVzb246IEFkZCBjb250cm9sbGVyIGVudW0gZmlsZSBhcyBnZW5lcmF0ZWQgc291cmNlcwoJICBBdm9pZGluZyBidWlsZCBmYWlsdXJlIGxpa2UKCSAgaHR0cHM6Ly9jaS5hcHB2ZXlvci5jb20vcHJvamVjdC90aGlibGFodXRlL2dzdC1idWlsZC1nZTltNS9idWlsZC8xLjAuMjg1NwoKMjAxNy0wNC0xMSAyMDoxOTowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIE1ha2VmaWxlLmFtOgoJICBtZXNvbjogZGlzdCBuZXcgbWVzb24gYnVpbGQgc2NyaXB0CgoyMDE3LTA0LTExIDIwOjE2OjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY29udHJvbGxlci9jb250cm9sbGVyLmg6CgkgIGNvbnRyb2xsZXI6IGluY2x1ZGUgbmV3IHByb3h5Y29udHJvbGJpbmRpbmcgaGVhZGVyCgkgIEFuZCBmaXggaW5jbHVkZXMgaW4gZG9jcyB0byBqdXN0IGluY2x1ZGUgdGhlIG1haW4gaGVhZGVyICh0aGUKCSAgaW5jbHVkZSBmb3IgdGhlIHByb3h5Y29udHJvbGJpbmRpbmcgd2FzIHdyb25nIGluIHRoZSBkb2NzKS4KCjIwMTctMDQtMTEgMjA6MTY6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiAuZ2l0aWdub3JlOgoJICAuZ2l0aWdub3JlOiBpZ25vcmUgbW9yZQoKMjAxNy0wNC0xMSAxMTo1MjoyMCAtMDQwMCAgT2xpdmllciBDcmV0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L3BhcnNlL21lc29uLmJ1aWxkOgoJICBtZXNvbjogT25seSBjaGVjayB0aGUgZmlyc3QgcGFyYW1ldGVyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODExNTUKCjIwMTctMDQtMTEgMTA6MTc6NDAgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L3BhcnNlL21lc29uLmJ1aWxkOgoJICBtZXNvbjogQ2hlY2sgYmlzb24gYW5kIGZsZXggYXJlIHJlY2VudCBlbm91Z2gKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MTE1NQoKMjAxNy0wNC0xMCAyMzo0ODo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMzlhYzJmNSB0byA2MGFlZWY2CgoyMDE3LTA0LTEwIDEyOjI0OjA2IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogQWNjZXB0IE5VTEwgYXMgYSBzdHJ1Y3R1cmUKCSAgU29tZSBHc3RTdHJ1Y3R1cmUgcHJvcGVydGllcyBkZWZhdWx0IHRvIE5VTEwsIHNvIGl0IHNob3VsZAoJICBiZSBhIHN1cHBvcnRlZCB2YWx1ZS4KCSAgV2l0aCB1bml0IHRlc3QuCgoyMDE3LTA0LTEwIDE0OjI2OjQyICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgY29udHJvbGxlcjogRml4IGJ1aWxkIHdpdGggc3JjZGlyIT1idWlsZGRpcgoKMjAxNy0wNC0xMCAxMzo1MjoxNyArMDMwMCAgUmljbyBUenNjaGljaGhvbHogPHJpY290ekB0LW9ubGluZS5kZT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgIGNvbnRyb2xsZXI6IEFkZCBtaXNzaW5nIHNvdXJjZXMvaGVhZGVycyB0byB0aGUgR0lSIGJ1aWxkCgoyMDE3LTA0LTA5IDEyOjE2OjM5ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9tZXNvbi5idWlsZDoKCSAgbWVzb246IEFuZCBhY3R1YWxseSBtYWtlIHRoZSBjb250cm9sbGVyIG1rZW51bXMgcnVsZXMgd29yawoKMjAxNy0wNC0wOSAxMjowOTozMyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogQWRkIGNoZWNrIGZvciBnbGliLW1rZW51bXMKCjIwMTctMDQtMDkgMTI6MDI6NDMgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2NvbnRyb2xsZXJfbWtlbnVtLnB5OgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL21lc29uLmJ1aWxkOgoJICBjb250cm9sbGVyOiBHZW5lcmF0ZSBHTGliIGVudW1zIGF1dG9tYXRpY2FsbHkKCjIwMTctMDQtMDQgMTc6NTM6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlcmZhY3RvcnkuYzoKCSogZ3N0L2dzdGR5bmFtaWN0eXBlZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgRG9uJ3QgdXNlIGRlcHJlY2F0ZWQgZ19vYmplY3RfbmV3digpCgkgIFVzZSBnX29iamVjdF9uZXcoKSBpbnN0ZWFkIHdoaWNoIG5vd2FkYXlzIGhhcyBhIHNob3J0Y3V0IGZvciB0aGUKCSAgbm8tcHJvcGVydGllcyBjaGVjay4gSXQgc3RpbGwgZG9lcyBhbiBleHRyYSBHVHlwZSBjaGVjayBpbiB0aGUKCSAgZnVuY3Rpb24gZ3VhcmQsIGJ1dCB0aGVyZSdzIGEgcGVuZGluZyBwYXRjaCB0byByZW1vdmUgdGhhdAoJICBhbmQgaXQncyBoYXJkbHkgZ29pbmcgdG8gYmUgYSBwZXJmb3JtYW5jZSBpc3N1ZSBpbiBwcmFjdGljZSwKCSAgZXZlbiBsZXNzIHNvIG9uIGEgc3lzdGVtIHRoYXQncyBjb21waWxlZCB3aXRob3V0IHJ1bi10aW1lIGNoZWNrcy4KCSAgQWx0ZXJuYXRpdmUgd291bGQgYmUgdG8gbW92ZSB0byB0aGUgbmV3IGdfb2JqZWN0X25ld19wcm9wZXJ0aWVzKCkKCSAgd2l0aCBhIGZhbGxiYWNrIGRlZmluZSBmb3Igb2xkZXIgZ2xpYiB2ZXJzaW9ucywgYnV0IGl0IG1ha2VzIHRoZQoJICBjb2RlIGxvb2sgbW9yZSB1bndpZWxkeSBhbmQgZG9lc24ndCBzZWVtIHdvcnRoIGl0LgoJICBGaXhlcyBkZXByZWNhdGlvbiB3YXJuaW5ncyB3aGVuIGJ1aWxkaW5nIGFnYWluc3QgbmV3ZXIgR0xpYiB2ZXJzaW9ucy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MDkwMwoKMjAxNy0wNC0wNyAxMzo0OToyOSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgdGVzdDogQWRkIHRlc3QgZm9yIHNlcmlhbGl6aW5nL2Rlc2VyaWFsaXppbmcgTlVMTCBzdHJpbmdzCgo9PT0gcmVsZWFzZSAxLjExLjkwID09PQoKMjAxNy0wNC0wNyAxNjozMDozNSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiBtZXNvbi5idWlsZDoKCSAgUmVsZWFzZSAxLjExLjkwCgoyMDE3LTA0LTA3IDE1OjA0OjExICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNy0wMy0wOCAxMjowOTo0NSAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBEb24ndCBwcmludCB3YXJuaW5nIG9uIE5VTEwgc3RyaW5ncyBvciBwb2ludGVycwoJICBQdXR0aW5nIE5VTEwgZm9yIHRob3NlIGlzIGEgdmFsaWQgc2VyaWFsaXphdGlvbiBmb3IgdGhlIE5VTEwgdmFsdWUuCgoyMDE3LTA0LTA1IDE2OjMyOjM4ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGdzdDogVXNlIEdzdENsb2NrVGltZURpZmYgaW5zdGVhZCBvZiBHc3RDbG9ja1RpbWUgYXMgdHlwZSBmb3IgR1NUX1NFQ09ORCBhbmQgZnJpZW5kcwoJICBUaGV5IHdlcmUgKHNpZ25lZCEpIGdpbnQ2NCBiZWZvcmUgYmVjYXVzZSBvZiBHX0dJTlQ2NF9DT05TVEFOVCgpIGFscmVhZHkKCSAgYW5kIHRoZXkgYXJlIGFjdHVhbGx5IHVzZWQgaW4gc2lnbmVkIGNhbGN1bGF0aW9ucy4KCSAgV2l0aCB0aGlzIGNoYW5nZSB3ZSBhdCBsZWFzdCBlbnN1cmUgdGhhdCBhbiBpbnRlZ2VyIHR5cGUgb2YgdGhlIGNvcnJlY3QKCSAgc2l6ZSBpcyB1c2VkIGZvciBHSSAoaXQgd2FzIHVzaW5nIGdpbnQgYmVmb3JlKS4KCjIwMTctMDQtMDUgMTU6NDY6MjYgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgZ3N0OiBVcGRhdGUgc29tZSBtb3JlIHR5cGVzIGFuZCB2YWx1ZXMgb2YgY29tYmluZWQtZmxhZ3MgY29uc3RhbnRzCgoyMDE3LTA0LTA1IDE0OjQ1OjAwICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIGdzdDogQ2FzdCBjb21iaW5lZC1mbGFncyBjb25zdGFudHMgdG8gdGhlaXIgcmVzcGVjdGl2ZSB0YXJnZXQgdHlwZXMKCSAgVGhpcyBtYWtlcyBDKysgY29tcGlsZXJzIGEgYml0IG1vcmUgaGFwcHkgd2l0aG91dCBoYXZpbmcgdGhlIHVzZXIgb2YgdGhlCgkgIGNvbnN0YW50cyBjYXN0LiBJdCBhbHNvIHByb3ZpZGVzIHRoZSBjb3JyZWN0IHR5cGUgaW5mb3JtYXRpb24gdG8gR0kuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODA5MjMKCjIwMTctMDQtMDUgMTQ6NDI6MTYgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgZ3N0OiBTZXQgdmFsdWVzIGFuZCB0eXBlcyBmb3IgY29tYmluZWQtZmxhZ3MgY29uc3RhbnRzIGluIEdJIGFubm90YXRpb25zCgoyMDE3LTA0LTA1IDE0OjI2OjMzICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIHZhbHVlOiBQcm9wZXJseSBzZXQgdmFsdWUgYW5kIHR5cGUgZm9yIEdTVF9GTEFHX1NFVF9NQVNLX0VYQUNUIGluIEdJIGFubm90YXRpb25zCgkgIFN0b3JpbmcgYSAtMSBpbnNpZGUgYW4gdW5zaWduZWQgaW50ZWdlciBjb25mdXNlcyBHSVIgYmFzZWQgYmluZGluZ3MKCSAgZ2VuZXJhdG9ycy4KCjIwMTctMDQtMDQgMTY6Mjg6NDUgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGRhdGEvYmFzaC1jb21wbGV0aW9uL2hlbHBlcnMvZ3N0LmluOgoJICBjb21wbGV0aW9uOiBUcnkgdG8gYXZvaWQgcGFyc2luZyBzdW1tYXJ5CgkgIEluIEdFUywgdGhlIHN1bW1hcnkgcmVmZXJzIHRvIG9wdGlvbnMgdGhhdCBhcmUgb25seSBhdmFpbGFibGUgd2hlbiBidWlsdAoJICBhZ2FpbnN0IGdzdC12YWxkaWF0ZS4gVGhvc2Ugd2hlcmUgcGlja2VkIGJ5IG91ciByZWdleC4gVGhpcyBwYXRjaCBhZGQgYQoJICBpbml0aWFsIGdyZXAgdG8gdHJ5IGFuZCBmaWx0ZXItb3V0IGFzIGJlc3QgYXMgcG9zc2libGUgdGhlIGNvbnRlbnQgdG8KCSAgd2hpY2ggd2Ugd2lsbCBleHRyYWN0IHRoZSBjb21tYW5kIGxpc3QuCgoyMDE3LTA0LTA0IDE0OjI1OjUyIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBkYXRhL2Jhc2gtY29tcGxldGlvbi9oZWxwZXJzL21lc29uLmJ1aWxkOgoJKiBkYXRhL21lc29uLmJ1aWxkOgoJKiBsaWJzL2dzdC9oZWxwZXJzL21lc29uLmJ1aWxkOgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IEFkZCBiYXNoIGNvbXBsZXRpb24gc3VwcG9ydAoKMjAxNy0wNC0wNCAxMzo0Mjo1MCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBkYXRhL01ha2VmaWxlLmFtOgoJKiBkYXRhL2Jhc2gtY29tcGxldGlvbi9jb21wbGV0aW9ucy9nc3QtaW5zcGVjdC0xLjA6CgkqIGRhdGEvYmFzaC1jb21wbGV0aW9uL2NvbXBsZXRpb25zL2dzdC1sYXVuY2gtMS4wOgoJKiBkYXRhL2Jhc2gtY29tcGxldGlvbi9oZWxwZXJzLy5naXRpZ25vcmU6CgkqIGRhdGEvYmFzaC1jb21wbGV0aW9uL2hlbHBlcnMvZ3N0LmluOgoJKiBsaWJzL2dzdC9oZWxwZXJzLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkgIGNvbXBsZXRpb246IFBsYWNlIHRoZSBjb21wbGV0aW9uIGhlbHBlciBpbiBsaWJleGVjCgkgIFRoaXMgcGF0Y2ggcmVvcmdhbml6ZSB0aGUgYmFzaCBjb21wbGV0aW9uIHNjcmlwdHMgaW4gb3JkZXIgdG8gaW5zdGFsbAoJICB0aGUgYmluYXJ5IGhlbHBlciAoZ3N0LWNvbXBsZXRpb24taGVscGVyKSBpbiBsaWJleGVjIHBhdGggcmF0aGVyIHRoZW4KCSAgc2hhcmUgZm9sZGVyLiBNb3N0IExpbnV4IGhpZXJhcmNoeSBjb21wbGlhbmNlIHJlcXVpcmVzIHRoYXQgbm8gYmluYXJ5CgkgIGV4ZWN1dGFibGUgYXJlIHBsYWNlZCBpbiBzaGFyZS4gV2UgYWxzbyBjbGVhbnVwIHRoZSB1bnVzZWQgLnBjIGVudHJpZXMKCSAgYW5kIHJlbW92ZSBjb3B5IHBhc3RlZCBwYXJ0cyBvZiB0aGUgc2NyaXB0LiBOb3RlIHRoYXQgb3RoZXIgcHJvamVjdAoJICBpbmNsdWRpbmcgdGhlIGNvbW1vbiBoZWxwZXIsIHNob3VsZCBub3cgdXNlICRfR1NUX0hFTFBFUiB0byByZWFkCgkgIHRoZSBiaW5hcnkgZXhlY3V0YWJsZSBnc3QtY29tcGxldGlvbi1oZWxwZXIuIFRoaXMgaGVscGVyIGlzIG5vdCBsb25nZXIKCSAgdmVyc2lvbiwgYXMgaXQgaXMgcGxhY2VkIGluIGEgdmVyc2lvbm5lZCBzdWJmb2xkZXIKCSAgKGxpYmV4ZWMvZ3N0cmVhbWVyLjEwKSBqdXN0IGxpa2UgdGhlIG90aGVyIGhlbHBlcnMgKHNjYW5uZXIgYW5kIHB0cCkuCgoyMDE3LTAzLTMxIDExOjIyOjQ5ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogZml4IEdzdFZhbHVlIGxlYWsgaW4gc3RydWN0dXJlX2ZpZWxkX3VuaW9uX2ludG8KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MDc1MQoKMjAxNy0wMy0zMSAxMDozODoxNSArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RyZWFtY29sbGVjdGlvbi5jOgoJICBzdHJlYW1jb2xsZWN0aW9uOiBmaXggcmFjeSB1c2VyLWFmdGVyLWZyZWUKCSAgVGhlIGlzc3VlIGhhcHBlbnMgd2hlbiB0aGUgc3RydWN0dXJlIGlzIHByaW50ZWQgYnkgdGhlIGxvZ2dpbmcKCSAgc3Vic3lzdGVtOiB0aGUgb2JqZWN0IGlzIGluY2x1ZGVkIGluIHRoZSBsb2csIGFuZCB0aGlzIHdpbGwgY2F1c2UgdGhlCgkgIGZ1bGwgb2JqZWN0IHByaW50b3V0IHRvIGJlIGRvbmUgdGhlcmUuIEhvd2V2ZXIsIGFmdGVyIGRpc3Bvc2UsIHRoZSBxdWV1ZQoJICB3YXMgYWxyZWFkeSBjbGVhcmVkLCBzbyB0aGUgYWNjZXNzIHRvIGl0ICh0byBwcmludCB0aGUgb2JqZWN0KSB3b3VsZAoJICBhc3NlcnQsIGFzIHRoZSBxdWV1ZSB3YXMgYWxyZWFkeSBmcmVlZC4gVGhlIHBhdGNoIGNoYW5nZXMgaXQgc28gdGhhdCB0aGUKCSAgcXVldWUgaXMgbWVyZWx5IGVtcHR5LCBhbmQgb25seSBmcmVlZCBpbiBfZmluYWxpemUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzYyOTMKCjIwMTctMDMtMjcgMTg6MzA6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBhZGQgcGFkIEVPUyBmbGFnIGluIHBpcGVsaW5lIGRvdCBmaWxlIGR1bXBzCgkgIEJ1dCBvbmx5IGlmIHNldC4gSGVscHMgZGVidWcgaXNzdWVzIHdpdGggRU9TIHByb3BhZ2F0aW9uLgoKMjAxNy0wMy0yNyAxODoyNzo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IGdzdC1sYXVuY2g6IHByaW50IHN0cnVjdHVyZSBwcm9wZXJ0eSBub3RpZmllcyBuaWNlcgoJICBPbmUgbGVzcyBsYXllciBvZiBlc2NhcGluZywgYnV0IHN0aWxsIGxvdHMgb2YgdWdseSBcLgoKMjAxNy0wMy0yNCAxNDozMzoxOSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEZpeCB3aW4zMiBsaWJnc3RyZWFtZXIuZGVmIG9yZGVyaW5nCgkgIFRoaXMgc2hvdWxkIGZpeCBtYWtlIGRpc3RjaGVjawoKMjAxNy0wMy0xNSAxNzozMTozOSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSAgcGFyYW1zcGVjOiBGaXggYXJyYXkgdmFsaWRhdGlvbiBsb2dpYwoJICBBIHBhcmFtc3BlYyB2YWxpZGF0aW9uIHNob3VsZCBtb2RpZnkgdGhlIGNvbnRlbnQgdG8gbWF0Y2ggd2hhdCB0aGUgc3BlYwoJICByZXF1aXJlcyBhbmQgcmV0dXJuIFRVUkUgaWYgYSBtb2RpZmljYXRpb24gaGFwcGVuZWQuIFRoaXMgcHJldmlvdXMKCSAgaW1wbGVtZW50YXRpb24gd291bGQgb25seSBmaXggdGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlIGFycmF5IGFuZCByZXR1cm4uCgkgIEl0IHdhcyBhbHNvIHJldHVybiBUUlVFIGZvciBlbXB0eSBhcnJheSwgd2hpbGUgbm8gbW9kaWZpY2F0aW9uIHdhcwoJICBuZWVkZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODAxMTEKCjIwMTctMDMtMjIgMTM6MzU6MzIgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkgIGFycmF5L2ZyYWN0aW9uOiBJbiBwYXJhbSB0eXBlcywgdXNlIGdldF90eXBlKCkgZnVuY3Rpb24gZGlyZWN0bHkKCSAgVGhlIEdTVF9UWVBFIG1hY3JvIHBvaW50cyB0byBnbG9iYWwgdmFyaWFibGVzIGluaXRpYWxpemVkIGJ5IHRoZQoJICBmaXJzdCBjYWxsIHRvIGdldF90eXBlLiBUaGlzIGlzIG5vdCBhbiBpc3N1ZSBpZiB5b3UgY2FsbCBnc3RfaW5pdCgpCgkgIGJ1dCB1bmZvcnR1bmF0bHkgcHlnaSB3aWxsIG5lZWQgdG8gYWNjZXMgdGhlIHBhcmFtIHR5cGUgYmVmb3JlCgkgIGluaXQgY2FuIGJlIGNhbGxlZC4gVGhpcyByZW1vdmVzIGFuIGFzc2VydGlvbi4KCjIwMTctMDMtMjIgMTM6MzM6NDcgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkgIGZyYWN0aW9uL2FycmF5OiBNYWtlIGdldF90eXBlKCkgdGhyZWFkIHNhZmUKCSAgVGhvc2UgYXJlbid0IHN1cHBvc2UgdG8gYmUgY2FsbGVkIGZyb20gbXVsdGlwbGUgdGhyZWFkLCBidXQgYWxsCgkgIGZ1bmRhbWVudGFsIGdldF90eXBlKCkgZnVuY3Rpb24gYXJlIHRocmVhZCBzYWZlLiBGaXggaXQgdG8KCSAgYmUgY29uc2lzdGVudCBhbmQgaXQgbWF5IGhlbHAgaWYgd2UgY2hhbmdlIHRoZSB0eXBpbmcgbWVjaGFuaXNtCgkgIGluIEdTdHJlYW1lciBjb21lIGRheS4KCjIwMTctMDMtMjAgMTY6NDY6MzMgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHV0aWxzOiBBZGQgaGVscGVycyB0byBnZXQvc2V0IGFycmF5IHByb3BlcnRpZXMKCSAgVGhpcyBpcyB0byBoZWxwIGJpbmRpbmdzIGFjY2VzcyBwcm9wZXJ0aWVzIG9mIHR5cGUgR1NUX1RZUEVfQVJSQVkuCgkgIFRoaXMgZnVuY3Rpb24gd2lsbCBnZXQvc2V0IHRoZSBwcm9wZXJ0eSBhbmQgY29udmVydCBmb3JtL3RvCgkgIEdWYWx1ZUFycmF5LgoJICBOZXcgQVBJOgoJICBnc3RfdXRpbF9zZXRfb2JqZWN0X2FycmF5CgkgIGdzdF91dGlsX2dldF9vYmplY3RfYXJyYXkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Mzc1NAoKMjAxNy0wMy0yMCAxNTo1MDo0OSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzdHJ1Y3R1cmU6IEFkZCBnZXQvc2V0X2FycmF5L2xpc3QgdXNpbmcgR1ZhbHVlQXJyYXkKCSAgVGhpcyBhZGRzIGEgYmluZGluZyBmcmllbmRseSBpbnRlcmZhY2UgdG8gZ2V0IGFuZCBzZXQgYXJyYXlzCgkgIGFuZCBsaXN0IGludG8gR3N0U3RydWN0dXJlLgoJICBOZXcgQVBJOgoJICAtIGdzdF9zdHJ1Y3R1cmVfc2V0X2FycmF5CgkgIC0gZ3N0X3N0cnVjdHVyZV9zZXRfbGlzdAoJICAtIGdzdF9zdHJ1Y3R1cmVfZ2V0X2FycmF5CgkgIC0gZ3N0X3N0cnVjdHVyZV9nZXRfbGlzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzNzU0CgoyMDE3LTAzLTIwIDE1OjQwOjI1IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBBZGQgdHJhbnNmb3JtYXRpb24gdG8vZnJvbSBHVmFsdWVBcnJheQoJICBUaGlzIGFsbG93IHRyYW5zZm9ybWluZyBhIEdWYWx1ZSBvZiB0eXBlIEdfVFlQRV9WQUxVRV9BUlJBWSB0bwoJICBhbmQgZnJvbSBHU1RfVFlQRV9BUlJBWS9MSVNULgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzNzU0CgoyMDE3LTAzLTI0IDE0OjIxOjMwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5Lmg6CgkgIHF1ZXVlYXJyYXk6IEFkZCBHX0JFR0lOX0RFQ0xTIGFuZCBHX0VORF9ERUNMUyB0byBtYWtlIGl0IHVzYWJsZSBmcm9tIEMrKyBjb2RlCgoyMDE3LTAzLTI0IDE3OjUzOjMxICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkgIHBhcmFtc3BlY3M6IFVzZSBnc3RfdmFsdWVfYXJyYXlfZ2V0X3R5cGUoKSBmb3IgR3N0UGFyYW1TcGVjQXJyYXkgdHlwZQoJICBXaGVuIHJlZ2lzdGVyaW5nIEdzdFBhcmFtU3BlY0FycmF5LCB1c2UgdGhlIGdzdF92YWx1ZV9hcnJheV9nZXRfdHlwZSgpCgkgIGZ1bmN0aW9uIHRvIGdldCB0aGUgdHlwZSwgcmF0aGVyIHRoYW4gdGhlIEdTVF9UWVBFX0FSUkFZIG1hY3JvLCB3aGljaAoJICBnZXRzIGl0IGZyb20gdGhlIF9nc3RfdmFsdWVfYXJyYXlfdHlwZSwgd2hpY2ggaXMgaW4gdHVybiBvbmx5CgkgIGluaXRpYWxpc2VkIGR1cmluZyBnc3RfaW5pdCgpCgkgIEZpeGVzIGNyaXRpY2FscyB3aXRoIChweXRob24pIGJpbmRpbmdzIHRoYXQgbG9vayB1cCBhbGwgdGhlCgkgIHR5cGVzIGZyb20gdGhlIGdvYmplY3QtaW50cm9zcGVjdGlvbiBpbmZvIGFzIHNvb24gYXMgdGhleQoJICBhcmUgaW1wb3J0ZWQuCgkgIC91c3IvbGliNjQvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvZ2kvbW9kdWxlLnB5OjE3ODogV2FybmluZzogZ19wYXJhbV90eXBlX3JlZ2lzdGVyX3N0YXRpYzogYXNzZXJ0aW9uICdnX3R5cGVfbmFtZSAocHNwZWNfaW5mby0+dmFsdWVfdHlwZSkgIT0gTlVMTCcgZmFpbGVkCgkgIGdfdHlwZSA9IGluZm8uZ2V0X2dfdHlwZSgpCgkgIC91c3IvbGliNjQvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvZ2kvbW9kdWxlLnB5OjIxMjogV2FybmluZzogZ190eXBlX2dldF9xZGF0YTogYXNzZXJ0aW9uICdub2RlICE9IE5VTEwnIGZhaWxlZAoJICB0eXBlXyA9IGdfdHlwZS5weXR5cGUKCSAgL3Vzci9saWI2NC9weXRob24zLjUvc2l0ZS1wYWNrYWdlcy9naS9tb2R1bGUucHk6MjI2OiBXYXJuaW5nOiBnX3R5cGVfZ2V0X3FkYXRhOiBhc3NlcnRpb24gJ25vZGUgIT0gTlVMTCcgZmFpbGVkCgkgIGdfdHlwZS5weXR5cGUgPSB3cmFwcGVyCgkgIC91c3IvbGliNjQvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvZ2kvbW9kdWxlLnB5OjIyNjogV2FybmluZzogZ190eXBlX3NldF9xZGF0YTogYXNzZXJ0aW9uICdub2RlICE9IE5VTEwnIGZhaWxlZAoJICBnX3R5cGUucHl0eXBlID0gd3JhcHBlcgoKMjAxNy0wMy0xNyAyMjozMjoxOSArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IERvbid0IGZvcmdldCBlcnJvciByZXR1cm5zIHdoZW4gcHJvY2Vzc2luZyBtb3JlCgkgIElmIHBhcnNpbmcgcmV0dXJucyBhIG5vbi1PSyBmbG93IHJldHVybiBpbiB0aGUgbWlkZGxlCgkgIG9mIHByb2Nlc3NpbmcgYW4gaW5wdXQgYnVmZmVyLCBkb24ndCBvdmVyd3JpdGUgdGhhdAoJICBpZiBhIGxhdGVyIHJldHVybiBpcyBPSyBhZ2FpbiAtIHRoZSBzdWJjbGFzcyBtaWdodAoJICByZXR1cm4gbm90LWxpbmtlZCBpbiB0aGUgbWlkZGxlLCBhbmQgdGhlbiBkaXNjYXJkCgkgIHN1YnNlcXVlbnQgZGF0YSB3aXRob3V0IHB1c2hpbmcgd2hpbGUgcmV0dXJuaW5nIE9LLgoJICBBIGxhdGVyIHN1Y2Nlc3MgZG9lc24ndCBpbnZhbGlkYXRlIHRoZSBlYXJsaWVyIGZhaWx1cmUsCgkgIGJ1dCB3ZSBzaG91bGQgY29udGludWUgcHJvY2Vzc2luZyBhZnRlciBub3QtbGlua2VkLCBzbwoJICBhcyB0byBrZWVwIHBhcnNlIHN0YXRlIGNvbnNpc3RlbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Nzk4MzEKCjIwMTctMDMtMjAgMTY6NTQ6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLTEuMC4xOgoJICB0b29sczogcmVwbGFjZSBtZW50aW9ucyBvZiAnbWFkJyBvbiB0aGUgZ3N0LWxhdW5jaC0xLjAgbWFuIHBhZ2UKCSAgVGhlICdtYWQnIHBsdWdpbiBoYXMgYmVlbiByZW1vdmVkLiBNZW50aW9uIG1wZzEyM2F1ZGlvZGVjIGluc3RlYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzYxNDAKCjIwMTctMDMtMTMgMTE6MDg6MDEgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogZml4IHVuaW9uIG9mIGludCByYW5nZSBhbmQgaW50IHdoZW4gZXh0ZW5kaW5nIG9uIGEgc2lkZQoJICBUaGUgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gdXNlcyBib3VuZHMgc2NhbGVkIGJ5IHRoZSBzdGVwCgkgIEFkZCB0ZXN0cyB0byBjYXRjaCB0aG9zZSBjYXNlcwoKMjAxNy0wMy0xNCAyMjoxODozNiAtMDcwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NhbnRvc0BnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBhdm9pZCByZXR1cm4gZmx1c2hpbmcgaWYgd2UgaGF2ZSBhIG5vdC1saW5rZWQKCSAgUmV0dXJuIHRoZSBjb3JyZWN0IGZsb3cgcmV0dXJuIGluc3RlYWQgb2YgcmV0dXJuaW5nIGFsd2F5cyBmbHVzaGluZy4KCSAgVGhpcyB3b3VsZCBjYXVzZSBxdWV1ZSB0byBjb252ZXJ0IG5vdC1saW5rZWQgdG8gZmx1c2hpbmcgYW5kIG1ha2luZwoJICB1cHN0cmVhbSBlbGVtZW50cyBzdG9wLgoJICBCYXNlZCBvbiB0aGUgcHJldmlvdXMgcGF0Y2ggZm9yIHF1ZXVlMi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3Njk5OQoKMjAxNy0wMS0yMiAxMToyNjo1NiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NhbnRvc0BnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGF2b2lkIHJldHVybiBmbHVzaGluZyBpZiB3ZSBoYXZlIGEgbm90LWxpbmtlZAoJICBSZXR1cm4gdGhlIGNvcnJlY3QgZmxvdyByZXR1cm4gaW5zdGVhZCBvZiByZXR1cm5pbmcgYWx3YXlzIGZsdXNoaW5nLgoJICBUaGlzIHdvdWxkIGNhdXNlIHF1ZXVlMiB0byBjb252ZXJ0IG5vdC1saW5rZWQgdG8gZmx1c2hpbmcgYW5kIG1ha2luZwoJICB1cHN0cmVhbSBlbGVtZW50cyBzdG9wLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc2OTk5CgoyMDE2LTA5LTE4IDEyOjAyOjU0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc2FudG9zQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgdGVzdHM6IGJpbjogYWRkIG1vcmUgdGVzdHMgZm9yIHN1cHByZXNzZWQgZmxhZ3MKCSAgQWRkIHRlc3RzIHRvIGNvbmZpcm0gZmxhZ3MgYXJlIHBlcnNpc3RlZCBldmVuIGFmdGVyIHJlbW92aW5nCgkgIGVsZW1lbnRzIHRoYXQgaGF2ZSB0aG9zZSBzdXBwcmVzc2VkIGZsYWdzCgoyMDE3LTAzLTEwIDEwOjEzOjA1ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJICBidWZmZXI6IGhhbmRsZSBnc3RfYnVmZmVyX21hcCBmYWlsdXJlcwoKMjAxNy0wMy0xMCAxMDoxMjo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkgIGRvd25sb2FkYnVmZmVyOiB1bmxvY2sgbXV0ZXggaW4gZXJyb3IgY2FzZQoKMjAxNy0wMy0wOSAxMjowOTo1NyArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBnc3R2YWx1ZTogRG8gbW9yZSBjaGVja3Mgd2hlbiBndWVzc2luZyBhdCBmbGFnc2V0IHN0cmluZ3MKCSAgSWYgZ3Vlc3NpbmcgdGhhdCBhIHN0cmluZyBtYXRjaGVzIGEgZmxhZ3NldCwgYmUgbW9yZSB0aG9yb3VnaAoJICBhdCBjaGVja2luZyB0aGF0IHRoZSBzdHJpbmcgZm9sbG93aW5nIGEgc3RyaW5nIG9mIGhleDpoZXg6CgkgIGFjdHVhbGx5IGxvb2tzIGxpa2UgYSBmbGFnIHNldCBzdHJpbmcuIEFkZCBzb21lIHVuaXQgdGVzdHMKCSAgdG8gY2F0Y2ggbW9yZSBjYXNlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3OTc1NQoKMjAxNy0wMy0wOSAxMjowOTo1NyArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IE1ha2UgbWluLWludGVybGVhdmUtdGltZSBhIGNvbmZpZ3VyYWJsZSBwcm9wZXJ0eQoJICBSZW1vdmUgYSBGSVhNRSBhYm91dCBtYWtpbmcgdGhlIG1pbmltdW0gaW50ZXJsZWF2ZQoJICBidWZmZXJpbmcgYSBjb25maWd1cmFibGUgcHJvcGVydHkKCjIwMTctMDMtMDggMTQ6NTE6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IHByb21vdGUgZmFjdG9yeSBub3QgZm91bmQgbG9nIG1lc3NhZ2UgdG8gV0FSTklORwoJICBJbiBtb3N0IGNhc2VzIHBlb3BsZSByZWFsbHkgd2FudCB0byBrbm93IHdoZW4gYW4gZWxlbWVudAoJICBjb3VsZCBub3QgYmUgY3JlYXRlZC4KCjIwMTctMDMtMDcgMDg6MjE6NDggKzA5MDAgIFNldW5naGEgWWFuZyA8c2gueWFuZ0BsZ2UuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IEFsd2F5cyBwcm94eSBwb3NpdGlvbi9kdXJhdGlvbiBxdWVyeQoJICBhY3RpdmUtcGFkIHN3aXRjaCBjYXVzZXMgcmVjb25maWd1cmUgZXZlbnQgd2l0aCBsb2NrIHRha2VuLAoJICBhbmQgdXBzdHJlYW0gZWxlbWVudCBtaWdodCBxdWVyeSB0aGUgY3VycmVudCBwb3NpdGlvbiBvciBkdXJhdGlvbgoJICBiZWZvcmUgcmV0dXJuaW5nIHRoZSByZWNvbmZpZ3VyZSBldmVudC4KCSAgTWVhbndoaWxlLCBnc3RfaW5wdXRfc2VsZWN0b3JfZ2V0X2xpbmtlZF9wYWQoKSBpcyB1c2VkIHRvIGdldCBzcmNwYWQKCSAgaW5zaWRlIG9mIGRlZmF1bHQgcXVlcnkgaGFuZGxlLCBhbmQgaXQgdGFrZXMgYWxzbyBsb2NrLgoJICBTaW5jZSBpbnB1dHNlbGVjdG9yIGlzIHN0aWxsIGxvY2tlZCBieSBhY3RpdmUtcGFkIHN3aXRjaCwgYW5kIHNvIHRoZSBxdWVyeQoJICBjYW5ub3QgYmUgaGFuZGxlZCBmdXJ0aGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1NDQ1CgoyMDE3LTAzLTAzIDEyOjUzOjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogZG9jdW1lbnQgdGhhdCBsb2dnaW5nIG1hY3JvcyBkb24ndCBuZWVkIG5ld2xpbmVzIGF0IHRoZSBlbmQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3OTQ1OQoKMjAxNy0wMi0yNCAyMTozNToyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhZGQgc2luY2UgbWFya2VyIHRvIGRvY3MgZm9yIG5ldyBBUEkKCjIwMTctMDItMjQgMjE6MzM6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSAuZGVmIGZpbGUgZm9yIG5ldyBBUEkKCjIwMTctMDItMjQgMTA6MjM6MDEgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBPbmx5IHNjYW4gcGx1Z2luIGZpbGVzIHRoYXQgZW5kIHdpdGggYW4gZXh0ZW5zaW9uCgkgIE5vdCBmaWxlIHRoYXQgd291bGQgZm9yIHNvbWUgcmVhc29uIGVuZCB3aXRoICdzbycgb3IgJ2RsbCcsIGV0Yy4uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc5MTc1CgoyMDE3LTAyLTE3IDE1OjQ4OjE3IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IEFkZCBBUEkgdG8gZ2V0IHRoZSBjdXJyZW50IHN0YXRlIG9mIGEgdGFzawoJICBBdm9pZGluZyB0aGUgdXNlciB0byBuZWVkIHRvIGRlYWwgd2l0aCB0aGUgbG9ja2luZyBoaW1zZWxmIGV0Yy4KCSAgQVBJOgoJICBnc3RfcGFkX3Rhc2tfZ2V0X3N0YXRlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Nzg4MzAKCjIwMTctMDItMTMgMTU6MTg6NTkgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L21lc29uLmJ1aWxkOgoJKiBtZXNvbi5idWlsZDoKCSogbWVzb25fb3B0aW9ucy50eHQ6CgkgIG1lc29uOiBBZGQgYW4gb3B0aW9uIHRvIGRpc2FibGUgdXNhZ2Ugb2YgbGlidW53aW5kCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzgxOTMKCjIwMTctMDItMjQgMTU6NTk6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IFVwZGF0ZSB2ZXJzaW9uCgoyMDE3LTAyLTI0IDE1OjM3OjMwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjExLjIgPT09CgoyMDE3LTAyLTI0IDE1OjA2OjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkgIFJlbGVhc2UgMS4xMS4yCgoyMDE3LTAyLTI0IDEyOjQ0OjE3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNy0wMi0yMyAyMDo1MjozOSArMDIwMCAgVml2aWEgTmlrb2xhaWRvdSA8dml2aWFAdG9vbHNvbmFpci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBBZGQgZGVzZXJpYWxpemF0aW9uIGZvciBhcnJheXMvbGlzdHMgb3V0c2lkZSBHc3RTdHJ1Y3R1cmVzCgkgIFRoaXMgaXMgbW9zdGx5IHVzZWZ1bCBmb3IgcHJvcGVydGllcyBvZiB0aG9zZSB0eXBlcyB3aGVuIHVzZWQgaW4KCSAgZ3N0LWxhdW5jaCBvciBzaW1pbGFyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc3Mzc1CgoyMDE3LTAyLTIzIDIwOjUwOjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBBZGQgYSB0eXBlIGFiYnJldmlhdGlvbiBmb3IgR3N0RmxhZ1NldCBpbiBzZXJpYWxpemF0aW9uCgoyMDE3LTAyLTIzIDIwOjQ3OjMwICswMjAwICBWaXZpYSBOaWtvbGFpZG91IDx2aXZpYUB0b29sc29uYWlyLmNvbT4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogQWx3YXlzIGFkZCB0aGUgdHlwZSBuYW1lIHRvIGVsZW1lbnRzIHdoZW4gc2VyaWFsaXppbmcgYXJyYXlzL2xpc3RzCgkgIEJ1dCBvbmx5IHdoZW4gc2VyaWFsaXppbmcgb3V0c2lkZSBvZiBHc3RTdHJ1Y3R1cmVzLCBiZWNhdXNlIGluIGNhc2Ugb2YKCSAgR3N0U3RydWN0dXJlIHRoZSB0eXBlIGlzIGFscmVhZHkgcHJlcHJlbmRlZCB0byB0aGUgYXJyYXkvbGlzdCBhbmQgdGhlCgkgIEdzdFN0cnVjdHVyZSBBUEkgbWFrZXMgc3VyZSB0aGF0IHRoZXkgaGF2ZSB0aGUgc2FtZSAiZ2VuZXJpYyIgdHlwZSBzbwoJICBkZXNlcmlhbGl6YXRpb24gd29ya3MgcHJvcGVybHkuCgkgIFRoaXMga2VlcHMgc2VyaWFsaXphdGlvbiBvZiBHc3RTdHJ1Y3R1cmVzIHRoZSBzYW1lIGFzIGJlZm9yZSwgYW5kIHRoZQoJICBHc3RDYXBzIHVuaXQgdGVzdHMgYWxyZWFkeSB0ZXN0IGZvciB0aGF0LiBIb3dldmVyIHdoZW4gc2VyaWFsaXppbmcKCSAgc3RhbmRhbG9uZSBhcnJheXMvbGlzdHMgZ2V0IHRoZSB0eXBlcyBhZGRlZCBub3cuCgoyMDE3LTAyLTIzIDIwOjIyOjAzICswMjAwICBWaXZpYSBOaWtvbGFpZG91IDx2aXZpYUB0b29sc29uYWlyLmNvbT4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogTW92ZSBsaXN0L2FycmF5IHNlcmlhbGl6YXRpb24vZGVzZXJpYWxpemF0aW9uIGZ1bmN0aW9ucyBmcm9tIEdzdFN0cnVjdHVyZSB0byBHc3RWYWx1ZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc3Mzc1CgoyMDE3LTAyLTIzIDIwOjE2OjE3ICswMjAwICBWaXZpYSBOaWtvbGFpZG91IDx2aXZpYUB0b29sc29uYWlyLmNvbT4KCgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwYXJhbXNwZWNzOiBBZGQgR3N0UGFyYW1TcGVjQXJyYXkgZm9yIEdTVF9UWVBFX0FSUkFZIHR5cGVkIHByb3BlcnRpZXMKCSAgVGhlc2UgYXJlIG1vc3RseSB1c2VmdWwgdG8gZ2V0IG91ciBhdXRvbWF0aWMKCSAgc2VyaWFsaXphdGlvbi9kZXNlcmlhbGl6YXRpb24gZnJvbSBzdHJpbmdzIGFuZCBzaW1wbGUgdXNhZ2UgZnJvbQoJICBnc3QtbGF1bmNoIG9yIHNpbWlsYXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzczNzUKCjIwMTctMDItMjEgMjA6MjM6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkgIGJ5dGVyZWFkZXI6IGZpeCBwZWVrIHZhbHVlIHdoZW4gc2Nhbm5pbmcgZm9yIDAwIDAwIDAxIHdpdGggbm9uLTAgb2Zmc2V0CgkgIFdlIHdvdWxkIGFkZCB0aGUgb2Zmc2V0IGEgc2Vjb25kIHRpbWUgaW4gX3NjYW5fZm9yX3N0YXJ0X2NvZGUoKQoJICB3aGVuIHdlIGZvdW5kIGEgcmVzdWx0LCBidXQgaXQncyBhbHJlYWR5IGJlZW4gYWRkZWQgdG8gdGhlIGRhdGEKCSAgcG9pbnRlciBhdCB0aGUgYmVnaW5uaW5nIG9mIF9tYXNrZWRfc2Nhbl91aW50MzJfcGVlaygpLCBzbyB0aGUKCSAgcGVla2VkIHZhbHVlIHdvdWxkIGJlIHdyb25nIGlmIHRoZSBpbml0aWFsIG9mZnNldCB3YXMgPjAsIGFuZAoJICB3ZSB3b3VsZCBwb3RlbnRpYWxseSByZWFkIG1lbW9yeSBvdXQtb2YtYm91bmRzLgoJICBBZGQgdW5pdCB0ZXN0IGZvciBhbGwgb2YgdGhpcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3ODM2NQoKMjAxNy0wMi0yMCAxMjoxNjozMiArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiBwdXQgKCkgYXJvdW5kIG1hY3JvIGFyZ3VtZW50cwoJICBQdXQgYnJhY2VzIGFyb3VuZCBtYWNybyBhcmd1bWVudHMgb3IgZWxzZSB3ZSBtaWdodCBydW4gaW50byBwcm9ibGVtcwoJICB3aXRoIG9wZXJhdGVyIHByZWNlZGVuY2UuCgoyMDE3LTAyLTIwIDEwOjQ1OjU3ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlcmZhY3RvcnkuYzoKCSAgZGV2aWNlcHJvdmlkZXJmYWN0b3J5OiBpZ25vcmUgZW1wdHkgY2xhc3NlcwoKMjAxNy0wMi0yMCAxMDoyNTo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXJmYWN0b3J5LmM6CgkgIGRldmljZXByb3ZpZGVyZmFjdG9yeTogY29tcGFyZSBjbGFzcyBhZ2FpbnN0IE5VTEwKCSAgZ3N0ZGV2aWNlcHJvdmlkZXJmYWN0b3J5LmM6NTAxOjIwOiBlcnJvcjogY29tcGFyaXNvbiBiZXR3ZWVuIHBvaW50ZXIgYW5kIHplcm8gY2hhcmFjdGVyIGNvbnN0YW50IFstV2Vycm9yPXBvaW50ZXItY29tcGFyZV0KCSAgaWYgKGNsYXNzZXNbMF0gPT0gJ1wwJykKCjIwMTctMDItMTggMTY6NDk6NDAgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9tZXNvbi5idWlsZDoKCSAgbWVzb246IEZpeCBidWlsZCB3aXRoIGxhdGVzdCB1cHN0cmVhbSBnaXQKCSAgVHJpdmlhbCBpbmNvcnJlY3QgaW5jbHVkZV9kaXJlY3RvcmllcygpIGNhbGwKCjIwMTctMDItMTggMTA6MDM6MjQgKzAxMDAgIFBldGVyIEtvcnNnYWFyZCA8cGV0ZXJAa29yc2dhYXJkLmNvbT4KCgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgZ3N0Y29uZmlnOiBGaXggdW5hbGlnbmVkIGFjY2VzcyBzdXBwb3J0IGZvciB0aGUgb3BlbnJpc2MgYXJjaGl0ZWN0dXJlCgkgIFRlYWNoIGdzdGNvbmZpZy5oLmluIGFib3V0IHRoZSBvcGVucmlzYyAob3IxaykgYXJjaGl0ZWN0dXJlLiAgRml4ZXMKCSAgYnVpbGRyb290IGF1dG9idWlsZCBmYWlsdXJlOgoJICBodHRwOi8vYXV0b2J1aWxkLmJ1aWxkcm9vdC5uZXQvcmVzdWx0cy83MTcvNzE3ZDc4Y2UwOTM1NzQ5ZjQ3N2JkZjMxMzNiNmYyMDA1N2EyOGMwMS9idWlsZC1lbmQubG9nCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Nzg4NjYKCjIwMTctMDItMTUgMjE6Mzc6MzEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGdzdGJhc2VzaW5rOiB4cmVmIHN5bWJvbCBpbiBkb2NzCgoyMDE3LTAyLTE1IDIwOjU4OjQ5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IHJldmVydCB0aGUgY29udGVudCBjaGFuZ2VzIGZyb20gcHJldmlvdXMgY29tbWl0CgkgIFRoZSBkZWZhdWx0IGJlaGF2aW91ciB3aGVuIHJldHVybmluZyBHU1RfUEFEX1BST0JFX09LIGlzIHVucmVsYXRlZCB0bwoJICB0aGUgb3RoZXIgcmV0dXJuIGNvZGUuCgoyMDE3LTAyLTE1IDIwOjM3OjQwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGZpeCBkb2NzIGZvciBHc3RQYWRQcm9iZVJldHVybgoJICBUaGVyZSBpcyBubyAnYmxvY2snIHZhbHVlLCBidXQgd2UgaGF2ZSAnZHJvcCcuIEFsc28gZml4IHRoZSBtYXJrdXA7IGl0CgkgIGlzICclJyB0byBsaW5rIHRvIGNvbnN0YW50cyAoYW5kIGVudW0gdmFsdWVzKS4KCjIwMTYtMTAtMjQgMjI6NDc6MjkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBNYWtlZmlsZS5hbToKCSAgbWVzb246IGRpc3QgbWVzb24gYnVpbGQgZmlsZXMKCSAgU2hpcCBtZXNvbiBidWlsZCBmaWxlcyBpbiB0YXJiYWxscywgc28gcGVvcGxlIHdobyB1c2UgdGFyYmFsbHMKCSAgaW4gdGhlaXIgYnVpbGRzIGNhbiBzdGFydCBwbGF5aW5nIHdpdGggbWVzb24gYWxyZWFkeS4KCjIwMTctMDEtMzEgMDk6NTU6NTkgKzAwMDAgIEp1bGllbiBJc29yY2UgPGppc29yY2VAb2Jsb25nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zZWVrLmM6CgkgIHRlc3RzOiBhZGQgMiB1bml0IHRlc3RzIGZvciBub24tZmx1c2ggc2VlayB3aXRoIGdzdGJhc2VwYXJzZQoJICBUaGUgdW5pdCB0ZXN0IGRlZmluZXMgYSB0ZXN0IHBhcnNlIGVsZW1lbnQgdGhhdCBpbmhlcml0IGZyb20gR3N0QmFzZVBhcnNlLgoJICBUaGUgdGVzdCBwaXBlbGluZSBpczogZmFrZXNyYyAhIHRlc3RwYXJzZSAhIGZha2VzaW5rIHN5bmM9MQoJICBCZWZvcmUgdGhlIGZpeCBiMmMwNWNhYzggdGhlIGZpcnN0IG5ldyB0ZXN0IHdvdWxkIGhhdmUgZmFpbCBiZWNhdXNlIHRoZQoJICBwaXBlbGluZSB3b3VsZCBoYXZlIHdhaXQgZG9pbmcgbm90aGluZyBqdXN0IGFmdGVyIHByb2NlZWRlZCB0aGUgc2VlayBldmVudC4KCSAgVGhlIHNlY29uZCBuZXcgdGVzdCB3b3VsZCBoYXZlIGZhaWwgYmVjYXVzZSB0aGUgcGlwZWxpbmUgd291bGQgaGF2ZQoJICBwbGF5ZWQgdGhlIG1lZGlhIGluc3RhbnRseSBqdXN0IGFmdGVyIHByb2NlZWRlZCB0aGUgc2VlayBldmVudAoJICAobGlrZSBpZiBzeW5jIHdhcyBGQUxTRSBvbiB0aGUgc2luaykuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Nzc3ODAKCjIwMTctMDEtMzEgMjE6MTk6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogRG9uJ3QgdHJhbnNsYXRlIHRoZSAiYmluIiBlbGVtZW50IG5hbWUKCSAgT3RoZXJ3aXNlIHdlIHdvbid0IGJlIGFibGUgdG8gY3JlYXRlIGJpbnMsIHRoZXJlIGlzIG5vIGVsZW1lbnQgY2FsbGVkCgkgICJCZWjDpGx0ZXIiIGlmIHlvdSdyZSB1c2luZyBhIEdlcm1hbiBsb2NhbGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Nzc5OTgKCjIwMTYtMDQtMTUgMjA6NTQ6NDIgKzA5MDAgIFNldW5naGEgWWFuZyA8c2gueWFuZ0BsZ2UuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogTW9kaWZpeSBpbnNpZGUgc2VnbWVudCBjb25kaXRpb24KCSAgVGhlcmUgaXMgYSBzcGVjaWFsIGNhc2UgdGhhdCBzZWdtZW50X3N0YXJ0ID09IHNlZ21lbnRfc3RvcCA9PSBzdGFydC4KCSAgSXQncyBpbnNpZGUgb2Ygc2VnbWVudAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0NzA3CgoyMDE3LTAxLTI2IDE2OjM1OjI3ICswMDAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IENoZWNrIGxpYnVud2luZCByZXR1cm4gY29kZXMKCjIwMTctMDEtMTggMTg6MTY6MjYgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9tZXNvbi5idWlsZDoKCSogbGlicy9nc3QvbmV0L21lc29uLmJ1aWxkOgoJICBtZXNvbjogbGliczogQWRkIGdpciB0byB0aGUgc291cmNlIGxpc3Qgb2YgdGhlIGRlcGVuZGVuY3kKCjIwMTctMDEtMTYgMTE6MjY6MTYgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXJmYWN0b3J5LmM6CgkqIGdzdC9nc3RkeW5hbWljdHlwZWZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3Rwcm90ZWN0aW9uLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c3RyZWFtY29sbGVjdGlvbi5jOgoJKiBnc3QvZ3N0c3RyZWFtcy5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuYzoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0cHJveHljb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y29udHJvbG1lc3NhZ2VtZXRhLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3RyZWFtaWRkZW11eC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIFBvcnQgZ3RrLWRvYyBjb21tZW50cyB0byB0aGVpciBlcXVpdmFsZW50IG1hcmtkb3duIHN5bnRheAoJICBNb2Rlcm5pemluZyBvdXIgZG9jdW1lbnRhdGlvbiBhbmQgcHJlcGFyaW5nIGEgcG9zc2libGUgbW92ZSB0byBob3Rkb2MuCgkgIFRoaXMgY29tbWl0cyBhbHNvIGFkZHMgbWlzc2luZyBAdGl0bGUgbWV0YWRhdGFzIHRvIGFsbCBTRUNUSU9OcwoKMjAxNy0wMS0xMSAxNzoyNTowOCAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHN0cmVhbWNvbGxlY3Rpb24uaDoKCSogZ3N0L2dzdHN0cmVhbXMuaDoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBnc3QvZ3N0dXJpLmg6CgkgIGdzdDogRml4IGluY2x1ZGVzIHNvIHRoYXQgZmlsZXMgY2FuIGJlIGJ1aWx0IHNlcGFyYXRlbHkKCSAgSXQgdXNlZCB0byB3b3JrIGJ1dCBpdCBoYXMgYnJva2UgaW4gdGhlIDEuMTAgY3ljbGUuCgoyMDE3LTAxLTE4IDEwOjU2OjM4IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGdzdHBvbGw6IEVuY29kZSBpbiB1dGYtOAoKMjAxNy0wMS0yNiAxNTozMjozMSAtMDgwMCAgQnJlbmRhbiBTaGFua3MgPGJyZW5kYW4uc2hhbmtzQHRlcmFkZWsuY29tPgoKCSogZ3N0L2dzdHN0cmVhbWNvbGxlY3Rpb24uaDoKCSogZ3N0L2dzdHN0cmVhbXMuaDoKCSAgR3N0U3RyZWFtL0dzdFN0cmVhbUNvbGxlY3Rpb246IGFkZCBnX2F1dG9wdHIoKSBzdXBwb3J0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Nzc4MTAKCjIwMTctMDEtMjYgMTY6NTE6MjEgKzAwMDAgIEp1bGllbiBJc29yY2UgPGppc29yY2VAb2Jsb25nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogY29ycmVjdGx5IGhhbmRsZSBub24tZmx1c2ggc2VlawoJICBPdGhlcndpc2Ugd2hlbiBzZWVraW5nL2xvb3BpbmcgdG8gdGhlIHN0YXJ0IHdoZW4gcmVhY2hpbmcgdGhlIGVuZCwKCSAgdGhlIHNpbmsgd2FpdHMgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgc3RyZWFtLiBTbyB0aGUgdXNlciBoZWFycwoJICBub3RoaW5nIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIHN0cmVhbSBiZWZvcmUgaXQgYWN0dWFsbHkgbG9vcCBhZ2Fpbi4KCSAgU2VlIGV4YW1wbGUgYXR0YWNoZWQgdG8gdGhlIGJ1ZyBmb3IgdGhhdC4KCSAgRXhpc3RpbmcgdGVzdDoKCSAgZ3N0LXBsdWdpbnMtZ29vZC90ZXN0cy9pY2xlcy90ZXN0LXNlZ21lbnQtc2Vla3MgZm9vLmZsYWMKCSAgV2l0aG91dCB0aGUgcGF0Y2ggdGhlIHVzZXIgaGVhcnMgYSBjcmFjay9jdXQgYXQgZWFjaCBzZWVrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc3NzgwCgoyMDE2LTA1LTI0IDE0OjU3OjU0ICswMjAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogQWRkIEFQSSB0byBmaWx0ZXIgZ193YXJuaW5nL2dfY3JpdGljYWwgZXRjCgkgIE5ldyBBUEkgZnVuY3Rpb25zIHRvIGZpbHRlciBsb2cgbWVzc2FnZXMgYmVmb3JlIHRoZXkgYXJlIHByb2Nlc3NlZCBieQoJICBHc3RDaGVjay4gVGhpcyBjYW4gYmUgdXNlZCB0byBkaXNjYXJkIHNwZWNpZmljIG1lc3NhZ2VzIHRoYXQgYXJlCgkgIGFjY2VwdGVkIGJ5IHRoZSB0ZXN0IG9yIHRvIGFkZCBjYWxsYmFja3MgdGhhdCB0ZXN0IHNwZWNpZmljIG1lc3NhZ2VzLgoJICBEZWZhdWx0IGJldmF2aW9yIHdoZW4gbm8gY2FsbGJhY2sgaXMgZ2l2ZW4gdG8gYSBmaWx0ZXIgaXMgdG8gZGlzY2FyZCB0aGUKCSAgbWVzc2FnZSwgYmVjYXVzZSBpdCBkb2VzIG5vdCBtYWtlcyBzZW5zZSB0byBoYXZlIGEgZmlsdGVyIHdpdGggbm8KCSAgY2FsbGJhY2sgd2hpY2ggZG9lcyBub3QgZGlzY2FyZDsgdGhhdCB3b3VsZCBiZSBhIG5vb3AuCgkgIERpc2NhcmRlZCBtZXNzYWdlcyB3aWxsIGluIGFkZGl0aW9uIHRvIGJ5cGFzcyB0aGUgR3N0Q2hlY2sgaGFuZGxpbmcgYWxzbwoJICByZXR1cm4gdG8gR0xpYiB0aGF0IHRoZSBtZXNzYWdlIGlzIG5vdCBmYXRhbCBpZiBpdCBvY2N1cnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzMwOTEKCjIwMTctMDEtMTggMjI6Mzk6MzMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogdXBkYXRlIHRoZSBkb2NzIGZvciB0aGUgZXZlbnQgZm9yd2FyZGluZwoJICBGaXJzdCB0aGlzIHNlbmRzIHRoZSBldmVudHMgbm90IG9ubHkgdG8gdGhlIHNvdXJjZXMgYW5kIDJuZCB0aGlzIGlzIG5vdCBvbmx5CgkgIGZvciBzZWVrIGV2ZW50cy4KCjIwMTctMDEtMTggMTU6MDc6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogRG9uJ3QgaG9sZCBlbGVtZW50J3Mgb2JqZWN0IGxvY2sgd2hpbGUgcXVlcnlpbmcgZWxlbWVudCBwYWRzJyBjYXBzCgkgIFRoaXMgY2FuIGVhc2lseSBkZWFkbG9jayBpZiB0aGUgZWxlbWVudCB1c2VzIHRoZSBvYmplY3QgbG9jayBmb3IKCSAgc29tZXRoaW5nIGludGVybmFsbHksIGxpa2UgcG9zdGluZyBhbiBlcnJvciBtZXNzYWdlLiBVc2UgYW4gR3N0SXRlcmF0b3IKCSAgZm9yIGl0ZXJhdGluZyBvdmVyIHRoZSBwYWRzIGluc3RlYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Nzc0NDkKCjIwMTctMDEtMTYgMDk6NDE6MTkgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBnc3RiaW46IFF1aWV0ZW4gYSBub2lzeSBGSVhNRSBhYm91dCBkdXJhdGlvbiBjYWNoaW5nCgkgIE9ubHkgcHJpbnQgdGhpcyBGSVhNRSBvbmNlIHBlciBydW4sIGF0IGl0J3MgcHJldHR5IGFubm95aW5nIGluCgkgIGxvdHMgb2YgbG9ncyBvdGhlcndpc2UuCgoyMDE1LTA3LTE0IDEzOjExOjExICswMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICBpZGVudGl0eTogQWRkIHRzLW9mZnNldCBwcm9wZXJ0eS4KCSAgQWRkIGEgcHJvcGVydHkgdG8gZGVsYXkgb3IgYWR2YW5jZSBzeW5jIHRpbWUKCSAgd2hlbiBzeW5jPXRydWUsIHdpdGggdGhlIHNhbWUgYmVoYXZpb3VyIGFzCgkgIHRoZSB0cy1vZmZzZXQgcHJvcGVydHkgaW4gYmFzZXNpbmsKCjIwMTctMDEtMTUgMTE6NTI6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIGRhdGV0aW1lOiBmaXggcG90ZW50aWFsIG91dC1vZi1ib3VuZCByZWFkIG9uIG1hbGZvcm1lZCBkYXRldGltZSBzdHJpbmcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NzI2MwoKMjAxNy0wMS0xMyAxMjozNDo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogYnVtcCB2ZXJzaW9uCgoyMDE3LTAxLTEyIDE2OjMyOjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjExLjEgPT09CgoyMDE3LTAxLTEyIDE1OjI5OjE1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSAgUmVsZWFzZSAxLjExLjEKCjIwMTctMDEtMTIgMTQ6MzU6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9oci5wbzoKCSogcG8vaWQucG86CgkqIHBvL3BsLnBvOgoJKiBwby96aF9DTi5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNy0wMS0xMiAxNDozNDoxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2hyLnBvOgoJKiBwby9pZC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3poX0NOLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNy0wMS0xMiAxNDoyNjo1NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTctMDEtMDUgMTM6NDU6MzcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LTEuMC4xOgoJICB0b29sczogdXBkYXRlIGdzdC1pbnNwZWN0IG1hbiBwYWdlCgoyMDE3LTAxLTA1IDEwOjMyOjAzIC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBrZ2NvbmZpZy9tZXNvbi5idWlsZDoKCSAgbWVzb246IERvIG5vdCBnZW5lcmF0ZSAucGMgZmlsZXMgZm9yIGxpYmdzdGNoZWNrIG9uIHdpbmRvd3MKCSAgVGhlIGxpYiBpcyBub3QgYnVpbHQKCjIwMTctMDEtMDQgMTI6MTA6NDUgKzAxMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogcGtnY29uZmlnL01ha2VmaWxlLmFtOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWJhc2UtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbGxlci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9tZXNvbi5idWlsZDoKCSAgbWVzb246IGdlbmVyYXRlIHBrZy1jb25maWcgLXVuaW5zdGFsbGVkIHBjIGZpbGVzCgkgIEdlbmVyYXRpbmcgdGhvc2UgZmlsZXMgaXMgdXNlZnVsIGZvciB1c2VycyBidWlsZGluZyB0aGUgR1N0cmVhbWVyIHN0YWNrCgkgIHVzaW5nIG1lc29uIGFuZCBoYXZpbmcgdG8gbGluayBpdCB0byBhbm90aGVyIHByb2plY3Qgd2hpY2ggaXMgc3RpbGwKCSAgdXNpbmcgdGhlIGF1dG90b29scy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NjgxMAoKMjAxNy0wMS0wMyAxMjozMDowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBjbGFyaWZ5IGRvY3MgZm9yIEdTVF9QQURfUFJPQkVfRFJPUAoKMjAxNy0wMS0wMyAwMjoxMzozMCArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBEb24ndCBnZW5lcmF0ZSBHU1RfRkxPV19FUlJPUiB3aXRob3V0IGxvZ2dpbmcKCSAgQXQgbGVhc3QgbG9nIGEgbWVzc2FnZSB0byB0aGUgZGVidWcgbG9nIHdoZW4gZ2VuZXJhdGluZwoJICBhIEdTVF9GTE9XX0VSUk9SLCB0byBtYWtlIGl0IHBvc3NpYmxlIHRvIGZpbmQgd2hlcmUgaXQgY2FtZSBmcm9tLgoKMjAxNy0wMS0wMyAwMjoxMjoyNyArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgcGFkdGVtcGxhdGU6IEZpeCBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2Ugb24gaW52YWxpZCBzdGF0aWMgY2FwcwoJICBBIHR5cG8gaW4gYSBzdGF0aWMgY2FwcyBzdHJpbmcgbWF5IHJlc3VsdCBpbiBmYWlsdXJlIHRvCgkgIGRlc2VyaWFsaXNlIGl0LCBzbyBkb24ndCBkZXJlZmVyZW5jZSB0aGUgcmVzdWx0IHdpdGhvdXQKCSAgY2hlY2tpbmcuCgoyMDE3LTAxLTAzIDAyOjExOjI3ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IEZpeCBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2Ugb24gaW52YWxpZCBzdGF0aWMgY2FwcwoJICBBIHR5cG8gaW4gYSBzdGF0aWMgY2FwcyBzdHJpbmcgbWF5IHJlc3VsdCBpbiBmYWlsdXJlIHRvCgkgIGRlc2VyaWFsaXNlIGl0LCBzbyBkb24ndCBkZXJlZmVyZW5jZSB0aGUgcmVzdWx0IHdpdGhvdXQKCSAgY2hlY2tpbmcuCgoyMDE2LTEyLTMwIDE5OjQyOjU3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IHJld29yZCBjb21tZW50IGZvciBnc3Rfc3RydWN0dXJlX3BhcnNlX3N0cmluZygpCgkgIFRoZSBjb21tZW50IHdhcyBhIGJpdCBjb25mdXNpbmcuIFR1cm4gaXQgaW50byBndGtkb2Mgc3R5bGUgYW5kIHJld29yZCBpdC4KCjIwMTYtMTItMjggMjE6NDc6MDMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiByZS1ldmFsIEdTVF9ERUJVRyBlbnYgdmFyIGZvciBsYXRlIGNhdGVnb3JpZXMKCSAgV2hlbiByZWdpc3RlcmluZyBhIG5ldyBkZWJ1ZyBjYXRlZ29yeSBhZnRlciBfZGVidWdfaW5pdCgpLCB3ZSBuZWVkIHRvCgkgIHJlIGNoZWNrIHRoZSBHU1RfREVCVUcgZmlsdGVyIHNldHRpbmdzIGFnYWluLgoJICBJbiBhZGRpdGlvbiB3aGVuIHBhcnNpbmcgdGhlIGZpbHRlciBzZXR0aW5nLCB3ZSBuZWVkIHRvIGFscmVhZHkgYnVtcCB1cAoJICB0aGUgbWluLWRlYnVnIGxldmVsIHRvIG5vdCBzdXBwcmVzcyBkZWJ1ZyBsb2cgc3RhdG1lbnRzIHRoYXQgZHluYW1pY2FsbHkKCSAgcmVnaXN0ZXIgYSBjYXRlZ29yeS4gVGhpcyBoYXBwZW5zIGluIGxpYnJhcmllcyB0aGF0IHVzZSBhIGZ1bmN0aW9uIHRvCgkgIHJlZ2lzdGVyIGEgY2F0ZWdvcnkgb24gZmlyc3QgdXNlLgoKMjAxNi0xMi0yOSAxNzowNDowNCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IERlZmF1bHQgdG8gcHl0aG9uMwoJICBJdCdzIDIwMTYsIHVubGVzcyB5b3UndmUgc3BlY2lmaWVkIGEgZGlmZmVyZW50IHZlcnNpb24gb2YgcHl0aG9uLAoJICB3ZSdsbCBkZWZhdWx0IHRvIHB5dGhvbjMKCjIwMTYtMTItMjggMTM6NDU6NTQgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYWxzbyB1bnNldCBESVNDT05UIG9uIGJ1ZmZlcnMgaW4gcmV2ZXJzZSBwbGF5YmFjayBmcmFnbWVudHMKCjIwMTYtMTItMjEgMjE6NTg6NTMgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QtMS4wLjE6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1sYXVuY2g6IEFkZCBhICctLXR5cGVzJyBvcHRpb24gdG8gZmlsdGVyIGVsZW1lbnRzIGJ5IHR5cGVzIHRvIHByaW50CgkgIFRoaXMgd2F5IHRoZSB1c2VyIGNhbiBlYXNpbHkgZmlndXJlIG91dCB3aGF0IGFyZSB0aGUgYXZhaWxhYmxlIGF1ZGlvCgkgIGVuY29kZXIgZm9yIGV4YW1wbGUgZG9pbmc6CgkgIGdzdC1pbnNwZWN0LTEuMCAtLXR5cGVzIEVuY29kZXIvQXVkaW8KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NjM5MgoKMjAxNi0xMi0yMiAxODo0NToxMCArMDEwMCAgTmljb2xhcyBEZWNoZXNuZSA8bmljb2xhcy5kZWNoZXNuZUBsaW5hcm8ub3JnPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogZ3N0LWxhdW5jaDogc2V0IEdTVF9HTF9YSU5JVFRIUkVBRFMKCSAgVGhpcyBlbnN1cmUgdGhhdCBYSW5pdFRocmVhZHMgaXMgY2FsbGVkIGFuZCBzbyBnbCBjb250ZXh0cyBhcmUgcHJvcGVybHkKCSAgaW5pdGlhbGl6ZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzY0MDEKCjIwMTYtMTItMjIgMTY6MTM6MjIgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHByZXNldC5jOgoJICBnc3RwcmVzZXQ6IExvd2VyIHNvbWUgZGVidWcgbG9ncyBsZXZlbAoJICBBIHByb3BlcnR5IG5vdCBkZWZpbmVkIGluIGEgcHJlc2V0IGZpbGUgY2FuIHNpbXBseSBtZWFuIHRoYXQgdGhlCgkgIHVzZXIgd2FudHMgaXQgdG8gYmUgc2V0IGFzIGl0IGRlZmF1bHQgdmFsdWUsIGFuZCB3ZSBzaG91bGQgbm90IHdhcm4KCSAgYWJvdXQgdGhhdC4KCSAgQSBtaXNzaW5nIHByZXNldCBmaWxlIGluIGEgZGlyZWN0b3J5IGNhbiBoYXBwZW4gaGFzIHRoZXJlIGFyZSBzZXZlcmFsCgkgIGRpcmVjdG9yeSB3aGVyZSBhIHByZXNldCBjYW4gYmUgZm91bmQgaW4uCgoyMDE2LTEyLTIyIDIzOjM5OjM5ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBGaXggb3JkZXIgb2YgQyBzb3VyY2UgYW5kIGhlYWRlciBpbiBta2VudW1zCgkgIE90aGVyd2lzZSBnc3RlbnVtX2ggZGVwZW5kZW5jaWVzIGRvbid0IGdldCBhZGRlZCBwcm9wZXJseSB0byBnc3RfZGVwIGFuZAoJICB3ZSBzZWUgcmFjeSBidWlsZCBmYWlsdXJlcyBldmVyeXdoZXJlLgoKMjAxNi0xMi0xNyAxNDozNToxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9idWlsZF9ta2VudW0ucHk6CgkqIGdzdC9nc3RlbnVtdHlwZXMuYy50ZW1wbGF0ZToKCSogZ3N0L2dzdGVudW10eXBlcy5oLnRlbXBsYXRlOgoJKiBnc3QvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiB1c2UgZ25vbWUubWtlbnVtcygpIHdpdGggdGVtcGxhdGUgZmlsZXMgZm9yIGVudW0gZmlsZSBnZW4KCSAgU2F2ZXMgdXMgYSBjdXN0b20gc2NyaXB0LiBUZW1wbGF0ZSBmaWxlcyBhcmUgbmljZXIgdGhhbiBwYXNzaW5nCgkgIG11bHRpbGluZSB0ZW1wbGF0aW5nIHN0dWZmIHRocm91Z2ggdG8gZ2xpYi1ta2VudW1zLiBBbmQgd2UgY2FuCgkgIGdldCByaWQgb2Ygb3VyIGN1c3RvbSBweXRob24gc2NyaXB0LgoKMjAxNi0xMi0yMiAxMjowNTo1NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IEFkZCBndWFyZCB0byBnc3RfZWxlbWVudF9yZWxlYXNlX3BhZCgpIHRvIGVuc3VyZSB0aGUgcGFkIGJlbG9uZ3MgdG8gdGhpcyBlbGVtZW50CgkgIEl0J3MgYSBwcm9ncmFtbWluZyBlcnJvciB0byBwYXNzIG90aGVyIHBhZHMgaGVyZSwgYW5kIGl0IGVhc2lseSBjYXVzZXMKCSAgY3Jhc2hlcyBvciBvdGhlciBwcm9ibGVtYXRpYyBiZWhhdmlvdXIgZG93biB0aGUgcm9hZCBhcyBzdWJjbGFzc2VzCgkgIHVzdWFsbHkgYXNzdW1lIHRvIG9ubHkgZ2V0IHRoZWlyIHBhZHMuCgoyMDE2LTEyLTIxIDIyOjE4OjE3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJICBnc3RydXNhZ2U6IGV4cGxpY2l0bHkgcmVnaXN0ZXIgdG8gaG9va3MKCSAgV2Ugd2VyZSBhdHRhY2hpbmcgdG8gYW55IHByb2JlIHBvaW50IHRvIHRha2UgcnVzYWdlIHNhbXBsZXMuIFRoZSBuZXcgcmVmY291bnQKCSAgaG9va3MgYXJlIGNhbGxlZCB3YXkgdG9vIGZyZXF1ZW50bHkgdGhvdWdoIHRvIG1ha2UgdGhpcyBzdGlsbCBmZWFzaWJsZS4KCjIwMTYtMTItMjEgMjM6NDk6MTEgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9tZXNvbi5idWlsZDoKCSogbWVzb24uYnVpbGQ6CgkqIHRlc3RzL2NoZWNrL21lc29uLmJ1aWxkOgoJICBtZXNvbjogQWRkIHNldmVyYWwgbWlzc2luZyBmZWF0dXJlcyBmcm9tIGNvbmZpZ3VyZS5hYwoJICAqIC1XbCwtQnN5bWJvbGljLWZ1bmN0aW9ucwoJICAqIEhBVkVfUFRIUkVBRF9TRVROQU1FX05QX1dJVEhPVVRfVElECgkgICogSEFWRV9QT1NJWF9USU1FUlMKCSAgKiBIQVZFX01PTk9UT05JQ19DTE9DSwoJICAqIEhBVkVfVUlOVDEyOF9UCgkgICogSEFWRV9MT05HX0xPTkcKCSAgKiBIQVZFX1BST0NFU1NfSAoJICAqIEhBVkVfR01QCgkgICogSEFWRV9HU0wKCSAgKiBIQVZFX0RMQUREUgoJICBBbHNvLCBkb24ndCB1c2UgcHJlZml4IGZvciBjaGVja2luZyBmdW5jdGlvbnMsIGFuZCBvbmx5IGNoZWNrIG1zdmMKCSAgZnVuY3Rpb25zIG9uIFdpbmRvd3MuCgoyMDE2LTEyLTIxIDA5OjMzOjM5ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBjb25maWcuaC5tZXNvbjoKCSogY29uZmlndXJlLmFjOgoJKiBtZXNvbi5idWlsZDoKCSAgYnVpbGQ6IFJlbW92ZSB1bnVzZWQgZnVuY3Rpb25zCgkgIGZnZXRwb3MsIGZzZXRwb3MsIG1tYXAsIHBvc2l4X21lbWFsaWduLiBOb25lIG9mIHRoZXNlIGFyZSB1c2VkIGFueXdoZXJlCgkgIGluIHRoZSBjb2RlYmFzZS4KCjIwMTYtMTItMjEgMDk6MDA6MjIgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJKiBwbHVnaW5zL3RyYWNlcnMvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBEZXJpdmUgZGVmaW5lcyBmcm9tIGhlYWRlci9mdW5jdGlvbiBuYW1lcwoJICBUaGlzIGlzIHdoYXQgQXV0b2NvbmYgYWxyZWFkeSBkb2VzIGZvciB1cywgc28ganVzdCBkbyB0aGlzLiBBdm9pZHMKCSAgcGVvcGxlIG1ha2luZyB0eXBvcyB3aGlsZSBhZGRpbmcgaGVhZGVyIG9yIGZ1bmN0aW9uIGNoZWNrcy4gQmVjYXVzZSB3ZQoJICB1c2UgYSBjb25maWcuaC5tZXNvbiwgc3VjaCB0eXBvcyB3b24ndCBldmVuIGJlIG5vdGljZWQuCgkgIEFsc28sIHN0YXJ0aW5nIGZyb20gTWVzb24gMC4zNi4wLCB0aGUgWENvZGUgOCB3b3JrYXJvdW5kIHRoYXQgd2UgdXNlIGZvcgoJICBjbG9ja19nZXR0aW1lIGlzIG5vIGxvbmdlciBuZWVkZWQuCgoyMDE2LTEyLTIxIDEwOjAyOjQ1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBnc3RzdHJ1Y3R1cmU6IHNpbXBsaWZ5IHRlc3QKCSAgV2UgY2FuIGNvbXBhcmUgc3RydWN0dXJlcywgdGhhdCBpcyB3aGF0IHRoZSBjYXBzIGZ1Y250aW9uIHRoYXQgd2FzIHVzZWQgYmVmb3JlCgkgIHdvdWxkIGNhbGwgYW55d2F5LgoKMjAxNi0xMi0yMCAyMTowODowOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuaDoKCSAgdHJhY2VycmVjb3JkOiBpbXByb3ZlIHRoZSB2YWx1ZXMgZmxhZ3MgZG9jcwoKMjAxNi0xMi0yMCAyMTowNzoxNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkgIGxhdGVuY3k6IHRoZSBsYXRlbmN5IGlzIG5vdCBhbiBhZ2dyZWdhdGVkIHZhbHVlCgkgIFRoZSBsb2dnZWQgbGF0ZW5jaWVzIGFyZSBpbmRpdmlkdWFsIG1lYXNzdXJlbWVudHMuCgoyMDE2LTEyLTAyIDA4OjI5OjExIC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGVha3MuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxlYWtzLmg6CgkgIGxlYWtzOiBBbGxvdyB1c2VyIHRvIHNldCB0aGUgZmxhZ3MgdG8gdXNlIHRvIHJldHJpZXZlIHN0YWNrIHRyYWNlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1NTQxCgoyMDE2LTEyLTAxIDE3OjM1OjQ1IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxlYWtzLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsZWFrcy5oOgoJICBsZWFrczogQWxsb3cgdHJhY2luZyBHc3QoTWluaSlPYmplY3QgcmVmZmluZyBvcGVyYXRpb25zCgkgIEl0IG1ha2VzIGl0IG11Y2ggc2ltcGxlciB0byBsYXRlciBkZWJ1ZyByZWZjb3VudCBpc3N1ZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU1NDEKCjIwMTYtMTEtMzAgMTc6MDU6NTYgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsZWFrcy5jOgoJICBsZWFrczogQWxsb3cgcGFzc2luZyBhIEdzdFN0cnVjdHVyZSB0byBjb25maWd1cmUgdGhlIHRyYWNlcgoJICBCdXQga2VlcCB1bmRlcnN0YW5kaW5nIHRoZSBzaW1wbGUgc3ludGhheCB3aXRoIGEgY29tbWEgc2VwYXJhdGVkCgkgIGxpc3Qgb2YgZmlsdGVycwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1NTQxCgoyMDE2LTEyLTIxIDAwOjQwOjEwICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBTd2l0Y2ggdG8gbm9ybWFsIG1vZGUgYmVmb3JlIGhhdmUtdHlwZQoJICBCZWZvcmUgZW1pdHRpbmcgaGF2ZS10eXBlLCBzd2l0Y2ggdG8gTk9STUFMCgkgIG1vZGUsIGFzIHBhcnQgb2YgdGhlIGhhdmUtdHlwZSBwcm9jZXNzaW5nIHNlbmRzCgkgIHRoZSBjYXBzIGV2ZW50IGRvd25zdHJlYW0sIHdoaWNoIG1pZ2h0IHRyaWdnZXIKCSAgYWN0aW9ucyBsaWtlIGRvd25zdHJlYW0gYXV0b3BsdWdnaW5nIG9yCgkgIGZsdXNoaW5nIHNlZWtzIC0gYW5kIHRoZSBsYXR0ZXIgYXJlIG9ubHkKCSAgcGFzc2VkIHVwc3RyZWFtIGlmIHdlJ3ZlIHNldCB0eXBlZmluZCB0byBOT1JNQUwKCSAgbW9kZS4KCjIwMTYtMTItMTMgMjE6MTI6MjMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogUHJvdGVjdCBhZ2FpbnN0IHNwdXJpb3VzIHdha2V1cHMgb2YgdGhlIGNvbmRpdGlvbiB2YXJpYWJsZQoKMjAxNi0xMS0zMCAyMToxNzo1NSArMDEwMCAgRmFicmljZSBCZWxsZXQgPGZhYnJpY2VAYmVsbGV0LmluZm8+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBmaXggYSB1c2UgYWZ0ZXIgZnJlZSBjYXNlCgkgIFRoZSBldmVudCBtYXkgYmUgZGlzcG9zZWQgd2hpbGUgYmVpbmcgcHVzaGVkLCBzbyB3ZSBtYWtlIHN1cmUgdGhlCgkgIGRlYnVnIGluZnJhc3RydWN0dXJlIHdvbid0IHVzZSBpdCBhZnRlciB0aGUgZ3N0X3BhZF9wdXNoKCkuCgoyMDE2LTEyLTE2IDE4OjMwOjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IGZpeCB0eXBvIGluIGRvY3MKCjIwMTYtMTItMTYgMjM6NDU6MDggKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9wYXJzZS9tZXNvbi5idWlsZDoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBEb24ndCBzZWFyY2ggZm9yIHB5dGhvbjMgdHdpY2UKCjIwMTYtMTItMTYgMTg6MTQ6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IGV4cG9ydCBuZXcgZ2xvYmFsIHZhcmlhYmxlCgoyMDE2LTEyLTE2IDEzOjU5OjUxIC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogQXZvaWQgcG9zc2libGUgZG91YmxlIGZyZWUKCjIwMTYtMTItMDIgMTE6NTk6NDMgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBBbGxvdyBsaXN0aW5nIHVuaXQgdGVzdHMgbmFtZXMKCSAgQWRkaW5nIG9wdGlvbnMgd2hpbGUgcnVubmluZyBnc3RfY2hlY2tfaW5pdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1NTQwCgoyMDE2LTEyLTE1IDE1OjM3OjQ1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICB0cmFjZXJzL3N0YXRzOiBsb2cgb3B0aW9uYWwgZmllbGRzIGluc3RlYWQgb2YgR1NUX0NMT0NLX1RJTUVfTk9ORQoJICBTaW1wbGlmeSB0aGUgdHJhY2VzIGFuZCBhdm9pZCB0cmFjZSBhbmFseXplciB0byBrbm93IHRoYXQgKCgxPDw2NCkgLSAxKSBtZWFucwoJICB3ZSBoYWQgbm8gdmFsdWUuCgoyMDE2LTEyLTE2IDE1OjA1OjQ2ICswMTAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBhdXRvZ2VuLnNoOgoJICBhdXRvZ2VuLnNoOiBkcm9wIGEgbGVmdG92ZXIgZG9jYm9vayByZWxhdGVkIGJpdAoKMjAxNi0xMi0wOCAyMTowMTo1MiArMTEwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogYWRkIHN0cnVjdHVyZSBpbnRlcnNlY3QvdW5pb24vaXNfc3Vic2V0L2ZpeGF0ZSBpbXBsZW1lbnRhdGlvbnMKCSAgQWxsb3dzIHByb3BlciB1c2FnZSBvZiBzdHJ1Y3R1cmVzIGluIHN0cnVjdHVyZXMgaW4gY2Fwcy4gIFN1YnRyYWN0aW9uCgkgIGlzIG5vdCBpbXBsZW1lbnRlZCBkdWUgdG8gY29tcGxpY2F0aW9ucyB3aXRoIGVtcHR5IGZpZWxkcyByZXByZXNlbnRpbmcKCSAgYWxsIHBvc3NpYmxlIHZhbHVlcy4KCSAgVGhlIG9ubHkgaW1wbGVtZW50YXRpb24gdGhhdCBkb2Vzbid0IGRlbGVnYXRlIHRvIHRoZSBhbHJlYWR5IGV4aXN0aW5nCgkgIEdzdFN0cnVjdHVyZSBmdW5jdGlvbnMgaXMgdGhlIHVuaW9uIGZ1bmN0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1Nzk2CgoyMDE2LTEyLTA4IDE1OjQxOjQwICsxMTAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHRlc3RzL3N0cnVjdHVyZTogYWRkIHNvbWUgbW9yZSBpc19zdWJzZXQgY2hlY2tzCgkgIEV4cGxpY2l0bHkgdGVzdGluZyBleHRyYS9taXNzaW5nIGZpZWxkcyBhbmQgbmFtZSBkaWZmZXJlbmNlcwoKMjAxNi0xMi0xNCAxODoxOTowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkgIHRlc3RzOiBtZXRhOiBhZGQgdGVzdCBmb3IgZ3N0X2J1ZmZlcl9pdGVyYXRlX21ldGEqKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTcyNwoKMjAxNi0xMi0wMyAxMzowNTowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBhZGQgZ3N0X2J1ZmZlcl9pdGVyYXRlX21ldGFfZmlsdGVyZWQoKQoJICBGb3IgY29udmVuaWVuY2UuIFByZXR0eSBtdWNoIGV2ZXJ5IHVzZXIgb2YKCSAgZ3N0X2J1ZmZlcl9pdGVyYXRlX21ldGEoKSBmaWx0ZXJzIGZvciBhIHNwZWNpZmljCgkgIGFwaSB0eXBlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1NzI3CgoyMDE2LTEyLTE0IDE1OjIyOjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IG1hcmsgZ3N0X2J1ZmZlcl9pdGVyYXRlX21ldGEoKSBhcyAnc2tpcCcgZm9yIGJpbmRpbmdzCgkgIFRoZSBwb2ludGVyIHN0YXRlIGFyZyB3b24ndCB3b3JrIHdlbGwsIGJpbmRpbmdzIGNhbiB1c2UKCSAgdGhlIGZvcmVhY2ggZnVuY3Rpb24gaW5zdGVhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTcyNwoKMjAxNi0xMi0xNCAwNjo1Njo1NSArMDEwMCAgScOxYWtpIEdhcmPDrWEgRXR4ZWJhcnJpYSA8Z2FyZXR4ZUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZy1pOiBGaXggYW5ub3RhdGlvbnMgZm9yIGdzdF9ldmVudF9uZXdfc2VsZWN0X3N0cmVhbXMoKSBhbmQgZ3N0X2V2ZW50X3BhcnNlX3NlbGVjdF9zdHJlYW1zKCkKCSAgQSBnY2hhciBpcyBub3QgYSBzdHJpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU5NDQKCjIwMTYtMTItMTMgMjM6MjU6MzkgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBvbmx5IHdhcm4gb24gcGVyZm9ybWFuY2UgcGVuYWx0eSBpZiBub3QgdXNpbmcgdGhlIHRlbXBsYXRlIGNhcHMKCSAgQWZ0ZXIgYjc2ZWNmZDk5MmIwZDNhNDIzY2M5YWNlNTUzOWVjZDJiYTUwOWQ0MSBpbnRyb2R1Y2VkCgkgIEdTVF9QQURfRkxBR19BQ0NFUFRfVEVNUExBVEUsIHRoZSBwZXJmb3JtYW5jZSBwZW5hbHR5IHRoaXMKCSAgbWVzc2FnZSBpcyByZWZlcmluZyB0byAodGhlIGNhc2NhZGluZyBBQ0NFUFRfQ0FQUyBxdWVyeSkKCSAgb25seSBhcHBsaWVzIHRvIHRoZSBjYXNlcyB3aGVyZSAhR1NUX1BBRF9JU19BQ0NFUFRfVEVNUExBVEUKCjIwMTYtMTItMTMgMjA6NTE6MTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUvcXVldWUyOiBQcm90ZWN0IGFnYWluc3Qgc3B1cmlvdXMgY29uZGl0aW9uIHZhcmlhYmxlIHdha2V1cHMKCSAgTWFrZSBzdXJlIHRoYXQgd2Ugb25seSB3YWtlIHVwIHdoZW4gd2UgaGF2ZSB0byBmbHVzaCwgb3Igd2hlbiB0aGlzCgkgIHNwZWNpZmljIHF1ZXJ5IHdhcyBoYW5kbGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc2MDM5CgoyMDE2LTEyLTEzIDIwOjAwOjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZS9xdWV1ZTI6IEVuc3VyZSB0aGF0IHRoZSBzdHJlYW1pbmcgdGhyZWFkIGlzIHVubG9ja2VkIGFmdGVyIGRlYWN0aXZhdGluZyB0aGUgc3JjcGFkCgkgIEl0IG1pZ2h0IGhhcHBlbiB0aGF0IHRoZSBzcmNwYWQgdGFzayBmdW5jdGlvbiBpcyBuZXZlciBjYWxsZWQgYXQgYWxsLCBpbgoJICB3aGljaCBjYXNlIHVubG9ja2luZyBldmVyeXRoaW5nIGZyb20gdGhlcmUgd2lsbCBuZXZlciBoYXBwZW4uCgkgIE1ha2Ugc3VyZSB0byB1bmxvY2sgZXZlcnl0aGluZyBhbm90aGVyIHRpbWUgYWZ0ZXIgdGhlIHRhc2sgZnVuY3Rpb24gaXMKCSAgZGVmaW5pdGVseSBzdG9wcGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc2MDM5CgoyMDE2LTEyLTEyIDIyOjE0OjI0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBhZGQgc2VyaWFsaXNhdGlvbiBmb3IgR1R5cGVzCgkgIFdlIG5lZWQgdGhpcyBpbiB0aGUgR3N0VHJhY2VyUmVjb3JkLiBUaGlzIHdpbGwgc2VyaWFsaXplIEdUeXBlcyB0byB0aGUgdHlwZW5hbWUKCSAgYW5kIHZpY2UgdmVyc2EuCgoyMDE2LTEyLTEzIDEzOjIwOjA5ICswMTAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGdzdDogRml4IGJ1aWxkaW5nIHdpdGggbXN2YwoKMjAxNi0xMi0xMiAyMDo1NTozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBpbml0IG5ldyBmbGFncyB0eXBlIGluIGdzdF9pbml0KCkKCSAgRml4ICdtYWtlIGNoZWNrJyBzb21lIG1vcmUuCgoyMDE2LTEyLTEyIDE5OjI1OjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgLmRlZiBmaWxlIGZvciBuZXcgQVBJCgoyMDE2LTExLTMwIDE1OjEwOjQ4IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJICBpbmZvOiBBZGQgYSAnZmxhZ3MnIHBhcmFtZXR0ZXIgdG8gZ3N0X2RlYnVnX2dldF9zdGFja190cmFjZQoJICBUaGlzIGlzIGFuIEFQSSBicmVhayBidXQgdGhhdCBBUEkgaGFzIG5vdCBiZWVuIHJlbGVhc2VkIHlldC4KCSAgV2UgYXJlIHBhc3NpbmcgYSBmbGFnIHJhdGhlciB0aGFuIGEgc2ltcGxlIGJvb2xlYW4gYXMgd2UgY2FuIGltYWdpbmUKCSAgdG8gaW1wbGVtZW50IG1vcmUgZmVhdHVyZXMgaW4gdGhlIGZ1dHVyZSBmb3IgZXhhbXBsZSB0byByZXRyaWV2ZSBhCgkgIHN0YWNrIHRyYWNlIGZvciBhbGwgdGhlIHRocmVhZHMsIGV0Yy4uCgkgIFJldHJpZXZpbmcgc291cmNlIGZpbGUgYW5kIGxpbmUgbnVtYmVycyBpcyBwcmV0dHkKCSAgZXhwZW5zaXZlIHdoaWxlIGdldHRpbmcgYSBzdGFjayB0cmFjZSwgdGhpcyBuZXcgYXJndW1lbnQKCSAgYWxsb3dzIHRoZSB1c2VyIHRvIGRlY2lkZSB0byByZXRyaWV2ZSBhIGJhY2t0cmFjZQoJICB3aXRob3V0IHRob3NlIGluZm9zIGluc3RlYWQgd2hpY2ggaXMgbXVjaCBmYXN0ZXIuCgkgIEZvciBleGFtcGxlIHJ1bm5pbmcgJCBHU1RfTEVBS1NfVFJBQ0VSX1NUQUNLX1RSQUNFPTEgR1NUX0RFQlVHPUdTVF9UUkFDRVI6NyBcCgkgIEdTVF9UUkFDRVJTPWxlYWtzIHRpbWUgZ3N0LWxhdW5jaC0xLjAgdmlkZW90ZXN0c3JjIG51bS1idWZmZXJzPTEgISBmYWtlc2luazoKCSAgKiBXaXRoIHNpbXBsZSBzdGFjayB0cmFjZXM6CgkgIDAuMDRzIHVzZXIgMC4wMnMgc3lzdGVtIDk5JSBjcHUgMC4wNjAgdG90YWwKCSAgKiBXaXRoIGZ1bGwgc3RhY2sgdHJhY2VzOgoJICAwLjY2cyB1c2VyIDAuMjNzIHN5c3RlbSA5NiUgY3B1IDAuOTI2IHRvdGFsCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU0MjMKCjIwMTYtMTItMTIgMTY6MTk6MTMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogU2V0IEdFcnJvciBpbiBhbm90aGVyIGVycm9yIGNhc2UKCSAgV2hlbiBjaGFuZ2luZyB0aGUgbG9jYXRpb24gd2hpbGUgb3BlbiwgcHJvcGVybHkgc2V0IHRoZSBHRXJyb3IgcmVnYXJkaW5nCgkgIHRoZSBmYWlsdXJlLgoKMjAxNi0xMi0xMCAxODozODozMiArMDkwMCAgU2V1bmdoYSBZYW5nIDxzaC55YW5nQGxnZS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRml4IG92ZXJmbG93IG9uIGdldF9idWZmZXJpbmdfbGV2ZWwoKQoJICBndWludDY0IGRlbm9taW5hdG9yIGZhY3RvciBmb3IgZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludCgpIGNhbiBjYXVzZSBvdmVyZmxvdwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1OTIxCgoyMDE2LTEyLTA5IDE5OjI4OjIyIC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBtZXNvbl9vcHRpb25zLnR4dDoKCSogcGx1Z2lucy90cmFjZXJzL21lc29uLmJ1aWxkOgoJICBtZXNvbjogRml4IGJ1aWxkCgoyMDE2LTEyLTA5IDE3OjU1OjM5IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBtZXNvbi5idWlsZDoKCSogcGx1Z2lucy90cmFjZXJzL21lc29uLmJ1aWxkOgoJKiB0ZXN0cy9jaGVjay9tZXNvbi5idWlsZDoKCSAgbWVzb246IFN1cHBvcnQgYnVpbGRpbmcgd2l0aCBHc3QgZGVidWcgZGlzYWJsZWQKCjIwMTYtMTItMDkgMjI6Mzk6MzYgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC9jbG9ja19nZXR0aW1lLmM6CgkgIGNoZWNrOiBGaXggbWFjcm8gY2hlY2sgZm9yIE9TIFgKCSAgVEFSR0VUX09TX01BQyBpcyBkZWZpbmVkIG9uIGFsbCBBcHBsZSBwbGF0Zm9ybXMuIFlvdSBuZWVkIHRvIGNoZWNrIGZvcgoJICAhVEFSR0VUX09TX0lQSE9ORSB0byBkZXRlY3QgT1MgWCAobm93IGNhbGxlZCBtYWNPUykuCgoyMDE2LTEyLTA5IDE4OjAyOjE1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFVzZSBnc3RfcXVlcnlfaGFzX3NjaGVkdWxpbmdfbW9kZV93aXRoX2ZsYWdzKCkgY29udmVuaWVuY2UgZnVuY3Rpb24KCjIwMTYtMTItMDkgMTg6MDE6MzUgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC9jbG9ja19nZXR0aW1lLmM6CgkgIGNoZWNrOiBEb24ndCB0cnkgdG8gaW5jbHVkZSBDb3JlU2VydmljZXMuaCBvbiBpT1MKCSAgT24gaU9TLCB3ZSBoYXZlIE1vYmlsZUNvcmVTZXJ2aWNlcy5oIGJ1dCBpdCdzIG5vdCByZWFsbHkgbmVlZGVkLgoKMjAxNi0xMi0wOSAxNzo1OTo1MyArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlnLmgubWVzb246CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9SRUFETUUudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQvbWFsbG9jLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC9yZWFsbG9jLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL21lc29uLmJ1aWxkOgoJKiBtNC9jaGVjay1jaGVja3MubTQ6CgkgIGNoZWNrOiBEb24ndCBjaGVjayBmb3IgbWFsbG9jL3JlYWxsb2MgYW5kIHRyeSB0byBmYWxsYmFjawoJICBXaGVuIG1hbGxvYyBpcyBub3QgYXZhaWxhYmxlLCB0aGlzIHdpbGwgc2V0ICNkZWZpbmUgbWFsbG9jIHJwbF9tYWxsb2MKCSAgd2hpY2ggaXMgaW1wbGVtZW50ZWQgb25seSBpbnNpZGUgbGliY2hlY2ssIGFuZCBub3QgZXZlcnl0aGluZyB3aWxsIGxpbmsKCSAgdG8gbGliY2hlY2suCgkgIFdlIGRvbid0IHJlYWxseSBuZWVkIHRvIGNhcmUgdG9vIG11Y2ggYWJvdXQgaG93IG1hbGxvYyBpcyBpbXBsZW1lbnRlZAoJICBhbmQgd2UgZG9uJ3QgY2FyZSBhYm91dCBwbGF0Zm9ybXMgdGhhdCBkb24ndCBpbXBsZW1lbnQgbWFsbG9jLgoKMjAxNi0xMi0wOSAxNjowMzo0MSArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svUkVBRE1FLnR4dDoKCSAgQWRkIGEgUkVBRE1FLnR4dCB3aXRoIGNvbnRleHQgZm9yIGxpYmNoZWNrCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU4NzAKCjIwMTYtMTItMDkgMTU6MTg6MTEgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZy5oLm1lc29uOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0L2FsYXJtLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC9jbG9ja19nZXR0aW1lLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC9nZXRsaW5lLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC9nZXR0aW1lb2ZkYXkuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0L2xpYmNvbXBhdC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQvbGliY29tcGF0Lmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC9sb2NhbHRpbWVfci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQvbWFsbG9jLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC9yZWFsbG9jLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC9zdHJkdXAuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0L3N0cnNpZ25hbC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQvdGltZXJfY3JlYXRlLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC90aW1lcl9kZWxldGUuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0L3RpbWVyX3NldHRpbWUuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbWVzb24uYnVpbGQ6CgkqIGxpYnMvZ3N0L2NoZWNrL21lc29uLmJ1aWxkOgoJKiBtNC9jaGVjay1jaGVja3MubTQ6CgkqIG1lc29uLmJ1aWxkOgoJICBsaWJjaGVjazogVXBkYXRlIHRoZSBjb21wYXRpYmlsaXR5IGNvZGUgYW5kIGNoZWNrcwoJICBUaGlzIGJyaW5ncyB1cyB1cC10by1zcGVlZCB3aXRoIHRoZSBsYXRlc3QgY29tcGF0aWJpbGl0eSBjb2RlIGZyb20gdXBzdHJlYW0KCSAgY2hlY2sgZ2l0LiBGb3IgY29tcGxldGVuZXNzLCB3ZSBkbyBhbGwgdGhlIGNoZWNrcyB0aGF0IHVwc3RyZWFtIGNoZWNrIGRvZXMsIGJ1dAoJICB3ZSBza2lwIHRoZSBzbnByaW50Zi92c25wcmludGYgY29kZSBiZWNhdXNlIGl0J3Mgbm90IHN0cmFpZ2h0Zm9yd2FyZCAoaW52b2x2ZXMKCSAgcnVubmluZyBjb2RlIGFuZCB0aGF0IGlzIGJhZCBmb3IgY3Jvc3MtY29tcGlsYXRpb24pIGFuZCBub3QgbmVjZXNzYXJ5IGZvciB0aGUKCSAgcGxhdGZvcm1zIHdlIHN1cHBvcnQgYW55d2F5LgoJICBJZiBzb21lb25lIHJlYWxseSB3YW50cyB0aGlzLCB0aGV5IGNhbiB1bmNvbW1lbnQgdGhpcyBhbmQgY29weSB0aGUgcmVsZXZhbnQKCSAgY2hlY2tzIGZyb20gdGhlIGNoZWNrIGdpdCByZXBvc2l0b3J5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1ODcwCgoyMDE2LTEyLTA5IDE1OjE4OjExICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0L2FsYXJtLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC9jbG9ja19nZXR0aW1lLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC9saWJjb21wYXQuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0L2xpYmNvbXBhdC5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQvbG9jYWx0aW1lX3IuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0L3N0cnNpZ25hbC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQvdGltZXJfY3JlYXRlLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC90aW1lcl9kZWxldGUuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0L3RpbWVyX3NldHRpbWUuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbWVzb24uYnVpbGQ6CgkgIGxpYmNoZWNrOiBKdXN0IG1vdmUgbGliY29tcGF0IGZpbGVzIHRvIGEgc3ViZGlyCgkgIE1ha2VzIGl0IGNsZWFyZXIgd2hpY2ggZmlsZXMgYXJlIGFjdHVhbGx5IHVzZWQgaW4gbGliY2hlY2sgYW5kIHdoaWNoIGFyZSB1c2VkCgkgIGZvciBjcm9zcy1wbGF0Zm9ybSBjb21wYXRpYmlsaXR5LiBUaGlzIGlzIGdvaW5nIHRvIGJlIGVzcGVjaWFsbHkgdXNlZnVsIHdoZW4gd2UKCSAgYWRkIGFsbCB0aGUgbGliY29tcGF0IGZhbGxiYWNrIGNvZGUgdGhhdCB1cHN0cmVhbSBsaWJjaGVjayBoYXMgd2hpY2ggd2lsbCBhZGQKCSAgYWJvdXQgNiBuZXcgZmlsZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU4NzAKCjIwMTYtMTItMDkgMTU6MTg6MTEgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmguaW46CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2Vycm9yLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2Vycm9yLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2ltcGwuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbGlzdC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19saXN0Lmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xvZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbXNnLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcHJpbnQuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcHJpbnQuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3N0ci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuaDoKCSAgbGliY2hlY2s6IHBvcnQgdG8gbGF0ZXN0IGNoZWNrIGdpdAoJICBVcHN0cmVhbSBzZWVtcyB0byBoYXZlIHN0b3BwZWQgZG9pbmcgcmVsZWFzZXMsIGJ1dCB3ZSBuZWVkIHRvIHVwZGF0ZSBmb3IgYmV0dGVyCgkgIFdpbmRvd3MgYW5kIFZpc3VhbCBTdHVkaW8gc3VwcG9ydC4KCSAgVGhpcyBwYXRjaCBvbmx5IHVwZGF0ZXMgdGhlIGxpYmNoZWNrIHNvdXJjZXMgYW5kIGlnbm9yZXMgdGhlIGNvbXBhdGliaWxpdHkKCSAgc291cmNlcyBmb3Igbm93LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1ODcwCgoyMDE2LTEyLTA4IDIyOjAzOjE5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJICB0cmFjZXJzL2xvZzogbG9nIG1vcmUgZGV0YWlsCgkgIExvZyB0aGUgb2JqZWN0cyBsaWtlIHdlIHdvdWxkIGluIEdTVF9UUkFDRV9PQkpFQ1QuIEFkZCB0aGUgaG9vayBmdW5jdGlvbiBpbnRvCgkgIHRoZSBmdWNudGlvbiBmaWVsZC4KCjIwMTYtMTItMDggMjI6MDI6MTcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkgIHRyYWNlci9sb2c6IGZpeCBob29rIHByb3RvdHlwZQoJICBzL0dzdEVsZW1lbnQvR3N0UGFkLwoKMjAxNi0xMi0wOCAyMDoyMDoxNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgdHJhY2VyOiBtb3ZlIHRoZSBQQURfTElOSyB0cmFjZXIgaG9vayB0byBfcGFkX2xpbmtfZnVsbCgpCgkgIFRoaXMgaXMgdWx0aW1hdGVseSBleGVjdXRpbmcgdGhlIHBhZF9saW5rLiBJbiB0aGUgcHJldmlvdXMgcG9zaXRpb24gd2UgbWlzc2VkCgkgIHNvbWUgbGlua3MsIG5vdGFibHkgZ2hvc3RwYWRzLgoKMjAxNi0xMi0wNyAyMTo1Mzo0OSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkgIHRyYWNlci9sYXRlbmN5OiBjbGVhciBxZGF0YQoJICBXaGVuIHJlYWRpbmcgdGhlIHFkYXRhLCBjbGVhciBpdCB0byBhdm9pZCBpdCBiZWluZyByZWFkIGFuZCB1bnJlZmZlZCBhZ2Fpbi4KCSAgRml4ZXMgIzc3NDMzMgoKMjAxNi0xMi0wNiAyMjozMjozMSArMDEwMCAgUGV0ZXIgU2VpZGVyZXIgPHBzLnJlcG9ydEBnbXgubmV0PgoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBnc3Rjb25maWc6IEZpeCB1bmFsaWduZWQgYWNjZXNzIHN1cHBvcnQgZm9yIGFyYyBhbmQgbmlvczIgYXJjaGl0ZWN0dXJlcwoJICBGaXhlcyBidWlsZHJvb3QgYXV0b2J1aWxkIGZhaWx1cmVzIChbMV0sIFsyXSkuCgkgIFsxXSBodHRwOi8vYXV0b2J1aWxkLmJ1aWxkcm9vdC5uZXQvcmVzdWx0cy9mYmQvZmJkY2Q5MDYzNWQ1ZWMzYTYyYWQ5OGE3ZmY5M2I3MWI4ZTVlY2RlNAoJICBbMl0gaHR0cDovL2F1dG9idWlsZC5idWlsZHJvb3QubmV0L3Jlc3VsdHMvZjNjL2YzYzliMGVkNGZmYjExNDIyMTA1NzIzN2NlMjJjOTk1YjY3M2E5OGIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTcyOAoKMjAxNi0xMS0yMiAxNjo1Mjo0NiArMDkwMCAgU2V1bmdoYSBZYW5nIDxzaC55YW5nQGxnZS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1cmkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXJpOiBBZGQgbmV3IHVyaSBBUEkgdG8gZ2V0IG1lZGlhIGZyYWdtZW50cyBVUkkgYXMgdGFibGUKCSAgQXMgYW4gdXNlY2FzZSBvZiBVUkkgZnJhZ21lbnQsIGl0IGNhbiBpbmRpY2F0ZSB0ZW1wb3JhbCBvciBzcGF0aWFsCgkgIGRpbWVuc2lvbiBvZiBhIG1lZGlhIHN0cmVhbS4gVG8gZWFzaWx5IHBhcnNlIGtleS12YWx1ZSBwYWlyLAoJICBuZXdseSBhZGRlZCBnc3RfdXJpX2dldF9tZWRpYV9mcmFnbWVudF90YWJsZSAoKSBBUEkgd2lsbCBwcm92aWRlCgkgIHRoZSB0YWJsZSBvZiBrZXktdmFsdWUgcGFpciBsaWtld2lzZSBVUkkgcXVlcnkuCgkgIFNlZSBhbHNvIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9tZWRpYS1mcmFncy8KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDgzMAoKMjAxNi0xMi0wNiAxNjoyNzoyMyArMDEwMCAgUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdDoKCSAgaGVscGVycy9nc3Q6IEdldCBiYXNoIGNvbXBsZXRpb24gb3B0aW9ucyBmcm9tIGdzdC1sYXVuY2gKCSAgSXQgaXMgbW9yZSBsaWtlbHkgdGhhdCBnc3QtbGF1bmNoIGlzIGluc3RhbGxlZCB0aGFuIGdlcy1sYXVuY2gKCSAgUmVwb3J0ZWQtYnk6IE1hcmlhbm5hIFNtaWR0aCBCdXNjaGxlIDxtc2JAcXRlYy5jb20+CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU3MTQKCjIwMTYtMTItMDYgMTg6MDY6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogdXBkYXRlIGZvciByZW1vdmVkIGRvY3MvZGVzaWduIGRpcmVjdG9yeQoKMjAxNi0xMi0wNSAxODoxNjozNCAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogZG9jcy9NYWtlZmlsZS5hbToKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkqIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDoKCSogZG9jcy9kZXNpZ24vZHJhZnQtbWV0YWRhdGEudHh0OgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1wdXNoLXB1bGwudHh0OgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10YWdyZWFkaW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1NVC1yZWZjb3VudGluZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYWN0aXZhdGlvbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcnBvb2wudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNhcHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtY29udGV4dC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtY29udHJvbGxlci50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtY29udmVudGlvbnMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWR5bmFtaWMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zb3VyY2UudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtdHJhbnNmb3JtLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWZyYW1lc3RlcC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YmluLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RidXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGVsZW1lbnQudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RvYmplY3QudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdHBpcGVsaW5lLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1sYXRlbmN5LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1saXZlLXNvdXJjZS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWVtb3J5LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWV0YS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWluaW9iamVjdC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWlzc2luZy1wbHVnaW5zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByZXJvbGwudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2Jlcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvZ3Jlc3MudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXB1c2gtcHVsbC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1xdWVyeS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcmVsYXRpb25zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zY2hlZHVsaW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWdtZW50cy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2VxbnVtcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3BhcnNlc3RyZWFtcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RhbmRhcmRzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbS1zZWxlY3Rpb24udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbS1zdGF0dXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtdG9jLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC10cmFjaW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgZG9jczogUmVtb3ZlIGRlc2lnbiBkb2MgYXMgdGhleSBoYXZlIGJlZW4gbW92ZWQgdG8gZ3N0LWRvY3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTY2NwoKMjAxNi0xMS0yOSAxNzozNDo0MCAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogUHJvcGVybHkgc3RhcnQgYW5kIGVuZCBkd2ZsIHNlc3Npb25zIHdoZW4gZ2V0dGluZyBzdGFjayB0cmFjZXMKCSAgV2Ugd2VyZSBjcmVhdGluZyBhIG5ldyBzZXNzaW9uIHRvIHJldHJpdmUgZWFjaCBsaW5lIG9mIGEgc3RhY2sgdHJhY2UKCSAgYW5kIHdlIGFyZSBzdXBwb3NlZCB0byBzdGFydCBpdCBvbmNlIGZvciBhIHdob2xlIHN0YWNrIHRyYWNlLgoJICBBbmQgcGFzcyB0aGUgd2hvbGUgZmlsZSB0byBnc3QtaW5kZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1MzY1CgoyMDE2LTEyLTAyIDIyOjQ3OjMyICswMTAwICBNYXJjaW4gS29sbnkgPG1hcmNpbi5rb2xueUBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0OiBzZXQgY2xvY2sgbmFtZSBpbiB0aGUgY29uc3RydWN0b3IKCSAgZ3N0X25ldF9jbGllbnRfY2xvY2tfbmV3KCkgYW5kIGdzdF9udHBfY2xvY2tfbmV3KCkgZGlkbid0IHNldCB0aGUKCSAgIm5hbWUiIHByb3BlcnR5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1NTM4CgoyMDE2LTEyLTA1IDIxOjA5OjUyICswMTAwICBQZXRlciBTZWlkZXJlciA8cHMucmVwb3J0QGdteC5uZXQ+CgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIGdzdGNvbmZpZzogRml4IHVuYWxpZ25lZCBhY2Nlc3Mgc3VwcG9ydCBmb3IgbWljcm9ibGF6ZSBhbmQgeHRlbnNhIGFyY2hpdGVjdHVyZXMKCSAgRml4ZXMgYnVpbGRyb290IGF1dG9idWlsZCBmYWlsdXJlcywgZm9yIGRldGFpbHMgc2VlOgoJICBodHRwOi8vbGlzdHMuYnVzeWJveC5uZXQvcGlwZXJtYWlsL2J1aWxkcm9vdC8yMDE2LURlY2VtYmVyLzE3ODg5NS5odG1sCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU2NjEKCjIwMTYtMTItMDIgMTU6MzA6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2FybS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2hwcGEuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4NncuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGMzMi5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzY0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3Rfc3BhcmMuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSAgbWV0YTogcmVtb3ZlIHVubmVjZXNzYXJ5IHBhZGRpbmcgZm9yIEdzdE1ldGFJbmZvIHN0cnVjdAoJICBUaGlzIHN0cnVjdHVyZSBpcyBhbHdheXMgYWxsb2NhdGVkIGJ5IEdTdHJlYW1lciwgY2FuJ3QgYmUKCSAgc3ViY2xhc3NlZCBvciBleHRlbmRlZCwgYW5kIGlzIG5ldmVyIGFsbG9jYXRlZCBvciB1c2VkIG9uCgkgIHRoZSBzdGFjaywgc28gd2UgZG9uJ3QgbmVlZCBhbnkgcGFkZGluZyBhbmQgY2FuIGV4dGVuZCBpdAoJICBhcyB3ZSBwbGVhc2UuCgoyMDE2LTA2LTI5IDE5OjM2OjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50c19wcml2YXRlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHNfcHJpdmF0ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgZmFrZXNpbmssIGlkZW50aXR5OiBwcmludCBtZXRhcyBhdHRhY2hlZCB0byBidWZmZXIgaW4gc2lsZW50PWZhbHNlIG1vZGUKCjIwMTYtMTItMDUgMTE6MDE6NDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBlbGVtZW50czogSGFuZGxlIEdzdEl0ZXJhdG9yIFJFU1lOQyByZXR1cm4gdmFsdWUgY29ycmVjdGx5IGluIGdzdF9pdGVyYXRvcl9mb3JlYWNoKCkKCjIwMTYtMTItMDQgMTI6MTU6MDkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkgIHRyYWNlcnMvbG9nOiBsb2cgbWVzc2FnZXMgaW4gbWVzc2FnZSBjYXRlZ29yeQoKMjAxNi0xMi0wMyAwODoxOTowOCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIFJFQURNRToKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmOTgwZmQ5IHRvIDM5YWMyZjUKCjIwMTYtMTItMDEgMTg6MjA6MTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogTWFrZSBzdXJlIHRvIHJlc3luYyBpdGVyYXRvcnMgYW5kIGhhbmRsZSBSRVNZTkMgYXQgYWxsIGluIGdzdF9pdGVyYXRvcl9mb3JlYWNoKCkgY2FsbHMKCjIwMTYtMTEtMjkgMTg6MTQ6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IEZpeCBvZmZzZXR0aW5nIG9mIHRpbWVzX3RlbXAgcmVsYXRpdmUgdG8gdGhlIHRpbWVzIGFycmF5CgoyMDE2LTExLTI5IDEwOjM0OjE0IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IFNldCBkZWZhdWx0IGRlYnVnIGxldmVsIHRvIEVSUk9SIHdoZW4gcnVubmluZyBmcm9tIGdpdAoKMjAxNi0xMS0yOCAxOToyODoyNyArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L21lc29uLmJ1aWxkOgoJKiBwbHVnaW5zL2VsZW1lbnRzL21lc29uLmJ1aWxkOgoJKiB0ZXN0cy9jaGVjay9tZXNvbi5idWlsZDoKCSAgbWVzb246IEFkZCBBdXRvdG9vbHMgY2hhbmdlcyB0aGF0IHdlcmVuJ3QgbWlycm9yZWQKCSAgY29tbWl0czoKCSAgYTdkMjgyZDI3MjU2YWQxZDFhNTVhZmMzN2QxZGI3ZjYwYjA0MDA4OQoJICA2ZmRiNGRmMGY4YzhhOWUzOWY3ZjdjYjczYWI2NTMwNmZiMDUxN2Y1CgkgIDFhY2VlYmQ2N2YwMTYxODA2ZGMzYjRiNjg0ODhkNTk5MjkwZjI4M2UKCjIwMTYtMTEtMjggMTQ6MTE6MjcgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgY2hlY2svcGlwZWxpbmU6IE1ha2UgZmFpbHVyZSBtZXNzYWdlIG1vcmUgaW5mb3JtYXRpdmUKCSAgVGhpcyB3aWxsIHByb3ZpZGUgbWF5YmUgYSBiaXQgbW9yZSBpbnNpZ2h0IHRoZSBuZXh0IHRpbWUgaXQgZmFpbHMKCjIwMTYtMTEtMjggMTQ6MDA6MTggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIGNoZWNrL21lbW9yeTogRG9uJ3QgbGVhayB0aGUgY3VzdG9tIGFsbG9jYXRvcgoKMjAxNi0xMS0yOCAxMzo0ODoxNiArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3R1dGlsczogRml4IGEgcGFkIGxlYWsKCSAgV2hlbiByZXF1ZXN0aW5nIGEgcGFkIGZyb20gYSB0ZW1wbGF0ZSBhbmQgaXQncyBhbHJlYWR5IGxpbmtlZCwgdGhpcwoJICBtZWFucyBpdCB3YXMgYSBzdGF0aWMgcGFkLiBTaW5jZSB3ZSBvbmx5IHdhbnQgdG8gcmV0dXJuIGFuICphdmFpbGFibGUqCgkgIHBhZCwgd2UgbXVzdCByZXR1cm4gTlVMTCAuLi4gYnV0IHdlIG11c3QgYWxzbyByZW1vdmUgdGhlIHJlZmVyZW5jZQoJICB3ZSBnb3QgZnJvbSBnZXR0aW5nIHRoYXQgc3RhdGljIHBhZC4KCSAgVGhlICJObyBuZWVkIHRvIHVucmVmIiBtZXNzYWdlICh3aGljaCB3YXNuJ3QgdHJ1ZSBmb3IgcXVpdGUgc29tZSB0aW1lKQoJICBkYXRlcyBiYWNrIGZyb20gdGhlIHZlcnkgdmVyeSB2ZXJ5IGZpcnN0IGNvbW1pdCBpbnRyb2R1Y2luZyB0aGUgMC4xMAoJICBmZWF0dXJlcy4KCjIwMTYtMTEtMjggMDk6NTA6NDAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSAgY2hlY2s6IEZpeCBsZWFrIGluIHF1ZXVlMiB0ZXN0CgoyMDE2LTExLTIzIDE1OjQxOjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGNsb2NrLWxpbnJlZy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1dGlsczogRXhwb3J0IGxpbmVhciByZWdyZXNzaW9uIGNhbGN1bGF0aW9uIGFzIHB1YmxpYyBmdW5jdGlvbgoJICBJdCBpcyB1c2VmdWwgb3V0c2lkZSB0aGUgR3N0Q2xvY2sgY29kZSB0b28uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzQ5MTYKCjIwMTYtMTEtMjggMTE6NTY6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiAuZ2l0aWdub3JlOgoJKiBNYWtlZmlsZS5hbToKCSogY29uZmlndXJlLmFjOgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgUmVtb3ZlIGdlbmVyYXRlZCBnc3RyZWFtZXIuc3BlYyBmaWxlCgkgIExpa2VseSBleHRyZW1lbHkgYml0cm90dGVuLCBhbmQgd2Ugc2hvdWxkIG5vdCBzaGlwIHRoaXMgYW55d2F5LgoKMjAxNi0xMS0yOCAxMTowOTowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5pbnRlcmZhY2VzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSAgZG9jczogYWRkIGRhdGF1cmlzcmMgdG8gZG9jcyBhbmQgdXBkYXRlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzQ1MjcKCjIwMTYtMTEtMjggMTE6MTA6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkgIHRlc3RzOiBmaWxlc3JjOiBpbml0IGFuZCBjbGVhciBHQ29uZCBhbmQgbXV0ZXgKCSAgTWlnaHQgb3RoZXJ3aXNlIGxlYWsgb24gbm9uLUxpbnV4IHN5c3RlbXMuCgoyMDE2LTExLTI4IDExOjA4OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2RhdGF1cmlzcmMuYzoKCSAgdGVzdHM6IHJld3JpdGUgYW5kIGVuYWJsZSBkYXRhdXJpc3JjIHRlc3QKCSAgQ2FuJ3QgdXNlIHBsYXliaW4gZm9yIGNvcmUgdW5pdCB0ZXN0cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDUyNwoKMjAxNi0xMS0yOCAxMTowNzoyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgIGVsZW1lbnRzOiBhZGQgZGF0YXVyaXNyYyB0byBidWlsZAoJICBNb3ZlZCBmcm9tIC1iYWQuCgoyMDE2LTExLTI4IDEwOjQyOjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmM6CgkgIGRhdGF1cmlzcmM6IGZpeCBzdHJpbmcgbGVhayBpbiBwcm9wZXJ0eSBnZXR0ZXIKCjIwMTYtMTEtMjggMTE6MTg6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJICBNb3ZlIGRhdGF1cmlzcmMgZWxlbWVudCBmcm9tIC1iYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDUyNwoKMjAxNi0xMS0yOCAxMjoyODoyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IEVuc3VyZSB0aGF0IHRoZSAiZGVidWciIGZpZWxkIG9mIGVycm9yL3dhcm5pbmcvaW5mbyBtZXNzYWdlcyBpcyB2YWxpZCBVVEYtOAoJICBUaGUgY2FsbGVyIG1pZ2h0IHBhc3MgYXJiaXRyYXJ5IGRhdGEgaGVyZSB0aGF0IGNhdXNlZCB0aGUgZXJyb3IsIGFuZAoJICB0cnlpbmcgdG8gc2V0IGludmFsaWQgVVRGLTggaW4gYSBHc3RTdHJ1Y3R1cmUgY2F1c2VzIGl0IHRvIGJlIG5vdCBzZXQgYXQKCSAgYWxsLiBMYXRlciB3aGVuIHRyeWluZyB0byBwYXJzZSBpdCwgdGhlIGZpZWxkIHdpbGwgbm90IGV4aXN0IGFuZCB0aGUKCSAgcmV0dXJuIHZhbHVlIHdpbGwgcG9pbnQgdG8gaW52YWxpZCBtZW1vcnkuIFByZXZlbnQgdGhpcyBieSBzdG9yaW5nIE5VTEwKCSAgaW5zdGVhZC4KCSAgQWxzbyBwcmludCBhIGdfd2FybmluZygpLCB0aGUgY2FsbGVyIHNob3VsZCBuZXZlciBldmVyIGRvIHRoaXMgdG8gYmVnaW4KCSAgd2l0aC4KCjIwMTYtMTEtMjYgMTE6MjA6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiAuZ2l0bW9kdWxlczoKCSAgY29tbW9uOiB1c2UgaHR0cHMgcHJvdG9jb2wgZm9yIGNvbW1vbiBzdWJtb2R1bGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTExMAoKMjAxNi0xMS0yNiAxMTowNjoyMCArMDAwMCAgSGFubm8gQm9lY2sgPGhhbm5vQGhib2Vjay5kZT4KCgkqIHNjcmlwdHMvY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwLnNoOgoJICBzY3JpcHRzOiBjcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXA6IHVzZSBodHRwcyBwcm90b2NvbCB0byBjbG9uZSByZXBvcwoJICBUaGUgZ2l0Oi8vIHByb3RvY29sIGlzIHByb2JsZW1hdGljIGZyb20gYSBzZWN1cml0eSBwZXJzcGVjdGl2ZSwgYXMKCSAgaXQgcHJvdmlkZXMgbm8gYXV0aGVudGljaXR5IG9mIGRhdGEuIGh0dHBzOi8vIGFsc28gd29ya3MgYmV0dGVyIGluCgkgIGVudmlyb25tZW50cyB3aXRoIHJlc3RyaWN0ZWQgbmV0d29yayBjb25uZWN0aXZpdHkuCgkgIEFsc28gYWRkIENMT05FX09QVFMgdG8gZG8gc2hhbGxvdyBjaGVja291dHMgbW9yZSBlYXNpbHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzUxMTAKCjIwMTYtMTEtMTUgMDM6MDM6MjIgKzA4MDAgIFRpbmctV2VpIExhbiA8bGFudHdAc3JjLmdub21lLm9yZz4KCgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogU3VwcG9ydCBleGVjaW5mby5oIG9uIEZyZWVCU0QgYnkgdXNpbmcgLWxleGVjaW5mbwoJICBGcmVlQlNEIHN1cHBvcnRzIGV4ZWNpbmZvLmggYW5kIGJhY2t0cmFjZSogZnVuY3Rpb25zLCBidXQKCSAgdXNpbmcgdGhlbSByZXF1aXJlcyBsaW5raW5nIHdpdGggLWxleGVjaW5mby4KCSAgUmVxdWlyZXMgc3VmZmljaWVudGx5LW5ldyBtZXNvbiB3aXRoICMxMDUzIGZpeGVkIChwb3N0LTAuMzYpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc0NDI0CgoyMDE2LTExLTIzIDE4OjU2OjIwICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkgIHRvb2xzOiBSZW1vdmUgZmlsZXMgdG8gYmUgY2xlYW5lZAoJICBtYW5wYWdlcyBhcmUgbm8gbG9uZ2VyIGF1dG8tZ2VuZXJhdGVkCgkgIGNvdi1yZWxhdGVkIGZpbGVzIHNob3VsZCBub3QgYmUgdGhlcmUgKGlmIG5lZWRlZCB3ZSBjb3VsZCB1c2UgZ2l0aWdub3JlKQoKMjAxNi0xMS0wNCAxODo1NDoxMCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBiYXNlc2luazogRG9jdW1lbnQgdGhlIGludGVyYWN0aW9uIGJldHdlZW4gdW5sb2NrKCkgYW5kIHdhaXRfcHJlcm9sbCgpCgkgIFRoaXMgd2FzIHRvdGFsbHkgbm9uLW9idmlvdXMsIHRoZSBraW5kIG9mIGJpZyBwcm9ibGVtIGlzIHRoYXQgc3ViY2xhc3NlcyBtdXN0CgkgIGJlIGFibGUgdG8gdW5ibG9jayB0aGVpciBzdHJlYW1pbmcgdGhyZWFkIGFuZCBjb250aW51ZSBleGFjdGx5IHdoZXJlIHRoZXkgbGVmdCBvZmYKCSAgb24gdW5wYXVzZSEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MzkxMgoKMjAxNi0xMS0wNCAxODo0Njo0NSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHNfcHJpdmF0ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzX3ByaXZhdGUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBmZHNpbms6IEJsb2NrIGluIHByZXJvbGxfd2FpdCBvbiB1bmxvY2sKCSAgVGhlIGNvcnJlY3QgYmVoYXZpb3VyIG9mIGFueXRoaW5nIHN0dWNrIGluIHRoZSAtPnJlbmRlcigpIGZ1bmN0aW9uCgkgIGJldHdlZW4gLT51bmxvY2soKSBhbmQgLT51bmxvY2tfc3RvcCgpIGlzIHRvIGNhbGwKCSAgZ3N0X2Jhc2Vfc2lua193YWl0X3ByZXJvbGwoKSBhbmQgb25seSByZXR1cm4gYW4gZXJyb3IgaWYgdGhpcyByZXR1cm5zIGFuCgkgIGVycm9yLCBvdGhlcndpc2UsIGl0IG11c3QgY29udGludWUgd2hlcmUgaXQgbGVmdCBvZmYhCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM5MTIKCjIwMTYtMTEtMjMgMTg6NTc6MTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBEb24ndCBpbmNyZW1lbnQgTlVMTCBwb2ludGVycwoJICBUcml2aWFsIHdvcmthcm91bmQgZm9yIGNvdmVyaXR5IGZhbHNlIHdhcm5pbmcuCgkgIENJRCAxMzk0NDg4LCAxMzk0NDg3LgoKMjAxNi0xMS0yMyAwOTo1ODo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzLy5naXRpZ25vcmU6CgkqIHRvb2xzL01ha2VmaWxlLmFtOgoJICB0b29sczogZml4IGRpc3RjaGVjayBhbmQgLmdpdGlnbm9yZQoKMjAxNi0xMS0wMyAxMDozMDo1MyArMDEwMCAgQW50b25pbyBPc3BpdGUgPGFvMkBhbzIuaXQ+CgoJKiB0b29scy9tZXNvbi5idWlsZDoKCSAgbWVzb246IHRvb2xzOiBpbnN0YWxsIHRoZSBtYW4gcGFnZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MzkxNwoKMjAxNi0xMS0wMyAxMDozMDo1MyArMDEwMCAgQW50b25pbyBPc3BpdGUgPGFvMkBhbzIuaXQ+CgoJKiB0b29scy8uZ2l0aWdub3JlOgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSogdG9vbHMvZ3N0LWluc3BlY3QtMS4wLjE6CgkqIHRvb2xzL2dzdC1sYXVuY2gtMS4wLjE6CgkqIHRvb2xzL2dzdC10eXBlZmluZC0xLjAuMToKCSAgdG9vbHM6IHNoaXAgdGhlIGZpbmFsIG1hbiBwYWdlcyBkaXJlY3RseSwgbm8gbW9yZSBtYW4gcGFnZXMgdGVtcGxhdGVzCgkgIERvbid0IHVzZSB0ZW1wbGF0ZXMgZm9yIHRoZSBtYW4gcGFnZXMsIHRoZSBBUEkgdmVyc2lvbiBjaGFuZ2UgaXMgYSByYXJlCgkgIGV2ZW50LCBzbyBpdCdzIG5vdCByZWFsbHkgd29ydGgga2VlcGluZyBpbiBwbGFjZSB0aGUgInNlZCIgYm9pbGVycGxhdGUKCSAgdG8gaGF2ZSBpdCBzZXQgYXQgYnVpbGQgdGltZS4KCSAgU2hpcHBpbmcgdGhlIGZpbmFsIG1hbiBwYWdlcyBkaXJlY3RseSBhbHNvIG1ha2VzIGl0IGVhc2VyIHRvIGluc3RhbGwgdGhlCgkgIG1hbiBwYWdlcyB3aXRoIG1lc29uIChpbiBhIGZ1dHVyZSBjb21taXQpLgoJICBOb3RlIHRoYXQgbm93IGFsbCB0aGUgb2NjdXJyZW5jZXMgb2YgdGhlIHByb2dyYW1zIG5hbWVzIGhhdmUgdGhlIEFQSQoJICB2ZXJzaW9uIGFzIGEgc3VmZml4LgoJICBUcmFkaXRpb25hbGx5IHRoZSBleGFtcGxlIGNvbW1hbmQgbGluZXMgbG9va2VkIGxpa2U6CgkgIGdzdC1sYXVuY2ggLi4uCgkgIE5vdyB0aGV5IGxvb2sgbGlrZToKCSAgZ3N0LWxhdW5jaC0xLjAgLi4uCgkgIFRoaXMgcmVmbGVjdHMgdGhlIGFjdHVhbCBwcm9ncmFtcyBuYW1lcyBhbmQgbWFrZXMgaXQgZWFzaWVyIHRvIGNvcHkgYW5kCgkgIHBhc3RlIHRoZSBleGFtcGxlIGNvbW1hbmRzLgoJICBBbHNvLCB0aGUgLmdpdGlnbm9yZSBmaWxlIGlzIGFkanVzdGVkIG5vdCB0byBpZ25vcmUgdGhlIGZpbmFsIG1hbiBwYWdlcwoJICBhbnltb3JlLgoJICBZb3UgbWF5IG5lZWQgdG8gY2xlYW4geW91ciBzcmMvYnVpbGQgZGlyZWN0b3J5IGJlZm9yZSBwdWxsaW5nIGluIHRoaXMKCSAgcGF0Y2guCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM5MTcKCjIwMTYtMTEtMTggMTM6MDk6MjEgKzExMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0cHJveHljb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHByb3h5Y29udHJvbGJpbmRpbmcuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9tZXNvbi5idWlsZDoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgY29udHJvbGxlcnM6IGFkZCBuZXcgcHJveHkgY29udHJvbCBiaW5kaW5nCgkgIEFsbG93cyBwcm94eWluZyB0aGUgY29udHJvbCBpbnRlcmZhY2UgZnJvbSBvbmUgcHJvcGVydHkgb24gb25lIEdzdE9iamVjdAoJICB0byBhbm90aGVyIHByb3BlcnR5IChvZiB0aGUgc2FtZSB0eXBlKSBpbiBhbm90aGVyIEdzdE9iamVjdC4KCSAgRS5nLiBpbiBhIHBhcmVudC1jaGlsZCByZWxhdGlvbnNoaXAsIG9uZSBtYXkgbmVlZCB0bwoJICBnc3Rfb2JqZWN0X3N5bmNfdmFsdWVzKCkgb24gdGhlIGNoaWxkIGFuZCBoYXZlIGEgYmluZGluZyAoc2V0IGVsc2V3aGVyZSkKCSAgb24gdGhlIHBhcmVudCB1cGRhdGUgdGhlIHZhbHVlLgoJICBOb3RlOiB0aGF0IHRoaXMgZG9lc24ndCBzb2x2ZSBHT2JqZWN0IHByb3BlcnR5IGZvcndhcmRpbmcgYW5kIG11c3QgYmUKCSAgdGFrZW4gY2FyZSBvZiBieSB0aGUgaW1wbGVtZW50YXRpb24gbWFudWFsbHkgb3IgdXNpbmcgR0JpbmRpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzQ2NTcKCjIwMTYtMTAtMDcgMTE6Mzk6MjYgKzAxMDAgIEp1bGllbiBJc29yY2UgPGouaXNvcmNlQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogbG9nIHdpdGggR1NUX0lORk8gaW5zdGVhZCBHU1RfRVJST1Igd2hlbiBzdWJjbGFzcyBtYXAgZmFpbGVkLgoJICBBZGQgdW5pdCB0ZXN0IHRvIGVuc3VyZSB0aGF0LgoJICBJdCBjYW4gYmUgYSBub3JtYWwgZXhlY3V0aW9uIHBhdGggdG8gZG8gc29tZSBtYXAgdHJpYWxzIGFuZCB0aGVyZSBpcwoJICBubyBuZWVkIHRvIHdvcnJ5IHRoZSB1c2VyIGluIHRoYXQgY2FzZS4KCSAgVGhlIGFwcGxpY2F0aW9uIGhhcyB0byBjaGVjayB0aGUgcmV0dXJuIHZhbHVlIG9mIGdzdF9tZW1vcnlfbWFwLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1NjAwCgoyMDE2LTExLTE3IDE3OjM3OjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEVuc3VyZSB0byBzZXQgdGhlIFJFQ09ORklHVVJFIGZsYWcgYWdhaW4gaWYgcmVjb25maWd1cmF0aW9uIGZhaWxlZAoJICBJdCBtaWdodCd2ZSBmYWlsZWQganVzdCBiZWNhdXNlIG9mIGZsdXNoaW5nIG9yIG90aGVyIHRoaW5ncywgYW5kIHdlCgkgIHNob3VsZCByZXRyeSBhZ2FpbiBvbiB0aGUgbmV4dCBwb3NzaWJpbGl0eSBpZiBzb21ldGhpbmcgZXZlciBjYWxscyBpbgoJICBoZXJlIGFnYWluLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc0NjIzCgoyMDE2LTExLTE3IDE2OjM5OjUyIC0wODAwICBTY290dCBEIFBoaWxsaXBzIDxzY290dC5kLnBoaWxsaXBzQGludGVsLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogYWRkX2dsb2JhbF9hcmd1bWVudHMgLT4gYWRkX3Byb2plY3RfYXJndW1lbnRzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzQ2NTYKCjIwMTYtMTEtMTYgMjM6MTk6MjggKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IE1ha2Ugc3VyZSBub3QtbGlua2VkIHN0cmVhbXMgZ2V0IHdva2VuIHVwCgkgIFdoZW4gcnVubmluZyBpbiBzeW5jLWJ5LXJ1bm5pbmctdGltZSBtb2RlLCBwYWQgZ3JvdXBzCgkgIHRoYXQgaGF2ZSBleGFjdGx5IDEgcGFkIGFuZCBpdCdzIG5vdC1saW5rZWQgbWlnaHQgbmV2ZXIKCSAgd2FrZSB1cCBhZnRlciBjb21wdXRpbmcgYSBoaWdoIHRpbWUsIGFzIHRoZSBwZXItcGFkLWdyb3VwCgkgIGhpZ2ggdGltZSB3YXMgb25seSByZWNvbXB1dGVkIHdoZW4gYSBwYWQgaW4gdGhlIGdyb3VwCgkgIGFkdmFuY2VzLgoJICBXYWtlIHRob3NlIHVwIHVzaW5nIHRoZSBnbG9iYWwgbXVsdGlxdWV1ZSBoaWdoLXRpbWUgYWNyb3NzCgkgIGFsbCBvdGhlciBncm91cHMgaW5zdGVhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDMyMgoKMjAxNi0xMS0xNiAxMDo1NToyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIGRvY3M6IG1pc2MgZml4ZXMKCjIwMTYtMTEtMTYgMTA6NTE6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IHVzZSB0ZW1wIHZhciBpbiBmYWxsYmFjayBHU1RfV1JJVEVfKigpIG1hY3JvcwoJICBUbyBtYWtlIHN1cmUgdGhlIHZhbHVlIGlzIG9ubHkgZXhwYW5kZWQvdXNlZCBvbmNlLCBpbiBjYXNlCgkgIHRoZXJlIGFyZSBzaWRlIGVmZmVjdHMgdG8gaXQsIGFuZCB0byBhdm9pZCBjYWxjdWxhdGluZyBpdAoJICBvciBsb29raW5nIGl0IHVwIG11bHRpcGxlIHRpbWVzIGlmIHRoZXJlIGlzIGEgY2FsY3VsYXRpb24KCSAgb3IgbG9va3VwIGludm9sdmVkLgoKMjAxNi0xMS0xNiAwMDozMDoyNiArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCBwcmV2aW91cyBjb21taXQKCSAgQ2hlY2sgdGhlIGNvcnJlY3Qgc2VnbWVudCBmb3JtYXQgdmFsdWUuCgkgIHBhcnNlLT5zZWdtZW50LmZvcm1hdCBpcyB0aGUgZm9ybWF0IHdlJ3JlIG91dHB1dHRpbmcgaW4sCgkgIG5vdCB0aGUgdXBzdHJlYW0gZm9ybWF0LiBVc2UgcGFyc2UtPnByaXYtPnVwc3RyZWFtX2Zvcm1hdCBpbnN0ZWFkLAoJICBhbmQgbWFrZSBzdXJlIGl0J3Mgc2V0IGluIHB1bGwgbW9kZS4KCjIwMTYtMTEtMTUgMjM6NTE6MDYgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBSZXN0cmljdCBxdWVyeS9jb252ZXJ0IHJlc3BvbnNlcyB3aGVuIGRlbXV4aW5nCgkgIElmIHRoZSBwYXJzZXIgaXMgbm90IHBhcnNpbmcgYSByYXcgZWxlbWVudGFyeSBzdHJlYW0sIHJlc3RyaWN0CgkgIHRoZSBwb3NpdGlvbiwgZHVyYXRpb24gYW5kIGNvbnZlcnNpb24gcXVlcnkgcmVwbGllcyB0bwoJICB0aGluZ3Mgd2UgY2FuIHNlbnNpYmx5IGFuc3dlciBhYm91dCAtIGVzcGVjaWFsbHkgZG9uJ3QgZG8KCSAgcmFuZG9tIGNvbnZlcnNpb25zIHRvL2Zyb20gYnl0ZXMuCgoyMDE2LTExLTE1IDIyOjM5OjQzICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBxdWV1ZXM6IERvbid0IHJldHVybiBuZWdhdGl2ZSBwb3NpdGlvbiBxdWVyaWVzLgoJICBXaGVuIHN1YnRyYWN0aW5nIHF1ZXVlZCBkYXRhIHNpemVzIGZyb20gdXBzdHJlYW0gcXVlcmllcwoJICBpbiBxdWV1ZSwgcXVldWUyLCBkb3dubG9hZGJ1ZmZlciBhbmQgdHlwZWZpbmQsIGNsYW1wIHRoZQoJICByZXN1bHQgdG8gbm90IGdvIG5lZ2F0aXZlLCBpbiBjYXNlIHVwc3RyZWFtIHJldHVybmVkCgkgIGEgbm9uc2Vuc2UgdmFsdWUgdGhhdCdzIHRvbyBzbWFsbCAoYXMgY291bGQgaGFwcGVuIGlmCgkgIHVwc3RyZWFtIGlzIGVzdGltYXRpbmcsIG9yIGp1c3QgYnJva2VuKQoKMjAxNi0xMS0xNCAxMToyNzowNSAtMDgwMCAgU2NvdHQgRCBQaGlsbGlwcyA8c2NvdHQuZC5waGlsbGlwc0BpbnRlbC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3Rwcm90ZWN0aW9uLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y29udHJvbG1lc3NhZ2VtZXRhLmM6CgkgIENhc3QgYXdheSBjb25zdCBmcm9tIEdzdE1ldGFJbmZvIGluICpfZ2V0X21ldGFfaW5mbygpIGZ1bmN0aW9ucwoJICBNU1ZDIHdhcm5zIGFib3V0IHRoZSBjb25zdCBpbiB0aGUgaW1wbGljaXQgYXJndW1lbnQgY29udmVyc2lvbiBpbiB0aGUKCSAgY2FsbHMgdG8gZ19vbmNlX2luaXRfe2VudGVyLGxlYXZlfS4gSXQncyBPSyBzbyBleHBsaWNpdGx5IGNhc3QgaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzQyOTMKCjIwMTYtMTEtMTQgMTE6MzI6NTEgLTA4MDAgIFNjb3R0IEQgUGhpbGxpcHMgPHNjb3R0LmQucGhpbGxpcHNAaW50ZWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICB0eXBlZmluZGhlbHBlcjogVXBkYXRlIHByb3RvdHlwZSBvZiBoZWxwZXJfZmluZF9zdWdnZXN0KCkKCSAgZm9yd2FyZCBkZWNsYXJhdGlvbiBwcm90b3R5cGUgaXMgdXBkYXRlZCB0byBtYXRjaCB0aGUgY2hhbmdlIGluOgoJICA1YTcyYzIzIENoYW5nZSBzb21lIHR5cGVzIHRvIG1hdGNoIHRoZWlyIHByb3RvdHlwZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDI5MwoKMjAxNi0xMS0xNCAyMToyODoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIE1ha2VmaWxlLmFtOgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL01BTklGRVNUOgoJKiB3aW4zMi9SRUFETUUudHh0OgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIHdpbjMyOiByZW1vdmUgY29waWVzIG9mIGdlbmVyYXRlZCBoZWFkZXJzCgoyMDE2LTExLTE0IDIxOjE4OjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL01ha2VmaWxlLmFtOgoJKiBkb2NzL2h0bWxpbnN0YWxsLm1hazoKCSogZG9jcy9pbWFnZS1lcHM6CgkqIGRvY3MvaW1hZ2UtcGRmOgoJKiBkb2NzL2ltYWdlLXBuZzoKCSogZG9jcy9tYW51YWxzLm1hazoKCSogZG9jcy9zbGlkZXMvTWFrZWZpbGUuYW06CgkqIGRvY3Mvc2xpZGVzL1JFQURNRToKCSogZG9jcy9zbGlkZXMvYWJzdHJhY3Q6CgkqIGRvY3Mvc2xpZGVzL2Fic3RyYWN0LnNhdmU6CgkqIGRvY3Mvc2xpZGVzL291dGxpbmU6CgkqIGRvY3Mvc2xpZGVzL3NsaWRlczoKCSogZG9jcy91cmwuZW50aXRpZXM6CgkqIGRvY3MveHNsL01ha2VmaWxlLmFtOgoJKiBkb2NzL3hzbC9hZG1vbi54c2w6CgkqIGRvY3MveHNsL2Nzcy54c2w6CgkqIGRvY3MveHNsL2ZpbGVleHQueHNsOgoJKiBkb2NzL3hzbC9mby54c2w6CgkqIGRvY3MveHNsL2h0bWwueHNsOgoJKiBkb2NzL3hzbC9rZXljb21iby54c2w6CgkqIGRvY3MveHNsL3VsaW5rLnhzbDoKCSAgZG9jczogcmVtb3ZlIG1vcmUgZG9jYm9vayBidWlsZCBjcnVmdCB0aGF0J3Mgbm8gbG9uZ2VyIG5lZWRlZAoKMjAxNi0xMS0xNCAyMToyOTo0MyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvUkVBRE1FOgoJICBkb2NzL1JFQURNRTogcmVtb3ZlIG1vcmUgb3V0ZGF0ZWQgcGllY2VzIG9mIGluZm8vYWR2aWNlCgoyMDE2LTEwLTIwIDIyOjMyOjUwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC10cmFjaW5nLnR4dDoKCSogc2NyaXB0cy9nc3QtcGxvdC10cmFjZXMuc2g6CgkgIHNjcmlwdHMvZ3N0LXBsb3QtdHJhY2VzLnNoOiBtYWtlIGxvZyBwYXJzaW5nIGEgYml0IG1vcmUgc29saWQKCSAgVXNlIGdyZXAgLW8gdG8gZ3JhYiB0aGUgbG9nIG1lc3NhZ2Ugb25seS4gVGhpcyBtYWtlcyBpdCB3b3JrIHdpdGggY29sb3JlZCBsb2cKCSAgZmlsZXMgdG9vLiBQcmVmaWx0ZXIgdGhlIGxvZyB0byBub3QgY2F0Y2ggdHJhY2VyIGNsYXNzZXMuCgkgIFVwZGF0ZSB0aGUgY29tbWFuZGxpbmUgZm9yIHRoZSBzY3JpcHQgaW4gdGhlIGRvY3MuCgoyMDE2LTEwLTIwIDE1OjM4OjQ2IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9wcmludGYvbWVzb24uYnVpbGQ6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL21lc29uLmJ1aWxkOgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IHJlcXVpcmUgbWVzb24gMC4zNiBhbmQgdXNlIG5ldyBgcGljYCBhcmcgb24gc3RhdGljIGxpYnMKCSAgUmVtb3ZlcyBhIG1lc29uIHdhcm5pbmcgYW5kIHNvbWUgc3BlY2lhbCBjYXNpbmcgd2UgaGFkLgoKMjAxNi0xMS0xMSAxMDozMDo0NCAtMDgwMCAgU2NvdHQgRCBQaGlsbGlwcyA8c2NvdHQuZC5waGlsbGlwc0BpbnRlbC5jb20+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHRhc2suYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICBDaGFuZ2Ugc29tZSB0eXBlcyB0byBtYXRjaCB0aGVpciBwcm90b3R5cGVzCgkgIFBhcnRpY3VsYXJseSBub3RlIHRoYXQgdGhlIHVuZGVybHlpbmcgaW50ZWdlciB0eXBlIG9mIHRoZSBlbnVtCgkgIEdzdFR5cGVGaW5kUHJvYmFiaWxpdHkgaXMgaW1wbGVtZW50YXRpb24gZGVwZW5kZW50IGFuZCBtYXkgbm90IG1hdGNoCgkgIGd1aW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc0MjkzCgoyMDE2LTExLTE0IDE4OjA0OjI4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSBmb3IgbmV3IHRyYW5zbGF0YWJsZSBzdHJpbmdzCgoyMDE2LTExLTE0IDE3OjQ2OjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogTWFrZWZpbGUuYW06CgkqIGF1dG9nZW4uc2g6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9NYWtlZmlsZS5hbToKCSogZG9jcy9SRUFETUU6CgkqIGRvY3MvZmFxLy5naXRpZ25vcmU6CgkqIGRvY3MvZmFxL01ha2VmaWxlLmFtOgoJKiBkb2NzL2ZhcS9iYXNlLmNzczoKCSogZG9jcy9mYXEvZGVwZW5kZW5jaWVzLnhtbDoKCSogZG9jcy9mYXEvZGV2ZWxvcGluZy54bWw6CgkqIGRvY3MvZmFxL2ZhcS54bWw6CgkqIGRvY3MvZmFxL2dlbmVyYWwueG1sOgoJKiBkb2NzL2ZhcS9nZXR0aW5nLnhtbDoKCSogZG9jcy9mYXEvZ2l0LnhtbDoKCSogZG9jcy9mYXEvbGVnYWwueG1sOgoJKiBkb2NzL2ZhcS9zdGFydC54bWw6CgkqIGRvY3MvZmFxL3Ryb3VibGVzaG9vdGluZy54bWw6CgkqIGRvY3MvZmFxL3VzaW5nLnhtbDoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGRvY3M6IHJlbW92ZSBGQVEgd2hpY2ggd2FzIG1vdmVkIGludG8gZ3N0LWRvY3MgbW9kdWxlCgoyMDE1LTA0LTI5IDEyOjM0OjQ5ICswMjAwICBOaWNvbGEgTXVyaW5vIDxuaWNvbGEubXVyaW5vQGdtYWlsLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCBHSU9fRVhUUkFfTU9EVUxFUwoJICBJbiBjYXNlIGdsaWIgaXMgaW5zdGFsbGVkIGludG8gbG9jYWwgcHJlZml4IGRpci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODYyNgoKMjAxNi0xMS0xMiAxMjozNjowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsczogZmFzdGVyIEdTVF9XUklURV8qIG1hY3JvcyBpZiB1bmFsaWduZWQgYWNjZXNzIGlzIHBvc3NpYmxlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01OTk1NDYKCjIwMTYtMTEtMTEgMjA6MzE6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogYmV0dGVyIGVycm9yIG1lc3NhZ2Ugd2hlbiBsaW5raW5nIHR3byBlbGVtZW50cyB3aXRoIGNhcHNmaWx0ZXIgZmFpbHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDU1MAoKMjAxNi0xMS0xMSAxNjoxMToxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgZ3N0X3ByaW50KCksIGdzdF9wcmludGxuKCksIGdzdF9wcmludGVycigpLCBnc3RfcHJpbnRlcnJsbigpCgkgIFVzZWZ1bCBmb3IgZGVidWdnaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY2NDcwCgoyMDE2LTExLTExIDEwOjIzOjE3IC0wODAwICBTY290dCBEIFBoaWxsaXBzIDxzY290dC5kLnBoaWxsaXBzQGludGVsLmNvbT4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IHJlbW92ZSBgcmV0dXJuIHZvaWRgIGluIGdzdF90YWdfcmVnaXN0ZXIKCSAgTVNWQyB3YXJucyBvbiB0aGlzIGFuZCB0aGUgZG9jdW1lbnRhdGlvbiBhYm91dCB0aGUgd2FybmluZyBzYXlzOgoJICA+IFRoZSBjb21waWxlciBhc3N1bWVzIHRoZSBmdW5jdGlvbiByZXR1cm5zIGEgdmFsdWUgb2YgdHlwZSBpbnQKCSAgd2hpY2ggaXMgYSBsaXR0bGUgc2NhcnksIHNvIGxldHMganVzdCByZW1vdmUgdGhlIHVubmVjZXNzYXJ5ICdyZXR1cm4nCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzQyOTMKCjIwMTYtMDUtMDkgMTU6MzI6NDMgKzAyMDAgIE5pY29sYXMgSHVldCA8bmljb2xhcy5odWV0QHBhcnJvdC5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgdGVzdHM6IGFkZCB1bml0IHRlc3QgZm9yIGdzdF9hZGFwdGVyX3ByZXZfcHRzX2F0X29mZnNldCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU2NjIKCjIwMTYtMDQtMjcgMTA6NTc6MjkgKzAyMDAgIE5pY29sYXMgSHVldCA8bmljb2xhcy5odWV0QHBhcnJvdC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogZml4IGRpc3RhbmNlIHdoZW4gZ2V0dGluZyBwcmV2IHB0cy9kdHMgYXQgb2Zmc2V0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU2NjIKCjIwMTYtMTAtMjYgMjI6Mzg6MDcgLTA3MDAgIFNjb3R0IEQgUGhpbGxpcHMgPHNjb3R0LmQucGhpbGxpcHNAaW50ZWwuY29tPgoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBkb24ndCBhZGRfZ2xvYmFsX2FyZ3VtZW50cyB3aGVuIGJlaW5nIGJ1aWx0IGFzIGEgc3VicHJvamVjdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczNTY4CgoyMDE2LTA3LTIxIDEwOjUyOjMwICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBmaXggcG9vbCBsZWFrIHdoZW4gZWFybHkgcmV0dXJuaW5nIGluIGRlY2lkZV9hbGxvY2F0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjkwMjMKCjIwMTYtMDctMjcgMTM6Mzk6NTAgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogYWRkIEdzdFN0cmVhbSBhbmQgR3N0U3RyZWFtQ29sbGVjdGlvbiBzdXBwb3J0IHRvIGdzdF9kZWJ1Z19wcmludF9vYmplY3QoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY5MjIwCgoyMDE2LTA4LTEyIDA4OjAzOjQxICswOTAwICBTZXVuZ2hhIFlhbmcgPHNoLnlhbmdAbGdlLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBTdXBwb3J0IFBST1RFQ1RJT04gZXZlbnQgZnJvbSBhcHBsaWNhdGlvbgoJICBBcHBsaWNhdGlvbiBtYXkgd2FudCB0byBzZW5kIFBST1RFQ1RJT04gZXZlbnQgdG8gdGhlIHNyYyBlbGVtZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY5Nzc1CgoyMDE2LTExLTAzIDEzOjM0OjE4ICswMTAwICBBbnRvbmlvIE9zcGl0ZSA8YW8yQGFvMi5pdD4KCgkqIHRvb2xzL21lc29uLmJ1aWxkOgoJICBtZXNvbjogdG9vbHM6IGdlbmVyYXRlIHRoZSB0YXJnZXRzIGR5bmFtaWNhbGx5CgkgIFRoZSB0aHJlZSB0YXJnZXRzIGFyZSB0aGUgc2FtZSBleGNlcHQgZm9yIGlucHV0IGFuZCBvdXRwdXQKCSAgZmlsZXMsIHVzZSBhIGxvb3AgYW5kIGdlbmVyYXRlIHRoZW0gZHluYW1pY2FsbHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM5MTcKCjIwMTYtMTEtMDMgMTU6MjE6MDUgKzAxMDAgIEFudG9uaW8gT3NwaXRlIDxhbzJAYW8yLml0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuMS5pbjoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLjEuaW46CgkgIHRvb2xzOiBkb24ndCBtZW50aW9uIGdzdC1mZWVkYmFjayBpbiBtYW4gcGFnZXMKCSAgZ3N0LWZlZWRiYWNrIG5vIGxvbmdlciBleGlzdHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM5MTcKCjIwMTYtMTEtMDMgMDA6MTg6MjEgKzAxMDAgIEFudG9uaW8gT3NwaXRlIDxhbzJAYW8yLml0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICB0b29sczogcHV0IHRoZSBleGFtcGxlcyBkZXNjcmlwdGlvbnMgYmVmb3JlIHRoZSBjb21tYW5kcyBpbiBtYW4gcGFnZQoJICBQdXQgdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBleGFtcGxlIGNvbW1hbmQgbGluZXMgYmVmb3JlIHRoZSBjb21tYW5kCgkgIGluc3RlYWQgb2YgYWZ0ZXIgdGhlbS4gVGhlIG5ldyB3YXkgaXMgbW9yZSBpbnR1aXRpdmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM5MTcKCjIwMTYtMTEtMDIgMjI6NTY6MDEgKzAxMDAgIEFudG9uaW8gT3NwaXRlIDxhbzJAYW8yLml0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICB0b29sczogZG9uJ3Qgc3RhcnQgbGluZXMgd2l0aCBzaW5nbGUgcXVvdGVzIGluIG1hbiBwYWdlCgkgIFdoZW4gYSBsaW5lIHN0YXJ0cyB3aXRoIGEgc2luZ2xlIHF1b3RlIGl0J3MgdHJlYXRlZCBpbiBhIHNwZWNpYWwgd2F5IGJ5CgkgIG1hbiwgd2hpY2ggbWF5IHJlc3VsdCBpbiBwYXJhZ3JhcGhzIG9mIHRoZSBtYW4gcGFnZSBub3QgcmVuZGVyZWQgYnkgdGhlCgkgIG1hbiBwYWdlciwgc28ganVzdCBhdm9pZCB0aGF0LgoJICBBIHBvc3NpYmxlIHNvbHV0aW9uIGNvdWxkIGhhdmUgYmVlbiB0byBlc2NhcGUgdGhlIHNpbmdlIHF1b3RlIHdpdGgKCSAgYSBcKGNxIHNlcXVlbmNlIGJ1dCB0aGlzIGlzIHJhdGhlciB1bnJlYWRhYmxlLCBpbnN0ZWFkIHRoZSB0ZXh0IGhhcyBiZWVuCgkgIHJlZm9ybWF0dGVkIHRvIGhhdmUgdGhlIHByb2JsZW1hdGljIHF1b3RlZCAncHBjJyBzdHJpbmcgb24gdGhlIHByZXZpb3VzCgkgIGxpbmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM5MTcKCjIwMTYtMTEtMDIgMjI6MzY6MjcgKzAxMDAgIEFudG9uaW8gT3NwaXRlIDxhbzJAYW8yLml0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuMS5pbjoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJKiB0b29scy9nc3QtdHlwZWZpbmQuMS5pbjoKCSAgdG9vbHM6IGVzY2FwZSBkYXNoZXMgaW4gdGhlIG1hbiBwYWdlcwoJICBUaGUgcG9ydGFibGUgd2F5IHRvIGhhdmUgdGhlIGRhc2hlcyB0byBiZSByZW5kZXJlZCBhcyBBU0NJSSBtaW51c2VzIGlzCgkgIHRvIHVzZSB0aGUgc2VxdWVuY2UgYmFja3NsYXNoLWRhc2gsIHVzZSB0aGlzIHN0eWxlIGF0IGxlYXN0IGZvciB0ZXh0CgkgIHRoYXQgY2FuIGJlIGNvcGllZCBhbmQgcGFzdGVkIChlLmcuIGNvbW1hbmQgbmFtZXMsIGZpbGUgbmFtZXMsIGVsZW1lbnQKCSAgb3B0aW9ucykuCgkgIEFsc28gdXNlIGJhY2tzbGFzaC1kYXNoIGluIHRoZSBOQU1FIHNlY3Rpb24gYXMgc3VnZ2VzdGVkIGJ5IGxleGdyb2coMSkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM5MTcKCjIwMTYtMTEtMTEgMDQ6NDI6MzAgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9tZXNvbi5idWlsZDoKCSAgbWVzb246IEZpciBkZXBlbmRlbmNpZXMgb2YgZ3N0bmV0LTEuMAoJICBJdCBkZXBlbmRzIG9uIGdzdF9iYXNlX2RlcCB3aGljaCB3aWxsIHB1bGwgaW4gZ3N0X2RlcAoKMjAxNi0xMS0xMSAwNDo0MTozOSArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9tZXNvbi5idWlsZDoKCSAgbWVzb246IEFkZCBHc3RCYXNlLTEuMC5naXIgdG8gZ3N0X2Jhc2VfZGVwCgkgIFdpdGhvdXQgdGhpcywgR0lSIGdlbmVyYXRvcnMgY2FuJ3QgZmluZCBhbmQgdXNlIGl0CgoyMDE2LTExLTEwIDEzOjQyOjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBiYXNlcGFyc2U6IGFkZCBzaW5jZSBtYXJrZXIgZm9yIG5ldyBBUEkgdG8gZG9jcyBhbmQgZml4IHdpbjMyIC5kZWYgZmlsZQoKMjAxNi0xMS0xMCAxMjo0NzozNyArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJhc2VwYXJzZTogZXhwb3NlIGdzdF9iYXNlX3BhcnNlX2RyYWluCgoyMDE2LTExLTA5IDE0OjA3OjI4IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvbWVzb24uYnVpbGQ6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvbWVzb24uYnVpbGQ6CgkqIGxpYnMvZ3N0L25ldC9tZXNvbi5idWlsZDoKCSAgbWVzb246IEFkdmVydGlzZSBkZXBlbmRlbmN5IG9uIGdzdF9kZXAgZ2VuZXJhdGluZyBnaXJzCgkgIEFuZCBkbyBub3Qgc2ltcGx5IGxpbmsgdG8gbGliZ3N0IGFzIHRoZSBnaXIgaW5mb3JtYXRpb24KCSAgbG9jYXRpb24gb25seSBleGlzdCBpbiBkZWNsYXJlX2RlcGVuZGVjeQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc0MDQ0CgoyMDE2LTExLTA4IDE3OjA5OjUzICswMTAwICBWaWN0b3IgVG9zbyA8bWVAdmljdG9ydG9zby5jb20+CgoJKiB0ZXN0cy9taXNjL25ldGNsb2NrLXJlcGxheS5jOgoJICB0ZXN0czogRml4IGNvbXBpbGUgd2FybmluZyBvbiBtaW5ndzY0CgkgIEluIGZpbGUgaW5jbHVkZWQgZnJvbSAuLi8uLi9saWJzL2dzdC9uZXQvZ3N0bnRwcGFja2V0LmM6MzU6MCwKCSAgZnJvbSBuZXRjbG9jay1yZXBsYXkuYzoyNToKCSAgLi4vLi4vY29uZmlnLmg6NTQ2OjA6IGVycm9yOiAiX19NU1ZDUlRfVkVSU0lPTl9fIiByZWRlZmluZWQgWy1XZXJyb3JdCgkgICNkZWZpbmUgX19NU1ZDUlRfVkVSU0lPTl9fIDB4MDYwMQoJICBJbiBmaWxlIGluY2x1ZGVkIGZyb20gL3Vzci94ODZfNjQtdzY0LW1pbmd3MzIvc3lzLXJvb3QvbWluZ3cvaW5jbHVkZS9jcnRkZWZzLmg6MTA6MCwKCSAgZnJvbSAvdXNyL3g4Nl82NC13NjQtbWluZ3czMi9zeXMtcm9vdC9taW5ndy9pbmNsdWRlL3N0ZGlvLmg6OSwKCSAgZnJvbSBuZXRjbG9jay1yZXBsYXkuYzoyMToKCSAgL3Vzci94ODZfNjQtdzY0LW1pbmd3MzIvc3lzLXJvb3QvbWluZ3cvaW5jbHVkZS9fbWluZ3cuaDoyMjA6MDogbm90ZToKCSAgdGhpcyBpcyB0aGUgbG9jYXRpb24gb2YgdGhlIHByZXZpb3VzIGRlZmluaXRpb24KCSAgIyBkZWZpbmUgX19NU1ZDUlRfVkVSU0lPTl9fIDB4MDcwMAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc0MTA4CgoyMDE2LTExLTA5IDExOjM3OjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBNYWtlIHN1cmUgdG8gb25seSBsb2NrIHRoZSBzdHJlYW0gbG9jayBvbmNlCgkgIFdlIGFsc28gb25seSB1bmxvY2sgaXQgb25jZSwgYW5kIG90aGVyd2lzZSBoYXZlIGl0IGxvY2tlZCBmb3JldmVyIGZyb20KCSAgdGhpcyB0aHJlYWQsIGNhdXNpbmcgZGVhZGxvY2tzIG9uIHNodXRkb3duIGxhdGVyLgoKMjAxNi0xMS0wOCAxNjo1ODo1MyArMDEwMCAgVmljdG9yIFRvc28gPG1lQHZpY3RvcnRvc28uY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9vbDogRml4IGNvbXBpbGVyIHdhcm5pbmcgb24gbWluZ3c2NAoJICBnc3Rwb2xsLmM6IEluIGZ1bmN0aW9uICdyZWxlYXNlX2V2ZW50JzoKCSAgZ3N0cG9sbC5jOjIzOTozOiBlcnJvcjogc3VnZ2VzdCBwYXJlbnRoZXNlcyBhcm91bmQgYXNzaWdubWVudCB1c2VkIGFzCgkgIHRydXRoIHZhbHVlIFstV2Vycm9yPXBhcmVudGhlc2VzXQoJICBpZiAoc3RhdHVzID0gV2FpdEZvclNpbmdsZU9iamVjdCAoc2V0LT53YWtldXBfZXZlbnQsIElORklOSVRFKSkgewoJICBefgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc0MTA4CgoyMDE2LTExLTA0IDIxOjE1OjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgLmRlZiBmb3IgbmV3IEFQSQoKMjAxNi0xMS0wNCAxMDoxOToxNyAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IFVuc2V0IHRoZSBwbHVnaW4gcGF0aHMgdG8gZ2VuZXJhdGUgdGhlIC5naXIgZmlsZXMKCSAgQXZvaWRpbmcgcHJvYmxlbXMgd2hlbiB1c2luZyBzdWJwcm9qZWN0OgoJICBGYWlsZWQgdG8gbG9hZCBwbHVnaW4gJ3NvbWV0aGluZy5zbzogZmlsZSB0b28gc2hvcnQKCjIwMTYtMTAtMTAgMTY6NDA6MjEgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZGVidWc6IFJlbW92ZSB0aGUgR3N0IG9ubHkgYmFzZWQgc3RhY2sgdHJhY2UgcHJpbnRpbmcgaW1wbGVtZW50YXRpb24KCSAgV2Ugbm93IGhhdmUgMiBvdGhlciBpbXBsZW1lbnRhdGlvbnMgdGhhdCBzaG91bGQgd29yayBiZXR0ZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzI1NTUKCjIwMTYtMTAtMDcgMTI6MDI6NDQgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGVha3MuYzoKCSogcGx1Z2lucy90cmFjZXJzL21lc29uLmJ1aWxkOgoJICB0cmFjZXJzOiBsZWFrczogVXNlIHRoZSBuZXcgZ3N0X2RlYnVnX2dldF9zdGFja190cmFjZQoJICBBbmQgcmVtb3ZlIHRoZSBsb2NhbCBpbXBsZW1lbnRhdGlvbiBvZiBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MjU1NQoKMjAxNi0xMC0wNyAxMTozODoyNyArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBjb25maWcuaC5tZXNvbjoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9tZXNvbi5idWlsZDoKCSogbWVzb24uYnVpbGQ6CgkqIHBsdWdpbnMvdHJhY2Vycy9tZXNvbi5idWlsZDoKCSAgZ3N0OiBVc2UgbGlidW53aW5kL2xpYmR3IHRvIGdlbmVyYXRlIGJhY2t0cmFjZXMgaWYgYXZhbGFpYmxlCgkgIE1ha2luZyB0aGUgZ3N0X2RlYnVnX3ByaW50X3RyYWNlIGZ1bmN0aW9uIG1vcmUgZ2VuZXJhbGx5IHVzZWZ1bC4KCSAgQVBJOgoJICArIGdzdF9kZWJ1Z19nZXRfdHJhY2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MjU1NQoKMjAxNi0xMS0wMiAxMzo1Nzo1MSArMDEwMCAgQW50b25pbyBPc3BpdGUgPGFvMkBhbzIuaXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBnc3QtbGF1bmNoOiBmaXggbWlub3IgbWVtb3J5IGxlYWsgd2hlbiBmYWlsaW5nIHRvIHBhcnNlIG9wdGlvbnMKCSAgQ29tbWl0IDIxNWNmY2Y5OTMzOCAoZ3N0cmVhbWVyOiBGaXggbWVtb3J5IGxlYWtzIHdoZW4gY29udGV4dCBwYXJzZQoJICBmYWlscykgZml4ZXMgc29tZSBtZW1vcnkgbGVhaywgYnV0IGluIG9uZSBvZiB0aGUgbmV3bHkgYWRkZWQgY2FsbHMgdG8KCSAgZ19jbGVhcl9lcnJvcigpIHRoZSB3cm9uZyB2YXJpYWJsZSB3YXMgcGFzc2VkLgoJICBXaGVuIGZhaWxpbmcgdG8gcGFyc2UgY29tbWFuZCBsaW5lIG9wdGlvbnMsIGZyZWUgdGhlICJlcnIiIHZhcmlhYmxlLCBub3QKCSAgdGhlICJlcnJvciIgb25lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczOTA3CgoyMDE2LTExLTAzIDE1OjIyOjM0IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBNYWtlIHN1cmUgd2UgbmV2ZXIgZHJvcCB0aGUgcHJlcm9sbCBidWZmZXIKCSAgVGhpcyBpcyBjb3NtZXRpYyBhcyAnbGF0ZScgc2hvdWxkIG5ldmVyIGJlIHNldCBkdXJpbmcgcHJlcm9sbCAoaW4gcGF1c2UpLgoJICBUaG91Z2ggY29kZSBtYXkgZXZvbHZlIGluIHRoZSBmdXR1cmUsIHNvIHRoaXMgaXMgZ29vZCBmb3IgcHJldmVudGluZwoJICBwb3RlbnRpYWwgYnVncy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MjQ2OAoKMjAxNi0xMC0wNSAxNDoyNjoxMSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogRG9uJ3QgbmVzdCBwcmVwYXJlL3JlbmRlciBjYWxscwoJICBXaGVuIHRoZSBmaXJzdCBidWZmZXIgYXJyaXZlcywgd2UgZW5kdXAgY2FsbGluZzoKCSAgLT5wcmVwYXJlKCkKCSAgLT5wcmVwYXJlKCkKCSAgLT5wcmVyb2xsKCkKCSAgLT5yZW5kZXIoKQoJICBUaGlzIHdpbGwgbGlrZWx5IGNvbmZ1c2UgYW55IGVsZW1lbnQgdXNpbmcgdGhpcyBtZXRob2QuIFdpdGggdGhpcyBwYXRjaCwKCSAgd2UgZW5zdXJlIHRoZSBwcmVyb2xsIHRha2UgcGxhY2UgYmVmb3JlIHRoZSBmaXJzdCByZW5kZXIgcHJlcGFyZSgpIGlzCgkgIGNhbGxlZC4gVGhpcyB3aWxsIHJlc3VsdCBpbjoKCSAgLT5wcmVwYXJlKCkKCSAgLT5wcmVyb2xsKCkKCSAgLT5wcmVwYXJlKCkKCSAgLT5yZW5kZXIoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcyNDY4CgoyMDE2LTExLTAyIDE2OjI3OjU4ICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzYmdAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZml4IHR5cG8gaW4gZG9jdW1lbnRhdGlvbgoJICBTbWFsbCB0eXBvIGluIHRoZSBkb2N1bWVudGF0aW4gb2YgZ3N0X2Jhc2Vfc2lua19zZXRfZHJvcF9vdXRfb2Zfc2VnbWVudCgpLgoJICBGaXhpbmcgaXQuCgoyMDE2LTExLTAyIDE2OjM1OjU5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGJhc2VzaW5rOiBGaXggZ3N0X2Jhc2Vfc2lua19zZXRfZHJvcF9vdXRfb2Zfc2VnbWVudCgpIGRvY3VtZW50YXRpb24KCSAgQWxzbyBzaWxlbmNlcyBhIEdJIHdhcm5pbmcuCgoyMDE2LTExLTAyIDE0OjExOjQzICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jbG9ja19nZXR0aW1lLmM6CgkgIGNsb2NrX2dldHRpbWUuYzogVXNlIF9fQVBQTEVfXyBpbnN0ZWFkIG9mIF9fTUFDSF9fCgkgIEh1cmQgYWxzbyBkZWZpbmVzIF9fTUFDSF9fLCBidXQgaXQgZG9lcyBub3QgaGF2ZSBtYWNoX2Fic29sdXRlX3RpbWUuIFVzZQoJICB0aGUgbW9yZSBzdHJpY3QgX19BUFBMRV9fIGluc3RlYWQuCgkgIEhhcyBhbHNvIGJlZW4gc2VudCB1cHN0cmVhbTogaHR0cHM6Ly9naXRodWIuY29tL2xpYmNoZWNrL2NoZWNrL3B1bGwvNjUKCjIwMTYtMTEtMDIgMTQ6MDE6MzggKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIG00L2NoZWNrLWNoZWNrcy5tNDoKCSAgYnVpbGQ6IEZpeCBBTV9DT05ESVRJT05BTCBjaGVjayBmb3IgY2xvY2tfZ2V0dGltZQoJICBJdCB3YXMgYWx3YXlzIGV2YWx1YXRpbmcgdG8gZmFsc2UsIHNvIGNsb2NrX2dldHRpbWUuYyB3YXMgYWx3YXlzIGJlaW5nCgkgIGluY2x1ZGVkIGludG8gbGliY2hlY2suIFRoaXMgYnJlYWtzIGJ1aWxkaW5nIG9uIEh1cmQgYW5kIGNhdXNlcyB1cyB0bwoJICBhbHdheXMgb3ZlcnJpZGUgY2xvY2tfZ2V0dGltZSgpIGV2ZW4gd2hlbiBpdCBpcyBhdmFpbGFibGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM4MTMKCjIwMTYtMTEtMDIgMTA6MTI6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvbWVzb24uYnVpbGQ6CgkgIGdzdDogQWxzbyBpbmNsdWRlIHRoZSBnc3RkeW5hbWljdHlwZWZhY3RvcnkuYyBzb3VyY2UgZmlsZSBpbiB0aGUgYnVpbGQKCjIwMTYtMTEtMDIgMTA6MDQ6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9tZXNvbi5idWlsZDoKCSAgZ3N0OiBJbnN0YWxsIGdzdGR5bmFtaWN0eXBlZmFjdG9yeS5oIGhlYWRlciBmaWxlCgoyMDE2LTExLTAyIDA5OjM1OjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgUmV2ZXJ0ICJiYXNlcGFyc2U6IGZpeCBkcmFpbmluZyB3aXRoIGxlc3MgZGF0YSB0aGFuIG1pbiBmcmFtZSBzaXplIGF2YWlsYWJsZSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAyZTI3OGFlYjcxMjhlODczMmY1MzI0YWI4YzhiMjJhNDc5NTBjODBhLgoJICBTb21lIHBhcnNlcnMsIHNwZWNpZmljYWxseSBhdWRpbyBwYXJzZXJzLCBhc3N1bWUgdG8gZ2V0IGFsbCByZW1haW5pbmcKCSAgZGF0YSBvbiBFT1MgYW5kIGp1c3QgcGFzcyB0aGVtIG9ud2FyZHMuIFdoaWxlIHRoZSBpZGVhIGhlcmUgaXMgY29ycmVjdCwKCSAgd2Ugd2lsbCBwcm9iYWJseSBuZWVkIGEgcHJvcGVydHkgZm9yIHRoaXMgb24gYmFzZXBhcnNlIGZvciBwYXJzZXJzIHRvCgkgIG9wdC1pbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MzY2NgoKMjAxNS0wNi0yNiAwMzoyOToyNyArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJKiBnc3QvcGFyc2UvcGFyc2UubDoKCSogZ3N0L3BhcnNlL3R5cGVzLmg6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBwYXJzZS1sYXVuY2g6IFN1cHBvcnQgbGlua2luZyBhbGwgcGFkcyB3aXRoIG5ldyBvcGVyYXRvcgoJICBJbnRyb2R1Y2UgYSBuZXcgb3BlcmF0b3IgJzonIC0gZS5nLiBlbGVtZW50MSAnOicgZWxlbWVudDIKCSAgRm9yIGV4YW1wbGUsICd1cmlkZWNvZGViaW4gOiBlbmNvZGViaW4nIC0KCSAgaWYgdGhlIGVuY29kZWJpbiBoYXMgbXVsdGlwbGUgcHJvZmlsZXMgY29tcGF0aWJsZSB3aXRoIHRoZQoJICBkZWNvZGViaW4sIG11bHRpcGxlIGxpbmtzIHdpbGwgYmUgY3JlYXRlZC4KCSAgV2l0aCAnIScgLCBhZnRlciBvbmUgZGVsYXllZCBsaW5rIGlzIHN1Y2Nlc3NmdWxseSBkb25lLCB0aGUKCSAgcGFkLWFkZGVkIGNhbGxiYWNrIGlzIGRpc2Nvbm5lY3RlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTQ1MAoKMjAxNi0xMS0wMiAxMTozMjo0MiArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgQWRkIG5ldyBiYXNlc2luayBBUEkgdG8gZXhwb3J0cyBhbmQgU2luY2UgbWFya2VycwoJICBBZGQgU2luY2UgbWFya2VycyB0byB0aGUgbmV3IGJhc2VzaW5rIEFQSSB0byBkcm9wCgkgIG91dC1vZi1zZWdtZW50IGJ1ZmZlcnMsIGFuZCBhZGQgdGhlbSB0byB0aGUKCSAgd2luMzIgZXhwb3J0cwoKMjAxNS0wNS0xNCAwMDoyNToyMSArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RkeW5hbWljdHlwZWZhY3RvcnkuYzoKCSogZ3N0L2dzdGR5bmFtaWN0eXBlZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGR5bmFtaWMgdHlwZXM6IEltcGxlbWVudCBkeW5hbWljIHR5cGVzIGluIHRoZSByZWdpc3RyeQoJICBJbXBsZW1lbnQgR3N0RHluYW1pY1R5cGVGYWN0b3J5IGFzIGEgbmV3IHJlZ2lzdHJ5IGZlYXR1cmUuCgkgIEdzdER5bmFtaWNUeXBlRmFjdG9yeSBwcm92aWRlcyBhIHdheSBvZiByZWdpc3RlcmluZyBhIEdUeXBlCgkgIGludG8gdGhlIHJlZ2lzdHJ5LCBzdWNoIHRoYXQgaXQgd2lsbCBiZSByZWdpc3RlcmVkIGFzIGEgZHluYW1pYwoJICB0eXBlIHdoZW4gdGhlIHJlZ2lzdHJ5IGlzIGxvYWRlZCwgYW5kIHRoZW4gYXV0b21hdGljYWxseSBsb2FkZWQKCSAgaWYgdGhlIHR5cGUgaXMgbmVlZGVkIGR1cmluZyBjYXBzIHBhcnNpbmcuCgkgIFRoaXMgYWxsb3dzIHVzaW5nIG5vbi1jb3JlIHR5cGVzIGluIHBhZCB0ZW1wbGF0ZXMsIGJ5IGxvYWRpbmcgYQoJICByZWdpc3RyeSBmZWF0dXJlIHRvIGNyZWF0ZSB0aGUgR1R5cGUgb24gdGhlIGZseS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDA3OQoKMjAxNi0wNC0yOSAwMjozODo0OSArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBmYWtlc2luazogQWRkIHByb3BlcnR5IHRvIG5vdCBkcm9wIG91dC1vZi1zZWdtZW50IGJ1ZmZlcnMKCSAgSW1wbGVtZW50IGhhbmRsaW5nIGluIGJhc2VzaW5rIHRvIG5vdCB1bmNvbmRpdGlvbmFsbHkgZGlzY2FyZAoJICBvdXQtb2Ytc2VnbWVudCBidWZmZXJzIGFuZCBleHBvc2UgaXQgYXMgYSBuZXcgcHJvcGVydHkgb24gZmFrZXNpbmsKCSAgKG5vdCB1bmNvbmRpdGlvbmFsbHkgaW4gYWxsIGJhc2VzaW5rIGJhc2VkIHNpbmtzKS4KCSAgVGhlIHByb3BlcnR5IGRlZmF1bHRzIHRvIEZBTFNFLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1NzM0CgoyMDE2LTExLTAxIDIzOjU0OjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBVcGRhdGUgR3N0VmFsdWUgdGFibGUgc2l6ZSBmb3IgR1ZhbHVlQXJyYXkKCjIwMTYtMDctMDcgMTk6NDE6NDkgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IEFsd2F5cyBwdXNoIGFsbCBzdGlja3kgZXZlbnRzIHdoZW5ldmVyIHdlIGZvcndhcmQgYSBzZXJpYWxpemVkIGV2ZW50CgkgIE90aGVyd2lzZSBkb3duc3RyZWFtIHdpbGwgaGF2ZSBhbiBpbmNvbnNpc3RlbnQgc2V0IG9mIHN0aWNreSBldmVudHMgYXQgdGhpcwoJICBwb2ludCwgZS5nLiB3aGVuIGEgVEFHIGV2ZW50IGlzIHB1c2hlZCBhbmQgZG93bnN0cmVhbSB3YW50cyB0byByZWxhdGUgaXQgdG8KCSAgdGhlIHN0cmVhbSBieSBsb29raW5nIGF0IHRoZSBjdXJyZW50IFNUUkVBTV9TVEFSVCBldmVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODUyNgoKMjAxNi0wMy0yOSAxMDozODowNSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogU2V0IEdTVF9QQURfRkxBR19QUk9YWV9DQVBTIGJlZm9yZSBmb3J3YXJkaW5nIHN0aWNreSBldmVudHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjIxMwoKMjAxNi0xMC0yOSAxMToxNzozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IGRyYWluaW5nIHdpdGggbGVzcyBkYXRhIHRoYW4gbWluIGZyYW1lIHNpemUgYXZhaWxhYmxlCgkgIGJhc2VwYXJzZSB3b3VsZCBwYXNzIHdoYXRldmVyIGlzIGxlZnQgaW4gdGhlIGFkYXB0ZXIgdG8gdGhlCgkgIHN1YmNsYXNzIHdoZW4gZHJhaW5pbmcsIGV2ZW4gaWYgaXQncyBsZXNzIHRoYW4gdGhlIG1pbmltdW0KCSAgZnJhbWUgc2l6ZSByZXF1aXJlZC4gVGhpcyBpcyBib2d1cywgYmFzZXBhcnNlIHNob3VsZCBqdXN0CgkgIGRpc2NhcmQgdGhhdCBkYXRhIHRoZW4uIFRoZSBvcmlnaW5hbCBpbnRlbnRpb24gb2YgdGhhdCBjb2RlCgkgIHNlZW1zIHRvIGhhdmUgYmVlbiB0aGF0IGlmIHdlIGhhdmUgbW9yZSBkYXRhIGF2YWlsYWJsZSB0aGFuCgkgIHRoZSBtaW5pbXVtIHJlcXVpcmVkIHdlIHNob3VsZCBwYXNzIGFsbCBvZiB0aGUgZGF0YSBhdmFpbGFibGUKCSAgYW5kIG5vdCBqdXN0IHRoZSBtaW5pbXVtIHJlcXVpcmVkLCB3aGljaCBkb2VzIG1ha2Ugc2Vuc2UsIHNvCgkgIHdlJ2xsIGNvbnRpbnVlIHRvIGRvIHRoYXQgaW4gdGhlIGNhc2UgdGhhdCBtb3JlIGRhdGEgaXMgYXZhaWxhYmxlLgoJICBGaXhlcyBhc3NlcnRpb25zIGluIHJhd3ZpZGVvcGFyc2Ugb24gRU9TIGFmdGVyIG5vdC1uZWdvdGlhdGVkIHdpdGgKCSAgZmFrZXNyYyBzaXpldHlwZT1yYW5kb20gISBxdWV1ZSAhIHJhd3ZpZGVvcGFyc2UgZm9ybWF0PXJnYiAhIGFwcHNpbmsgY2Fwcz12aWRlby94LXJhdyxmb3JtYXQ9STQyMAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczNjY2CgoyMDE1LTEwLTI5IDIyOjUxOjE4ICswMTAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IFJlcGxhY2UgJXAgYW5kICVyIGluIEdTVF9ERUJVR19GSUxFCgkgIEl0J3MgdXNlZnVsIHRvIGJlIGFibGUgdG8gc2V0IGEgbmFtZSBwYXR0ZXJuIGZvciBHU1RfREVCVUdfRklMRSBzbyB0aGF0CgkgIHRoZSBzYW1lIGVudmlyb25tZW50IHZhcmlhYmxlIGNhbiBiZSB1c2VkIGZvciBtdWx0aXBsZSBwcm9jZXNzZXMgYW5kCgkgIHN0aWxsIHdyaXRlIHRvIGRpZmZlcmVudCBmaWxlcy4gRXNwZWNpYWxseSB1c2VmdWwgaWYgdGhlc2UgcHJvY2Vzc2VzCgkgIHJ1biBzaW11bHRhbmVvdXNseS4KCSAgJXA6IFJlcGxhY2VkIHdpdGggUElECgkgICVyOiBSZXBsYWNlZCB3aXRoIHJhbmRvbSBudW1iZXIKCSAgJXAgaXMgb2J2aW91c2x5IHVzZWZ1bC4gJXIgaXMgdXNlZnVsIHdoZW4gZm9yIGluc3RhbmNlIHJ1bm5pbmcgdHdvCgkgIHByb2Nlc3NlcyB3aXRoIHNhbWUgUElEIGJ1dCBpbiBkaWZmZXJlbnQgY29udGFpbmVycy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MzA5MgoKMjAxMy0wNS0wMiAxMDowOToyOSArMDIwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbi5zZWxuZXNAZ21haWwuY29tPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IHNldCBlbnYgR1NUX1JFR0lTVFJZX0RJU0FCTEU9eWVzIHRvIGRpc2FibGUgcmVnaXN0cnkKCSAgSWYgR1NUX1JFR0lTVFJZX0RJU0FCTEU9eWVzIHRoZSByZWdpc3RyeSBpcyBkaXNhYmxlZCBzaW1pbGFyIHRvCgkgIGNvbXBpbGUgdGltZSBzd2l0Y2ggR1NUX0RJU0FCTEVfUkVHSVNUUlkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzMwODkKCjIwMTUtMTEtMTEgMTY6NDM6NDAgKzAxMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBNYWtlIEdWYWx1ZUFycmF5IHNlcmlhbGl6YWJsZQoJICBGb3IgaW5zdGFuY2UgdmVyeSB1c2VmdWwgZm9yIGxvZ2dpbmcgR1ZhbHVlQXJyYXkgd2l0aCBHU1RfUFRSX0ZPUk1BVAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTE4CgoyMDE2LTA0LTI5IDE2OjI2OjQ5ICswOTAwICBXb25jaHVsIExlZSA8d29uY2h1bC5sZWVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIGVsZW1lbnQ6IEFsbG93IG11bHRpcGxlIGNvbnZlcnNpb24gc3BlY2lmaWVycyBmb3IgcmVxdWVzdCBwYWRzCgkgIFRoaXMgYWxsb3dzIHBhZCB0ZW1wbGF0ZSBuYW1lcyBsaWtlICJzcmNfJXVfJXUiLCBidXQgaXQgZG9lcyBub3QgYWxsb3cKCSAgbXVsdGlwbGUgc3BlY2lmaWVycyBvZiBzdHJpbmcgdHlwZSAlcyBhcyB0aGF0IHdvdWxkIGxlYWQgdG8gYW1iaWd1aXRpZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjEyMjUKCjIwMTUtMTEtMDUgMTc6MTM6MjUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCBuby1yZWNvbmZpZ3VyZSBsaW5rIGNoZWNrCgkgIEVuYWJsZSBpdCB0byBwcmV2ZW50IHNlbmRpbmcgcmVjb25maWd1cmUgd2hlbiBsaW5raW5nIGVsZW1lbnRzLgoJICBVc2VmdWwgZm9yIGF1dG9wbHVnZ2luZyB3aGVuIHdlIGtub3cgY2FwcyBvciBidWZmZXJwb29scyBzaG91bGRuJ3QgY2hhbmdlCgkgIHRvIHNhdmUgZG9pbmcgY2FwcyByZW5lZ290aWF0aW9uIHRvIGVuZCB1cCB3aXRoIHRoZSBzYW1lIGZpbmFsIHNjZW5hcmlvLgoJICBUaGUgbm8tcmVjb25maWd1cmUgaXMgbm90IGEgcHJvcGVyIGNoZWNrLCBpdCBpcyBhIGZsYWcuIEl0IGlzIGltcGxlbWVudGVkCgkgIGFzIGEgR3N0UGFkTGlua0NoZWNrIHRvIGF2b2lkIGNyZWF0aW5nIGFub3RoZXIgZ3N0X3BhZF9saW5rIHZhcmlhbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTc2NTMKCjIwMTYtMTEtMDEgMTg6MDg6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IHVwZGF0ZSB2ZXJzaW9uCgoyMDE2LTExLTAxIDE3OjM1OjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL01ha2VmaWxlLmFtOgoJKiBkb2NzL21hbnVhbC8uZ2l0aWdub3JlOgoJKiBkb2NzL21hbnVhbC9NYWtlZmlsZS5hbToKCSogZG9jcy9tYW51YWwvUkVBRE1FOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1idWZmZXJpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1jbG9ja3MueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWludGVyZmFjZXMueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1tZXRhZGF0YS54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXBvc2l0aW9uLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtdGhyZWFkcy54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNvbXBpbGluZy54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtbGljZW5zaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXByb2dyYW1zLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcXVvdGVzLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzZS5jc3M6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1kYXRhLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtaW5pdC54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLXBsdWdpbnMueG1sOgoJKiBkb2NzL21hbnVhbC9iaW4tZWxlbWVudC1naG9zdC5wbmc6CgkqIGRvY3MvbWFudWFsL2Jpbi1lbGVtZW50LW5vZ2hvc3QucG5nOgoJKiBkb2NzL21hbnVhbC9iaW4tZWxlbWVudC5wbmc6CgkqIGRvY3MvbWFudWFsL2Nsb2Nrcy5wbmc6CgkqIGRvY3MvbWFudWFsL2NvbW11bmljYXRpb24ucG5nOgoJKiBkb2NzL21hbnVhbC9kaWFncmFtcy1jbG9ja3Muc3ZnOgoJKiBkb2NzL21hbnVhbC9kaWFncmFtcy1nZW5lcmFsLnN2ZzoKCSogZG9jcy9tYW51YWwvZGlhZ3JhbXMtcGlwZWxpbmVzLnN2ZzoKCSogZG9jcy9tYW51YWwvZmlsdGVyLWVsZW1lbnQtbXVsdGkucG5nOgoJKiBkb2NzL21hbnVhbC9maWx0ZXItZWxlbWVudC5wbmc6CgkqIGRvY3MvbWFudWFsL2dzdHJlYW1lci1vdmVydmlldy5wbmc6CgkqIGRvY3MvbWFudWFsL2hlbGxvLXdvcmxkLnBuZzoKCSogZG9jcy9tYW51YWwvaGlnaGxldmVsLXBsYXliYWNrLnhtbDoKCSogZG9jcy9tYW51YWwvaGlnaGxldmVsLXhtbC54bWw6CgkqIGRvY3MvbWFudWFsL2ltYWdlcy8uZ2l0aWdub3JlOgoJKiBkb2NzL21hbnVhbC9pbnRyby1iYXNpY3MueG1sOgoJKiBkb2NzL21hbnVhbC9pbnRyby1nc3RyZWFtZXIueG1sOgoJKiBkb2NzL21hbnVhbC9pbnRyby1tb3RpdmF0aW9uLnhtbDoKCSogZG9jcy9tYW51YWwvaW50cm8tcHJlZmFjZS54bWw6CgkqIGRvY3MvbWFudWFsL2xpbmtlZC1lbGVtZW50cy5wbmc6CgkqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkqIGRvY3MvbWFudWFsL21pbWUtd29ybGQucG5nOgoJKiBkb2NzL21hbnVhbC9vdXRsaW5lLnR4dDoKCSogZG9jcy9tYW51YWwvc2ltcGxlLXBsYXllci5wbmc6CgkqIGRvY3MvbWFudWFsL3NpbmstZWxlbWVudC5wbmc6CgkqIGRvY3MvbWFudWFsL3NyYy1lbGVtZW50LnBuZzoKCSogZG9jcy9tYW51YWwvc3RhdGUtZGlhZ3JhbS5zdmc6CgkqIGRvY3MvbWFudWFsL3RocmVhZC1idWZmZXJpbmcucG5nOgoJKiBkb2NzL21hbnVhbC90aHJlYWQtc3luY2hyb25pemluZy5wbmc6CgkqIGRvY3MvbWFudWFsL3RpdGxlcGFnZS54bWw6CgkqIGRvY3MvcHdnLy5naXRpZ25vcmU6CgkqIGRvY3MvcHdnL01ha2VmaWxlLmFtOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1hbGxvY2F0aW9uLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtY2xvY2sueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtZXZlbnRzLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtcW9zLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtcmVxdWVzdC54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXNjaGVkdWxpbmcueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10YWdnaW5nLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJKiBkb2NzL3B3Zy9hcHBlbmRpeC1jaGVja2xpc3QueG1sOgoJKiBkb2NzL3B3Zy9hcHBlbmRpeC1saWNlbnNpbmcueG1sOgoJKiBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSogZG9jcy9wd2cvYXBwZW5kaXgtcHl0aG9uLnhtbDoKCSogZG9jcy9wd2cvYmFzZS5jc3M6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLWNoYWluZm4ueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ldmVudGZuLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctcGFkcy54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLXByb3BzLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctcXVlcnlmbi54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLXNpZ25hbHMueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1zdGF0ZS54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLXRlc3RhcHAueG1sOgoJKiBkb2NzL3B3Zy9pbnRyby1iYXNpY3MueG1sOgoJKiBkb2NzL3B3Zy9pbnRyby1wcmVmYWNlLnhtbDoKCSogZG9jcy9wd2cvb3RoZXItYmFzZS54bWw6CgkqIGRvY3MvcHdnL290aGVyLW1hbmFnZXIueG1sOgoJKiBkb2NzL3B3Zy9vdGhlci1udG9vbmUueG1sOgoJKiBkb2NzL3B3Zy9vdGhlci1vbmV0b24ueG1sOgoJKiBkb2NzL3B3Zy9vdGhlci1zaW5rLnhtbDoKCSogZG9jcy9wd2cvb3RoZXItc291cmNlLnhtbDoKCSogZG9jcy9wd2cvcHdnLnhtbDoKCSogZG9jcy9wd2cvdGl0bGVwYWdlLnhtbDoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9leHRyYWN0LnBsOgoJICBkb2NzOiByZW1vdmUgYXBwIGRldiBtYW51YWwgYW5kIHBsdWdpbiB3cml0ZXIncyBndWlkZQoJICBUaGV5IGhhdmUgbW92ZWQgdG8gZ3N0LWRvY3MgYW5kIHdpbGwgYmUgbWFpbnRhaW5lZCB0aGVyZSBpbiBmdXR1cmUuCgo9PT0gcmVsZWFzZSAxLjExLjAgPT09CgoyMDE2LTExLTAxIDE4OjUzOjE1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjEwLjAgPT09CgoyMDE2LTExLTAxIDE3OjUwOjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4xMC4wCgoyMDE2LTExLTAxIDE3OjQwOjExICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vbmIucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTYtMTEtMDEgMTc6Mzg6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9uYi5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTYtMTEtMDEgMTc6MzY6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE2LTEwLTI1IDEyOjIxOjA3ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBtZXNvbi5idWlsZDoKCSogbWVzb25fb3B0aW9ucy50eHQ6CgkgIG1lc29uOiBBZGQgYW4gb3B0aW9uIHRvIGV4cGxpY2l0bHkgZGlzYWJsZSBndGstZG9jCgkgIFNpbWlsYXIgdG8gaG93IEF1dG90b29scyBwcm92aWRlcyBhbiBvcHRpb24sIGRlZmF1bHQgaXMgJ2VuYWJsZWQnLgoKMjAxNi0xMC0yNCAxMTo0NTozOCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBSZXZlcnQgImNvbGxlY3RwYWRzOiBBc3N1bWUgUFRTIGlzIGVxdWFsIERUUyBpZiBQVFMgaXMgbWlzc2luZyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA5YjBkNDJjZWVjYjMxOTgzOTlkN2UwNWUzZDVmMDgwYTdjYTI3Y2E5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyMjA3CgoyMDE2LTEwLTE4IDExOjU5OjI1IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkgIGFsbG9jYXRvcjogTWFyayByZWdpc3RlcmVkIGFsbG9jYXRvciBmb3IgbGVhawoKMjAxNi0wNi0yMSAwODowMDozMCAtMDUwMCAgQW5kcmV3IEVpa3VtIDxhZWlrdW1AY29kZXdlYXZlcnMuY29tPgoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgZ3N0bWVzc2FnZS5oOiBBdm9pZCBnY2MgYml0IHNoaWZ0IG92ZXJmbG93IGNvbXBpbGVyIHdhcm5pbmcKCSAgQXZvaWRzIGJpdCBzaGlmdCBvdmVyZmxvdyB3YXJuaW5nIHdpdGggZ2NjNi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Nzg4MiAoZ2xpYikKCSAgaHR0cHM6Ly9nY2MuZ251Lm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9NzE4MDMgKGdjYykKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Nzg4MwoKMjAxNi0xMC0yMyAyMjoxMTowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBmaXggZXJyb25lb3VzIHVzZSBvZiBfKCIiKQoJICBGaXhlcyB4Z2V0dGV4dCB3YXJuaW5ncyB3aGVuIGRvaW5nICdtYWtlIHVwZGF0ZS1wbyc6CgkgIGdzdC9wYXJzZS9ncmFtbWFyLnk6MjE3OiB3YXJuaW5nOiBFbXB0eSBtc2dpZC4gIEl0IGlzIHJlc2VydmVkIGJ5IEdOVSBnZXR0ZXh0OgoJICBnZXR0ZXh0KCIiKSByZXR1cm5zIHRoZSBoZWFkZXIgZW50cnkgd2l0aAoJICBtZXRhIGluZm9ybWF0aW9uLCBub3QgdGhlIGVtcHR5IHN0cmluZy4KCjIwMTYtMTAtMjIgMTc6MDU6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICBkb2NzOiBhZGQgaW5kZXggZm9yIEFQSSBuZXcgaW4gMS4xMAoKMjAxNi0xMC0yMiAxNzowNToyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgIGRvY3M6IGFkZCBpbmRleCBmb3IgQVBJIG5ldyBpbiAxLjgKCjIwMTYtMTAtMjEgMTU6NDA6NDcgKzAyMDAgIEplc3BlciBMYXJzZW4gPGtub3JyLmplc3BlckBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogRml4IG1peC11cCBiZXR3ZWVuIERUUyBhbmQgUFRTCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzMzMTkKCjIwMTYtMTAtMjEgMTU6MjI6MjggKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIFJldmVydCAicXVldWU6IEZpeCByYWNlIHdoZW4gY2FsY3VsYXRpbmcgY3VyX2xldmVsLnRpbWUiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZDAzYmQ1NDc4MDlmODQ5NDA1YTNmNzA2OTIwMDkxZDliMDMxNDdiMC4KCSAgSXQgYnJlYWtzIHRoZSB1bml0IHRlc3QsIGFsdGhvdWdoIGl0IGVuc3VyZXMgdGhhdCBvbmx5IGNvcnJlY3QgdmFsdWVzCgkgIGFyZSB1c2VkIGZvciBjYWxjdWxhdGlvbnMuIE5lZWRzIHRvIGJlIGZpeGVkIHVwLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczMDk2CgoyMDE2LTEwLTIwIDE3OjE5OjI1IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9wcmludGYvbWVzb24uYnVpbGQ6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL21lc29uLmJ1aWxkOgoJKiBtZXNvbi5idWlsZDoKCSAgUmV2ZXJ0ICJtZXNvbjogVXNlIHRoZSBuZXcgYHBpY2AgYXJndW1lbnQgb24gc3RhdGljIGxpYnMiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYTU3NTIyNDBhMTc4YzJjNjUxZWQxMDE2NzAyNWZhZDhiOWM0ZTdiZC4KCSAgcGljIHdhcyBhZGRlZCBhZnRlciAwLjM1IGFuZCB3aWxsIGJlIHByZXNlbnQgaW4gMC4zNiAobWVzb24KCSAgZG9jdW1lbnRhdGlvbiB3YXMgd3JvbmcpLgoKMjAxNi0xMC0yMCAxNTozODo0NiAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvcHJpbnRmL21lc29uLmJ1aWxkOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9tZXNvbi5idWlsZDoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBVc2UgdGhlIG5ldyBgcGljYCBhcmd1bWVudCBvbiBzdGF0aWMgbGlicwoJICBXZSBkZXBlbmQgb24gbWVzb24gMC4zNSB3aGljaCBtYWtlcyBpdCBzaW1wbGVyIHRvIGhhbmRsZQoJICBSZW1vdmVzIGEgbWVzb24gd2FybmluZwoKMjAxNi0wOS0xNCAxNDoyMzo1NiArMDIwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBGaXggcmFjZSB3aGVuIGNhbGN1bGF0aW5nIGN1cl9sZXZlbC50aW1lCgkgIE9uIHRoZSBmaXJzdCBidWZmZXIsIGl0J3MgcG9zc2libGUgdGhhdCBzaW5rX3NlZ21lbnQgaXMgc2V0IGJ1dAoJICBzcmNfc2VnbWVudCBoYXMgbm90IGJlZW4gc2V0IHlldC4gSWYgdGhpcyBpcyB0aGUgY2FzZSwgd2Ugc2hvdWxkIG5vdAoJICBjYWxjdWxhdGUgY3VyX2xldmVsLnRpbWUgc2luY2Ugc2lua19zZWdtZW50LnBvc2l0aW9uIG1heSBiZSBsYXJnZSBhbmQKCSAgc3JjX3NlZ21lbnQucG9zaXRpb24gZGVmYXVsdCBpcyAwLCB3aXRoIHRoZSByZXN1bHRpbmcgZGlmZiBiZWluZyBsYXJnZXIKCSAgdGhhbiBtYXgtc2l6ZS10aW1lLCBjYXVzaW5nIHRoZSBxdWV1ZSB0byBzdGFydCBsZWFraW5nIChpZgoJICBsZWFreT1kb3duc3RyZWFtKS4KCSAgT25lIHBvdGVudGlhbCBjb25zZXF1ZW5jZSBvZiB0aGlzIGlzIHRoYXQgdGhlIHNlZ21lbnQgZXZlbnQgbWF5IGJlCgkgIHN0b3JlZCBvbiB0aGUgc3JjcGFkIGJlZm9yZSB0aGUgY2FwcyBldmVudCBpcyBwdXNoZWQgZG93bnN0cmVhbSwgY2F1c2luZwoJICBhIGdfd2FybmluZyAoIlN0aWNreSBldmVudCBtaXNvcmRlcmluZywgZ290ICdzZWdtZW50JyBiZWZvcmUgJ2NhcHMnIikuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzMwOTYKCjIwMTYtMDktMjcgMDA6MDA6MzAgKzEwMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IHVzZSBnX3N0cmNtcDAgaW4gc2V0X2NvbnRleHQKCSAgSXQncyBOVUxMLXNhZmUgd2hpbGUgdGhlIGxpYmMgaW1wbGVtZW50YXRpb24gbWF5IG5vdCBiZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MTc3MwoKMjAxNi0wOS0yNiAyMzo1OToyOSArMTAwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogY2hlY2sgZm9yIGludmFsaWQgZ3N0Y29udGV4dCdzIGJlaW5nIHByb3ZpZGVkIHRvIHNldF9jb250ZXh0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzE3NzMKCjIwMTYtMTAtMTggMDk6Mzg6MDQgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogbWVzb24uYnVpbGQ6CgkgIGJ1aWxkOiBBcHBseSBYQ29kZSA4IHdvcmthcm91bmQgZm9yIGlPUyB0b28KCSAgY2xvY2tfZ2V0dGltZSB3YXMgYWxzbyBhZGRlZCBmb3IgaU9TIDEwLjAsIHNvIGRvbid0IHVzZSBpdCBpZiB3ZSdyZQoJICB0YXJnZXR0aW5nIGFuIG9sZGVyIHZlcnNpb24uIFRoYXQgd291bGQndmUgY2F1c2VkIHRoZSBzeW1ib2wgdG8gbm90IGJlCgkgIGZvdW5kIGF0IHJ1bnRpbWUgb24gb2xkZXIgZGV2aWNlcy4KCjIwMTYtMTAtMTUgMjE6NDk6MjEgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogRG9uJ3QgdXNlIGNfc3RkPWM5OQoJICBKdXN0IHVzZSB0aGUgZGVmYXVsdCBjX3N0ZCB1c2VkIGJ5IHRoZSBjb21waWxlci4gV2l0aCBHQ0Mgb24gTGludXggdGhpcwoJICBpcyBnbnU4OS4KCSAgVG9ucyBvZiBlcnJvcnMgcmVsYXRlZCB0byB0aW1lLmgsIHNpZ25hbC5oLCBldGMgd2hlbiB1c2luZyBjOTk6CgkgIEZBSUxFRDogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tAc3RhL2NoZWNrX3J1bi5jLm8KCSAgY2MgICctSWxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrQHN0YScgJy1mZGlhZ25vc3RpY3MtY29sb3I9YWx3YXlzJyAnLUkuLi9saWJzL2dzdC9jaGVjay9saWJjaGVjaycgJy1JbGlicy9nc3QvY2hlY2svbGliY2hlY2snICctSS4nICctSS4uLy4nICctSWxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrLy4uJyAnLUkuLi9saWJzL2dzdC9jaGVjay9saWJjaGVjay8uLicgJy1waXBlJyAnLVdhbGwnICctV2ludmFsaWQtcGNoJyAnLXN0ZD1jOTknICctREhBVkVfQ09ORklHX0gnICctZlBJQycgJy1PMicgJy1nJyAnLWZQSUMnICctTU1EJyAnLU1RJyAnbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tAc3RhL2NoZWNrX3J1bi5jLm8nICctTUYnICdsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja0BzdGEvY2hlY2tfcnVuLmMuby5kJyAtbyAnbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tAc3RhL2NoZWNrX3J1bi5jLm8nIC1jIC4uL2xpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jCgkgIEluIGZpbGUgaW5jbHVkZWQgZnJvbSAuLi9saWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYzoyMTowOgoJICAuLi9saWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQuaDoxNjc6MTg6IHdhcm5pbmc6IOKAmHN0cnVjdCBpdGltZXJzcGVj4oCZIGRlY2xhcmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCB3aWxsIG5vdCBiZSB2aXNpYmxlIG91dHNpZGUgb2YgdGhpcyBkZWZpbml0aW9uIG9yIGRlY2xhcmF0aW9uCgkgIGNvbnN0IHN0cnVjdCBpdGltZXJzcGVjICpuZXdfdmFsdWUsIHN0cnVjdCBpdGltZXJzcGVjICpvbGRfdmFsdWUpOwoJICBefn5+fn5+fn5+CgkgIC4uL2xpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOjk4OjI1OiBlcnJvcjogYXJyYXkgdHlwZSBoYXMgaW5jb21wbGV0ZSBlbGVtZW50IHR5cGUg4oCYc3RydWN0IHNpZ2FjdGlvbuKAmQoJICBzdGF0aWMgc3RydWN0IHNpZ2FjdGlvbiBvbGRfYWN0aW9uWzNdOwoJICBefn5+fn5+fn5+CgkgIC4uL2xpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOjk5OjI1OiBlcnJvcjogYXJyYXkgdHlwZSBoYXMgaW5jb21wbGV0ZSBlbGVtZW50IHR5cGUg4oCYc3RydWN0IHNpZ2FjdGlvbuKAmQoJICBzdGF0aWMgc3RydWN0IHNpZ2FjdGlvbiBuZXdfYWN0aW9uWzNdOwoJICBefn5+fn5+fn5+CgkgIFsuLi5dCgkgIG5pbmphOiBidWlsZCBzdG9wcGVkOiBzdWJjb21tYW5kIGZhaWxlZC4KCSAgVGhlIGNoYW5nZSB3YXMgb3JpZ2luYWxseSBtYWRlIGJlY2F1c2UgZ251OTkgd2FzIGNhdXNpbmcgaXNzdWVzIG9uIE9TIFguCgoyMDE2LTEwLTE0IDExOjU5OjI0ICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICBzdGF0czogRml4IHdhcm5pbmcKCjIwMTYtMTAtMDQgMDk6MjA6MzcgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9tZXNvbi5idWlsZDoKCSogbWVzb24uYnVpbGQ6CgkqIHRlc3RzL2NoZWNrL21lc29uLmJ1aWxkOgoJICBtZXNvbjogTWFrZSB1c2Ugb2YgbmV3IGVudmlyb25tZW50IG9iamVjdCBhbmQgc2V0IHBsdWdpbiBwYXRoIHRvIGJ1aWxkZGlyCgkgIC0gUHJvcGVybHkgc2V0IHdoZXJlIHRvIGZpbmQgZ3N0LXBsdWdpbi1zY2FubmVyCgkgIC0gVXNlIEdTVF9MT0FESU5HX1dISVRFTElTVCBzbyB0aGF0IG9ubHkgY29yZSBwbHVnaW5zIGFyZSB1c2VkCgkgIEJ1bXAgbWVzb24gcmVxdWlyZW1lbnQgdG8gMC4zNQoKMjAxNi0xMC0xMyAxODoyMDo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSAgY29udHJvbGJpbmRpbmc6IFN0b3JlIG9iamVjdCBpbiBhIHRocmVhZC1zYWZlIEdXZWFrUmVmCgkgIGdfb2JqZWN0X3dlYWtfcmVmKCkgaXMgbm90IHRocmVhZC1zYWZlLgoKMjAxNi0xMC0xMyAxODowMjozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmM6CgkgIGFyZ2Jjb250cm9sYmluZGluZzogZ3N0X29iamVjdF9yZXBsYWNlKCkgaXMgdHJhbnNmZXIgbm9uZQoKMjAxNi0xMC0xMyAxODowMToxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSAgZGlyZWN0Y29udHJvbGJpbmRpbmc6IENsYXJpZnkgaW4gdGhlIGRvY3VtZW50YXRpb24gd2hhdCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGFic29sdXRlIGFuZCBub3QgaXMKCjIwMTYtMTAtMTMgMTc6NTU6NDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sc291cmNlOiBSZW1vdmUgbWlzbGVhZGluZyBzZW50ZW5jZSBmcm9tIHRoZSBkb2N1bWVudGF0aW9uCgkgIGNvbnRyb2wgc291cmNlcyBhcmUgbm90IHJlcXVpcmVkIHRvIHJldHVybiB2YWx1ZXMgYmV0d2VlbiAwLjAgYW5kIDEuMC4KCSAgVGhpcyBpcyBjb21wbGV0ZWx5IHVwIHRvIHRoZSBjb250cm9sIGJpbmRpbmcgdGhhdCBpcyB1c2VkLgoKMjAxNi0xMC0xMyAxNzoyMTozMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgb2JqZWN0OiBGaXggYnJva2VuIHNlbnRlbmNlIHN0cnVjdHVyZSBpbiBkb2NzCgoyMDE2LTEwLTEzIDEyOjE4OjEyICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXJzOiBmaXggc3RydWN0dXJlIGxlYWsKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3Mjg1MQoKMjAxNi0xMC0xMyAxMjowMzoyMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RzdHJlYW1zLmg6CgkgIHN0cmVhbXM6IEV4dGVuZCBHc3RTdHJlYW1UeXBlIGRvY3VtZW50YXRpb24KCSAgVXNlcnMgc2hvdWxkbid0IGFzc3VtZSBpdCB3aWxsIGJlIGEgc2luZ2xlIHZhbHVlIHNpbmNlIGl0J3MgYSBmbGFnLgoKMjAxNi0xMC0wMyAyMDoyMjo1MyArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBtNC9jaGVjay1jaGVja3MubTQ6CgkqIG1lc29uLmJ1aWxkOgoJICBidWlsZDogRml4IGNsb2NrX2dldHRpbWUgY2hlY2sgd2l0aCBYQ29kZSA4CgkgIFdpdGggWENvZGUgOCwgY2xvY2tfZ2V0dGltZSB3aWxsIGJlIGluY29ycmVjdGx5IGRldGVjdGVkIGFzIGJlaW5nCgkgIGF2YWlsYWJsZSByZWdhcmRsZXNzIG9mIHdoYXQgT1MgWCB2ZXJzaW9uIHdlJ3JlIHRhcmdldHRpbmcgYmVjYXVzZSB0aGUKCSAgc3ltYm9sIGlzIGF2YWlsYWJsZSBpbiB0aGUgLnRiZCBsaWJyYXJ5IGFzIGEgd2VhayBzeW1ib2wuCgkgIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL0hvbWVicmV3L2hvbWVicmV3LWNvcmUvaXNzdWVzLzM3MjcjaXNzdWUtMTcwMDg2MjczCgkgIEl0J3Mgb25seSBzdGFydGluZyBmcm9tIG1hY09TIDEwLjEyIHRoYXQgY2xvY2tfZ2V0dGltZSBpcyBhY3R1YWxseQoJICBhdmFpbGFibGUsIHNvIHdlIGNhbiB1bmNvbmRpdGlvbmFsbHkgZGlzYWJsZSBpdCB3aGVuIHRhcmdldHRpbmcgb2xkZXIKCSAgdmVyc2lvbnMuIFdlIGNhbm5vdCBzaW1wbHkgZG8gQUNfQ0hFQ0tfRlVOQ1Mgd2l0aCAtV2wsLW5vX3dlYWtfaW1wb3J0cwoJICBiZWNhdXNlIHRoZSBhdXRvY29uZiBjaGVjayBkb2VzIGl0cyBvd24gcHJvdG90eXBlIGRlY2xhcmF0aW9uIHRoYXQKCSAgZG9lc24ndCB0cmlnZ2VyIHRoYXQgY29tcGlsZXIgZmxhZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MjQ1MQoKMjAxNi0xMC0xMSAxMjoxMjo1NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uaDoKCSAgYmluOiBBZGQgYSBuZXcgR1NUX0JJTl9GTEFHX1NUUkVBTVNfQVdBUkUgZmxhZwoJICBUaGlzIGZsYWcgaXMgdG8gaW5kaWNhdGUgdG8gY2hpbGQgZWxlbWVudHMgdGhhdCB0aGV5IGNhbiBhZGQgYW5kCgkgIHJlbW92ZSBwYWRzIGF0IGFueSBwb2ludCBpbiB0aW1lIHdpdGhvdXQgcmUtYWRkaW5nIGV4aXN0aW5nIG9uZXMuCgkgIEVsZW1lbnRzIHNob3VsZCBwb3N0IGJlZm9yZS1oYW5kIGEgR1NUX01FU1NBR0VfU1RSRUFNX0NPTExFQ1RJT04KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3Mjc0MQoKMjAxNi0xMC0xMCAxMDo1OToyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICBkb2NzOiBwYXRocyBpbiBlbnYgdmFycyBhcmUgc2VwYXJhdGVkIGJ5IHNlbWljb2xvbnMgb24gd2luZG93cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcyNDMxCgoyMDE2LTEwLTA3IDE3OjAyOjQ3ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdHJhY2luZy50eHQ6CgkgIGRvY3M6IGZpeCBHU1RfTEVBS1NfVFJBQ0VSX1NJRyBkb2MKCSAgVGhlIGRvY3VtZW50YXRpb24gd2Fzbid0IG1lbnRpb25pbmcgdGhlIFNJR1VTUjIgc2lnbmFsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcyNTcxCgoyMDE2LTEwLTA4IDE3OjIzOjA4ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IEZpeCBpdGVyYXRvciByZXN5bmMnaW5nCgkgIFdoZW4gd2UgZ2V0IEdTVF9JVEVSQVRPUl9SRVNZTkMsIHdlIG5lZWQgdG8gY2FsbCBnc3RfaXRlcmF0b3JfcmVzeW5jKCkKCSAgb3RoZXJ3aXNlIHdlIHdpbGwgYWx3YXlzIGdldCBHU1RfSVRFUkFUT1JfUkVTWU5DIChhbmQgdGhhdCBsb29wIHdvdWxkCgkgIHJ1biBmb3JldmVyKS4KCjIwMTYtMTAtMDggMTM6NTQ6NDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEltcGxlbWVudCBnc3RfZXZlbnRfZnVsbF9mdW5jIGhhbmRsaW5nCgkgIFNhbWUgYXMgd2UgZG8gZm9yIHF1ZXVlCgoyMDE2LTEwLTA4IDEzOjIwOjU4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJICB0cmFjZXIvcnVzYWdlOiBmaXggZm9ybWF0IHN0cmluZyBhcmdzCgkgIFRoZSBmb3JtYXQgc3RyaW5nIGNvbnRhaW5zIGEgcHJvY2VzcyBpZCwgYnV0IHdlIGRpZCBub3QgcHJvdmljZSBvbmUuIFRoaXMKCSAgY2F1c2VkIHVzIHRvIGxvZyBnYXJiYWdlIHNpbmNlIGFsbCBhcmdzIGdvdCBzaGlmdGVkLgoKMjAxNi0xMC0wMSAxNjo0NzowNSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IEZpeCB0eXBvIGluIGdzdF9tZXNzYWdlX25ld19wcm9ncmVzcygpIGRvY3MKCSAgdGVzdCAtPiB0ZXh0CgoyMDE2LTA5LTMwIDA5OjU3OjU3IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGhvb2tzL3ByZS1jb21taXQuaG9vazoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBTZXR1cCBwcmUtY29tbWl0IGhvb2tzIHdoZW4gY29uZmlndXJpbmcKCjIwMTYtMDktMzAgMTE6Mzg6MzcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IHVwZGF0ZSB2ZXJzaW9uCgo9PT0gcmVsZWFzZSAxLjkuOTAgPT09CgoyMDE2LTA5LTMwIDEzOjAxOjE3ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuOS45MAoKMjAxNi0wOS0zMCAxMjowODo1MiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTYtMDktMzAgMTE6NDE6MTQgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9kZS5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTYtMDktMjcgMTg6MDA6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBtZXNvbi5idWlsZDoKCSogcGx1Z2lucy90cmFjZXJzL21lc29uLmJ1aWxkOgoJICBtZXNvbjogdHJhY2Vyczogc2lnbmFsIGF2YWlsYWJpbGl0eSBvZiBsaWJ1bndpbmQgYW5kIGJhY2t0cmFjZSgpIHRvIGNvZGUKCSAgTm90IHNldHRpbmcgY2RhdGEgaGVyZSBvbiBwdXJwb3NlIGJlY2F1c2Ugb2YgLi4gY29tcGxpY2F0aW9ucy4KCjIwMTYtMDktMjYgMTg6MjE6MTkgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogY29uZmlnLmgubWVzb246CgkqIG1lc29uLmJ1aWxkOgoJKiBwbHVnaW5zL21lc29uLmJ1aWxkOgoJKiBwbHVnaW5zL3RyYWNlcnMvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBCdWlsZCB0cmFjZXJzCgoyMDE2LTA5LTIzIDIwOjQwOjM5IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZ3N0L21lc29uLmJ1aWxkOgoJKiBkb2NzL2xpYnMvbWVzb24uYnVpbGQ6CgkqIGRvY3MvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBGaXggZ3RrZG9jIHVzaW5nIG5ldyBtZXNvbiBmZWF0dXJlcwoKMjAxNi0wOS0yNiAxMjoxNDoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJICB0ZXN0czogcmVtb3ZlIHVudXNlZCB2YWxncmluZCBzdHVmZgoJICBDb2RlIHdhcyBhbHNvIGNoZWNraW5nIHRoZSB3cm9uZyBkZWZpbmUgYW55d2F5LgoKMjAxNi0wOS0yNiAxMjoxMjoxMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIHRlc3RzOiBwYXJzZS1sYXVuY2g6IGxvb2tzIGNsZWFuIG5vd2FkYXlzLCBzbyByZS1lbmFibGUgZm9yIHZhbGdyaW5kCgkgIEFsc28sIHRoZSB2YWxncmluZCBiaXRzIHdlcmVuJ3QgaG9va2VkIHVwIHByb3Blcmx5IGFueXdheSwKCSAgY2hlY2tpbmcgdGhlIHdyb25nIGRlZmluZS4KCjIwMTYtMDktMjQgMTg6MjI6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWcuaC5tZXNvbjoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiByZW1vdmUgaW5jb3JyZWN0IGFuZCB1bm5lZWRlZCBjaGVjayBmb3IgcHRyZGlmZl90CgkgIE5lZWQgdG8gaW5jbHVkZSBzdGRkZWYuaCBmb3IgaXQsIHNvIHRoaXMgd291bGQndmUgd29ya2VkOgoJICBpZiBjYy5oYXNfdHlwZSgncHRyZGlmZl90JywgcHJlZml4OiAnI2luY2x1ZGUgPHN0ZGRlZi5oPicpCgoyMDE2LTA5LTI0IDE4OjA2OjMxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L3ByaW50Zi9tZXNvbi5idWlsZDoKCSAgbWVzb246IGZpeCBpbnRlcm5hbCBwcmludGYgZm9yICVsbCBmb3JtYXQgbW9kaWZpZXIgb24gMzItYml0IHN5c3RlbXMKCSAgZ3N0L2dzdHByaW50ZiB1bml0IHRlc3Qgd291bGQgZmFpbCBvbiAzMi1iaXQgeDg2IHdpdGg6CgkgIGdzdHByaW50Zi5jOjgzOnByaW50Zl9JMzJfSTY0OjA6ICdzdHInICg2NC1iaXQgeCB2YWx1ZSA9IGI1YTY5NzhmKSBpcyBub3QgZXF1YWwgdG8gJyI2NC1iaXQgeCB2YWx1ZSA9IGYxZTJkM2M0YjVhNjk3OGYiJwoKMjAxNi0wOS0yMyAwNDoxOTo0NyArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L21lc29uLmJ1aWxkOgoJICBSZXZlcnQgIm1lc29uOiBGb3JjZSBnc3RlbnVtX2ggdG8gYmUgYnVpbHQgd2hlbiB1c2luZyBnc3RfZGVwIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGNmYzU2NWUyZDg4YThlN2Q2NTZiNjhjNWMyYTFiN2FjYjA4Y2RiN2YuCgkgIFRoZSBjb21taXQgd2FzIHJlZHVuZGFudCBzaW5jZSBnc3RfZ2VuX3NvdXJjZXMgYWxyZWFkeSBjb250YWlucwoJICBnc3RlbnVtX2guIFdlJ3JlIHN0aWxsIGludmVzdGlnYXRpbmcgd2h5IHNvbWUgcGVvcGxlIGFyZSBzdGlsbCBzZWVpbmcKCSAgYSByYWN5IGJ1aWxkIGZhaWx1cmUuCgoyMDE2LTA5LTIzIDAwOjI4OjUzICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBGb3JjZSBnc3RlbnVtX2ggdG8gYmUgYnVpbHQgd2hlbiB1c2luZyBnc3RfZGVwCgkgIFRoaXMgZm9yY2VzIGdzdGVudW10eXBlcy5oIHRvIGJlIGJ1aWx0IHdoZW5ldmVyIHNvbWV0aGluZyB1c2VzIGdzdF9kZXAKCSAgYXMgYSBzdWJwcm9qZWN0IGRlcGVuZGVuY3kuIFRoaXMgaXMgbmVlZGVkIHNpbmNlIGdzdC9nc3QuaCBpbmNsdWRlcwoJICBnc3RlbnVtdHlwZXMuaAoJICBDbG9zZXMgaHR0cHM6Ly9naXRodWIuY29tL21lc29uYnVpbGQvbWVzb24vaXNzdWVzLzcxNCB3aGljaCBpcyBub3QKCSAgYWN0dWFsbHkgYSBNZXNvbiBidWcuCgoyMDE2LTA5LTE5IDEwOjA3OjUxIC0wNDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IEFkZCBmb3Jnb3R0ZW4gImdpdCBjb21taXQgLS1hbWVuZCIgZm9yIGxhc3QgY29tbWl0CgkgIE5lZWQgdG8gY2FzdCBhd2F5IHRoZSBjb25zdCBhcyBnX3F1ZXVlX2ZvcmVhY2goKSB0YWtlcyBhIG5vbi1jb25zdCBHUXVldWUqCgoyMDE2LTA5LTE5IDEwOjA0OjU1IC0wNDAwICBLb3VoZWkgU3V0b3UgPGtvdUBjbGVhci1jb2RlLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBXaGVuIGNvcHlpbmcgdGhlIHNvcnQgaXRlcmF0b3IsIGFsc28gY29weSBpdHMgaW50ZXJuYWwgcXVldWUKCSAgT3RoZXJ3aXNlIGJvdGggaXRlcmF0b3JzIHNoYXJlIHRoZSBzYW1lIHJlZmVyZW5jZXMsIHRoZSBzZWNvbmQgb25lCgkgIHVzdWFsbHkgcmVzdWx0aW5nIGluIGEgY3Jhc2ggd2hlbiBiZWluZyBmcmVlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MTY0OQoKMjAxNi0wOS0xMSAxNToyODo0MyArMDIwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkgIHF1ZXVlMjogRml4IHdhdGVybWFyayB0ZXN0CgkgIFRoaXMgY2FycmllcyBvdmVyIGNvZGUgZm9yIGEgc2ltaWxhciB0ZXN0IGZyb20gbXVsdGlxdWV1ZSB0byBlbnN1cmUgZnVsbAoJICBjb250cm9sIG92ZXIgdGhlIGRhdGFmbG93IHdoaWxlIHRlc3RpbmcuIChUaGUgcHJldmlvdXMgYXR0ZW1wdCB3YXMgcmFjeQoJICBzaW5jZSB0aGUgZmlsbCBsZXZlbCBjaGFuZ2VkIHdpdGhvdXQgYW55IHRocmVhZCBzeW5jIHdpdGggdGhlIHRlc3QgY29kZS4pCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzEyMTAKCjIwMTYtMDktMTEgMTU6MjY6MjYgKzAyMDAgIENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogVXBkYXRlIGJ1ZmZlcmluZyBpZiBpdHMgZW5hYmxlZCBhbmQgbG93L2hpZ2ggd2F0ZXJtYXJrcyBhcmUgY2hhbmdlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcxMjEwCgoyMDE2LTA5LTE1IDE3OjM4OjQ5ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuQGFydW5yYWdoYXZhbi5uZXQ+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBGaXggZG9jdW1lbnRhdGlvbiBmb3IgZ3N0X21lc3NhZ2VfbmV3X2R1cmF0aW9uKCkKCSAgU2VlbXMgbGlrZSB0aGVyZSB3YXMgc29tZSBkb2N1bWVudGF0aW9uIGxlZnQgb3ZlciBmcm9tIHdoZW4gdGhpcyB3YXMKCSAgZ3N0X21lc3NhZ2VfbmV3X2R1cmF0aW9uKCkuCgoyMDE2LTA5LTEyIDE3OjQxOjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogUmVtb3ZlIHVudXNlZCBmaWVsZHMgYW5kIGFsd2F5cyB1c2UgdGhlIGJ1ZmZlciB0aW1lc3RhbXAgZGlmZmVyZW5jZSBmb3IgY2FsY3VsYXRpbmcgdGhlIFFvUyBwcm9wb3J0aW9uCgkgIFRoZSBidWZmZXIgdGltZXN0YW1wcyBhcmUgb25seSBoaW50cyBhbmQgbW9yZSBvZnRlbiB0aGFuIG5vdCBoYXZlCgkgIG5vdGhpbmcgdG8gZG8gd2l0aCByZWFsaXR5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcxMzA2CgoyMDE2LTA5LTA4IDEyOjU4OjU0ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSogbWVzb24uYnVpbGQ6CgkgIGdzdGNvbmZpZzogVXNlIF9fZGVjbHNwZWMgd2hlbiBidWlsdCB3aXRoIE1pbkdXIGFuZCBsaW5raW5nIHdpdGggTVNWQwoJICBFYXJsaWVyIHdlIHdlcmUgb25seSB1c2luZyBfX2RlY2xzcGVjKGRsbGV4cG9ydC9pbXBvcnQpIHdoZW4gd2Ugd2VyZQoJICBidWlsdCB3aXRoIE1TVkMgYmVjYXVzZSB3aGVuIGJ1aWx0IHdpdGggTWluR1cgYW5kIGxpbmtpbmcgd2l0aCBNaW5HVyB3ZQoJICBkb24ndCBuZWVkIGl0IChhbmQgd2UgZ2V0IGxpbmtlciBlcnJvcnMgYmVjYXVzZSBvZiBpdCkuCgkgIEhvd2V2ZXIsIHdoZW4gd2UncmUgYnVpbHQgd2l0aCBNaW5HVyBhbmQgc29tZW9uZSB3YW50cyB0byBsaW5rIHRvIHVzCgkgIHdpdGggTVNWQywgd2Ugc3RpbGwgbmVlZCB0aGUgcHJvdG90eXBlcyB0byBoYXZlIF9fZGVjbHNwZWMoZGxsaW1wb3J0KQoJICBzaW5jZSBNU1ZDIGNhbm5vdCBkbyBhdXRvLWltcG9ydCBsaWtlIEdDQyBjYW4uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzEwMjkKCjIwMTYtMDktMTIgMTc6MDc6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogQWxzbyBkb24ndCAqdW5zZXQqIGVsZW1lbnQgZmxhZ3MgaWYgdGhleSdyZSBpbiB0aGUgc3VwcHJlc3NlZCBmbGFncwoJICBPdGhlcndpc2Ugb3VyIGJpbiBtaWdodCBsb3NlIHZhcmlvdXMgZmxhZ3MgdGhhdCB3ZXJlIGV4cGxpY2l0bHkgc2V0IG9uCgkgIGl0IGF0IGFyYml0cmFyeSB0aW1lcy4KCjIwMTYtMDktMTAgMTE6NTk6MTEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzYW50b3NAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICB0ZXN0czogZ3N0YmluOiBhZGQgdGVzdHMgZm9yIHN1cHByZXNzZWQgZmxhZ3MKCSAgU29tZSBzaW1wbGUgdGVzdHMgdG8gbWFrZSBzdXJlIGl0IGtlZXBzIHdvcmtpbmcKCjIwMTYtMDktMDIgMTc6Mzk6MTcgKzA5MDAgIFdvbmNodWwgTGVlIDx3b25jaHVsLmxlZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YmluLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBiaW46IEFkZCBzZXR0ZXIgYW5kIGdldHRlciB0byBzdXBwcmVzcyBlbGVtZW50IGZsYWdzCgkgIFN1cHByZXNzLWZsYWdzIGlzIGZvciBwcmV2ZW50aW5nIHByb3BhZ2F0aW9uIG9mIGNoaWxkIGVsZW1lbnQncyBzcGVjaWZpYwoJICBmbGFnIHdoZW4gaXQgaXMgYWRkZWQgdG8gdGhlIGJpbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDYyNwoKMjAxNi0wOS0xMCAyMDo1MDo0OCArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGIxOGQ4MjAgdG8gZjk4MGZkOQoKMjAxNS0xMS0xMyAxNjowMDowMiArMDAwMCAgR3JhaGFtIExlZ2dldHQgPG1pbmZyaW5Ac2hhcnAuZm0+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogRW5zdXJlIGdzdF92YWx1ZSBpcyBpbml0aWFsaXNlZCBiZWZvcmUgZ3N0X3RhZwoJICBPdGhlcndpc2UgR1NUX1RZUEVfRlJBQ1RJT04gd2lsbCB3b3JrIGNvcnJlY3RseSBpbiB0YWdzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzOTIyCgoyMDE2LTA5LTA5IDExOjQ2OjExICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGVsZW1lbnQ6IFJlc2V0IHRoZSBzdG9wIHBvc2l0aW9uIHRvIE5PTkUgaW4gc2Vla19zaW1wbGUoKQoJICBXaGVuIHVzaW5nIHNlZWtfc2ltcGxlKCkgaW4gY29tYmluYXRpb24gd2l0aCBvdGhlciBraW5kcyBvZiBzZWVrcywgdGhpcwoJICBiZWNvbWVzIHByb2JsZW1hdGljLiBzZWVrX3NpbXBsZSgpIGRvZXMgbm90IHJlc2V0IHRoZSBzdG9wIHBvc2l0aW9uIHRvCgkgIEdTVF9DTE9DS19USU1FX05PTkUgYnV0IGtlZXBzIHdoYXRldmVyIGEgcHJldmlvdXMgc2VlayBkaWQuIFNvIGZvciBleGFtcGxlCgkgIHdoZW4gZG9pbmcgYSBzZWVrX3NpbXBsZSgpIGFmdGVyIGEgcmF0ZT0tMSBzZWVrLCB3ZSB3b3VsZCB1c3VhbGx5IGdldAoJICBhc3NlcnRpb25zIHRoYXQgc3RhcnQ+c3RvcCAoYW5kIHN0b3AgYmVpbmcgdGhlIG9sZCBzdG9wIGZyb20gdGhlIHJhdGU9MSBzZWVrKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MTEwNAoKMjAxNi0wOS0xMCAwOTo1Mzo0MiArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGY0OWM1NWUgdG8gYjE4ZDgyMAoKMjAxNi0wOS0wOSAwOTozNjo0MCAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9tZXNvbi5idWlsZDoKCSAgbWVzb246dGVzdHM6IEJ1bXAgdGltZW91dCB0byAzIG1pbnV0ZXMKCSAgQmFzaWNhbGx5IHdlIGFscmVhZHkgaGF2ZSBlYWNoIHRlc3Qgd2l0aCBhIDIwc2VjIHRpbWVvdXQsCgkgIGFuZCB0ZXN0c3VpdGUgY2FuIGxhc3QgbW9yZSB0aGFuIHRoZSBkZWZhdWx0IDMwc2VjcyBmcm9tCgkgIG1lc29uLiAzIG1pbnV0ZXMgaXMgYW5vdGhlciBhcmJpdHJhcnkgdGltZW91dCBidXQgc2hvdWxkCgkgIGJlIGdvb2QgZW5vdWdoLgoKMjAxNi0wOS0wOCAxNToxOTozOCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IFVzZSB0aGUgYXZlcmFnZSBkdXJhdGlvbnMgYmFzZWQgb24gdGltZXN0YW1wcyBmb3IgdGhlIFFvUyBwcm9wb3J0aW9uIHdoZW4gZG9pbmcgdHJpY2ttb2RlcwoJICBUaGUgZHVyYXRpb25zIG9mIHRoZSBidWZmZXJzIGFyZSAodXN1YWxseSkgYXNzdW1pbmcgdGhhdCBubyBmcmFtZXMgYXJlIGJlaW5nCgkgIGRyb3BwZWQgYW5kIGFyZSBqdXN0IHRoZSBkdXJhdGlvbnMgY29taW5nIGZyb20gdGhlIHN0cmVhbS4gSG93ZXZlciBpZiB3ZSBkbwoJICB0cmlja21vZGVzLCBmcmFtZXMgYXJlIGJlaW5nIGRyb3BwZWQgcmVndWxhcmx5IGVzcGVjaWFsbHkgaWYgb25seSBrZXkgdW5pdHMKCSAgYXJlIHN1cHBvc2VkIHRvIGJlIHBsYXllZC4KCSAgRml4ZXMgY29tcGxldGVseSBib2d1cyBRb1MgcHJvcG9ydGlvbiB2YWx1ZXMgaW4gdGhlIGFib3ZlIGNhc2UuCgoyMDE2LTA5LTA1IDE4OjA3OjQ5IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogRml4IGJ1aWxkaW5nIHdpdGggbWVzb24gMC4zNAoKMjAxNi0wOC0yNiAyMDowNjo1OSAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogZ3N0L21lc29uLmJ1aWxkOgoJKiBtZXNvbi5idWlsZDoKCSogbWVzb25fb3B0aW9ucy50eHQ6CgkgIG1lc29uOiBBbGxvdyBvdGhlcnMgdG8gYnVpbGQgR0lSIGZpbGVzIHdoZW4gdXNpbmcgR1N0cmVhbWVyIGFzIHN1YnByb2plY3QKCSAgQW5kIGFkZCBhIHdheSB0byBkaXNhYmxlIHRoZSBpbnRyb3NwZWN0aW9uIGFuZCBidW1wIHZlcnNpb24gdG8gMS45LjIKCjIwMTYtMDktMDUgMTE6MTE6MjkgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIGdzdGNvbmZpZy5oLmluOiBBZGQgYW5vdGhlciB2ZXJzaW9uIG9mIHRoZSBTSDQgI2RlZmluZSBhbmQgUzM5MHgKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDczMQoKMjAxNi0wOS0wNSAwOTo1MDoxNyArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIGNvbmZpZzogbmV3ZXIgZ2NjIGRvZXNuJ3Qga25vdyBfX3BwY19fIGFuZCBfX3BwYzY0X18gYW55bW9yZQoJICBfX3BwY19fIGFuZCBfX3BwYzY0X18gYXJlIG5vbi1zdGFuZGFyZCBkZWZpbmVzLCB3ZSBzaG91bGQgdXNlCgkgIF9fcG93ZXJwY19fIGFuZCBfX3Bvd2VycGM2NF9fIGluc3RlYWQgYmVjYXVzZSBuZXdlciBnY2MgZG9lc24ndCBrbm93CgkgIHRoZW0gYW55bW9yZS4KCjIwMTYtMDktMDQgMjA6Mzk6MzEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogZ3N0LWluc3BlY3Q6IGFkZCAqIGZvciBwb2ludGVyIHNpZ25hbCBhcmd1bWVudHMgd2hlcmUgbmVlZGVkCgkgIFByaW50IEdPYmplY3QgYXJndW1lbnQgcHJvcGVybHkgd2l0aCBwb2ludGVyIG1hcmtlcjoKCSAgImNsaWVudC1hZGRlZCIgOiAgdm9pZCB1c2VyX2Z1bmN0aW9uIChHc3RFbGVtZW50KiBvYmplY3QsCgkgIEdPYmplY3QqIGFyZzAsCgkgIGdwb2ludGVyIHVzZXJfZGF0YSk7CgkgIGluc3RlYWQgb2YKCSAgImNsaWVudC1hZGRlZCIgOiAgdm9pZCB1c2VyX2Z1bmN0aW9uIChHc3RFbGVtZW50KiBvYmplY3QsCgkgIEdPYmplY3QgYXJnMCwKCSAgZ3BvaW50ZXIgdXNlcl9kYXRhKTsKCSAgZm9yIGdzdC1pbnNwZWN0LTEuMCB0Y3BzZXJ2ZXJzaW5rLgoKMjAxNi0wOS0wMiAyMzoyMjoxNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL01ha2VmaWxlLmFtOgoJICB0ZXN0czogZG9uJ3QgYnVpbGQgbWlzYyBzdWJkaXIgaWYgYm90aCBleGFtcGxlcyBhbmQgYmVuY2htYXJrcyBoYXZlIGJlZW4gZGlzYWJsZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDc0MAoKMjAxNi0wOS0wMSAxNDoxMzo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIGNvbmZpZzogc3VwcG9ydCBTeXN0ZW0gegoKMjAxNi0wOS0wMSAxMjoyNToyMyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS45LjIgPT09CgoyMDE2LTA5LTAxIDEyOjI0OjQ1ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuOS4yCgoyMDE2LTA5LTAxIDExOjIyOjQ1ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTYtMDgtMzEgMDk6NDk6MDMgKzAyMDAgIENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEFkZCBoaWdoZXItcmVzb2x1dGlvbiBsb3cvaGlnaC13YXRlcm1hcmsgcHJvcGVydGllcwoJICBsb3cvaGlnaC13YXRlcm1hcmsgYXJlIG9mIHR5cGUgZG91YmxlLCBhbmQgZ2l2ZW4gaW4gcmFuZ2UgMC4wLTEuMC4gVGhpcwoJICBtYWtlcyBpdCBwb3NzaWJsZSB0byBzZXQgbG93L2hpZ2ggd2F0ZXJtYXJrcyB3aXRoIGdyZWF0ZXIgcmVzb2x1dGlvbiwKCSAgd2hpY2ggaXMgdXNlZnVsIHdpdGggbGFyZ2UgbXVsdGlxdWV1ZSBtYXggc2l6ZXMgYW5kIHdhdGVybWFya3MgbGlrZSAwLjUlLgoJICBBbHNvIGFkZGluZyBhIHRlc3QgdG8gY2hlY2sgdGhlIGZpbGwgYW5kIHdhdGVybWFyayBsZXZlbCBiZWhhdmlvci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDYyOAoKMjAxNi0wOC0zMSAwOTo0ODo1MyArMDIwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBEaXN0aW5ndWlzaCBiZXR3ZWVuIGJ1ZmZlcmluZyBwZXJjZW50YWdlIGFuZCBidWZmZXJpbmcgbGV2ZWwKCSAgVG8gbWFrZSB0aGUgY29kZSBjbGVhcmVyLCBhbmQgdG8gZmFjaWxpdGF0ZSBmdXR1cmUgaW1wcm92ZW1lbnRzLCBpbnRyb2R1Y2UKCSAgYSBkaXN0aW5jdGlvbiBiZXR3ZWVuIHRoZSBidWZmZXJpbmcgbGV2ZWwgYW5kIHRoZSBidWZmZXJpbmcgcGVyY2VudGFnZS4KCSAgQnVmZmVyaW5nIGxldmVsOiB0aGUgcXVldWUncyBjdXJyZW50IGZpbGwgbGV2ZWwuIFRoZSBsb3cvaGlnaCB3YXRlcm1hcmtzCgkgIGFyZSBpbiB0aGlzIHJhbmdlLgoJICBCdWZmZXJpbmcgcGVyY2VudGFnZTogcGVyY2VudGFnZSByZWxhdGl2ZSB0byB0aGUgbG93L2hpZ2ggd2F0ZXJtYXJrcwoJICAoMCUgPSBsb3cgd2F0ZXJtYXJrLCAxMDAlID0gaGlnaCB3YXRlcm1hcmspLgoJICBUbyB0aGF0IGVuZCwgZ2V0X3BlcmNlbnRhZ2UoKSBpcyByZW5hbWVkIHRvIGdldF9idWZmZXJpbmdfbGV2ZWwoKS4gQWxzbywKCSAgbG93L2hpZ2hfcGVyY2VudCBhcmUgcmVuYW1lZCB0byBsb3cvaGlnaF93YXRlcm1hcmsgdG8gYXZvaWQgY29uZnVzaW9uLgoJICBtcS0+YnVmZmVyaW5nX3BlcmNlbnQgdmFsdWVzIGFyZSBub3cgbm9ybWFsaXplZCBpbiB0aGUgMC4uMTAwIHJhbmdlIGZvcgoJICBidWZmZXJpbmcgbWVzc2FnZXMgaW5zaWRlIHVwZGF0ZV9idWZmZXJpbmcoKSwgYW5kIG5vdCBqdXN0IGJlZm9yZSBzZW5kaW5nCgkgIHRoZSBidWZmZXJpbmcgbWVzc2FnZS4gRmluYWxseSB0aGUgYnVmZmVyaW5nIGxldmVsIHJhbmdlIGlzIHBhcmFtZXRlcml6ZWQKCSAgYnkgYWRkaW5nIGEgbmV3IGNvbnN0YW50IGNhbGxlZCBNQVhfQlVGRkVSSU5HX0xFVkVMLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcwNjI4CgoyMDE2LTA4LTMxIDA5OjQ4OjM4ICswMjAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IFJlbmFtZSBwZXJjZW50L3BlcmNlbnRfY2hhbmdlZCB0byBidWZmZXJpbmdfcGVyY2VudChfY2hhbmdlZCkKCSAgVGhpcyBpcyBhIHByZXJlcXVpc2l0ZSBmb3Igc3Vic2VxdWVudCBjb21taXRzLCBhbmQgbWFrZXMgcXVldWUyIGFuZAoJICBtdWx0aXF1ZXVlIGNvZGUgYSBsaXR0bGUgbW9yZSBjb25zaXN0ZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcwNjI4CgoyMDE2LTA4LTIzIDE0OjU3OjMzICswOTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEZpeCBoaWdoX3RpbWUgd2FrZXVwIGxvZ2ljCgkgIFdoZW4gY2FsY3VsYXRpbmcgdGhlIGhpZ2hfdGltZSwgY2FjaGUgdGhlIGdyb3VwIHZhbHVlIGluIGVhY2ggc2luZ2xlcXVldWUuCgkgIFRoaXMgZml4ZXMgdGhlIGlzc3VlIGJ5IHdoaWNoIHdha2VfdXBfbmV4dF9ub25fbGlua2VkKCkgd291bGQgdXNlIHRoZSBnbG9iYWwKCSAgaGlnaC10aW1lIHRvIGRlY2lkZSB3aGV0aGVyIHRvIHdha2UtdXAgYSB3YWl0aW5nIHRocmVhZCwgaW5zdGVhZCBvZiB0aGUgZ3JvdXAKCSAgb25lLCByZXN1bHRpbmcgaW4gdGhvc2UgdGhyZWFkcyBjb25zdGFudGx5IHNwaW5uaW5nLgoJICBUaWR5IHVwIGEgYml0IHRoZSB3YWl0aW5nIGxvZ2ljIHdoaWxlIHdlJ3JlIGF0IGl0LgoJICBXaXRoIHRoaXMgcGF0Y2gsIHdlIGdvIGZyb20gMjEyJSBwbGF5aW5nIGEgOCBhdWRpbyAvIDggdmlkZW8gZmlsZSBkb3duIHRvIGxlc3MKCSAgdGhhbiAxMCUgKG1vc3Qgb2YgaXQgYmVpbmcgdGhlIHZpZGVvIGRlY29kaW5nKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDIyNQoKMjAxNi0wOC0yOCAxNjowMjoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiBnc3QtaW5zcGVjdDogZG9uJ3QgcHJpbnQgaW50ZXJuYWwgcGFkIHJlcXVlc3QgZnVuY3Rpb24gbmFtZQoJICBUaGlzIGp1c3QgY29uZnVzZXMgcGVvcGxlLCB0aGV5IGxvb2sgYXQgaXQgYW5kIHRyeSB0byBjYWxsIGl0CgkgIGRpcmVjdGx5IGJ5IG5hbWUsIGluc3RlYWQgb2YgdXNpbmcgdGhlIHB1YmxpYyBHc3RFbGVtZW50IEFQSS4KCSAgSXQgc3RhbmRzIHRvIHJlYXNvbiB0aGF0IGl0IGdvZXMgd2l0aG91dCBzYXlpbmcgdGhhdCB3aGVuIGFuCgkgIGVsZW1lbnQgcHJvdmlkZXMgcmVxdWVzdCBwYWRzIHRoYXQgdGhleSBjYW4gYWN0dWFsbHkgYmUKCSAgcmVxdWVzdGVkIHVzaW5nIHRoZSBzdGFuZGFyZCBBUEksIGFuZCB0aGVyZSdzIG5vIHBvaW50IGluCgkgIHByaW50aW5nIGludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbHMgb2YgdGhlIGVsZW1lbnQuCgoyMDE2LTA4LTIzIDEzOjI3OjU4IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIE1ha2UgdXNlIG9mIHRoZSBuZXcgR1NUX0VMRU1FTlRfRkxPV19FUlJPUiBBUEkgYWxsIGFyb3VuZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDE1OAoKMjAxNi0wOC0yMyAxMzoyNzoyMCAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDogQWRkIEFQSSB0byBtb3JlIGVhc2lseSBwb3N0IG1lc3NhZ2VzIGFib3V0IGZsb3dpbmcgaXNzdWVzCgkgIEluIG1hbnkgcGFydHMgb2YgdGhlIGNvZGUgd2UgcmFpc2Ugc3RyZWFtaW5nIGVycm9yIHdoZW4gdGhlIGZsb3cKCSAgZ29lcyB3cm9uZywgYW5kIGVhY2ggdGltZSB3ZSBjcmVhdGUgbW9yZSBvciBsZXNzIHNpbWlsYXJlIGVycm9yCgkgIG1lc3NhZ2UuIEFsc28gdGhhdCBtZXNzYWdlIGRvZXMgbm90IGxldCB0aGUgYXBwbGljYXRpb24ga25vdyB3aGF0CgkgIGhhcyBhY3R1YWxseSBnb25lIHdyb25nLiBJbiB0aGUgbmV3IEFQSSB3ZSBhZGQgYSAiZmxvdy1yZXR1cm4iIGRldGFpbAoJICBmaWVsZCBpbnNpZGUgdGhlIEdzdE1lc3NhZ2Ugc28gdGhhdCB0aGUgYXBwbGljYXRpb24gaGFzIGFsbCB0aGUgaW5mb3JtYXRpb24KCSAgaWYgaXQgbmVlZHMgaXQuCgkgIEFQSToKCSAgR1NUX0VMRU1FTlRfRkxPV19FUlJPUgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcwMTU4CgoyMDE2LTA4LTI2IDE5OjI3OjIyICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSogbWVzb24uYnVpbGQ6CgkgIGdzdGNvbmZpZzogRGVjaWRlIEdTVF9FWFBPUlQgZGVjbGFyYXRpb24gc3R5bGUgYXQgYnVpbGQgdGltZQoJICBXZSBvbmx5IHVzZSBHU1RfRVhQT1JUIGNvbnNpc3RlbnRseSB3aGVuIGJ1aWxkaW5nIHdpdGggTVNWQyBieSB1c2luZyB0aGUKCSAgdmlzdWFsIHN0dWRpbyBkZWZpbml0aW9ucyBmaWxlcyAod2luMzIvY29tbW9uLyouZGVmKSwgc28gYWx3YXlzIGRpc2FibGUKCSAgaXQgd2hlbiBidWlsZGluZyB3aXRoIEF1dG90b29scyBhbmQgb25seSBlbmFibGUgaXQgd2l0aCBNZXNvbiB3aGVuCgkgIGJ1aWxkaW5nIHdpdGggTVNWQy4KCSAgVGhpcyBhbGxvd3MgeW91IHRvIHVzZSBNaW5HVyB0byBsaW5rIHRvIGEgR1N0cmVhbWVyIGJ1aWx0IHdpdGggTVNWQyBhbmQKCSAgZ2V0IHRoZSBjb3JyZWN0IGZ1bmN0aW9uIHByb3RvdHlwZXMgdG8gZmluZCBmdW5jdGlvbnMgYW5kIHZhcmlhYmxlcyBpbgoJICBETExzLgoKMjAxNi0wOC0yNiAxNjoyMTozMCArMDkwMCAgV29uY2h1bCBMZWUgPHdvbmNodWwubGVlQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbS1zZWxlY3Rpb24udHh0OgoJICBkb2NzOiBmaXggdHlwbyBpbiBzdHJlYW0gc2VsZWN0aW9uIGRvY3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvL3Nob3dfYnVnLmNnaT9pZD03NzA0MjgKCjIwMTYtMDgtMjYgMTI6NTU6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZWxlbWVudDogcmVuYW1lIGdzdF9lbGVtZW50X21lc3NhZ2VfbmV3X2RldGFpbHMoKSB0byBnc3RfbWFrZV9lbGVtZW50X21lc3NhZ2VfZGV0YWlscygpCgkgIEZpeGVzIGctaSB3YXJuaW5nICJHc3Q6IENvbnN0cnVjdG9yIHJldHVybiB0eXBlIG1pc21hdGNoCgkgIHN5bWJvbD0nZ3N0X2VsZW1lbnRfbWVzc2FnZV9uZXdfZGV0YWlscycgY29uc3RydWN0ZWQ9J0dzdC5FbGVtZW50JwoJICByZXR1cm49J0dzdC5TdHJ1Y3R1cmUnIi4KCSAgVGhpcyBpcyBhIG5ld2x5LWFkZGVkIGZ1bmN0aW9uIGluIGdpdCB0aGF0IGhhcyBub3QgYmVlbiBpbiBhIHN0YWJsZQoJICByZWxlYXNlIHlldCwgc28gaXQncyBmaW5lIHRvIHJlbmFtZSBpdC4gSXQncyBhbHNvIG9ubHkgdXNlZCBpbmRpcmVjdGx5CgkgIHZpYSBtYWNyb3MuCgoyMDE2LTA4LTI2IDEyOjM1OjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkgIGRvY3M6IGZpeCB2YXJpb3VzIGd0ay1kb2Mgd2FybmluZ3MKCSAgZS5nLiAid2FybmluZzogbXVsdGktbGluZSBzaW5jZSBkb2NzIGZvdW5kIgoKMjAxNi0wOC0yNiAxMjowNDozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGctaTogaW5mbzogYWxsb3cgcGFzc2luZyBOVUxMIHRvIGdzdF9kZWJ1Z19yZW1vdmVfbG9nX2Z1bmN0aW9uKCkKCSAgVXNlZnVsIGZvciByZW1vdmluZyB0aGUgZGVmYXVsdCBoYW5kbGVyIGZyb20gYmluZGluZ3MuCgoyMDE2LTA4LTI1IDE1OjA0OjA2IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBkb2NzL2dzdC9tZXNvbi5idWlsZDoKCSogZG9jcy9saWJzL21lc29uLmJ1aWxkOgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IGRvYzogRml4IGJ1aWxkaW5nIGRvY3VtZW50YXRpb24gd2hlbiB1c2luZyBzdWJwcm9qZWN0cwoJICBhbmQgY2hlY2sgdGhlIHByZXNlbmNlIG9mIGd0ay1kb2MgYmVmb3JlIGJ1aWxkaW5nIHRoZSBkb2N1bWVudGF0aW9uCgoyMDE2LTA4LTI2IDAzOjE3OjQxICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IEltcGxlbWVudCBjYW5faW50ZXJzZWN0IGZvciBHc3RGbGFnU2V0IHR5cGVzCgkgIE1ha2Ugc3VyZSB0aGF0IGdzdF92YWx1ZV9jYW5faW50ZXJzZWN0IHJldHVybnMgVFJVRQoJICBmb3IgR3N0RmxhZ1NldCBjb21iaW5hdGlvbnMgdGhhdCBjYW4gc3VjY2Vzc2Z1bGx5CgkgIGludGVyc2VjdAoKMjAxNi0wOC0wMyAxNToyMDoyMCArMDIwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkgIHF1ZXVlMjogQWRkIGhpZ2hlci1yZXNvbHV0aW9uIGxvdy9oaWdoLXdhdGVybWFyayBwcm9wZXJ0aWVzCgkgIGxvdy9oaWdoLXdhdGVybWFyayBhcmUgb2YgdHlwZSBkb3VibGUsIGFuZCBnaXZlbiBpbiByYW5nZSAwLjAtMS4wLiBUaGlzCgkgIG1ha2VzIGl0IHBvc3NpYmxlIHRvIHNldCBsb3cvaGlnaCB3YXRlcm1hcmtzIHdpdGggZ3JlYXRlciByZXNvbHV0aW9uLAoJICB3aGljaCBpcyB1c2VmdWwgd2l0aCBsYXJnZSBxdWV1ZTIgbWF4IHNpemVzIGFuZCB3YXRlcm1hcmtzIGxpa2UgMC41JS4KCSAgQWxzbyBhZGRpbmcgYSB0ZXN0IHRvIGNoZWNrIHRoZSBmaWxsIGFuZCB3YXRlcm1hcmsgbGV2ZWwgYmVoYXZpb3IuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njk0NDkKCjIwMTYtMDgtMDMgMTU6Mjc6NDAgKzAyMDAgIENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRGlzdGluZ3Vpc2ggYmV0d2VlbiBidWZmZXJpbmcgcGVyY2VudGFnZSBhbmQgYnVmZmVyaW5nIGxldmVsCgkgIFRvIG1ha2UgdGhlIGNvZGUgY2xlYXJlciwgYW5kIHRvIGZhY2lsaXRhdGUgZnV0dXJlIGltcHJvdmVtZW50cywgaW50cm9kdWNlCgkgIGEgZGlzdGluY3Rpb24gYmV0d2VlbiB0aGUgYnVmZmVyaW5nIGxldmVsIGFuZCB0aGUgYnVmZmVyaW5nIHBlcmNlbnRhZ2UuCgkgIEJ1ZmZlcmluZyBsZXZlbDogdGhlIHF1ZXVlJ3MgY3VycmVudCBmaWxsIGxldmVsLiBUaGUgbG93L2hpZ2ggd2F0ZXJtYXJrcwoJICBhcmUgaW4gdGhpcyByYW5nZS4KCSAgQnVmZmVyaW5nIHBlcmNlbnRhZ2U6IHBlcmNlbnRhZ2UgcmVsYXRpdmUgdG8gdGhlIGxvdy9oaWdoIHdhdGVybWFya3MKCSAgKDAlID0gbG93IHdhdGVybWFyaywgMTAwJSA9IGhpZ2ggd2F0ZXJtYXJrKS4KCSAgVG8gdGhhdCBlbmQsIGdldF9idWZmZXJpbmdfcGVyY2VudCgpIGlzIHJlbmFtZWQgdG8gZ2V0X2J1ZmZlcmluZ19sZXZlbCgpLAoJICBhbmQgdGhlIGNvZGUgYXQgdGhlIGVuZCB0aGF0IHRyYW5zZm9ybXMgdG8gdGhlIGJ1ZmZlcmluZyBwZXJjZW50YWdlIGlzCgkgIGZhY3RvcmVkIG91dCBpbnRvIGEgbmV3IGNvbnZlcnRfdG9fYnVmZmVyaW5nX3BlcmNlbnQoKSBmdW5jdGlvbi4gQWxzbywKCSAgdGhlIGJ1ZmZlcmluZyBsZXZlbCByYW5nZSBpcyBwYXJhbWV0ZXJpemVkIGJ5IGFkZGluZyBhIG5ldyBjb25zdGFudCBjYWxsZWQKCSAgTUFYX0JVRkZFUklOR19MRVZFTC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2OTQ0OQoKMjAxNi0wOC0yMyAxMDo1MjozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IHJlbGVhc2U6IGFkZCB0YWcgc2lnbmluZyBjb21tYW5kCgoyMDE2LTA3LTA3IDA4OjAxOjI0ICswMjAwICBBcmplbiBWZWVuaHVpemVuIDxhcmplbi52ZWVuaHVpemVuQHRuby5ubD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBhZGQgZXhwbGljaXQgZ2V0dGVycyBhbmQgc2V0dGVycyBmb3IgYnVmZmVyIGZsYWdzCgkgIFRoZXNlIGNhbiBiZSB1c2VkIGZyb20gYmluZGluZ3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjgzMDEKCjIwMTYtMDgtMjIgMDA6MDE6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9tZXNvbi5idWlsZDoKCSAgbWVzb246IGluc3RhbGwgbGliZ3N0Y2hlY2stMS4wIGFuZCBhZGQgYXBpIHZlcnNpb24gdG8gbmFtZQoKMjAxNi0wOC0yMCAwODo1NDoyNyArMDkwMCAgSG9vbmhlZSBMZWUgPGhvb25oZWUubGVlQGxnZS5jb20+CgoJKiBnc3QvZ3N0c3RyZWFtcy5jOgoJICBzdHJlYW1zOiB1cGRhdGUgYW5kIGVtaXQgbm90aWZ5IHNpZ25hbCBvbmx5IGlmIHRhZ2xpc3QgYWN0dWFsbHkgY2hhbmdlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcwMTYxCgoyMDE2LTA4LTEyIDIwOjI1OjE3ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiAuZ2l0aWdub3JlOgoJKiBjb25maWcuaC5tZXNvbjoKCSogZG9jcy9nc3QvbWVzb24uYnVpbGQ6CgkqIGRvY3MvbGlicy9tZXNvbi5idWlsZDoKCSogZG9jcy9tZXNvbi5idWlsZDoKCSogZ3N0L2J1aWxkX21rZW51bS5weToKCSogZ3N0L21lc29uLmJ1aWxkOgoJKiBnc3QvcGFyc2UvZ2VuX2dyYW1tYXIucHkuaW46CgkqIGdzdC9wYXJzZS9nZW5fbGV4LnB5LmluOgoJKiBnc3QvcGFyc2UvbWVzb24uYnVpbGQ6CgkqIGdzdC9wcmludGYvbWVzb24uYnVpbGQ6CgkqIGxpYnMvZ3N0L2Jhc2UvbWVzb24uYnVpbGQ6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL21lc29uLmJ1aWxkOgoJKiBsaWJzL2dzdC9jaGVjay9tZXNvbi5idWlsZDoKCSogbGlicy9nc3QvY29udHJvbGxlci9tZXNvbi5idWlsZDoKCSogbGlicy9nc3QvaGVscGVycy9tZXNvbi5idWlsZDoKCSogbGlicy9nc3QvbWVzb24uYnVpbGQ6CgkqIGxpYnMvZ3N0L25ldC9tZXNvbi5idWlsZDoKCSogbGlicy9tZXNvbi5idWlsZDoKCSogbWVzb24uYnVpbGQ6CgkqIG1lc29uX29wdGlvbnMudHh0OgoJKiBwa2djb25maWcvbWVzb24uYnVpbGQ6CgkqIHBsdWdpbnMvZWxlbWVudHMvbWVzb24uYnVpbGQ6CgkqIHBsdWdpbnMvbWVzb24uYnVpbGQ6CgkqIHBvL21lc29uLmJ1aWxkOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL21lc29uLmJ1aWxkOgoJKiB0ZXN0cy9jaGVjay9tZXNvbi5idWlsZDoKCSogdGVzdHMvZXhhbXBsZXMvYWRhcHRlci9tZXNvbi5idWlsZDoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9tZXNvbi5idWlsZDoKCSogdGVzdHMvZXhhbXBsZXMvaGVsbG93b3JsZC9tZXNvbi5idWlsZDoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L21lc29uLmJ1aWxkOgoJKiB0ZXN0cy9leGFtcGxlcy9tZXNvbi5idWlsZDoKCSogdGVzdHMvZXhhbXBsZXMvbmV0Y2xvY2svbWVzb24uYnVpbGQ6CgkqIHRlc3RzL2V4YW1wbGVzL3B0cC9tZXNvbi5idWlsZDoKCSogdGVzdHMvZXhhbXBsZXMvc3RlcHBpbmcvbWVzb24uYnVpbGQ6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbWlkZGVtdXgvbWVzb24uYnVpbGQ6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvbWVzb24uYnVpbGQ6CgkqIHRlc3RzL21lc29uLmJ1aWxkOgoJKiB0ZXN0cy9taXNjL21lc29uLmJ1aWxkOgoJKiB0b29scy9tZXNvbi5idWlsZDoKCSAgQWRkIHN1cHBvcnQgZm9yIE1lc29uIGFzIGFsdGVybmF0aXZlL3BhcmFsbGVsIGJ1aWxkIHN5c3RlbQoJICBodHRwczovL2dpdGh1Yi5jb20vbWVzb25idWlsZC9tZXNvbgoJICBXaXRoIGNvbnRyaWJ1dGlvbnMgZnJvbToKCSAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCSAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoJICBKdXNzaSBQYWtrYW5lbiA8anBha2thbmVAZ21haWwuY29tPiAob3JpZ2luYWwgcG9ydCkKCSAgSGlnaGxpZ2h0cyBvZiB0aGUgZmVhdHVyZXMgcHJvdmlkZWQgYXJlOgoJICAqIEZhc3RlciBidWlsZHMgb24gTGludXggKH40MC01MCUgZmFzdGVyKQoJICAqIFRoZSBhYmlsaXR5IHRvIGJ1aWxkIHdpdGggTVNWQyBvbiBXaW5kb3dzCgkgICogR2VuZXJhdGUgVmlzdWFsIFN0dWRpbyBwcm9qZWN0IGZpbGVzCgkgICogR2VuZXJhdGUgWENvZGUgcHJvamVjdCBmaWxlcwoJICAqIE11Y2ggZmFzdGVyIGJ1aWxkcyBvbiBXaW5kb3dzIChvbi1wYXIgd2l0aCBMaW51eCkKCSAgKiBTZXJpb3VzbHkgZmFzdCBjb25maWd1cmUgYW5kIGJ1aWxkaW5nIG9uIGVtYmVkZGVkCgkgIC4uLiBhbmQgbWFueSBtb3JlLiBGb3IgbW9yZSBkZXRhaWxzIHNlZToKCSAgaHR0cDovL2Jsb2cubmlyYmhlZWsuaW4vMjAxNi8wNS9nc3RyZWFtZXItYW5kLW1lc29uLW5ldy1ob3BlLmh0bWwKCSAgaHR0cDovL2Jsb2cubmlyYmhlZWsuaW4vMjAxNi8wNy9idWlsZGluZy1hbmQtZGV2ZWxvcGluZy1nc3RyZWFtZXItdXNpbmcuaHRtbAoJICBCdWlsZGluZyB3aXRoIE1lc29uIHNob3VsZCB3b3JrIG9uIGJvdGggTGludXggYW5kIFdpbmRvd3MsIGJ1dCBtYXkKCSAgbmVlZCBhIGZldyBtb3JlIHR3ZWFrcyBvbiBvdGhlciBvcGVyYXRpbmcgc3lzdGVtcy4KCjIwMTYtMDgtMTMgMTM6NTU6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkgIE1vdmUgZ3N0Y29uZmlnLmggYmFjayB0byBub3JtYWwgaW5jbHVkZSBkaXIKCSAgTm93IHRoYXQgaXQncyBhcmNoLWluZGVwZW5kZW50IGFnYWluLiBXaWxsIG5lZWQgZml4ZXMgaW4gY2VyYmVybyB0b28uCgoyMDE2LTA2LTIxIDE4OjU5OjQ5ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgZ3N0Y29uZmlnLmg6IERldGVjdCB1bmFsaWduZWQgYWNjZXNzIHN1cHBvcnQgYXQgY29tcGlsZS10aW1lCgkgIFRoaXMgbWFrZXMgZ3N0Y29uZmlnLmggY29tcGxldGVseSBhcmNoLWluZGVwZW5kZW50LiBTaG91bGQgY292ZXIgYWxsCgkgIGNvbXBpbGVycyB0aGF0IGdzdHJlYW1lciBpcyBrbm93biB0byBidWlsZCBvbiwgYW5kIGFsbCBhcmNoaXRlY3R1cmVzCgkgIHRoYXQgSSBjb3VsZCBmaW5kIGluZm9ybWF0aW9uIG9uLiBQZW9wbGUgYXJlIGVuY291cmFnZWQgdG8gZmlsZSBidWdzIGlmCgkgIHRoZWlyIHBsYXRmb3JtL2FyY2ggaXMgbWlzc2luZy4KCjIwMTYtMDgtMTMgMDk6NTU6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBNYWtlZmlsZS5hbToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSogZ3N0L2dzdHRyYWNlLmg6CgkqIHBvL1BPVEZJTEVTLmluOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgUmVtb3ZlIG9sZCBhbGxvYyB0cmFjaW5nIGNvZGUgbm93IHRoYXQgd2UgaGF2ZSBhIEdzdFRyYWNlci1iYXNlZCByZXBsYWNlbWVudAoJICBJdCdzIGJlZW4gaW50ZXJuYWwgQVBJIG9ubHkgaW4gMS54LgoKMjAxNi0wOC0xMiAxNjoxNToyNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogUG9zdCBidWZmZXJpbmcgbWVzc2FnZXMgZWFybGllciBpbiByaW5nYnVmZmVyIG1vZGUKCSAgSW4gcmluZ2J1ZmZlciBtb2RlIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHdlIHBvc3QgYnVmZmVyaW5nIG1lc3NhZ2VzICpiZWZvcmUqCgkgIGJsb2NraW5nIHRvIHdhaXQgZm9yIGRhdGEgdG8gYmUgZHJhaW5lZC4KCSAgV2l0aG91dCB0aGlzLCB3ZSB3b3VsZCBlbmQgdXAgaW4gc2l0dWF0aW9ucyBsaWtlIHRoaXM6CgkgICogcGlwZWxpbmUgaXMgcHJlLXJvbGxpbmcKCSAgKiBEb3duc3RyZWFtIGRlbXV4ZXIvZGVjb2RlciBoYXMgcHVzaGVkIGRhdGEgdG8gYWxsIHNpbmtzLCBhbmQgZGVtdXhlciB0aHJlYWQKCSAgaXMgYmxvY2tpbmcgZG93bnN0cmVhbSAoaS5lLiBub3QgcHVsbGluZyBmcm9tIHVwc3RyZWFtL3F1ZXVlMikuCgkgICogVGhlcmVmb3JlIHBpcGVsaW5lIGhhcyBwcmUtcm9sbGVkIC4uLgoJICAqIC4uLiBidXQgcXVldWUyIGhhc24ndCBmaWxsZWQgdXAgeWV0LCB0aGVyZWZvcmUgdGhlIGFwcGxpY2F0aW9uIHdhaXRzIGZvcgoJICB0aGUgYnVmZmVyaW5nIDEwMCUgbWVzc2FnZXMgYmVmb3JlIHNldHRpbmcgdGhlIHBpcGVsaW5lIHRvIFBMQVlJTkcKCSAgKiBCdXQgcXVldWUyIGNhbid0IHBvc3QgdGhhdCBtZXNzYWdlLCBzaW5jZSB0aGUgMTAwJSBtZXNzYWdlIHdpbGwgYmUgcG9zdGVkCgkgICphZnRlciogdGhlcmUgaXMgcm9vbSBhdmFpbGFibGUgZm9yIHRoYXQgbGFzdCBidWZmZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njk4MDIKCjIwMTYtMDgtMDggMTY6NDI6MDYgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiByZW1vdmVkIHJlZHVuZGFudCBjYWxsIHRvIGdfdGhyZWFkX3NlbGYKCSAgUmVtb3ZlIGFuIHVubmVlZGVkIGNhbGwgdG8gZ190aHJlYWRfc2VsZiBhbmQgbWlub3IgY29kaW5nIHN0eWxlIGZpeC4KCjIwMTYtMDMtMTYgMTg6MDA6MTUgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IEhhbmRsZSBzdHJlYW0tZ3JvdXAtZG9uZQoJICBIYW5kbGUgdGhlIG5ldyBzdHJlYW0tZ3JvdXAtZG9uZSBtZXNzYWdlIHRvIHVuYmxvY2sgcGFkcyB3aGljaAoJICBhcmUgd2FpdGluZyBmb3IgdGhlIHJ1bm5pbmcgdGltZSB0byBhZHZhbmNlIG9uIHRoYXQgZ3JvdXAuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njg5OTUKCjIwMTYtMDMtMTQgMTQ6MjA6NDIgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBldmVudHM6IEltcGxlbWVudCB0aGUgc3RyZWFtLWdyb3VwLWRvbmUgZXZlbnQKCSAgQSBuZXcgZXZlbnQgd2hpY2ggcHJlY2VkZXMgRU9TIGluIHNpdHVhdGlvbnMgd2hlcmUgd2UKCSAgbmVlZCBkb3duc3RyZWFtIHRvIHVuYmxvY2sgYW55IHBhZHMgd2FpdGluZyBvbiBhIHN0cmVhbQoJICBiZWZvcmUgd2UgY2FuIHNlbmQgRU9TLiBFLmcsIGRlY29kZWJpbiBkcmFpbmluZyBhIGNoYWluCgkgIHNvIGl0IGNhbiBzd2l0Y2ggcGFkcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODk5NQoKMjAxNi0wNy0yNSAxMToyMjozNiArMDIwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVzc2FnZTogQWRkIHJlZGlyZWN0IG1lc3NhZ2UKCSAgUmVkaXJlY3Rpb24gbWVzc2FnZXMgYXJlIGFscmVhZHkgdXNlZCBpbiBmcmFnbWVudGVkIHNvdXJjZXMgYW5kIGluCgkgIHVyaWRlY29kZWJpbiwgc28gaXQgbWFrZXMgc2Vuc2UgdG8gaW50cm9kdWNlIHRoZXNlIGFzIGFuIG9mZmljaWFsIG1lc3NhZ2UKCSAgdHlwZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzMTY3MwoKMjAxNi0wNy0yNSAxOToxNToxNSArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogV2FrZSBvdGhlciBwYWRzIHdoZW4gc2VsZWN0ZWQgZ29lcyBFT1MKCSAgT3RoZXIgcGFkcyB0aGF0IGFyZSB3YWl0aW5nIGZvciB0aGUgc3RyZWFtIG9uIHRoZSBzZWxlY3RlZAoJICBwYWQgdG8gYWR2YW5jZSBiZWZvcmUgdGhleSBmaW5pc2ggd2FpdGluZyB0aGVtc2VsdmVzCgkgIHNob3VsZCBiZSBnaXZlbiB0aGUgY2hhbmNlIHRvIGRvIHNvIHdoZW4gdGhlIHNlbGVjdGVkIHBhZAoJICBnb2VzIEVPUy4gRml4ZXMgcHJvYmxlbXMgd2hlcmUgaW5wdXQgc3RyZWFtcyBjYW4gZW5kIHVwCgkgIHdhaXRpbmcgZm9yZXZlciBpZiB0aGUgYWN0aXZlIHN0cmVhbSBnb2VzIEVPUyBlYXJsaWVyIHRoYW4KCSAgdGhlaXIgb3duIGVuZCB0aW1lLgoKMjAxNi0wNy0yNCAwMTozNTo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGVsZW1lbnQ6IGZpeCBHU1RfRUxFTUVOVF9FUlJPUigpIGVycm9yIGNvZGUgZXhwYW5zaW9uCgkgIEluIHNvbWUgY29ybmVyIGNhc2VzLCB0aGUgZXJyb3IgJ2NvZGUnIHBhcnQgcGFzc2VkIHRvCgkgIEdTVF9FTEVNRU5UX0VSUk9SKCkgaXMgYSB2YWxpZCBkZWZpbmUgYXMgd2VsbCwgaW4gd2hpY2gKCSAgY2FzZSBpdCB3b24ndCBzdXJ2aXZlIHR3byBsZXZlbHMgb2YgbWFjcm8gZXhwYW5zaW9uLCBidXQKCSAgb25seSBvbmUuIEZpeGVzOgoJICBvc3M0LXNpbmsuYzogSW4gZnVuY3Rpb24g4oCYZ3N0X29zczRfc2lua19vcGVu4oCZOgoJICBlcnJvcjog4oCYR1NUX1JFU09VUkNFX0VSUk9SXzB4MDAwMDAwMDLigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCgkgIEdTVF8gIyMgZG9tYWluICMjIF9FUlJPUl8gIyMgY29kZSwgX190eHQsIF9fZGJnLCBfX0ZJTEVfXywKCSAgd2hpY2ggaXMgZnJvbSBHU1RfRUxFTUVOVF9FUlJPUihlbCxSRVNPVVJDRSxPUEVOX1dSSVRFLC4uKQoJICBhbmQgT1BFTl9XUklURSBoYXBwZW5zIHRvIGJlIGRlZmluZWQgdG8gMiBoZXJlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2ODA2CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjkxMTcKCjIwMTYtMDctMjIgMTc6MzI6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBmaXggc29tZSBub25zZW5zaWNhbCBhbm5vdGF0aW9ucwoKMjAxNi0wNy0yMiAxNToyNTowOSArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgR1NUX0VMRU1FTlRfKl9XSVRIX0RFVEFJTFMgdG8gZG9jIGxpc3QKCjIwMTYtMDctMjIgMTU6MDQ6NTggKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogbGlzdCBuZXcgbWVzc2FnZSBkZXRhaWxzIGFwaXMgd2hlcmUgdGhleSBzZWVtIHRvIGJlbG9uZwoKMjAxNi0wNy0yMiAxNDo1OTo1NiArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbGliZ3N0cmVhbWVyLmRlZjogZml4IG1lbnRpb25zIG9mIG5ldyBtZXNzYWdlIGRldGFpbHMgYXBpCgkgIEkgaGFkIG5vdCB1cGRhdGVkIGl0IGFmdGVyIHRoZSByZXZpZXcgY2hhbmdlcwoKMjAxNi0wMy0wMiAxMToyMjoyMyArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVzc2FnZTogbmV3IEFQSSBmb3IgYWRkaXRpb25hbCBjdXN0b20gZGF0YSB0byBlcnJvciBtZXNzYWdlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2ODA2CgoyMDE2LTA3LTIwIDEyOjIyOjEwICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsZWFrcy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGVha3MuaDoKCSAgdHJhY2VyczogbGVha3M6IHVwZGF0ZSB0eXBlIGZpbHRlciBsYXRlciBmb3IgdW5rbm93biB0eXBlcwoJICBUaGlzIGFsbG93IHVzIHRvIGZpbHRlciB1c2luZyBhbiBvYmplY3QgdHlwZSB3aGljaCBpcyBpbXBsZW1lbnRlZAoJICBieSBhIHBsdWdpbiBsaWtlLCBzYXksIEdzdEd0a0dMU2luay4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODk4OQoKMjAxNi0wNy0xOSAxNDo0NTo1MyArMDIwMCAgQXVyw6lsaWVuIFphbmVsbGkgPGF1cmVsaWVuLnphbmVsbGlAcGFycm90LmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGFkZCBnLWkgdHJhbnNmZXIgYW5ub3RhdGlvbnMgdG8gcGVlay9wb3AvcmVhZF9idWZmZXIvdGFrZV9idWZmZXIgZnVuY3Rpb25zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njg5NDgKCjIwMTYtMDctMTkgMjM6MTg6MjQgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RuZXRjbGllbnRjbG9jay5jOgoJICB0ZXN0czogVXNlIGdzdF9jbG9ja193YWl0X2Zvcl9zeW5jICgpIGZvciBuZXQgY2xpZW50IGNsb2NrCgkgIEluc3RlYWQgb2YgbG9vcGluZywgdXNlIHRoZSBnc3RfY2xvY2tfd2FpdF9mb3Jfc3luYygpIGZ1bmN0aW9uCgkgIHRvIGdpdmUgY2xvY2tzIHVwIHRvIDEgc2Vjb25kIHRvIHN5bmNocm9uaXNlCgoyMDE2LTA3LTEzIDE1OjQzOjIxICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IGZpeCBhbm5vdGF0aW9uIG9mIHBhcnNlX3N0cmVhbV97Y29sbGVjdGlvbixzdHJlYW1zX3NlbGVjdGVkfQoJICBnc3Rfc3RydWN0dXJlX2lkX2dldCgpIHJldHVybnMgYSBuZXcgcmVmZXJlbmNlIHNvIHRoZSByZXR1cm5lZCBvYmplY3QgaXMKCSAgYWN0dWFsbHkgKHRyYW5zZmVyIGZ1bGwpLgoJICBUaGUgdW5pdCB0ZXN0cyB3YXMgYWxyZWFkeSB1bnJlZmZpbmcgdGhlIG9iamVjdHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njg3NzYKCjIwMTYtMDctMTMgMTU6NDM6MjEgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogZml4IGFubm90YXRpb24gb2YgcGFyc2VfZGV2aWNlX3thZGRlZCxyZW1vdmVkfQoJICBnc3Rfc3RydWN0dXJlX2lkX2dldCgpIHJldHVybnMgYSBuZXcgcmVmZXJlbmNlIHNvIHRoZSByZXR1cm5lZCBkZXZpY2UgaXMKCSAgYWN0dWFsbHkgKHRyYW5zZmVyIGZ1bGwpLgoJICBUaGUgY29kZSB1c2luZyB0aGlzIEFQSSB3YXMgYWxyZWFkeSBjb3JyZWN0IGJ1dCB0aGUgY29kZSBleGFtcGxlIGluCgkgIGNvbW1lbnRzIHdhcyBub3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njg3NzYKCjIwMTYtMDctMTQgMTY6NDA6MjIgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFkZCBnLWkgdHJhbnNmZXIgYW5ub3RhdGF0aW9uIHRvIF9zdG9yZV9zdGlja3lfZXZlbnQoKQoJICBGb3IgY2xhcml0eS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODgxMAoKMjAxNi0wNy0xMiAxMjozMjo1NiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBGaXggYXV0b21hdGljLWVvcz1mYWxzZSBtb2RlIGlmIGEgc2VnbWVudC5zdG9wIGlzIGdpdmVuCgkgIElmIHNlZ21lbnQuc3RvcCB3YXMgZ2l2ZW4sIGFuZCB0aGUgc3ViY2xhc3MgcHJvdmlkZXMgYSBzaXplIHRoYXQgbWlnaHQgYmUKCSAgc21hbGxlciB0aGFuIHNlZ21lbnQuc3RvcCBhbmQgYWxzbyBzbWFsbGVyIHRoYW4gdGhlIGFjdHVhbCBzaXplLCB3ZSB3b3VsZAoJICBhbHJlYWR5IHN0b3AgdGhlcmUuCgkgIEluc3RlYWQgdHJ5IHJlYWRpbmcgdXAgdG8gc2VnbWVudC5zdG9wLCB0aGUgZ29hbCBpcyB0byBpZ25vcmUgdGhlIChwb3NzaWJseQoJICBpbmFjY3VyYXRlKSBzaXplIHRoZSBzdWJjbGFzcyBnaXZlcyBhbmQgZmluaXNoIHVudGlsIHNlZ21lbnQuc3RvcCBvciB3aGVuIHRoZQoJICBzdWJjbGFzcyB0ZWxscyB1cyB0byBzdG9wLgoKMjAxNi0wNy0xMSAyMToxMzoyOCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZjM2M2IzMiB0byBmNDljNTVlCgoyMDE2LTA3LTExIDE4OjQ1OjQ5ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvLmM6CgkgIGJlbmNobWFya3M6IEZpeCBwb3RlbnRpYWwgc3RhY2sgY29ycnVwdGlvbiBpbiBjYXBzbmVnbyB0ZXN0CgkgIGZsYXZvdXJfc3RyIGlzIGEgbm9uLWNvbnN0IHBvaW50ZXIgdGhhdCB3aWxsIGJlIHdyaXR0ZW4gdG8gaWYgdGhlIC1mCgkgIG9wdGlvbiBpcyBwYXNzZWQKCjIwMTYtMDctMTEgMTE6MzQ6MDIgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxlYWtzLmM6CgkgIGxlYWtzOiBjaGVjayByZXR1cm4gdmFsdWVzIG9mIGxpYnVud2luZCBjYWxscwoKMjAxNi0wNy0xMSAwOTo1ODo0NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRml4IGF2ZXJhZ2UgaW5wdXQgcmF0ZSBjYWxjdWxhdGlvbiBvbiBzbWFsbCBpbnB1dCByYW5nZQoJICBXaGVuIGRlYWxpbmcgd2l0aCBzbWFsbC1pc2ggaW5wdXQgZGF0YSBjb21pbmcgaW50byBxdWV1ZTIsIHN1Y2ggYXMKCSAgYWRhcHRpdmVkZW11eCBmcmFnbWVudHMsIHdlIHdvdWxkIG5ldmVyIHRha2UgaW50byBhY2NvdW50IHRoZSBsYXN0CgkgIDwyMDBtcyBvZiBkYXRhIGNvbWluZyBpbi4KCSAgVGhlIHByb2JsZW0gaXMgdGhhdCB1c3VhbGx5IG9uIFRDUCBjb25uZWN0aW9uIHRoZSBkb3dubG9hZCByYXRlCgkgIGdyYWR1YWxseSBpbmNyZWFzZXMgKGkuZS4gdGhlIHJhdGUgaXMgbG93ZXIgYXQgdGhlIGJlZ2lubmluZyBvZiBhCgkgIGRvd25sb2FkIHRoYW4gaXQgaXMgbGF0ZXIgb24pLiBDb21iaW5lZCB3aXRoIHNtYWxsIGRvd25sb2FkIHRpbWUgKGxlc3MKCSAgdGhhbiBhIHNlY29uZCkgd2Ugd291bGQgZW5kIHVwIHdpdGggYSBjb21wdXRlZCBhdmVyYWdlIGlucHV0IHJhdGUKCSAgd2hpY2ggd2FzIHNvbWV0aW1lcyB1cCB0byAzMC01MCUgb2ZmIGZyb20gdGhlICphY3R1YWwqIGF2ZXJhZ2UgaW5wdXQKCSAgcmF0ZSBmb3IgdGhhdCBmcmFnbWVudC4KCSAgSW4gb3JkZXIgdG8gZml4IHRoaXMsIGZvcmNlIHRoZSBhdmVyYWdlIGlucHV0IHJhdGUgY2FsY3VsYXRpb24gd2hlbgoJICB3ZSByZWNlaXZlIGFuIEVPUyBzbyB0aGF0IHdlIHRha2UgaW50byBhY2NvdW50IHRoYXQgZmluYWwgd2luZG93CgkgIG9mIGRhdGEuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njg2NDkKCjIwMTYtMDctMDggMTY6MzE6NTYgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogd2Vha191bnJlZjogZGlzcGxheSB0aGUgcG9pbnRlciBvZiB0aGUgb2JqZWN0IGlmIGZhaWxpbmcKCSAgVGhhdCdzIGdlbmVyYWxseSB0aGUgbW9zdCB1c2VmdWwgaW5mb3JtYXRpb24gdG8gaGVscCBkZWJ1Z2dpbmcgdGhlCgkgIHByb2JsZW0uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njg1NzkKCjIwMTYtMDctMDggMTY6Mjk6MzggKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IHByb3Blcmx5IGRpc3BsYXkgdGhlIHR5cGUgb2YgdGhlIHJlbW92ZWQgbWVzc2FnZQoJICBNYWtlcyBkZWJ1Z2dpbmcgZWFzaWVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY4NTc5CgoyMDE2LTA3LTA4IDE3OjQ2OjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogcmUtY3JlYXRlIHRocmVhZHBvb2wgYWZ0ZXIgY2xlYW5pbmcgdXAgdGFza3MKCSAgV2UgZG9uJ3QgZnJlZSB0aGlzIGZyb20gZ3N0X2RlaW5pdCgpIGJ1dCBmcm9tIGdzdF90YXNrX2NsZWFudXBfYWxsKCksCgkgIHNvIG1vcmUgR1N0cmVhbWVyIEFQSSBtYXkgYmUgY2FsbGVkLiBJbiBwYXJ0aWN1bGFyIG1ha2VzIHVuaXQgdGVzdHMKCSAgd29yayBhZ2FpbiB3aXRoIENLX0ZPUks9bm8uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njg1NzcKCjIwMTYtMDctMDggMTY6NTM6NTEgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxlYWtzLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsZWFrcy5oOgoJICBsZWFrczogd2FybiBpZiBvYmplY3QgaXMgZGVzdHJveWVkIHdoaWxlIHRoZSB0cmFjZXIgaXMgZGlzcG9zaW5nCgkgIFRoaXMgc2hvdWxkIG5vdCBoYXBwZW4gYW5kIGdlbmVyYWxseSBtZWFucyBzb21lIHRocmVhZCBpcyBzdGlsbCBydW5uaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY4NTc4CgoyMDE2LTA3LTA4IDE2OjM2OjAxICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJICBlbGVtZW50OiBjbGVhbiB1cCB0aHJlYWQgcG9vbCBmcm9tIGdzdF90YXNrX2NsZWFudXBfYWxsKCkKCSAgVGhpcyBlbnN1cmVzIHRoYXQgYWxsIGFzeW5jIG9wZXJhdGlvbnMgKHN0YXJ0ZWQgZnJvbSBnc3RfZWxlbWVudF9jYWxsX2FzeW5jKCkpCgkgIGhhdmUgYmVlbiBjb21wbGV0ZWQgYW5kIHNvIHRoZXJlIGlzIG5vIGV4dHJhIHRocmVhZCBydW5uaW5nLgoJICBGaXggcmFjZXMgd2hlbiBjaGVja2luZyBmb3IgbGVha3Mgb24gdW5pdCB0ZXN0cyBhcyBzb21lIG9mIHRob3NlCgkgIG9wZXJhdGlvbnMgd2VyZSBzdGlsbCBydW5uaW5nIHdoZW4gdGhlIGxlYWtzIHRyYWNlciB3YXMgY2hlY2tpbmcgZm9yCgkgIGxlYWtlZCBvYmplY3RzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY4NTc3CgoyMDE2LTA3LTA4IDExOjE1OjA2ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxlYWtzLmM6CgkgIGxlYWtzIHRyYWNlcjogdXNlIEdfT1NfVU5JWCB0byBjaGVjayBmb3Igc2lnbmFsIHN1cHBvcnQKCSAgQ2hlY2tpbmcgZm9yIHNpZ25hbC5oIGlzIG5vdCBnb29kIGVub3VnaCBhcyBpdCdzIHByZXNlbnQgaW4gV2luZG93cy4KCSAgVGhvc2Ugc2lnbmFscyBhcmUgVU5JWCBzcGVjaWZpYyBhbnl3YXkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njc4NTcKCjIwMTYtMDYtMjIgMTY6MjU6MTYgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyYWNpbmcudHh0OgoJKiBwbHVnaW5zL3RyYWNlcnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsZWFrcy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGVha3MuaDoKCSAgbGVha3MgdHJhY2VyOiBhZGQgY3JlYXRpb24gc3RhY2sgdHJhY2Ugc3VwcG9ydAoJICBUaGlzIGFsbG93IHVzIHRvIHByb3ZpZGUgdGhlIHRyYWNlIG9mIGxlYWtlZCBvYmplY3RzIG1ha2luZyBpdCBlYXNpZXIKCSAgdG8gZGVidWcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njc4NjIKCjIwMTYtMDYtMDEgMTE6MDg6MzkgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC10cmFjaW5nLnR4dDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxlYWtzLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsZWFrcy5oOgoJICBsZWFrcyB0cmFjZXI6IGFkZCBjaGVja3BvaW50IHN1cHBvcnQgdXNpbmcgU0lHVVNSMgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY3ODU3CgoyMDE2LTA1LTMxIDE2OjU2OjI2ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9kZXNpZ24vcGFydC10cmFjaW5nLnR4dDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxlYWtzLmM6CgkgIGxlYWtzIHRyYWNlcjogbG9nIGFsaXZlIG9iamVjdHMgd2hlbiByZWNlaXZpbmcgU0lHVVNSMQoJICBXZSBkb24ndCB3YW50IHRvIGF1dG9tYXRpY2FsbHkgY2F0Y2ggc2lnbmFscyBzbyB1c2UgYW4gZW52IHZhcmlhYmxlIHRvCgkgIGVuYWJsZSB0aGlzIGZlYXR1cmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njc4NTcKCjIwMTYtMDctMDcgMTM6MTU6NTEgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IE9ubHkgZm9yd2FyZCBzdGlja3kgZXZlbnRzIG9uIEdBUCBldmVudHMgaWYgbmVlZGVkCgkgIFRoYXQgaXMsIGlmIHRoZSBhY3RpdmUgcGFkIGNoYW5nZWQgYW5kIGlmIGZvcndhcmRpbmcgb2Ygc3RpY2t5IGV2ZW50cyBpcwoJICByZXF1ZXN0ZWQgYXQgYWxsLiBXZSBvdGhlcndpc2UgZm9yd2FyZCBldmVudHMgdG9vIG9mdGVuLgoKMjAxNi0wNy0wNSAxNjo1MDoxNiArMDIwMCAgTWlndWVsIFBhcsOtcyBEw61heiA8bXBhcmlzZGlhekBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogY2hlY2sgcXVlcnkgY2FwcyBhbnN3ZXJlZCBhbmQgY2FwcyBub3QgTlVMTAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY4NDUwCgoyMDE2LTA3LTA2IDEzOjUwOjU2ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjkuMSA9PT0KCjIwMTYtMDctMDYgMTM6MDU6MDIgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuOS4xCgoyMDE2LTA3LTA2IDExOjM3OjU2ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNi0wNy0wNiAxMDoxNzozNyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2RhLnBvOgoJKiBwby9oci5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3NrLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNi0wNy0wNSAxMjoxNzoxOCArMDIwMCAgSmFuIEFsZXhhbmRlciBTdGVmZmVucyAoaGVmdGlnKSA8amFuLnN0ZWZmZW5zQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRG9uJ3QgYWRkIGNhbGN1bGF0ZWQgYml0cmF0ZXMgdW50aWwgdGhyZXNob2xkCgkgIFdhaXRpbmcgYmVmb3JlIHBvc3RpbmcgY2FsY3VsYXRlZCBiaXRyYXRlcyBzZWVtcyB0byBiZSB0aGUKCSAgaW50ZW50IG9mIHRoZSBjb2RlLCBzbyBhdm9pZCBhZGRpbmcgdGhlbSB0byB0aGUgdGFnIGxpc3QKCSAgcHVzaGVkIHdpdGggdGhlIGZpcnN0IGZyYW1lLgoJICBXaGVuIHRoZSB0aHJlc2hvbGQgaXMgcmVhY2hlZCwgZ3N0X2Jhc2VfcGFyc2VfdXBkYXRlX2JpdHJhdGVzCgkgIHNldHMgdGFnc19jaGFuZ2VkLCBzbyB0aGlzIHBvc3RzIHRoZSBjYWxjdWxhdGVkIG9uZXMgcmlnaHQKCSAgdGhhdCBtb21lbnQuCgkgIFRoaXMgcHJldmVudHMgYW4gaW5zYW5lIGF2ZXJhZ2UgY2FsY3VsYXRlZCBmcm9tIGp1c3QgdGhlCgkgIGZpcnN0IChrZXkpIGZyYW1lIGZyb20gZ2V0dGluZyBwb3N0ZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njg0MzkKCjIwMTYtMDctMDQgMTA6MDA6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IE1ha2Ugc3VyZSB0byBub3QgY3JlYXRlIGFuIGludmFsaWQgZXZlbnQgb3JkZXIgd2hlbiBnZW5lcmF0aW5nIHRoZSBkZWZhdWx0IENBUFMgZXZlbnQgYmVjYXVzZSBvZiBhIEdBUCBldmVudAoJICBUaGVyZSBtdXN0IGJlIGEgU0VHTUVOVCBldmVudCBiZWZvcmUgdGhlIEdBUCBldmVudCwgYW5kIFNFR01FTlQgZXZlbnRzIG11c3QKCSAgY29tZSBhZnRlciBhbnkgQ0FQUyBldmVudC4gV2UgaG93ZXZlciBkaWQgbm90IHByb2R1Y2UgYW55IENBUFMgeWV0LCBzbyB3ZSBuZWVkCgkgIHRvIGVuc3VyZSB0byBpbnNlcnQgdGhlIENBUFMgZXZlbnQgYmVmb3JlIHRoZSBTRUdNRU5UIGV2ZW50IGludG8gdGhlIHBlbmRpbmcKCSAgZXZlbnRzIGxpc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjY5NzAKCjIwMTYtMDctMDEgMjI6MzQ6NTkgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZ3N0aW5mbzogQXZvaWQgZ2NjIDYgd2FybmluZyB0aGF0IGJyZWFrcyB0aGUgdGVzdHMgYnVpbGQKCSAgZ2NjIDYgaGFzIHByb2JsZW1zIGRldGVjdGluZyBhbmQgYXZvaWRpbmcgdGhyb3dpbmcKCSAgYSB3YXJuaW5nIGZvciB0YXV0b2xvZ2ljYWwgY29tcGFyZXMgaW4gbWFjcm9zICh0aGV5CgkgIHNob3VsZCBvbmx5IHRyaWdnZXIgZm9yIGNvbXBhcmVzIG91dHNpZGUgbWFjcm9zKS4KCSAgQXZvaWQgdGhlbSB3aXRoIGEgbmFzdHkgY2FzdCBvZiBvbmUgcGFyYW1ldGVyIHRvIHZvaWQgKgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0NTI2CgoyMDE2LTA3LTAxIDA5OjQ0OjEyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEZpeCBiZWhhdmlvdXIgd2l0aCBub3QtbGlua2VkIGFuZCBlb3MgcGFkcwoJICBUaGlzIGlzIGFuIHVwZGF0ZSBvbiBjOWI2ODQ4ODg1ZjQ2NzVkNDQ3ZTgyM2M4ZmIxMTdlMjQ3NjU4MjUyCgkgIG11bHRpcXVldWU6IEZpeCBub3QtbGlua2VkIHBhZCBoYW5kbGluZyBhdCBFT1MKCSAgV2hpbGUgdGhhdCBjb21taXQgZGlkIGZpeCB0aGUgYmVoYXZpb3VyIGlmIHVwc3RyZWFtIHNlbnQgYSBHU1RfRVZFTlRfRU9TLAoJICBpdCB3b3VsZCBicmVhayB0aGUgc2FtZSBpc3N1ZSB3aGVuICpkb3duc3RyZWFtKiByZXR1cm5zIEdTVF9GTE9XX0VPUwoJICAod2hpY2ggY2FuIGhhcHBlbiBmb3IgZXhhbXBsZSB3aGVuIGRvd25zdHJlYW0gZGVjb2RlcnMgcmVjZWl2ZSBkYXRhCgkgIGZyb20gYWZ0ZXIgdGhlIHNlZ21lbnQgc3RvcCkuCgkgIEdTVF9QQURfSVNfRU9TKCkgaXMgb25seSBUUlVFIHdoZW4gYSBHU1RfRVZFTlRfRU9TIGhhcyBmbG93biB0aHJvdWdoIGl0CgkgIGFuZCBub3Qgd2hlbiBhIEdTVF9FVkVOVF9FT1MgaGFzIGdvbmUgdGhyb3VnaCBpdC4KCSAgSW4gb3JkZXIgdG8gaGFuZGxlIGJvdGggY2FzZXMsIGFsc28gdGFrZSBpbnRvIGFjY291bnQgdGhlIGxhc3QgZmxvdwoJICByZXR1cm4uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM3NzAKCjIwMTYtMDYtMzAgMTU6MDc6MjggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RzdHJlYW1jb2xsZWN0aW9uLmM6CgkqIGdzdC9nc3RzdHJlYW1jb2xsZWN0aW9uLmg6CgkqIGdzdC9nc3RzdHJlYW1zLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBzdHJlYW1zOiBzcHJpbmtsZSBzb21lIFNpbmNlOiBtYXJrZXJzIGZvciBkb2NzCgoyMDE2LTA2LTMwIDE0OjM3OjE3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGFkZCBndGstZG9jIGJsdXJiIGZvciBuZXcgcGFkIHByb3BlcnR5CgoyMDE2LTAyLTEwIDExOjQyOjA0ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBBZGQgYSBwYWQgcHJvcGVydHkgdG8gImdyb3VwIiBzdHJlYW1zCgkgIFdoZW4gc3luY2luZyBieSBydW5uaW5nIHRpbWUsIG11bHRpcXVldWUgd2lsbCB0aHJvdHRsZSB1bmxpbmtlZCBzdHJlYW1zCgkgIGJhc2VkIG9uIGEgZ2xvYmFsICJoaWdoLXRpbWUiIGFuZCB0aGUgcGVuZGluZyAibmV4dF90aW1lIiBvZiBhIHN0cmVhbS4KCSAgVGhlIGlkZWEgaXMgdGhhdCB3ZSBkb24ndCB3YW50IHVubGlua2VkIHN0cmVhbXMgdG8gYmUgImJlaGluZCIgdGhlIGdsb2JhbAoJICBydW5uaW5nIHRpbWUgb2YgbGlua2VkIHN0cmVhbXMsIHNvIHRoYXQgaWYvd2hlbiB0aGV5IGdldCBsaW5rZWQgKGxpa2Ugd2hlbgoJICBzd2l0Y2hpbmcgdHJhY2tzKSBkZWNvZGluZy9wbGF5YmFjayBjYW4gcmVzdW1lIGZyb20gdGhlIHNhbWUgcG9zaXRpb24gYXMKCSAgdGhlIG90aGVyIHN0cmVhbXMuCgkgIFRoZSBwcm9ibGVtIGlzIHRoYXQgaXQgYXNzdW1lcyBlbGVtZW50cyBkb3duc3RyZWFtIHdpbGwgaGF2ZSBhIG1vcmUgb3IgbGVzcwoJICBlcXVhbCBidWZmZXJpbmcvbGF0ZW5jeSAuLi4gd2hpY2ggaXNuJ3QgdGhlIGNhc2UgZm9yIHN0cmVhbXMgb2YgZGlmZmVyZW50CgkgIHR5cGUuIFZpZGVvIGRlY29kZXJzIHRlbmQgdG8gaGF2ZSBoaWdoZXIgbGF0ZW5jeSAoYW5kIHRoZXJlZm9yZSBjb25zdW1lIG1vcmUKCSAgZnJvbSB1cHN0cmVhbSB0byBvdXRwdXQgYSBnaXZlbiBkZWNvZGVkIGZyYW1lKSBjb21wYXJlZCB0byBhdWRpbyBvbmVzLCByZXN1bHRpbmcKCSAgaW4gdGhlIGNvbXB1dGVkICJoaWdoX3RpbWUiIGJlaW5nIGF0IHRoZSBwb3NpdGlvbiBvZiB0aGUgdmlkZW8gc3RyZWFtLAoJICBtdWNoIGZ1cnRoZXIgdGhhbiB0aGUgYXVkaW8gc3RyZWFtcy4KCSAgVGhpcyBtZWFucyB0aGUgdW5saW5rZWQgYXVkaW8gc3RyZWFtcyBlbmQgdXAgYmVpbmcgcXVpdGUgYSBiaXQgYWZ0ZXIgdGhlIGxpbmtlZAoJICBhdWRpbyBzdHJlYW1zLCByZXN1bHRpbmcgaW4gZ2FwcyB3aGVuIHN3aXRjaGluZyBzdHJlYW1zLgoJICBJbiBvcmRlciB0byBtaXRpZ2F0ZSB0aGlzIGlzc3VlLCB0aGlzIHBhdGNoIGFkZHMgYSBuZXcgImdyb3VwLWlkIiBwYWQgcHJvcGVydHkKCSAgd2hpY2ggYWxsb3dzIHVzZXJzIHRvICJncm91cCIgc3RyZWFtcyB0b2dldGhlci4gQ2FsY3VsYXRpbmcgdGhlIGhpZ2gtdGltZSB3aWxsCgkgIG5vdyBiZSBkb25lIG5vdCBvbmx5IGdsb2JhbGx5LCBidXQgYWxzbyBwZXIgZ3JvdXAuIFRoaXMgZW5zdXJlcyB0aGF0IHdpdGhpbgoJICBhIGdpdmVuIGdyb3VwIHVubGlua2VkIHN0cmVhbXMgd2lsbCBiZSB0aHJvdHRsZWQgYnkgdGhhdCBncm91cCdzIGhpZ2gtdGltZQoJICBpbnN0ZWFkLgoJICBUaGlzIGZpeGVzIGdhcHMgd2hlbiBzd2l0Y2hpbmcgZG93bnN0cmVhbSBlbGVtZW50cyAobGlrZSBzd2l0Y2hpbmcgYXVkaW8gdHJhY2tzKS4KCjIwMTUtMDYtMTIgMTA6NTM6MjMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbS1zZWxlY3Rpb24udHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHN0cmVhbWNvbGxlY3Rpb24uYzoKCSogZ3N0L2dzdHN0cmVhbWNvbGxlY3Rpb24uaDoKCSogZ3N0L2dzdHN0cmVhbXMuYzoKCSogZ3N0L2dzdHN0cmVhbXMuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RyZWFtLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJlYW0uaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdDogTmV3IFN0cmVhbSBsaXN0aW5nL3NlbGVjdGlvbiBzeXN0ZW0KCSAgKiBHc3RTdHJlYW0KCSAgKiBHc3RTdHJlYW1Db2xsZWN0aW9uCgkgICogR1NUX0VWRU5UX1NFTEVDVF9TVFJFQU1TCgkgICogR1NUX01FU1NBR0VfU1RSRUFNX0NPTExFQ1RJT04KCjIwMTYtMDYtMjkgMjM6MjQ6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6ICNkZWZpbmUgRVdPVUxEQkxPQ0sgdG8gRUFHQUlOIGlmIGl0J3Mgbm90IGRlZmluZWQgb24gV2luZG93cwoKMjAxNi0wNi0yOSAxNDowNToxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IEZpeCBoYW5kbGluZyBvZiB0aGUgR3N0UG9sbAoJICBFc3BlY2lhbGx5IGlmIG11bHRpcGxlIHRocmVhZHMgYXJlIHdhaXRpbmcgZm9yIGJ1ZmZlcnMgdG8gYmUgYXZhaWxhYmxlIGFnYWluLAoJICB0aGUgY3VycmVudCBjb2RlIHdhcyB3cm9uZy4gRml4IHRoaXMgYW5kIGRvY3VtZW50IGNsZWFybHkgaG93IHRoZSBHc3RQb2xsIGlzCgkgIHN1cHBvc2VkIHRvIGJlIHVzZWQuCgkgIEFsc28gZml4IHNvbWUgcG90ZW50aWFsIHJhY2VzIHdpdGggcmVhZGluZyBmcm9tIHRoZSBHc3RQb2xsIGJlZm9yZSB3cml0aW5nCgkgIGFjdHVhbGx5IGhhcHBlbmVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY3OTc5CgoyMDE2LTA2LTI5IDE0OjAyOjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IE1ha2Ugc3VyZSB0byBhbHdheXMgcmVhZCB0aGUgY29udHJvbCBhZnRlciBwb3BwaW5nIGEgbWVzc2FnZQoJICBJdCBtaWdodCBoYXBwZW4gdGhhdCB3ZSBwb3BwZWQgdGhlIG1lc3NhZ2UgYmVmb3JlIHdyaXRpbmcgb2YgdGhlIGNvbnRyb2wKCSAgaGFwcGVuZWQuIEluIHRoaXMgY2FzZSB3ZSBqdXN0IGhhdmUgdG8gcmV0cnkgYWdhaW4gYSBiaXQgbGF0ZXIsIGFuZCBmYWlsdXJlIHRvCgkgIGRvIHNvIHdpbGwgY2F1c2UgYW4gYWRkaXRpb25hbCBieXRlIGluIHRoZSBjb250cm9sIGFuZCB0aGUgR1NvdXJjZSAvCgkgIGdzdF9wb2xsX3dhaXQoKSB0byBhbHdheXMgd2FrZSB1cCBhZ2FpbiBpbW1lZGlhdGVseS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDM5NwoKMjAxNi0wNi0yOSAxMzozNzoyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogSW1wcm92ZSBHc3RQb2xsIGhhbmRsaW5nIGFuZCBkb24ndCBjaGVjayBmb3IgaW1wb3NzaWJsZSBlcnJubyB2YWx1ZXMKCSAgQWxzbyBqdXN0IHJlYWQvd3JpdGUgY29udHJvbCBldmVyeSB0aW1lLCBHc3RQb2xsIGlzIG9wdGltaXplZCBieSBpdHNlbGYKCSAgYWxyZWFkeSB0byBvbmx5IGRvIEkvTyBpZiBzd2l0Y2hpbmcgYmV0d2VlbiBlbXB0eSBhbmQgb25lIGJ5dGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAzOTcKCjIwMTYtMDYtMjkgMTM6MzU6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBDbGFyaWZ5IHdoZW4gRkFMU0UgaXMgcmV0dXJuZWQgZnJvbSByZWFkL3dyaXRlX2NvbnRyb2woKQoJICBBbmQgYWxzbyBtZW50aW9uIHdoYXQgdGhlIGV4cGVjdGVkIHZhbHVlcyBvZiBlcnJubyBhcmUgZ29pbmcgdG8gYmUuCgkgIHdyaXRlX2NvbnRyb2woKSB3aWxsIG9ubHkgZXZlciByZXR1cm4gRkFMU0UgaWYgdGhlcmUgd2FzIGEgY3JpdGljYWwgZXJyb3IuIEl0CgkgIHdpbGwgbmV2ZXIgcmV0dXJuIGJlY2F1c2Ugb2YgRUlOVFIsIEVBR0FJTiBvciBFV09VTERCTE9DSy4KCSAgcmVhZF9jb250cm9sKCkgd2lsbCByZXR1cm4gRkFMU0UgaWYgdGhlcmUgd2FzIG5vIGJ5dGUgdG8gcmVhZCwgaW4gd2hpY2ggY2FzZQoJICBlcnJubyB3b3VsZCBiZSBFV09VTERCTE9DSy4KCSAgSW4gYWxsIG90aGVyIGNhc2VzIHRoZXJlIHdhcyBhIGNyaXRpY2FsIGVycm9yLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMzk3CgoyMDE2LTA2LTI5IDEzOjI2OjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogc2V0X2NvbnRyb2xsYWJsZSgpLCByZXN0YXJ0KCkgYW5kIHNldF9mbHVzaGluZygpIGFyZSBvbmx5IHZhbGlkIGZvciBub24tdGltZXIgR3N0UG9sbHMKCSAgT24gdGltZXIgR3N0UG9sbHMgaXQgd2lsbCBjYXVzZSB0aGUgY29udHJvbCBzb2NrZXQgc3RhdGUgdG8gYmVjb21lCgkgIGluY29uc2lzdGVudCBhcyBub3cgb25lIGxlc3MgcmVhZF9jb250cm9sKCkgdGhhbiB3cml0ZV9jb250cm9sKCkgYmUgd291bGQKCSAgbmVlZGVkLgoJICBTaW1pbGFybHksIHJlYWRfY29udHJvbCgpIGFuZCB3cml0ZV9jb250cm9sKCkgYXJlIG9ubHkgdmFsaWQgb24gdGltZXIKCSAgR3N0UG9sbHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAzOTcKCjIwMTYtMDYtMjkgMTM6MTE6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cG9sbC5oOgoJICBwb2xsOiBXYXJuIGlmIHRoZSByZXR1cm4gdmFsdWUgb2YgZ3N0X3BvbGxfcmVhZF9jb250cm9sKCkgaXMgdW51c2VkCgkgIFRoaXMgbWlnaHQgZmFpbCBldmVuIHVuZGVyIGNvcnJlY3QgdXNhZ2UsIGUuZy4gaWYgcmVhZF9jb250cm9sKCkgaXMgY2FsbGVkCgkgIGZyb20gYW5vdGhlciB0aHJlYWQgYmVmb3JlIHdyaXRlX2NvbnRyb2woKSBmaW5pc2hlZCBpbiBhbm90aGVyLiBJdCBoYXMgdG8gYmUKCSAgcmV0cmllZCB0aGVuLCBvciBvdGhlciBtZWFzdXJlcyBoYXZlIHRvIGJlIHRha2VuLCBkZXBlbmRpbmcgb24gaG93IGl0IGlzIHVzZWQKCSAgYnkgdGhlIHN1cnJvdW5kaW5nIGNvZGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAzOTcKCjIwMTYtMDYtMjkgMTg6NTc6NDIgKzAyMDAgIE1hdHRoZXcgR3J1ZW5rZSA8bWdydWVua2VAdHljb2ludC5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBGaXggdmFyaW91cyByYWNlIGNvbmRpdGlvbnMgd2l0aCByZWFkX2NvbnRyb2woKSBhbmQgd3JpdGVfY29udHJvbCgpCgkgIFRoaXMgYWRkcmVzc2VzIHNsaWdodGx5IGRpZmZlcmVudCByYWNlIGNvbmRpdGlvbnMgb24gTGludXggYW5kIFdpbmRvd3MsIGFuZAoJICBmaXhlcyBnc3RfcG9sbF9yZWFkX2NvbnRyb2woKSB3aGVuIGNvbnRyb2xfcGVuZGluZyA9PSAwLgoJICBPbiBMaW51eCwgdGhlIHNvY2tldHBhaXIoKSB1c2VkIGZvciBjb250cm9sIHNob3VsZCBub3QgYmUgbWFkZSBPX05PTkJMT0NLLgoJICBJZiB0aGVyZSdzIGFueSBwcm9wYWdhdGlvbiBkZWxheSBiZXR3ZWVuIHNldC0+Y29udHJvbF93cml0ZV9mZC5mZCBhbmQKCSAgc2V0LT5jb250cm9sX3JlYWRfZmQuZmQsIGV2ZW4gdGhlIG11dGV4IG5vdyBoZWxkIHdpbGwgbm90IGJlIHN1ZmZpY2llbnQgdG8KCSAgcHJldmVudCBhIHJhY2UgY29uZGl0aW9uLiAgVGhlcmUncyBubyBiZW5lZml0IHRvIHVzaW5nIE9fTk9OQkxPQ0ssIGhlcmUuCgkgIE9ubHkgbGlhYmlsaXRpZXMuCgkgIEZvciBXaW5kb3dzLCBpdCdzIG5lY2Vzc2FyeSB0byBmaXggdGhlIHJhY2UgY29uZGl0aW9uIGJldHdlZW4gdGVzdGluZwoJICBzZXQtPmNvbnRyb2xfcGVuZGluZyBhbmQgcGVyZm9ybWluZyBXQUtFX0VWRU5UKCkvUkVMRUFTRV9FVkVOVCgpLiAgVGhpcyBpcwoJICBhY2NvbXBsaXNoZWQgYnkgYWNxdWlyaW5nIGFuZCBob2xkaW5nIHNldC0+bG9jaywgZm9yIGJvdGggb2YgdGhlc2Ugb3BlcmF0aW9ucy4KCSAgV2UgY291bGQgb3B0aW1pemUgdGhlIExpbnV4IHZlcnNpb24gYnkgbWFraW5nIHRoaXMgV2luZG93cy1zcGVjaWZpYy4KCSAgRm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIExpbnV4IGltcGxlbWVudGF0aW9uLCBXaW5kb3dzJyBSRUxFQVNFX0VWRU5UKCkKCSAgaGFzIGFsc28gYmVlbiBtYWRlIHRvIGJsb2NrLCBhbHRob3VnaCBpdCBzaG91bGQgbmV2ZXIgaGFwcGVuLgoJICBBbHNvLCBjaGFuZ2VkIHJlbGVhc2Vfd2FrZXVwKCkgdG8gcmV0dXJuIFRSVUUgYW5kIGRlY3JlbWVudCBjb250cm9sX3BlbmRpbmcKCSAgb25seSB3aGVuID4gMC4gIEZ1cnRoZXJtb3JlLCBSRUxFQVNFX0VWRU5UKCkgaXMgY2FsbGVkIG9ubHkgd2hlbgoJICBjb250cm9sX3BlbmRpbmcgPT0gMS4KCSAgRmluYWxseSwgY2hhbmdlZCBjb250cm9sX3BlbmRpbmcgdG8gdXNlIG5vcm1hbCwgbm9uLWF0b21pYyBhcml0aG1ldGljCgkgIG9wZXJhdGlvbnMsIHNpbmNlIGl0J3Mgbm93IHByb3RlY3RlZCBieSBzZXQtPmxvY2suCgkgIE5vdGU6IGV2ZW4gdGhvdWdoIHRoZSB1bmRlcmx5aW5nIHNpZ25hbGluZyBtZWNoYW5pc21zIGFyZSBibG9ja2luZywKCSAgcmVsZWFzZV93YWtldXAoKSBpcyBlZmZlY3RpdmVseSBub24tYmxvY2tpbmcsIGFzIGl0IHdpbGwgb25seSBhdHRlbXB0IHRvIHJlYWQKCSAgZnJvbSBjb250cm9sX3JlYWRfZmQuZmQgYWZ0ZXIgYSBieXRlIGhhcyBiZWVuIHdyaXR0ZW4gdG8gY29udHJvbF93cml0ZV9mZC5mZAoJICBvciBXYWl0Rm9yU2luZ2xlT2JqZWN0KCkgYWZ0ZXIgaXQncyBiZWVuIHNpZ25hbGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMzk3CgoyMDE2LTA2LTI4IDE1OjAxOjE3ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBjaGFpbiB1cCBHT2JqZWN0Ojpjb25zdHJ1Y3RlZCgpIHRvIHRoZSBwYXJlbnQgY2xhc3MnIGltcGxlbWVudGF0aW9uCgkgIE5lZWRlZCBzbyBHc3RCdXMgY2FuIGJlIHRyYWNrZWQgYnkgdGhlIGxlYWtzIHRyYWNlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODE0MQoKMjAxNi0wNi0yNCAwNToyNjowOSArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBnc3Rjb25maWcuaDogRG9uJ3QgdXNlIGV4dGVybiB3aXRoIGRsbGV4cG9ydAoJICBHQ0MgZW1pdHMgYW4gZXJyb3IgZm9yIHRoaXMgd2l0aCAtV2Vycm9yOgoJICBwbHVnaW4uYzoyMjoxOiBlcnJvcjogJ2dzdF9wbHVnaW5fZGVzYycgaW5pdGlhbGl6ZWQgYW5kIGRlY2xhcmVkICdleHRlcm4nIFstV2Vycm9yXQoJICBUaGlzIG1hdGNoZXMgaG93IGdsaWIgZG9lcyBzeW1ib2wgZXhwb3J0aW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY3NDYzCgoyMDE2LTA2LTIxIDE5OjQ5OjE1ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgd2luMzI6IERvbid0IHVzZSBkbGxleHBvcnQvaW1wb3J0IHdoZW4gb25seSBidWlsZGluZyBzdGF0aWNhbGx5CgkgIElmIHRoZSBwcm90b3R5cGVzIGluIHRoZSBwdWJsaWMgQVBJIGhhdmUgZGxsaW1wb3J0IGluIHRoZW0gd2hlbiBidWlsZGluZwoJICBzdGF0aWNhbGx5IG9uIFdpbmRvd3MsIHRoZSBjb21waWxlciB3aWxsIGxvb2sgZm9yIHN5bWJvbHMgd2l0aCBzeW1ib2wKCSAgbWFuZ2xpbmcgYW5kIGluZGlyZWN0aW9uIGNvcnJlc3BvbmRpbmcgdG8gYSBETEwuIFRoaXMgd2lsbCBjYXVzZSBhIGJ1aWxkCgkgIGZhaWx1cmUgd2hlbiB0cnlpbmcgdG8gbGluayB0ZXN0cy9leGFtcGxlcy9ldGMuCgkgIEV4dGVybmFsIHVzZXJzIG9mIEdTdHJlYW1lciBhbHNvIG5lZWQgdG8gZGVmaW5lIC1ER1NUX1NUQVRJQ19DT01QSUxBVElPTgoJICBpZiB0aGV5IHdhbnQgdG8gbGluayB0byBzdGF0aWMgZ3N0cmVhbWVyIGxpYnJhcmllcyBvbiBXaW5kb3dzLgoJICBBIHNpbWlsYXIgdmVyc2lvbiBvZiB0aGlzIHBhdGNoIGhhcyBiZWVuIGNvbW1pdHRlZCB0byBhbGwgZ3N0cmVhbWVyCgkgIHJlcG9zaXRvcmllcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NzQ2MwoKMjAxNi0wNi0yMSAxMTo0NToyNiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBhYzJmNjQ3IHRvIGYzNjNiMzIKCjIwMTYtMDYtMTUgMTY6MjQ6MjcgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkgIHRlc3RzOiBhZGQgYSB0ZXN0IGZvciBzbWFsbCByaW5nIGJ1ZmZlciBzaXplcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY3Njg4CgoyMDE2LTA2LTE1IDEzOjQzOjU5ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IGNyYXNoIGRlbGV0aW5nIGN1cnJlbnQgcmVnaW9uIGZvciBzbWFsbCByaW5nIGJ1ZmZlcnMKCSAgRW5zdXJlIHdlIGRvIG5vdCBhdHRlbXB0IHRvIGRlc3Ryb3kgdGhlIGN1cnJlbnQgcmFuZ2UuIERvaW5nIHNvCgkgIGNhdXNlcyB0aGUgY3VycmVudCBvbmUgdG8gYmUgbGVmdCBkYW5nbGluZywgYW5kIGl0IG1heSBiZSBkZXJlZmVyZW5jZWQKCSAgbGF0ZXIsIGxlYWRpbmcgdG8gYSBjcmFzaC4KCSAgVGhpcyBjYW4gaGFwcGVuIHdpdGggYSB2ZXJ5IHNtYWxsIHF1ZXVlMiByaW5nIGJ1ZmZlciAoMTAwMDAgYnl0ZXMpCgkgIGFuZCA0IGtCIGJ1ZmZlcnMuCgkgIHJlcHJvIGNhc2U6CgkgIGdzdC1sYXVuY2gtMS4wIGZha2VzcmMgc2l6ZXR5cGU9MiBzaXplbWF4PTQwOTYgISBcCgkgIHF1ZXVlMiByaW5nLWJ1ZmZlci1tYXgtc2l6ZT0xMDAwICEgZmFrZXNpbmsgc3luYz10cnVlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njc2ODgKCjIwMTYtMDYtMjAgMTE6MzQ6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIHRlc3RzOiBnc3RvYmplY3Q6IGZpeCB0eXBvIGluIHRlc3QgbmFtZQoKMjAxNi0wNi0xNiAxNDowODowMSAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC10cmFjaW5nLnR4dDoKCSAgZG9jcy9kZXNpZ24vcGFydC10cmFjaW5nOiBmaXggcmVmZXJlbmNlIHRvIHJlbmFtZWQgZnVuYwoKMjAxNi0wNi0wOCAxMjozNDo1MyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBQcm9wZXJseSBoYW5kbGUgcmV0dXJuIHZhbHVlIHdoZW4gb25seSAxIHBhZAoJICBUaGlzIHBhdGNoIGhhbmRsZSB0aGUgY2FzZSB3aGVuIHlvdSBoYXZlIDEgcGFkIChzbyB0aGUgZmFzdCBwYXRoIGlzCgkgIGJlaW5nIHVzZWQpIGJ1dCB0aGlzIHBhZCBpcyByZW1vdmVkLiBJZiB3ZSBhcmUgaW4gYWxsb3ctbm90LWxpbmtlZCwgd2UKCSAgc2hvdWxkIHJldHVybiBHU1RfRkxPV19PSywgb3RoZXJ3aXNlLCB3ZSBzaG91bGQgcmV0dXJuIEdTVF9GTE9XX1VOTElOS0VECgkgIGFuZCBpZ25vcmUgdGhlIG1lYW5pbmdsZXNzIHJldHVybiB2YWx1ZSBvYnRhaW5lZCBmcm9tIHB1c2hpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njc0MTMKCjIwMTYtMDYtMTYgMTU6NTI6MTYgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBzY3JpcHRzL2dzdC1wbG90LXRyYWNlcy5zaDoKCSAgZ3N0LXBsb3QtdHJhY2VzLnNoOiBhZGQgYSBzY3JpcHQgdG8gcGxvdCBnc3QtdHJhY2VyIGdyYXBocwoJICBUaGUgc2NyaXB0IGV4dHJhY3RzIGNwdS11c2FnZSBkYXRhIGZyb20gYSB0cmFjZWxvZyBhbmQgcGxvdHMgaXQgdmlhIGdudXBsb3QuCgoyMDE2LTA2LTE1IDE2OjEyOjIzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGRldmljZS5jOgoJICBkZXZpY2U6IEZpeCB0eXBvCgkgIHBhcmFtYXRlciAtPiBwYXJhbWV0ZXIKCjIwMTYtMDYtMTQgMTk6MTY6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiBmbGVzaCBvdXQgR1NUX1BUUl9GT1JNQVQgZG9jcyBhIGJpdAoKMjAxNi0wNi0xMyAxODozMzoyNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IFVwZGF0ZSBzdGFydCB0aW1lIHdoZW4gbG9zaW5nIHN0YXRlIG9ubHkgaWYgd2Ugd2VyZSBpbiBQTEFZSU5HCgkgIElmIHdlIHdlcmUgaW4gUEFVU0VELCB0aGUgY3VycmVudCBjbG9jayB0aW1lIGFuZCBiYXNlIHRpbWUgZG9uJ3QgaGF2ZSBtdWNoIHRvCgkgIGRvIHdpdGggdGhlIHJ1bm5pbmcgdGltZSBhbnltb3JlIGFzIHRoZSBjbG9jayBtaWdodCBoYXZlIGFkdmFuY2VkIHdoaWxlIHdlCgkgIHdlcmUgUEFVU0VELiBUaGUgc3lzdGVtIGNsb2NrIGRvZXMgdGhhdCBmb3IgZXhhbXBsZSwgYXVkaW8gY2xvY2tzIG9mdGVuIGRvbid0LgoJICBVcGRhdGluZyB0aGUgc3RhcnQgdGltZSBpbiBQQVVTRUQgd2lsbCBjYXVzZSBhKSB0aGUgd3JvbmcgcG9zaXRpb24gdG8gYmUKCSAgcmVwb3J0ZWQsIGIpIHN0ZXAgZXZlbnRzIHRvIHN0ZXAgbm90IGp1c3QgdGhlIHJlcXVlc3RlZCBhbW91bnQgYnV0IHRoZSBhbW91bnQKCSAgb2YgdGltZSB3ZSBzcGVudCBpbiBQQVVTRUQuIFRoZSBzdGFydCB0aW1lIHNob3VsZCBvbmx5IGV2ZXIgYmUgdXBkYXRlZCB3aGVuCgkgIGdvaW5nIGZyb20gUExBWUlORyB0byBQQVVTRUQgdG8gcmVtZW1iZXIgdGhlIGN1cnJlbnQgcnVubmluZyB0aW1lICh0byBiZSBhYmxlCgkgIHRvIGNvbXBlbnNhdGUgbGF0ZXIgd2hlbiBnb2luZyB0byBQTEFZSU5HIGZvciB0aGUgY2xvY2sgdGltZSBhZHZhbmNpbmcgd2hpbGUKCSAgUEFVU0VEKSwgbm90IHdoZW4gd2UgYXJlIGFscmVhZHkgaW4gUEFVU0VELgoJICBCYXNlZCBvbiBhIHBhdGNoIGJ5IEtpc2hvcmUgQXJlcGFsbGkgPGtpc2hvcmUuYXJlcGFsbGlAZ21haWwuY29tPgoJICBUaGUgdXBkYXRpbmcgb2YgdGhlIHN0YXJ0IHRpbWUgd2hlbiB0aGUgc3RhdGUgaXMgbG9zdCB3YXMgYWRkZWQgaW4gY29tbWl0CgkgIGJhOTQzYTgyYzBiYmZkMTdjOWVlOWY1MDY4ZDQ0YzlkOTI3NGZkMTMgdG8gZml4IHRoZSBwb3NpdGlvbiByZXBvcnRpbmcgd2hlbgoJICB0aGUgc3RhdGUgaXMgbG9zdC4gVGhpcyBzdGlsbCB3b3JrcyBjb3JyZWN0bHkgYWZ0ZXIgdGhpcyBjaGFuZ2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzkyODkKCjIwMTYtMDYtMTEgMjI6MTg6MDYgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogTG9nIHBhZCBvZmZzZXRzIGFzIHNpZ25lZCB0aW1lcwoKMjAxNi0wNi0xMSAyMTo1NjoxOSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBBbHNvIGNoZWNrIHRoZSBudW1iZXIgb2Ygc2VnbWVudCBldmVudHMgYW5kIGlmIG90aGVyIHNlcmlhbGl6ZWQgZXZlbnRzIGFuZCBxdWVyaWVzIHRyaWdnZXIgc2VnbWVudCB1cGRhdGluZyB0b28KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTA0OQoKMjAxNi0wNi0xMSAyMTozNzo0NyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBBZGQgdW5pdCB0ZXN0IGZvciBwYWQgb2Zmc2V0IGhhbmRsaW5nIG9uIHNyYyBwYWRzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjUwNDkKCjIwMTYtMDYtMDcgMTE6MzI6NDcgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGFkYXB0ZXI6IFJlbmFtZSBmdW5jdGlvbnMgYW5kIGltcGxlbWVudCBuZXcgZnVuY3Rpb25zLCB1cGRhdGUgdGVzdAoJICBXZSBkb24ndCBkbyBjYWxjdWxhdGlvbnMgd2l0aCBkaWZmZXJlbnQgdW5pdHMgKGJ1ZmZlciBvZmZzZXRzIGFuZCBieXRlcykKCSAgYW55bW9yZSBidXQgaGF2ZSBmdW5jdGlvbnMgZm9yOgoJICAxKSBnZXR0aW5nIHRoZSBudW1iZXIgb2YgYnl0ZXMgc2luY2UgdGhlIGxhc3QgZGlzY29udAoJICAyKSBnZXR0aW5nIHRoZSBvZmZzZXQgKGFuZCBwdHMvZHRzKSBhdCB0aGUgbGFzdCBkaXNjb250CgkgIGFuZCB0aGUgcHJldmlvdXNseSBhZGRlZCBmdW5jdGlvbiB0byBnZXQgdGhlIGxhc3Qgb2Zmc2V0IGFuZCBpdHMgZGlzdGFuY2UgZnJvbQoJICB0aGUgY3VycmVudCBhZGFwdGVyIHBvc2l0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY2NjQ3CgoyMDE2LTA1LTE5IDEwOjMxOjAyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBhZGFwdGVyOiBBZGQgbWV0aG9kcyB0byBxdWVyeSBjdXJyZW50IG9mZnNldAoJICBBUEk6IGdzdF9idWZmZXJfcHJldl9vZmZzZXQKCSAgQVBJOiBnc3RfYnVmZmVyX2dldF9vZmZzZXRfZnJvbV9kaXNjb250CgkgIFRoZSBnc3RfYnVmZmVyX2dldF9vZmZzZXRfZnJvbV9kaXNjb250KCkgbWV0aG9kIGFsbG93cyByZXRyaWV2aW5nIHRoZSBjdXJyZW50CgkgIG9mZnNldCBiYXNlZCBvbiB0aGUgR1NUX0JVRkZFUl9PRkZTRVQgb2YgdGhlIGJ1ZmZlcnMgdGhhdCB3ZXJlIHB1c2hlZCBpbi4KCSAgVGhlIG9mZnNldCB3aWxsIGJlIHNldCBpbml0aWFsbHkgYnkgdGhlIEdTVF9CVUZGRVJfT0ZGU0VUIG9mCgkgIERJU0NPTlQgYnVmZmVycywgYW5kIHRoZW4gaW5jcmVtZW50ZWQgYnkgdGhlIHNpemVzIG9mIHRoZSBmb2xsb3dpbmcKCSAgYnVmZmVycy4KCSAgVGhlIGdzdF9idWZmZXJfcHJldl9vZmZzZXQoKSBtZXRob2QgYWxsb3dzIHJldHJpZXZlbnQgdGhlIHByZXZpb3VzCgkgIEdTVF9CVUZGRVJfT0ZGU0VUIHJlZ2FyZGxlc3Mgb2YgZmxhZ3MuIEl0IHdvcmtzIGluIHRoZSBzYW1lIHdheSBhcwoJICB0aGUgb3RoZXIgZ3N0X2J1ZmZlcl9wcmV2XyooKSBtZXRob2RzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY2NjQ3CgoyMDE2LTA2LTA5IDE3OjQyOjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBnc3Rjb25maWcuaC5pbjogaW5kZW50ICNpZiAjZWxzZSBqdW5nbGUgZm9yIGJldHRlciByZWFkYWJpbGl0eQoKMjAxNi0wNi0wOCAxMjoxMToxOSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHV0aWxzOiBBZGQgZ3N0X3BhZF9saW5rX21heWJlX2dob3N0aW5nKCkgZm9yIGNvbnNpc3RlbmN5CgkgIFdlIGFscmVhZHkgaGFkIGEgX2Z1bGwoKSB2ZXJzaW9uLCBidXQgaGF2aW5nIHRoYXQgYWxvbmUgc2VlbXMgaW5jb25zaXN0ZW50LgoJICBBZGQgYSBub24tZnVsbCB2ZXJzaW9uIHRoYXQgbWlycm9ycyB0aGUgYmVoYXZpb3VyIG9mIGdzdF9wYWRfbGluaygpIHZzCgkgIGdzdF9wYWRfbGlua19mdWxsKCkuCgoyMDE2LTA1LTIyIDEzOjEwOjA2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBNYWtlIHN1cmUgRElTQ09OVCBmbGFncyBhcmUgcHJvcGVybHkgcHJvcGFnYXRlZAoJICBJZiB3ZSBkcm9wIGEgZnJhbWUgdGhhdCBjb250YWluZWQgYSBkaXNjb250aW51aXR5LCB3ZSBtdXN0IHJlbWVtYmVyCgkgIHRoYXQgZm9yIHRoZSBuZXh0IGZyYW1lIHRoYXQgKndpbGwqIGJlIHB1c2hlZCBkb3duc3RyZWFtLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY2Nzk1CgoyMDE2LTA2LTA0IDEzOjMxOjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmM6CgkgIGRldmljZXByb3ZpZGVyOiByZW1vdmUgYmFzZV9jbGFzc19maW5hbGl6ZSBmdW5jdGlvbgoJICBJdCdzIG5vdCBnb2luZyB0byBnZXQgY2FsbGVkIGFueXdheS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTU0MAoKMjAxNi0wNi0wNCAxMzoxMTo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IHJlbW92ZSBiYXNlX2NsYXNzX2ZpbmFsaXplX2Z1bmMgd2hpY2ggaXMgbmV2ZXIgY2FsbGVkCgkgIFdvbid0IGJlIGNhbGxlZCBmb3Igc3RhdGljIHR5cGVzLCBzbyBubyBwb2ludCBrZWVwaW5nIGl0IGFyb3VuZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTU0MAoKMjAxNi0wNi0wMyAxMzo1NTo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsZWFrcy5jOgoJICB0cmFjZXJzOiBsZWFrczogc29tZSBtaWNyby1vcHRpbWlzYXRpb25zCgkgIC0gd2Uga25vdyBudW1iZXIgb2YgZmlsdGVyIGl0ZW1zIGlzIG5vdCBnb2luZyB0byBjaGFuZ2UsCgkgIGJ1dCBjb21waWxlciBkb2Vzbid0CgkgIC0gb25seSBkbyBHU1RfSVNfVFJBQ0VSIGNoZWNrIGZvciBHT2JqZWN0cywgbm90IG1pbmkgb2JqZWN0cwoJICAtIHVzZSBub24tdHlwZSBjaGVjayBjYXN0IG1hY3JvcyBpbiBwZXJmb3JtYW5jZSBjcml0aWNhbCBwYXRocwoKMjAxNi0wNS0xMCAwOToyOToxMiArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyYWNpbmcudHh0OgoJKiBwbHVnaW5zL3RyYWNlcnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsZWFrcy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGVha3MuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHRyYWNlcnMuYzoKCSAgdHJhY2VyczogYWRkIGxlYWtzIHRyYWNlcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1MDUyCgoyMDE2LTA1LTMwIDEyOjExOjEzICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlcmZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgVXNlIE1BWV9CRV9MRUFLRURfRkxBRwoJICBUaGlzIGhlbHBzIGhhdmluZyAibWFrZSBjaGVjayIgcGFzc2luZyB3aXRoIHRoZSBsZWFrcyB0cmFjZXIgZW5hYmxlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NjAwOAoKMjAxNi0wNS0wOSAxNjozMTozNiArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSAgdHJhY2luZzogYWRkIGhvb2tzIHdoZW4gb2JqZWN0cyBvciBtaW5pb2JqZWN0cyBhcmUgY3JlYXRlZCBhbmQgZGVzdHJveWVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjUwNTIKCjIwMTYtMDUtMDkgMTY6NTY6NTYgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3RfZGVpbml0OiBtb3ZlIGRvd24gdHJhY2VycyBjbGVhbmluZwoJICBXZSB3YW50IHRoZSB0cmFjZXIgZGV0ZWN0aW5nIGxlYWtzIHRvIGJlIGZpbmFsaXplZCBhcyBsYXRlIGFzIHBvc3NpYmxlCgkgIHRvIGdpdmUgdGhlIGNoYW5jZSB0byBvdGhlciBnc3QgY29tcG9uZW50cyB0byBiZSBwcm9wZXJseSBjbGVhbmVkIGZpcnN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1MDUyCgoyMDE2LTA1LTEwIDExOjA2OjQyICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSAgdGVzdHM6IHBsdWdpbjogcmVtb3ZlIGZlYXR1cmUgcmVmY291bnQgYXNzZXJ0CgkgIFRoaXMgY2hlY2sgZmFpbHMgaWYgb25lLCBvciBtb3JlLCB0cmFjZXJzIGFyZSBsb2FkZWQgd2hpbGUgcnVubmluZyB0aGUKCSAgdGVzdC4gVGhlIG5ldyAibGVha3MiIHRyYWNlciB3aWxsIGJlIGFibGUgdG8gY2hlY2sgZm9yIGxlYWtzIGFueXdheS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTA1MgoKMjAxNi0wNC0xNCAxMjoyNTo0MyArMDMwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHRyYWNlcnJlY29yZDogYWxsb3cgR19UWVBFX1BPSU5URVIgZm9yIGZpZWxkIHR5cGVzCgkgIFRyYWNlcnMgbWF5IHdhbnQgdG8gZGlzcGxheSB0aGUgYWRkcmVzcyBvZiBhbiBvYmplY3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjUwNTIKCjIwMTYtMDUtMzAgMTM6NDI6MzYgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogc3BsaXQgdXAgbmFtZSB0ZXN0cwoJICBJdCBpcyBiZXR0ZXIgdG8gaGF2ZSBzZXBhcmF0ZSB0ZXN0czoKCSAgMSkgdGhlIHRlc3QgbmFtZSB3aWxsIHRlbGwgd2hhdCBpcyBicm9la24gd2hlbiB0aGUgdGVzdCBmYWlscwoJICAyKSB3ZSBzdGlsbCBydW4gdGhlIG90aGVyIHRlc3RzIHdoZW4gb25lIGFzc2VydCBmYWlscwoJICAzKSB0aGUgdGVzdHMgYXJlIGVhc2llciB0byB1bmRlcnN0YW5kCgkgIDQpIHdlIGRvbid0IHJlbHkgb24gc2llIGVmZmVjdCBvZiBwcmV2aW91cyBhY3Rpb25zCgkgIDUpIC4uLgoJICBBbHNvIGl4IHRoZSBhc3NlcnRpb24gbWVzc2FnZSBmb3IgdGhlIG5hbWUgY2hlY2tzIChHc3QgLT4gZmFrZW9iamVjdCkuCgoyMDE2LTA1LTMwIDAyOjA2OjAxIC0wNzAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC10cmFjaW5nLnR4dDoKCSAgZGVzaWduOiB1cGRhdGUgZGVzaWduIGRvYwoJICBTb21lIG9mIHRoZSBhcGkgd2FzIHJlbmFtZWQgYmVmb3JlIHRoZSBtZXJnZS4KCjIwMTYtMDUtMzAgMDI6MDQ6MTggLTA3MDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZG9jczogeHJlZiB0aGUgZnJlZSBmdW5jdGlvbiBhbmQgZXhwYW5kIGFsbG9jYXRpb24gcXVlcnkgZG9jcwoJICBBZGQgeHJlZnMgZm9yIGhvdyB0byBwYXJzZSBwb29sIGRldGFpbHMgZnJvbSBhbiBhbGxvY2F0aW9uIHF1ZXJ5LgoKMjAxNi0wNS0yNiAxNDo0MzoxMCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICBvYmplY3Q6IEFkZCBfc2V0X25hbWUoKSB0ZXN0IG9uIHBhcmVudGVkIG9iamVjdAoJICBUaGlzIGlzIG5vdCBhbGxvd2VkLCBhbmQgc2V0X25hbWUoKSBzaG91bGQgZmFpbC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NjkyMwoKMjAxNi0wNS0yNiAxNDo0MTozOCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICBvYmplY3Q6IENoZWNrIHRoYXQgbmFtZSBjaGFuZ2UgYXJlIG5vdGlmaWVkIG9uY2UKCSAgR09iamVjdCBhbGxvdyBjYWxsaW5nIGdfb2JqZWN0X25vdGlmeSgpIHdpdGhpbiBzZXRfcHJvcGVydHkoKSBhbmQKCSAgd29uJ3Qgbm90aWZ5IGl0IHR3aWNlLiBBcyBpdCB3YXMgcmFpc2VkIGR1cmluZyByZXZpZXcsIGFkZCBhIHVuaXQgdGVzdCB0bwoJICBtYWtlIHN1cmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjY5MjMKCjIwMTYtMDUtMjYgMTM6MTc6MzcgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgb2JqZWN0OiBOb3RpZnkgbmFtZSBjaGFuZ2Ugd2hlbiB1c2luZyBfc2V0X25hbWUoKQoJICBUaGVyZSB3YXMgYSAwLjExIEZJWE1FIGFib3V0IG5vdGlmeWluZyB0aGUgbmFtZSBjaGFuZ2Ugb3IgcmVtb3ZpbmcgdGhhdAoJICBmdW5jdGlvbi4gQ2xlYXJseSB3ZSBjYW4ndCByZW1vdmUgdGhpcyBmdW5jdGlvbiwgc28gbGV0J3Mgbm90aWZ5IGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY2OTIzCgoyMDE2LTA1LTI1IDE1OjMwOjIxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkgIGdzdF9wcml2YXRlOiBGaXggZ3N0Y29uZmlnIGluY2x1ZGUKCSAgU2luY2UgaXQncyBhIGdlbmVyYXRlZCBoZWFkZXIsIHdlIG5lZWQgdG8gc3BlY2lmeSB0aGUgZ3N0IHN1YmRpciBzbwoJICB0aGF0IGl0IGdldHMgcHJvcGVybHkgaW5jbHVkZWQgaW4gb3V0LW9mLWRpciBjb21waWxhdGlvbgoKMjAxNi0wNS0yNSAxMDo0ODowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICBnc3Q6IG1ha2Ugc3VyZSB0byBpbmNsdWRlIGdzdGNvbmZpZy5oIGFsc28gaW4gZ3N0X3ByaXZhdGUuaAoJICBGb3IgR1NUX0VYUE9SVCBkZWZpbmUgYW5kIGFsc28gdGhpbmdzIGxpa2UgR1NUX0RJU0FCTEVfUkVHSVNUUlkuCgkgIEhvcGVmdWxseSBmaXhlcyB0aGUgZm9sbG93aW5nIGJ1aWxkIGZhaWx1cmUgb24gY2VyYmVyby1jcm9zcy1taW5ndzMyOgoJICBoZWxwZXJzL2dzdC1wbHVnaW4tc2Nhbm5lci5jOjUwOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfaW1wX19fZ3N0X2Rpc2FibGVfcmVnaXN0cnlfY2FjaGUnCgoyMDE2LTA1LTI0IDAwOjQwOjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBnLWk6IHBhc3MgY29tcGlsZXIgZW52IHRvIGctaXItc2Nhbm5lcgoJICBJdCdzIHdoYXQgaW50cm9zcGVjdGlvbi5tYWsgZG9lcyBhcyB3ZWxsLiBTaG91bGQKCSAgZml4IHNwdXJpb3VzIGJ1aWxkIGZhaWx1cmVzIG9uIGdub21lLWNvbnRpbnVvdXMuCgoyMDE2LTA1LTIzIDIxOjE1OjQ4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBnc3Q6IGctaTogcGFzcyBjb21waWxlciB3aXRoIHF1b3RlcwoJICBTbyBDQz0iY2NhY2hlIGdjYyIgd29ya3MgcHJvcGVybHkuCgoyMDE2LTA1LTIzIDIxOjA2OjUzICswMTAwICBSYXkgU3Ryb2RlIDxyc3Ryb2RlQHJlZGhhdC5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGdzdDogYXR0ZW1wdCB0byBmaXgvdHJhY2stZG93biBteXN0ZXJpb3VzIGdub21lLWNvbnRpbnVvdXMgYnVpbGQgZmFpbHVyZXMKCjIwMTYtMDUtMjMgMTg6MDA6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IG9ubHkgdW5zZXQgR1ZhbHVlIGlmIGl0IHdhcyBpbml0ZWQKCSAgQW5kIGFkZCBzb21lIGZ1bmN0aW9uIGd1YXJkcy4gRnJvbSBHTGliIDIuNDggb24gaXQgaXMKCSAgYWxsb3dlZCB0byBwYXNzIGFuIHVuaW5pdGlhbGlzZWQgR1ZhbHVlIHRvIGdfdmFsdWVfdW5zZXQoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mzc2MgoKMjAxNi0wNS0yMyAxODo0NDowMSArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBnc3QvcGFyc2U6IEFsc28gcGFzcyAtREdTVF9FWFBPUlRTIGhlcmUKCSAgVGhpcyBzdGF0aWMgbGlicmFyeSBnZXRzIGluY2x1ZGVkIGRpcmVjdGx5IGludG8gbGliZ3N0cmVhbWVyLTEuMC5zbywgc28gaXQgbmVlZHMKCSAgdGhlIHNhbWUgR1NUX0VYUE9SVFMgZGVmaW5pdGlvbiBhcyB0aGUgcmVzdCBvZiB0aGUgY29kZSB0aGF0J3MgY29tcGlsZWQgaW50bwoJICB0aGF0IG90aGVyd2lzZSBpdCB3aWxsIHRyeSB0byBmaW5kIHRoZSBjb25zdGFudHMgaXQgdXNlcyBmcm9tIGdzdGluZm8gdmlhIERMTAoJICBpbXBvcnRpbmcgKF9fZGVjbHNwZWMoZGxsaW1wb3J0KSkuCgkgIEZpeGVzIGh0dHBzOi8vY2kuZ3N0cmVhbWVyLm5ldC9qb2IvY2VyYmVyby1jcm9zcy1taW5ndzMyLzQzOTMvCgoyMDE2LTA1LTIwIDAwOjI0OjU0ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIGdzdGNvbmZpZy5oOiBBbHdheXMgdXNlIGRsbGV4cG9ydC9pbXBvcnQgb24gV2luZG93cwoJICBfX2RlY2xzcGVjKGRsbGV4cG9ydC9pbXBvcnQpIGFyZSBzdXBwb3J0ZWQgYnkgR0NDIGFuZCBhcmUgbmVlZGVkIGZvcgoJICBwcm9wZXJseSBnZW5lcmF0aW5nIGNvZGUgdGhhdCBmZXRjaGVzIHRoZSB2YWx1ZXMgb2YgY29uc3RhbnRzIGZyb20gRExMcwoJICBidWlsdCB3aXRoIF9fZGVjbHNwZWMoZGxsZXhwb3J0KSB3aGljaCBoYXBwZW5zIHdoZW4gYW55dGhpbmcgdXNpbmcKCSAgR1NUX0VYUE9SVCBpcyBidWlsdCB3aXRoIE1TVkMuCgkgIFNlZTogaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS82MTl3MTRkcy5hc3B4CgkgIEVzc2VudGlhbGx5LCBpZiB5b3UgYnVpbHQgZ3N0cmVhbWVyIHdpdGggTVNWQyBhbmQgdGhlbiB0cmllZCB0byB1c2UKCSAgY29uc3RhbnRzIGZyb20gaXQgKHN1Y2ggYXMgR1NUX1RZUEVfQ0FQUykgaW4gYSBwbHVnaW4sIEdDQyB3b3VsZAoJICByZXRyaWV2ZSB0aGUgYWRkcmVzcyBvZiB0aGUgdmFsdWUgaW5zdGVhZCBvZiB0aGUgdmFsdWUgaXRzZWxmLgoKMjAxNi0wNS0xOSAxMToyNzozNiAtMDMwMCAgRGFuaWxvIENlc2FyIExlbWVzIGRlIFBhdWxhIDxkYW5pbG8uY2VzYXJAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJICBzY3JpcHRzOiBtYWtlIGdpdC11cGRhdGUuc2ggYnVpbGQgd2l0aCBhbGwgY29yZXMgYXZhaWxhYmxlCgkgIFRoZSBnaXQtdXBkYXRlLnNoIG5vdyBidWlsZHMgd2l0aCBhbGwgY29yZXMgYXZhaWxhYmxlLiBJbiBjYXNlIG9mCgkgIGZhaWx1cmUgaXQgZGVmYXVsdHMgdG8gMQoJICBUaGUgZGV2ZWxvcGVyIGNhbiBzdGlsbCBvdmVycmlkZSB0aGlzIGJ5IHNldHRpbmcgLWogdG8gc29tZXRoaW5nIGVsc2UKCSAgaW4gTUFLRUZMQUdTLCBhcyBzdGF0ZWQgYnkgMjk5NjA1ZGZlMmY5N2ZjYTMzMDE2MWZmMDFhMzkyZTFhODVmZTQyMi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NjY2NgoKMjAxNi0wNS0wNCAxMzo1Mzo1NiArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIChtaW5pKW9iamVjdDogYWRkIE1BWV9CRV9MRUFLRUQgZmxhZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY2MDA4CgoyMDE2LTA1LTE1IDE0OjE1OjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGJpbjogZW1pdCBkZWVwLWVsZW1lbnQte2FkZGVkLHJlbW92ZWR9IGZvciBjaGlsZHJlbiBvZiBuZXdseS1hZGRlZC9yZW1vdmVkIGJpbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc4OTMzCgoyMDE2LTA1LTE0IDEwOjU1OjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YmluLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgYmluOiBhZGQgImRlZXAtZWxlbWVudC1hZGRlZCIgYW5kICJkZWVwLWVsZW1lbnQtcmVtb3ZlZCIgc2lnbmFscwoJICBUaGlzIG1lYW5zIGFwcGxpY2F0aW9ucyBhbmQgYmluIHN1Yi1jbGFzc2VzIGNhbiBlYXNpbHkgdHJhY2sgd2hlbgoJICBhIG5ldyBjaGlsZCBlbGVtZW50IGlzIGFkZGVkIHRvIHRoZSBwaXBlbGluZSBzdWItaGllcmFyY2h5IG9yCgkgIHJlbW92ZWQuCgkgIEN1cnJlbnRseSBkb2Vzbid0IHNpZ25hbCBkZWVwIGFkZGVkL3JlbW92ZWQgZm9yIGVsZW1lbnRzIGluc2lkZQoJICBhIGJpbiBpZiBhIGJpbiBpcyBhZGRlZC9yZW1vdmVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc4OTMzCgoyMDE2LTA1LTE1IDE1OjAyOjQ5ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IEltcHJvdmUgSURMRSBwcm9iZSBkb2NzCgkgIE1ha2UgaXQgZXhwbGljaXQgdGhhdCB0aGUgcGFkIGlzIG9ubHkgYmxvY2tlZCB3aGlsZSB0aGUgY2FsbGJhY2sgaXMgcnVubmluZywKCSAgYW5kIHRoZSBwYWQgd2lsbCBiZSB1bmJsb2NrZWQgYWdhaW4gb25jZSB0aGUgY2FsbGJhY2sgcmV0dXJuZWQuCgkgIElmIEJMT0NLIGFuZCBJRExFIGJlaGF2aW91ciBpcyBuZWVkZWQsIGJvdGggbmVlZCB0byBiZSB1c2VkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY2MDAyCgoyMDE2LTA1LTE1IDEzOjI5OjU1ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkgIGRvY3M6IFVwZGF0ZSBmb3IgZ2l0IG1hc3RlcgoKMjAxNi0wMy0xMSAxNjowNDo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWU6IE9ubHkgdW5ibG9jayB1cHN0cmVhbSB3YWl0aW5nIGZvciB0aGUgcXVlcnkgb25jZSBkb3duc3RyZWFtIGlzIGZpbmlzaGVkCgkgIC4uLiB3aGVuIGZsdXNoaW5nIGFuZCBkZWFjdGl2YXRpbmcgcGFkcy4gT3RoZXJ3aXNlIGRvd25zdHJlYW0gbWlnaHQgaGF2ZSBhCgkgIHF1ZXJ5IHRoYXQgd2FzIGFscmVhZHkgdW5yZWZmZWQgYnkgdXBzdHJlYW0sIGNhdXNpbmcgY3Jhc2hlcyBvciBvdGhlcgoJICBpbnRlcmVzdGluZyBlZmZlY3RzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzNDk2CgoyMDE2LTA1LTE0IDE3OjMxOjUxICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNpbmsvc3JjOiBQb3N0IGFuIGVycm9yIG1lc3NhZ2UgaWYgOjpzdGFydCgpIGZhaWxzCgkgIFRoZSBzdWJjbGFzcyBzaG91bGQgZG8gdGhhdCBhbHJlYWR5LCBidXQganVzdCBpbiBjYXNlIGRvIGl0IG91cnNlbHZlcyB0b28gYXMgYQoJICBmYWxsYmFjay4gV2l0aG91dCB0aGlzLCBlLmcuIHBsYXliaW4gd2lsbCBqdXN0IHdhaXQgZm9yZXZlciBpZiB0aGlzIGZhaWxzCgkgIGJlY2F1c2UgaXQgaXMgdHJpZ2dlcmVkIGFzIHBhcnQgb2YgYW4gQVNZTkMgc3RhdGUgY2hhbmdlLgoKMjAxNi0wNS0xNCAyMzozNjo0MyArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogRml4IEVPUyBmb3J3YXJkaW5nIG9uIFBMQVlJTkctPlBMQVlJTkcKCSAgV2hlbiBkb2luZyBhIHRyYW5zaXRpb24gZnJvbSBQTEFZSU5HIHRvIFBMQVlJTkcsIHdlIHdpbGwgZmFpbAoJICB0byBmb3J3YXJkIGFuIEVPUyBtZXNzYWdlIG9uIHRoZSBidXMsIGFuZCBub29uZSBlbHNlIHdpbGwgZXZlcgoJICBzZW5kIGl0IGJlY2F1c2UgdGhlcmUnbGwgYmUgbm8gYWN0dWFsIHN0YXRlIGNoYW5nZWQgbWVzc2FnZS4KCSAgQWxsb3cgRU9TIHRocm91Z2ggZGlyZWN0bHkgaW4gdGhhdCBjYXNlLgoKMjAxNi0wNS0xMyAwOTo0MzoxNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBEb24ndCBkcm9wIExBVEVOQ1kgcXVlcmllcyB3aXRoIGRlZmF1bHQgaW1wbGVtZW50YXRpb24KCSAgSWYgdGhlcmUgaXMgb25seSBvbmUgcGFkIGluIHRoZSBpbnRlcm5hbCBwYWRzLCB3aGVuIGZvbGRpbmcgZm9yCgkgIExBVEVOQ1kgcXVlcmllcyBpdCB3aWxsIGp1c3QgZHJvcCB0aGUgcmVzcG9uc2UgaWYgaXQncyBub3QgbGl2ZS4KCSAgVGhpcyBpcyBtYXliZSBub3QgdGhlIHByb3BlciBmaXgsIGJ1dCBpdCB3aWxsIGp1c3QgYWNjZXB0IHRoZSBmaXJzdAoJICBwZWVyIHJlc3BvbnNlcywgYW5kIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgcGFkcywgaXQgd2lsbCBvbmx5IHRha2UKCSAgdGhlbSBpbnRvIGFjY291bnQgaWYgdGhlIHJlc3BvbnNlIGlzIGxpdmUuCgkgIFRoaXMgKnNob3VsZCogcHJvcGVybHkgaGFuZGxlIHRoZSBhZ2dyZWdhdGlvbi9mb2xkaW5nIGJlaGF2aW91ciBvZgoJICBtdWx0aXBsZSBsaXZlIHBlZXIgcmVzcG9uc2VzLCB3aGlsZSBhdCB0aGUgc2FtZSB0aW1lIGhhbmRsaW5nIHRoZQoJICBzaW1wbGUgb25lLXBhZC1vbmx5LWFuZC1mb3J3YXJkIHVzZS1jYXNlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjYzNjAKCjIwMTYtMDQtMDcgMDA6NDY6MjAgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBVcGRhdGUgdGhlIGV4YW1wbGVzIGluIHRoZSBnc3QtbGF1bmNoLTEuMCBtYW5wYWdlCgkgIFJlcGxhY2UgZWxlbWVudHMgdGhhdCBkb24ndCBleGlzdCBhbnkgbW9yZSB3aXRoIG9uZXMKCSAgdGhhdCBkbywgYW5kIGluc2VydCBlbGVtZW50cyBsaWtlIG1wZWdhdWRpb3BhcnNlIHdoZXJlCgkgIHRoZXkgYXJlIG5lZWRlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzEwNQoKMjAxNi0wNC0wMiAwMTowNTozOSArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGRlYnVnOiBJbnN0YW50aWF0ZSBHVHlwZSB3aGVuIGR1bXBpbmcgZGVidWcgY2F0ZWdvcmllcy4KCSAgQSBsb3Qgb2YgZGVidWcgY2F0ZWdvcmllcyBhcmUgZGVjbGFyZWQgaW4gZWxlbWVudCBjbGFzc19pbml0CgkgIGZ1bmN0aW9ucywgd2hpY2ggZG9uJ3QgZ2V0IHJ1biB1bnRpbCB0aGUgZWxlbWVudCBpcyBmaXJzdCBjcmVhdGVkCgkgIChub3QganVzdCByZWdpc3RlcmVkIGluIHRoZSBwbHVnaW4gbG9hZCBmdW5jdGlvbikuIFRoaXMgbWVhbnMKCSAgdGhhdCAtLWdzdC1kZWJ1Zy1oZWxwIGRvZXNuJ3QgcHJpbnQgb3V0IGEgbG90IG9mIGNhdGVnb3JpZXMuCgkgIENyZWF0aW5nIGFuIGluc3RhbmNlIG9mIGVhY2ggZWxlbWVudCBmcm9tIHRoZSBlbGVtZW50IGZhY3RvcnkKCSAgbWFrZXMgdGhlbSB2aXNpYmxlLCBhdCBzb21lIGV4dHJhIGNvc3QgLSAyLTMgdGltZXMgbG9uZ2VyLCB3aGljaCBjYW4KCSAgYmUgYSBmdWxsIHNlY29uZCBvciB0d28gb2YgZXh0cmEgd2FpdGluZy4gWWlrZXMhCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDEwMDEKCjIwMTYtMDUtMTEgMTU6MDY6MzkgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogT25seSBwdXNoIGEgQ0FQUyBldmVudCBkb3duc3RyZWFtIGlmIHRoZSBzaW5rcGFkIGlzIG5vdCBpbiBQVUxMIG1vZGUKCSAgVGhlIG90aGVyIHNpZ25hbCBoYW5kbGVycyBvZiB0aGUgdHlwZS1mb3VuZCBzaWduYWwgbWlnaHQgaGF2ZSByZWFjdGl2YXRlZAoJICB0eXBlZmluZCBpbiBQVUxMIG1vZGUgYWxyZWFkeSwgcHVzaGluZyBhIENBUFMgZXZlbnQgYXQgdGhhdCBwb2ludCB3b3VsZCBjYXVzZQoJICBkZWFkbG9ja3MgYW5kIGlzIGluIGdlbmVyYWwgdW5leHBlY3RlZCBieSBlbGVtZW50cyB0aGF0IGFyZSBpbiBQVUxMIG1vZGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU5MDYKCjIwMTYtMDUtMTEgMTI6MTY6MDkgKzA5MDAgIFdvbmNodWwgTGVlIDx3b25jaHVsLmxlZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogZml4IHdhcm5pbmcgb24gZW51bSBwcm9wZXJ0aWVzIHByaW50aW5nCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjYyNTEKCjIwMTYtMDUtMTAgMTU6MDE6NDIgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRml4IHBhZCBzdGF0ZSB3aGVuIGRlYWN0aXZhdGluZyBmcm9tIG9uZSBtb2RlIGFuZCB0aGVuIHRyeWluZyB0byBhY3RpdmF0ZSBhbm90aGVyIGFuZCBmYWlsaW5nCgkgIFdoZW4gYWN0aXZhdGluZyBhIHBhZCBpbiBQVUxMIG1vZGUsIGl0IG1pZ2h0IGFscmVhZHkgYmUgaW4gUFVTSCBtb2RlLiBXZSBub3cKCSAgZmlyc3QgdHJ5IHRvIGRlYWN0aXZhdGUgaXQgZnJvbSBQVVNIIG1vZGUgYW5kIHRoZW4gdHJ5IHRvIGFjdGl2YXRlIGl0IGluIFBVTEwKCSAgbW9kZS4gSWYgdGhlIGFjdGl2YXRpb24gZmFpbHMsIHdlIHdvdWxkIHNldCB0aGUgcGFkIHRvIGZsdXNoaW5nIGFuZCBzZXQgaXQKCSAgYmFjayB0byBpdHMgb2xkIG1vZGUuIEhvd2V2ZXIgdGhlIG9sZCBtb2RlIGlzIHdyb25nLCB0aGUgcGFkIGlzIG5vdCBpbiBQVVNICgkgIG1vZGUgYW55bW9yZSBidXQgaW4gTk9ORSBtb2RlLgoJICBUaGlzIGZpeGVzIGUuZy4gdHlwZWZpbmQgaW4gZGVjb2RlYmluIHJlYWN0aXZhdGluZyBQVVNIL1BVTEwgbW9kZSBpZiB1cHN0cmVhbQoJICBhY3R1YWxseSBmYWlscyB0byBnbyBpbnRvIFBVTEwgbW9kZSBhZnRlciBmaXJzdCBQVVNISU5HIGRhdGEgdG8gdHlwZWZpbmQuCgoyMDE2LTAzLTEzIDExOjA1OjI5IC0wNDAwICBBbnRob255IEcuIEJhc2lsZSA8Ymx1ZW5lc3NAZ2VudG9vLm9yZz4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL3N0cnNpZ25hbC5jOgoJICBsaWJjb21wYXQuaDogc3Ryc2lnbmFsKCkgc2hvdWxkIGJlIG5vdCBiZSBkZWNsZWFyZWQgY29uc3QKCSAgUE9TSVggc3RhbmRhcmRzIHJlcXVpcmVzIHN0cnNpZ25hbCgpIHRvIHJldHVybiBhIHBvaW50ZXIgdG8gYSBjaGFyLAoJICBub3QgYSBjb25zdCBwb2ludGVyIHRvIGEgY2hhci4gWzFdICBPbiB1Q2xpYmMsIGFuZCBwb3NzaWJseSBvdGhlcgoJICBsaWJjJ3MsIHRoYXQgZG8gbm90IEhBVkVfREVDTF9TVFJTSUdOQUwsIGxpYmNvbXBhdC5oIGRlY2xhcmVzCgkgIGNvbnN0IGNoYXIgKnN0cnNpZ25hbCAoaW50IHNpZykgd2hpY2ggY2F1c2VzIGEgdHlwZSBlcnJvci4KCSAgWzFdIG1hbiAzIHN0cnNpZ25hbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzNTY3CgoyMDE2LTA1LTA1IDE4OjUwOjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuYzoKCSAgZmxvd2NvbWJpbmVyOiBhZGQgZGVidWcgY2F0ZWdvcnkKCSAgTm90IHRoYXQgaXQgbG9ncyBtdWNoLgoKMjAxNi0wNS0wNSAxODowMjoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmM6CgkgIGZsb3djb21iaW5lcjogZml4IGRvY3MgZm9yIGdzdF9mbG93X2NvbWJpbmVyX3Jlc2V0KCkKCjIwMTYtMDUtMDQgMTA6MDQ6MzAgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBwYXJzZS1sYXVuY2g6IGZpeCBmYWN0b3J5IGxlYWsgaW4gdGVzdAoJICBXZSBnZXQgMiByZWZlcmVuY2VzIG9uZSBmcm9tIGdzdF9lbGVtZW50X2ZhY3RvcnlfZmluZCgpIGFuZCB0aGUgb3RoZXIKCSAgZnJvbSBnc3RfcGx1Z2luX2ZlYXR1cmVfbG9hZCgpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1OTc2CgoyMDE2LTA1LTA0IDEzOjQ2OjQ2ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGZpeCByZWYgY291bnQgbGVha3MgaW4gdGVzdHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTk3OAoKMjAxNi0wNS0wNCAwOTo1MzozMiArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICB1dGlsczogZml4IGVsZW1lbnQgbGVhayBpbiBmaW5kX2NvbW1vbl9yb290KCkKCSAgVGhlIHJvb3QgZWxlbWVudCB3YXMgbm90IHVucmVmZmVkIHdoZW4gaXRlcmF0aW5nIG92ZXIgYW5jZXN0b3JzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1OTYxCgoyMDE2LTA1LTAyIDE3OjM1OjI5ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGluc3BlY3Q6IGZpeCBmZWF0dXJlIGxlYWsKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTk1NwoKMjAxNi0wNS0wMyAxMTo0OTowMyArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHVyaTogdW5yZWYgaW5zdGVhZCBvZiB1c2luZyBfZ3N0X3VyaV9mcmVlKCkgZGlyZWN0bHkKCSAgVGhpcyBjb25mdXNlcyBnc3RfdHJhY2luZyBhcyB3ZSBzaG9ydGN1dCB0aGUgbWluaSBvYmplY3QgcmVmZXJlbmNlCgkgIHN5c3RlbS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTk1OAoKMjAxNi0wNS0wMiAwOTozMjo0NyArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2Vlay5jOgoJICBwaXBlbGluZTogZml4IGJ1cyBsZWFrIGluIHNlZWsgdGVzdAoJICBnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2hfZnVsbCgpIGtlZXBzIGEgcmVmIG9uIHRoZSBidXMgd2hpY2ggc2hvdWxkCgkgIGJlIHJlbGVhc2VkIHVzaW5nIGdzdF9idXNfcmVtb3ZlX3NpZ25hbF93YXRjaCgpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1OTAzCgoyMDE2LTA1LTAyIDA5OjI5OjMxICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3N0cmVhbWlkZGVtdXguYzoKCSAgc3RyZWFtaWRkZW11eDogZml4IGxpc3QgYW5kIGV2ZW50IGxlYWtzIGluIHRlc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTkwMwoKMjAxNi0wNS0wMiAwODo0MzowNCArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJICBzZWxlY3RvcjogZml4IHBhZCBsZWFrcyBpbiB0ZXN0cwoJICBzZXR1cF9pbnB1dF9wYWQoKSBjcmVhdGVzIGEgbmV3IHBhZCBzbyB3ZSBzaG91bGQgdW5yZWYgaXQgb25jZSB3ZSdyZQoJICBkb25lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1OTAzCgoyMDE2LTA1LTAyIDA4OjMzOjQyICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSAgZmlsZXNyYzogZml4IGJ1ZmZlciBsZWFrcyBpbiB0ZXN0cwoJICBnc3RfY2hlY2tfc2V0dXBfc2lua19wYWQoKSBpbnRlcm5hbGx5IHVzZXMgZ3N0X2NoZWNrX2NoYWluX2Z1bmMoKSBzbyB3ZQoJICBzaG91bGQgY2FsbCBnc3RfY2hlY2tfZHJvcF9idWZmZXJzKCkgd2hlbiB0ZWFyaW5nIGRvd24gdGVzdHMgdG8gZnJlZSB0aGUKCSAgYnVmZmVycyB3aGljaCBoYXZlIGJlZW4gZXhjaGFuZ2VkIHRocm91Z2ggdGhlIHBpcGVsaW5lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1OTAzCgoyMDE2LTA1LTAyIDA4OjI5OjAwICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkgIGZha2VzaW5rOiBmaXggcGlwZWxpbmUgbGVhayBpbiB0ZXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU5MDMKCjIwMTYtMDUtMDIgMDc6MzU6NDUgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBmaXggZmFjdG9yeSBsZWFrIGluIHRlc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTkwMwoKMjAxNi0wNS0wMiAxNjowMDo0MiArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXJmYWN0b3J5LmM6CgkgIGRldmljZXByb3ZpZGVyZmFjdG9yeTogZml4IGZhY3RvcnkgbGVhawoJICBUaGUgY29kZSBwYXRoIHdoZW4gZWFybHkgcmV0dXJuaW5nIHdhcyBsZWFraW5nIHRoZSBleHRyYSByZWZlcmVuY2Ugb24KCSAgdGhlIGZhY3RvcnkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU5MDQKCjIwMTYtMDQtMTAgMTE6NDI6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGZpeCBjb21waWxlciB3YXJuaW5nCgkgIEM0MTQ2OiB1bmFyeSBtaW51cyBvcGVyYXRvciBhcHBsaWVkIHRvIHVuc2lnbmVkIHR5cGUsIHJlc3VsdCBzdGlsbCB1bnNpZ25lZAoKMjAxNi0wNC0yOCAxNDo1OTo1MSArMDMwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGJpbjogZml4IGxlYWtzIGluIHVuaXQgdGVzdHMKCSAgVGhlIHRlc3QgcmVseSBvbiBidXMgYmVpbmcgZmx1c2hlZCB3aGVuIHNldHRpbmcgdGhlIGJpbiB0byB0aGUgTlVMTCBzdGF0ZSB3aGljaAoJICBpcyBub3QgdGhlIGNhc2UuIFRoaXMgYXBwbHkgb25seSB3aGVuIHNldHRpbmcgdGhlIHBpcGVsaW5lIHN0YXRlIHRvCgkgIE5VTEwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU3MjAKCjIwMTYtMDQtMjggMTQ6NTY6MTggKzAzMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBidWZmZXIgbGVha3MgaW4gdGVzdHMKCSAgVGhlIGJ1ZmZlciByZWNlaXZlZCB0aHJvdWdoIHRoZSBwYWQgaGF2ZSB0byBiZSB1bnJlZmZlZCB1c2luZwoJICBnc3RfY2hlY2tfZHJvcF9idWZmZXJzKCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU3MTkKCjIwMTYtMDQtMzAgMTQ6MTU6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIEZpeCBzb21lIG5vbnNlbnNpY2FsIGctaSBhbm5vdGF0aW9ucwoKMjAxNi0wNC0yOSAxNDo1NTowMiArMDIwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBJZ25vcmUgdGltZSB3aGVuIGRldGVybWluaW5nIHdoZXRoZXIgc3BhcnNlIHN0cmVhbSBsaW1pdHMgaGF2ZSBiZWVuIHJlYWNoZWQKCSAgQmFzaWNhbGx5LCBzcS0+bWF4X3NpemUudmlzaWJsZSBpcyBuZXZlciBpbmNyZWFzZWQgZm9yIHNwYXJzZSBzdHJlYW1zIGluCgkgIG92ZXJydW5jYiB3aGVuIGVtcHR5IHF1ZXVlIGhhcyBiZWVuIGZvdW5kOwoJICBJZiB0aGUgcXVldWUgaXMgc3BhcnNlIGl0IGp1c3Qgc2tpcCB0aGUgZW50aXJlIGxvZ2ljIGRldGVybWluaW5nIHdoZXRoZXIKCSAgbWF4X3NpemUudmlzaWJsZSBzaG91bGQgYmUgaW5jcmVhc2VkLCBkZWFkbG9ja2luZyB0aGUgZGVtdXhlci4KCSAgV2hhdCBzaG91bGQgYmUgZG9uZSBpbnN0ZWFkIGlzIHRoYXQgd2hlbiBkZXRlcm1pbmluZyBpZiBsaW1pdHMgaGF2ZSBiZWVuCgkgIHJlYWNoZWQsIHRvIGlnbm9yZSB0aW1lIGZvciBzcGFyc2Ugc3RyZWFtcywgYXMgdGhlIGJ1ZmZlciBtYXkgYmUgZmFyIGluIHRoZQoJICBmdXR1cmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU3MzYKCjIwMTYtMDItMjggMTI6MDY6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGVsZW1lbnQ6IEFkZCBnc3RfZWxlbWVudF9jYWxsX2FzeW5jKCkKCSAgVGhpcyBjYWxscyBhIGZ1bmN0aW9uIGZyb20gYW5vdGhlciB0aHJlYWQsIGFzeW5jaHJvbm91c2x5LiBUaGlzIGlzIHRvIGJlCgkgIHVzZWQgZm9yIGNhc2VzIHdoZW4gYSBzdGF0ZSBjaGFuZ2UgaGFzIHRvIGJlIHBlcmZvcm1lZCBmcm9tIGEgc3RyZWFtaW5nCgkgIHRocmVhZCwgZGlyZWN0bHkgdmlhIGdzdF9lbGVtZW50X3NldF9zdGF0ZSgpIG9yIGluZGlyZWN0bHkgZS5nLiB2aWEgU0VFSwoJICBldmVudHMuCgkgIENhbGxpbmcgdGhvc2UgZnVuY3Rpb25zIGRpcmVjdGx5IGZyb20gdGhlIHN0cmVhbWluZyB0aHJlYWQgd2lsbCBjYXVzZQoJICBkZWFkbG9ja3MgaW4gbWFueSBzaXR1YXRpb25zLCBhcyB0aGV5IG1pZ2h0IGludm9sdmUgd2FpdGluZyBmb3IgdGhlCgkgIHN0cmVhbWluZyB0aHJlYWQgdG8gc2h1dCBkb3duIGZyb20gdGhpcyB2ZXJ5IHN0cmVhbWluZyB0aHJlYWQuCgkgIFRoaXMgaXMgbW9zdGx5IGEgY29udmVuaWVuY2UgZnVuY3Rpb24gYXJvdW5kIGEgR1RocmVhZFBvb2wgYW5kIGlzIGZvciBleGFtcGxlCgkgIHVzZWQgYnkgR3N0QmluIHRvIGNvbnRpbnVlIGFzeW5jaHJvbm91cyBzdGF0ZSBjaGFuZ2VzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwNTMyCgoyMDE2LTA0LTI3IDA5OjIxOjMxICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogRml4IGJ1ZmZlciBtZW1vcnkgbGVhayBpbiBhcHBzcmMgZXhhbXBsZQoJICBnX3NpZ25hbF9lbWl0X2J5X25hbWUoKSBpcyBub3QgbGlrZSBnc3RfYXBwX3NyY19wdXNoX2J1ZmZlcigpIGR1ZSB0byByZWZlcmVuY2UKCSAgY291bnRpbmcgbGltaXRhdGlvbnMgb2Ygc2lnbmFscywgaXQgZG9lcyAqbm90KiB0YWtlIG93bmVyc2hpcCBvZiB0aGUgYnVmZmVyLgoKMjAxNi0wNC0yNiAxNjowMjoxNCArMDMwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBhZGQgY2xlYW51cCBwcml2IGZ1bmN0aW9uCgkgIFRob3NlIGFyZSBhbGxvY2F0ZWQgaW4gX3ByaXZfZ3N0X2NhcHNfaW5pdGlhbGl6ZSgpIHNvIGl0IG1ha2VzCgkgIHNlbnNlIHRvIGhhdmUgYSBzeW1ldHJpYyBjbGVhbnVwIGZ1bmN0aW9ucyBjYWxsZWQgYnkgZ3N0X2RlaW5pdCgpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1NjA2CgoyMDE2LTA0LTI2IDE2OjAyOjE0ICswMzAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSAgY2Fwc2ZlYXR1cmU6IGFkZCBjbGVhbnVwIHByaXYgZnVuY3Rpb24KCSAgVGhvc2UgYXJlIGFsbG9jYXRlZCBpbiBfcHJpdl9nc3RfY2Fwc19mZWF0dXJlc19pbml0aWFsaXplKCkgc28gaXQgbWFrZXMKCSAgc2Vuc2UgdG8gaGF2ZSBhIHN5bWV0cmljIGNsZWFudXAgZnVuY3Rpb25zIGNhbGxlZCBieSBnc3RfZGVpbml0KCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU2MDYKCjIwMTYtMDQtMjEgMTQ6NDU6MzkgKzAxMDAgIEFsZXggQXNobGV5IDxidWd6aWxsYUBhc2hsZXktZmFtaWx5Lm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJICB0ZXN0Y2xvY2s6IGFkZCBjbG9jay10eXBlIHByb3BlcnR5CgkgIFRvIGFsbG93IHRoZSBHc3RUZXN0Q2xvY2sgdG8gYmUgdXNlZCBhcyBhIEdzdFN5c3RlbUNsb2NrLCBpdCBpcwoJICB1c2VmdWwgdG8gaW1wbGVtZW50IHRoZSBjbG9jay10eXBlIHByb3BlcnR5IHRoYXQgR3N0U3lzdGVtQ2xvY2sKCSAgcHJvdmlkZXMuIFRoaXMgYWxsb3dzIEdzdFRlc3RDbG9jayB0byBiZSB1c2VkIGFzIHRoZSBzeXN0ZW0gY2xvY2sKCSAgd2l0aCBjb2RlIHRoYXQgZXhwZWN0cyBhIEdzdFN5c3RlbUNsb2NrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyMTQ3CgoyMDE2LTA0LTIxIDEzOjQ5OjMyICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIGRhdGV0aW1lOiBTYW5pdHkgY2hlY2sgeWVhciwgbW9udGggYW5kIGRheSB3aGVuIHBhcnNpbmcgSVNPLTg2MDEgc3RyaW5ncwoJICBQYXNzaW5nIHllYXJzID4gOTk5OSwgbW9udGhzID4gMTIgb3IgZGF5cyA+IDMxIHRvIGdzdF9kYXRlX3RpbWVfbmV3KCkgd2lsbAoJICBjYXVzZSBhbiBhc3NlcnRpb24gYW5kIGdlbmVyYWxseSBkb2VzIG5vdCBtYWtlIG11Y2ggc2Vuc2UuIEluc3RlYWQgY29uc2lkZXIgaXQKCSAgYXMgYSBwYXJzaW5nIGVycm9yIGxpa2UgaG91cnMgPiAyNCBhbmQgcmV0dXJuIE5VTEwuCgoyMDE2LTA0LTIwIDExOjQ2OjE5ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBSZW1lbWJlciBpZiB3ZSBpbnRlcnBvbGF0ZWQgRFRTIGZyb20gUFRTIGFuZCByZWZyZXNoIGl0IHdoZW5ldmVyIHdlIHVwZGF0ZSB0aGUgUFRTCgkgIE90aGVyd2lzZSBQVFMgYW5kIERUUyB3aWxsIGNvbWUgb3V0IG9mIHN5bmMgaWYgdXBzdHJlYW0gY29udGludWVzIHRvIHByb3ZpZGUKCSAgUFRTIGFuZCBub3QgRFRTLCBhbmQgd2UgaGF2ZSB0byBza2lwIHNvbWUgZGF0YSBmcm9tIHRoZSBzdHJlYW0gb3IgUFRTIGFyZSBub3QKCSAgZXhhY3RseSBpbmNyZWFzaW5nIHdpdGggdGhlIGR1cmF0aW9uIG9mIGVhY2ggcGFja2V0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1MjYwCgoyMDE2LTA0LTIwIDExOjQ1OjI4ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICB0eXBlZmluZGhlbHBlcjogRml4IGdvYmplY3QtaW50cm9zcGVjdGlvbiB3YXJuaW5nIGFib3V0IGludmFsaWQgdHJhbnNmZXIgYW5ub3RhdGlvbgoJICBnc3R0eXBlZmluZGhlbHBlci5jOjQ4NTogV2FybmluZzogR3N0QmFzZTogaW52YWxpZCAidHJhbnNmZXIiIGFubm90YXRpb24gZm9yIGdzaXplOiBvbmx5IHZhbGlkIGZvciBhcnJheSwgc3RydWN0LCB1bmlvbiwgYm94ZWQsIG9iamVjdCBhbmQgaW50ZXJmYWNlIHR5cGVzCgoyMDE2LTA0LTE4IDEzOjA1OjQwICswMzAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSAgYWxsb2NhdG9yOiBhZGQgY2xlYW51cCBtZXRob2QKCSAgTWFrZSB0cmFja2luZyBtZW1vcnkgbGVha3MgZWFzaWVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1MjEyCgoyMDE2LTAzLTI1IDE1OjU1OjE4ICswMTAwICBGcmFuY2lzY28gVmVsYXpxdWV6IDxmcmFuY2lzdkBpZmkudWlvLm5vPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJICB0ZXN0czogcGx1Z2luOiBpbXByb3ZlIGRlYnVnIG1lc3NhZ2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NDE5OQoKMjAxNi0wNC0xNCAxMTo1NDozMiArMDIwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogUmVjaGVjayBidWZmZXJpbmcgc3RhdHVzIGFmdGVyIGNoYW5naW5nIGxvdyB0aHJlc2hvbGQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mzc1NwoKMjAxNi0wNC0xNCAwMDowOTo0NCArMDIwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogUmVjYWxjdWxhdGUgZmlsbCBsZXZlbCBhZnRlciBjaGFuZ2luZyBoaWdoLXRocmVzaG9sZAoJICBUaGlzIGVuc3VyZXMgdGhlIGZvbGxvd2luZyBzcGVjaWFsIGNhc2UgaXMgaGFuZGxlZCBwcm9wZXJseToKCSAgMS4gUXVldWUgaXMgZW1wdHkKCSAgMi4gRGF0YSBpcyBwdXNoZWQsIGZpbGwgbGV2ZWwgaXMgYmVsb3cgdGhlIGN1cnJlbnQgaGlnaC10aHJlc2hvbGQKCSAgMy4gaGlnaC10aHJlc2hvbGQgaXMgc2V0IHRvIGEgbGV2ZWwgdGhhdCBpcyBiZWxvdyB0aGUgY3VycmVudCBmaWxsIGxldmVsCgkgIFNpbmNlIG1xLT5wZXJjZW50IHdhc24ndCBiZWluZyByZWNhbGN1bGF0ZWQgaW4gc3RlcCAjMyBwcm9wZXJseSwgdGhpcwoJICBjYXVzZWQgdGhlIG11bHRpcXVldWUgdG8gc3dpdGNoIG9mZiBpdHMgYnVmZmVyaW5nIHN0YXRlIHdoZW4gbmV3IGRhdGEgaXMKCSAgcHVzaGVkIGluLCBhbmQgbmV2ZXIgcG9zdCBhIDEwMCUgYnVmZmVyaW5nIG1lc3NhZ2UuIFRoZSBhcHBsaWNhdGlvbiB3aWxsCgkgIGhhdmUgcmVjZWl2ZWQgYSA8MTAwJSBidWZmZXJpbmcgbWVzc2FnZSBmcm9tIHN0ZXAgIzIsIGJ1dCB3aWxsIG5ldmVyIHNlZQoJICAxMDAlLgoJICBGaXggdGhpcyBieSByZWNhbGN1bGF0aW5nIHRoZSBjdXJyZW50IGZpbGwgbGV2ZWwgcGVyY2VudGFnZSBkdXJpbmcKCSAgaGlnaC10aHJlc2hvbGQgcHJvcGVydHkgY2hhbmdlcyBpbiB0aGUgc2FtZSBtYW5uZXIgYXMgaXQgaXMgZG9uZSB3aGVuCgkgIHVzZS1idWZmZXJpbmcgaXMgbW9kaWZpZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM3NTcKCjIwMTYtMDQtMTUgMTM6NTA6MzAgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFdoZW4gaW5pdGlhbGl6aW5nIERUUyBmcm9tIFBUUywgcmVtZW1iZXIgdGhhdCB3ZSBkaWQgc28KCSAgSWYgd2UgZG9uJ3Qgc3RvcmUgdGhlIHZhbHVlIGluIHByZXZfZHRzLCB3ZSB3b3VsZCBvdmVyIGFuZCBvdmVyIGFnYWluCgkgIGluaXRpYWxpemUgdGhlIERUUyBmcm9tIHRoZSBsYXN0IGtub3duIHVwc3RyZWFtIFBUUy4gSWYgdXBzdHJlYW0gb25seSBwcm92aWRlcwoJICBQVFMgZXZlcnkgbm93IGFuZCB0aGVuLCB0aGVuIHRoaXMgY2F1c2VzIERUUyB0byBiZSByYXRoZXIgc3RhdGljLgoJICBGb3IgZXhhbXBsZSBpbiBhZGFwdGl2ZSBzdHJlYW1pbmcgc2NlbmFyaW9zIHRoaXMgbWVhbnMgdGhhdCBhbGwgYnVmZmVycyBpbiBhCgkgIGZyYWdtZW50IHdpbGwgaGF2ZSBleGFjdGx5IHRoZSBzYW1lIERUUyB3aGlsZSB0aGUgUFRTIGlzIHByb3Blcmx5IHVwZGF0ZWQuIEFzCgkgIG91ciBxdWV1ZXMgYXJlIG5vdyBwcmVmZXJyaW5nIHRvIGRvIGJ1ZmZlciBmaWxsIGxldmVsIGNhbGN1bGF0aW9ucyBvbiBEVFMsCgkgIHRoaXMgaXMgY2F1c2luZyBodWdlIHByb2JsZW1zIHRoZXJlLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MTQ4MSNjMjcgd2hlcmUgdGhpcyBwYXJ0IG9mCgkgIHRoZSBjb2RlIHdhcyBpbnRyb2R1Y2VkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1MDk2CgoyMDE2LTA0LTE0IDA5OjU4OjA0ICswMTAwICBKdWxpZW4gSXNvcmNlIDxqLmlzb3JjZUBzYW1zdW5nLmNvbT4KCgkqIFJFQURNRToKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA2ZjJkMjA5IHRvIGFjMmY2NDcKCjIwMTYtMDQtMTMgMTY6MDg6MzAgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGNhdGNoIGVycm9ycyBhbmQgZmx1c2hpbmcgY2FzZSBhZnRlciBsb2NrCgkgIFRoaXMgZW5zdXJlcyB3ZSBjYW4gbm90IGdldCBpbnRvIGFuIGluZGVmaW5pdGUgd2FpdCBvbiB0aGUKCSAgZm9sbG93aW5nIGNvbmQgdmFyIHdhaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQ5OTkKCjIwMTYtMDQtMTMgMTY6NDA6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBnc3QtbGF1bmNoOiBmaXggdXAgY2FwcyBwcmludGluZyBpbiB2ZXJib3NlIG1vZGUKCSAgQWRkIG1pc3NpbmcgJ2Vsc2UnIGFuZCBwcmludCBjYXBzIGFuZCB0YWdsaXN0cyB3aXRob3V0IHRoZQoJICBhbm5veWluZyBkdXBsaWNhdGUgc3RyaW5nIGVzY2FwaW5nLCBtYWtpbmcgYm90aCBuaWNlciB0byByZWFkLgoJICBGaXhlcyBzdHJpbmcgbGVhayBhbmQgY292ZXJpdHkgQ0lEIDEzNTg0OTIuCgoyMDE2LTA0LTEzIDEyOjM4OjA1ICswMzAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSAgcnVzYWdlOiBwcm9wZXJseSBmcmVlIHRoZSBxdWV1ZSBtZW1vcnkKCSAgVGhlIHF1ZXVlIGlzIGFsbG9jYXRlZCBhcyBwYXJ0IG9mIHRoZSB0cmFjZXIgc3RydWN0IHNvIHdlIHNob3VsZCBub3QKCSAgdXNlIGdfcXVldWVfZnJlZSgpIHRvIGZyZWUgaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQ5ODUKCjIwMTYtMDQtMTMgMTA6MjE6MTUgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkgIG1ldGE6IFdhcm4gaWYgYSBtZXRhIGltcGxlbWVudGF0aW9uIGlzIHJlZ2lzdGVyZWQgd2l0aG91dCBpbml0IGZ1bmN0aW9uCgkgIFRoaXMgcHJldmlvdXNseSBjYXVzZWQgdW5pbml0aWFsaXplZCBtZW1vcnkgdW5sZXNzIHNvbWV0aGluZyBlbHNlIHdhcwoJICBpbml0aWFsaXppbmcgYWxsIHRoZSBmaWVsZHMgZXhwbGljaXRseSB0byBzb21ldGhpbmcuCgkgIFRvIGJlIG9uIHRoZSBzYWZlIHNpZGUsIHdlIGFsc28gYWxsb2NhdGUgbWV0YXMgd2l0aG91dCBpbml0IGZ1bmN0aW9uIHRvIGFsbAoJICB6ZXJvZXMgbm93IGFzIGl0IHdhcyByZWxhdGl2ZWx5IGNvbW1vbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NDkwMgoKMjAxNi0wNC0xMiAxNToxNzozNiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgUmV2ZXJ0ICJiYXNlc2luazogVGFrZSBQUkVST0xMX0xPQ0sgaW4gd2FpdF9ldmVudCgpIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDgyOGE0NjI3ZGIwY2I2YTY3MDZiOTZkOWJlOTdlNWU1YzdkMjIyMTUuCgkgIFRoZSBsb2NrIHdhcyBhbHJlYWR5IHRha2VuIGVsc2V3aGVyZSwgaW4gZ3N0X2Jhc2Vfc2lua19ldmVudCgpLgoKMjAxNi0wNC0xMiAxNToxMTozMCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IFRha2UgUFJFUk9MTF9MT0NLIGluIHdhaXRfZXZlbnQoKQoJICBJdCBpcyBjYWxsaW5nIGRvX3N5bmMoKSwgd2hpY2ggcmVxdWlyZXMgdGhlIFNUUkVBTV9MT0NLIGFuZCBQUkVST0xMX0xPQ0sgdG8gYmUKCSAgdGFrZW4uIFRoZSBTVFJFQU1fTE9DSyBpcyBhbHJlYWR5IHRha2VuIGluIGFsbCBjYWxsZXJzLCB0aGUgUFJFUk9MTF9MT0NLIG5vdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NDkzOQoKMjAxNi0wMi0xMSAwOTozMzoyOCArMDEwMCAgSnVsaWVuIElzb3JjZSA8ai5pc29yY2VAc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IGFkZCBQVEhSRUFEX0NGTEFHUyBmb3IgbWFrZSBjaGVjayB0byBwYXNzIG9uIE9TIFgKCSAgQ3VycmVudGx5ICJtYWtlIGNoZWNrIiBmYWlscyB3aXRoOgoJICAiZXJyb3I6IGFyZ3VtZW50IHVudXNlZCBkdXJpbmcgY29tcGlsYXRpb246ICctcHRocmVhZCciCgkgIFBUSFJFQURfQ0ZMQUdTIG5vdyBjb250YWlucyAtUXVudXNlZC1hcmd1bWVudHMgdG8gZml4IHRoYXQuCgkgIEV4cGxhbmF0aW9uIGhlcmU6IGh0dHA6Ly9zYXZhbm5haC5nbnUub3JnL3BhdGNoLz84MTg2I2NvbW1lbnQyMQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3OTU0CgoyMDE2LTA0LTExIDEwOjQ0OjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlcGFyc2UuYzoKCSAgdGVzdHM6IGJhc2VwYXJzZTogbWFrZSB3b3JrIHdpdGggQ0tfRk9SSz1ubwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIzNDY5CgoyMDE2LTA0LTExIDEwOjI3OjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0yLmM6CgkgIHRlc3RzOiB0cmFuc2Zvcm0xOiBtYWtlIHRlc3Qgd29yayB3aXRoIENLX0ZPUks9bm8KCSAgV2UgbmVlZCB0byBjbGVhciBzb21lIGdsb2JhbCBzdGF0ZSBhbmQgcmVnaXN0ZXIgYSBuZXcgdGVzdAoJICBiYXNldHJhbnNmb3JtIHN1YmNsYXNzIGZvciBlYWNoIHRlc3QgYmVjYXVzZSB3ZSBkbyB0aGluZ3MKCSAgaW4gY2xhc3NfaW5pdCBiYXNlIG9uIGdsb2JhbCBzdGF0ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMzQ2OQoKMjAxNi0wNC0xMCAyMDo0NToyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSAgdGVzdHM6IGNvbGxlY3RwYWRzOiBmaXggZm9yIENLX0ZPUks9bm8KCSAgUmVzZXQgZ2xvYmFsIHN0YXRlIHdoZW4gZG9uZSwgYW5kIHVucmVmIHNpbmsgcGFkcyB0b28KCSAgaW4gdGVhcmRvd24gZnVuY3Rpb24gdG8gbWFrZSBpdCB2YWxncmluZCBjbGVhbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMzQ2OQoKMjAxNi0wNC0xMCAyMDoyNTo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3N0cmVhbWlkZGVtdXguYzoKCSAgdGVzdHM6IHN0cmVhbWlkZGVtdXg6IGZpeCB3aXRoIENLX0ZPUks9bm8KCSAgQ2xlYXIgZ2xvYmFsIHN0YXRlIHdoZW4gZG9uZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMzQ2OQoKMjAxNi0wNC0xMCAyMDowNDowNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJwb29sLmM6CgkgIHRlc3RzOiBidWZmZXJwb29sOiBmaXggd3JvbmcgYXNzdW1wdGlvbnMgYWJvdXQgcG9pbnRlcnMgYW5kIG9iamVjdCBsaWZlY3ljbGVzCgkgIFRoZSB0ZXN0IGFzc3VtZWQgdGhhdCBpZiBhIGJ1ZmZlciBoYXMgdGhlIHNhbWUgcG9pbnRlciBhZGRyZXNzIGFzCgkgIGJlZm9yZSBpdCBpcyBpbiBmYWN0IHRoZSBzYW1lIG1pbmkgb2JqZWN0IGFuZCBoYXMgYmVlbiByZS11c2VkIGJ5CgkgIHRoZSBwb29sLiBUaGlzIHNlZW1zIHRvIGJlIG1vc3RseSB0cnVlLCBidXQgbm90IGFsd2F5cy4gVGhlIGJ1ZmZlcgoJICBtaWdodCBiZSBkZXN0cm95ZWQgYW5kIHdoZW4gYSBuZXcgYnVmZmVyIGlzIGNyZWF0ZWQgdGhlIGFsbG9jYXRvcgoJICBtaWdodCByZXR1cm4gdGhlIHNhbWUgbWVtb3J5IHRoYXQgd2UganVzdCBmcmVlZC4KCSAgSW5zdGVhZCBhdHRhY2ggYSBxZGF0YSB3aXRoIGRlc3Ryb3kgbm90aWZ5IGZ1bmN0aW9uIHRvIGJ1ZmZlcgoJICBpbnN0YW5jZXMgd2Ugd2FudCB0byB0cmFjayB0byBtYWtlIHN1cmUgdGhlIGJ1ZmZlciBhY3R1YWxseQoJICBnZXRzIGZpbmFsaXplZCByYXRoZXIgdGhhbiByZXN1cnJlY3RlZCBhbmQgcHV0IGJhY2sgaW50byB0aGUgcG9vbC4KCjIwMTYtMDQtMTAgMTg6Mzc6MzEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBkb2NzOiBwd2c6IHJlbW92ZSBicm9rZW4gcmVmZXJlbmNlcyB0byBleGFtcGxlIGNvZGUKCSAgV2UgcG9pbnQgdG8gZ3N0LXRlbXBsYXRlIGF0IHRoZSBiZWdpbm5pbmcgdGhhdCBzaG91bCBiZQoJICBlbm91Z2guCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjM1NzUKCjIwMTYtMDQtMDggMTM6MjY6NDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IGRvbid0IHJ1biB0cmFjZXJyZWNvcmQgaW4gdmFsZ3JpbmQgZm9yIG5vdwoJICBCZWNhdXNlIG9mIHRoZSB3YXkgd2UgaW1wbGVtZW50IGxvZ2dpbmcgYW5kIGFkZGluZy9yZW1vdmluZwoJICBsb2cgZnVuY3Rpb25zIGN1cnJlbnRseSAod2UgbGVhayBhIEdMaXN0IG9uIHB1cnBvc2UpIHRoaXMKCSAgdGVzdCBsZWFrcy4KCjIwMTYtMDMtMDUgMTc6NTE6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBnc3QtbGF1bmNoOiB1c2UgbmV3IGFzeW5jIHByb3BlcnR5IGNoYW5nZSBub3RpZmljYXRpb24gQVBJCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjMxNDIKCjIwMTYtMDMtMDUgMTQ6MTI6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBlbGVtZW50OiBhZGQgQVBJIHRvIGdldCBwcm9wZXJ0eSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyB2aWEgbWVzc2FnZXMKCSAgQmUgbm90aWZpZWQgaW4gdGhlIGFwcGxpY2F0aW9uIHRocmVhZCB2aWEgYnVzIG1lc3NhZ2VzIGFib3V0CgkgIG5vdGlmeTo6KiBhbmQgZGVlcC1ub3RpZnk6OiogcHJvcGVydHkgY2hhbmdlcywgaW5zdGVhZCBvZgoJICBoYXZpbmcgdG8gZGVhbCB3aXRoIGl0IGluIGEgbm9uLWFwcGxpY2F0aW9uIHRocmVhZC4KCSAgQVBJOiBnc3RfZWxlbWVudF9hZGRfcHJvcGVydHlfbm90aWZ5X3dhdGNoKCkKCSAgQVBJOiBnc3RfZWxlbWVudF9hZGRfcHJvcGVydHlfZGVlcF9ub3RpZnlfd2F0Y2goKQoJICBBUEk6IGdzdF9lbGVtZW50X3JlbW92ZV9wcm9wZXJ0eV9ub3RpZnlfd2F0Y2goKQoJICBBUEk6IGdzdF9tZXNzYWdlX25ld19wcm9wZXJ0eV9ub3RpZnkoKQoJICBBUEk6IGdzdF9tZXNzYWdlX3BhcnNlX3Byb3BlcnR5X25vdGlmeSgpCgkgIEFQSTogR1NUX01FU1NBR0VfUFJPUEVSVFlfTk9USUZZCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjMxNDIKCjIwMTYtMDQtMDcgMjA6Mjk6MTAgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y3BwLmNjOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGxpYnNjcHAuY2M6CgkgIHRlc3RzOiBBZGQgQysrIHRlc3RzIGZvciB0aGUgb3RoZXIgSU5JVCBtYWNyb3Mgd2UgaGF2ZQoKMjAxNi0wNC0wNiAxNzoxOToyOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjcHAuY2M6CgkgIHRlc3RzOiBnc3RjcHA6IGZsZXNoIG91dCBDKysgdGVzdCBzbyB3ZSBjYW4gYWRkIG1vcmUgYml0cwoJICBMaWtlIGEgY2hlY2sgZm9yIEdTVF9NQVBfSU5GT19JTklULgoKMjAxNi0wNC0wNiAxNjo0ODozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bGlic2NwcC5jYzoKCSAgdGVzdHM6IHVzZSBjYXRjaC1hbGwgaW5jbHVkZXMgZm9yIGMrKyBnc3QgbGlicyBpbmNsdWRlIHRlc3QKCSAgU28gd2UgZ2V0IGFueSBuZXcgaGVhZGVyIGZpbGVzIGFzIHdlbGwgYXMgdGhleSdyZSBhZGRlZC4KCjIwMTYtMDQtMDYgMTc6MjM6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogZml4IEMrKyBjb21waWxlciB3YXJuaW5ncyB3aXRoIEdTVF9NQVBfSU5GT19JTklUCgoyMDE2LTA0LTA0IDEwOjI4OjE4ICswMDAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBjaGVjayB0aGUgY29ycmVjdCBlbGVtZW50J3Mgc3RhdGUgb24gZ2hvc3RpbmcgcGFkcwoJICBDaGVja2luZyB0aGUgY3VycmVudCBlbGVtZW50J3Mgc3RhdGUgd2hlbiB3ZSdyZSBhZGRpbmcgcGFkcyB0bwoJICB0aGUgcGFyZW50IGVsZW1lbnQgaXMgY2hlY2tpbmcgdGhlIHdyb25nIHRoaW5nLgoJICBTaWxlbmNlcyBhICdhdHRlbXB0aW5nIHRvIGFkZCBhbiBpbmFjdGl2ZSBwYWQgdG8gYSBydW5uaW5nIGVsZW1lbnQnCgkgIHdhcm5pbmcgd2hlbiBhZGRpbmcgYSBnaG9zdCBwYWQgdG8gYSBydW5uaW5nIHBhcmVudCBiaW4gb2YgdGhlIHBhcmVudAoJICBiaW4gb2YgdGhlIGVsZW1lbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQxNzYKCjIwMTYtMDMtMjUgMDE6Mjg6MTggKzAwMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHV0aWxzOiBleHBvc2UgcGFkX2xpbmtfbWF5YmVfZ2hvc3RpbmcKCSAgVGhpcyBpcyBhIHVzZWZ1bCBmdW5jdGlvbiB0byBhdXRvbWF0aWNhbGx5IGFkZCBnaG9zdCBwYWRzIHdoZW4gbGlua2luZwoJICB0d28gZWxlbWVudHMgYWNyb3NzIGJpbiBib3VuZGFyaWVzIHdpdGhvdXQga25vdyB0aGVpciBleGFjdCBwYXJlbnRhZ2UuCgkgIGUuZy4gd2hlbiB1c2luZyBnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24gKHdpdGggb3Igd2l0aG91dCBpdCBnaG9zdGluZyBwYWRzKSwKCSAgb25lIGNhbiBzaW1wbHkgcmV0cmVpdmUgdGhlIHNyYy9zaW5rIHBhZHMgZnJvbSB0aGUgYmluIHRvIGxpbmsgdG8gYW5vdGhlciBwYWQuCgkgIFNpbWlsYXIgZnVuY3Rpb25hbGl0eSBpcyBwcm92aWRlZCBieSBnc3RfZWxlbWVudF9saW5rX3BhZHN7X2Z1bGx9KCkgaG93ZXZlciBvbmx5CgkgIGJ5IHBhZCBuYW1lIHJhdGhlciB0aGFuIGJ5IGFjdHVhbCBwYWRzLgoJICBBUEk6IGdzdF9wYWRfbGlua19tYXliZV9naG9zdGluZ19mdWxsCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQxNzYKCjIwMTYtMDQtMDMgMjM6MzU6NDYgLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OiBzcGVsbGluZyBmaXgKCjIwMTUtMDUtMTUgMTM6MzY6MDQgKzAxMDAgIE1hcmsgQ29tYmVsbGFjayA8Z25vbWUtYnVnemlsbGFAY29tYmVsbGFjay5uZXQ+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgR1NUX1JFRkNPVU5USU5HOiBBZGQgbG9nZ2luZyBvZiBwb2ludGVyIGFkZHJlc3MgZm9yIGRpc3Bvc2UsIGZpbmFsaXplLCBldGMgbWVzc2FnZXMKCSAgVXBkYXRlZCB0aGUgR1NUX1JFRkNPVU5USU5HIGxvZ2dpbmcgc28gdGhhdCBpdCBpbmNsdWRlcyB0aGUgcG9pbnRlcgoJICBhZGRyZXNzIG9mIHRoZSBvYmplY3QgdGhhdCBpcyBiZWluZyBkaXNwb3NlZCBvciBmaW5hbGl6ZWQuCgkgIFdpdGggdGhpcyBjaGFuZ2UgaXMgaXMgdGhlbiBwb3NzaWJsZSB0byBtYXRjaCB1cCBHU1RfUkVGQ09VTlRJTkcgbG9nIG1lc3NhZ2VzCgkgIGZvciBvYmplY3QgYWxsb2NhdGlvbi9kaXNwb3NhbC9maW5hbGl6YXRpb24uIFRoaXMgY2FuIGhlbHAgd2l0aCBkaWFnbm9zaW5nCgkgICJtZW1vcnkgbGVha3MiIGluIGFwcGxpY2F0aW9ucyB0aGF0IGhhdmUgbm90IGNvcnJlY3RseSBkaXNwb3NlZCBvZiBhbGwgdGhlCgkgIEdTdHJlYW1lciBvYmplY3RzIGl0IGNyZWF0ZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDk0MjcKCjIwMTYtMDMtMzEgMTE6NDY6MDMgKzAxMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNiZ0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBvbmx5IG9wZW4gbG9nIGZpbGUgd2hlbiBhZGRpbmcgaXQgdG8gdGhlIGxvZyBmdW5jdGlvbgoJICBUaGlzIGF2b2lkcyB0aGUgbGVhayBvZiBvcGVuaW5nIGl0IGFuZCB0aGVuIG5vdCBwYXNzaW5nIGl0IG9yIGNsb3NpbmcgaXQKCSAgYmVmb3JlIGl0IGdvZXMgb3V0IG9mIHNjb3BlLgoKMjAxNi0wNC0wMSAyMjo0MTo1MSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBjbG9jazogUmV0dXJuIEZBTFNFIGluIGFsbCBwYXRocyB0aGF0IGRvbid0IHNldCBvdXQgcGFyYW1ldGVycyBpbiBnc3RfY2xvY2tfYWRkX29ic2VydmF0aW9uX3VuYXBwbGllZCgpCgkgIEl0IHJldHVybmVkIFRSVUUgd2hlbiByZWdyZXNzaW9uIGZhaWxlZCwgd2hpbGUgbm90IHNldHRpbmcgYW55IG9mIHRoZSBvdXQKCSAgcGFyYW1ldGVycy4gVGhpcyBjYXVzZWQgdW5pbml0aWFsaXplZCBkYXRhIGZyb20gdGhlIHN0YWNrIHRvIGJlIHVzZWQgZm9yCgkgIHNldHRpbmcgdGhlIGNsb2NrIGNhbGlicmF0aW9uLgoKMjAxNi0wMy0yNCAxNzozNDoyMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHJld29yayBwcm9iZSdzIGhvb2tfbWFyc2hhbGwgZnVuY3Rpb24KCSAgUFVTSCBhbmQgUFVMTCBtb2RlIGhhdmUgb3Bwb3NpdGUgc2NlbmFyaW9zIGZvciBJRExFIGFuZCBCTE9DSwoJICBwcm9iZXMuCgkgIEZvciBQVVNIIGl0IHdpbGwgQkxPQ0sgd2l0aCBzb21lIGRhdGEgdHlwZSBhbmQgSURMRSB3b24ndCBoYXZlIGEgdHlwZS4KCSAgRm9yIFBVTEwgaXQgd2lsbCBCTE9DSyBiZWZvcmUgZ2V0dGluZyBzb21lIGRhdGEgYW5kIHdpbGwgYmUgSURMRSB3aGVuCgkgIHNvbWUgZGF0YSBpcyBvYnRhaW5lZC4KCSAgVGhlIGNoZWNrIGluIGhvb2tfbWFyc2hhbGwgd2FzIHNwZWNpZmljIGZvciBQVVNIIG1vZGUgYW5kIHdvdWxkIGNhdXNlCgkgIFBVTEwgcHJvYmVzIHRvIGZhaWwgdG8gYmUgY2FsbGVkLiBBZGRpbmcgZGlmZmVyZW50IGNoZWNrcyBmb3IgdGhlIG1vZGUKCSAgdG8gZml4IHRoaXMgaXNzdWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjEyMTEKCjIwMTYtMDMtMjQgMTc6MzQ6NDAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IHBhZDogZXh0cmEgdGVzdHMgZm9yIHBhZCBwdWxsIHByb2JlcwoJICBGb3IgQlVGRkVSIGFuZCBJRExFIHByb2JlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxMjExCgoyMDE2LTAxLTI4IDE2OjIyOjE3ICswMTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEFkZCB0ZXN0IGZvciBibG9ja2luZyBwdWxsIHByb2JlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjEyMTEKCjIwMTYtMDMtMjQgMTI6MTM6MzkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBjb25zaWRlciBQUk9CRV9UWVBFX0VWRU5UX0ZMVVNIIHdoZW4gdXNpbmcgUFJPQkVfVFlQRV9BTExfQk9USAoJICBXaGVuIEdTVF9QQURfUFJPQkVfRVZFTlRfRkxVU0ggaXMgdXNlZCwgdGhlIHByb2JlcyBhbHJlYWR5IGhhdmUKCSAgYSBkYXRhIHR5cGUgYW5kIGl0IGlzIG5vdCBuZWVkZWQgdG8gYXV0b21hdGljYWxseSBhZGQgdGhlIGRlZmF1bHQKCSAgdHlwZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjIzMzAKCjIwMTYtMDItMTkgMTY6MTg6MTIgKzAxMDAgIExpbnVzIFN2ZW5zc29uIDxsaW51c3NuQGF4aXMuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQgdGVzdHM6IEFkZCBhIHRlc3QgZm9yIGZsdXNoIGV2ZW50IG9ubHkgcHJvYmVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjIzMzAKCjIwMTYtMDMtMjYgMTc6MjE6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBmaXggZW51bS9mbGFnIHByb3BlcnRpZXMgcHJpbnRpbmcgZm9yIGVsZW1lbnRzCgkgIFdlIHdhbnQgdG8gdXNlIHRoZSBmbGFnL2VudW0gbmlja3MgaGVyZSwgbm90IG9ubHkgYmVjYXVzZSB0aGV5CgkgIGFyZSBzaG9ydGVyIGJ1dCBhbHNvIGJlY2F1c2UgaW4gY2FzZSBvZiBlbGVtZW50LXNwZWNpZmljIGVudW1zCgkgIGFuZCBmbGFncyB3ZSBhYnVzZSB0aGUgZW51bS9mbGFnIG5hbWUgZmllbGQgZm9yIHRoZSBkZXNjcmlwdGlvbiwKCSAgYW5kIHdlIGRvbid0IHdhbnQgdGhhdCBwcmludGVkIGluIHRoZSBkb3QgZmlsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzgxNAoKMjAxNi0wMy0yMyAxMDozMTo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R0cmFjZS5jOgoJICBhbGxvY3RyYWNlOiBwcmludCBzaXplIGFuZCBhbGxvY2F0b3IgZGV0YWlscyBmb3IgYnVmZmVycyBhbmQgbWVtb3JpZXMKCjIwMTYtMDItMjkgMTk6MDQ6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBtYWtlIGl0IHBvc3NpYmxlIHRvIHJlbW92ZSBkZWZhdWx0IGxvZyBoYW5kbGVyIGJlZm9yZSBnc3RfaW5pdCgpCgkgIE1ha2Ugc3VyZSBpdCdzIG5vdCBldmVuIGFkZGVkIHRoZW4sIHNvIHRoYXQgd2UgbmV2ZXIgb3V0cHV0CgkgIGFueXRoaW5nIHZpYSB0aGUgZGVmYXVsdCBsb2cgaGFuZGxlciB0aGVuLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxNTM4CgoyMDE2LTAzLTA1IDE0OjI3OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0dXJpLmg6CgkgIG1pbmlvYmplY3QsIG1lbW9yeSwgdXJpOiB3YXJuIG9uIHVudXNlZCByZXR1cm4gdmFsdWUgb2Ygc29tZSBmdW5jcwoJICBNYWtlIGNvbXBpbGVyIGlzc3VlIGEgd2FybmluZyBmb3IgY29tbW9uIGJlZ2lubmVyIG1pc3Rha2VzIHN1Y2ggYXM6CgkgIC4uLgoJICBnc3RfYnVmZmVyX21ha2Vfd3JpdGFibGUgKGJ1Zik7CgkgIGdzdF9idWZmZXJfbWFwIChidWYsICZtYXAsIEdTVF9NQVBfV1JJVEUpOwoJICAuLi4KCSAgYW5kIHNpbWlsYXIuIE9ubHkgZG8gdGhpcyBmb3Igc29tZSBmdW5jdGlvbnMgZm9yIG5vdy4KCjIwMTYtMDMtMjYgMTE6MTc6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiAuZ2l0aWdub3JlOgoJICAuZ2l0aWdub3JlIG5ldyBuZXRjbG9jay1yZXBsYXkgdGVzdGluZyB0b29sIGJpbmFyeQoKMjAxNS0xMC0xNyAxODowMTo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogYWxsb3cgcGx1Z2luIGFuZCBmZWF0dXJlIGZpbHRlciBmdW5jcyB0byBjYWxsIHJlZ2lzdHJ5IEFQSQoJICBEb24ndCBrZWVwIHRoZSByZWdpc3RyeSBsb2NrZWQgd2hpbHN0IGl0ZXJhdGluZyBvdmVyIHRoZSBwbHVnaW5zCgkgIG9yIGZlYXR1cmVzIHdpdGggYSBmaWx0ZXIgZnVuY3Rpb24uIFRoaXMgd291bGQgZGVhZGxvY2sgaWYgdGhlCgkgIGNhbGxiYWNrIHRyaWVkIHRvIGFjY2VzcyB0aGUgcmVnaXN0cnkgZnJvbSB0aGUgZnVuY3Rpb24uIEluc3RlYWQsCgkgIG1ha2UgYSBjb3B5IG9mIHRoZSBmZWF0dXJlL3BsdWdpbiBsaXN0IGFuZCB0aGVuIGZpbHRlciBpdCB3aXRob3V0CgkgIGhvbGRpbmcgdGhlIHJlZ2lzdHJ5IGxvY2suIFRoaXMgaXMgc3RpbGwgY29uc2lkZXJhYmx5IGZhc3RlciB0aGFuCgkgIHRoZSBhbHRlcm5hdGl2ZSB3aGljaCB3b3VsZCBiZSB0byB1c2UgYSBHc3RJdGVyYXRvci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NjczOAoKMjAxNi0wMy0yNSAxMjo1OTo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBSZW1vdmUgdW5uZWVkZWQgcGFyZW50aGVzaXMgZnJvbSBBR19HU1RfQ0hFQ0tfQ0hFQ0tTCgoyMDE2LTAzLTI1IDEyOjA1OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmFsdmUuYzoKCSAgdmFsdmU6IEZpeCB1bml0IHRlc3QgYnkgc2VuZGluZyBjYXBzIGJlZm9yZSBidWZmZXJzCgkgIFVuZXhwZWN0ZWQgY3JpdGljYWwvd2FybmluZzogZ3N0cGFkLmM6NDQwMDpnc3RfcGFkX3B1c2hfZGF0YTo8Jyc6c3JjPiBHb3QgZGF0YSBmbG93IGJlZm9yZSBzZWdtZW50IGV2ZW50CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM3NTMKCjIwMTYtMDMtMjUgMTA6MjM6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9taXNjL01ha2VmaWxlLmFtOgoJICBuZXRjbG9jazogTGluayB0aGUgcmVwbGF5IGV4YW1wbGUgdG8gR0lPCgoyMDE2LTAzLTAzIDIxOjQ1OjU0ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL21pc2MvTWFrZWZpbGUuYW06CgkqIHRlc3RzL21pc2MvbmV0Y2xvY2stcmVwbGF5LmM6CgkgIHRlc3RzOiBBZGQgc29tZSBjb2RlIHRvIHJlcGxheSBhbmQgYW5hbHlzZSBuZXRjbGllbnRjbG9jawoJICBUaGlzIHRha2VzIHJlYWRpbmdzIGluIHRoZSBmb3JtIG9mIC4uLgoJICA8bG9jYWxfMT4gPHJlbW90ZV8xPiA8cmVtb3RlXzI+IDxsb2NhbF8yPgoJICAuLi4gd2l0aCBvbmUgb2JzZXJ2YXRpb24gcGVyIGxpbmUsIGFuZCB0aGVuIHJlcGxheXMgaXQgdXNpbmcgdGhlCgkgIG5ldGNsaWVudGNsb2NrIGNvZGUuCgkgIFRoZSBvdXRwdXQgaXMgdGhlIHN0YXRpc3RpY3Mgc3RydWN0dXJlIGVtaXR0ZWQgYnkgdGhlIG5ldGNsaWVudGNsb2NrLAoJICB3aGljaCBjYW4gdGhlbiBiZSBhbmFseXNlZCBhbmQgdHVuZWQgb25jZSB3ZSBnZXQgdGhvc2UgcmVhZGluZ3MgZm9yCgkgIHBvdGVudGlhbCBlZGdlLWNhc2VzLgoJICBJdCBzaG91bGQgYmUgcG9zc2libGUgdG8gZmluZCBzb21lIGlucHV0cyB3aXRoICJiYWQiIGRhdGEgYW5kIGNvbnZlcnQKCSAgdGhpcyBpbnRvIGEgdW5pdCB0ZXN0IGZvciBmdXR1cmUgdHdlYWtzIHRvIHJ1biBhZ2FpbnN0LgoKMjAxNi0wMy0wMyAyMTo0NDozNSArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IEFsd2F5cyBkdW1wIGNsb2NrIG9ic2VydmF0aW9ucyBpbiBsb2dzCgkgIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgdG8gZXhhbWluZSB3aGF0IHZhbHVlcyB3ZSBnZXQgaW4gbG9ncywgYW5kCgkgIHBvdGVudGlhbGx5IHR1bmUgb3VyIGZpbHRlcmluZy9leHRyYXBvbGF0aW9uIGluIHZhcmlvdXMgc2NlbmFyaW9zLgoKMjAxNi0wMy0wNCAxNTo1MDoyNiArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5jOgoJICBiYWQ6IHVzZSBuZXcgZ3N0X2VsZW1lbnRfY2xhc3NfYWRkX3N0YXRpY19wYWRfdGVtcGxhdGUoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzMDgxCgoyMDE2LTAzLTE2IDE1OjEzOjM5ICswMTAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZhbHZlLmM6CgkgIHZhbHZlOiBkb24ndCBzZW5kIHN0aWNreSBldmVudHMgYXMgYSBkaXJlY3QgcmVzcG9uc2UgdG8gdXBzdHJlYW0gZXZlbnRzCgkgIEFsc28gcmVmYWN0b3IgdGhlIGV4aXN0aW5nIHZhbHZlIHRlc3QgdG8gYWN0dWFsbHkgdGVzdCB0aGUgdmFsdmUsCgkgIGFuZCBub3QganVzdCB0ZXN0IHRoZSBFT1MgbWVjaGFuaXNtIG9mIGEgcGFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzNzUzCgoyMDE2LTAzLTExIDA5OjIzOjA0ICswMTAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHBhcnNlLmg6CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlLWxhdW5jaDogQWRkIGZsYWcgZm9yIHBsYWNpbmcgZWxlbWVudHMgaW4gYSBiaW4gaW5zdGVhZCBvZiBhIHBpcGVsaW5lCgkgIEJ5IGRlZmF1bHQsIGdzdF9wYXJzZV9sYXVuY2hfZnVsbCgpIGNyZWF0ZXMgYSBHc3RQaXBlbGluZSBpZiB0aGVyZSdzIG1vcmUKCSAgdGhhbiBvbmUgdG9wbGV2ZWwgZWxlbWVudC4gQWRkIGEgZmxhZyB0byBsZXQgaXQgdXNlIGEgR3N0QmluIGluc3RlYWQuCgkgIEFsc28gZml4IHRoZSBwYXJzZXIgdG8gbGV0IGl0IHVzZSB0aGlzIGZsYWcgZm9yIEdTVF9UWVBFX0VMRU1FTlQgcHJvcGVydHkKCSAgdmFsdWVzLCB0byBhdm9pZCBoYXZpbmcgR3N0UGlwZWxpbmVzIGluc2lkZSBvdGhlciBHc3RQaXBlbGluZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM0NTcKCjIwMTYtMDMtMDggMTk6MDg6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmg6CgkgIGNhcHNmaWx0ZXI6IG9wdGltaXNhdGlvbjogYXZvaWQgdW5uZWNlc3NhcnkgZ3N0X3BhZF9oYXNfY3VycmVudF9jYXBzKCkgY2hlY2tzCgkgIE5vIG5lZWQgdG8gZG8gdGhpcyBmb3IgZXZlcnkgaW5wdXQgYnVmZmVyLCBzaW5jZSBpdCBpbnZvbHZlcwoJICBsb2NraW5nIGFuZCBpdGVyYXRpbmcgb2YgdGhlIHN0aWNreSBldmVudHMgYXJyYXkgYW5kIHN1Y2guCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjMzMzcKCjIwMTYtMDMtMDMgMTQ6MTU6MDAgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJvdGVjdGlvbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlcGFyc2UuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NlZWsuYzoKCSAgZ3N0cmVhbWVyOiB1c2UgbmV3IGdzdF9lbGVtZW50X2NsYXNzX2FkZF9zdGF0aWNfcGFkX3RlbXBsYXRlKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzAyMAoKMjAxNi0wMy0wMiAxNzo0NzozMyArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBxdWV1ZTogVXNlIGZ1bGwgcnVubmluZyB0aW1lIGZvciBsZXZlbCBjYWxjdWxhdGlvbgoJICBFbnN1cmVzIHdlIGhhdmUgcHJvcGVyIHRpbWUgbGV2ZWwgZXN0aW1hdGlvbiBmb3IgdGhlIGNhc2VzIHdoZXJlCgkgIHRoZSBpbmNvbWluZyBidWZmZXJzIGhhdmUgUFRTL0RUUyBvdXRzaWRlIG9mIHRoZSBzZWdtZW50IHN0YXJ0L3N0b3AKCSAgdmFsdWVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyOTk1CgoyMDE2LTAxLTI3IDExOjQ2OjA2ICswMTAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBGaXggcmFjZSBiZXR3ZWVuIGdzdF9lbGVtZW50X3JlbW92ZV9wYWQgYW5kIHN0YXRlIGNoYW5nZQoJICBXaGVuIGdvaW5nIGZyb20gUkVBRFkgdG8gTlVMTCBhbGwgZWxlbWVudCBwYWRzIGFyZSBkZWFjdGl2YXRlZC4gSWYKCSAgc2ltdWx0YW5lb3VzbHkgdGhlIHBhZCBpcyBiZWluZyByZW1vdmVkIGZyb20gdGhlIGVsZW1lbnQgd2l0aAoJICBnc3RfZWxlbWVudF9yZW1vdmVfcGFkKCkgYW5kIHRoZSBwYWQgaXMgdW5wYXJlbnRlZCwgdGhlcmUgaXMgYSByYWNlCgkgIHdoZXJlIHRoZSBkZWFjdGl2YXRpb24gd2lsbCBhc3NlcnQgKGdfY3JpdGljYWwpIGlmIHRoZSBwYXJlbnQgaXMgbG9zdCBhdAoJICB0aGUgd3JvbmcgdGltZS4KCSAgVGhlIHByb3Bvc2VkIGZpeCB3aWxsIGNoZWNrIHBhcmVudCBvbmx5IG9uY2UgYW5kIHJldGFpbiBpdCB0byBhdm9pZCB0aGUKCSAgcmFjZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTkxMgoKMjAxNi0wMy0wMiAyMToxMTo1MSAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogQXNzdW1lIFBUUyBpcyBlcXVhbCBEVFMgaWYgUFRTIGlzIG1pc3NpbmcKCSAgVGhpcyBpcyB0aGUgYmVzdCBndWVzcyB3ZSBjYW4gbWFrZSBpZiBzdWNoIGEgYnVmZmVyIHJlYWNoZWQgdGhlIGNvbGxlY3QKCSAgcGFkLiBUaGlzIGlzIHVuY29tbW9uLCB3ZSBkbyBleHBlY3QgcGFyc2VycyB0byBoYXZlIHRyaWVkIGFuZCBmaXhlZCB0aGF0CgkgIGlmIHBvc3NpYmxlIChvciBuZWVkZWQpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyMjA3CgoyMDE2LTAzLTI0IDEzOjMyOjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50CgoyMDE2LTAzLTI0IDExOjQ5OjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFJlbW92ZSByZWR1bmRhbnQgYXNzaWdubWVudAoJICBDSUQgMTM1NzE1OAoKPT09IHJlbGVhc2UgMS44LjAgPT09CgoyMDE2LTAzLTI0IDExOjQ5OjA4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuOC4wCgoyMDE2LTAzLTI0IDExOjM1OjI2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNi0wMy0xMyAxMTowNToyOSAtMDQwMCAgQW50aG9ueSBHLiBCYXNpbGUgPGJsdWVuZXNzQGdlbnRvby5vcmc+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQuaDoKCSAgbGliY29tcGF0Lmg6IHN0cnNpZ25hbCgpIHNob3VsZCBiZSBub3QgYmUgZGVjbGVhcmVkIGNvbnN0CgkgIFBPU0lYIHN0YW5kYXJkcyByZXF1aXJlcyBzdHJzaWduYWwoKSB0byByZXR1cm4gYSBwb2ludGVyIHRvIGEgY2hhciwKCSAgbm90IGEgY29uc3QgcG9pbnRlciB0byBhIGNoYXIuIFsxXSAgT24gdUNsaWJjLCBhbmQgcG9zc2libHkgb3RoZXIKCSAgbGliYydzLCB0aGF0IGRvIG5vdCBIQVZFX0RFQ0xfU1RSU0lHTkFMLCBsaWJjb21wYXQuaCBkZWNsYXJlcwoJICBjb25zdCBjaGFyICpzdHJzaWduYWwgKGludCBzaWcpIHdoaWNoIGNhdXNlcyBhIHR5cGUgZXJyb3IuCgkgIFsxXSBtYW4gMyBzdHJzaWduYWwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzU2NwoKMjAxNi0wMy0yMiAxOTowNDo1OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgcHJlc2V0OiBVc2UgR1NUX1BSRVNFVF9QQVRIIGFzIGFuIGV4dGVuc2lvbiBvZiB0aGUgc3lzdGVtIHBhdGgsIG5vdCBhIHJlcGxhY2VtZW50IG9mIHRoZSB1c2VyIHBhdGgKCSAgRmlyc3QgbG9hZCBhbGwgc3lzdGVtIHByZXNldHMsIHRoZW4gYWxsIGZyb20gdGhlIGVudmlyb25tZW50IHZhcmlhYmxlLCB0aGVuCgkgIGZyb20gdGhlIGFwcCBkaXJlY3RvcnksIHRoZW4gZnJvbSB0aGUgdXNlciBkaXJlY3RvcnkuIEFueSBvbmUgaW4gdGhlIGNoYWluCgkgIHdpdGggdGhlIGhpZ2hlc3QgdmVyc2lvbiBjb21wbGV0ZWx5IHJlcGxhY2VzIGFsbCBwcmV2aW91cyBvbmVzLCBsYXRlciBvbmVzCgkgIHdpdGggbG93ZXIgdmVyc2lvbnMgYXJlIG1lcmdlZCBpbiB3aXRob3V0IHJlcGxhY2luZyBleGlzdGluZyBwcmVzZXRzLgoJICBUaGlzIGlzIGJhc2ljYWxseSB0aGUgc2FtZSBiZWhhdmlvdXIgYXMgYmVmb3JlLCBqdXN0IHRoYXQgR1NUX1BSRVNFVF9QQVRIIGlzCgkgIGluc2VydGVkIGFzIGFub3RoZXIgc291cmNlIG9mIGRpcmVjdG9yaWVzIGJldHdlZW4gdGhlIHN5c3RlbSBhbmQgYXBwIHByZXNldHMuCgkgIEl0IHdhcyBhZGRlZCBpbiBjYTA4YWYxZjE3ZDJjZTM2YjgzOTk4YTBiYTNhN2I4YmNhZmQ3ODcyLCBidXQgd2FzCgkgIGFjY2lkZW50aWFsbHkgb3ZlcnJpZGluZyB0aGUgdXNlciBwcmVzZXQgcGF0aCB0aGVyZS4gV2hpY2ggY2F1c2VkIGluY29uc2lzdGVudAoJICBiZWhhdmlvdXIgYXMgbmV3IHByZXNldHMgd2VyZSBzdGlsbCBzdG9yZWQgaW4gdGhlIHN5c3RlbSBwYXRoLCBqdXN0IG5vdCBsb2FkZWQKCSAgZnJvbSB0aGVyZS4gTWVhbmluZyB5b3UgY291bGQgc3RvcmUgYSBuZXcgcHJlc2V0IChpbiB0aGUgdXNlciBwYXRoKSwganVzdCBmb3IKCSAgR3N0UHJlc2V0IHRvIG5vdCBmaW5kIGl0IGFueW1vcmUgbGF0ZXIgKGJlY2F1c2UgaXQgb25seSBsb29rZWQgaW4gdGhlCgkgIEdTVF9QUkVTRVRfUEFUSCBpbnN0ZWFkIG9mIHRoZSB1c2VyIHBhdGgpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0MDM0CgoyMDE2LTAzLTE5IDEyOjU1OjA5ICswMTAwICBBdXLDqWxpZW4gWmFuZWxsaSA8YXVyZWxpZW4uemFuZWxsaUBkYXJrb3NwaGVyZS5mcj4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogYWRkICd0cmFuc2ZlciBmdWxsJyBhbm5vdGF0aW9uIHRvIGdzdF9wYWRfcGVlcl9xdWVyeV9jYXBzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM5MTIKCjIwMTYtMDMtMTkgMTI6Mzk6MTggKzAxMDAgIEF1csOpbGllbiBaYW5lbGxpIDxhdXJlbGllbi56YW5lbGxpQGRhcmtvc3BoZXJlLmZyPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFkZCAndHJhbnNmZXIgZnVsbCcgYW5kICdudWxsYWJsZScgYW5ub3RhdGlvbnMgdG8gZ3N0X3BhZF9nZXRfY3VycmVudF9jYXBzCgkgIGFuZCBhbHNvIGNoYW5nZSB0aGUgZGVzY3JpcHRpb24gYWNjb3JkaW5nbHkgc2luY2UgZnVuY3Rpb24gcmV0dXJucyBhbgoJICBpbmNyZW1lbnRlZCBjYXBzIG9iamVjdCBvciBOVUxMIGlmIHRoZXJlIGlzIG5vIGNhcHMgc2V0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzOTEyCgoyMDE2LTAzLTE4IDE2OjAyOjQzIC0wNDAwICBCZW4gSW9mZWwgPGlvZmVsYmVuQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogZml4IGdpciBhbm5vdGF0aW9uIGZvciBnc3RfZWxlbWVudF9xdWVyeV9jb252ZXJ0KCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mzg5NQoKMjAxNi0wMy0xNyAwMTo0Mjo1NSArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIHRlc3RzOiBDaGVjayBtdWx0aXF1ZXVlIG5vdC1saW5rZWQgRU9TIGhhbmRsaW5nCgkgIEFkZCBhIHRlc3Qgd2hpY2ggY2hlY2tzIHRoYXQgbm90LWxpbmtlZCBwYWRzIGNvbnRpbnVlCgkgIHRvIG91dHB1dCBkYXRhIGFmdGVyIGxpbmtlZCBwYWRzIGhhdmUgZ29uZSBFT1MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mzc3MAoKMjAxNi0wMy0xOCAwMzowODozOSArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRml4IG5vdC1saW5rZWQgcGFkIGhhbmRsaW5nIGF0IEVPUwoJICBFbnN1cmUgdGhhdCBub3QtbGlua2VkIHBhZHMgd2lsbCBkcmFpbiBvdXQgYXQgRU9TIGJ5CgkgIGNvcnJlY3RseSBkZXRlY3RpbmcgdGhlIEVPUyBjb25kaXRpb24gYmFzZWQgb24gdGhlIEVPUwoJICBwYWQgZmxhZyAod2hpY2ggaW5kaWNhdGVzIHdlIGFjdHVhbGx5IHB1c2hlZCBhbiBFT1MpLAoJICBhbmQgbWFrZSBzdXJlIHRoYXQgbm90LWxpbmtlZCBwYWRzIGFyZSB3b2tlbiB3aGVuIGRvaW5nCgkgIEVPUyBwcm9jZXNzaW5nIG9uIGxpbmtlZCBwYWRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzNzcwCgoyMDE2LTAzLTE1IDE2OjM3OjMzICswMTAwICBSb21haW4gUGljYXJkIDxyb21haW4ucGljYXJkQG9ha2JpdHMuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IEFsbG93IGNhcHMgcXVlcnkgaW4gImhhdmUtdHlwZSIgc2lnbmFsIGhhbmRsZXJzCgkgIElmIGFuIGFwcGxpY2F0aW9uIGNhbGxzIGdzdF9wYWRfcXVlcnlfY2FwcyBmcm9tIGl0cyAiaGF2ZS10eXBlIiBzaWduYWwgaGFuZGxlciwKCSAgdGhlbiB0aGUgcXVlcnkgZmFpbHMgYmVjYXVzZSB0eXBlZmluZC0+Y2FwcyBoYXMgbm90IGJlZW4gc2V0IHlldC4KCSAgVGhpcyBwYXRjaCBzZXRzIHR5cGVmaW5kLT5jYXBzIGluIHRoZSBvYmplY3QgbWV0aG9kIGhhbmRsZXIsIGJlZm9yZSB0aGUgc2lnbmFsCgkgIGhhbmRsZXJzIGFyZSBjYWxsZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM0OTEKCj09PSByZWxlYXNlIDEuNy45MSA9PT0KCjIwMTYtMDMtMTUgMTE6NTY6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS43LjkxCgoyMDE2LTAzLTE1IDExOjQ0OjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3RyLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNi0wMy0xNSAxMTozOTo0MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2NzLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE2LTAzLTExIDE0OjE3OjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFN0b3JlIGNhcHMgb24gdGhlIHBhZCBiZWZvcmUgZW1pdHRpbmcgaGF2ZS10eXBlIGJ1dCBzZW5kIGl0IGRvd25zdHJlYW0gb25seSBpbiB0aGUgZGVmYXVsdCBzaWduYWwgaGFuZGxlcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzNDkxCgoyMDE2LTAzLTEzIDEwOjMzOjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBSZWNoZWNrIGFmdGVyIHByZV9wdXNoX2ZyYW1lKCkgaWYgdGhlcmUgYXJlIHRhZ3MgcGVuZGluZwoJICBNYW55IHBhcnNlcnMgYXJlIHN0b3JpbmcgdGFncyBvbmx5IGluIHByZV9wdXNoX2ZyYW1lKCksIGlmIHdlIHdvdWxkbid0IGNoZWNrCgkgIGFmdGVyd2FyZHMgd2Ugd291bGQgcHVzaCBidWZmZXJzIGJlZm9yZSB0aG9zZSB0YWdzIGFuZCBhIGxvdCBvZiBjb2RlIGFzc3VtZXMgdGhhdAoJICB0YWdzIGFyZSBhdmFpbGFibGUgYmVmb3JlIHByZXJvbGwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM1NTMKCjIwMTYtMDMtMTQgMTE6MTU6MDcgKzAxMDAgIENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0LmM6CgkgIGNvbmNhdDogRml4IGNvbW1lbnQgdHlwbwoKMjAxNi0wMy0xMiAxMjo1NjoyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIFJldmVydCAidHlwZWZpbmQ6IFN0b3JlIGNhcHMgb24gdGhlIHBhZCBiZWZvcmUgZW1pdHRpbmcgaGF2ZS10eXBlIGJ1dCBzZW5kIGl0IGRvd25zdHJlYW0gb25seSBpbiB0aGUgZGVmYXVsdCBzaWduYWwgaGFuZGxlciIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAwODM1YzNkNjU2OWRkZTBlYzllNTUyNDQzNjM2N2M3Njc4Y2M0YTRhLgoJICBJdCBjYXVzZXMgZGVhZGxvY2tzIGluIGRlY29kZWJpbiwgd2hpY2ggY3VycmVudGx5IHdvdWxkIGRlYWRsb2NrIGlmIHRoZSBjYXBzCgkgIGFyZSBhbHJlYWR5IG9uIHRoZSBwYWQgaW4gaGF2ZS10eXBlIGFuZCBhcmUgZm9yd2FyZGVkIHdoaWxlIGNvcHlpbmcgdGhlIHN0aWNreQoJICBldmVudHMgKHdoaWxlIGhvbGRpbmcgdGhlIGRlY29kZWJpbiBsb2NrKS4uLiBhcyB0aGF0IG1pZ2h0IGNhdXNlIHRoZSBuZXh0CgkgIGVsZW1lbnQgdG8gZXhwb3NlIHBhZHMsIHdoaWNoIHRoZW4gY2FsbHMgYmFjayBpbnRvIGRlY29kZWJpbiBhbmQgdGFrZXMgdGhlCgkgIGRlY29kZWJpbiBsb2NrLgoJICBUaGlzIG5lZWRzIHNvbWUgbW9yZSB0aG91Z2h0cy4KCjIwMTYtMDMtMTEgMTQ6MTc6MTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogU3RvcmUgY2FwcyBvbiB0aGUgcGFkIGJlZm9yZSBlbWl0dGluZyBoYXZlLXR5cGUgYnV0IHNlbmQgaXQgZG93bnN0cmVhbSBvbmx5IGluIHRoZSBkZWZhdWx0IHNpZ25hbCBoYW5kbGVyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM0OTEKCjIwMTYtMDMtMTAgMTA6MzU6NDAgKzAxMDAgIENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSAgZG9jczogRmxlc2ggb3V0IGVsZW1lbnQgYW5kIG9iamVjdCBtYWNybyBhY2Nlc3NvciBkb2NzIGEgYml0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjMyMTMKCjIwMTYtMDMtMDkgMTY6MDY6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IFJlbW92ZSBzb21lIG9ic29sZXRlIGNvZGUgdGhhdCBjYW4gY2F1c2Ugd2FybmluZ3MKCjIwMTYtMDMtMDkgMTM6NDQ6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IERvbid0IHJlc2V0IGNhbGlicmF0aW9uIG9mIGludGVybmFsIGNsb2NrIHdoZW5ldmVyIGEgbmV3IG5ldGNsaWVudCBjbG9jayBpcyBjcmVhdGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjMzMjUKCjIwMTYtMDMtMDQgMTg6MjM6MTggKzAxMDAgIFbDrWN0b3IgTWFudWVsIErDoXF1ZXogTGVhbCA8dmphcXVlekBpZ2FsaWEuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIGdzdGJ1ZmZlcjogZml4IEdzdFBhcmVudEJ1ZmZlck1ldGEgR1R5cGUgbmFtZQoJICBUaGUgYWxpYXMgZGVmaW5lIEdTVF9UWVBFX1BBUkVOVF9CVUZGRVJfTUVUQV9BUElfVFlQRSBpcyB3cm9uZyBhbmQKCSAgYnJlYWtzIHRoZSB1c2FnZSBvZiBnc3RfYnVmZmVyX2dldF9wYXJlbnRfYnVmZmVyX21ldGEoKS4KCSAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgR1R5cGUgYWxpYXMgYW5kIG1ha2UgYW5vdGhlciBhbGlhcyB0byBrZWVwIHRoZSBBUEkKCSAgY29tcGF0aWJpbGl0eSBndWFyZGVkIGJ5IEdTVF9ESVNBQkxFX0RFUFJFQ0FURUQuCgkgIEFsc28gYWRkZWQgYSB1bml0IHRlc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjMxMTIKCjIwMTYtMDMtMDIgMTA6Mzc6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmM6CgkgIHRyYWNlcnJlY29yZDogUmVtb3ZlIHVzZWxlc3MgTlVMTCBjaGVjayBhbmQgYWRkIGFzc2VydGlvbiBmb3IgbWFraW5nIGFzc3VtcHRpb25zIGV4cGxpY2l0CgkgIGdzdF9zdHJ1Y3R1cmVfbmV3X2VtcHR5KCkgaXMgbm90IHJldHVybmluZyBOVUxMIGluIGFueSB2YWxpZCBzY2VuYXJpb3MsCgkgIGNoZWNraW5nIGZvciBOVUxMIGhlcmUgaXMgdXNlbGVzcy4gRXNwZWNpYWxseSBiZWNhdXNlIHdlIHdvdWxkIGRlcmVmZXJlbmNlIGFueQoJICBOVUxMIHJpZ2h0IGFmdGVyIHRoZSBOVUxMIGNoZWNrIGFnYWluLgoJICBDSUQgMTM1MjAzNy4KCSAgV2UgcHJldmlvdXNseSBjaGVjayBpZiB0aGUgc3RyaW5nIGVuZHMgb24gLmNsYXNzLCBhcyBzdWNoIHN0cnJjaHIoKSBzaG91bGQKCSAgcmV0dXJuIHNvbWV0aGluZyBub24tTlVMTC4gQWRkIGFuIGFzc2VydGlvbiBmb3IgdGhhdC4KCSAgQ0lEIDEzNDk2NDIuCgoyMDE2LTAzLTAxIDE5OjUwOjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogbWlub3IgZG9jcyBmaXgKCSAgTWFrZSBndGstZG9jIGhhcHB5LgoKPT09IHJlbGVhc2UgMS43LjkwID09PQoKMjAxNi0wMy0wMSAxODoxNDowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjcuOTAKCjIwMTYtMDMtMDEgMTY6NTI6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNi0wMi0yOSAyMzozMzowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIFJldmVydCAiYnVzOiBjaGFuZ2UgR3N0QnVzU291cmNlIHRvIGhvbGQgYSB3ZWFrIHJlZiB0byBHc3RCdXMiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgODk0YzY3ZTY0MmMwZjg1OGI1YjE4MDk3ZmE3Yzk5NWJmM2NjNTBjMS4KCjIwMTYtMDItMjkgMjM6MzI6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIFJldmVydCAiYnVzOiBNYWtlIHN1cmUgdG8gcmVtb3ZlIHRoZSBHUG9sbEZEIGZyb20gdGhlIEdTb3VyY2VzIHdoZW4gZGVzdHJveWluZyB0aGUgYnVzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDA1NzAwYTcwODJjMTQ1MDU3Y2NjMGJlNzYzMDY3YmNjMjYzMjM5ZWIuCgoyMDE2LTAyLTI5IDE3OjA2OjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDogUmVtb3ZlIEdTVF9TVEFURV9MT0NLX0ZVTEwoKSAvIFVOTE9DS19GVUxMKCkKCSAgVGhlcmUgaXMgbm8gY29ycmVzcG9uZGluZyBBUEkgZm9yIHRoYXQgaW4gR0xpYiBhbmQgbm9ib2R5IGNvdWxkJ3ZlIGV2ZXIgdXNlZAoJICB0aGVzZSBtYWNyb3Mgd2l0aG91dCBjb21waWxlciBlcnJvcnMgYW55d2F5LgoKMjAxNi0wMi0yOSAxMDowMTo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBNYWtlIHN1cmUgdG8gcmVtb3ZlIHRoZSBHUG9sbEZEIGZyb20gdGhlIEdTb3VyY2VzIHdoZW4gZGVzdHJveWluZyB0aGUgYnVzCgkgIE90aGVyd2lzZSB0aGUgR1NvdXJjZSBjYW4gbG9vayBpbnRvIG91ciBhbHJlYWR5IGRlc3Ryb3llZCBidXMgd2hlcmUgdGhlCgkgIEdQb2xsRkQgaXMgc3RvcmVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyODQ5CgoyMDE2LTAyLTI5IDExOjA2OjUwICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIHRlc3RzOiBnaG9zdHBhZDogRml4IG1lbW9yeSBsZWFrcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyODQ1CgoyMDE2LTAyLTI4IDEzOjU5OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogYWRkIGd1YXJkIHRvIGNoZWNrIHdyaXRhYmlsaXR5IHdoZW4gcmVtb3ZpbmcgdGFncyBmcm9tIGEgdGFnbGlzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyNzkzCgoyMDE2LTAyLTI3IDE1OjM2OjI4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3RyZWFtaWRkZW11eC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGVsZW1lbnRzOiB1c2UgbmV3IGdzdF9lbGVtZW50X2NsYXNzX2FkZF9zdGF0aWNfcGFkX3RlbXBsYXRlKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mjc3OAoKMjAxNi0wMi0yNyAxNToyODo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBlbGVtZW50OiBhZGQgZ3N0X2VsZW1lbnRfY2xhc3NfYWRkX3N0YXRpY19wYWRfdGVtcGxhdGUoKQoJICBQcmV0dHkgbXVjaCBldmVyeSBzaW5nbGUgZWxlbWVudCBkb2VzCgkgIGdzdF9lbGVtZW50X2NsYXNzX2FkZF9wYWRfdGVtcGxhdGUgKGVsZW1lbnRfY2xhc3MsCgkgIGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldCAoJnNvbWVfdGVtcGwpKTsKCSAgd2hpY2ggaXMgYm90aCBjb25mdXNpbmcgYW5kIHVubmVjZXNzYXJ5LiBXZSBtaWdodCBqdXN0CgkgIGFzIHdlbGwgYWRkIGEgZnVuY3Rpb24gdG8gZG8gdGhhdCBpbiBvbmUgc3RlcC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mjc3OAoKMjAxNi0wMi0yNyAxNTozMjoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBmaXggaW5kZW50YXRpb24KCjIwMTYtMDItMjYgMTI6NDA6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGI2NGYwM2YgdG8gNmYyZDIwOQoKMjAxNi0wMi0yNSAyMjozNjoxNCArMDAwMCAgSmFtZXMgU3RldmVuc29uIDxqYW1lc0BzdGV2Lm9yZz4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBQcmV2ZW50IGdzdF9idXNfYWRkX3dhdGNoX2Z1bGxfdW5sb2NrZWQgZnJvbSBhIHNlZ2ZhdWx0IGlmIHByaXYtPnBvbGwgPT0gTlVMTAoJICBUaGlzIGhhcHBlbnMgaWYgdGhlIHByb2Nlc3MgcnVucyBvdXQgb2YgZmlsZSBkZXNjcmlwdG9ycy4gQmV0dGVyIHByaW50CgkgIGEgY3JpdGljYWwgd2FybmluZyBpbnN0ZWFkIG9mIGp1c3QgY3Jhc2hpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjI3MDIKCjIwMTYtMDItMjQgMTA6NTY6MjQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGJ1czogY2hhbmdlIEdzdEJ1c1NvdXJjZSB0byBob2xkIGEgd2VhayByZWYgdG8gR3N0QnVzCgkgIFdoZW4gaG9sZGluZyBhIHJlZ3VsYXIgcmVmIGl0IHdpbGwgY2F1c2UgdGhlIEdzdEJ1cyB0byBuZXZlcgoJICByZWFjaCAwIHJlZmVyZW5jZXMgYW5kIGl0IHdvbid0IGJlIGRlc3Ryb3llZCB1bmxlc3MgdGhlIGFwcGxpY2F0aW9uCgkgIGV4cGxpY2l0bHkgY2FsbHMgZ3N0X2J1c19yZW1vdmVfc2lnbmFsX3dhdGNoKCkuCgkgIFN3aXRjaGluZyB0byB3ZWFrcmVmIHdpbGwgYWxsb3cgdGhlIEdzdEJ1cyB0byBiZSBkZXN0cm95ZWQuCgkgIFRoZSBhcHBsaWNhdGlvbiBpcyBzdGlsbCByZXNwb25zaWJsZSBmb3IgZGVzdHJveWluZyB0aGUKCSAgR1NvdXJjZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjU1MgoKMjAxNi0wMi0yNSAxNDoxMTozNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IEFkZCBhICIgIiBhZnRlciBwdHM6IGluIHRoZSBzaWxlbnQ9ZmFsc2Ugb3V0cHV0CgoyMDE0LTA0LTE2IDExOjQyOjE4ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IEZpeCBleGFtcGxlcyB0byBjaGVjayBmb3IgZ3N0X2J1ZmZlcl9tYXAgcmV0dXJuIHZhbHVlcwoJICBPdGhlcndpc2UgcGVvcGxlIHJlYWRpbmcgdGhlIG1hbnVhbCB3aWxsIGV4cGVjdCBpdCB0byBhbHdheXMKCSAgc3VjY2VlZCA6KQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4MzI2CgoyMDE0LTA0LTE2IDExOjQwOjQ2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGdzdGNoZWNrOiBDaGVjayByZXR1cm4gdmFsdWUgb2YgZ3N0X2J1ZmZlcl9tYXAKCSAgV2UgY2FuJ3QgY2hlY2sgY29udGVudHMgaWYgd2UgZG9uJ3QgaGF2ZSBhY2Nlc3MgdG8gaXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyODMyNgoKMjAxNC0wNC0xNiAxMTozOToxNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHBsdWdpbnM6IENoZWNrIHJldHVybiB2YWx1ZXMgb2YgZ3N0X2J1ZmZlcl9tYXAoKQoJICBUaGV5IGNhbiBmYWlsIGZvciB2YXJpb3VzIHJlYXNvbnMuCgkgIEZvciBub24tZmF0YWwgY2FzZXMgKHN1Y2ggYXMgdGhlIGR1bXAgZmVhdHVyZSBvZiBpZGVudGl5IGFuZCBmYWtlc2luayksCgkgIHdlIGp1c3Qgc2lsZW50bHkgc2tpcCBpdC4KCSAgRm9yIG90aGVyIGNhc2VzIHBvc3QgYW4gZXJyb3IgbWVzc2FnZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyODMyNgoKMjAxNi0wMi0yMyAxNzoyMzo0MyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBDaGVjayByZXR1cm4gdmFsdWUgb2YgZ3N0X21lbW9yeV9tYXAoKQoJICBPbmx5IGRvIG1lbW9yeSBvcGVyYXRpb25zIGlmIHRoZSBtZW1vcnkgd2FzIHN1Y2Nlc2Z1bGx5IG1hcCdlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4MzI2CgoyMDE2LTAyLTIzIDE4OjE3OjQyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmM6CgkgIGRhdGF1cmlzcmM6IERvbid0IGFzc3VtZSB0aGF0IGdldF9jdXJyZW50X2NhcHMoKSByZXR1cm5zIG5vbi1OVUxMIGNhcHMgYWZ0ZXIgaGFzX2N1cnJlbnRfY2FwcygpCgkgIFJlbW92ZSBjYWxscyB0byBnc3RfcGFkX2hhc19jdXJyZW50X2NhcHMoKSB3aGljaCB0aGVuIGdvIG9uIHRvIGNhbGwKCSAgZ3N0X3BhZF9nZXRfY3VycmVudF9jYXBzKCkgYXMgdGhlIGNhcHMgY2FuIGdvIHRvIE5VTEwgaW4gYmV0d2Vlbi4gSW5zdGVhZCBqdXN0CgkgIHVzZSBnc3RfcGFkX2dldF9jdXJyZW50X2NhcHMoKSBhbmQgY2hlY2sgZm9yIE5VTEwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTk1MzkKCjIwMTUtMTItMTAgMTU6MzI6MjcgKzAxMDAgIEFkYW0gTWlhcnR1cyA8YWRhbS5taWFydHVzQHN0cmVhbXVubGltaXRlZC5jb20+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBhZGQgR1NUX1RBR19DT05EVUNUT1IKCSAgVGhpcyBpcyB1c2VmdWwgZm9yIG1ldGFkYXRhIHdoaWNoIGV4cGxpY2l0ZWx5IGRpc3Rpbmd1aXNoZXMKCSAgYmV0d2VlbiBhcnRpc3QvY29tcG9zZXIgYW5kIGNvbmR1Y3Rvci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjQ1MAoKMjAxNi0wMi0yMiAxNDowOTo1NiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBhZGQgc29tZSBtb3JlIGRvY3VtZW50YXRpb24gb24gc3RyZWFtLWlkCgkgIC4uLiB3aGVyZSBpdCBtaWdodCBlbmQgdXAgYmVpbmcgdXNlZCBmb3IuCgoyMDE2LTAxLTIyIDExOjI1OjMwICswMTAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSAgdHJhY2VyOiBJbml0aWFsaXplIEdzdFRyYWNlciBfcHJpdl90cmFjZXJzIGFuZCBxdWFya3MgdW5jb25kaXRpb25uYWxseQoJICBTb21lIHBlb3BsZSBtaWdodCB1c2UgdHJhY2VyIGhvb2tzIGV2ZW4gaWYgR1NUX1RSQUNFUl9QTFVHSU5TIGlzIG5vdAoJICBzZXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA5NzkKCjIwMTYtMDItMjAgMTA6MTg6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6CgkgIGRvY3M6IG1hbnVhbDogcmVtb3ZlIGRlYWQgbGluayBmcm9tIGludGVncmF0aW9uIHBhZ2UKCjIwMTYtMDItMjAgMTA6MTM6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgZG9jczogbWFudWFsOiBmaXggZm9ybWF0dGluZwoJICBhZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoxMjEwOiBlbGVtZW50IGxpc3RpdGVtOiB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQKCSAgbGlzdGl0ZW0gY29udGVudCBkb2VzIG5vdCBmb2xsb3cgdGhlIERURCwgZXhwZWN0aW5nICguLi4pLAoJICBnb3QgKHBhcmEgQ0RBVEEgcGFyYSApCgkgIDwvbGlzdGl0ZW0+CgoyMDE2LTAyLTIwIDAwOjU1OjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogc2NyaXB0cy9jcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAuc2g6CgkgIHNjcmlwdHM6IGNoZWNrIGZvciBnaXQgaW4gY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwLnNoIGFzIHdlbGwKCjIwMTYtMDItMTkgMjA6MjY6MjYgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrLmNoYXVoYW5AZ21haWwuY29tPgoKCSogZ3N0L2dsaWItY29tcGF0LmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBXaGVuZXZlciB3ZSBpbmNsdWRlIHdpbmRvd3MuaCwgYWxzbyBkZWZpbmUgV0lOMzJfTEVBTl9BTkRfTUVBTgoJICBUaGlzIHJlZHVjZXMgdGhlIG51bWJlciBvZiBzeW1ib2xzIGFuZCBjb2RlIHB1bGxlZCBpbiBkcmFzdGljYWxseQoKMjAxNi0wMi0xMyAwNjo1MzoyNCArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L3ByaW50Zi9nc3QtcHJpbnRmLmg6CgkgIHByaW50ZjogT24gTVNWQywgYWxzbyBkZWZpbmUgSEFWRV9TVERJTlRfSF9XSVRIX1VJTlRNQVgKCSAgTVNWQyBwcm92aWRlcyBzdGRpbnQuaCBidXQgbm90IGludHR5cGVzLmgsIGFuZCB3ZSBuZWVkIHRvIGluY2x1ZGUgc3RkaW50LmggdG8KCSAgZ2V0IGludG1heF90CgoyMDE2LTAyLTEzIDA2OjQyOjA2ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwY2xvY2s6IE9ubHkgaW5jbHVkZSB1bmlzdGQuaCBpZiBmb3VuZAoJICB1bmlzdGQuaCBpcyBub3QgcHJvdmlkZWQgYnkgdGhlICBNaWNyb3NvZnQgVmlzdWFsIEMrKyBjb21waWxlci4gSXQgaW5zdGVhZAoJICBwcm92aWRlcyB0aGUgbmVjZXNzYXJ5IGRlZmluZXMgdGhyb3VnaCBpby5oCgoyMDE2LTAyLTEzIDA2OjE5OjUyICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogT25seSBjaGVjayBmb3IgU19JRkJMSyBpZiBpdCBpcyBkZWZpbmVkCgkgIFdpbmRvd3MgZG9lcyBub3QgZGVmaW5lIFNfSUZCTEsgc2luY2UgaXQgZG9lc24ndCBoYXZlIGJsb2NrIGRldmljZXMKCjIwMTYtMDItMTkgMjA6MTc6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9NQU5JRkVTVDoKCSogd2luMzIvUkVBRE1FLnR4dDoKCSogd2luMzIvY29tbW9uL2RpcmVudC5jOgoJKiB3aW4zMi9jb21tb24vZGlyZW50Lmg6CgkqIHdpbjMyL2NvbW1vbi9ndGNoYXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGRhdGFwcm90b2NvbC5kZWY6CgkqIHdpbjMyL3ZzMTAvQ29tbW9uLnByb3BzOgoJKiB3aW4zMi92czEwL0xpYnJhcnkucHJvcHM6CgkqIHdpbjMyL3ZzMTAvUGx1Z2luLnByb3BzOgoJKiB3aW4zMi92czEwL1JlYWRNZS50eHQ6CgkqIHdpbjMyL3ZzMTAvVG9vbC5wcm9wczoKCSogd2luMzIvdnMxMC9iYXNlL2Jhc2UudmN4cHJvajoKCSogd2luMzIvdnMxMC9iYXNlL2Jhc2UudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL2NvbnRyb2xsZXIvY29udHJvbGxlci52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2NvbnRyb2xsZXIvY29udHJvbGxlci52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvZ2VuZXJhdGVkL2dlbmVyYXRlZC52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2dlbmVyYXRlZC9nZW5lcmF0ZWQudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL2dzdC1pbnNwZWN0L2dzdC1pbnNwZWN0LnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvZ3N0LWluc3BlY3QvZ3N0LWluc3BlY3QudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL2dzdC1sYXVuY2gvZ3N0LWxhdW5jaC52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2dzdC1sYXVuY2gvZ3N0LWxhdW5jaC52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvZ3N0LXR5cGVmaW5kL2dzdC10eXBlZmluZC52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2dzdC10eXBlZmluZC9nc3QtdHlwZWZpbmQudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL2dzdGNvcmVlbGVtZW50cy9nc3Rjb3JlZWxlbWVudHMudmN4cHJvajoKCSogd2luMzIvdnMxMC9nc3Rjb3JlZWxlbWVudHMvZ3N0Y29yZWVsZW1lbnRzLnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnMxMC9nc3RyZWFtZXIuc2xuOgoJKiB3aW4zMi92czEwL2dzdHJlYW1lci9nc3RyZWFtZXIudmN4cHJvajoKCSogd2luMzIvdnMxMC9nc3RyZWFtZXIvZ3N0cmVhbWVyLnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnMxMC9uZXQvbmV0LnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvbmV0L25ldC52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzNi9ncmFtbWFyLmRzcDoKCSogd2luMzIvdnM2L2dzdF9pbnNwZWN0LmRzcDoKCSogd2luMzIvdnM2L2dzdF9sYXVuY2guZHNwOgoJKiB3aW4zMi92czYvZ3N0cmVhbWVyLmRzdzoKCSogd2luMzIvdnM2L2xpYmdzdGJhc2UuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0Y29udHJvbGxlci5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3Rjb3JlZWxlbWVudHMuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0bmV0LmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdHJlYW1lci5kc3A6CgkqIHdpbjMyL3ZzNy9ncmFtbWFyLnZjcHJvajoKCSogd2luMzIvdnM3L2dzdC1pbnNwZWN0LnZjcHJvajoKCSogd2luMzIvdnM3L2dzdC1sYXVuY2gudmNwcm9qOgoJKiB3aW4zMi92czcvZ3N0cmVhbWVyLnNsbjoKCSogd2luMzIvdnM3L2xpYmdzdGJhc2UudmNwcm9qOgoJKiB3aW4zMi92czcvbGliZ3N0Y29udHJvbGxlci52Y3Byb2o6CgkqIHdpbjMyL3ZzNy9saWJnc3Rjb3JlZWxlbWVudHMudmNwcm9qOgoJKiB3aW4zMi92czcvbGliZ3N0cmVhbWVyLnZjcHJvajoKCSogd2luMzIvdnM4L2dyYW1tYXIudmNwcm9qOgoJKiB3aW4zMi92czgvZ3N0LWluc3BlY3QudmNwcm9qOgoJKiB3aW4zMi92czgvZ3N0LWxhdW5jaC52Y3Byb2o6CgkqIHdpbjMyL3ZzOC9nc3RyZWFtZXIuc2xuOgoJKiB3aW4zMi92czgvbGliZ3N0YmFzZS52Y3Byb2o6CgkqIHdpbjMyL3ZzOC9saWJnc3Rjb250cm9sbGVyLnZjcHJvajoKCSogd2luMzIvdnM4L2xpYmdzdGNvcmVlbGVtZW50cy52Y3Byb2o6CgkqIHdpbjMyL3ZzOC9saWJnc3RyZWFtZXIudmNwcm9qOgoJICB3aW4zMjogdXBkYXRlIFJFQURNRSBhbmQgcmVtb3ZlIG91dGRhdGVkIGJ1aWxkIGNydWZ0CgkgIFRoaXMgaGFzbid0IGJlZW4gdG91Y2hlZCBmb3IgZ2VuZXJhdGlvbnMsIGRvZXNuJ3Qgd29yaywKCSAgYW5kIGlzIGp1c3QgY2F1c2luZyBjb25mdXNpb24uIFdlIGFsc28gZG9uJ3Qgd2FudCB0bwoJICBtYWludGFpbiB0aGVzZSBmaWxlcyBtYW51YWxseS4KCjIwMTYtMDItMTkgMDg6NDM6MDAgKzAwMDAgIEdlb3JnZSBZdW5hZXYgPGd5dW5hZXZAZ21haWwuY29tPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogRXhwbGFpbiB3aGF0IGhhcHBlbnMgaWYgdXBzdHJlYW0gZWxlbWVudHMgYXJlIHJlbW92ZWQgZnJvbSB0aGUgcGlwZWxpbmUgd2l0aG91dCBkcmFpbmluZyB0aGVtIGZpcnN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjIzMDIKCjIwMTYtMDItMTkgMTQ6NDE6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGhhcm5lc3MuYzoKCSAgdGVzdHM6IGZpeCBpbmRlbnRhdGlvbgoKMjAxNi0wMi0xOSAxMjozODoyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS43LjIgPT09CgoyMDE2LTAyLTE5IDExOjQ3OjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS43LjIKCjIwMTYtMDItMTkgMTA6Mjk6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNi0wMi0xOCAxNDoyMDoxNyArMDAwMCAgSnVsaWVuIElzb3JjZSA8ai5pc29yY2VAc2Ftc3VuZy5jb20+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWJhc2UtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbGxlci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkgIHVuaW5zdGFsbGVkLnBjOiBhZGQgc3VwcG9ydCBmb3Igbm9uIGxpYnRvb2wgYnVpbGQgc3lzdGVtcwoJICBDdXJyZW50bHkgdGhlIC5sYSBwYXRoIGlzIHByb3ZpZGVkIHdoaWNoIHJlcXVpcmVzIHRvIHVzZSBsaWJ0b29sIGFzCgkgIG1lbnRpb25lZCBpbiB0aGUgR1N0cmVhbWVyIG1hbnVhbCBzZWN0aW9uLWhlbGxvd29ybGQtY29tcGlsZXJ1bi5odG1sLgoJICBJdCBpcyBmaW5lIGFzIGxvbmcgYXMgdGhlIGFwcGxpY2F0aW9uIGlzIGJ1aWx0IHVzaW5nIGxpYnRvb2wuCgkgIFNvIGN1cnJlbnRseSBpdCBpcyBub3QgcG9zc2libGUgdG8gY29tcGlsZSBhIEdTdHJlYW1lciBhcHBsaWNhdGlvbgoJICB3aXRoaW4gZ3N0LXVuaW5zdGFsbGVkIHdpdGggQ01ha2Ugb3Igb3RoZXIgYnVpbGQgc3lzdGVtIGRpZmZlcmVudAoJICB0aGFuIGF1dG90b29scy4KCSAgVGhpcyBwYXRjaCBhbGxvd3MgdG8gZG8gdGhlIGZvbGxvd2luZyBpbiBnc3QtdW5pbnN0YWxsZWQgZW52OgoJICBnY2MgdGVzdC5jIC1vIHRlc3QgJChwa2ctY29uZmlnIC0tY2ZsYWdzIC0tbGlicyBnc3RyZWFtZXItMS4wKQoJICBQcmV2aW91c2x5IGl0IHJlcXVpcmVkIHRvIHByZXBlbmQgbGlidG9vbCAtLW1vZGU9bGluawoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIwNzc4CgoyMDE2LTAyLTE4IDExOjQzOjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBSZXZlcnQgInBhZDogUFVMTCBwcm9iZXMgYXJlIGNhbGxlZCB3aXRob3V0IGEgYnVmZmVyIHNvIGRvbid0IHJlcXVpcmUgYW55IG9mIHRoZSBkYXRhIGZsYWdzIHRvIGJlIHNldCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBiODlmYTQ3ODZiM2RmNmNiNzlmNjYyYzAzN2RlZTc0YjNmNzQyOGQ2LgoJICBUaGUgY2hhbmdlcyBicmVhayB2YXJpb3VzIHRlc3RzLgoKMjAxNi0wMi0xOCAxMTo0MzowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgUmV2ZXJ0ICJwYWQ6IEFkZCB0ZXN0IGZvciBibG9ja2luZyBwdWxsIHByb2JlIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDE3ZDMwZTk0NGJlMDQyNWViYjRmYjYwNDZmODJkMWY2MTcwMWZlOGYuCgkgIFRoZSBQVUxMIHByb2JlIGNoYW5nZXMgYnJlYWsgdmFyaW91cyB0ZXN0cy4KCjIwMTYtMDItMTggMTE6MDk6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogUHJvdGVjdCBhZ2FpbnN0IGZhaWxpbmcgdG8gbWFwIGlucHV0IG1lbW9yeSB3aGVuIG1lcmdpbmcgbWVtb3JpZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjIzOQoKMjAxNi0wMS0yOCAxNjoyMjoxNyArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBBZGQgdGVzdCBmb3IgYmxvY2tpbmcgcHVsbCBwcm9iZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxMjExCgoyMDE2LTAyLTE3IDE2OjU3OjI3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFBVTEwgcHJvYmVzIGFyZSBjYWxsZWQgd2l0aG91dCBhIGJ1ZmZlciBzbyBkb24ndCByZXF1aXJlIGFueSBvZiB0aGUgZGF0YSBmbGFncyB0byBiZSBzZXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTIxMQoKMjAxNi0wMi0xNyAxNjo0MTowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIFJldmVydCAiZWxlbWVudDogRG9uJ3QgaG9sZCBzdGF0ZSBsb2NrIGFsbCB0aGUgdGltZSB3aGlsZSBzZW5kaW5nIGFuIGV2ZW50IgoJICBUaGlzIHJldmVydHMgY29tbWl0IGI0Mjc5OTcxMTlhMmI2YWFjYmViNTUwZjcyOTkzNmY4Yjk2M2UyNGIuCgkgIEl0IGJyZWFrcyB0aGluZ3MgdGhhdCB1c2VkIHRvIHdvcmsgYmVmb3JlLCBldmVuIGlmIHRoZSBjaGFuZ2UgYnkgaXRzZWxmIGlzCgkgIGNvcnJlY3QgYW5kIHRoZSBwcmV2aW91cyBjb2RlIGlzIGp1c3Qgd29ya2luZyBhcm91bmQgZGVlcGVyIGJ1Z3MgaW4gdGhlIGFzeW5jCgkgIHN0YXRlIGNoYW5nZSBjb2RlLiBMZXQncyBnbyBiYWNrIHRvIHdoYXQgcHJldmlvdXNseSB3b3JrZWQgYW5kIHRoZW4gZml4IGFzeW5jCgkgIHN0YXRlIGNoYW5nZXMgaW4gZ2VuZXJhbC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDUzMgoKMjAxNi0wMi0xNyAxNToyNjo0OSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBSZXZlcnQgImdob3N0cGFkOiBEbyBub3RoaW5nIGluIF9pbnRlcm5hbF9hY3RpdmF0ZV9wdXNoX2RlZmF1bHQiCgkgIFRoYXQgY29tbWl0IHdvdWxkIGJyZWFrIHNjaGVkdWxpbmcgcmVjb25maWd1cmF0aW9uIHdpdGggZ2hvc3RwYWRzCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYWI1NWFkN2VhYWQ0ZmEyYzBiMTZjNzg5MzUwZTg4MmNmNzBhMjdlZC4KCjIwMTYtMDItMTcgMTU6MjU6MDggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgY2hlY2s6IEFkZCB0ZXN0IGZvciBjaGVja2luZyBzY2hlZHVsaW5nIHJlY29uZmlndXJhdGlvbiB3aXRoIGdob3N0cGFkcwoJICBTaG93Y2FzZXMgdGhlIHJlZ3Jlc3Npb24gaW50cm9kdWNlZCBieSB0aGlzIGNvbW1pdDoKCSAgQ29tbWl0OiBhYjU1YWQ3ZWFhZDRmYTJjMGIxNmM3ODkzNTBlODgyY2Y3MGEyN2VkCgkgIEF1dGhvcjogU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgkgIERhdGU6ICAgV2VkIEphbiAyNyAxMzoyMDoyMyAyMDE2ICswMTAwCgkgIGdob3N0cGFkOiBEbyBub3RoaW5nIGluIF9pbnRlcm5hbF9hY3RpdmF0ZV9wdXNoX2RlZmF1bHQKCjIwMTYtMDItMTcgMTE6MDI6MzQgKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogYWRkIHNvbWUgdGVzdHMgZm9yIGFjdGl2YXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTkxMwoKMjAxNi0wMS0yNyAxMzoyMDoyMyArMDEwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IERvIG5vdGhpbmcgaW4gX2ludGVybmFsX2FjdGl2YXRlX3B1c2hfZGVmYXVsdAoJICBXaGVuIGNhbGxpbmcgZ3N0X3BhZF9hY3RpdmF0ZV9tb2RlKCkgb24gYSBnaG9zdHBhZAoJICBnc3RfZ2hvc3RfcGFkX2FjdGl2YXRlX3B1c2hfZGVmYXVsdCgpIHdpbGwgYmUgY2FsbGVkLiBUaGlzIHdpbGwgY2FsbAoJICBnc3RfcGFkX2FjdGl2YXRlX21vZGUoKSBvbiB0aGUgcHJveHlwYWQgKHdoaWNoIGlzIGludGVybmFsIG9mIHRoZQoJICBnaG9zdHBhZCksIGNhbGxpbmcgZ3N0X2dob3N0X3BhZF9pbnRlcm5hbF9hY3RpdmF0ZV9wdXNoX2RlZmF1bHQoKSwgd2hpY2gKCSAgYWdhaW4gd2lsbCBjYWxsIGdzdF9wYWRfYWN0aXZhdGVfbW9kZSgpIG9uIHRoZSBvcmlnaW5hbCBnaG9zdHBhZC4KCSAgQnkgc2ltcGx5IHJldHVybmluZyBUUlVFIGluCgkgIGdzdF9naG9zdF9wYWRfaW50ZXJuYWxfYWN0aXZhdGVfcHVzaF9kZWZhdWx0KCkgdGhlIHJlZHVuZGFudCBjYWxsIHRvCgkgIGdzdF9wYWRfYWN0aXZhdGVfbW9kZSgpIChmb3IgdGhlIHNhbWUgcGFkKSBpcyBhdm9pZGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTEzCgoyMDE2LTAyLTE2IDE3OjUzOjEwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnljaHVua3M6IHJlbW92ZSB1bnVzZWQgbWFjcm8KCSAgbWFjcm8gd2FzIGFkZGVkIGluIDIwMTEgYW5kIGlzbid0IHVzZWQgYW55bW9yZQoKMjAxNi0wMi0xNiAxOToxMTo1OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJICBSZXZlcnQgInF1ZXVlMjogYWRkIG92ZXJydW4gc2lnbmFsIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDhhZThiMjcyM2QwY2YxNzlhNGYwOWIyZjZjNWY3OTdlMmQ5NzAzNGQuCgkgIEl0J3Mgbm90IHVzZWQgYW55bW9yZSBieSBhbnl0aGluZyBhbmQgd2FzIGNvbnNpZGVyZWQgYSBiYWQgaWRlYSBpbiBnZW5lcmFsLgoKMjAxNC0wNi0wNSAxMzoyNzoyOCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgZG9jczogYW5ub3RhdGUgQyBleGFtcGxlcyBhcyBzdWNoCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzEyOTIKCjIwMTYtMDItMTUgMTE6MTM6NDAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2JlbmNobWFya3MvdHJhY2Vyc2VyaWFsaXplLmM6CgkgIGJlbmNobWFyazogdHJhY2Vyc2VyaWFsaXplOiBhZGQgbWlzc2luZyByZXR1cm4gc3RhdGVtZW50CgkgIHRyYWNlcnNlcmlhbGl6ZS5jOjExNzoxOiBlcnJvcjogY29udHJvbCByZWFjaGVzIGVuZCBvZgoJICBub24tdm9pZCBmdW5jdGlvbiBbLVdlcnJvcj1yZXR1cm4tdHlwZV0KCjIwMTYtMDItMTUgMTA6MDY6MDkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3Rwcm90ZWN0aW9uLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHByb3RlY3Rpb24vaGFybmVzcy9zeXN0ZW1jbG9jazogbW92ZSBkZWNsYXJhdGlvbiBvdXQgb2YgZm9yIGxvb3AgaW5pdGlhbGl6YXRpb24KCSAgQzkwIGNvbXBpbGVycyBjb21wbGFpbiBhYm91dCBpdAoJICBlcnJvcjog4oCYZm9y4oCZIGxvb3AgaW5pdGlhbCBkZWNsYXJhdGlvbnMgYXJlIG9ubHkgYWxsb3dlZCBpbiBDOTkgb3IgQzExIG1vZGUKCSAgQWxzbyBydW4gZ3N0LWluZGVudCBvbiBzeXN0ZW1jbG9jayB0ZXN0cy4KCjIwMTYtMDEtMjcgMTU6MTY6MDMgKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogYWx3YXlzIHNldCBvdXIgdGVzdC1jbG9jayBvbiB0aGUgaGFybmVzc2VkIGVsZW1lbnQKCSAgVGhlIGludGVncmF0aW9uIGlzIGFscmVhZHkgc28gdGlnaHQsIHRoZXJlIGlzIG5vIHJlYXNvbiB0bwoJICBub3QgZnVydGhlciBmb3JtYWxpemUgaXQhCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MTQKCjIwMTYtMDItMTMgMTY6MTA6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IGZpeCBjb21waWxhdGlvbgoJICBXYXMgc3VwcG9zZWQgdG8gYmUgc3F1YXNoZWQgd2l0aCAzMzZjN2JiNgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTEwCgoyMDE2LTAyLTEzIDE2OjEwOjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBmaXggaW5kZW50YXRpb24KCjIwMTYtMDEtMjEgMTM6MzM6MTUgKzAxMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogRml4IE1UIGlzc3VlcyB3aGVuIGZvcndhcmRpbmcgZXZlbnQvcXVlcnkgdG8gc2luayBoYXJuZXNzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MTAKCjIwMTYtMDItMTMgMTA6MDQ6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgbmV3IC1iYWQgbGlicmFyaWVzIGF1ZGlvLCBwbGF5ZXIgYW5kIHdheWxhbmQgdG8gcGF0aHMKCSAgQW5kIHJlbW92ZSBlZ2wgd2hpY2ggbm8gbG9uZ2VyIGV4aXN0cy4KCjIwMTYtMDItMTIgMTE6NTc6NTUgLTA4MDAgIE1hcnRpbiBLZWxseSA8bWFydGluQHN1cnJvdW5kLmlvPgoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkgIHB1c2hzcmM6IGZpeCBtaW5vciB0eXBvcyBpbiBoZWFkZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTk3MAoKMjAxNi0wMS0yMSAxMzoyODoyMyArMDEwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmg6CgkgIGhhcm5lc3M6IEFkZCBldmVudCBzdHJlc3MgdGVzdCBmdW5jdGlvbnMgd2l0aCBjYWxsYmFjawoJICBTaW1pbGFyIHRvIHRoZSBzdHJlc3MgdGVzdCBmdW5jdGlvbnMgZm9yIGJ1ZmZlcnMgdGhhdCBoYXMgYSBjYWxsYmFjayB0bwoJICBjcmVhdGUgdGhlIGJ1ZmZlciB0byBiZSBwdXNoZWQsIGl0J3MgdXNlZnVsIHRvIGhhdmUgZnVuY3Rpb25zIHRoYXQgdXNlIGEKCSAgY2FsbGJhY2sgdG8gY3JlYXRlIHRoZSBldmVudCB0byBiZSBwdXNoZWQuCgkgIEFQSTogZ3N0X2hhcm5lc3Nfc3RyZXNzX3B1c2hfZXZlbnRfd2l0aF9jYl9zdGFydCgpCgkgIEFQSTogZ3N0X2hhcm5lc3Nfc3RyZXNzX3B1c2hfZXZlbnRfd2l0aF9jYl9zdGFydF9mdWxsKCkKCSAgQVBJOiBnc3RfaGFybmVzc19zdHJlc3Nfc2VuZF91cHN0cmVhbV9ldmVudF93aXRoX2NiX3N0YXJ0KCkKCSAgQVBJOiBnc3RfaGFybmVzc19zdHJlc3NfcHVzaF91cHN0cmVhbV9ldmVudF93aXRoX2NiX3N0YXJ0X2Z1bGwoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTMyCgoyMDE2LTAxLTE0IDIxOjU0OjQyICswMTAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0dGVzdGNsb2NrLmM6CgkgIHRlc3RjbG9jazogYWRkIGNyYW5rIG1ldGhvZAoJICBBbmQgdXNlIGl0IGluc2lkZSBHc3RIYXJuZXNzCgkgIEFQSTogZ3N0X3Rlc3RfY2xvY2tfY3JhbmsoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTA2CgoyMDE1LTEyLTA5IDEzOjQzOjM4ICsxMTAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmg6CgkgIGhhcm5lc3M6IGVuYWJsZSBlbXB0eSBoYXJuZXNzIGNyZWF0aW9uIGFuZCByZWZhY3RvciBhcm91bmQgdGhpcwoJICBBbHNvIG1ha2UgdGhlIHRlc3RjbG9jayBhIG1lbWJlciBvZiB0aGUgaGFybmVzcywgYWxsb3dpbmcgc29tZQoJICBtb3JlIGludGVyYWN0aW9ucyB3aXRoIHRoZSBjbG9jayBwcmlvciB0byBhZGRpbmcgZWxlbWVudHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MDUKCjIwMTYtMDItMTIgMTU6MTI6NDMgKzAxMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IGZpeCB1bnVzZWQgcGFyYW1ldGVyIGNvbXBpbGVyIHdhcm5pbmcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTkxOQoKMjAxNS0wOC0wNCAxNzowOTozNSArMDIwMCAgTWlraGFpbCBGbHVka292IDxtaXNoYUBwZXhpcC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IGZpeCB0aGUgcmFjZSBpbiBibG9ja2luZyBwdXNoIG1vZGUKCSAgRGVwZW5kaW5nIG9uIHdoZW4gZ3N0X2hhcm5lc3NfcHVsbCB3YXMgY2FsbGVkIC0gYmVmb3JlIHRoZSBidWZmZXIgcmVhY2hlZAoJICBnc3RfaGFybmVzc19jaGFpbiBvciBhZnRlciB3ZSBjYW4gZ2V0IGRpZmZlcmVudCBiZWhhdmlvcnMgb2YgdGhlIHRlc3QKCSAgd2l0aCBlbmFibGVkIGJsb2NraW5nIHB1c2ggbW9kZS4gVGhlIGZpeCBtYWtlcyB0aGUgYmVoYXZpb3IgYWx3YXlzIHRoZQoJICBzYW1lLiBJbiBwdWxsIGZ1bmN0aW9uIHdlIGdldCB0aGUgYnVmZmVyIGZpcnN0LCB0aHVzIG1ha2luZyBzdXJlCgkgIGdzdF9oYXJuZXNzX2NoYWluIHdhaXRzIGZvciB0aGUgc2lnbmFsLCBhbmQgZW1pdHRpbmcgdGhlIHNpZ25hbCBhZnRlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTkzMQoKMjAxNi0wMi0wNCAxNToxNjo0MSArMDEwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogQWRkIHRjYXNlX3NraXBfYnJva2VuX2xvb3BfdGVzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTE3CgoyMDE2LTAxLTIxIDEzOjI1OjQwICswMTAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogRml4IGRvY3MgZm9yIHN0cmVzcyB0ZXN0IGZ1bmN0aW9ucwoJICBub3RpZnkgaXMgbm90IGNhbGxlZCBwZXIgYnVmZmVyLCBidXQgd2hlbiB0aGUgdGhyZWFkIGlzIGZyZWVkLgoJICBDb21tZW50IGFib3V0IHNlcmlhbGl6ZWQgZXZlbnRzIGFuZCBPT0IgZG9lcyBub3QgbWFrZSBzZW5zZSBmb3IgdXBzdHJlYW0KCSAgZXZlbnRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTA5CgoyMDE1LTEyLTA4IDE0OjE4OjIxICswMTAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogVW5zZXQgc2lua19mb3J3YXJkX3BhZCBiZWZvcmUgdGVhcmluZyBkb3duIHNpbmtfaGFybmVzcwoJICBTZXQgdGhlIHNpbmtfZm9yd2FyZF9wYWQgdG8gTlVMTCBiZWZvcmUgdGVhcmluZyBkb3duIHNpbmtfaGFybmVzcyB0bwoJICBhdm9pZCB0aGF0IHRoZSBoYXJuZXNzIHRyaWVzIHRvIGZvcndhcmQgZXZlbnRzL3F1ZXJpZXMgdG8gaXQgd2hpbGUgaXQncwoJICB0ZWFyaW5nIGRvd24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MDQKCjIwMTUtMDktMjkgMTI6MTI6MjQgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogZml4IHVwIGRvY3MgdG8gcmVmZXJlbmNlIGZ1bmN0aW9ucyBwcm9wZXJseQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTAxCgoyMDE2LTAyLTEwIDE0OjAxOjU0ICswMTAwICBWw61jdG9yIE1hbnVlbCBKw6FxdWV6IExlYWwgPHZqYXF1ZXpAaWdhbGlhLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IHBhc3MgYWNxdWlyZSBwYXJhbXMgdG8gYWxsb2NfYnVmZmVyCgkgIFdoZW4gYWxsb2NhdGluZyBhIG5ldyBidWZmZXIgaW4gdGhlIHBvb2wsIGJvdGggdGhlIGRvX2FsbG9jX2J1ZmZlcigpIGFuZCB0aGUKCSAgdm1ldGhvZCwgYWxsb2NfYnVmZmVyKCksIHJlY2VpdmUgdGhlIHBhcmFtZXRlciBHc3RCdWZmZXJQb29sQWNxdWlyZVBhcmFtcy4KCSAgTm9uZXRoZWxlc3MsIHdoZW4gZGVmYXVsdF9hY3F1aXJlX2J1ZmZlcigpIGNhbGxzIHRoZSBkb19hbGxvY19idWZmZXIoKSBpdCBkb2VzCgkgIG5vdCBwYXNzIHRoZSByZWNlaXZlZCBHc3RCdWZmZXJQb29sQWNxdWlyZVBhcmFtcywgc28gd2hlbiB0aGUgdXNlciBwYXNzIHRob3NlCgkgIHBhcmFtZXRlcnMgdGhleSBhcmUgaWdub3JlZCBieSBhbGxvY19idWZmZXIoKSB2bWV0aG9kLgoJICBUaGlzIG9uZS1saW5lciBwYXRjaCBwYXNzIHRoZSByZWNlaXZlZCBhY3F1aXJlIHBhcmFtcyB0byBkb19hbGxvY19idWZmZXIoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTgyNAoKMjAxNi0wMi0xMCAwOTowOToyOSArMDEwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBGaXggd2FpdC91bnNjaGVkdWxlIHJhY2UKCSAgRml4ZXMgYSByYWNlIHdoZXJlIGFuIGVudHJ5IGlzIHNldCB0byBCVVNZIGluCgkgIGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF9qaXR0ZXIoKSBhbmQgaXMgVU5TQ0hFRFVMRUQgYmVmb3JlCgkgIGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF9qaXR0ZXJfdW5sb2NrZWQoKSBzdGFydHMgcHJvY2Vzc2luZyBpdC4gVGhlCgkgIHdha2V1cCBhZGRlZCBieSBnc3Rfc3lzdGVtX2Nsb2NrX2lkX3Vuc2NoZWR1bGUoKSBtdXN0IGJlIGNsZWFuZWQgdXAuCgkgIFR3byBzdHJlc3MgdGVzdHMgYXJlIGFkZGVkLiBPbmUgdGVzdCB0aGF0IHRyaWdnZXJzIHRoZSBzcGVjaWZpYyBpc3N1ZQoJICBkZXNjcmliZWQgYWJvdmUuIFRoZSBzZWNvbmQgc3RyZXNzZXMgdGhlIGNvZGUgcGF0aCB3aGVyZSBhIHdhaXQgaXMKCSAgcmVzY2hlZHVsZWQgYmVjYXVzZSB0aGUgcG9sbCByZXR1cm5lZCBlYXJseS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTU4NgoKMjAxNi0wMi0wNSAxNTozNDo0NyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBoYW5kbGUgdW5zY2hlZHVsZSBvZiBsYXRlIGVudHJpZXMKCSAgSWYgdGhlIGNsb2NrZW50cnkgaXMgdG9vIGxhdGUgYW5kIGlzIHVuc2NoZWR1bGVkIGJlZm9yZSBpdCBnZXRzCgkgIGEgY2hhbmdlIHRvIGRldGVjdCBpdHMgbGF0ZW5lc3MgdGhlIHdha2V1cCBjb3VudCBhbmQgdGhlIHBvbGwgYXJlCgkgIHVzZWQgYnV0IG5ldmVyIHByb3Blcmx5IGNsZWFuZWQgdXAuIFRoaXMgbGVhdmVzIGl0IGluIGEgZGlydHkgc3RhdGUKCSAgdGhhdCBpcyBnb2luZyB0byBtZXNzIHdpdGggdGhlIG5leHQgY2xvY2sgZW50cnkgd2FpdGluZyByZXF1ZXN0cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTU4NgoKMjAxNi0wMi0wNSAxOTowODoxOCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBleHRlbmQgdGhlIEFNX1RFU1RTX0VOVklST05NRU5UIGZyb20gY2hlY2subWFrCgkgIFRvIGdldCB0aGUgQ0tfREVGQVVMVF9USU1FT1VUIGRlZmluZWQgZm9yIGFsbCB0ZXN0cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxNDcyCgoyMDE2LTAyLTA1IDE4OjAxOjUyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDg2ZTQ2NjMgdG8gYjY0ZjAzZgoKMjAxNi0wMi0wNCAxMDowNzoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IHN0cmF5IGRpc2NvbnQgZmxhZyBzZXQgb24gb3V0Z29pbmcgYnVmZmVycyBpbiBwdXNoIG1vZGUKCSAgV2UgaGF2ZSBubyBndWFyYW50ZWVzIGFib3V0IHdoYXQgZmxhZ3MgYXJlIHNldCBvbiBidWZmZXJzIHdlIHRha2UKCSAgb3V0IG9mIHRoZSBHc3RBZGFwdGVyLiBJZiB3ZSBwdXNoIG91dCBtdWx0aXBsZSBidWZmZXJzIGZyb20gdGhlCgkgIGZpcnN0IGlucHV0IGJ1ZmZlciAod2hpY2ggd2lsbCBoYXZlIGRpc2NvbnQgc2V0KSwgb25seSB0aGUgZmlyc3QKCSAgYnVmZmVyIHdlIHB1c2ggb3V0IHNob3VsZCBiZSBmbGFnZ2VkIGFzIGRpc2NvbnQsIG5vdCBhbGwgb2YgdGhlCgkgIGJ1ZmZlcnMgcHJvZHVjZWQgZnJvbSB0aGF0IGZpcnN0IGluaXRpYWwgaW5wdXQgYnVmZmVyLgoJICBGaXhlcyBpc3N1ZSB3aGVyZSB0aGUgZmlyc3QgZmV3IG1wMyBmcmFtZXMvc2Vjb25kcyBvZiBkYXRhIGluIHB1c2gKCSAgbW9kZSB3ZXJlIHNraXBwZWQgb3IgZ2FyYmxlZCBpbiBzb21lIGNhc2VzLCBhbmQgdGhlIGRpc2NvbnQgZmxhZ3MKCSAgd291bGQgYWxzbyB0cmlwIHVwIGRlY29kZXJzIHdoaWNoIHdlcmUgZ2V0dGluZyBkcmFpbmVkL2ZsdXNoZWQgZm9yCgkgIGV2ZXJ5IGJ1ZmZlci4gVGhpcyB3YXMgYSByZWdyZXNzaW9uIGludHJvZHVjZWQgaW4gMS42IGFwcGFyZW50bHkuCgoyMDE2LTAyLTAyIDE2OjM1OjM0ICswMTAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGNvbnRyb2xsZXI6IERvIG5vdCB1bnNldCB1bmluaXRpYWxsaXplZCBHVmFsdWUKCSAgSW4gY2FzZSB0aGUgcHJvcGVydHkgd2FzIG5vdCBpbnRlcnBvbGxhYmxlIHdlIG1pZ2h0IG5ldmVyIGluaXRpYWxpemUKCSAgdGhlIEdWYWx1ZSwgd2Ugc2hvdWxkIHRodXMgbmV2ZXIgdW5zZXQgaXQuCgoyMDE2LTAyLTAyIDE2OjM0OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtYWxsb2NhdGlvbi54bWw6CgkgIGRvY3M6IHB3ZzogZml4IG1pc3NpbmcgZW5kIG9mIGxpbmUgc2VtaWNvbG9uIGluIGN1c3RvbSBtZXRhIGV4YW1wbGUKCjIwMTYtMDItMDIgMTA6NTY6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHVyaTogYWRkIGd1YXJkIHRvIG1ha2Ugc3VyZSBnc3RyZWFtZXIgaXMgaW5pdGlhbGl6ZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTQ0OAoKMjAxNi0wMi0wMSAxODo0MTo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCBuZXcgcnRzcCBzZXJ2ZXIgcGx1Z2luIGxvY2F0aW9uIHRvIHBsdWdpbnMgcGF0aAoKMjAxNi0wMS0yNSAxNjozMDowNCArMDkwMCAgSG9vbkhlZSBMZWUgPGhvb25oZWUubGVlQGxnZS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFRyeSB0byBnZW5lcmF0ZSBjYXBzIG9uIHRoZSBzcmNwYWQgYmVmb3JlIGZvcndhcmRpbmcgR0FQIGV2ZW50CgkgIFRvIGNvbmZpZ3VyZSBkb3duc3RyZWFtIGVsZW1lbnRzIGFuZCBjb21wbGV0ZSBpbml0aWFsIHByZS1yb2xsaW5nLAoJICBlbnN1cmUgd2UgaGF2ZSBkZWZhdWx0IG91dHB1dCBjYXBzIGJlZm9yZSBmb3J3YXJkaW5nIEdBUCBldmVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Mzg5OQoKMjAxNi0wMS0yOCAyMDoxODo1NSAtMDcwMCAgQWxleCBIZW5yaWUgPGFsZXhoZW5yaWUyNEBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZGVsZW1lbnQ6IEltcHJvdmUgRW5nbGlzaCBncmFtbWFyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjEyNzMKCjIwMTYtMDEtMjcgMTI6NDU6MjAgKzAwMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNiZ0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1jbG9ja3MueG1sOgoJICBkb2NzOiBmaXggYW4gb3RoZXIgdHlwbyBpbiBjbG9jayBjaGFwdGVyCgkgIFNob2NraW5nbHkgSSBtaXNzZWQgdGhpcyBiaWdnZXIgdHlwbyBpbiB0aGUgcHJldmlvcyBmaXgKCjIwMTYtMDEtMjcgMTI6MjQ6NTcgKzAwMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNiZ0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1jbG9ja3MueG1sOgoJICBkb2NzOiBmaXggdHlwbyBpbiBjbG9jayBjaGFwdGVyCgoyMDE2LTAxLTI1IDEyOjA5OjU0ICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSAgdGVzdHM6Z3N0aW5mbzogRml4IHN0cmluZyBtZW1vcnkgbGVhawoJICBpbmZvX2ZvdXJjYyB0ZXN0IGxlYWtzIHN0cmluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTA3MQoKMjAxNi0wMS0yMyAxNjowMDo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkgIHRlc3RzOiBpbmZvOiBtYWtlIHdvcmsgd2l0aG91dCByZWdpc3RyeQoKMjAxNi0wMS0yMiAxMjo1MDowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdHJhY2luZy50eHQ6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL3RyYWNpbmcuc2g6CgkgIHRyYWNlcjogcmVuYW1lIEdTVF9UUkFDRVJfUExVR0lOUyBlbnYgdmFyIHRvIEdTVF9UUkFDRVJTCgoyMDE2LTAxLTIxIDA4OjEyOjAxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSAgdHJhY2VycmVjb3JkOiBkb24ndCBsZWFrIHRoZSBzcGVjIHN0cnVjdHVyZXMKCSAgQ2hhbmdlIHRoZSBnc3RfdHJhY2VyX3JlY29yZF9uZXcoKSBhcGkgdG8gdGFrZSB0aGUgcGFyYW1ldGVycyB0aGUgbWFrZSB0aGUKCSAgc3BlYyBzdHJ1Y3R1cmUgZGlyZWN0bHkuIFRoaXMgYWxsb3dzIHVzIHRvIG93biB0aGUgdG9wLWxldmVsIHN0cnVjdHVyZSBhbmQKCSAgYWxzbyBjb2xsZWN0IHRoZSBhcmdzIHNvIHRoYXQgd2UgY2FuIHRha2Ugb3duZXJzaGlwIG9mIHRoZSBzdWItc3RydWN0dXJlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDgyMQoKMjAxNi0wMS0yMSAxNTo0NTozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkZXZpY2UuYzoKCSAgZGV2aWNlOiBmaXggY29tcGFyaXNvbiBpbiBfaGFzX2NsYXNzZXN2KCkKCSAgV2UncmUgY29tcGFyaW5nIGEgcG9pbnRlciB0eXBlIHdpdGggJ1wwJyBoZXJlLCB3aGljaAoJICBwcm9iYWJseSBpc24ndCByaWdodCwgYW5kIHRoZSBsb29wIGNvbmRpdGlvbiBtYWRlIHN1cmUKCSAgdGhhdCBjbGFzc2VzWzBdIGlzICE9IE5VTEwgYWxyZWFkeSwgc28gaXQncyBwb2ludGxlc3MuCgkgIFdhcyBwcm9iYWJ5IG1lYW50IHRvIGNoZWNrIGlmIHRoZSBzdHJpbmcgcG9pbnRlZCB0byBpcwoJICBub3QgZW1wdHksIHNvIG1ha2UgaXQgZG8gdGhhdCBpbnN0ZWFkLgoKMjAxNi0wMS0yMCAyMDozMjoyNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSAgdGVzdC90cmFjZXJyZWNvcmQ6IHVucmVmIG9iamVjdHMgYW5kIGZyZWUgc3RyaW5nCgoyMDE2LTAxLTE4IDIyOjQ1OjU4ICswMDAwICBGbG9yaW4gQXBvc3RvbCA8ZmxvcmluLmFwb3N0b2xAb3JlZ2FuLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogdGVzdHM6IGFkZGVkIHN0cmVzcyB0ZXN0IGZvciBhc3luYyBvcmRlcgoJICBLZWVwIGluc2VydGluZyBhbGFybXMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbGlzdC4gRHVlIHRvCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA3NTcKCSAgYWxhcm0gdGhyZWFkIHdpbGwgZ2V0IGNvbmZ1c2VkIGFuZCBub3Qgc2VydmUgdGhlbSBpbiBvcmRlci4KCjIwMTYtMDEtMTggMTY6MjU6MjAgKzAwMDAgIEZsb3JpbiBBcG9zdG9sIDxmbG9yaW4uYXBvc3RvbEBvcmVnYW4ubmV0PgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBmaXhlZCByYWNlIGNvbmRpdGlvbiBpbiBoYW5kbGluZyBhbGFybXMKCSAgV2hlbiBjaG9vc2luZyB0aGUgZmlyc3QgZW50cnkgZnJvbSB0aGUgbGlzdCwgZ3N0X3N5c3RlbV9jbG9ja19hc3luY190aHJlYWQKCSAgbXVzdCBzZXQgdGhlIGVudHJ5IHN0YXRlIHRvIGJ1c3kgYmVmb3JlIHJlbGVhc2luZyB0aGUgY2xvY2sgbG9jay4gT3RoZXJ3aXNlCgkgIGEgbmV3IGVudHJ5IGNvdWxkIGJlIGFkZGVkIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpc3QgYW5kCgkgIGdzdF9zeXN0ZW1fY2xvY2tfYXN5bmNfdGhyZWFkIHdpbGwgYmUgdW5hd2FyZSBhbmQga2VlcCB3YWl0aW5nIG9uIHRoZSBlbnRyeQoJICBpdCBoYXMgYWxyZWFkeSBjaG9zZW4uCgkgIEFsc28gaW1wcm92ZWQgbWVzc2FnZXMgYWJvdXQgZXhwZWN0ZWQgc3RhdGUgYW5kIGJ1bXBlZCB0aGVtIHRvIEVSUk9SIGxldmVsCgkgIHRvIGRldGVjdCB1bmV4cGVjdGVkIHN0YXRlIGNoYW5nZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA3NTcKCjIwMTYtMDEtMjAgMTE6MDc6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHJlbW92ZSBkdXBsaWNhdGUgY2hlY2sKCjIwMTYtMDEtMjAgMDk6NTc6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogdHdvIHNtYWxsIGZpeGVzIGZvciB3aGVuIGFuIGV4aXN0aW5nIHBhZCBpcyByZXF1ZXN0ZWQKCSAgVW5sb2NrIHdoZW4gcmV0dXJuaW5nIE5VTEwgZnJvbSBnc3Rfc2luZ2xlX3F1ZXVlX25ldygpLCBhbmQgZG9uJ3QKCSAgY3Jhc2ggd2l0aCBkZWJ1ZyBsb2dnaW5nIGVuYWJsZWQgaWYgTlVMTCBpcyByZXR1cm5lZC4KCSAgU3BvdHRlZCBieSBTdGV2ZW4gSG92aW5nLgoKMjAxNi0wMS0yMCAxMDowMjozNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogcmVtb3ZlIGEgaGFsZiBmaW5pc2hlc2ggc2VudGVuY2UgaW4gdGhlIGRvY3MKCSAgTm8gaWRlYSB3aGF0IHdhcyB0aGUgaWRlYSBoZXJlLiBTTyBsZXRzIGp1c3QgZHJvcCBpdC4KCjIwMTYtMDEtMTkgMTQ6Mzk6MDYgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmM6CgkgIHRyYWNlcnJlY29yZDogRml4IHNlbGYtPnNwZWMgc3RydWN0dXJlIGludmFsaWQgZnJlZQoJICBzZWxmLT5zcGVjIGlzIGdvdCB1c2luZyBnX3ZhbHVlX2dldF9ib3hlZCgpLCB3aGljaCBpcyBhIHRyYW5zZmVyIG5vbmUgZnVuY3Rpb24uCgkgIFNvIHRoZSBzYW1lIHNob3VsZCBub3QgYmUgZnJlZWQsIHdoaWNoIGlzIHJlc3VsdGluZyBpbiB3cm9uZyBiZWhhdmlvci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDgyMQoKMjAxNi0wMS0yMCAwOToyNTo0NCArMDEwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSAgdHJhY2VycmVjb3JkOiBJbml0aWFsaXNlIGZsYWdzIHRvIGF2b2lkIHdyb25nIGNvbXBhcmlzaW9uCgkgIEdzdFRyYWNlclZhbHVlRmxhZ3MgaXMgbm90IGJlaW5nIGluaXRpYWxpemVkIGFuZCB0aGUgc2FtZSBjb3VsZCByZXN1bHQgaW4gd3JvbmcKCSAgY29tcGFyaXNpb24gYW5kIGJlaGF2aW9yLiBIZW5jZSBpbml0aWFsaXppbmcgaXQgdG8gR1NUX1RSQUNFUl9WQUxVRV9GTEFHU19OT05FLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwODIxCgoyMDE2LTAxLTIwIDA5OjE4OjAxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSAgdGVzdHMvZ3N0L2luZm86IEZpeCBtZXNzYWdlcyBnbGlzdCBtZW1vcnkgbGVhawoKMjAxNi0wMS0xOSAxNTowMzo1NSArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSAgdGVzdHM6IHRyYWNlcnJlY29yZDogRml4IG1lc3NhZ2VzIGdsaXN0IG1lbW9yeSBsZWFrCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA4MjEKCjIwMTYtMDEtMTggMjE6MTI6NTMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdHJhY2VyOiBhZGQgYW4gaW50ZXJuYWwgcHRyIGZvcm1hdCBmb3IgdHJhY2VyIHNlcmlhbGlzYXRpb24KCSAgV2UgbmVlZCB0byBhcHBseSB0aGUgc3RyaW5nIHdyYXBwaW5nIHRoYXQgdmFsdWUgc2VyaWFsaXNhdGlvbiBkb2VzIGFsc28gaW4gdGhlCgkgIHRyYWNlciBsb2dnaW5nLCBvdGhlcndpc2Ugd2UgY2FuJ3QgcGFyc2UgbmVzdGVkIHN0cnVjdHVyZXMuCgoyMDE2LTAxLTE4IDIxOjA5OjQ5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICB0cmFjZXIvZ3N0c3RhdHM6IGZpeCBtaXNtYXRjaCBiZXR3ZWVuICcuY2xhc3MnIGFuZCB0cmFjZXIgYXJncwoJICBDbGVhbiB1cCBmcm9tIHRoZSByZWNlbnQgY2hhbmdlcy4gVGhlIGxvZ2dpbmcgZGVzY3JpcHRpb3JzIGRpZCBub3QgbWF0Y2ggd2hhdCB3ZSBsb2dnZWQuCgoyMDE1LTExLTEyIDAxOjE0OjM0ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogQWRkIHVzZS10YWdzLWJpdHJhdGUgcHJvcGVydHkKCSAgVGhlIHVzZS10YWdzLWJpdHJhdGUgcHJvcGVydHkgbWFrZXMgcXVldWUyIGxvb2sgYXQKCSAgdGFnIGV2ZW50cyBpbiB0aGUgc3RyZWFtIGFuZCBleHRyYWN0IGEgYml0cmF0ZSBmb3IgdGhlCgkgIHN0cmVhbSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyBhIGR1cmF0aW9uIGZvciBidWZmZXJzCgkgIHRoYXQgZG9uJ3QgaGF2ZSBvbmUgZXhwbGljaXRseSBzZXQuCgkgIFRoaXMgbGV0cyBxdWV1ZTIgc2Vuc2libHkgYnVmZmVyIHRvIGEgdGltZSB0aHJlc2hvbGQKCSAgZm9yIGFueSBieXRlc3RyZWFtIGZvciB3aGljaCB0aGUgZ2VuZXJhbCBiaXRyYXRlIGlzIGtub3duLgoKMjAxNi0wMS0xOSAxMjowNDoxNiArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc2JnQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSAgdHJhY2VycmVjb3JkOiBhdm9pZCBvdmVyd3JpdGluZyB2YWx1ZQoJICByZXMgdmFsdWUgaXMgb3ZlcndyaXR0ZW4sIHJlbW92ZSB0aGUgYXNzaWdubWVudC4KCSAgcHJpdl9fZ3N0X3N0cnVjdHVyZV9hcHBlbmRfdGVtcGxhdGVfdG9fZ3N0cmluZyAoKSBhbHdheXMgcmV0dXJucyBUUlVFCgkgIGFueXdheS4KCSAgQ0lEIDEzNDk2NDUKCjIwMTYtMDEtMTkgMTE6MTE6MjUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL01ha2VmaWxlLmFtOgoJICBiZW5jaG1hcmtzOiBEaXNhYmxlIHRyYWNlcnNlcmlhbGl6ZSBiZW5jaG1hcmsgb24gR1NUX0RJU0FCTEVfR1NUX0RFQlVHCgkgIG5vIGdzdC1kZWJ1Z2dpbmcgPT4gbm8gdHJhY2VyIGxvZ2dpbmcgKGFuZCBubyBwb255IGVpdGhlcikKCjIwMTYtMDEtMTkgMTE6MTA6MzAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmM6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuaDoKCSAgdHJhY2VycmVjb3JkOiBEaXNhYmxlIGxvZ2dpbmcgaWYgR1NUX0RJU0FCTEVfR1NUX0RFQlVHCgkgIE1ha2UgdGhlIGdzdF90cmFjZXJfcmVjb3JkX2xvZygpIGEgbm8tb3AgaWYgdGhlIGdzdC1kZWJ1ZyBzdWJzeXN0ZW0KCSAgaXMgZGlzYWJsZWQuCgoyMDE2LTAxLTE4IDE5OjE3OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogZmFpbCBmbGFnIGRlc2VyaWFsaXphdGlvbiBvbiBpbnZhbGlkIGZsYWcgbmFtZXMKCjIwMTYtMDEtMTggMTk6MTA6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHRlc3RzOiBzdHJ1Y3R1cmU6IGZpeCB3cm9uZyBmbGFnIG5hbWUgaW4gZGVzZXJpYWxpemF0aW9uIHRlc3QKCSAgVGhlcmUgaXMgbm8gR1NUX1NFRUtfRkxBR1NfTk9ORSBvbmx5IEdTVF9TRUVLX0ZMQUdfTk9ORSAoYnV0CgkgIHRoZSBkZXNlcmlhbGl6ZXIgc2lsZW50bHkgc2tpcHMgYmFkIGZsYWcgbmFtZXMgY3VycmVudGx5KS4KCjIwMTYtMDEtMTcgMjM6NDk6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgdHJhY2VyczogZml4IHRocmVhZC1pZCBjYXN0cyB0byA2NC1iaXQgaW50cyBvbiAzMi1iaXQgc3lzdGVtcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwNzYyCgoyMDE2LTAxLTE4IDEwOjEzOjAyICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IHJlZi91bnJlZiBuZXcgZW51bSB0eXBlcyBpbiBnc3RfaW5pdC9kZWluaXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDc2NwoKMjAxNi0wMS0xNyAwMDowODozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIGV4cG9ydHMgZm9yIG5ldyBmbGFncyBnZXRfdHlwZSgpCgoyMDE2LTAxLTE2IDIyOjQzOjIzICswMTAwICBQaGlsaXAgVmFuIEhvb2YgPHBoaWxpcEBjb2RlbWluZGVkLmJlPgoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkgIHRyYWNlci5oOiBkb24ndCBpbmNsdWRlIHByaXZhdGUgbm9pbnN0IGhlYWRlciBnc3R0cmFjZXJ1dGlscy5oIGluIGEgcHVibGljIGhlYWRlcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwNzMyCgoyMDE2LTAxLTE2IDIxOjI0OjE5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy90cmFjaW5nLnNoOgoJICBiZW5jaG1hcms6IGltcHJvdmUgc2NyaXB0CgkgIFVzZSBhIHRlbXAgZmlsZSBmb3IgdGhlIGxvZyBhbmQgZml4IG9uZSBlbnYtdmFyLgoKMjAxNi0wMS0xNiAyMToyMzoxMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXIvc3RhdHM6IHVzZSB0aGUgcmlnaHQgbG9nIHRlbXBsYXRlCgkgIFdoZW4gcG9ydGluZyB3ZSB1c2VkIHRoZSB3cm9uZyByZWNvcmQgKGNvcHkgYW5kIHBhc3RlKS4KCjIwMTYtMDEtMTYgMjE6MDQ6NDYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmg6CgkgIHRyYWNlcjogdXBkYXRlIHRoZSBkb2NzCgkgIEFkZCB0aGUgbmV3IGVudW0gYW5kIGZsYWdzLiBSZW1vdmUgdGhlIEdzdFRyYWNlclJlY29yZFByaXZhdGUuCgoyMDE2LTAxLTE2IDIxOjAyOjM5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIGdzdC1zdGF0czogdXBkYXRlIHRvIGxhdGVzdCB0YXJjZXIgYXBpCgkgIFRoZSB0aHJlYWQtaWRzIGFyZSBzZXJpYWxpemVkIGFzIHVpbnQ2NC4gVGhlICdlbGVtLWl4JyBnb3QgY2hhbmdlZCB0bwoJICAnZWxlbWVudC1peCcuIE1ha2UgdGhlIGNvZGUgYSBiaXQgbW9yZSByb2J1c3QuCgoyMDE2LTAxLTE2IDE4OjU1OjA3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXI6IHVzZSB0aGUgbmV3IGZsYWdzIHRvIGNyZWF0ZSB0aGUgb3B0aW9uYWwgZmllbGQgaW4gdGhlIGZvcm1hdCBzdHJpbmcKCSAgVGhpcyBzcGFyZXMgdXMgZXhwbGljaXRseSBsaXN0aW5nIHRoZSBmaWVsZCBpbiB0aGUgc3BlYy4gYW5kIHRodXMgaGlkZSB0aGlzCgkgIGltcGxlbWVudGF0aW9uIGRldGFpbC4KCjIwMTYtMDEtMTYgMTg6NTI6MzIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyYWNpbmcudHh0OgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcjogYWRkIGEgR3N0VHJhY2VyVmFsdWVGbGFncyBhbmQgcmVwbGFjZSBzdHJpbmdzCgkgIFRoaXMgYWxsb3dzIHVzIHRvIGRvY3VtZW50IHRoZSBmbGFncyBhbmQgbWFrZXMgdGhlIGxvZ3MgYSBiaXQgc21hbGxlci4KCjIwMTYtMDEtMTYgMTY6MDE6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBhZGQgZnVuY3Rpb24gZ3VhcmQgdG8gZ3N0X21lc3NhZ2Vfc2V0X2J1ZmZlcmluZ19zdGF0cygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA3MDQKCjIwMTYtMDEtMTYgMTQ6NTE6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmM6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuaDoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGdzdC5oOiBEb24ndCBzcGV3IHdhcm5pbmdzIGlmIEdTVF9VU0VfVU5TVEFCTEVfQVBJIGlzIG5vdCBkZWZpbmVkCgkgIE9ubHkgaGlkZSBHc3RUcmFjZXIgYW5kIEdzdFRyYWNlclJlY29yZCBBUEkgYmVoaW5kIEdTVF9VU0VfVU5TVEFCTEVfQVBJLAoJICBidXQgZG9uJ3Qgc3BldyBhbnkgd2FybmluZ3MsIG90aGVyd2lzZSBldmVyeW9uZSBoYXMgdG8gZGVmaW5lIHRoaXMKCSAgdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZ3MuCgkgIFRoaXMgcmV2ZXJ0cyBwYXJ0cyBvZiBjb21taXQgODllZTVkOTQ4ZGZmNTYwMjA0ZTZlZGQyMTBjNDRlZDJiODY1NGI4ZS4KCjIwMTYtMDEtMTYgMTM6MzA6MzQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL3RyYWNlcnNlcmlhbGl6ZS5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL3RyYWNpbmcuc2g6CgkgIGJlbmNobWFya3M6IHVwZGF0ZSB0aGUgdHJhY2VyIGJlbmNobWFyayBhbmQgYWRkIGEgc2hlbGwgYmVuY2htYXJrCgoyMDE2LTAxLTE2IDEzOjI4OjMyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC10cmFjaW5nLnR4dDoKCSAgZG9jcy9kZXNpZ246IHVwZGF0ZSB0cmFjZXJzcGVjIGV4YW1wbGVzCgoyMDE2LTAxLTE2IDEzOjI3OjU5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdGFncmVhZGluZy50eHQ6CgkgIGRvY3MvZGVzaWduOiBzcGVsbCBjaGVja2luZwoKMjAxNi0wMS0xNiAxMzoyNDoxNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmM6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuaDoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0cmFjZXI6IGFkZCBhIEdGbGFnIGZvciB0aGUgdHJhY2VyIHNjb3BlCgkgIFBvcnQgYWxsIHRyYWNlcnMuIEFkZCB0aGUgR1NUX1VTRV9VTlNUQUJMRV9BUEkgZmxhZyB0byB0aGUgaW50ZXJuYWwgQ0ZMQUdTIHNvCgkgIHRoYXQgd2UgZG9uJ3QgaGF2ZSB0byBzcGVjaWZ5IHRoaXMgZm9yIGdpciwgZG9jcywgbWtlbnVtLCAuLi4KCjIwMTYtMDEtMTYgMTA6NDg6MDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dC1zZWxlY3RvcjogTWFrZSBhY2Nlc3MgdG8gdGhlIGFjdGl2ZSBwYWQgYW5kIGxhc3QgYnVmZmVyIHRocmVhZC1zYWZlCgkgIEJvdGggY2FuIGJlIG1vZGlmaWVkIGZyb20gZGlmZmVyZW50IHRocmVhZHMgYXQgdGhlIHNhbWUgdGltZS4KCjIwMTYtMDEtMTYgMTA6NDc6MzYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dC1zZWxlY3RvcjogTm90aWZ5IHdoZW4gdGhlIGFjdGl2ZS1wYWQgcHJvcGVydHkgaXMgY2hhbmdpbmcKCjIwMTYtMDEtMTIgMTQ6NTk6MDQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRyYWNlcnJlY29yZDogYWRkIGEgbG9nIHJlY29yZCBjbGFzcwoJICBXZSB1c2UgdGhpcyBjbGFzcyB0byByZWdpc3RlciB0cmFjZXIgbG9nIGVudHJ5IG1ldGFkYXRhIGFuZCBidWlsZCBhIGxvZwoJICB0ZW1wbGF0ZS4gV2l0aCB0aGUgbG9nIHRlbXBsYXRlIHdlIGNhbiBzZXJpYWxpemUgbG9nIGRhdGEgdmVyeSBlZmZpY2llbnRseS4KCSAgVGhpcyBhbHNvIHNpbXBsaWZpZXMgdGhlIGxvZ2dpbmcgY29kZSwgc2luY2UgdGhhdCBpcyBub3cgYSBzaW1wbGUgdmFyYXJncwoJICBmdW5jdGlvbiB0aGF0IGlzIG5vdCBleHBvc2luZyB0aGUgaW1wbGVtZW50YXRpb24gZGV0YWlscy4KCSAgQWRkIGRvY3MgZm9yIHRoZSBuZXcgY2xhc3MgYW5kIGJhc2ljIHRlc3RzLgoJICBSZW1vdmUgdGhlIHByZXZpb3VzIGxvZyBoYW5kbGVyLgoJICBGaXhlcyAjNzYwMjY3CgoyMDE2LTAxLTE1IDA5OjQ4OjMyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBDaGVjayByZXR1cm4gdmFsdWUgb2YgZ19zb2NrZXRfY2xvc2UoKQoJICBDSUQgMTM0ODQ1MgoKMjAxNi0wMS0xNSAwOTowMjo0MiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogRnJlZSBkYXRhIGFmdGVyIHJlbW92aW5nIGl0IGZyb20gdGhlIGxpc3QKCSAgRG9lcyBub3QgbWF0dGVyIGhlcmUgYnV0IG1ha2VzIENvdmVyaXR5IG1vcmUgaGFwcHkuIEl0IGNhbid0CgkgIGtub3cgdGhhdCBnX2xpc3RfcmVtb3ZlKCkgb25seSBsb29rcyBhdCB0aGUgcG9pbnRlciB2YWx1ZSBidXQKCSAgZG9lcyBub3QgZGVyZWZlcmVuY2UgaXQuCgkgIENJRCAxMzQ4NDU0CgoyMDE2LTAxLTE1IDAwOjMwOjU5ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJICBHc3REZXZpY2VNb25pdG9yOiBDbGFyaWZ5IHRoZSBiZWhhdmlvdXIgb2YgZ3N0X2RldmljZV9tb25pdG9yX2FkZF9maWx0ZXIKCjIwMTYtMDEtMTUgMDA6MjU6MDUgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkgIEdzdERldmljZU1vbml0b3I6IERvbid0IHJlbW92ZSB1bm1hdGNoZWQgY2xhc3MgZmlsdGVycwoJICBJZiBubyBwcm92aWRlcnMgZm9yIGEgcGFydGljdWxhciBjbGFzcyBjb3VsZCBiZSBmb3VuZCwgdGhlbiByZW1vdmluZyB1bm1hdGNoZWQKCSAgZmlsdGVycyB3b3VsZCBjYXVzZSBhbGwgZGV2aWNlcyB0byBiZSByZXR1cm5lZCBpbnN0ZWFkIHdoaWNoIGlzIG5vdCBhdCBhbGwgd2hhdAoJICB0aGUgdXNlciBpbnRlbmRlZC4gV2Ugc3RpbGwgcmV0dXJuIDAgZm9yIHVubWF0Y2hlZCBmaWx0ZXJzLgoKMjAxNi0wMS0xMyAyMTozMjoyMCArMDAwMCAgRmxvcmluIEFwb3N0b2wgPGZsb3Jpbi5hcG9zdG9sQG9yZWdhbi5uZXQ+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IEZpeCBHRXJyb3IgbWVtb3J5IGxlYWsgaW4gaGFuZGxpbmcgTlRQIHJlc3BvbnNlCgkgIEVycm9yIHdhcyBub3QgcmVsZWFzZWQgaWYgZ3N0X250cF9wYWNrZXRfcmVjZWl2ZSBmYWlsZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA1OTgKCjIwMTYtMDEtMTMgMTM6MTA6MTAgKzExMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIGV4cG9ydHMgZm9yIEFQSSBhZGRpdGlvbnMKCjIwMTYtMDEtMTEgMTY6MzE6MzkgKzExMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IGV4cG9zZSBkZWJ1Z2dpbmcgcHJpbnRmIGZ1bmN0aW9ucwoJICBPdGhlciBnc3QgbGlicmFyaWVzIGFuZC9vciBlbGVtZW50cyBtYXkgd2FudCB0byBhZGQgc29tZSBkZWJ1ZyBsb2dnaW5nIHRvIGFuCgkgIGV4dGVybmFsIGRlYnVnIHN5c3RlbSBvciBpbXBsZW1lbnQgZGVsYXllZCBkZWJ1Z2dpbmcgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMuCgkgIEV4cG9zZXMgdGhlIGludGVybmFsIF9fZ3N0X3Zhc3ByaW50ZiBhcyBnc3RfaW5mb192YXNwcmludGYgd2hpY2ggaGFzIGEgZmFsbGJhY2sKCSAgdG8gZ192YXNwcmludGYgaWYgdGhlIGRlYnVnIHN5c3RlbSBpcyBkaXNhYmxlZC4KCSAgQVBJOiBnc3RfaW5mb192YXNwcmludGYKCSAgQVBJOiBnc3RfaW5mb19zdHJkdXBfdnByaW50ZgoJICBBUEk6IGdzdF9pbmZvX3N0cmR1cF9wcmludGYKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDQyMQoKMjAxNi0wMS0xMSAyMToxNzoyNSArMDEwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IE9ubHkgc2V0IGR1cmF0aW9uL3Bvc2l0aW9uIHF1ZXJ5IHZhbHVlcyBpbiBjYXNlIG9mIHF1ZXJ5IHN1Y2Nlc3MKCSAgQ3VycmVudGx5LCB0aGUgcXVlcnkgdmFsdWVzIGFyZSBiZWluZyBzZXQgZXZlbiBpZiB0aGUgcXVlcnkgaXRzZWxmIHdhcwoJICBkZXRlcm1pbmVkIHRvIGhhdmUgZmFpbGVkLiBGaXggdGhpcyB0byBlbnN1cmUgdGhlIHZhbHVlcyBhcmUgb25seSBzZXQgaW4KCSAgY2FzZSBvZiBhIHF1ZXJ5IHN1Y2Nlc3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA0NzkKCjIwMTYtMDEtMTAgMTQ6MzA6MDUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyczogY29kZSBjbGVhbiB1cHMKCSAgRHJvcCBzb21lIHRyYWlsaW5nIHdoaWxlc3BhY2UuIE1ha2UgZmllbGQgb3JkZXIgY29uc2lzdGVudC4KCjIwMTYtMDEtMDggMjM6MzU6NTMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL3RyYWNlcnNlcmlhbGl6ZS5jOgoJICBiZW5jaG1hcms6IGZpeCBjb3B5J24ncGFzdCBvZiB0aGUgZmlsZS1kZXNjcmlwdGlvbiBjb21tZW50CgoyMDE2LTAxLTA4IDIzOjA2OjU1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL3RyYWNlcnNlcmlhbGl6ZS5jOgoJICBiZW5jaG1hcms6IGFkZCBhIGJlbmNobWFyayBmb3IgYmdvLzc2MDI2NwoJICBCaWcgc3VwcmlzZSAtIEdzdFN0cnVjdHVyZSBpcyBmYXN0ZXIgdGhhbiBHVmFyaWFudC4KCjIwMTUtMDMtMTAgMTM6MDc6MTggKzA5MDAgIEhvb25IZWUgTGVlIDxob29uaGVlLmxlZUBsZ2UuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBpbXByb3ZlIGRlYnVnIG1lc3NhZ2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTkzOQoKMjAxNi0wMS0wOCAxOToyNToyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkgIGluZm86IGFkZCBidWZmZXIgbGlzdCBzdXBwb3J0IHRvIEdTVF9QVFJfRk9STUFUCgoyMDE1LTExLTI1IDE3OjM2OjI1ICswMTAwICBBdXLDqWxpZW4gWmFuZWxsaSA8YXVyZWxpZW4uemFuZWxsaUBwYXJyb3QuY29tPgoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuaDoKCSAgY29udHJvbHNvdXJjZTogZml4IEdldFZhbHVlIGFuZCBHZXRWYWx1ZUFycmF5IGRvY3VtZW50YXRpb24KCSAgR3N0Q29udHJvbFNvdXJjZUdldFZhbHVlKCkgdmFsdWUgcGFyYW1hdGVyIGlzIGEgZ2RvdWJsZSwgbm90IGEgR1ZhbHVlCgkgIGFuZCBHc3RDb250cm9sU291cmNlR2V0VmFsdWVBcnJheSBkb2Vzbid0IHJldHVybiBhIEdzdFZhbHVlQXJyYXkgYnV0CgkgIGFuIGFycmF5IG9mIGRvdWJsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODY2OAoKMjAxNi0wMS0wNyAyMzowMzo0OCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcjogaGFybW9uaXplIHRoZSBxdWVyeSBob29rcwoJICBJbiBwb3N0IGhvb2tzIGFsd2F5cyBwYXNzIHRoZSByZXR1cm4gdmFsdWUgYXMgdGhlIGxhc3QgcGFyYW0uIFBhc3MgdGhlIHF1ZXJ5CgkgIGFsc28gdG8gcG9zdCBob29rcyBzaW5jZSBpdCBpcyBzdGlsbCBhbGl2ZS4KCjIwMTYtMDEtMDcgMjI6NDc6MzcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2Vycy9zdGF0czogYWRkIG1pc3NpbmcgcGFyYW1ldGVycyB0byBjYWxsYmFjayBmdW5jdGlvbnMKCjIwMTYtMDEtMDcgMjI6NDM6NTggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSAgdHJhY2VydXRpbHM6IHVwZGF0ZSAjZW5kaWYgY29tbWVudAoJICBXZSBjaGFuZ2VkIHRoZSBkZWZpbmUsIGJ1dCBsZWZ0IHRoZSBjb21tZW50IGluY29uc2lzdGVudC4KCjIwMTYtMDEtMDcgMTk6MTM6MDMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkgIHRyYWNlcnV0aWxzOiBkb2N1bWVudCB0aGUgdHJhY2VyIGhvb2sgZnVuY3Rpb25zCgkgIERvY3VtZW50IGFsbCB0cmFjZXIgaG9vayBmdW5jdGlvbiBwb2ludGVyIHRvZ2V0aGVyIHdpdGggdGhlIGRldGFpbCBzdHJpbmcgdGhhdAoJICBvbmUgbmVlZHMgdG8gdXNlIHdpdGggZ3N0X3RyYWNpbmdfcmVnaXN0ZXJfaG9vaygpLgoKMjAxNi0wMS0wNyAxODo0NjoyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJICB0cmFjZXI6IFVzZSBHU1RfRElTQUJMRV9HU1RfVFJBQ0VSX0hPT0tTIGluc3RlYWQgb2YgR1NUX0RJU0FCTEVfR1NUX0RFQlVHIGV2ZXJ5d2hlcmUKCSAgUHJldmlvdXNseSB3ZSB1c2VkIHRoZSBsYXR0ZXIgb25lIHN0aWxsIGZvciB0aGUgdHJhY2VyIHV0aWxpdHkgY29kZSwgY2F1c2luZwoJICB1bmRlZmluZWQgcmVmZXJlbmNlcyBpbiB0aGUgcmVzdWx0aW5nIGJpbmFyeSBpZiB0aGUgZGVidWdnaW5nIHN5c3RlbSB3YXMKCSAgZGlzYWJsZWQgYnV0IHRoZSB0cmFjZXIgc3lzdGVtIG5vdC4KCjIwMTYtMDEtMDcgMTg6NDE6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSAgZ3N0OiBSZW5hbWUgX3ByaXZfZ3N0X2luZm9fc3RhcnRfdGltZSB0byBfcHJpdl9nc3Rfc3RhcnRfdGltZSBhbmQgaW5pdGlhbGl6ZSBpdCBjZW50cmFsbHkKCSAgSXQncyB1c2VkIGJ5IHRoZSBkZWJ1Z2dpbmcgYW5kIHRyYWNlciBzdWJzeXN0ZW0gYW5kIGluIHZhcmlvdXMgZmlsZXMsIG1ha2UgaXQKCSAgYSBjZW50cmFsIHRoaW5nIHRoYXQgaXMgaW5pdGlhbGl6ZWQgaW5kZXBlbmQgb2YgdGhlIGV4aXN0ZW5jZSBvZiB0aG9zZQoJICBzdWJzeXN0ZW1zLgoKMjAxNi0wMS0wNiAyMTo0MjozMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIHdpbjMyIGV4cG9ydHMKCSAgUmVtb3ZlIHRoZSBfaG9va19pZCgpIG1ldGhvZHMgd2UgbWFkZSBpbnRlcm5hbCBpbiB0aGUgcHJldiBjb21taXQuCgoyMDE2LTAxLTA2IDIxOjE3OjE2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGxvZyBhIHdhcm5pbmcgaWYgd2UgY2FuJ3Qgc2VyaWFsaXplIGEgZmllbGQKCSAgVGhlIGZ1bmN0aW9uIGFsd2F5cyByZXR1cm5zIFRSVUUgcmlnaHQgbm93LCBzbyBhdGxlYXN0IGxvZyBzb21ldGhpbmcuCgoyMDE1LTEwLTA2IDEyOjQ5OjAwICswMDAwICBBbGVrc2FuZGVyIFdhYmlrIDxhd2FiaWtAb3BlcmEuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkgIHRlc3RzOiBxdWV1ZTI6IGFkZCB0ZXN0IGZvciBmaWxsIGxldmVsIGFyaXRobWV0aWMgb3ZlcmZsb3cKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NTk3MQoKMjAxNi0wMS0wNiAxOTo1MTo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYXZvaWQgY2FsY3VsYXRpbmcgZmlsbCBsZXZlbHMgbXVsdGlwbGUgdGltZXMKCSAgTWFjcm8gZXhwYW5zaW9uIG1lYW5zIHdlIG1pZ2h0IGNhbGN1bGF0ZSB0aGUgZmlsbCBsZXZlbCBvbmNlCgkgIGZvciB0aGUgY2hlY2sgYW5kIHRoZW4gcG9zc2libHkgYWdhaW4gZm9yIHRoZSByZXR1cm4gdmFsdWUuCgoyMDE2LTAxLTA2IDE5OjUwOjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggZmlsbCBsZXZlbCBhcml0aG1ldGljIG92ZXJmbG93IHdpdGggbGFyZ2UgdmFsdWVzCgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBBbGVrc2FuZGVyIFdhYmlrIDxhd2FiaWtAb3BlcmEuY29tPgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1OTcxCgoyMDE2LTAxLTA2IDIwOjQxOjI2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJICB0cmFjZXI6IG1ha2UgZ3N0X3RyYWNpbmdfcmVnaXN0ZXJfaG9va19pZCBzdGF0aWMKCSAgV2UgZG9uJ3QgbmVlZCB0byBleHBvc2UgdGhpcyBhcyBwdWJsaWMgQVBJLiBDaGFuZ2UgdGhlIG9ubHkgcGx1Z2luIHRoYXQgd2FzCgkgIHVzaW5nIGl0LgoKMjAxNi0wMS0wNiAxODo1NjozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJICBkb2NzOiBkZXNpZ246IHVwZGF0ZSBsaXN0IG9mIGRpc3RlZCBmaWxlcyBhZnRlciBmaWxlIHJlbmFtZQoKMjAxNi0wMS0wNiAxOTo0Mjo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogSGlkZSBOVFAgcGFja2V0IEFQSSBhbmQgYWRkIEdTVF9QVFBfU1RBVElTVElDU18qIGRlZmluZXMgdG8gdGhlIGRvY3MKCjIwMTYtMDEtMDYgMTg6MTc6MjcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suaDoKCSAgZG9jczogcmVtb3ZlIHBhcmVudCBkb2NzIGZvciBHc3RQdHBDbG9jawoJICBJbnN0YW5jZSBkb2NzIGRvbid0IG5lZWQgdG8gZG9jdWVtbnQgdGhlIHBhcmVudCAoZmlyc3QgbWVtYmVyKS4KCjIwMTYtMDEtMDYgMTg6MTQ6MDYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGNsZWFudXAgLXVudXNlZC50eHQgcmVwb3J0IGZvciBsaWJzCgkgIFRoZSBJR05PUkVfSF9GSUxFUyBjYW4gb25seSBjb250YWluIGZpbGVzIG9yIGRpcnMuCgoyMDE2LTAxLTA2IDE3OjU4OjExICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogYWRkIG1vcmUgY29yZSBhcGkgdG8gdGhlIHJpZ2h0IHNlY3Rpb25zCgkgIEFkZCBuZXcgYW5kIGRvY3VtZW50ZWQgYXBpIHJlcG9ydGVkIGluIC11bnVzZWQudHh0IHRvIC1zZWN0aW9uLnR4dC4KCjIwMTYtMDEtMDYgMTc6NTQ6NDQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgZG9jczogZXhjbHVkZSBtb3JlIGhlYWRlciBmcm9tIGRvYy1zY2FuCgkgIEV4Y2x1ZGUgZ3N0L3ByaW50Zi8qLmggYW5kIGEgZmV3IGdlbmVyYXRlZCAuaCBmaWxlcyBmcm9tIHRoZSBhcGktc2Nhbi4gVGhpcwoJICBtYWtlcyAtdW51c2VkLnR4dCByZXBvcnQgZmlsZSBmcm9tIGd0a2RvYyB1c2VmdWwgYWdhaW4uCgoyMDE2LTAxLTA2IDE2OjIxOjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGNsb2NrOiBhZGp1c3QvdW5hZGp1c3Rfd2l0aF9jYWxpYnJhdGlvbigpIGhhdmUgYSBjbG9jayBwYXJhbWV0ZXIgYnV0IGl0J3MgdXNlbGVzcwoJICBEb2N1bWVudCB0aGlzLCBmb3IgMi4wIHdlIHNob3VsZCBqdXN0IHJlbW92ZSB0aGF0IHBhcmFtZXRlci4KCjIwMTYtMDEtMDYgMTY6MTk6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjbG9jazogQWRkIGdzdF9jbG9ja191bmFkanVzdF93aXRoX2NhbGlicmF0aW9uKCkKCSAgV2UgYWxyZWFkeSBoYXZlIGdzdF9jbG9ja19hZGp1c3Rfd2l0aF9jYWxpYnJhdGlvbigpIGFuZAoJICBnc3RfY2xvY2tfdW5hZGp1c3RfdW5sb2NrZWQoKSwgaGF2aW5nIHRoZSBvdGhlciB2YXJpYW50IGlzIHVzZWZ1bC4KCjIwMTYtMDEtMDYgMTM6MzM6MzkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgbmV3IHBhZC1ldmVudCBmdW5jdGlvbiB0byB0aGUgZG9jcwoKMjAxNi0wMS0wNiAxMzoyNjoyNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkgIGRvY3M6IGhpZGUgaW50ZXJuYWwgdHJhY2VyIGFwaSBmcm9tIGRvY3MKCSAgQWxzbyBhZGRyZXNzIHdhcm5pZ25zIHJlZ2FyZGluZyB0aGUgdW5zdGFibGUgdHJhY2VyIGFwaS4KCjIwMTYtMDEtMDYgMTI6NDc6MjYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkqIGdzdC9nc3R0cmFjZXIuYzoKCSAgZG9jczogYWRkIHRoZSB0cmFjZXIgdG8gdGhlIGRvY3MKCSAgQWRkIEdzdFRyYWNlciBhbmQgR3N0VHJhY2VyRmFjdG9yeSB0byB0aGUgY29yZSBkb2NzLgoKMjAxNi0wMS0wNiAxMTo1Mjo1MyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdHJhY2luZy50eHQ6CgkgIGRvY3M6IHJlbmFtZSB0aGUgdHJhY2VyIGRvYyB0byBwYXJ0IHNpbmNlIGl0IGlzIG5vdyBtZXJnZWQKCjIwMTYtMDEtMDYgMTE6MzU6NDYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIHRyYWNlcnV0aWxzOiBtb3ZlIGhlYWRlciB0byBub2luc3Qgc2VjdGlvbgoJICBUaGlzIGlzIGludGVybmFsIGNvZGUsIHRoYXQgaXMgb25seSB0byBiZSB1c2VkIGluIGNvcmUuCgoyMDE2LTAxLTA2IDExOjMxOjE2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSAgY29uZmlndXJlOiBhZGQgYSBuZXcgb3B0aW9uIHRvIGRpc2FibGUgdGhlIHRyYWNlciBob29rcwoJICBUaGlzIHdhcyBwcmV2aW91c2x5IGRvbmUgdmlhIHtlbmFibGUsZGlzYWJsZX0tZ3N0LWRlYnVnLiBTaW5jZSBib3RoIHN1YnN5c3RlbXMKCSAgYXJlIGluZGVwZW5kZW50IGhhdmluZyBzZXBhcmF0ZSBvcHRpb25zIGlzIGJldHRlci4KCjIwMTYtMDEtMDUgMTY6NDQ6NTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIGNsb2NrOiBGaXggdHlwbwoJICBjbG9ja2VkIC0+IGNsb2NrCgoyMDE2LTAxLTA1IDE0OjU5OjM0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBEaXNjb25uZWN0IHRoZSAic3luY2VkIiBzaWduYWwgaGFuZGxlciBmcm9tIHRoZSBpbnRlcm5hbCBjbG9jawoJICBOb3QgZnJvbSB0aGUgZXh0ZXJuYWwgb25lLgoKMjAxNi0wMS0wNSAxMzo1NzoxMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmg6CgkgIGNvbnRyb2xsZXI6IHJlbmFtZSBuZXcgY3ViaWMgaW50ZXJwb2xhdGlvbiBtb2RlCgkgIERvbid0IGFiYnJldmlhdGUgdG8gJ21vbm8nIGFuZCB1c2UgJ21vbm90b25pYycgaW5zdGVhZC4KCjIwMTYtMDEtMDUgMTQ6MjM6MjYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IERvbid0IGFsbG93IHNldHRpbmcgYW4gdW5zeW5jZWQgY2xvY2sgYXMgbWFzdGVyCgoyMDE2LTAxLTA1IDE0OjIxOjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGNsb2NrOiBEb24ndCB0cnkgdG8gc2xhdmUgdW5zeW5jZWQgY2xvY2tzCgkgIFRoZXkgd2lsbCByZXR1cm4gdXNlbGVzcyB2YWx1ZXMgZnJvbSBnZXRfdGltZSgpLgoKMjAxNi0wMS0wNSAxMzo0MTowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBudHA6IFRoZSBjbG9jayBpbmhlcml0cyBmcm9tIEdzdE5ldENsaWVudENsb2NrLCBub3QganVzdCBHc3RTeXN0ZW1DbG9jawoKMjAxNi0wMS0wNCAxNzoxODowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogRGVzdHJveSBhIGNhY2hlZCBjbG9jayA2MCBzZWNvbmRzIGFmdGVyIGl0cyBsYXN0IHVzZQoJICBUaGVyZSdzIG5vdCBtdWNoIGxvc3QgYnkgaGF2aW5nIHRoZSBjbG9jayBpZGxlIGFyb3VuZCBhIGJpdCBsb25nZXIgYnV0IGl0IHdpbGwKCSAgcG90ZW50aWFsbHkgYWxsb3cgYW55Ym9keSB3YW50aW5nIHRvIHVzZSB0aGUgc2FtZSBjbG9jayBzZXJ2ZXIgYWdhaW4gdG8gc3luYwoJICBtdWNoIGZhc3Rlci4KCjIwMTYtMDEtMDQgMTY6MzE6MjMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IE9ubHkgZXZlciBydW4gb25lIGNsb2NrIGFnYWluc3QgYSBzcGVjaWZpYyBzZXJ2ZXIKCSAgSWYgbXVsdGlwbGUgbmV0L05UUCBjbG9ja3MgYXJlIGNyZWF0ZWQgZm9yIHRoZSBzYW1lIHNlcnZlciwgcmV1c2UgdGhlIHNhbWUKCSAgaW50ZXJuYWwgY2xvY2sgZm9yIGFsbCBvZiB0aGVtLiBUaGlzIG1ha2VzIHN1cmUgdGhhdCB3ZSBkb24ndCBmbG9vZCB0aGUgc2VydmVyCgkgIHdpdGggdG9vIG1hbnkgcmVxdWVzdHMgYW5kIGFsc28gcG9zc2libHkgYWxsb3dzIGZhc3RlciBzeW5jaHJvbml6YXRpb24gaWYKCSAgdGhlcmUgYWxyZWFkeSB3YXMgYW4gZWFybGllciBzeW5jaHJvbml6ZWQgY2xvY2sgd2hlbiBjcmVhdGluZyBhIG5ldyBvbmUuCgoyMDE2LTAxLTA0IDEwOjM5OjI3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBuZXR0aW1lcHJvdmlkZXI6IFVzZSBHSW5pdGFibGUgaW5zdGVhZCBvZiBoYXZpbmcgYSBuZXcoKSBmdW5jdGlvbiB0aGF0IGNhbiByZXR1cm4gTlVMTAoJICBCaW5kaW5ncyBkb24ndCBsaWtlIHRoYXQgbXVjaCBhbmQgYXMgd2UncmUgdXNpbmcgR0lPIGhlcmUgYW55d2F5IHdlIGNhbiBhcwoJICB3ZWxsIHVzZSBHSW5pdGFibGUgZm9yIHBvc3NpYmx5IGZhaWxpbmcgaW5pdGlhbGl6YXRpb24uCgoyMDE2LTAxLTAzIDE0OjA2OjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBuZXR0aW1lcHJvdmlkZXI6IE1hcmsgYWRkcmVzcywgcG9ydCBhbmQgY2xvY2sgcHJvcGVydGllcyBDT05TVFJVQ1RfT05MWQoJICBUaGV5IGNhbid0IHNlbnNpYmx5IGJlIGNoYW5nZWQgYWZ0ZXIgY29uc3RydWN0aW9uLgoKMjAxNi0wMS0wMyAyMjo1NTo0OCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlX2xhdW5jaDogbWFrZSBuaWNlciBsb2cgbWVzc2FnZXMKCSAgQWRkIHR3byBtYWNyb3MgdG8gYnVpbGQgbmljZXIgZWxlbWVudC9wYWQgbmFtZSBzdHJpbmdzLiBUaGUgbWFjcm9zIGF2b2lkCgkgIHByaW50aW5nICIoTlVMTCkiIGFuZCBwcmludCB0aGUgZWxlbWVudCB0eXBlIGluIGFkZGl0aW9uIHRvIHRoZSBuYW1lLgoKMjAxNi0wMS0wMiAxOTo0MjoxNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYXJzZS5oOgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZS1sYXVuY2g6IHdhcm4gd2hlbiBzdGlsbCB3YWl0aW5nIHRvIHBsdWcgc3ViLXBpcGVsaW5lcyBhZnRlciBuby1tb3JlLXBhZHMKCSAgVGhlIHBhcnNlLWxhdW5jaCBBUEkgYXV0b21hZ2ljYWxseSBoYW5kbGVzIGR5bmFtaWMgcGFkcyBhbmQgcGVyZm9ybXMgZGVsYXllZAoJICBsaW5raW5nIGFzIG5lZWRlZCwgd2l0aG91dCBhbnkgZmVlZGJhY2sgYWJvdXQgd2hldGhlciB0aGUgbGlua2luZyBzdWNjZWVkZWQgb3IKCSAgbm90IGhvd2V2ZXIuIElmIGEgZGVsYXllZCBkeW5hbWljIGxpbmsgY2FuJ3QgYmUgY29tcGxldGVkIGZvciB3aGF0ZXZlciByZWFzb24sCgkgIHBhcnNlLWxhdW5jaCB3aWxsIHNpbXBseSB3YWl0IGluIGNhc2UgYSBzdWl0YWJsZSBwYWQgYXBwZWFycyBsYXRlci4gVGhpcyBtYXkKCSAgbmV2ZXIgaGFwcGVuIHRob3VnaCwgaW4gd2hpY2ggY2FzZSB0aGUgcGlwZWxpbmUgbWF5IGp1c3QgaGFuZyBmb3JldmVyLgoJICBUcnkgdG8gaW1wcm92ZSB0aGlzIGJ5IGNvbm5lY3RpbmcgdG8gdGhlICJuby1tb3JlLXBhZHMiIHNpZ25hbCBvZiBhbnkgZWxlbWVudAoJICB3aXRoIGR5bmFtaWMgcGFkcyBhbmQgcG9zdGluZyBhIHdhcm5pbmcgbWVzc2FnZSBmb3IgdGhlIHJlbGF0ZWQgb3V0c3RhbmRpbmcKCSAgZHluYW1pYyBsaW5rcyB3aGVuICJuby1tb3JlLXBhZHMiIGlzIGVtaXR0ZWQuCgkgIEZpeGVzICM3NjAwMDMKCjIwMTUtMTItMzEgMTk6Mjc6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXJmYWN0b3J5LmM6CgkqIGdzdC9nc3R0cmFjZXJmYWN0b3J5Lmg6CgkgIGRvY3M6IGZpeCBzb21lIHdhcm5pbmdzIGFuZCBhZGQgc29tZSBzaW5jZSBtYXJrZXJzCgoyMDE2LTAxLTAzIDExOjM5OjI0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkgIHRyYWNpbmc6IGFkZCBzb21lIHBvaW50ZXJzIGFib3V0IG1lbW9yeSB0cmFjaW5nCgoyMDE2LTAxLTAzIDExOjM3OjU3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgZ3JhbW1hci55OiByZW1vdmUgdHJhaWxpbmcgd2hpdGVzcGFjZQoKMjAxNS0xMi0zMSAwMDowNDowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB0ZXN0czogdmFsdWU6IHRlc3QgYnVmZmVyIHNlcmlhbGlzYXRpb24vZGVzZXJpYWxpc2F0aW9uIG1vcmUgdGhvcm91Z2hseQoJICBUZXN0cyBkYXRhL3N0cmluZ3MgYXMgd2VsbCwgbm90IGp1c3QgdGhhdCB3ZSByZWNlaXZlZAoJICBzb21ldGhpbmcgbm9uLU5VTEwgYmFjay4KCjIwMTUtMTItMzEgMTA6NTc6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogZml4IHR5cG8gaW4gY29tbWVudAoKMjAxNS0xMi0zMCAxNjo1NzoyOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogSW1wbGVtZW50IHJlc29sdmFsIG9mIGhvc3RuYW1lcwoJICBKdXN0IGFsbG93aW5nIElQcyBoZXJlIGlzIG5vdCBpZGVhbCBhbmQgaW1wbGVtZW50aW5nIEROUyByZXNvbHZhbCBpcyBlYXN5LgoKMjAxNS0xMi0yOSAxNjoyODowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHBjbG9jazogQWRkIHJlYWQtb25seSBwcm9wZXJ0aWVzIHRvIGdldCB0aGUgbWFzdGVyIGFuZCBncmFuZG1hc3RlciBjbG9jayBpZHMKCjIwMTUtMTItMjkgMTQ6MzI6NDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBBZGQgKHRyYW5zZmVyIGZ1bGwpIGFubm90YXRpb24gdG8gc2ltcGxpZnkoKSBhbmQgc3VidHJhY3QoKSByZXR1cm4gdmFsdWUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1OTk0OAoKMjAxNS0xMi0yOSAxMTowNjozOSArMDEwMCAgQXVyw6lsaWVuIFphbmVsbGkgPGF1cmVsaWVuLnphbmVsbGlAcGFycm90LmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGFkZCAndHJhbnNmZXIgZnVsbCcgYW5ub3RhdGlvbiB0byBjYXBzIHJldHVybmVkIGJ5IGludGVyc2VyY3Rpb24gZnVuY3Rpb25zCgkgIFRvIG1ha2UgY2xlYXIgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIHRvIHVucmVmIHRoZW0uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTk5NDgKCjIwMTUtMTItMjggMTk6NDE6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkgIG5ldDogQWRkIE5UUCBhbmQgUFRQIGNsb2NrIHR5cGVzIHRvIHRoZSBkb2NzCgkgIFRoaXMgZ2l2ZXMgdXMgdGhlIHByb3BlcnR5IGRvY3VtZW50YXRpb24gZm9yIGV4YW1wbGUuCgoyMDE1LTEyLTI3IDE5OjQyOjM3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IGRvbid0IG1lbWNtcCB0d2ljZQoJICBTaW1wbHkgY2FsbCBmYWlsKCkgaW4gdGhlIGNvbmRpdGlvbiBhZnRlciB0aGUgZmlyc3QgbWVtY21wLgoKMjAxNS0xMi0yNCAxNToyNzoxMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS43LjEgPT09CgoyMDE1LTEyLTI0IDEzOjU4OjUyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS43LjEKCjIwMTUtMTItMjQgMTI6NTA6MzMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE1LTEyLTI0IDEyOjIxOjIxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTUtMTItMjEgMDA6NDM6NDkgKzAxMDAgIEtvb3AgTWFzdCA8a3dtQHJhaW5ib3ctcnVubmVyLm5sPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IE1ha2UgLUJzeW1ib2xpYyBjaGVjayB3b3JrIHdpdGggY2xhbmcuCgkgIFVwZGF0ZSB0aGUgLUJzeW1ib2xpYyBjaGVjayB3aXRoIHRoZSB2ZXJzaW9uIGdsaWIgaGFzLiBUaGlzIHZlcnNpb24KCSAgd29ya3Mgd2l0aCBjbGFuZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1OTcxMwoKMjAxNS0xMi0xNiAwOTozNToxOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuc2lnbmFsczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkgIGRvY3M6IHVwZGF0ZSB0byBnaXQKCjIwMTUtMTItMTQgMTE6MDk6NDYgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuYzoKCSAgcGx1Z2lucy1iYWQ6IEZpeCBleGFtcGxlIHBpcGVsaW5lcwoJICByZW5hbWUgZ3N0LWxhdW5jaCAtLT4gZ3N0LWxhdW5jaC0xLjAKCSAgcmVwbGFjZSBvbGQgZWxlbWVudHMgd2l0aCBuZXcgZWxlbWVudHMoZmZtcGVnY29sb3JzcGFjZSAtPiB2aWRlb2NvbnZlcnQsIGZmZW5jXyoqIC0+IGF2ZW5jXyoqKQoJICBmaXggY2FwcyBpbiBleGFtcGxlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5NDMyCgoyMDE1LTExLTEwIDEyOjM4OjU5IC0wNTAwICBYYXZpZXIgQ2xhZXNzZW5zIDx4YXZpZXIuY2xhZXNzZW5zQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmg6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5oOgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGJ1cy5oOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmg6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuaDoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkqIGdzdC9nc3RkZXZpY2UuaDoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuaDoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmg6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlcmZhY3RvcnkuaDoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJKiBnc3QvZ3N0cGFyc2UuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0c2FtcGxlLmg6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGdzdC9nc3R0YXNrLmg6CgkqIGdzdC9nc3R0YXNrcG9vbC5oOgoJKiBnc3QvZ3N0dG9jLmg6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogZ3N0L2dzdHRyYWNlcmZhY3RvcnkuaDoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5oOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5oOgoJICBjb3JlOiBBZGQgZ19hdXRvcHRyKCkgc3VwcG9ydCB0byBhbGwgdHlwZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDQ2NAoKMjAxNS0xMi0xNCAxMzowNjo1NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogQ2hlY2sgaWYgcGFyc2luZyB0aGUgbmFtZSB0ZW1wbGF0ZSB3aXRoIHNzY2FuZigpIHdhcyBzdWNjZXNzZnVsCgkgIElmIG5vdCwgZ28gYmFjayB0byB0aGUgYXV0b21hdGljIHBhZCBudW1iZXJpbmcuCgkgIENJRCAxMTk1MTI5CgoyMDE1LTEyLTE0IDExOjIwOjQzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWUvbXVsdGlxdWV1ZTogRG9uJ3Qgc3BlY2lhbC1jYXNlIENBUFMgZXZlbnRzIGluIHRoZSBldmVudCBoYW5kbGVycwoJICBGb3IgQ0FQUyBldmVudHMgd2Ugd2lsbCBuZXZlciBldmVyIGhhdmUgYSBGQUxTRSByZXR1cm4gdmFsdWUgaGVyZSwgc28ganVzdAoJICByZW1vdmUgdGhlIGRlYWQgY29kZSBpbnN0ZWFkIG9mIGNhdXNpbmcgZnV0dXJlIGNvbmZ1c2lvbi4KCjIwMTUtMTItMTQgMTE6MTY6NTAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIFJldmVydCAicXVldWU6IElsbGVnYWwgbWVtb3J5IGFjY2VzcyBvZiBzaW5rIGV2ZW50IgoJICBUaGlzIHJldmVydHMgY29tbWl0IDc4NjE0YzUwNWEyYTc2MWNiNGRjYjdmNGU1ZjNlOWY5N2M5YThlODguCgkgIFRoZSBjb2RlIGl0IHdhcyBmaXhpbmcgZG9lcyBub3QgaGF2ZSBhbnkgZWZmZWN0IGFueXdheSBhbmQgd2lsbCBiZSByZW1vdmVkIGluCgkgIHRoZSBuZXh0IGNvbW1pdC4KCjIwMTUtMTItMTQgMTA6MzI6MTQgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBJbGxlZ2FsIG1lbW9yeSBhY2Nlc3Mgb2Ygc2luayBldmVudAoJICBPbmNlIGV2ZW50IGlzIHB1c2hlZCB0byBwYWQsIHRoZW4gcXVldWUgc2hvdWxkIG5vdCBhY2Nlc3MgdGhlIGV2ZW50LgoJICBUaGlzIGlzIGxlYWRpbmcgdG8gaW52YWxpZCByZWFkIHZhbGdyaW5kIGVycm9ycwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5NDMwCgoyMDE1LTEyLTE0IDEwOjEwOjA0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogVW5yZWYgZXZlbnQgaWYgR3N0RWxlbWVudDo6c2VuZF9ldmVudCgpIGlzIG5vdCBpbXBsZW1lbnRlZAoJICBPdGhlcndpc2Ugd2UnbGwgdGFrZSBvd25lcnNoaXAgb2YgdGhlIGV2ZW50IG9ubHkgaWYgaXQncyBpbXBsZW1lbnRlZCwgYW5kCgkgIGxlYWsgdGhlIGV2ZW50IGluIGFsbCBvdGhlciBzaXR1YXRpb25zLgoKMjAxNS0xMi0xNCAxMDowNDoxOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IEZpeCBkeW5hbWljIHBpcGVsaW5lIGV4YW1wbGUKCSAgVXNlIEdTVF9QQURfUFJPQkVfUEFTUyB0byBwYXNzIHRocm91Z2ggYWxsIGV2ZW50cyBvdGhlciB0aGFuIEVPUyBpbnN0ZWFkIG9mCgkgIGJsb2NraW5nIG9uIHRoZSBmaXJzdCBub24tRU9TIGV2ZW50IGZvcmV2ZXIuIEFsc28gZml4IGEgdHlwbyBpbiBhIGNvbW1lbnQgaW4KCSAgdGhhdCBmdW5jdGlvbi4KCSAgVGhhbmtzIHRvIERhdmlkIEphZ2dhcmQgZm9yIHJlcG9ydGluZyB0aGlzIG9uIHRoZSBtYWlsaW5nIGxpc3QuCgoyMDE1LTEyLTEzIDAwOjM3OjM5ICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzYmdAb3NnLnNhbXN1bmcuY29tPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgZG9jczogIHR5cG8gaW4gdGhlIGxvY2F0aW9uIG9mIG1ha2VfZWxlbWVudCB0b29sCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTkzNTIKCjIwMTUtMTItMTIgMDE6MTM6NTkgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSAgZG93bmxvYWRidWZmZXI6IGRyb3AgdW5uZWVkZWQgbWFjcm9zIGZvciBHX09TX1dJTjMyCgoyMDE1LTEyLTEyIDAxOjA5OjIwIC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgIGZkc3JjOiBkcm9wIHVubmVlZGVkIG1hY3JvcyBmb3IgR19PU19XSU4zMgoKMjAxNS0xMi0xMiAwMTowNjo0MyAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICBmZHNyYzogZW5hYmxlIGxhcmdlIGZpbGUgc3VwcG9ydCBpbiBBbmRyb2lkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTg5ODAKCjIwMTUtMTItMTEgMjI6MTQ6MzIgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgIGZkc2luazogZW5hYmxlIGxhcmdlIGZpbGUgc3VwcG9ydCBpbiBBbmRyb2lkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTg5ODAKCjIwMTUtMTItMTEgMjA6NTI6NTcgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IHNvbWUgdHlwb3MKCjIwMTUtMTItMTEgMjA6NDI6MDUgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZW5hYmxlIGxhcmdlIGZpbGUgc3VwcG9ydCBvbiBBbmRyb2lkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTg5ODAKCjIwMTUtMTItMTEgMTk6MTE6MDEgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSAgZG93bmxvYWRidWZmZXI6IGZpeCBzb21lIHR5cG9zCgoyMDE1LTEyLTExIDE4OjU5OjMyIC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkgIGRvd25sb2FkYnVmZmVyOiBlbmFibGUgbGFyZ2UgZmlsZSBzdXBwb3J0IG9uIEFuZHJvaWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODk4MAoKMjAxNS0xMi0xMSAxNDozNjoyOSAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzcGFyc2VmaWxlLmM6CgkgIHNwYXJzZWZpbGU6IGRyb3AgYm9ndXMgcmVmZXJlbmNlIHRvIGZpbGUgZGVzY3JpcHRvcgoJICArZml4IHR5cG8gb24gcmV0dXJuIHZhbHVlIGNvbW1lbnQKCjIwMTUtMTItMTEgMTQ6MDc6MjcgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3BhcnNlZmlsZS5jOgoJICBzcGFyc2VmaWxlOiBlbmFibGUgbGFyZ2UgZmlsZSBzdXBwb3J0IG9uIEFuZHJvaWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODk4MAoKMjAxNS0xMi0xMCAxNDozMjoyNyArMDEwMCAgQXVyw6lsaWVuIFphbmVsbGkgPGF1cmVsaWVuLnphbmVsbGlAcGFycm90LmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IHVucmVmIG1lc3NhZ2UgaW4gX3Bvc3RfbWVzc2FnZSB3aGVuIHRoZXJlIGlzIG5vIGltcGxlbWVudGF0aW9uCgkgICdnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UnIHRha2VzIHRoZSBvd25lcnNoaXAgb2YgdGhlIG1lc3NhZ2UsIHNvIGl0CgkgIHNoYWxsIHVucmVmIGl0IHdoZW4gdGhlcmUgaXMgbm8gcG9zdF9tZXNzYWdlIGltcGxlbWVudGF0aW9uLiBPdGhlcndpc2UKCSAgbWVzc2FnZSBpcyBsZWFrZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTkzMDAKCjIwMTUtMTItMTAgMTE6MzU6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBEb24ndCBob2xkIHN0YXRlIGxvY2sgYWxsIHRoZSB0aW1lIHdoaWxlIHNlbmRpbmcgYW4gZXZlbnQKCSAgVGhpcyBsb2NrIHNlZW1zIHRvIGV4aXN0IG9ubHkgdG8gcHJldmVudCBlbGVtZW50cyBmcm9tIGNoYW5naW5nIHN0YXRlcyB3aGlsZQoJICBldmVudHMgYXJlIGJlaW5nIHByb2Nlc3NlZC4gSG93ZXZlciBldmVudHMgYXJlIGdvaW5nIHRvIGJlIHByb2Nlc3NlZAoJICBub25ldGhlbGVzcyBpbiB0aG9zZSBlbGVtZW50cyBpZiBzZW50IGRpcmVjdGx5IHZpYSBwYWRzLCBzbyBwcm90ZWN0aW9uIG11c3QKCSAgYWxyZWFkeSBiZSBpbXBsZW1lbnRlZCBpbnNpZGUgdGhlIGVsZW1lbnRzIGZvciBldmVudCBoYW5kbGluZyBpZiBpdCBpcyBuZWVkZWQuCgkgIEFzIHN1Y2ggaGF2aW5nIHRoZSBsb2NrIGhlcmUgaXMgbm90IHZlcnkgdXNlZnVsIGFuZCBpcyBhY3R1YWxseSBjYXVzaW5nCgkgIHZhcmlvdXMgZGVhZGxvY2tzIGluIGRpZmZlcmVudCBzaXR1YXRpb25zIGFzIGRlc2NyaWJlZCBpbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0MDQwCgoyMDE1LTEyLTA3IDIwOjI3OjQ1IC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogZW5hYmxlIGxhcmdlIGZpbGUgc3VwcG9ydCBpbiBBbmRyb2lkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTg5ODAKCjIwMTUtMTItMDMgMTU6MDQ6MzIgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IGVuYWJsZSBsYXJnZSBmaWxlIHN1cHBvcnQgb24gQW5kcm9pZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4OTgwCgoyMDE1LTEyLTAzIDE1OjAxOjI3IC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSAgZmlsZXNpbms6IGluZGVudGF0aW9uIGZpeGVzCgoyMDE1LTEyLTA5IDE3OjQwOjAyICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IERvbid0IHVzZSByYW5kb20gc2VnbWVudC5wb3NpdGlvbiBmcm9tIHVwc3RyZWFtCgkgIHNlZ21lbnQucG9zaXRpb24gaXMgbWVhbnQgZm9yIGludGVybmFsIHVzYWdlIG9ubHksIGJ1dCB0aGUgdmFyaW91cwoJICBHU1RfRVZFTlRfU0VHTUVOVCBjcmVhdGlvbmcvcGFyc2luZyBmdW5jdGlvbnMgd29uJ3QgY2xlYXIgdGhhdCBmaWVsZC4KCSAgVXNlIHRoZSBhcHByb3ByaWF0ZSBzZWdtZW50IGJvdW5kYXJ5IGFzIGFuIGluaXRpYWwgdmFsdWUgaW5zdGVhZAoKMjAxNS0xMi0wNyAxNzoyNTowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBQb3N0IGEgTEFURU5DWSBtZXNzYWdlIHdpdGggYXN5bmMtaGFuZGxpbmc9VFJVRSBpZiB0aGUgUExBWUlORyBzdGF0ZSBpcyByZWFjaGVkCgkgIE90aGVyd2lzZSBlYWNoIGJpbiBtaWdodCBoYXZlIGEgZGlmZmVyZW50IGxhdGVuY3kgaW4gdGhlIGVuZCwgY2F1c2luZwoJICBzeW5jaHJvbml6YXRpb24gcHJvYmxlbXMuCgkgIFRoZSBiaW4gd2lsbCBzdGlsbCBmaXJzdCBoYW5kbGUgbGF0ZW5jeSBpbnRlcm5hbGx5IGFzIGJlZm9yZSwgYnV0IGdpdmVzIHRoZQoJICBvdmVyYWxsIHBpcGVsaW5lIHRoZSBvcHBvcnR1bml0eSB0byB1cGRhdGUgdGhlIGxhdGVuY3kgb2YgdGhlIHdob2xlIHBpcGVsaW5lCgkgIGFmdGVyd2FyZHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTkxMjUKCjIwMTUtMTItMDcgMTg6MjA6MzUgKzAyMDAgIEF0aGFuYXNpb3MgT2lrb25vbW91IDxhdGhvaWtAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwb3N0IHRhZyBsaXN0IHdoZW4gYXZnIGJpdHJhdGUgY2hhbmdlcyBhdCBsZWFzdCAyJQoJICBXYXRjaGluZyB2aWRlb3Mgd2l0aCB2YXJpYW50IGJpdHJhdGUgaXMgY29tbW9uIHRvIGhhdmUgZGVsdGEKCSAgbW9yZSB0aGFuIDEwIGticHMsIHJlc3VsdGluZyBpbiB0YWcgbGlzdCBzcGFtLgoJICBJbnN0ZWFkIG9mIHJlbHlpbmcgb24gZml4ZWQgMTAga3BicyBkZWx0YSwgaXQgaXMgYmV0dGVyIHRvCgkgIGNhbGN1bGFsZSB0aGUgZGlmZmVyZW5jZSBpbiBwZXJjZW50YWdlIGFuZCB1cGRhdGUgdGFnIGxpc3QKCSAgb25seSB3aGVuIGJpdHJhdGUgY2hhbmdlcyBtb3JlIHRoYW4gMiUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTkwNTUKCjIwMTUtMTItMDcgMDk6MDg6MDEgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBiMzE5OTA5IHRvIDg2ZTQ2NjMKCjIwMTUtMTItMDcgMTI6NTk6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBDaGVjayBmb3IgYW4gYWN0aXZhdGVkIHBhZCBiZWZvcmUgYWRkaW5nLCBub3QgYSBub24tZmx1c2hpbmcgb25lCgkgIFRoZSBwYWQgY291bGQgYmUgYWN0aXZhdGVkIGJ1dCBmbHVzaGluZyBiZWNhdXNlIG9mIGEgRkxVU0hfU1RBUlQgZXZlbnQuIFRoYXQncwoJICBub3Qgd2hhdCB3ZSdyZSBsb29raW5nIGZvciBoZXJlLCB3ZSB3YW50IHRvIGNoZWNrIGZvciBhY3RpdmF0ZWQgcGFkcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODkyOAoKMjAxNS0xMS0xOSAxNTozMzowNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkgIHRlc3RzOiBmdW5uZWw6IHJlbW92ZSBzdGF0ZSBjaGFuZ2UgZnJvbSBzdHJlc3MgdGVzdHMKCSAgQ2hhbmdpbmcgc3RhdGVzIHVwIGFuZCBkb3duIHdoaWxlIGJ1ZmZlcnMgYXJlIGJlaW5nIHB1c2hlZCBpcyBub3QKCSAgYSB2YWxpZCB1c2UgY2FzZS4gSWYgYSBwYWQgaXMgZGVhY3RpdmF0ZWQgYW5kIHJlYWN0aXZhdGVkIGR1cmluZwoJICBhIGJ1ZmZlciBwdXNoIGl0IGlzIHJhY3kgd2l0aCB0aGUgY2hlY2sgb2YgcHVzaGVkIHN0aWNreSBldmVudHMKCSAgYW5kIHRoZSBhY3R1YWwgY2hhaW5mdW5jdGlvbiBjYWxsLiBBcyBpdCBtaWdodCBjYWxsIHRoZSBjaGFpbgoJICB3aXRob3V0IG5vdGljaW5nIHRoZSBwZWVyIHBhZCBsb3N0IGl0cyBwcmV2aW91cyBzdGlja3kgZXZlbnRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4MzQwCgoyMDE1LTEyLTA0IDEwOjIyOjU2IC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogRml4IHByb2Nlc3MgcmV0dXJuIHZhbHVlIG9uIGVycm9yCgkgIEluIGNhc2Ugb2YgYSBydW4tdGltZSBlcnJvciBtZXNzYWdlLCB0aGUgcHJvY2VzcyByZXR1cm4gdmFsdWUgd2FzIGxlZnQKCSAgdW5zZXQuIFRoaXMgd291bGQgbGVhZCB0byBlcnJvciBub3QgYmVpbmcgY2F1Z2h0IGF0IHNoZWxsIGxldmVsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5MDE5CgoyMDE1LTEyLTA0IDEwOjQ1OjI1IC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgUmV2ZXJ0ICJ0b29sczogZ3N0LWxhdW5jaDogcmV0dXJuIG5vbi0wIGV4aXQgY29kZSBvbiBhc3luYyBlcnJvciIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAyZWU0Y2JhMjQ4NWQ3ZjE2NDZkNDhlNDU1OTQyNmFlZDRiYTk5Yzg1LgoKMjAxNS0xMi0wNCAxNTowOTozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IGdzdC1sYXVuY2g6IHJldHVybiBub24tMCBleGl0IGNvZGUgb24gYXN5bmMgZXJyb3IKCSAgV2hlbiBhbiBlcnJvciBoYXBwZW5zIGluIHBsYXlpbmcgc3RhdGUsIHN0aWxsIHJldHVybiBhCgkgIG5vbi0wIGV4aXQgY29kZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1OTAxOQoKMjAxNS0xMi0wNCAxNDozOToyOSArMDAwMCAgUm9zcyBCdXJ0b24gPHJvc3MuYnVydG9uQGludGVsLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkgIGhlbHBlcnM6IHJlYWxseSBmaXggaW5zdGFsbCByYWNlCgkgIE15IHByZXZpb3VzIGZpeCBmb3IgIzc1ODAyOSB3YXNuJ3QgcXVpdGUgcmlnaHQgYW5kIHNpbXBseSBtYWRlIHRoZSByYWNlIHJhcmVyLgoJICBTb21lIG9mIHRoZSBmaWxlcyBhcmUgaW5zdGFsbGVkIGJ5IGluc3RhbGwtZXhlYyBhbmQgb3RoZXJzIGJ5IGluc3RhbGwtZXhlYywgc28KCSAgdGhlIGhvb2tzIG5lZWQgdG8gYmUgc3BsaXQgdG9vLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4MDI5CgoyMDE1LTEyLTA0IDExOjU2OjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogZml4IGRvY3MKCSAgVGhlIGFsbG9jYXRpb24gcXVlcnkgaGFzIHBhcmFtZXRlcnMgd2l0aCB0aGUgbWV0YSBBUEksIG5vdCBmbGFncy4KCjIwMTUtMTItMDIgMTU6MDI6MjUgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIERyb3AgdXNhZ2Ugb2YgZGVwcmVjYXRlZCBnLWlyLXNjYW5uZXIgLS1zdHJpcC1wcmVmaXggZmxhZwoKMjAxNS0xMi0wMiAxNjoyODoyMyArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBGaXggc2V0L2dldCBwcm9wZXJ0eQoJICBCbGFtZSBpdCBvbiB0aGUgcmViYXNpbmcgOikKCjIwMTUtMTEtMTIgMTc6MTU6MzcgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogSW1wbGVtZW50IEdzdFBhZEV2ZW50RnVsbEZ1bmN0aW9uCgkgIEFQSTogR3N0UGFkRXZlbnRGdWxsRnVuY3Rpb24KCSAgUmV0dXJucyBhIEdzdEZsb3dSZXR1cm4sIGFsbG93cyBhc3luY2hyb25vdXMgZWxlbWVudHMgdG8gcHJvcGVybHkKCSAgcHJvcGFnYXRlIGZsb3cgcmV0dXJucwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3ODIxCgoyMDE1LTExLTMwIDE3OjA5OjQzICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBVc2Ugc2lnbmVkIGNsb2NrIHZhbHVlcyBmb3IgcnVubmluZyB0aW1lIGNhbGN1bGF0aW9uCgkgIFRoaXMgaW1wcm92ZXMgdGhlIGFjY3VyYWN5IG9mIHF1ZXVlIGxldmVscyBhbmQgd2hlbiB0byBwdXNoIGJ1ZmZlcnMKCSAgZm9yIGJ1ZmZlcnMgZmFsbGluZyBvdXRzaWRlIG9mIHRoZSBzZWdtZW50CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTcxOTMKCjIwMTUtMTEtMjcgMDk6NDU6MjkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IEFkZCBhbiBleHRyYSBjYWNoZSB0aW1lIGZvciB1bmxpbmtlZCBzdHJlYW1zCgkgIFdoZW4gc3luY2hyb25pemluZyB0aGUgb3V0cHV0IGJ5IHRpbWUsIHRoZXJlIGFyZSBzb21lIHVzZS1jYXNlcyAobGlrZQoJICBhbGxvd2luZyBnYXBsZXNzIHBsYXliYWNrIGRvd25zdHJlYW0pIHdoZXJlIHdlIHdhbnQgdGhlIHVubGlua2VkIHN0cmVhbXMKCSAgdG8gc3RheSBzbGlnaHRseSBiZWhpbmQgdGhlIGxpbmtlZCBzdHJlYW1zLgoJICBUaGUgInVubGlua2VkLWNhY2hlLXRpbWUiIHByb3BlcnR5IGFsbG93cyB0aGUgdXNlciB0byBzcGVjaWZ5IGJ5IGhvdwoJICBtdWNoIHRpbWUgdGhlIHVubGlua2VkIHN0cmVhbXMgc2hvdWxkIHdhaXQgYmVmb3JlIHB1c2hpbmcgYWdhaW4uCgoyMDE1LTEwLTI2IDA4OjA2OjAxICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBPcHRpbWl6ZSBtdWx0aXF1ZXVlIHNpemVzIGJhc2VkIG9uIGludGVybGVhdmUKCSAgTXVsdGlxdWV1ZSBzaG91bGQgb25seSBiZSB1c2VkIHRvIGNvcGUgd2l0aDoKCSAgKiBkZWNvdXBsaW5nIHVwc3RyZWFtIGFuZCBkb3dzdHJlYW0gdGhyZWFkaW5nIChpLmUuIGhhdmluZyBzZXBhcmF0ZSB0aHJlYWRzCgkgIGZvciBlbGVtZW50YXJ5IHN0cmVhbXMpLgoJICAqIEVuc3VyaW5nIGluZGl2aWR1YWwgcXVldWVzIGhhdmUgZW5vdWdoIHNwYWNlIHRvIGNvcGUgd2l0aCB1cHN0cmVhbSBpbnRlcmxlYXZlCgkgIChkaXN0YW5jZSBpbiBzdHJlYW0gdGltZSBiZXR3ZWVuIGNvLWxvY2F0ZWQgc2FtcGxlcykuIFRoaXMgaXMgdG8gZ3VhcmFudGVlCgkgIHRoYXQgd2UgaGF2ZSBlbm91Z2ggcm9vbSBpbiBlYWNoIGluZGl2aWR1YWwgcXVldWVzIHRvIHByb3ZpZGUgbmV3IGRhdGEgaW4KCSAgZWFjaCwgd2l0aG91dCBiZWluZyBibG9ja2VkLgoJICAqIExpbWl0IHRoZSBxdWV1ZSBzaXplcyB0byB0aGF0IGludGVybGVhdmUgZGlzdGFuY2UgKGFuZCBhbiBleHRyYSBtaW5pbWFsCgkgIGJ1ZmZlcmluZyBzaXplKS4gVGhpcyBpcyB0byBlbnN1cmUgd2UgZG9uJ3QgY29uc3VtZSB0b28gbXVjaCBtZW1vcnkuCgkgIEJhc2VkIG9uIHRoYXQsIG11bHRpcXVldWUgbm93IGNvbnRpbnVvdXNseSBjYWxjdWxhdGVzIHRoZSBpbnB1dCBpbnRlcmxlYXZlCgkgIChwZXIgaW5jb21pbmcgc3RyZWFtaW5nIHRocmVhZCkuIEJhc2VkIG9uIHRoYXQsIGl0IGNhbGN1bGF0ZXMgYSB0YXJnZXQKCSAgaW50ZXJsZWF2ZSAoY3VycmVudGx5IDEuNSB4IHJlYWxfaW50ZXJsZWF2ZSArIDI1MG1zIHBhZGRpbmcpLgoJICBJZiB0aGUgdGFyZ2V0IGludGVybGVhdmUgaXMgZ3JlYXRlciB0aGFuIHRoZSBjdXJyZW50IG1heF9zaXplLnRpbWUsIGl0IHdpbGwKCSAgdXBkYXRlIGl0IGFjY29yZGluZ2x5ICh0byBhbGxvdyBlbm91Z2ggbWFyZ2luIHRvIG5vdCBibG9jaykuCgkgIElmIHRoZSB0YXJnZXQgaW50ZXJsZWF2ZSBnb2VzIGRvd24gYnkgbW9yZSB0aGFuIDUwJSwgd2UgcmUtYWRqdXN0IGl0IG9uY2UKCSAgd2Uga25vdyB3ZSBoYXZlIGdvbmUgcGFzdCBhIHNhZmUgZGlzdGFuY2UgKDIgeCBjdXJyZW50IG1heF9zaXplLnRpbWUpLgoJICBUaGlzIG1vZGUgY2FuIG9ubHkgYmUgdXNlZCBmb3IgaW5jb21pbmcgc3RyZWFtcyB0aGF0IGFyZSBndWFyYW50ZWVkIHRvIGJlCgkgIHByb3Blcmx5IHRpbWVzdGFtcGVkLgoJICBGdXJ0aGVybW9yZSwgd2UgaWdub3JlIHNwYXJzZSBzdHJlYW1zIHdoZW4gY2FsY3VsYXRpbmcgaW50ZXJsZWF2ZSBhbmQgbWF4aW11bQoJICBzaXplIG9mIHF1ZXVlcy4KCSAgRm9yIHRoZSBzaW1wbGVzdCBvZiB1c2UtY2FzZXMgKHNpbmdsZSBzdHJlYW0pLCBtdWx0aXF1ZXVlIGFjdHMgYXMgYSBzaW5nbGUKCSAgcXVldWUgd2l0aCBhIHRpbWUgbGltaXQgb2YgMjUwbXMuCgkgIElmIHRoZXJlIGFyZSBtdWx0aXBsZSBpbnB1dHMsIGJ1dCBlYWNoIGNvbWUgZnJvbSBhIGRpZmZlcmVudCBzdHJlYW1pbmcgdGhyZWFkLAoJICB0aGUgbWF4aW11bSB0aW1lIGxpbWl0IHdpbGwgYWxzbyBlbmQgdXAgYmVpbmcgMjUwbXMuCgkgIE9uIHJlZ3VsYXIgZmlsZXMgKG1vcmUgdGhhbiBvbmUgaW5wdXQgc3RyZWFtIGZyb20gdGhlIHNhbWUgdXBzdHJlYW0gc3RyZWFtaW5nCgkgIHRocmVhZCksIGl0IGNhbiByZWR1Y2UgdGhlIHRvdGFsIG1lbW9yeSB1c2VkIGFzIG11Y2ggYXMgMTB4LCBlbmRpbmcgdXAgd2l0aAoJICBtYXhfc2l6ZS50aW1lIGFyb3VuZCA1MDBtcy4KCSAgRHVlIHRvIHRoZSBhZGFwdGl2ZSBuYXR1cmUsIGl0IGNhbiBhbHNvIGNvcGUgd2l0aCBjaGFuZ2luZyBpbnRlcmxlYXZlICh3aGljaAoJICBjYW4gaGFwcGVuIGNvbW1vbmx5IG9uIHNvbWUgZmlsZXMgYXQgc3RhcnR1cC9wcmUtcm9sbCB0aW1lKQoKMjAxMy0wMS0wOCAyMToxNjo0MiArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogdXNlIG5ldyBzdHJlYW0tc3RhcnQgZXZlbnQgc3BhcnNlIGZsYWcgdG8gYXZvaWQgb3ZlcnJlYWRpbmcgc3VidGl0bGVzCgkgIFRoaXMgd2lsbCBtZWFuIGEgbXVjaCBsb3dlciBkZWxheSBiZWZvcmUgYSBzdWJ0aXRsZXMgdHJhY2sgY2hhbmdlcyB0YWtlCgkgIGVmZmVjdC4gQWxzbyBhdm9pZHMgZXhjZXNzaXZlIG1lbW9yeSB1c2FnZSBpbiBtYW55IGNhc2VzLgoJICBUaGlzIHdpbGwgYWxzbyBjb25zaWRlciBzcGFyc2Ugc3RyZWFtcyBhcyAoaW5kaXZpZHVhbGx5KSBuZXZlciBmdWxsLCBzbwoJICBhcyB0byBhdm9pZCBibG9ja2luZyBhbGwgcGxheWJhY2sgZHVlIHRvIG9uZSBzcGFyc2Ugc3RyZWFtLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjAwNjQ4CgoyMDE1LTEwLTMwIDEwOjIyOjIwICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEZpeCBoaWdoX3RpbWUgY29tcHV0YXRpb24KCSAgKiBBdm9pZCB0aGUgY29tcHV0YXRpb24gY29tcGxldGVseSBpZiB3ZSBrbm93IHdlIGRvbid0IG5lZWQgaXQgKG5vdCBpbgoJICBzeW5jIHRpbWUgbW9kZSkKCSAgKiBNYWtlIHN1cmUgd2UgZG9uJ3Qgb3ZlcnJpZGUgaGlnaGVzdCB0aW1lIHdpdGggR1NUX0NMT0NLX1RJTUVfTk9ORSBvbgoJICB1bmxpbmtlZCBwYWRzCgkgICogRW5zdXJlIHRoZSBoaWdoX3RpbWUgZ2V0cyBwcm9wZXJseSB1cGRhdGVkIGlmIGFsbCBwYWRzIGFyZSBub3QgbGlua2VkCgkgICogRml4IHRoZSBjb21wYXJpc2lvbiBpbiB0aGUgbG9vcCB3aGV0aGVyIHRoZSB0YXJnZXQgaGlnaCB0aW1lIGlzIHRoZSBzYW1lCgkgIGFzIHRoZSBjdXJyZW50IHRpbWUKCSAgKiBTcGxpdCB3YWtlX3VwX25leHRfbm9uX2xpbmtlZCBtZXRob2QgdG8gYXZvaWQgdXNlbGVzcyBjYWxjdWxhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3MzUzCgoyMDE1LTExLTA2IDAzOjAyOjQyICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRG9uJ3QgcmVwb3J0IDAlIHVubGVzcyBlbXB0eQoJICBXaGVuIHByZXBhcmluZyBhIGJ1ZmZlcmluZyBtZXNzYWdlLCBkb24ndCByZXBvcnQgMCUgaWYgdGhlcmUKCSAgaXMgYW55IGJ5dGVzIGxlZnQgaW4gdGhlIHF1ZXVlIGF0IGFsbC4gV2Ugc3RpbGwgaGF2ZSBzb21ldGhpbmcKCSAgdG8gcHVzaCwgc28gZG9uJ3QgdGVsbCB0aGUgYXBwIHRvIHN0YXJ0IGJ1ZmZlcmluZyAtIG1heWJlCgkgIHdlJ2xsIGdldCBtb3JlIGRhdGEgYmVmb3JlIGFjdHVhbGx5IHJ1bm5pbmcgZHJ5LgoKMjAxNS0xMS0zMCAxNzoxMTozMyArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjbG9jay5oOgoJICBnc3RjbG9jazogRml4IEdTVF9TVElNRV9BUkdTCgkgIEl0IHdhc24ndCBwcm9wZXJseSBoYW5kbGluZyBHU1RfQ0xPQ0tfU1RJTUVfTk9ORSBhbmQgYWx3YXlzIHVzZSB0aGUKCSAgc2lnbiBtYXJrZXIgKCsvLSkgdG8gbWFrZSBpdCBlYXNpZXIgdG8gaWRlbnRpZnkgc2lnbmVkIHZhbHVlcyBpbgoJICBsb2dzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTg4NzAKCjIwMTUtMTEtMzAgMjM6MDg6NTAgKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xzb3VyY2U6IEFubm90YXRlIGdldF92YWx1ZVtfYXJyYXldIGFzIChtZXRob2QpCgkgIEFzIHRoZSBuYW1lcyBjbGFzaCB3aXRoIGdzdF9vYmplY3RfZ2V0X3ZhbHVlW19hcnJheV0KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Njk1MAoKMjAxNS0xMS0xMyAxNzozMjo1NyAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIHBsdWdpbjogQWRkIHByZWZpeCBzdXBwb3J0IHRvIGRlcGVuZGVuY2llcwoJICBUaGlzIGFkZHMgYSBuZXcgZmxhZ3MsIEdTVF9QTFVHSU5fREVQRU5ERU5DWV9GTEFHX0ZJTEVfTkFNRV9JU19QUkVGSVgsCgkgIHdoaWNoIGFsbG93IHVzaW5nIHRoZSBuYW1lcyBhcyBwcmVmaXggZm9yIHBsdWdpbiBkZXBlbmNpZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTgwODMKCjIwMTUtMTEtMTMgMTY6MzI6MzEgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiBBbGxvdyBkZXZpY2Ugbm9kZXMgYXMgZGVwZW5kZW5jeQoJICBUaGlzIGlzIHVzZWZ1bCBmb3IgZmVhdHVyZSB0aGF0IGFyZSBwcm9kdWNlZCBhZnRlciBwcm9iaW5nIGEgc3BlY2lmaWMKCSAgbm9kZS4gWW91IHdhbnQgdG8gcmVsb2FkIHRoaXMgcGx1Z2luIGlmIHRoZSBzcGVjaWZpYyBub2RlKHMpIGhhdmUgYmVlbgoJICByZW1vdmVkLCBhZGRlZCwgb3IgcmVsb2FkZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTgwODAKCjIwMTUtMTEtMTMgMTY6MjA6NDIgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiBEb24ndCBkbyBsb3NzeSBzaGlmdCBvbiBoYXNoCgkgIEluIHBsdWdpbiBpcyByZXNwb25zaWJsZSBmb3IgY2FsY3VsYXRpbmcgYSBoYXNoIG9mIHRoZSBkZXBlbmRlbmNpZXMKCSAgaW4gb3JkZXIgdG8gZGV0ZXJtaW5lIGlmIHRoZSBjYWNoZSBzaG91bGQgYmUgaW52YWxpZGF0ZWQgb3Igbm90LgoJICBDdXJyZW50bHksIHRoZSBoYXNoIGNvbWJpbmluZyBtZXRob2QgcmVtb3ZlcyBhIGJpdCBvZiB0aGUgb3JpZ2luYWwKCSAgaGF2ZSBiZWZvcmUgY29tYmluaW5nIHdpdGggYW4gYWRkaXRpb24uIEFzIHdlIHVzZSAzMmJpdHMgZm9yIG91ciBoYXNoCgkgIGFuZCBzaGlmdCAxIGJpdCBmb3IgZWFjaCBmaWxlIGFuZCBkaXJlY3RvcnksIHRoYXQgcmVzdWx0aW5nIGhhc2ggb25seQoJICBhY2NvdW50IGZvciB0aGUgbGFzdCAzMiBmaWxlcy4gQW5kIGlzIG1vcmUgYWZmZWN0ZWQgYnkgdGhlIGxhc3QgZmlsZS4KCSAgUm90YXRpbmcgdGVjaG5pcXVlIChzaGlmdGluZywgYW5kIGFkZGluZyBiYWNrIHRoZSBlbmRpbmcgYml0KSwgY2FuIGJlCgkgIHVzZSB0byBtYWtlIHRoZSBhZGRpdGlvbiBub24tY29tbXV0YXRpdmUuIEluIGEgd2F5IHRoYXQgZGlmZmVyZW50IG9yZGVyCgkgIGdpdmVzIGRpZmZlcmVudCBoYXNoZXMuIEluIHRoaXMgY2FzZSwgSSBkb24ndCBwcmVzZXJ2ZSB0aGlzIGJlaGF2aW91cgoJICBiZWNhdXNlIHRoZSBvcmRlciBpbiB3aGljaCB0aGUgZmlsZXMgYXJlIHByb3ZpZGVkIGJ5IHRoZSBPUyBpcwoJICBpcnJlbGV2YW50LgoJICBJbiBtb3N0IGNhc2VzLCB0aGUgWE9SIG9wZXJhdGlvbiBpcyB1c2VkIHRvIGNvbWJpbmUgaGFzaGVzLiBJbiB0aGlzCgkgIGNvZGUgd2UgdXNlIHRoZSBhZGRpdGlvbi4gSSBkZWNpZGVkIHRvIHByZXNlcnZlIHRoZSBhZGRpdGlvbiBiZWNhdXNlCgkgIHdlIG1ha2UgdXNlIG9mIG5vbi1yYW5kb20gaGFzaCAoKGd1aW50KSAtMSkgaW4gdGhlIGFsZ29yaXRobSBmb3IKCSAgbWF0Y2hpbmcgZmlsZXMgdGhhdCBhcmUgbm90IHJlYWxseSBwYXJ0IG9mIHRoZSBoYXNoIChzeW1saW5rcywgc3BlY2lhbAoJICBmaWxlcykuIERvaW5nIHN1Y2Nlc3NpdmUgWE9SIG9uIHRoaXMgdmFsdWUsIHdpbGwgc2ltcGx5IHN3aXRjaCBmcm9tCgkgIGZ1bGwgb25lcywgdG8gZnVsbCB6ZXJvLiBUaGUgWE9SIHVzZWQgd2l0aCB3aGl0ZWxpc3QgaGFzIGJlZW4gcHJlc2VydmVkCgkgIGFzIGl0J3MgYmFzZWQgb24gYSBmYWlybHkgcmFuZG9taXplZCBoYXNoIChnX3N0cl9oYXNoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODA3OAoKMjAxNS0xMS0yMyAyMTo0MDozNCArMDAwMCAgTHVrYXN6IEZvcnluc2tpIDxsdWthc3ouZm9yeW5za2lAeW91dmlldy5jb20+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiBmaXggY29tcGlsZXIgd2FybmluZyB3aXRoIC1XcGVkYW50aWMgYW5kIGdjYyA1CgkgIEdzdHJlYW1lciBjb21waWxlZCB3aXRoIGdjYyA1LjIgYW5kIC1XcGVkYW50aWMgcHJvZHVjZXMgdGhlCgkgIGZvbGxvd2luZyB3YXJuaW5nOgoJICAnSVNPIEMgZG9lcyBub3Qgc3VwcG9ydCAnX19GVU5DVElPTl9fJyBwcmVkZWZpbmVkIGlkZW50aWZpZXIgWy1XcGVkYW50aWNdCgkgIGNvbnN0IGNoYXIgKnMgPSBfX0ZVTkNUSU9OX187JwoJICBTaW5jZSBnY2MgNSBlbmFibGVzIEM5OSBieSBkZWZhdWx0LCB1c2UgX19mdW5jX18gaWYgaXQncyBhdmFpbGFibGUKCSAgaW5zdGVhZCBvZiB0aGUgbm9uLXN0YW5kYXJkIF9fRlVOQ1RJT05fXyAoYXMgc3VnZ2VzdGVkIGluIFsyXSkuCgkgIFsxXTogaHR0cHM6Ly9nY2MuZ251Lm9yZy9nY2MtNS9jaGFuZ2VzLmh0bWwKCSAgWzJdOiBodHRwczovL2djYy5nbnUub3JnL2djYy01L3BvcnRpbmdfdG8uaHRtbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4NTQxCgoyMDE1LTExLTIwIDE5OjQ1OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSAgY29udHJvbGxlcjogZml4IGFubm90YXRpb24gdG8gbWFrZSBnLWlyLXNjYW5uZXIgaGFwcHkKCSAgZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDo1OTogV2FybmluZzogR3N0Q29udHJvbGxlcjogbWlzc2luZyAiOiIgYXQgY29sdW1uIDUxOgoJICAqIEBHU1RfSU5URVJQT0xBVElPTl9NT0RFX0NVQklDX01PTk86IChTaW5jZSAxLjgpIG1vbm90b25pYyBjdWJpYyBpbnRlcnBvbGF0aW9uLCB3aWxsIG5vdAoJICBnc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOjU5OiBXYXJuaW5nOiBHc3RDb250cm9sbGVyOiB1bmtub3duIGFubm90YXRpb246IHNpbmNlCgoyMDE0LTA5LTI5IDE0OjAzOjEzICswNTMwICBSYXZpIEtpcmFuIEsgTiA8cmF2aS5raXJhbkBzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ3M6IGFkZCBHU1RfVEFHX1BSSVZBVEVfREFUQQoJICBDYW4gYmUgdXNlZCB0byByZXByZXNlbnQgcHJpdmF0ZSBkYXRhIHRoYXQgbWF5IGJlCgkgIGNvbnRhaW5lZCBpbiB0YWdzLCBzdWNoIGFzIElEM3YyIFBSSVYgZnJhbWVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwOTI2CgoyMDE1LTExLTE5IDE3OjI0OjUzICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzYmdAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2RhdGF1cmlzcmMuYzoKCSAgZG9jczogdXBkYXRlIGdzdC1sYXVuY2gtMC4xMCBsaW5lcwoJICBVcGRhdGUgcmVmZXJlbmNlcyB0byBnc3QtbGF1bmNoLTAuMTAgdG8gZ3N0LWxhdW5jaC0xLjAKCjIwMTUtMTEtMTkgMDA6NTE6NDQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIFJldmVydCAiYmFzZXBhcnNlOiBkbyBub3Qgb3ZlcndyaXRlIGhlYWRlciBidWZmZXIgdGltZXN0YW1wcyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAyYzQ3NWEwMzU1NDNlZmMwMjAyZWNkYzUyMDcwMjk1YTQyMWVkNGI0LgoJICBUaGlzIGNhdXNlcyBpc3N1ZXMgd2l0aCBoMjY0cGFyc2UuIEl0IGJyZWFrcyB0aW1lc3RhbXBzIGFzCgkgIHRoZXJlIGFyZSBoZWFkZXJzIGluIHRoZSBtaWRkbGUgb2YgdGhlIHN0cmVhbSBhbmQgdGhpcyBwYXRjaAoJICBtYWtlcyB0aGUgdGltZXN0YW1wcyBmb3IgdGhvc2UgZGlmZmVyIGZyb20gdGhlIG9uZXMgdGhhdAoJICBhcmUgYWRqdXN0ZWQsIGNyZWF0aW5nIGEgZGlzY29udGludWl0eSBhbmQgbGVhZGluZyB0byBzeW5jCgkgIGlzc3Vlcy4KCjIwMTUtMTEtMTcgMTg6NDc6NDggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIFJldmVydCAiYmFzZXBhcnNlOiBzaW1wbGlmeSBjb2RlIGEgYml0IgoJICBUaGlzIHJldmVydHMgY29tbWl0IDM5ODRmNzE1OWE3MmMyZWViZTAxOTA1ZWU1MzcxNmUzYjJhYmNiMzAuCgoyMDE1LTExLTE4IDExOjQ2OjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBkb24ndCBwcmludCBjcml0aWNhbHMgd2hlbiByZWNlaXZpbmcgY3VzdG9tIGV2ZW50cyBpbiByaW5nIGJ1ZmZlciBtb2RlCgkgIERvd25ncmFkZSBmcm9tIGdfd2FybmluZyB0byBHU1RfV0FSTklORyBsb2cgbWVzc2FnZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODI3NgoKMjAxNS0xMS0xOCAwOToyMToyMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXB0cC1oZWxwZXIuYzoKCSAgcHRwLWhlbHBlcjogRGlzYWJsZSBtdWx0aWNhc3QgbG9vcGJhY2sKCSAgV2UncmUgbm90IHJlYWxseSBpbnRlcmVzdGVkIGluIG91ciBvd24gcGFja2V0cyBhbmQgaWdub3JlIHRoZW0gYW55d2F5LgoKMjAxNS0xMS0xNyAwOToxNzo1OCArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IEZpeCBzdHJpbmcgbWVtb3J5IGxlYWsKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODIwNwoKMjAxNS0xMS0xNiAwODoyMjoxNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBzaW1wbGlmeSBjb2RlIGEgYml0CgkgIEF2b2lkIHJlcGVhdGVkIGNoZWNrcyBmb3IgdGVzdGluZyBpZiBhIGJ1ZmZlciBpcyBhIGhlYWRlcgoKMjAxNS0xMS0xMyAyMDo0NDo1NyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogaGFuZGxlIGJ1ZmZlciB3aXRoIGR0cy1vbmx5IHdoZW4gbWFwcGluZyB0byBydW5uaW5nIHRpbWUKCSAgT3RoZXJ3aXNlIHRoZSBidWZmZXIgd2FzIGxlZnQgd2l0aCB0aGUgb3JpZ2luYWwgdmFsdWVzIGFuZCBsYXRlciB3b3VsZAoJICBiZSBjb21wYXJlZCB3aXRoIG90aGVyIGJ1ZmZlcnMgdGhhdCB3ZXJlIGNvbnZlcnRlZCB0byBydW5uaW5uIHRpbWUsCgkgIGxlYWRpbmcgdG8gYmFkIGludGVybGVhdmluZyBvZiBtdWx0aXBsZSBzdHJlYW1zLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3OTYxCgoyMDE1LTExLTEzIDE2OjMxOjA2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGRvIG5vdCBvdmVyd3JpdGUgaGVhZGVyIGJ1ZmZlciB0aW1lc3RhbXBzCgkgIGJhc2VwYXJzZSB0cmllcyB0byBwcmVzZXJ2ZSB0aW1lc3RhbXBzIGZyb20gdXBzdHJlYW0gaWYKCSAgaXQgaXMgcnVubmluZyBvbiBhIHRpbWUgc2VnbWVudCBhbmQgd3JpdGUgdGhhdCB0bwoJICBvdXRwdXQgYnVmZmVycy4gSXQgYXNzdW1lcyB0aGUgZmlyc3QgRFRTIGlzIGdvaW5nIHRvIGJlCgkgIHNlZ21lbnQuc3RhcnQgYW5kIHNldHMgdGhhdCB0byB0aGUgZmlyc3QgYnVmZmVycy4gSW4gY2FzZQoJICB0aGUgYnVmZmVyIGlzIGEgaGVhZGVyIGJ1ZmZlciwgaXQgaGFkIG5vIHRpbWVzdGFtcHMgYW5kCgkgIHdpbGwgaGF2ZSBvbmx5IHRoZSBEVFMgc2V0IGR1ZSB0byB0aGlzIG1lY2hhbmlzbS4KCSAgVGhpcyBwYXRjaCBwcmV2ZW50cyB0aGlzIGJ5IHNraXBwaW5nIHRoaXMgYmVoYXZpb3IgZm9yCgkgIGhlYWRlciBidWZmZXJzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3OTYxCgoyMDE1LTA2LTE4IDEzOjU2OjUzIC0wNzAwICBBbGVpeCBDb25jaGlsbG8gRmxhcXXDqSA8YWxlaXhAb2Jsb25nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICBpZGVudGl0eTogYWRkIGRyb3AtYnVmZmVyLWZsYWdzIHByb3BlcnR5CgkgIE5ldyBwcm9wZXJ0eSBkcm9wLWJ1ZmZlci1mbGFncyB0aGF0IHdpbGwgZGlzY2FyZCBidWZmZXJzIHRoYXQgaGF2ZSB0aGUKCSAgZ2l2ZW4gZmxhZ3Mgc2V0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxMTgyCgoyMDE1LTExLTEyIDE5OjQ2OjQ0ICswMDAwICBSb3NzIEJ1cnRvbiA8cm9zcy5idXJ0b25AaW50ZWwuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSAgaGVscGVyczogZml4IGluc3RhbGwgcmFjZQoJICBUaGUgaW5zdGFsbCBob29rIG5lZWRzIHRvIGJlIGEgaW5zdGFsbC1kYXRhLWhvb2sgbm90IGFuIGluc3RhbGwtZXhlYy1ob29rIGFzIHRoZQoJICBoZWxwZXJzIGFyZSBpbnN0YWxsZWQgaW50byBoZWxwZXJkaXIgd2hpY2ggaXMgY29uc2lkZXJlZCBkYXRhIChvbmx5IHBhdGgKCSAgdmFyaWFibGVzIHdpdGggImV4ZWMiIGluIGFyZSBjb25zaWRlcmVkIGV4ZWN1dGFibGVzKS4KCSAgVGhlIGV4cGxpY2l0IGRlcGVuZGVuY3kgb24gaW5zdGFsbC1oZWxwZXJzUFJPR1JBTVMgd2FzIGFuIGF0dGVtcHQgYXQgc29sdmluZwoJICB0aGlzLCBidXQgdGhpcyBjYXVzZXMgb2NjYXNpb25hbCByYWNlcyB3aGVyZSBpbnN0YWxsLWhlbHBlcnNQUk9HUkFNUyBjYW4gcnVuCgkgIHR3aWNlIGluIHBhcmFsbGVsIChvbmNlIHZpYSBpbnN0YWxsLWFsbCwgb25jZSB2aWEgdGhlIGhvb2sncyBkZXBlbmRlbmN5KS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODAyOQoKMjAxNS0xMS0xMiAxNjoxNDoxOCArMDEwMCAgSGVpbnJpY2ggRmluayA8aGZpbmtAdG9vbHNvbmFpci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IEFkZCB0ZXN0IGZvciBnc3RfY2xvY2tfZ2V0X3Jlc29sdXRpb24KCSAgSW4gYSBzZXJpZXMgb2YgdGltZSBtZWFzdXJlbWVudHMsIHRoZSBkaWZmIGJldHdlZW4gbm93IGFuZCBwcmV2aW91cwoJICB0aW1lc3RhbXBzIGlzIGVpdGhlciAwIG9yIGF0IGxlYXN0IGFzIGxvbmcgYXMgZ2V0X3Jlc29sdXRpb24gcmV0dXJuZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTgwMTIKCjIwMTUtMTEtMTIgMTE6MjY6NTYgKzAxMDAgIEhlaW5yaWNoIEZpbmsgPGhmaW5rQHRvb2xzb25haXIuY29tPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBVc2UgbWFjaF90aW1lIG9uIEFwcGxlIHBsYXRmb3JtcwoJICBPbiBpT1MvT1NYIGdfZ2V0X2N1cnJlbnRfdGltZSB3YXMgdXNlZCBieSBkZWZhdWx0LiBIb3dldmVyLCBtYWNoX3RpbWUgaXMKCSAgdGhlIHByZWZlcnJlZCBoaWdoLXJlc29sdXRpb24gbW9ub3RvbmljIGNsb2NrIHRvIGJlIHVzZWQgb24gQXBwbGUKCSAgcGxhdGZvcm1zLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4MDEyCgoyMDE1LTExLTExIDExOjExOjIzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkgIHRyYWNlcnM6IGxvZzogYWRkIG1pc3NpbmcgaG9va3MKCSAgTG9nIGFsbCBwb3NzaWJsZSBob29rcwoKMjAxNS0xMC0yOSAwODo0MDozMiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJICB0cmFjZXI6IGFkZCBlbGVtZW50LWNoYW5nZS1zdGF0ZS1wcmUvcG9zdCBob29rCgkgIEhlbHBzIGNhdGNoaW5nIHdoZW4gYSBzdGF0ZSBjaGFuZ2UgaXMgc3RhcnRpbmcgYW5kIGVuZGluZy4KCSAgSXQgaXMgYWxzbyBwb3NzaWJsZSB0byB0cmFjayB0aGUgZW5kIG9mIHN0YXRlIGNoYW5nZXMgYnkgY2hlY2tpbmcgdGhlCgkgIGFzeW5jLWRvbmUgb3Igc3RhdGUtY2hhbmdlIG1lc3NhZ2VzLgoJICBUaGlzIGlzIHBhcnRpY3VsYXJseSBpbXBvcnRhbnQgZm9yIGVsZW1lbnRzIHRoYXQgZG8gYXN5bmMgc3RhdGUgY2hhbmdlcy4KCjIwMTUtMTEtMTEgMTQ6MzI6NDQgKzAxMDAgIE1pZ3VlbCBQYXLDrXMgRMOtYXogPG1wYXJpc2RpYXpAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHRlc3QgZm9yIGNoZWNraW5nIHRoZSBvcmRlciBvZiB0aGUgcHJvYmUgY2FsbHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NzE5NwoKMjAxNS0xMS0xMCAxNDo0MTozNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSAgY29udGV4dDogZml4IHNvbWUgY29weSBhbmQgcGFzdGUgbGVmdG92ZXIgaW4gZG9jcwoKMjAxNS0xMS0xMCAxNDozNzoyNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSAgY29udGV4dDogYWRkIHNvbWUgbW9yZSBkb2N1bWVudGF0aW9uCgkgIEFkZCBhIHNob3J0IHBhcmFncmFwaCBvbiB3aGF0IG1lYW5zIGZvciBhIGNvbnRleHQgdG8gYmUgcGVyc2lzdGVudAoKMjAxNS0xMS0wOSAxODowMjowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsczogdXNlICdzdGF0aWMgaW5saW5lJyBpbnN0ZWFkIG9mICdpbmxpbmUgc3RhdGljJyBmb3IgZ3RrLWRvYwoJICBndGstZG9jIGRvZXNuJ3Qgc2VlbSB0byByZWNvZ25pc2UgdGhlIGZvcm1lciB2YXJpYW50LgoKMjAxNS0xMS0wOSAxNzo1OToxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RzYW1wbGUuaDoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogZ3N0L2dzdHVyaS5oOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGRvY3M6IHJlbW92ZSBkdW1teSBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgd2l0aCBHX0lOTElORV9GVU5DVElPTiBmb3IgZ3RrLWRvYwoJICBndGstZG9jIGNhbiBoYW5kbGUgc3RhdGljIGlubGluZSBmdW5jdGlvbnMganVzdCBmaW5lIHRoZXNlIGRheXMsCgkgIHRoZXJlJ3Mgbm8gbmVlZCBmb3IgdGhpcyBzdHVmZiBhbnkgbW9yZS4KCjIwMTUtMDItMjMgMTM6MTY6MTkgKzEwMDAgIER1bmNhbiBQYWxtZXIgPGRwYWxtZXJAZGlnaXNvZnQudHY+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IEFkZCB0aGUgYXZnLWluLXJhdGUgcHJvcGVydHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzM5NTkKCjIwMTUtMTEtMDQgMTI6MDI6NTEgKzAxMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxuQGlnYWxpYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGQgb3ZlcnJ1biBzaWduYWwKCSAgTm90aWZpZXMgdGhhdCB0aGUgcXVldWUyIGlzIGZ1bGwsIHNhbWUgYXMgcXVldWUgZG9lcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzOTU5CgoyMDE1LTA5LTI5IDIxOjE0OjE5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogdGVzdHMgZm9yIGFjY2VwdC1jYXBzIGhhbmRsaW5nIHdpdGggcHJveHkgcGFkcwoJICBBZGRzIDMgbmV3IHRlc3RzIGZvciB0ZXN0aW5nIGFjY2VwdC1jYXBzIGJlaGF2aW9yIHdpdGgKCSAgcHJveHktY2FwcyBwYWRzLgoJICAxKSBBIHNjZW5hcmlvIHdoZXJlIHRoZXJlIGlzIG5vIHByb3h5LiBUaGUgY2FwcyBzaG91bGQgYmUgY29tcGFyZWQgdG8gdGhlCgkgIHRlbXBsYXRlIGNhcHMgb2YgdGhlIHBhZAoJICAyKSBBIHNjZW5hcmlvIHdoZXJlIHRoZXJlIGlzIGEgY29tcGF0aWJsZSBwYWQuIFRoZSBjYXBzIHNob3VsZCBiZSBjb21wYXJlZAoJICB0byB0aGUgcHJveGllZCBwYWQgY2FwcyAoYW5kIGFsc28gd2l0aCB0aGUgdGVtcGxhdGUpCgkgIDMpIEEgc2NlbmFyaW8gd2hlcmUgdGhlcmUgaXMgYW4gaW5jb21wYXRpYmxlIHByb3h5IHBhZC4gTm8gY2FwcyBzaG91bGQgYmUKCSAgcG9zc2libGUgYXQgYWxsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0MTEyCgoyMDE1LTExLTA1IDE2OjE1OjIyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogY2hlY2sgdGVtcGxhdGUgY2FwcyBmb3IgcHJveHkgcGFkcyBpbiBhY2NlcHQtY2FwcwoJICBWYWxpZGF0ZSB0aGF0IHRoZSBwcm94eSBwYWQgaW5kZWVkIGFjY2VwdHMgdGhlIGNhcHMgYnkgYWxzbwoJICBjb21wYXJpbmcgd2l0aCB0aGUgcGFkIHRlbXBsYXRlIGNhcHMsIG90aGVyd2lzZSB3aGVuIHRoZSBwYWQKCSAgaGFkIG5vIGludGVybmFsbHkgbGlua2VkIHBhZHMgaXQgd291bGQgYWx3YXlzIHJldHVybiB0cnVlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0MTEyCgoyMDE1LTExLTA2IDEyOjU4OjQyICswMTAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIEZpeCBidWlsZCB3aXRoIC1XZXJyb3I9bWF5YmUtdW5pbml0aWFsaXplZAoKMjAxNS0xMS0wNiAxMjowNToxOCArMDEwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgcHJlc2V0OiBBZGQgYSBHU1RfUFJFU0VUX1BBVEggZW52IHZhcmlhYmxlIGZvciBwcmVzZXRzIHRvIGJlIHVzYWJsZSB1bmluc3RhbGxlZAoJICBBbmQgc3RhcnQgc2V0dGluZyB0aGUgdmFyaW91cyB1bmluc3RhbGxlZCBwcmVzZXRzIHBhdGhzLgoKMjAxNS0xMS0wNSAwODo1Njo0MyArMDEwMCAgQW50b24gQm9uZGFyZW5rbyA8YW50b25ib0BheGlzLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IGNvbnRpbnVlIGVsZW1lbnQgY2xlYW51cCBldmVuIGlmIGZjbG9zZSBmYWlscwoJICBTb21ldGltZXMgZmlsZXNpbmsgY2xlYW51cCBkdXJpbmcgc3RvcCBtYXkgZmFpbCBkdWUgdG8gZmNsb3NlIGVycm9yLgoJICBJbiB0aGlzIGNhc2Ugb2JqZWN0IGxlZnQgcGFydGlhbCBjbGVhbnVwIHdpdGggbm8gZmlsZSBvcGVuZWQKCSAgYnV0IHN0aWxsIGhvbGRpbmcgb2xkIGZpbGUgZGVzY3JpcHRvci4KCSAgSXQncyBub3QgcG9zc2libGUgdG8gY2hhbmdlIGxvY2F0aW9uIHByb3BlcnR5IGluIGEgc3VjaCBzdGF0ZSwKCSAgc28gbmV4dCBzdGFydCB3aWxsIGNhdXNlIG9sZCBmaWxlIG92ZXJ3cml0ZSBpZiAnYXBwZW5kJyBkb2VzIG5vdCBzZXQuCgkgIEFjY29yZGluZyB0byBtYW4gcGFnZSBhbmQgUE9TSVggc3RhbmRhcmQgYWJvdXQgZmNsb3NlIGJlaGF2aW9yKGV4dHJhY3QpOgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgVGhlIGZjbG9zZSgpIGZ1bmN0aW9uIHNoYWxsIGNhdXNlIHRoZSBzdHJlYW0gcG9pbnRlZCB0byBieSBzdHJlYW0KCSAgdG8gYmUgZmx1c2hlZCBhbmQgdGhlIGFzc29jaWF0ZWQgZmlsZSB0byBiZSBjbG9zZWQuCgkgIC4uLgoJICBXaGV0aGVyIG9yIG5vdCB0aGUgY2FsbCBzdWNjZWVkcywgdGhlIHN0cmVhbSBzaGFsbCBiZSBkaXNhc3NvY2lhdGVkCgkgIGZyb20gdGhlIGZpbGUgYW5kIGFueSBidWZmZXIgc2V0IGJ5IHRoZSBzZXRidWYoKSBvciBzZXR2YnVmKCkKCSAgZnVuY3Rpb24gc2hhbGwgYmUgZGlzYXNzb2NpYXRlZCBmcm9tIHRoZSBzdHJlYW0uCgkgIC4uLgoJICBUaGUgZmNsb3NlKCkgZnVuY3Rpb24gc2hhbGwgcGVyZm9ybSB0aGUgZXF1aXZhbGVudCBvZiBhIGNsb3NlKCkKCSAgb24gdGhlIGZpbGUgZGVzY3JpcHRvciB0aGF0IGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3RyZWFtCgkgIHBvaW50ZWQgdG8gYnkgc3RyZWFtLgoJICBBZnRlciB0aGUgY2FsbCB0byBmY2xvc2UoKSwgYW55IHVzZSBvZiBzdHJlYW0gcmVzdWx0cwoJICBpbiB1bmRlZmluZWQgYmVoYXZpb3IuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICBTbyBmaWxlIGlzIGluICdjbG9zZWQnIHN0YXRlIG5vIG1hdHRlciBpZiBmY2xvc2Ugc3VjY2VlZCBvciBub3QuCgkgIEFuZCBjbGVhbnVwIGNvdWxkIGJlIGNvbnRpbnVlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NzU5NgoKMjAxNS0xMS0wMSAwMDowNDoyNyArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogTWFyayBzdGlja3kgZXZlbnRzIGFzIHNlbnQgb24gbm90LWxpbmtlZAoJICBJbnN0ZWFkIG9mIHJlLXNlbmRpbmcgc3RpY2t5IGV2ZW50cyBvdmVyIGFuZCBvdmVyIHRvIGEgbm90LWxpbmtlZAoJICBwYWQsIG1hcmsgdGhlbSBhcyBzZW50IHRoZSBmaXJzdCB0aW1lLiBJZiB0aGUgbm90LWxpbmtlZCBjYW1lIGZyb20KCSAgZG93bnN0cmVhbSwgaXQgYWxyZWFkeSByZWNlaXZlZCB0aGUgZXZlbnRzLiBJZiB0aGUgcGFkIGlzIGFjdHVhbGx5CgkgIG5vdC1saW5rZWQsIHRoZSBzdGlja3kgZXZlbnRzIHdpbGwgYmUgcmVzY2hlZHVsZWQgd2hlbiB0aGUKCSAgcGFkIGlzIGxpbmtlZCBhbnl3YXkuCgoyMDE1LTEwLTI5IDE4OjUzOjI5ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogQWxsb3cgZGVhY3RpdmF0aW9uIHdpdGggbm8gcGVlci4KCSAgQWxsb3cgZGVhY3RpdmF0aW9uIGluIHB1bGwtbW9kZSwgc2luY2UgdGhhdCBpbXBsaWVzIHdlCgkgIGhhZCBhIHBlZXIsIGFjdGl2YXRlZCBpbiBwdWxsIG1vZGUsIHRoZW4gdGhlIHBlZXIgZGlzYS1wZWVyLWVkIDspCgoyMDE1LTEwLTI4IDE3OjMxOjA3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudDogZW1pdCB0cmFjZXIncyBlbGVtZW50LW5ldyBob29rIGZyb20gJ2NvbnN0cnVjdGVkJwoJICBJdCBhbGxvd3MgdG8gcHJvcGVybHkgZW1pdHRpbmcgaXQgZm9yIGFsbCBuZXdseSBjcmVhdGVkIGVsZW1lbnRzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTcwNDUKCjIwMTUtMTAtMjggMDY6MDM6MzkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICBzdGF0czogbG9nIHRoZSBlbGVtZW50LW5ldyBob29rIHByb3Blcmx5CgkgIFRvIGJlIGFibGUgdG8gZ2V0IHRoZSB0aW1lIHRoZSBlbGVtZW50cyB3ZXJlIGNyZWF0ZWQgaW5zdGVhZCBvZgoJICBqdXN0IGxvZ2dpbmcgdGhlbSB3aXRob3V0IGEgdGltZQoKMjAxNS0xMC0yOCAxODowNDo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBVbmJsb2NrIGJsb2NraW5nIHBhZCBwcm9iZXMgd2hlbiByZWNlaXZpbmcgRkxVU0hfU1RBUlQgaW4gc2VuZF9ldmVudCgpIHRvbwoJICBXaXRob3V0IHRoaXMsIGZsdXNoaW5nIG1pZ2h0IG5vdCB1bmJsb2NrIHRoZSBzdHJlYW1pbmcgdGhyZWFkIGFuZCBjYXVzZSBkZWFkbG9ja3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTcyNTcKCjIwMTUtMTAtMjggMTM6MDQ6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRG9jdW1lbnQgdGhlIG9yZGVyIGluIHdoaWNoIHBhZCBwcm9iZXMgYXJlIGNhbGxlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3MTk3CgoyMDE1LTEwLTI3IDE4OjA1OjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEFwcGVuZCBob29rcyBpbnN0ZWFkIG9mIHByZXBlbmRpbmcgdG8gY2FsbCB0aGVtIGluIHRoZSBvcmRlciB0aGV5IHdlcmUgYWRkZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NzE5NwoKMjAxNS0xMC0yNiAxMjo1MDoxMiArMDEwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZGVmOgoJICBuZXRhZGRyZXNzbWV0YTogZ3N0X2J1ZmZlcl9nZXRfbmV0X2FkZHJlc3NfbWV0YSgpIGFzIGZ1bmN0aW9uCgkgIEltcGxlbWVudCBnc3RfYnVmZmVyX2dldF9uZXRfYWRkcmVzc19tZXRhKCkgYXMgYSBmdW5jdGlvbiBpbnN0ZWFkCgkgIG9mIGEgbWFjcm8gaW4gb3JkZXIgdG8gZ2V0IGdvYmplY3QtaW50cm9zcGVjdGlvbiB0byB3b3JrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyOTIxCgoyMDE1LTEwLTI2IDE4OjA3OjExICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogZmxlc2ggb3V0IGRvY3MgZm9yIGdzdF9idWZmZXJfbWFrZV93cml0YWJsZSgpIGEgbGl0dGxlCgkgIFRoZXJlIGlzIGEgc2ltaWxhciBleHBsYW5hdGlvbiBpbiBnc3RfY2Fwc19tYWtlX3dyaXRhYmxlLCBidXQgdGhlIGV4aXN0aW5nCgkgIGRvY3VtZW50YXRpb24gY2FuIGJlIG1pc2xlYWRpbmcgc2luY2UgaXQgZG9lcyBub3QgZGVmaW5lIHdoYXQgJ2lzIGFscmVhZHkKCSAgd3JpdGFibGUnIG1lYW5zLgoJICBBbHNvIG5vdGUgd2hlbiB0aGlzIGZ1bmN0aW9uIGlzIG1lYW50IHRvIGJlIHVzZWQuCgoyMDE1LTEwLTI2IDE3OjM1OjM0ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBjbGFyaWZ5IGRvY3MgZm9yIGEgZmV3IGZ1bmN0aW9ucyB0aGF0IHRoZXkgZG9uJ3QgdXBkYXRlIHRoaW5ncyBpbi1wbGFjZQoJICBJdCBpcyBub3QgbmVjZXNzYXJpbHkgY2xlYXIgZnJvbSB0aGUgZXhpc3RpbmcgaW50cm9zcGVjdGlvbiB0YWdzIGFuZAoJICBkb2N1bWVudGF0aW9uIGFsb25lLgoKMjAxNS0xMC0yNyAwODo0ODowNyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUvcXVldWUyOiBVc2UgR1NUX0JVRkZFUl9EVFNfT1JfUFRTCgkgIFRoZSBpbnB1dCBvZiBxdWV1ZS9xdWV1ZTIgbWlnaHQgaGF2ZSBEVFMgc2V0LCBpbiB3aGljaCBjYXMgd2Ugd2FudAoJICB0byB0YWtlIHRoYXQgaW50byBhY2NvdW50IChpbnN0ZWFkIG9mIHRoZSBQVFMpIHRvIGNhbGN1bGF0ZSBwb3NpdGlvbgoJICBhbmQgcXVldWUgbGV2ZWxzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2NTA3CgoyMDE1LTEwLTEzIDE3OjIwOjI2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFVzZSBidWZmZXIgRFRTIGlmIHByZXNlbnQsIGVsc2UgUFRTCgkgIEluIG9yZGVyIHRvIGFjY3VyYXRlbHkgZGV0ZXJtaW5lIHRoZSBhbW91bnQgKGluIHRpbWUpIG9mIGRhdGEKCSAgdHJhdmVsbGluZyBpbiBxdWV1ZXMsIHdlIHNob3VsZCB1c2UgYW4gaW5jcmVhc2luZyB2YWx1ZS4KCSAgSWYgYnVmZmVycyBhcmUgZW5jb2RlZCBhbmQgcG90ZW50aWFsbHkgcmVvcmRlcmVkLCB3ZSBzaG91bGQgYmUKCSAgdXNpbmcgdGhlaXIgRFRTIChpbmNyZWFzaW5nKSBhbmQgbm90IFBUUyAocmVvcmRlcmVkKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2NTA3CgoyMDE1LTEwLTI3IDA4OjMzOjQxICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogVXNlIEdTVF9CVUZGRVJfRFRTX09SX1BUUwoJICBTaW1wbGlmaWVzIGNvZGUgYSBiaXQKCjIwMTUtMTAtMjYgMDc6NTk6NTQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogQWRkIGEgR1NUX0JVRkZFUl9EVFNfT1JfUFRTIG1hY3JvCgkgIEFQSTogR1NUX0JVRkZFUl9EVFNfT1JfUFRTCgkgIE1hbnkgc2NlbmFyaW9zL2VsZW1lbnRzIHJlcXVpcmUgZGVhbGluZyB3aXRoIHN0cmVhbXMgb2YgYnVmZmVycyB0aGF0CgkgIG1pZ2h0IGhhdmUgRFRTIHNldCAoaS5lLiBlbmNvZGVkIGRhdGEsIHBvdGVudGlhbGx5IHJlb3JkZXJlZCkKCSAgVG8gc2ltcGxpZnkgZ2V0dGluZyB0aGUgaW5jcmVhc2luZyAidGltZXN0YW1wIiBvZiB0aG9zZSBidWZmZXJzLCBjcmVhdGUKCSAgYSBtYWNybyB0aGF0IHdpbGwgcmV0dXJuIHRoZSBEVFMgaWYgdmFsaWQsIGFuZCBpZiBub3QgdGhlIFBUUwoKMjAxNS0xMC0wNiAxMjoyMTowNCArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2M6IGFkZCBHU1Rfe1BUUixTRUdNRU5UfV9GT1JNQVQKCSAgVmVyeSB1c2VmdWwgZm9ybWF0cyBpbiBkZWJ1ZyBvdXRwdXQgc28gYmVzdCB0byBoYXZlIHRoZW0gaW4gdGhlCgkgIGdlbmVyYXRlZCBkb2MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTYxMTUKCjIwMTUtMTAtMjYgMTA6NTM6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBSZXR1cm4gLTEgaWYgZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWVfZnVsbCgpIGNvbnNpZGVycyB0aGUgcG9zaXRpb24gbm90IGluc2lkZSB0aGUgc2VnbWVudAoJICBGaXhlcyBHc3RQaXBlbGluZSB1bml0IHRlc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY1NjQKCjIwMTUtMTAtMjQgMTY6NTI6NDQgKzAxMDAgIEZsb3JpbiBBcG9zdG9sIDxmbG9yaW4uYXBvc3RvbEBvcmVnYW4ubmV0PgoKCSogZ3N0L2dzdHVyaS5jOgoJICB1cmk6IGZpeCBiZWhhdmlvdXIgZm9yIG1lcmdpbmcgdXJpcyBlbmRpbmcgaW4gLi4gd2l0aG91dCBmb2xsb3dpbmcgLwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3MDY1CgoyMDE1LTEwLTI0IDE2OjQzOjU5ICswMTAwICBGbG9yaW4gQXBvc3RvbCA8ZmxvcmluLmFwb3N0b2xAb3JlZ2FuLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzoKCSAgdXJpOiB0ZXN0czogYWRkZWQgdW5pdCB0ZXN0IGZvciBzdHJlYW1zIGVuZGluZyBpbiAuLiB3aXRob3V0IGZvbGxvd2luZyAvCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTcwNjUKCjIwMTUtMDgtMjcgMTI6NDM6MjggKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVnOiBEdW1wIHBhZCBwcm9wZXJ0aWVzIHZhbHVlcwoJICBDdXJyZW50bHkgd2Ugb25seSBzaG93IGVsZW1lbnQgcHJvcGVydGllcyB2YWx1ZXMsIHdlIHNob3VsZCBhbHNvIHNob3cKCSAgcGFkIHByb3BlcnRpZXMgdmFsdWVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQxNjYKCjIwMTUtMTAtMjMgMjA6MDQ6NDIgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBSZW1vdmUgbGVmdG92ZXIgZGVidWcgZ19wcmludCgpCgoyMDE1LTEwLTE1IDE0OjQ5OjM3ICswMzAwICBWaXZpYSBOaWtvbGFpZG91IDx2aXZpYUBhaGlydS5ldT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHNlZ21lbnQ6IEFkZCBfZnVsbCB2YXJpYW50cyBvZiBhbGwgc3RyZWFtL3J1bm5pbmdfdGltZSBmcm9tL3RvIHNlZ21lbnQgcG9zaXRpb24gZnVuY3Rpb25zCgkgIFNlZSBmb3JtdWxhIGNsYXJpZmljYXRpb25zIGluIGRlc2lnbiBkb2NzIGZvciBjYWxjdWxhdGlvbiBkZXRhaWxzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2NTY0CgoyMDE1LTA5LTI2IDAxOjI5OjA3ICswMzAwICBWaXZpYSBOaWtvbGFpZG91IDx2aXZpYUB0b29sc29uYWlyLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IEFkZGVkIGVudiB2YXIgZm9yIHVuaW5zdGFsbGVkIFBUUCBoZWxwZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NTY1MQoKMjAxNS0xMC0yMiAxMjowMDo0MiArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGJhc2VzaW5rOiByZW5hbWUgYXJndW1lbnQgb2YgUFJFUk9MTF97Q09ORCxMT0NLfSBtYWNyb3MKCSAgVGhleSB0YWtlIGEgR3N0QmFzZVNpbmsgaW5zdGFuY2UgYXMgYXJndW1lbnQgYXQgbm90IGEgR3N0UGFkLiBSZW5hbWUgdGhlCgkgIGFyZ3VtZW50IHRvICdvYmonIHdoaWNoIGlzIG5vdCBtaXNzIGxlYWRpbmcgYW5kIGluIGxpbmUgd2l0aAoJICBHU1RfQkFTRV9TSU5LX1BBRChvYmopLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2OTU0CgoyMDE1LTEwLTIyIDEwOjA1OjE0ICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJICBnc3Rjb250cm9sc291cmNlOiBBZGQgbWlzc2luZyAob3V0KSBhbm5vdGF0aW9uCgoyMDE1LTEwLTIxIDE0OjM0OjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBiOTk4MDBhIHRvIGIzMTk5MDkKCjIwMTUtMTAtMjEgMTQ6NDk6NDkgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRml4IGRvY3MvYW5ub3RhdGlvbiBvZiBnc3RfcGFkX3Byb2JlX2luZm9fZ2V0X2J1ZmZlcl9saXN0KCkKCSAgSXQncyBub3QgZ2V0X2J1ZmZlcmxpc3QoKS4gQmVjYXVzZSBvZiB0aGF0IGl0IHdhcyBpZ25vcmVkIGJ5IHRoZSBkb2NzIGFuZAoJICBHLUksIGxlYWRpbmcgdG8gY3Jhc2hlcyBiZWNhdXNlIG9mIGJyb2tlbiBvd25lcnNoaXAgdHJhbnNmZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY4OTgKCjIwMTUtMTAtMjAgMTc6Mjk6NDIgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIFVzZSBuZXcgR1NUX0VOQUJMRV9FWFRSQV9DSEVDS1MgI2RlZmluZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2ODcwCgoyMDE1LTEwLTIxIDE0OjI1OjQwICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogUkVBRE1FOgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDlhZWQxZDcgdG8gYjk5ODAwYQoKMjAxNS0xMC0yMCAxMzo0NjoyNCArMDEwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc2JnQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICBzdGF0czogYWx3YXlzIGZyZWUgbG9nCgkgIFdlIGFsd2F5cyB3YW50IHRvIGZyZWUgdGhlIG9wZW4gZmlsZSBsb2cgaWYgZm9wZW4oKSBzdWNjZWVkZWQuIEluZGVwZW5kZW50bHkKCSAgb2YgaWYgZmdldHMoKSBzdWNjZWVkcyBvciBmYWlscy4KCSAgQ0lEIDEzMjYwNTUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Njg2NAoKMjAxNS0xMC0xOSAxNjo1MDo1MSArMDMwMCAgVml2aWEgTmlrb2xhaWRvdSA8dml2aWFAYWhpcnUuZXU+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBDb3JyZWN0IHN0cmVhbV90aW1lIGNhbGMgZm9yIG5lZ2F0aXZlIGFwcGxpZWQgcmF0ZQoJICBVcGRhdGVkIGdzdF9zZWdtZW50X3Bvc2l0aW9uX2Zyb21fc3RyZWFtX3RpbWUgYW5kIGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lIHRvIHJlZmxlY3QgY29ycmVjdCBjYWxjdWxhdGlvbnMgZm9yIHRoZSBjYXNlIHdoZW4gdGhlIGFwcGxpZWQgcmF0ZSBpcyBuZWdhdGl2ZS4KCSAgUGFzdGluZyBmcm9tIGRlc2lnbiBkb2NzOgoJICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgkgIFN0cmVhbSB0aW1lIGlzIGNhbGN1bGF0ZWQgdXNpbmcgdGhlIGJ1ZmZlciB0aW1lcyBhbmQgdGhlIHByZWNlZGluZyBTRUdNRU5UCgkgIGV2ZW50IGFzIGZvbGxvd3M6CgkgIHN0cmVhbV90aW1lID0gKEIudGltZXN0YW1wIC0gUy5zdGFydCkgKiBBQlMgKFMuYXBwbGllZF9yYXRlKSArIFMudGltZQoJICBGb3IgbmVnYXRpdmUgcmF0ZXMsIEIudGltZXN0YW1wIHdpbGwgZ28gYmFja3dhcmRzIGZyb20gUy5zdG9wIHRvIFMuc3RhcnQsCgkgIG1ha2luZyB0aGUgc3RyZWFtIHRpbWUgZ28gYmFja3dhcmRzLgoJICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgkgIFRoZXJlZm9yZSwgdGhlIGNhbGN1bGF0aW9uIGZvciBhcHBsaWVkX3JhdGUgPCAwIHNob3VsZCBiZToKCSAgc3RyZWFtX3RpbWUgPSAoUy5zdG9wIC0gQi50aW1lc3RhbXApICogQUJTIChTLmFwcGxpZWRfcmF0ZSkgKyBTLnRpbWUKCSAgYW5kIHRoZSByZXZlcnNlOgoJICBCLnRpbWVzdGFtcCA9IFMuc3RvcCAtIChzdHJlYW1fdGltZSAtIFMudGltZSkgLyBBQlMgKFMuYXBwbGllZF9yYXRlKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2ODEwCgoyMDE1LTEwLTE5IDIxOjM5OjE5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJICB0cmFjZXI6IHJlbmFtZSB0aGUgZW52dmFyIHRvIEdTVF9UUkFDRVJfUExVR0lOUwoJICBUaGUgc3Vic3lzdGVtIHJldXNlZCB0aGUgR1NUX1RSQUNFIHZhciB0aGF0IGlzIGFsbHJlYWR5IGluIHVzZSBieSB0aGUgYWxsb2MgdHJhY2VyLgoJICBGaXhlcyAjNzU2NzYwCgoyMDE1LTEwLTE1IDE2OjMyOjQyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEltcHJvdmUgaW5jb21pbmcgU0VHTUVOVCBoYW5kbGluZwoJICBQcmV2aW91c2x5IHRoaXMgY29kZSB3YXMganVzdCBibGluZGx5IHNldHRpbmcgdGhlIGNhY2hlZCBmbG93IHJldHVybgoJICBvZiBkb3duc3RyZWFtIHRvIEdTVF9GTE9XX09LIHdoZW4gd2UgZ2V0IGEgU0VHTUVOVC4KCSAgVGhlIHByb2JsZW0gaXMgdGhhdCB0aGlzIGNhbiBub3QgYmUgZG9uZSBibGluZGx5LiBJZiBkb3duc3RyZWFtIHdhcwoJICBub3QgbGlua2VkLCB0aGUgY29ycmVzcG9uZGluZyBzaW5xbGVxdWV1ZSBzb3VyY2UgcGFkIHRocmVhZCBtaWdodCBiZQoJICB3YWl0aW5nIGZvciB0aGUgbmV4dCBJRCB0byBiZSB3b2tlbiB1cCB1cG9uLgoJICBCeSBibGluZGx5IHNldHRpbmcgdGhlIGNhY2hlZCByZXR1cm4gdmFsdWUgdG8gR1NUX0ZMT1dfT0ssIGFuZCBpZiB0aGF0CgkgIHN0cmVhbSB3YXMgdGhlIG9ubHkgb25lIHRoYXQgd2FzIE5PVF9MSU5LRUQsIHRoZW4gdGhlIG5leHQgdGltZSB3ZQoJICBjaGVjayAoZnJvbSBhbnkgb3RoZXIgdGhyZWFkKSB0byBzZWUgaWYgd2UgbmVlZCB0byB3YWtlIHVwIGEgc291cmNlIHBhZAoJICB0aHJlYWQgLi4uIHdlIHdvbid0IGV2ZW4gdHJ5LCBiZWNhdXNlIG5vbmUgb2YgdGhlIGNhY2hlZCBmbG93IHJldHVybgoJICBhcmUgZXF1YWwgdG8gR1NUX0ZMT1dfTk9UX0xJTktFRC4KCSAgVGhpcyB3b3VsZCByZXN1bHQgaW4gdGhhdCB0aHJlYWQgbmV2ZXIgYmVpbmcgd29rZW4gdXAKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NjY0NQoKMjAxNS0wOS0yNiAxODoxNjowNyArMDgwMCAgVGluZy1XZWkgTGFuIDxsYW50d0BzcmMuZ25vbWUub3JnPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIGdzdHV0aWxzOiBGaXggYnVpbGQgd2l0aCBjbGFuZyAtV2Vycm9yPWNhc3QtYWxpZ24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NTY1NwoKMjAxNS0xMC0xNyAyMjoxMzowOCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBNYWtlIHN1cmUgdG8gZnJlZSBhbGwgY2FjaGVkIG1lc3NhZ2VzIHdoZW4gZ29pbmcgdG8gTlVMTAoJICBBbiBBU1lOQyBSRUFEWS0+UEFVU0VEIG1pZ2h0IGhhdmUgZmFpbGVkIHdpdGhvdXQgdGhlIGJpbiBjb2RlIG5vdGljaW5nIGR1cmluZwoJICB0aGUgc3RhdGUgY2hhbmdlLCBpbiB3aGljaCBjYXNlIHdlIHdpbGwgbmV2ZXIgZ2V0IFBBVVNFRC0+UkVBRFkgYW5kIHdvdWxkIGxlYWsKCSAgbWVzc2FnZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY2MTEKCjIwMTUtMTAtMTYgMTU6NTk6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSogZ3N0L2dzdGRlYnVndXRpbHMuaDoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBkb2NzOiBtZW50aW9uIHhkb3QgdXRpbGl0eSB0byB2aWV3IC5kb3QgZmlsZXMgZGlyZWN0bHkKCjIwMTUtMTAtMTYgMTI6MDA6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSAgYWxsb2N0cmFjZTogc2hvdyBkZXRhaWxzIG9mIGV2ZW50cyBhbmQgbWVzc2FnZXMgbGVha2VkCgkgIFNvIGl0J3MgY2xlYXJlciB3aGF0IGxlYWtlZC4KCjIwMTUtMTAtMTYgMTE6NTQ6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1tZXRhZGF0YS54bWw6CgkgIGRvY3M6IG1hbnVhbDogaW1wcm92ZSBhZHZhbmNlZCBtZXRhZGF0YSBleGFtcGxlIGEgYml0CgkgIEFjY2VwdCBib3RoIGZpbGVuYW1lIGFuZCBhIFVSSSBhcyBhcmd1bWVudCwgYW5kIHByaW50CgkgIHRoZSBlcnJvciBmcm9tIHRoZSBlcnJvciBtZXNzYWdlIGlmIHRoZXJlJ3MgYW4gZXJyb3IuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY2MzAKCjIwMTUtMTAtMTUgMTk6MDU6MjEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBmaXggdHlwbyBpbiBkb2N1bWVudGF0aW9uCgkgIEl0IHNob3VsZCBiZSAxLjIgdW5sZXNzIHRoaXMgaXMgYSBmbGFnIGZyb20gdGhlIGZ1dHVyZQoKMjAxNS0wOS0xNSAxODowODoxOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBBY2NlcHQgU1RSRUFNX1NUQVJUIGFmdGVyIEVPUwoJICBJbiB0aGUgc2FtZSB3YXkgY29yZSBub3cgYWxsb3dzIFNUUkVBTV9TVEFSVCB0byByZW1vdmUgdGhlIGZsdXNoaW5nCgkgIHN0YXRlIGZyb20gcGFkcywgd2UgbmVlZCB0byBkbyB0aGUgc2FtZSB0aGluZyBpbiBtdWx0aXF1ZXVlCgoyMDE1LTEwLTE0IDExOjAzOjIyICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogQ29udmVydCBmdW5jdGlvbiB0byBtYWNybyBpbiB1bml0IHRlc3QgdG8gZ2V0IHByb3BlciBsaW5lIG51bWJlcnMgb24gZmFpbHVyZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODMxNgoKMjAxNS0xMC0xMiAxNzoyOToyNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogVXBkYXRlIGludGVybmFsIHBvc2l0aW9uIGV2ZW4gaWYgbm90IGxpbmtlZAoJICBPdXIgY3VycmVudCBwb3NpdGlvbiBoYXMgbm90aGluZyB0byBkbyB3aXRoIGJlaW5nIGxpbmtlZCBvciBub3QuCgkgIEF2b2lkcyBoYXZpbmcgc3RyYXkgc2VnbWVudCB1cGRhdGVzIGZpcmVkIGV2ZXJ5IDJzCgoyMDE1LTEwLTA3IDIyOjU1OjQ0ICswMTAwICBGbG9yaW4gQXBvc3RvbCA8ZmxvcmluLmFwb3N0b2xAb3JlZ2FuLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggbWVtb3J5IGxlYWsgd2hlbiBzZW5kaW5nIGV2ZW50cyB0byBhbiBFT1MgcGFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTYyMDgKCjIwMTUtMTAtMDcgMTI6MDE6MTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL3RyYWNlcnMvTWFrZWZpbGUuYW06CgkgIHRyYWNlcnM6IE9ubHkgbGluayBhZ2FpbnN0IGxpYmdzdHByaW50Zi5sYSBpZiB0aGUgZGVidWdnaW5nIHN5c3RlbSBpcyBlbmFibGVkCgkgIEl0IGRvZXMgbm90IGV4aXN0IG90aGVyd2lzZSBhbmQgbGlua2luZyB3aWxsIGZhaWwuCgoyMDE1LTEwLTA3IDExOjI1OjUyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcHRwLWhlbHBlci5jOgoJICBnc3QtcHRwLWhlbHBlcjogI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4gdG8gZml4IG5ldC9pZi5oIGluY2x1ZGUgb24gT1NYIDEwLjYKCSAgSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGdzdC1wdHAtaGVscGVyLmM6NDA6MDoKCSAgL3Vzci9pbmNsdWRlL25ldC9pZi5oOjI2NToxOTogZXJyb3I6IGZpZWxkICdpZnJ1X2FkZHInIGhhcyBpbmNvbXBsZXRlIHR5cGUKCSAgc3RydWN0IHNvY2thZGRyIGlmcnVfYWRkcjsKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NjEzNgoKMjAxNS0xMC0wNyAxMjoyMjozNCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3R0cmFjZXJzLmM6CgkgIFJldmVydCAidHJhY2VyczogT25seSBidWlsZCBnZXRydXNhZ2UoKSB0cmFjZXIgaWYgUlVTQUdFX1RIUkVBRCBpcyBhdmFpbGFibGUiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOGRkYmY3NjYyNmE0ODQyMDMwNjg2OWRiMWQxNzFmODU0Y2MyNTMxMC4KCjIwMTUtMTAtMDcgMTI6MjE6NTYgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkgIHRyYWNlcnMvcnVzYWdlOiBpZmRlZiB0aGUgUlVTQUdFX1RIUkVBRCB1c2FnZQoJICBTb21lIHZlcnNpb25zIG9mIGFuZG9pZCBkb24ndCBzZWVtIHRvIGhhdmUgaXQuCgoyMDE1LTEwLTA3IDExOjExOjMwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBwbHVnaW5zL3RyYWNlcnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHRyYWNlcnMuYzoKCSAgdHJhY2VyczogT25seSBidWlsZCBnZXRydXNhZ2UoKSB0cmFjZXIgaWYgUlVTQUdFX1RIUkVBRCBpcyBhdmFpbGFibGUKCjIwMTUtMTAtMDYgMjE6NDY6NTUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHJlbW92ZSBnc3RfdHJhY2VyX3F1YXJrX2lkX2dldF90eXBlCgkgIFJldmVydCBhZGRpdGlvbiBmcm9tIDc3N2JiZWVhNjA1MDUxYWUzZDJmYTdlMDJhZDg1ODkwMDFlNzhjZTAuCgoyMDE1LTEwLTA2IDE4OjUyOjM4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSAgdHJhY2VyOiBtb3ZlIHByb3RvdHlwZSB0byB0aGUgcmlnaHQgaGVhZGVyCgkgIEZpeGVzIHRoZSBidWlsZCB3aGVuIHRoZSB0cmFjaW5nIHN1YnN5c3RlbSBpcyBkaXNhYmxlZC4KCjIwMTUtMTAtMDYgMTg6NDk6NDYgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJICB0cmFjZXI6IG1hcmsgR3N0VHJhY2VyUXVhcmtJZCBhcyBub24gR0VudW0KCSAgVGhpcyByZXZlcnRzIDcyY2EwMmIxZGU0MDY2ZWVhZTM1Yzg5MWUyNzUzODY3NzAxMTc3NzggYW5kIG1hcmtzIHRoZSBlbnVtCgkgIGFjY29yZGluZ2x5LgoKMjAxNS0xMC0wNiAxODo0NjoyNCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy90cmFjZXJzL2dzdHRyYWNlcnMuYzoKCSAgdHJhY2VyczogZGlzYWJsZSB0aGUgbG9nIHRyYWNlciBpZiBkZWJ1ZyBsb2dnaW5nIGlzIGRpc2FibGVkCgoyMDE1LTEwLTA2IDE4OjQ1OjQxICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJICBtYWtlZmlsZS5hbTogUmVtb3ZlIG9ic29sZXRlIEFuZHJvaWQgYnVpbGQgY3J1ZnQKCSAgVGhpcyBpcyBub3QgbmVlZGVkIGFueSBsb25nZXIuCgoyMDE1LTEwLTA2IDE0OjAxOjAzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkgIHRyYWNlcjogZml4IHRoZSBidWlsZCB3aXRoIGRlYnVnICh0cmFjZXIpIGRpc2FibGVkCgkgIFN5bmMgdGhlIG1hY3JvIGRlZmluaXRpb25zLiBUaGUgZHVtbXkgZGVmaW5lcyBoYXMgYXJndW1lbnQgbWlzbWF0Y2hlcy4KCjIwMTUtMTAtMDYgMTE6Mzk6MzMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSAgdHJhY2VyOiBmaXggdGhlIGJ1aWxkIHdpdGggZGVidWcgKHRyYWNlcikgZGlzYWJsZWQKCSAgUmVtb3ZlIGNvbW1hcyBhdCB0aGUgZW5kIG9mIHRoZSBtYWNyb3MuCgoyMDE1LTA5LTAxIDE2OjM5OjMwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2Vyczogc3RhdHM6IGFkZCBtZXNzYWdlIHN0cnVjdHVyZSB0byBvdXRwdXQKCSAgVGhlIG5hbWUgb2YgdGhlIG1lc3NhZ2UgaXMgbm90IGVub3VnaC4gRm9yIGV4YW1wbGUsIHN0YXRlLWNoYW5nZQoJICBpcyBub3QgZW5vdWdoIHRvIGtub3cgdGhlIHRyYW5zaXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQ0OTYKCjIwMTUtMTAtMDUgMTk6MDU6NTggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBhZGRpbmcgdHJhY2VyIHF1YXJrIGlkIHRvIGdzdCBpbml0IGFuZCBkZWluaXQKCSAgRml4ZXMgaXNzdWVzIGF0IG1ha2UgY2hlY2sKCjIwMTUtMTAtMDUgMTg6NTA6NDggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogbGliZ3N0cmVhbWVyOiBhZGQgdHJhY2VyIGZ1bmN0aW9ucwoKMjAxNS0xMC0wNSAyMToyOTo0OSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSAgdGVzdHM6IGZpeCB0aGUgdGFnIHRlc3QKCSAgVGhlIHByZXZpb3VzIGNoYW5nZSAoc2VlIGJnbyAjNzU2MDY5KSB3YXMgY2F1c2luZyB1cyB0byBmcmVlIHRoZSBzYW1lIHBvaW50ZXIKCSAgbXVsdGlwbGUgdGltZXMuIElmIHdlIGFjdHVhbGx5IGdldCBhIHNhbXBsZSBiYWNrLCB0aGUgdGVzdCBmYWlscywgbm8gbmVlZCB0bwoJICBmcmVlIGFueXRoaW5nIGluIHRoYXQgY2FzZS4KCjIwMTUtMDYtMDQgMDE6NTA6MzQgKzAyMDAgIE1hcmNpbiBLb2xueSA8bWFyY2luLmtvbG55QGZseXRyb25pYy5wbD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSAgdHJhY2VyOiBhZGQgbWlzc2luZyBob29rcwoJICBBZGQgZm9sbG93aW5nIGhvb2tzOiBlbGVtZW50LW5ldywgZWxlbWVudC1hZGQtcGFkLCBlbGVtZW50LXJlbW92ZS1wYWQsCgkgIGJpbi1hZGQtcHJlLCBiaW4tYWRkLXBvc3QsIGJpbi1yZW1vdmUtcHJlLCBiaW4tcmVtb3ZlLXBvc3QsIHBhZC1saW5rLXByZSwKCSAgcGFkLWxpbmstcG9zdCwgcGFkLXVubGluay1wcmUsIHBhZC11bmxpbmstcG9zdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzE4NwoKMjAxNS0wMy0xMyAxODozMTo0MCArMDAwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcjogZ3N0c3RhdHM6IGFkZCB0aHJlYWQtaWQgdG8gbG9nIGxpbmUKCjIwMTUtMDMtMTMgMTM6MTA6NDIgKzAwMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyOiBhZGQgcGFkIHF1ZXJ5IGhvb2tzCgoyMDE1LTAxLTE1IDA2OjMyOjQ4ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkgIHRyYWNlcjogc3RyZHVwIHRoZSBwYXNzZWQgcGFyYW1ldGVycy4KCjIwMTUtMDEtMTMgMjI6MTE6MzQgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSAgdHJhY2VyOiBVc2UgR1NUX1RJTUVfQVJHUyB3aGVuIHByaW50aW5nIHdpdGggR1NUX1RJTUVfRk9STUFULgoKMjAxNC0xMC0xNiAxMDo0MjowNSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJICB0cmFjaW5nOiB1cGRhdGUgZG9jcwoKMjAxNC0xMC0wMiAxOTo1MjowMyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgc3RhdHM6IFRJTUVTVEFNUCAtPiBQVFMKCjIwMTQtMDktMjIgMDk6NTU6NTYgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNpbmc6IHJlbmFtZSB0aGUgZ2xvYmFsIGFwaSB0byBnc3RfdHJhY2luZwoJICBUaGlzIG1ha2VzIGl0IG1vcmUgb2J2aW91cyB3aGF0IGlzIHRoZSBhcGkgZm9yIHRyYWNlciBlbGVtZW50cyBhbmQgd2hhdCBpcyBhcGkKCSAgZm9yIHRoZSBnbG9iYWwgc3RhdGUuCgoyMDE0LTA5LTE4IDA4OjI4OjQ4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIHN0YXRzOiBmaXggY3B1IHN0YXRzIHByaW50aW5nCgkgIE9ubHkgcHJpbnQgdGhlbSBpZiB3ZSBoYXZlIHRoZW0uIEFsc28gc2NhbGUgdGhlbSBieSAxMC4wIGFzIHRoZSBhcmUgaW4KCSAgcGVyLW1pbGxlIG5vdy4KCjIwMTQtMDktMTggMDg6MjY6MTkgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXJzOiBlbGltaW5hdGUgdmFyX2FyZ3MKCSAgUmVnaXN0ZXIgdHJhY2VyIGhvb2tzIGFzIEdDYWxsYmFjay4gVXNlIG1hY3JvcyBmb3IgaG9vayBkaXNwYXRjaCBhbmQgY2FzdCB0aGUKCSAgaG9vayBmdW5jdGlvbnMgYmFjayB0byB0aGUgYXBwcm9wcmlhdGUgdHlwZS4KCjIwMTQtMDktMTcgMDk6NDE6NDYgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgc3RhdHM6IGRvbid0IHdhcm4gb24gIi5jbGFzcyIgbG9nIGxpbmVzCgoyMDE0LTA5LTE3IDA4OjM4OjAyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuaDoKCSAgdHJhY2VyczogY29kZSBjbGVhbnVwcwoJICBNb3ZlIHN0YXRpYyB2YXJpYWJsZXMgdG8gaW5zdGFuY2UgdmFyaWFibGVzLiBBZGQgZmluYWxpemUgbWV0aG9kcy4gUmVtb3ZlIGNvZGUKCSAgdGhhdCBpcyBjb21tZW50ZWQgb3V0LiBDbGVhbnVwIGxvY2tpbmcgY29kZS4KCjIwMTQtMDktMTUgMjI6Mjc6MTEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXI6IHVzZSBHUXVhcmsgb3Igc3RyaW5ncyBmb3IgdGhlIGhvb2sgaWQKCSAgVGhpcyB3YXkgb25lIGNhbiBkZWZpbmUgbmV3IHRyYWNpbmcgcHJvYmVzIHdpdGhvdXQgY2hhbmdpbmcgdGhlIGNvcmUuIFdlIGFyZQoJICB1c2luZyBvdXIgb3duIHF1YXJrIHRhYmxlLCBhcyAxKSB3ZSBvbmx5IHdhbnQgdG8gaW5pdGlhbGl6ZSB0aGVtIGlmIHdlJ3JlCgkgIHRyYWNpbmcsIDIpIHdlIHdhbnQgdG8gc2hhcmUgdGhlbSB3aXRoIHRoZSB0cmFjZXJzLgoKMjAxNC0wOS0xNSAxMzoxNToxNyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyOiBzaW1wbGlmeSBob29rIGFwaQoJICBJbnN0ZWFkIG9mIGEgc2luZ2xlIGludm9rZSgpIGZ1bmN0aW9uIGFuZCBhICdtYXNrJywgcmVnaXN0ZXIgdG8gaW5kaXZpZHVhbAoJICBob29rcy4gVGhpcyBhdm9pZHMgb25lIGxldmVsIG9mIGluZGlyZWN0aW9uIGFuZCBhbGxvd3MgdXMgdG8gcmVtb3ZlIHRoZQoJICBob29rIGVudW1zLiBUaGUgbWVzc2FnZSBlbm1zIGFyZSBub3cgcmVuYW1lZCB0byBob29rIGVudW1zLgoKMjAxNC0wOS0xMiAxODo0Mzo1MiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXI6IGRyb3AgdGhlIEhvb2tJZCBoaWQgZnJvbSB0aGUgaW52b2tlIG1ldGhvZAoJICBUaGUgTWVzc2FnZUlkIGlzIG1vcmUgZGV0YWlsZWQgYW5kIGFueXdheSBuZWVkZWQgdG8gaW50ZXJwcmV0IHRoZSB2YXJhcmdzLgoKMjAxNC0wOS0xMiAxMToxNzo0MSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICBzdGF0czogZml4dXAgZG9jIG5hbWUgYW5kIHJlbW92ZSBjb21tZW50ZWQgY29kZQoKMjAxNC0wOS0xMiAwODo0MDowMSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcnM6IGFkZCBtZXRhZGF0YSBmb3IgdGhlIGxvZ2dlZCB2YWx1ZXMKCjIwMTQtMDktMTEgMTM6MDI6NTEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkgIHJ1c2FnZTogaW1wcm92ZSBjcHUgbG9hZCBtZWFzc3VyZW1lbnRzCgkgIEdldCB0aGUgbnVtYmVyIG9mIGNwdXMgYW5kIHNjYWxlIHByb2Nlc3MgY3B1LWxvYWQgYWNjb3JkaW5nbHkuIFN3aXRjaCB0aGUKCSAgY3B1bG9hZCB0byBiZSBwZXItbWlsbGUgdG8gZ2V0IHNtb290aGVyIGdyYXBocy4gQWRkIGEgYml0IG1vcmUgbG9nZ2luZyBhbmQgdXNlCgkgIHRoZSBfT0JKRUNUIHZhcmlhbnQuCgoyMDE0LTA5LTExIDEzOjAwOjU5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlci5jOgoJICB0cmFjZXI6IHJlbW92ZSBjb21tZW50ZWQgY29kZQoKMjAxNC0wOS0xMCAwODozMzozOCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJICBkZXNpZ246IHVwZGF0ZSB0cmFjZXIgZGVzaWduCgkgIFVwZGF0ZSB0aGUgdHJhY2VyIGV2ZW50IGNsYXNzZXMgc2VjdGlvbi4gQWRkIGEgcGVyZm9ybWFuY2Ugc2VjdGlvbi4KCjIwMTQtMDktMTAgMDg6MzI6MTggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkgIHRyYWNlcjogdXNlIEdTVF9QVFJfRk9STUFUIHRvIGxvZyB0aGUgc3RydWN0dXJlCgkgIFRoaXMgd2F5IHdlIG9ubHkgZXhwYW5kIHRoZSBzdHJ1Y3R1cmUgd2hlbiB3ZSdyZSBsb2dnaW5nLiBUaGlzIGFsbG93cyB1cyB0bwoJICBtZWFzc3VyZSB0aGUgcHVyZSB0cmFjaW5nIHNlcGVyYXRlbHkgZnJvbSB0aGUgbG9nZ2luZy4KCSAgQWxzbyBhZGQgc29tZSBjb21tZW50cyBvbiBmdXJ0aGVyIGltcHJvdmVtZW50cy4KCjIwMTQtMDktMTAgMDc6NTU6MzMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICBydXNhZ2U6IGltcGxlbWVudCB3aW5kb3dpbmcgb2YgY3B1bG9hZAoJICBBZGQgYSBsb2NhbCBoZWxwIHRvIHRoZSBydXNhZ2UgcGx1Z2luIHRoYXQgc3VwcG9ydHMgd2luZG93aW5nIG9mIHZhbHVlcy4gV2Ugd2FudAoJICB0byBnZW5lcmFsaXplIHRoaXMgZm9yIHVzZSBpbiBvdGhlciBwbHVnaW5zLgoKMjAxNC0wOS0wNCAxMDoxMTo1MiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIHJ1c2FnZTogYW5ub3VuY2UgdGhlIGRhdGEgZm9ybWF0CgkgIFJ1c2FnZSB3aWxsIG5vdyBhbm5vdW5jZSB3aGF0IGlzIG1lYXNzdXJlcyBhbmQgaG93IGl0IGlzIGxvZ2dlZC4gVXNlIHRoZSBuZXcgZm9ybWF0IGluIHN0YXRzLgoJICBDbGVhbnVwIHRoZSB0aGUgY29kZSBhbmQgbmFtaW5nLgoKMjAxNC0wNy0yOCAyMjowODo0OSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIHN0YXRzOiBpbXByb3ZlIGNwdSBsb2FkIG1lYXNzdXJlbWVudHMKCSAgUmVuYW1lIHZhcmlhYmxlcyBmb3IgY2xhcml0eS4gSGFuZGxlIHRoZSBpbml0aWFsIGRpc3Bhcml0eSBiZXR3ZWVuIGRlYnVnIHRpbWUKCSAgYW5kIHRoZSB0aW1lIGFscmVhZHkgc3BlbnQgaW4gdGhlIHByb2MgYW5kIG1haW4gdGhyZWFkLgoKMjAxNC0wNy0xOCAwODowOTozMiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJICBkZXNpZ246IHVwZGF0ZSB0cmFjZXIgZGVzaWduCgoyMDE0LTA3LTI4IDA4OjQ5OjM4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBxdWFya3M6IHJldmVydCB0aGUgcXVhcmsgY2hhbmdlcywgd2Ugbm90IHVzaW5nIHRoZW0gYW55bW9yZQoKMjAxNC0wNy0xOCAwNzo0OTozOCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIGdzdC9nc3R0cmFjZXJmYWN0b3J5LmM6CgkqIGdzdC9nc3R0cmFjZXJmYWN0b3J5Lmg6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmg6CgkgIHRyYWNlcjogc3BsaXQgaW50byB0cmFjZXIgYW5kIHRyYWNlcnV0aWxzCgkgIEtlZXAgdHJhY2VyIGJhc2UgY2xhc3MgaW4gdHJhY2VyIGFuZCBtb3ZlIGNvcmUgc3VwcG9ydCBpbnRvIHRoZSB1dGlscyBtb2R1bGUuCgkgIEFkZCBhIHVuc3RhYmxlLWFwaSBndWFyZCB0byB0aGUgdHJhY2VyLmggc28gdGhhdCBleHRlcm5hbCBtb2R1bGVzIHdvdWxkIG5lZWQgdG8KCSAgYWNrbm93bGVkZ2UgdGhlIHN0YXR1cyBieSBzZXR0aW5nIEdTVF9VU0VfVU5TVEFCTEVfQVBJLgoKMjAxNC0wNy0xNiAxODo0ODo1MiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlcmZhY3RvcnkuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICBkb2NzOiBhZGQgZ3RrLWRvYyBibG9icwoKMjAxNC0wMi0yMCAxMToxNToyMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkgIGxhdGVuY3k6IHRha2Ugc3RvcCB0aW1lIHdoZW4gYnVmZmVyIGlzIGhhbmRsZWQKCSAgTm93IHdlIG1lYXNzdXJlIHRpbWUgZnJvbSAnYmVmb3JlIGJ1ZmZlciB0cmFuc2ZlciBvbiBzcmMnIHRvIHdoZW4gdGhlICdidWZmZXIgaXMgcHJvY2Vzc2VkIG9uIHNpbmsnLgoKMjAxNC0wNy0xNSAwOTo0OToyMyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXJzOiBhZGQgYSBsb2dnaW5nIGhlbHBlciB0byByZW1vdmUgaWRlbnRpY2FsIGNvcGllcyBmcm9tIHRoZSB0cmFjZXJzCgoyMDE0LTAyLTE4IDE2OjE1OjQ0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcnM6IHR3ZWFrIHRoZSBnZXRfcmVhbF9wYWRfcGFyZW50KCkKCSAgQnkgdXNpbmcgdGhlIHdlIGVuZGVkIHVwIG9uIHRoZSBhY3R1YWwgZWxlbWVudCwgbm90IHRoZSBwYXJlbnQuCgoyMDE0LTAyLTE4IDExOjA2OjEwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0dHJhY2Vycy5jOgoJICB0cmFjZXJzOiBhZGQgYSBuZXcgbGF0ZW5jeSB0cmFjZXIKCSAgQWRkIGEgbmV3IHRyYWNlciB3aXRoIHB1c2hlcyBleHRyYSBldmVudHMgdG8gbWVhc3N1cmUgc3JjLXRvLXNpbmsgcHJvY2Vzc2luZyBsYXRlbmN5LgoKMjAxNC0wMi0xNyAxODozMDoyNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJICBkZXNpZ246IHVwZGF0ZSBkZXNpZ24gZG9jcwoJICBBZGQgbmV3IHRyYWNlciBpZGVhLgoKMjAxMy0xMS0yMiAxOToxMDowNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICBnc3Qtc3RhdHM6IHVzZSB0aGUgcnVzYWdlIHN0YXRzCgkgIEFkZCBjcHVsb2FkIGluZm8gZnJvbSBydXNhZ2UgdHJhY2VzLgoKMjAxMy0xMS0yMCAwODoyMjo1OCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHRyYWNlcnMuYzoKCSAgcnVzYWdlOiBhZGQgYSBuZXcgcnVzYWdlIHRyYWNlcgoJICBUaGUgdHJhY2VyIGhvb2tzIHVwIHRvIGFsbCBwcm9iZXMgYW5kIGxvZ3MgcmVzb3VyY2UgdXNhZ2UgZmlndXJlcy4KCjIwMTQtMDctMTUgMTA6MjA6MjIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgZ3N0LXN0YXRzOiBmaWx0ZXIgY29tcGxldGUgdGhyZWFkIHNlY3Rpb24gaWYgd2UgaGF2ZSBubyBwYWRzCgoyMDEzLTExLTE5IDA4OjA0OjM4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICBzdGF0czogaW1wcm92ZSB0aGUgaGFuZGxpbmcgb2YgcGFyZW50YWdlCgkgIExvZyBuZXcgb2JqZWN0IGFmdGVyIHdlIGRpZCB0aGUgY2hlY2sgZm9yIHBhcmVudHMuCgoyMDEzLTExLTE3IDExOjM3OjE0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIHN0YXRzOiBwcmludCB0aHJlYWQga2V5IGZvciBzdGF0cyBhbmQgZmlsdGVyIGVtcHR5IHBhZC1zZWN0aW9ucwoKMjAxMy0xMS0xNyAxMToxNTozNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICBzdGF0czogdXBkYXRlIGJ1ZmZlciBmbGFncwoJICBSZW1vdmUgc29tZSBidWZmZXIgZmxhZ3MgdGhhdCB3ZXJlIGxlZnRvdmVycyBmcm9tIDAuMTAgYW5kIGhhbmRsZSBuZXcgMS4wIGJ1ZmZlcgoJICBmbGFncy4KCjIwMTMtMTEtMDQgMjA6MTE6MDkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmg6CgkqIHRvb2xzLy5naXRpZ25vcmU6CgkqIHRvb2xzL01ha2VmaWxlLmFtOgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgc3RhdHM6IGFkZCBhIHN0YXRzIGZyb250ZW5kCgkgIFBhcnNlIHRoZSBsb2cgYW5kIGNvbGxlY3QgZGF0YSBmcm9tIHRyYWNlciBtZXNzYWdlcy4KCjIwMTMtMTEtMTUgMDk6MzY6MjEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkgIHRyYWNlcjogdXNlIHRoZSBzYW1lIHRpbWViYXNlIGFzIHRoZSBsb2dnaW5nCgoyMDE0LTA3LTE2IDA5OjIyOjM3ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkgIGRlc2lnbjogdXBkYXRlIGRlc2lnbgoKMjAxNC0wNy0xNiAwOTo0MTo0OCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSAgbG9nOiBhZGQgcXVlcnkgbG9nIGNhdGVnb3J5CgoyMDEzLTExLTAyIDE4OjI0OjU2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlci5jOgoJICB0cmFjZXI6IHBhcnNlIHBhcmFtZXRlcnMKCjIwMTQtMDctMTYgMDk6MjI6MTQgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXI6IGFkZCBtb3JlIGhvb2tzIGFuZCBoYW5kbGUgaXQgaW4gdGhlIHBsdWdpbnMKCjIwMTMtMTAtMzAgMDg6MTk6NDEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgc3RhdHM6IGhhbmRsZSBidWZmZXIgbGlzdHMKCjIwMTMtMTAtMzAgMDg6MDQ6MjcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJICBsb2c6IG1ha2UgdGhlIGxvZyB0cmFjZXIgbW9yZSB2ZXJib3NlIGFnYWluCgkgIERlZmluZSBsb2cgZm9ybWF0cyBwZXIgbWVzc2FnZSB0eXBlIGFuZCBwcmludCBkZXRhaWxzLgoKMjAxMy0xMC0yOCAyMTo1OToxOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXI6IHVzZSBhIG1hY3JvcyBmb3IgdGhlIGVuYWJsZWQgY2hlY2sKCSAgQXZvaWQgYSBmdW5jdGlvbiBjYWxsIGFuZCBjaGVjayB0aGUgdmFyaWFibGVzIGZyb20gdGhlIG1hY3JvLgoKMjAxMy0xMC0yOCAyMTozOTo1MiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlci5oOgoJICB0cmFjZXI6IHVzZSBtYWNyb3MgZm9yIGhvb2tzCgkgIFdyYXAgdGhlIGhvb2sgd2l0aCBhIHByZSBhbmQgcG9zdCBtYWNyby4gVGhpcyBsb29rcyBsZXNzIGludHJ1c2l2ZSB0aGFuIHRoZQoJICBwcmV2aW91cyB2ZXJzaW9uLCBhbHRob3VnaCBpdCBpcyBhIGxpdHRsZSBsZXNzIG9wdGltaXplZC4KCjIwMTMtMTAtMjggMjE6Mjg6MTggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyOiBwYXNzIHRoZSB0aW1lc3RhbXAgZGlyZWN0bHkKCSAgQXZvaWQgdGhlIHN0cnVjdHVyZSBtYXNoYWxsaW5nIChhbmQgd2VpcmQgZmllbGQgbmFtaW5nKS4KCjIwMTMtMTAtMjggMDg6MDg6MjAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHRyYWNlcnMuYzoKCSAgc3RhdHM6IGFkZCBhIHRyYWNlciB0aGF0IGNvbGxlY3RzIHBpcGVsaW5lIHN0YXRpc3RpY3MKCSAgVGhpcyBpcyBtb3JlIG9yIGxlc3MgZXF1aXYgdG8gdGhlIHRoZSBzdGF0aXN0aWNzIGluIGdzdC10cmFjZWxpYi4KCjIwMTMtMTAtMjggMDg6MDc6NTIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmg6CgkgIGxvZzogYWRkIGNhc3QgbWFjcm8KCjIwMTMtMTAtMjcgMjA6NDM6MjUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJICB0cmFjZXI6IHBhc3MgdGhlIGluc3RhbmNlIHRvIHRoZSB2bWV0aG9kCgoyMDEzLTEwLTI3IDE3OjA1OjUyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSAgZGVzaWduOiBtb3JlIHBsYW5uaW5nCgoyMDEzLTEwLTI3IDE3OjA0OjMyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlci5oOgoJICB0cmFjZXI6IHN3aXRjaCB0byBxdWFya3MgYW5kIGFkZCBhbm90aGVyIGhvb2sgZm9yIGJ1ZmZlciBmbG93CgkgIFVzZSBwcmUtZGVmaW5lcyBxdWFya3MgYXMgdGhpcyB3aWxsIGJlIGNhbGxlZCBxdWl0ZSBvZnRlbi4KCjIwMTMtMTAtMjcgMTI6NDU6NTQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSAgdHJhY2VyOiBhZGQgdGhlIGhvb2staWQgdG8gdGhlIGludm9rZSBzaWduYXR1cmUKCSAgVHJhY2VycyB0aGF0IHN1YnNjcmliZSB0byBtdWx0aXBsZSBob29rcyBjYW4ga25vdyB3aGF0IGhvb2sgd2FzIHVzZWQuCgoyMDEzLTEwLTI2IDIyOjA1OjEzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgaW5zcGVjdDogYWRkIHN1cHBvcnQgZm9yIHRoZSBuZXcgZmFjdG9yeQoJICBIYW5kbGUgdHJhY2VyIG1vZHVsZXMuCgoyMDEzLTEwLTI0IDE0OjQ3OjQ4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogZ3N0L2dzdHRyYWNlcmZhY3RvcnkuYzoKCSogZ3N0L2dzdHRyYWNlcmZhY3RvcnkuaDoKCSogcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy90cmFjZXJzLy5naXRpZ25vcmU6CgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3R0cmFjZXJzLmM6CgkgIHRyYWNlcjogaW5pdGlhbCBwcm90b3R5cGUgZm9yIHRoZSB0cmFjaW5nIHN1YnN5c3RlbQoKMjAxNS0xMC0wNSAxMToxMjo0NyArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0ZXN0cy9nc3QtbGF1bmNoOiBGaXggc2FtcGxlIG1lbW9yeSBsZWFrCgkgIFdoZW4gc2FtcGxlIGlzIGdvdCB1c2luZyBnc3RfdGFnX2xpc3RfZ2V0X3NhbXBsZV9pbmRleCwgaXQgc2hvdWxkCgkgIGJlIGZyZWUnZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NjA2OQoKMjAxNS0xMC0wMiAyMjoxNzowNCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBVcGRhdGUgR0xpYiBkZXBlbmRlbmN5IHRvIDIuNDAuMAoKMjAxNS0wOC0yMCAxNjoyMTo1OSArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1pbml0LnhtbDoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtY29tcGxldGlvbi1oZWxwZXIuYzoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcHRwLWhlbHBlci5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3B0cC9wdHAtcHJpbnQtdGltZXMuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSAgZ3N0cmVhbWVyOiBGaXggbWVtb3J5IGxlYWtzIHdoZW4gY29udGV4dCBwYXJzZSBmYWlscwoJICBXaGVuIGdfb3B0aW9uX2NvbnRleHRfcGFyc2UgZmFpbHMsIGNvbnRleHQgYW5kIGVycm9yIHZhcmlhYmxlcyBhcmUgbm90IGdldHRpbmcgZnJlZSdkCgkgIHdoaWNoIHJlc3VsdHMgaW4gbWVtb3J5IGxlYWtzLiBGcmVlJ2luZyB0aGUgc2FtZS4KCSAgQW5kIHJlcGxhY2luZyBnX2Vycm9yX2ZyZWUgd2l0aCBnX2NsZWFyX2Vycm9yLCB3aGljaCBjaGVja3MgaWYgdGhlIGVycm9yIGJlaW5nIHBhc3NlZAoJICBpcyBub3QgTlVMTCBhbmQgc2V0cyB0aGUgdmFyaWFibGUgdG8gTlVMTCBvbiBmcmVlJ2luZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Mzg1MQoKMjAxNS0wOS0yMyAyMzowMzoyOSArMDIwMCAgSmFuIEFsZXhhbmRlciBTdGVmZmVucyAoaGVmdGlnKSA8amFuLnN0ZWZmZW5zQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSAgdGltZWR2YWx1ZWNvbnRyb2xzb3VyY2U6IFVzZSBnX3NlcXVlbmNlX2xvb2t1cCB3aGVyZSBwb3NzaWJsZQoJICBXaGVuIGxvb2tpbmcgZm9yIGV4YWN0IG1hdGNoZXMgaW4gdGhlIHNlcXVlbmNlLCB0aGlzIHJlc3VsdHMKCSAgaW4gbXVjaCBzaW1wbGVyIGNvZGUgdGhhbiB3aGVuIHVzaW5nIGdfc2VxdWVuY2Vfc2VhcmNoLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1NDk4CgoyMDE1LTEwLTAxIDIyOjA5OjU4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZTogZml4IHdyaXRlIG92ZXIgdGhlIGFycmF5IHNpemUKCSAgVGhlICcrKycgZ290IGluY2lkZW50aWFsbHkgYWRkZWQgZHVyaW5nIHRoZSByZWZhY3RvcmluZyBpbgoJICAyZmUzOTM5Y2U3ZWE4NGM0NWRkOTIyZTdmMTA5N2RkMDdmMTFmYzVkLgoKMjAxNS0wOS0zMCAxNzoyOToxNiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfYXJtLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2hwcGEuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9wcGMzMi5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9wcGM2NC5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9zcGFyYy5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF94ODZfNjQuaDoKCSAgY29udHJvbHBvaW50OiBjaGFuZ2UgdGhlIHBhZGRpbmcgdG8gYmUgb2YgYXJjaC1pbmRlcGVuZGVudCBzaXplCgkgIFRoZSBkZWZhdWx0IHBhZGRpbmcgSSBpbnRyb2R1Y2VkIGluIGQ0ZjgxZmI0ZTYyZDM0YTRjMWRhYmM2NWIyM2VkZTdjZTc2OTRjNjMgaXMKCSAgYWN0dWFsbHkgb25seSA0IHBvaW50ZXJzIGFuZCBvbiAzMmJpdCBwbGF0Zm9ybXMgYWxyZWFkeSBzbWFsbGVyIHRoYW4gdGhlIHVuaW9uLgoJICBSZXBsYWNlIGl0IHdpdGggYSBmaXhlZCA2NGJ5dGUgcGFkZGluZy4gRG9uJ3QgYWRkIHRoZSBub3JtYWwgcGFkZGluZyBmb3Igbm93LgoJICBGaXhlcyAjNzU1ODIyCgoyMDE1LTA4LTIxIDE3OjQyOjUyICswMTAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzYmdAb3NnLnNhbXN1bmcuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdHJlYW1lci11bmluc3RhbGxlZDogYWRkIHBhdGggZm9yIE9wZW5DViBoYWFyIGNhc2NhZGUgZmlsZXMKCSAgU29tZSBPcGVuQ1YgcGx1Z2lucyB1c2UgaGFhciBjYXNjYWRlIGZpbGVzIHRoYXQgYXJlIGluY2x1ZGVkIGluIHRoZQoJICBHU3RyZWFtZXIgc291cmNlcy4gVG8gYmUgYWJsZSB0byB1c2UgdGhlc2UgZnJvbSB1bmluc3RhbGxlZCwgdGhleSBuZWVkCgkgIHRvIGJlIGZvdW5kIHRocm91Z2ggYW4gZW52aXJvbm1lbnQgdmFyaWFibGUuCgkgIEFkZGluZyB0aGlzIGVudmlyb25tZW50IHZhcmlhYmxlIHBvaW50aW5nIHRvIGhhYXIgY2FzY2FkZSBmaWxlcyB0bwoJICBnc3QtdW5pbnN0YWxsZWQuCgoyMDE1LTA5LTI4IDE2OjAxOjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IGZpeCAnZm9ybWF0IHN0cmluZyBpcyBub3QgYSBzdHJpbmcgbGl0ZXJhbCcgd2FybmluZyB3aXRoIGNsYW5nCgkgIEJyb2tlIHRoaXMgd2hlbiBJIHJlbW92ZWQgdGhlIEdfR05VQ19QUklOVEYgaW4gYSBwcmV2aW91cwoJICBjb21taXQgdG8gZml4IGluZGVudGF0aW9uLCBzaW5jZSBpdCB3YXMgbm90IHJlYWxseSBuZWVkZWQuCgkgIFR1cm5zIG91dCB1bmxpa2UgZ2NjIGNsYW5nIHdhcm5zIHRob3VnaCBpZiBhIG5vbi1saXRlcmFsCgkgIGZvcm1hdCBzdHJpbmcgaXMgcGFzc2VkIHRoZW4uIEZpeCBpbmRlbnRhdGlvbiBkaWZmZXJlbnRseS4KCSAgaHR0cDovL2NsYW5nLmxsdm0ub3JnL2RvY3MvQXR0cmlidXRlUmVmZXJlbmNlLmh0bWwjZm9ybWF0LWdudS1mb3JtYXQKCjIwMTUtMDktMjggMTY6NDU6NDcgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBmaXggdGhlIG1hbnVhbCB0ZXN0cyBieSBzZXR0aW5nIHRoZSByaWdodCBlbnYtdmFycwoKMjAxNS0wOS0yOCAxNjoyMjozNiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuaDoKCSAgZGlyZWN0Y29udHJvbGJpbmRpbmc6IGZpeCBmb3JtYXR0aW5nCgoyMDE1LTA5LTI4IDE2OjIxOjU1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5oOgoJICBpbmRleDogbWFyayB0d28gc3RydWN0cyB0aGF0IGRvbid0IGhhdmUgYWJpIHBhZGRpbmcKCjIwMTUtMDktMjggMTY6MTk6NDAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2FybS5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9ocHBhLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2kzODYuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfcHBjMzIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfcHBjNjQuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3Rfc3BhcmMuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIGNvbnRyb2xsZXI6IGFkZCB0aGUgbWlzc2luZyBhYmkgcGFkZGluZwoJICBXaGlsZSB0aGlzIHRlY2huaWNhbGx5IGlzIGFuIGFiaSBicmVhaywgd2UgZGVjaWRlZCB0byBkbyB0aGlzOgoJICAxKSB0aGUgc3RydWN0IGlzIGRvY3VtZW50ZWQgdG8gYmUgaW50ZXJuYWwKCSAgMikgdGhlIHN0cnVjdCBpcyBhbGxvY2VkIGFuZCBmcmVlZCBpbnNpZGUgdGhlIGxpYnJhcnkKCSAgMykgdGhlcmUgYXJlIG5vIHB1YmxpYyBtZXRob2RzIHRoYXQgcmVjZWl2ZSBvciByZXR1cm4gaW5zdGFuY2VzCgkgIDQpIHRoZSBvbmx5IGNvZGUga25vd24gdG8gdXNlIHRoaXMgc3RydWN0IGFyZSBjbGFzc2VzIGNvbnRhaW5kIGhlcmUKCjIwMTUtMDktMjQgMDA6MDQ6NDggKzEwMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRleHQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJpbjogaW1wbGVtZW50IGNvbnRleHQgcHJvcGFnYXRpb24gd2hlbiBhZGRpbmcgZWxlbWVudHMKCSAgV2hlbiBhZGRpbmcgYW4gZWxlbWVudCB0byBhIGJpbiB3ZSBuZWVkIHRvIHByb3BhZ2F0ZSB0aGUgR3N0Q29udGV4dCdzCgkgIHRvL2Zyb20gdGhlIGVsZW1lbnQuCgkgIFRoaXMgbW92ZXMgdGhlIEdzdENvbnRleHQgbGlzdCBmcm9tIEdzdEJpbiB0byBHc3RFbGVtZW50IGFuZCBhZGRzCgkgIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyB0byBnZXQgdGhlIGN1cnJlbnRseSBzZXQgbGlzdCBvZiBHc3RDb250ZXh0J3MuCgkgIFRoaXMgZG9lcyBub3QgZGVhbCB3aXRoIHRoZSBjb2xsZWN0aW9uIG9mIEdzdENvbnRleHQncyBwcm9wYWdhdGVkCgkgIHVzaW5nIEdTVF9DT05URVhUX1FVRVJZLiAgRWxlbWVudCBzdWJjbGFzc2VzIGFyZSBhZHZpc2VkIHRvIGNhbGwKCSAgZ3N0X2VsZW1lbnRfc2V0X2NvbnRleHQgaWYgdGhleSBuZWVkIHRvIHByb3BhZ2F0ZSBHc3RDb250ZXh0J3MKCSAgcmVjZWl2ZWQgZnJvbSB0aGUgY29udGV4dCBxdWVyeS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTU3OQoKMjAxNS0wOS0wNyAwOTozOTozMiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmg6CgkgIGludGVycG9sYXRpb25jb250cm9sc291cmNlOiBhZGQgY3ViaWNfbW9ubyBpbnRlcnBvbGF0aW9uCgkgIFRoaXMgbmV3IG1vZGUgd29uJ3Qgb3ZlcnNob290IHRoZSBtaW4vbWF4IHkgdmFsdWVzIHNldCBieSB0aGUgY29udHJvbC1wb2ludHMuCgkgIEZpeGVzICM3NTQ2NzgKCSAgQVBJOiBHU1RfSU5URVJQT0xBVElPTl9NT0RFX0NVQklDX01PTk8KCjIwMTUtMDktMDcgMDk6Mzc6MDUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIGludGVycG9sYXRpb25jb250cm9sc291cmNlOiByZWZhY3RvciBjb2RlCgkgIEV4dHJhY3QgY29tbW9uIGNvZGUgdGhhdCBsb29rcyB1cCB0aGUgY29udHJvbC1wb2ludHMgYXJvdW5kIHRoZSB0aW1lc3RhbXAuIEFkZAoJICBzb21lIGNvbW1lbnRzIGZvciBmdXR1cmUgaW52ZXN0aWdhdGlvbi4KCjIwMTUtMDktMDQgMTY6Mzg6MzcgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sbGVyLWdyYXBoLmM6CgkgIHRlc3RzL2V4YW1wbGVzOiBhZGQgYSBkZW1vIGZvciB0aGUgaW50ZXJwb2xhdGlvbiBjb250cm9sIHNvdXJjZSBtb2RlcwoJICBUaGlzIGlzIGluIHByZXBhcmF0aW9uIGZvciBuZXcgbW9kZXMgdG8gYmUgYWRkZWQuIEluIHBhcnRpY3VsbGFyIGl0IGRlbW9uc3RyYXRlcwoJICBob3cgdGhlIGN1YmljIHNwbGluZXMgb3ZlcnNob290IHRoZSByYW5nZS4KCjIwMTUtMDktMDkgMTE6NTU6MjggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiByZW1vdmUgcHJveHlpbmcgb2YgYWNjZXB0LWNhcHMgZG93bnN0cmVhbQoJICBUaGUgZGVzaWduIGlzIHRvIG9ubHkgZG8gYSBsb2NhbCBjaGVjawoKMjAxNS0wOC0yNSAxOTozNzozMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IGZhbGxiYWNrIHRvIGNhcHMgcXVlcmllcyB3aXRoIHByb3h5IHBhZHMKCSAgQSBwcm94eS1wYWQgc2hvdWxkIGFsd2F5cyBwcm94eSB0aGUgY2FwcyByZWxhdGVkIHF1ZXJpZXMKCSAgYW5kIGV2ZW50cyB0byBpdHMgZG93biBvciB1cHN0cmVhbSBwZWVycyBvbiB0aGUgb3RoZXIgc2lkZQoJICBvZiB0aGUgZWxlbWVudC4gRmFsbGluZyBiYWNrIHRvIGEgY2FwcyBxdWVyeSBzZWVtcyB3cm9uZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDExMgoKMjAxNS0wOS0yNiAxMTowMzoyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogbWlub3IgZG9jIGZpeGVzCgoyMDE1LTA5LTAyIDE3OjU4OjM4ICswMzAwICBWaXZpYSBOaWtvbGFpZG91IDx2aXZpYUBhaGlydS5ldT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHNlZ21lbnQ6IFJlcGxhY2VkIGdzdF9zZWdtZW50X3RvX3Bvc2l0aW9uIHdpdGggZ3N0X3NlZ21lbnRfcG9zaXRpb25fZnJvbV9ydW5uaW5nX3RpbWUKCSAgZ3N0X3NlZ21lbnRfdG9fcG9zaXRpb24gbWlnaHQgY2F1c2UgY29uZnVzaW9uLCBlc3BlY2lhbGx5IHdpdGggdGhlIGFkZGl0aW9uIG9mCgkgIGdzdF9zZWdtZW50X3Bvc2l0aW9uX2Zyb21fc3RyZWFtX3RpbWUgLiBEZXByZWNhdGVkIGdzdF9zZWdtZW50X3RvX3Bvc2l0aW9uCgkgIG5vdywgYW5kIHJlcGxhY2VkIGl0IHdpdGggZ3N0X3NlZ21lbnRfcG9zaXRpb25fZnJvbV9ydW5uaW5nX3RpbWUuCgkgIEFsc28gYWRkZWQgdW5pdCB0ZXN0cy4KCjIwMTUtMDktMDIgMTc6Mzg6MjUgKzAzMDAgIFZpdmlhIE5pa29sYWlkb3UgPHZpdmlhQGFoaXJ1LmV1PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogQWRkZWQgdW5pdCB0ZXN0cyBmb3IgZ3N0X3NlZ21lbnRfcG9zaXRpb25fZnJvbV9zdHJlYW1fdGltZQoKMjAxNS0wOS0yNSAxNTo1NzoxNiArMDMwMCAgVml2aWEgTmlrb2xhaWRvdSA8dml2aWFAdG9vbHNvbmFpci5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZTogUmVuYW1lZCAncmVzdWx0JyB0byAnc3RyZWFtX3RpbWUnCgkgIFJlbmFtZWQgdGhlICJyZXN1bHQiIHZhcmlhYmxlIHRvICJzdHJlYW1fdGltZSIgZm9yIGJldHRlciByZWFkYWJpbGl0eS4KCjIwMTUtMDktMjUgMTU6NTY6NDUgKzAzMDAgIFZpdmlhIE5pa29sYWlkb3UgPHZpdmlhQHRvb2xzb25haXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHNlZ21lbnQ6IEFkZGVkIGdzdF9zZWdtZW50X3Bvc2l0aW9uX2Zyb21fc3RyZWFtX3RpbWUoKQoJICBnc3Rfc2VnbWVudF9wb3NpdGlvbl9mcm9tX3N0cmVhbV90aW1lKCkgd2lsbCBjb252ZXJ0IHN0cmVhbSB0aW1lIGludG8gYQoJICBwb3NpdGlvbiBpbiB0aGUgc2VnbWVudCBzbyB0aGF0IGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lKCkgd2l0aCB0aGF0CgkgIHBvc2l0aW9uIHJldHVybnMgdGhlIHNhbWUgc3RyZWFtIHRpbWUuIEl0IHdpbGwgcmV0dXJuIC0xIGlmIHRoZSBzdHJlYW0gdGltZQoJICBnaXZlbiBpcyBub3QgaW5zaWRlIHRoZSBzZWdtZW50LgoKMjAxNS0wOS0wMiAxNjozNjozNSArMDMwMCAgVml2aWEgTmlrb2xhaWRvdSA8dml2aWFAYWhpcnUuZXU+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIHNlZ21lbnQ6IFJld29yZGluZyBvZiBzdHJ1Y3QgZmllbGQgZGVzY3JpcHRpb25zCgkgIFRoZSBuZXcgd29yZGluZyBtYWtlcyBpdCBlYXNpZXIgdG8gdW5kZXJzdGFuZCBleGFjdGx5IHdoYXQgZWFjaCBmaWVsZCBvZiB0aGUKCSAgR3N0U2VnbWVudCBzdHJ1Y3QgcmVwcmVzZW50cy4KCjIwMTUtMDgtMzEgMTU6MzU6MTEgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IE1ha2Ugc3VyZSB0aGF0IHRpbWVzdGFtcCArIGRpZmYgaW4gUW9TIGV2ZW50cyBpcyBuZXZlciBzbWFsbGVyIHRoYW4gMAoJICBXaGVuIGEgcnVubmluZy10aW1lLW9mZnNldCBpcyBzdG9yZWQgaW4gdGhlIGV2ZW50LCBpdCBjb3VsZCBiZWNvbWUgc21hbGxlcgoJICB0aGFuIDAgYWx0aG91Z2ggdGhlIGV2ZW50IGlzIG90aGVyd2lzZSBjb3JyZWN0LiBUaGlzIGNhbiBoYXBwZW4gd2hlbiBwYWQKCSAgb2Zmc2V0cyBhcmUgdXNlZC4KCSAgVG8gcHJldmVudCB0aGlzLCB3ZSBzZXQgdGhlIHRpbWVzdGFtcCB0byAtZGlmZiwgc28gdGhhdCBpbiB0aGUgZW5kIHRoZSBzdW0gb2YKCSAgYm90aCBpcyBleGFjdGx5IDAuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQzNTYKCjIwMTUtMDktMTYgMjM6NDA6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6CgkgIHVyaTogQWRkIHRlc3QgZm9yIGNvcnJlY3QgYWJzb2x1dGUgVVJJIGhhbmRsaW5nIGluIGdzdF91cmlfZnJvbV9zdHJpbmdfd2l0aF9iYXNlKCkKCSAgSWYgdGhlIHNlY29uZCBwYXJhbWV0ZXIgaXMgYW4gYWJzb2x1dGUgVVJJLCB0aGUgYmFzZSBzaG91bGQgaGF2ZSBubyBlZmZlY3QgYW5kCgkgIHRoZSBzZWNvbmQgcGFyYW1ldGVyIHNob3VsZCBiZSByZXR1cm5lZCBhZ2Fpbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NTEzNAoKMjAxNS0wOS0yNSAyMzo1MTowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS42LjAgPT09CgoyMDE1LTA5LTI1IDIzOjE0OjMzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuNi4wCgoyMDE1LTA5LTI1IDIyOjQxOjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNS0wOS0yNSAxMDoxODowNyArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHBjbG9jazogRml4IGVycm9yIGxlYWsgZHVyaW5nIGZhaWx1cmVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTU2MDcKCjIwMTUtMDktMjEgMTM6NTg6NTEgKzAyMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkgIGZ1bm5lbDogRml4IHJhY3kgc3RhdGUgY2hhbmdlCgkgIEl0ZXJhdG9yIG1heSBuZWVkIHRvIGJlIHJlc3luY2VkLCBmb3IgaW5zdGFuY2UgaWYgcGFkcyBhcmUgcmVsZWFzZWQKCSAgZHVyaW5nIHN0YXRlIGNoYW5nZS4KCSAgZ290X2VvcyBzaG91bGQgYmUgcHJvdGVjdGVkIGJ5IHRoZSBvYmplY3QgbG9jayBvZiB0aGUgZWxlbWVudCwgbm90IG9mCgkgIHRoZSBwYWQsIGFzIGlzIHRoZSBjYXNlIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhlIGZ1bm5lbCBjb2RlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1MzQzCgoyMDE1LTA5LTIxIDE1OjIyOjE5ICswMjAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgYmluOiBlbGVtZW50OiBJZ25vcmUgYWN0aXZhdGUgcmVzdWx0IGZvciByZW1vdmVkIHBhZHMgb24gc3RhdGUgY2hhbmdlCgkgIFRoaXMgZml4ZXMgYSByYWNlIHdoZXJlIGEgc3RhdGUgY2hhbmdlIG1heSByZXR1cm4gZmFpbHVyZSBpZiBpdCBoYXMKCSAgcmVxdWVzdCBwYWRzIHRoYXQgYXJlIGRlYWN0aXZhdGVkIGFuZCByZW1vdmVkIChhbmQgdGh1cyBoYXZlIG5vCgkgIHBhcmVudCkgYXQgdGhlIHNhbWUgdGltZSBhcyB0aGUgZWxlbWVudCBjaGFuZ2VzIHN0YXRlIGFuZCAoZGUpYWN0aXZhdGVzCgkgIGl0cyBwYWRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1MzQyCgoyMDE1LTA5LTI0IDEwOjIzOjE0ICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBkb24ndCBjcmFzaCB3aGVuIGFkZGluZyBhIHNpbmstaGFybmVzcyB3aXRob3V0IGgtPnNpbmtwYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NTUxMQoKMjAxNS0wOS0yMyAyMDozMTo0OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBQcmludCBidWZmZXIgUFRTIHdoZW4gc3VibWl0dGluZyBhbiBpbnB1dCBidWZmZXIKCjIwMTUtMDktMjEgMTQ6NTg6NDYgKzA5MDAgIEV1bmhhZSBDaG9pIDxldW5oYWUxLmNob2lAc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogRml4IGJ1ZmZlciBsZWFrIGluIHN5bmNfc3RyZWFtcyAmIGNhY2hlX2J1ZmZlcnMgbW9kZQoJICBBZnRlciBkb2luZyBnc3RfcGFkX3B1c2goKSBpbiBjYXNlIG9mIHN5bmNfc3RyZWFtcyBhbmQgY2FjaGVfYnVmZmVycywKCSAgaWYgdGhlIGJ1ZmZlciBjYW4gbm90IGJlIGtlcHQgaW4gY2FjaGUsIGl0IHNob3VsZCBiZSB1bnJlZmZlZCB0byBhdm9pZAoJICBtZW1vcnkgbGVhY2thZ2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTUxNDEKCjIwMTUtMDktMTkgMTY6NTc6MjYgKzA1MzAgIFZpa3JhbSBGdWdybyA8dmlrcmFtLmZ1Z3JvQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgZ3N0OiBEb2N1bWVudGF0aW9uIHR5cG8gZml4IGluIGNhcHMgJiBwYWQgQVBJcwoJICBnc3RfY2Fwc19jYW5faW50ZXJzZWN0KCkgJiBHU1RfUEFEX0lTX0FDQ0VQVF9JTlRFUlNFQ1QoKQoJICBkb2N1bWVudGF0aW9uIHR5cG8gZml4LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1MjU3Cgo9PT0gcmVsZWFzZSAxLjUuOTEgPT09CgoyMDE1LTA5LTE4IDE5OjA3OjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuNS45MQoKMjAxNS0wOS0xOCAxOTowNzoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTUtMDktMTggMTE6NDk6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby96aF9DTi5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTUtMDktMTUgMTA6NTY6NDAgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0YnVmZmVyc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0Y2xvY2tzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb2xsc3RyZXNzLmM6CgkgIGRvd25sb2FkYnVmZmVyLCBiZW5jaG1hcmtzOiBmaXggZXJyb3IgbGVha3MgaW4gZmFpbHVyZSBjb2RlIHBhdGhzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTUwMTkKCjIwMTUtMDktMTUgMTA6NTI6NTUgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogRml4IGluZGVudGF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTUwMTkKCjIwMTUtMDktMTUgMTg6MDU6MTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBzcHJpbmtsZSBzb21lIGFsbG93LW5vbmUgYW5kIG91dCBhbm5vdGF0aW9ucyBmb3IgZy1pCgoyMDE1LTA5LTE0IDExOjAxOjExICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGZpeCB0eXBvIGluIGxvZyBtZXNzYWdlIHdoZW4gdGhyZWFkcG9vbCBhbGxvYyBmYWlscwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0OTc1CgoyMDE1LTA5LTExIDE3OjU4OjQ4ICswMzAwICBJZ29yIFJvbmRhcmV2IDxpZ29yLnJvbmRhcmV2QGdtYWlsLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBjb25maWd1cmU6IENoZWNrIGZvciBzb2NrZXRwYWlyKCkgaW4gLWxzb2NrZXQgdG9vCgkgIE9uIGUuZy4gUU5YIGl0IGlzIGluIGFuIGV4dGVybmFsIGxpYnJhcnksIG5vdCBsaWJjLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0ODc1CgoyMDE1LTA5LTA5IDEzOjEwOjA0ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxnaXRAYXJ1bnJhZ2hhdmFuLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIFJldmVydCAiZG9jczogTWFrZSBzdXJlIGdzdF9kZWJ1Z19iaW5fdG9fZG90X2RhdGEoKSBpcyBkb2N1bWVudGVkIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDBkZmZlYjAzMDE4ZDEyYmU1MjJjMmQ5N2FhYWY4MTAyMTUzYmQ3YzAuCgkgIFRoZSBjb21taXQgaXMgZXJyb25lb3VzIGFuZCBkb2N1bWVudHMgdGhlIGZ1bmN0aW9uIHR3aWNlLgoKMjAxNS0wNy0yMyAxMjoxODo1MSArMDUzMCAgQXJ1biBSYWdoYXZhbiA8Z2l0QGFydW5yYWdoYXZhbi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBNYWtlIHN1cmUgZ3N0X2RlYnVnX2Jpbl90b19kb3RfZGF0YSgpIGlzIGRvY3VtZW50ZWQKCSAgVGhhbmtzIHRvIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4gZm9yIHBvaW50aW5nIHRoaXMKCSAgb3V0LgoKMjAxNS0wOC0wNSAxMDowNzo1MCArMDIwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBGaXggcmFjZSBmb3IgZ3N0X2hhcm5lc3NfZWxlbWVudF9yZWYKCSAgSW4gb3JkZXIgZm9yIGdzdF9oYXJuZXNzX25ld19mdWxsIHRvIGJlIE1ULXNhZmUgdGhlIGluY3JlYXNlIGFuZAoJICBkZWNyZWFzZSBvZiBIQVJORVNTX1JFRiBtdXN0IGJlIE1ULXNhZmUuIFRoaXMgYWxsb3dzIGZvciBjcmVhdGluZwoJICBtdWx0aXBsZSBoYXJuZXNzZXMgZnJvbSBkaWZmZXJlbnQgdGhyZWFkcyB3cmFwcGluZyB0aGUgc2FtZSBlbGVtZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0NjYxCgoyMDE1LTA4LTA1IDA5OjU5OjM5ICswMjAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogQWxsb3ctbm9uZSBmb3IgY3VzdG9tIHN0cmVzcyBpbml0IGZ1bmMKCSAgSXQgc2hvdWxkIGJlIGFsbG93ZWQgdG8gbm90IGhhdmUgYSBmdW5jdGlvbiB0byBpbml0aWFsaXplIHRoZSB1c2VyIGRhdGEKCSAgc2luY2UgaXQncyBvZnRlbiBub3QgbmVjZXNzYXJ5OyBpdCBtYXkgYWxyZWFkeSBiZSBpbml0aWFsaXplZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDY2MQoKMjAxNS0wOS0wNiAwOTo1ODowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5zaWduYWxzOgoJICBkb2NzOiByZW1vdmUgc2lnbmFsIHRoYXQgbm8gbG9uZ2VyIGV4aXN0cyBmcm9tIGRvY3MKCjIwMTUtMDktMDUgMTE6MjA6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIGZvciB0cmFuc2xhdGVkIHN0cmluZyBjaGFuZ2VzCgoyMDE1LTA5LTA1IDExOjE4OjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogZ3N0LWxhdW5jaDogZml4IC0tZXhjbHVkZSBjb21tYW5kIGxpbmUgb3B0aW9uCgkgIFRoaXMgaGFzIG5vdCB3b3JrZWQgKGFzIGluOiBjcmFzaGVkKSBzaW5jZSAyMDA1LCBzbwoJICBwZXJoYXBzIGl0IHNob3VsZCBqdXN0IGJlIHJlbW92ZWQgaW5zdGVhZC4KCjIwMTUtMDgtMzEgMTI6MDc6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBSZXZlcnQgInF1ZXVlMjogUHJvY2VzcyBTRUVLSU5HIHF1ZXJ5IgoJICBUaGlzIGNhdXNlZCBwcm9ibGVtcyB3aXRoIG9nZ2RlbXV4IHdoZW4gcXVldWUyIHdhcwoJICBvcGVyYXRpbmcgaW4gcXVldWUgbW9kZSBhbmQgdGhlIHNvdXBodHRwc3JjIHVwc3RyZWFtCgkgIGlzIG5vdCBzZWVrYWJsZSBiZWNhdXNlIHRoZSBzZXJ2ZXIgZG9lc24ndCBzdXBwb3J0CgkgIHJhbmdlIHJlcXVlc3RzLiBJdCB3b3VsZCB0aGVuIHN0aWxsIGNsYWltIHNlZWthYmlsaXR5CgkgIGFuZCB0aGVuIHRoaW5ncyBnbyB3cm9uZyBmcm9tIHRoZXJlLgoJICBUaGlzIHJldmVydHMgY29tbWl0IDdiMGI5M2RhZmU0YWM1NDc1NTJjZGI2NmFkZTVkOGFhMDQwNWU3YjQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTM4ODcKCjIwMTUtMDgtMjkgMjA6MTQ6NDQgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogbWlzYyBidWdmaXhlcwoJICAxLiBHZXQgYSBsaXN0IG9mIHBhZCB0ZW1wbGF0ZXMgZnJvbSB0aGUgZWxlbWVudCBjbGFzcywgbm90IHRoZQoJICBmYWN0b3J5LiBUaGlzIGFsbG93cyB1cyB0byBpbnRlcmFjdCB3aXRoIHRlc3QtZWxlbWVudHMgdGhhdCBkb2VzCgkgIG5vdCBoYXZlIGEgZmFjdG9yeS4KCSAgMi4gVXNlIHRoZSBwYWRfdGVtcGxhdGVfY2FwcyBpbiBjYXBzLXF1ZXJpZXMgd2hlbiBjYXBzIGlzIG5vdCBzZXQKCSAgZXhwbGljaXRseSBvbiB0aGUgcGFkLiBOb3QgZG9pbmcgc28gaXMgc2ltcGx5IHdyb25nLCBhbmQgcHJvaGliaXRzCgkgIGludGVyYWN0aW9ucyB3aXRoIHNwZWNpYWwgdGVtcGxhdGVzIHVzZWQgZm9yIHRlc3RpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQxOTMKCjIwMTUtMDgtMjYgMDk6Mjk6MDUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJICB0ZXN0czogZXZlbnQ6IGZpeCBidWlsZCBmYWlsdXJlCgkgIGdzdC9nc3RldmVudC5jOjI1MDo1OiBlcnJvcjog4oCYZm9y4oCZIGxvb3AgaW5pdGlhbCBkZWNsYXJhdGlvbnMgYXJlIG9ubHkKCSAgYWxsb3dlZCBpbiBDOTkgb3IgQzExIG1vZGUKCjIwMTUtMDgtMjQgMjE6MDQ6MzcgKzAzMDAgIFZpdmlhIE5pa29sYWlkb3UgPHZpdmlhQHRvb2xzb25haXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGJpbjogTWFrZSBzdXJlIHdlIGRvbid0IGFkZC9yZW1vdmUgYSBiaW4gdG8vZnJvbSBpdHNlbGYKCSAgRG9pbmcgc28gd291bGQgZGVhZGxvY2sgZnJvbSB0cnlpbmcgdG8gYWNxdWlyZSB0aGUgb2JqZWN0IGxvY2sgdHdpY2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDAzNgoKMjAxNS0wOC0yMSAxNDoyODo0OCAtMDcwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFJlY29uZmlndXJlIGJlZm9yZSBwcm9wb3NlX2FsbG9jYXRpb24KCSAgVGhlcmUgZXhpc3QgY2FzZXMgd2hlcmUgYSByZWNvbmZpZ3VyZSBldmVudCB3YXMgcHJvcGFnYXRlZCBmcm9tCgkgIGRvd25zdHJlYW0sIGJ1dCBjYXBzIGRpZG4ndCBjaGFuZ2UuIEluIHRoaXMgY2FzZSwgd2Ugd291bGQKCSAgcmVjb25maWd1cmUgb25seSB3aGVuIHRoZSBuZXh0IGJ1ZmZlciBhcnJpdmVzLiBUaGUgcHJvYmxlbSBpcyB0aGF0CgkgIGR1ZSB0byB0aGUgYWxsb2NhdGlvbiBxdWVyeSBiZWluZyBjYWNoZWQsIHRoZSByZXR1cm4gcXVlcnkgcGFyYW1ldGVycwoJICBlbmR1cCBvdXRkYXRlZC4KCSAgSW4gdGhpcyBwYXRjaCB3ZSByZWZhY3RvciB0aGUgcmVjb25maWd1cmF0aW5nIGNvZGUgaW50byBhIGZ1bmN0aW9uLCBhbmQKCSAgYWxvbmcgd2l0aCByZWNvbmZpZ3VyaW5nIHdoZW4gYSBuZXcgYnVmZmVyIGNvbWVzIGluLCB3ZSBhbHNvIHJlY29uZmlndXJlCgkgIHdoZW4gYSBxdWVyeSBhbGxvY2F0aW9uIGFycml2ZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTM4NTAKCjIwMTUtMDgtMDcgMTU6Mzk6NTkgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJICBiYXNlc3JjLXRlc3Q6IEZpeCByYWNlIHRlc3Rpbmcgc2VnbWVudCB1cGRhdGUKCSAgQXMgdGhpcyB0ZXN0IGlzIHVzaW5nIGEgc2hvcnQgc2xlZXAgKEdTVF9VU0VDT05ELCB3aGljaCBpcyAxMG1zCgkgIGluIG1pY3Jvc2Vjb25kKSwgc29tZXRpbWVzIHRoYXQgRU9TIGV2ZW50IGlzIHJlY2VpdmVkIGJlZm9yZSB0aGUKCSAgbG9vcCBpbiBiYXNlc3JjIGhhdmUgcnVuIF9kb19zZWVrKCkgYW5kIHB1c2hlZCB0aGUgdXBkYXRlIHNlZ21lbnQuCgkgIFRvIHNvbHZlIHRoaXMgaXNzdWUsIHdlIHdhaXQgZm9yIHRoZSBpbml0aWFsIHNlZ21lbnQgKGFuZCBmbHVzaCBpdCkKCSAgdGhlbiB3ZSB3YWl0IGZvciB0aGUgc2Vjb25kIHNlZ21lbnQgYmVmb3JlIHNlbmRpbmcgRU9TLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzMzY1CgoyMDE1LTA4LTE5IDExOjQ2OjA3ICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgYmluOiBBZGQgTkxFIHRvIEdTVF9QTFVHSU5fUEFUSAoKPT09IHJlbGVhc2UgMS41LjkwID09PQoKMjAxNS0wOC0xOSAxMjo1MDo1NiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjUuOTAKCjIwMTUtMDgtMTkgMTI6MzM6NDEgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE1LTA4LTE5IDExOjE3OjI5ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vemhfQ04ucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE1LTA4LTE4IDE1OjQ0OjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhdm9pZCB0YWcgbGlzdCBzcGFtIGlmIHVwc3RyZWFtIHByb3ZpZGVzIGJpdHJhdGUgdGFncyBhbHJlYWR5CgkgIEV4cGxpY2l0bHkga2VlcCB0cmFjayBhZ2FpbiB3aGV0aGVyIHVwc3RyZWFtIHRhZ3Mgb3IgcGFyc2VyIHRhZ3MKCSAgYWxyZWFkeSBjb250YWluIGJpdHJhdGUgaW5mb3JtYXRpb24sIGFuZCBvbmx5IGZvcmNlIGEgdGFnIHVwZGF0ZQoJICBmb3IgYSBiaXRyYXRlIGlmIHdlIGFyZSBhY3R1YWxseSBnb2luZyB0byBhZGQgdGhlIGJpdHJhdGUgdG8gdGhlCgkgIHRhZ2xpc3QgbGF0ZXIuIFRoaXMgZml4ZXMgY29uc3RhbnQgcmUtc2VuZGluZyBvZiB0aGUgc2FtZSB0YWdsaXN0LAoJICBiZWNhdXNlIHVwc3RyZWFtIHByb3ZpZGVkIGEgYml0cmF0ZSBhbHJlYWR5IGFuZCB3ZSBkaWRuJ3QgYWRkIGl0LAoJICBzbyB3ZSBkaWRuJ3Qgc2F2ZSB0aGUgJ3Bvc3RlZCcgYml0cmF0ZSwgd2hpY2ggd291bGQgdGhlbiBpbiB0dXJuCgkgIGFnYWluIHRyaWdnZXIgdGhlICdiaXRyYXRlIGhhcyBjaGFuZ2VkIHRvbyBtdWNoLCB1cGRhdGUgdGFncycKCSAgY29kZSBwYXRoLiBGaXhlcyB0YWcgc3BhbSB3aXRoIG00YSBmaWxlcyBmb3IgZXhhbXBsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTc2OAoKMjAxNS0wOC0xNyAyMjowNjoxMSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IGJyaW5nIHRoZSBkb3Qgc3R5bGUgYSBiaXQgY2xvc2VyIHRvIHdoYXQgd2UgdXNlIGluIHRoZSBkb2NzCgkgIFVzZSByb3VuZCBjb3JuZXJzIGZvciBiaW5zIGFuZCBlbGVtZW50cy4gUHV0IHNpbmsgcGFkcyBvbiB0aGUgbGVmdCBhbmQgc3JjIHBhZHMKCSAgb24gdGhlIHJpZ2h0IG9mIGVsZW1lbnRzLgoKMjAxNS0wOC0xNSAxODozMDoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IHRhZyBoYW5kbGluZwoJICBJbiAwLjEwIHRoZXJlIHdlcmUgbm8gc3RpY2t5IGV2ZW50cywgYW5kIGFsbCB0YWcgZXZlbnRzCgkgIHNlbnQgd291bGQganVzdCBiZSBtZXJnZWQgd2l0aCB0aGUgcHJldmlvdXNseS1yZWNlaXZlZAoJICB0YWdzLiBJbiAxLnggd2UgaGF2ZSBzdGlja3kgZXZlbnRzLCBhbmQgdGhlIHRhZ3MgaW4gdGhlCgkgIHRhZyBldmVudChzKSBzaG91bGQgYXQgYWxsIHRpbWVzIGNhcnJ5IHRoZSBjb21wbGV0ZSB0YWdzLAoJICBzbyB3ZSBjYW4ndCBqdXN0IHB1c2ggc29tZSB0YWdzIGFuZCB0aGVuIGp1c3QgcHVzaCB0YWdzCgkgIHdpdGgganVzdCBiaXRyYXRlcyB0byB1cGRhdGUgdGhlIGJpdHJhdGVzLCBldGMuCgkgIEluc3RlYWQgd2UgbmVlZCB0byBrZWVwIHRyYWNrIG9mIHRoZSB1cHN0cmVhbSBzdHJlYW0gdGFncwoJICByZWNlaXZlZCwgb2YgdGhlIHRhZ3Mgc2V0IGJ5IHRoZSB2aWRlbyBkZWNvZGVyIHN1YmNsYXNzLAoJICBhbmQgc2VuZCBhbiB1cGRhdGVkIHRhZyBldmVudCB3aXRoIHRoZSBjb21iaW5lZCB0YWdzCgkgIGluY2x1ZGluZyBvdXIgb3duIGJpdHJhdGUgdGFncyAoaWYgYXBwbGljYWJsZSkgd2hlbmV2ZXIKCSAgdGhlIHVwc3RyZWFtIHRhZ3MsIHRoZSBzdWJjbGFzcyB0YWdzIG9yIGFueSBvZiBvdXIgYml0cmF0ZXMKCSAgY2hhbmdlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5NzY4CgoyMDE1LTA4LTE2IDEwOjE1OjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBiYXNlcGFyc2U6IGFkZCBBUEkgZm9yIHN1YmNsYXNzIHRvIHNldCB0YWdzCgkgIFRoaXMgaXMgbmVlZGVkIHNvIHRoYXQgd2UgY2FuIGRvIHByb3BlciB0YWcgaGFuZGxpbmcKCSAgYWxsIGFyb3VuZCwgYW5kIGNvbWJpbmUgdGhlIHVwc3RyZWFtIHRhZ3Mgd2l0aCB0aGUKCSAgdGFncyBzZXQgYnkgdGhlIHN1YmNsYXNzIGFuZCBhbnkgZXh0cmEgdGFncyB0aGUKCSAgYmFzZSBjbGFzcyBtYXkgd2FudCB0byBhZGQuCgkgIEFQSTogZ3N0X2Jhc2VfcGFyc2VfbWVyZ2VfdGFncygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzk3NjgKCjIwMTUtMDgtMTUgMTY6MDE6MjggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHNhdmUgdXBzdHJlYW0gc3RyZWFtIHRhZ3MKCSAgV2UnbGwgbmVlZCB0aG9zZSBsYXRlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTc2OAoKMjAxNS0wOC0xNSAxNjozOTo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbWlub3IgY29kZSBzaW1wbGlmaWNhdGlvbgoJICBVc2UgZ3N0X3BhZF9wZWVyX3F1ZXJ5X2R1cmF0aW9uKCkgYW5kIHJlbW92ZSBhIGZldwoJICB1bm5lY2Vzc2FyeSBsZXZlbHMgb2YgaW5kZW50YXRpb24uIFJlc3Qgb2YgY29kZSBtaWdodAoJICBsb29rcyBhIGJpdCBxdWVzdGlvbmFibGUsIGJ1dCBsZWF2ZSBpdCBhcyBpcyBmb3Igbm93LgoKMjAxNS0wOC0xNSAxNzo1OToyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBCcmVhayBzdGlja3kgZXZlbnQgYXJyYXkgaXRlcmF0aW9ucyBpZiB0aGUgdHlwZSBpcyBiaWdnZXIgdGhhbiB0aGUgb25lIHdlIGxvb2sgZm9yCgkgIE1pY3Jvb3B0aW1pemF0aW9uIHdlIGNhbiBkbyBiZWNhdXNlIHRoZSBhcnJheSBpcyBzb3J0ZWQgYnkgdHlwZS4KCjIwMTUtMDQtMjkgMTU6NDk6MTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IEFkZCBhIG5ldyBHU1RfUFJPQkVfSEFORExFRCByZXR1cm4gdmFsdWUgZm9yIHByb2JlcwoJICBJbiBzb21lIGNhc2VzLCBwcm9iZXMgbWlnaHQgd2FudCB0byBoYW5kbGUgdGhlIGJ1ZmZlci9ldmVudC9xdWVyeQoJICB0aGVtc2VsdmVzIGFuZCBzdG9wIHRoZSBkYXRhIGZyb20gdHJhdmVsbGluZyBmdXJ0aGVyIGRvd25zdHJlYW0uCgkgIFdoaWxlIHRoaXMgd2FzIHNvbWV3aGF0IHBvc3NpYmxlIHdpdGggYnVmZmVyL2V2ZW50cyBhbmQgdXNpbmcKCSAgR1NUX1BST0JFX0RST1AsIGl0IHdhcyBub3QgYXBwbGljYWJsZSB0byBxdWVyaWVzLCBhbmQgd291bGQgcmVzdWx0CgkgIGluIHRoZSBxdWVyeSBmYWlsaW5nLgoJICBXaXRoIHRoaXMgbmV3IEdTVF9QUk9CRV9IQU5ETEVEIHZhbHVlLCB0aGUgYnVmZmVyL2V2ZW50L3F1ZXJ5IHdpbGwKCSAgYmUgY29uc2lkZXJlZCBhcyBzdWNjZXNzZnVsbHkgaGFuZGxlZCwgd2lsbCBub3QgYmUgcHVzaGVkIGZ1cnRoZXIKCSAgYW5kIHRoZSBhcHByb3ByaWF0ZSByZXR1cm4gdmFsdWUgKFRSVUUgb3IgR1NUX0ZMT1dfT0spIHdpbGwgYmUgcmV0dXJuZWQKCSAgVGhpcyBhbHNvIGFsbG93cyBwcm9iZXMgdG8gcmV0dXJuIGEgbm9uLWRlZmF1bHQgR3N0Rmxvd1JldHVybiB3aGVuIGRlYWxpbmcKCSAgd2l0aCBidWZmZXIgcHVzaC4gVGhpcyBjYW4gYmUgZG9uZSBieSBzZXR0aW5nIHRoZQoJICBHU1RfUEFEX1BST0JFX0lORk9fRkxPV19SRVRVUk4oKSBmaWVsZCBhY2NvcmRpbmdseQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4NjQzCgoyMDE1LTA4LTE1IDEzOjI1OjM1ICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBnc3QvZ3N0dmVyc2lvbi5oLmluOgoJICBnc3R2ZXJzaW9uOiBBZGQgbWlzc2luZyBpbmNsdWRlIGluIC5pbiBmaWxlLgoKMjAxNS0wOC0xMSAwMDozNToyMSArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogZ3N0L2dsaWItY29tcGF0Lmg6CgkqIGdzdC9nc3RhbGxvY2F0b3IuaDoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmg6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuaDoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmg6CgkqIGdzdC9nc3RlbGVtZW50bWV0YWRhdGEuaDoKCSogZ3N0L2dzdG1hY3Jvcy5oOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5oOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHRyYWNlLmg6CgkgIEhlYWRlcnM6IGFkZCBtaXNzaW5nIGluY2x1ZGVzLgoKMjAxNS0wOC0xNSAwNjo0MToxNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogYWRkIHRoZSBuZXcgcGFkIGFjY2VwdC10ZW1wbGF0ZSBmbGFnIHRvIHRoZSBkb2NzCgoyMDE1LTA4LTE0IDIyOjQ0OjUwICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiBzZWN0aW9uIGVudHJ5IG1pc3NpbmcgZm9yIGdzdF9kaXJlY3RfY29udHJvbF9iaW5kaW5nX25ld19hYnNvbHV0ZQoKMjAxNS0wOC0xNCAwODoxNDo1MiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogcGFkOiB0ZXN0cyBmb3IgYWNjZXB0LWNhcHMgZGVmYXVsdCBoYW5kbGluZwoJICBDaGVjayBpZiBhbGwgdGhlIGRlZmF1bHQgNCBhY2NlcHQtY2FwcyBwb3NzaWJpbGl0aWVzIGFyZSB3b3JraW5nOgoJICBzdWJzZXQgb3IgaW50ZXJzZWN0IGNoZWNrIGFuZCBxdWVyeS1jYXBzIG9yIHRlbXBsYXRlIGNhcHMgY29tcGFyaXNvbnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTM2MjMKCjIwMTUtMDgtMTQgMDc6NTE6MDcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCBHU1RfUEFEX0ZMQUdfQUNDRVBUX1RFTVBMQVRFCgkgIEl0IHdpbGwgbWFrZSB0aGUgZGVmYXVsdCBhY2NlcHQtY2FwcyBoYW5kbGVyIHVzZSB0aGUgcGFkIHRlbXBsYXRlCgkgIGNhcHMgaW5zdGVhZCBvZiB0aGUgcXVlcnktY2FwcyByZXN1bHQgdG8gY2hlY2sgaWYgdGhlIGNhcHMgaXMKCSAgYWNjZXB0YWJsZS4gVGhpcyBpcyBhbGlnbmVkIHdpdGggd2hhdCB0aGUgZGVzaWduIGRvY3Mgc2F5cyB0aGUKCSAgYWNjZXB0LWNhcHMgc2hvdWxkIGRvIChiZSBub24tcmVjdXJzaXZlKSBhbmQgc2hvdWxkIGJlIGZhc3Rlci4gSXQKCSAgaXMgKm5vdCogZW5hYmxlZCBieSBkZWZhdWx0LCB0aG91Z2guCgkgIEFQSTogR1NUX1BBRF9GTEFHX0FDQ0VQVF9URU1QTEFURQoJICBBUEk6IEdTVF9QQURfSVNfQUNDRVBUX1RFTVBMQVRFCgkgIEFQSTogR1NUX1BBRF9TRVRfQUNDRVBUX1RFTVBMQVRFCgkgIEFQSTogR1NUX1BBRF9VTlNFVF9BQ0NFUFRfVEVNUExBVEUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MzYyMwoKMjAxNS0wOC0xNCAxMToxMDowMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkgIGNoZWNrOiBSZW5hbWUgc3RhdGVzIHVuaXQgdGVzdAoJICBNYWtlcyBpdCBlYXNpZXIgdG8gZGlmZmVyZW50aWF0ZSBmcm9tIG90aGVyIG1vZHVsZXMgc3RhdGVzIHVuaXQgdGVzdAoKMjAxNS0wOC0xMyAxMzowODowMyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHJld29yayBhY2NlcHQtY2FwcwoJICBBY2NvcmRpbmcgdG8gdGhlIGRlc2lnbiBkb2NzOgoJICBUaGUgQUNDRVBUX0NBUFMgcXVlcnkgaXMgbm90IHJlcXVpcmVkIHRvIHdvcmsgcmVjdXJzaXZlbHksIGl0IGNhbiBzaW1wbHkKCSAgcmV0dXJuIFRSVUUgaWYgYSBzdWJzZXF1ZW50IENBUFMgZXZlbnQgd2l0aCB0aG9zZSBjYXBzIHdvdWxkIHJldHVybgoJICBzdWNjZXNzLgoJICBTbyBtYWtlIGl0IGEgc2hhbGxvdyBjaGVjayBpbnN0ZWFkIG9mIHJlY3Vyc2l2ZWxseSBjaGVjayBkb3duc3RyZWFtLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4NjM1CgoyMDE1LTA4LTEzIDEyOjQ0OjI5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogcmVtb3ZlIHNvbWUgZGVhZCBjb2RlCgkgIERvZXNuJ3Qgc2VlbSBsaWtlIGl0IGlzIGdvaW5nIHRvIGdldCBiYWNrIHRvIGxpZmUgYW55dGltZSBzb29uCgkgIEFsc28gcmVtb3ZlcyBhIHt9IGJsb2NrIHRoYXQgd2FzIGxpa2VseSB1c2VkIHRvIGtlZXAgdGhlIGRlYWQKCSAgY29kZSBhcm91bmQuCgoyMDE1LTA4LTExIDA4OjA3OjUzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogcmVzcGVjdCBhY2NlcHQtY2FwcyBpbnRlcnNlY3QgZmxhZwoJICBHc3RQYWQgaGFzIGEgZmxhZyBmb3Igc3VnZ2VzdGluZyBpZiB0aGUgYWNjZXB0LWNhcHMKCSAgcXVlcnkgc2hvdWxkIHVzZSBpbnRlcnNlY3QgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdAoJICBzdWJzZXQgY2FwcyBvcGVyYXRpb24gdG8gdmVyaWZ5IGlmIHRoZSBjYXBzIHdvdWxkIGJlCgkgIGFjY2VwdGFibGUuCgkgIGJhc2V0cmFuc2Zvcm0gY3VycmVudGx5IGFsd2F5cyB1c2VzIHRoZSBzdWJzZXQgY2hlY2sgYW5kCgkgIHRoaXMgcGF0Y2ggbWFrZXMgaXQgaG9ub3IgdGhlIGZsYWcgZm9yIHVzaW5nIGludGVyc2VjdAoJICBpZiBpdCBpcyBzZXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDg2MzUKCjIwMTUtMDgtMTIgMTM6MTI6MzggKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogcmVtb3ZlIHVucmVhY2hhYmxlIHJldHVybiBzdGF0ZW1lbnQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MzUzOAoKMjAxNS0wOC0xMSAxMTowOToyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSAgdGVzdHM6IGlnbm9yZSBuZXcgaGFybmVzcyB0ZXN0IGJpbmFyeQoKMjAxNS0wOC0xMCAxNTozMTozNyArMDMwMCAgVml2aWEgTmlrb2xhaWRvdSA8dml2aWFAYWhpcnUuZXU+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIGRhdGV0aW1lOiBhY2NlcHQganVzdCBhIHRpbWUgYXMgSVNPIDg2MDEgc3RyaW5nIGFuZCB1c2UgdG9kYXkncyBkYXRlIHRoZW4KCSAgSWYgbm8gZGF0ZSBhbmQgb25seSBhIHRpbWUgaXMgZ2l2ZW4gaW4gZ3N0X2RhdGVfdGltZV9uZXdfZnJvbV9pc284NjAxX3N0cmluZygpLAoJICBhc3N1bWUgdGhhdCBpdCBpcyAidG9kYXkiIGFuZCB0cnkgdG8gcGFyc2UgdGhlIHRpbWUtb25seSBzdHJpbmcuICJUb2RheSIgaXMKCSAgYXNzdW1lZCB0byBiZSBpbiB0aGUgdGltZXpvbmUgcHJvdmlkZWQgYnkgdGhlIHVzZXIgKGlmIGFueSksIG90aGVyd2lzZSBaIC0KCSAganVzdCBsaWtlIHRoZSBiZWhhdmlvciBvZiB0aGUgZXhpc3RpbmcgY29kZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MzQ1NQoKMjAxNS0wNy0yNCAwMDo0MTo1NyArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IGFkZCBfc2V0X2ZvcndhcmRpbmcgZnVuY3Rpb24KCSAgVG8gYmUgYWJsZSB0byBkaXNhYmxlIHRoZSBzbGlnaHRseSAibWFnaWMiIGZvcndhcmRpbmcgb2YgdGhlCgkgIG5lY2Vzc2FyeSBldmVudHMgYmV0d2VlbiB0aGUgaGFybmVzc2VzLgoJICBBbHNvIGludHJvZHVjZSBhIG5ldyB0ZXN0LXN1aXRlIGZvciBHc3RIYXJuZXNzLCB0aGF0IGRvY3VtZW50cyB0aGUKCSAgZmVhdHVyZSwgYW5kIHNob3VsZCBob3BlZnVsbHkgZXhwYW5kIGludG8gZG9jdW1lbnRpbmcgbW9zdCBvZiB0aGUKCSAgZmVhdHVyZXMgdGhlIGhhcm5lc3MgcG9zc2Vzc2VzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyNzQ2CgoyMDE1LTA4LTA4IDE3OjU5OjUxICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkgIGRldmljZW1vbml0b3I6IGZpeCBwcm92aWRlciBsZWFrCgoyMDE1LTA4LTA4IDE1OjI4OjE5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEZpeCBwcmV2aW91cyBjb21taXQKCSAgV2Ugd2FudCB0byBnZXQgdGhlIGNhcHMgcXVlcnkgKnJlc3VsdCoKCjIwMTUtMDctMTYgMTg6NTY6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuaDoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmM6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGV2aWNlcHJvdmlkZXI6IEFkZCBtZXRob2QgdG8gaGlkZSBkZXZpY2VzIGZyb20gYSBwcm92aWRlcgoJICBBZGQgbWV0aG9kcyB0byBhZGQvcmVtb3ZlIHRoZSBwcm92aWRlcnMgdGhhdCBzaG91bGQgYmUgaGlkZGVuIGJ5IHRoaXMKCSAgcHJvdmlkZXIuIEFsc28gbWFrZSBhIG1ldGhvZCB0byBnZXQgYSBsaXN0IG9mIGhpZGRlbiBwcm92aWRlcnMuCgkgIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgdG8gaGF2ZSBtdWx0aXBsZSBzeXN0ZW1zIG1vbml0b3IgdGhlIHNhbWUgZGV2aWNlcwoJICBhbmQgcmVtb3ZlIGR1cGxpY2F0ZXMuCgkgIEFkZCBhIHByb3BlcnR5IHRvIHNlZSBhbGwgZGV2aWNlcywgZXZlbiBkdXBsaWNhdGUgb25lcyBmcm9tIGhpZGRlbgoJICBwcm92aWRlcnMuCgoyMDE1LTA4LTA4IDE0OjQyOjUyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGdldF9hbGxvd2VkX2NhcHMoKSBzaG91bGQgZ28gdGhyb3VnaCBib3RoIHBhZHMKCSAgVGhlIHByZXZpb3VzIGltcGxlbWVudGF0aW9uIHdhcyBkb2luZyBhIGRpcmVjdCBjYWxsIHRvIHRoZSBwZWVyIHBhZCwKCSAgd2hpY2ggcmVzdWx0ZWQgaW4gcXVlcnkgcHJvYmVzIG5ldmVyIGJlaW5nIGNhbGxlZCBvbiB0aGUgb3JpZ2luYWwgcGFkLgoJICBJbnN0ZWFkIG9mIHRoYXQsIGdldCB0aGUgcGVlciBwYWQgY2FwcyBieSB1c2luZyBnc3RfcGFkX3BlZXJfcXVlcnkoKQoJICB3aGljaCB3aWxsIGNhbGwgcHJvYmVzIGluIHRoZSBleHBlY3RlZCBmYXNoaW9uLgoKMjAxNS0wOC0wNyAxMDowODoyMSArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogZnJlZSBjYXBzIGR1cmluZyBmYWlsdXJlCgkgIFdoaWxlIGNhbGxpbmcgZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX3NhbXBsZSwgaWYgdGhlcmUgaXMgYSBmYWlsdXJlCgkgIGFmdGVyIGNhcHMgaXMgcmVmJ2VkLCB0aGVuIGNhcHMgaXMgZ2V0dGluZyBsZWFrZWQuIEhlbmNlIGNoZWNraW5nIGZvcgoJICBjYXBzIGluIGZhaWw6IGdvdG8gY29uZGl0aW9uIGFuZCB1bnJlZidpbmcgaXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MzMzOAoKMjAxNS0wNy0yMSAxMzozNTozMyArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBBZGQgcGx1Z2lucyB0byB0aGUgcmVnaXN0cnkgd2UgYXJlIGxvYWRpbmcgYW5kIG5vdCBkZWZhdWx0IG9uZQoJICBXaGVuIHJ1bm5pbmcgZ3N0X3JlZ2lzdHJ5X3NjYW5fcGx1Z2luX2ZpbGUgd2Ugd2VyZSBsb3NpbmcgdGhlCgkgIGluZm9ybWF0aW9uIGFib3V0IHRoZSByZWdpc3RyeSBiZWluZyBsb2FkZWQgYW5kIGVuZGVkIHVwIGFkZGluZyB0aGUKCSAgcGx1Z2luIHRvIHRoZSBkZWZhdWx0IHJlZ2lzdHJ5IHdoaWNoIHdhcyBub3QgY29ycmVjdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjY2MgoKMjAxNS0wOC0wNSAxNTo1MToyNyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogT25seSBkcm9wIGJ1ZmZlciBpZiB0aGVpciBQVFMgaXMgb3V0IG9mIHNlZ21lbnQKCSAgQXMgb2Ygbm93LCBldmVuIGZvciBzdHJlYW0gY29tcGxldGx5IGluc2lkZSBzZWdtZW50LCB0aGVyZSBpcyBubwoJICBndWFyYW50aWVkIHRoYXQgdGhlIERUUyB3aWxsIGJlIGluc2lkZSB0aGUgc2VnbWVudC4gU3BlY2lmaWNhbGx5CgkgIGZvciBILjI2NCB3aXRoIEItRnJhbWVzLCB0aGUgZmlyc3QgZmV3IGZyYW1lcyBvZnRlbiBoYXZlIERUUyB0aGF0CgkgIGFyZSBiZWZvcmUgdGhlIHNlZ21lbnQuCgkgIEluc3RlYWQgb2YgdXNpbmcgdGhlIHN5bmMgdGltZXN0YW1wIHRvIGNsaXAgb3V0IG9mIHNlZ21lbnQgYnVmZmVyLAoJICB0YWtlIHRoZSBkdXJhdGlvbiBmcm9tIHRoZSBzdGFydC9zdG9wIHByb3ZpZGVkIGJ5IHRoZSBzdWItY2xhc3MsIGFuZAoJICBjaGVjayBpZiB0aGUgcHRzIGFuZCBwdHNfZW5kIGlzIG91dCBvZiBzZWdtZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyNzkxCgoyMDE1LTA4LTA1IDE0OjA1OjI1ICswMTAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzQGRlYmV0aGVuY291cnQuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBkb24ndCBydW4gY29kZSBpbnNpZGUgZ19hc3NlcnQKCSAgRXZlbiB0aG91Z2ggYXNzZXJ0cyBjYW4ndCBiZSBkaXNhYmxlZCBpbiBHc3RIYXJuZXNzLCBDb3Zlcml0eSBzdGlsbAoJICBjb21wbGFpbnMgYWJvdXQgcnVubmluZyBjb2RlIGluc2lkZSB0aGVtLiBNb3ZpbmcgdGhlIGNvZGUgdG8gb3V0c2lkZSB0aGUKCSAgZ19hc3NlcnRzKCkuCgkgIENJRCAjMTMxMTMyNiwgIzEzMTEzMjcsICMxMzExMzI4CgoyMDE1LTA3LTE3IDEwOjE4OjAyICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZXZpY2Vtb25pdG9yOiBnZXQgYSBsaXN0IG9mIGN1cnJlbnRseSBtb25pdG9yZWQgcHJvdmlkZXJzCgkgIEdldCBhIGxpc3Qgb2YgdGhlIGN1cnJlbnRseSBtb25pdG9yZWQgcHJvdmlkZXJzLgoKMjAxNS0wOC0wMiAxNzozODoxNCArMDIwMCAgR2VvcmdlIEtpYWdpYWRha2lzIDxnZW9yZ2Uua2lhZ2lhZGFraXNAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggaW52YWxpZCB1bnJlZiBhZnRlciBJRExFIHByb2JlIG9uIG5vbi1PSyBmbG93IHJldHVybgoJICBJbiBjYXNlIHRoZXJlIGlzIGFuIElETEUgcHJvYmUgZmlyZWQgZnJvbSBnc3RfcGFkX3B1c2hfZGF0YSBhbmQgaXQKCSAgZG9lc24ndCByZXR1cm4gR1NUX0ZMT1dfT0ssIHRoZSBjb2RlIGp1bXBzIHRvIHRoZSBwcm9iZV9zdG9wcGVkCgkgIGxhYmVsIHdoaWNoIHRyaWVzIHRvIHVucmVmIHRoZSBkYXRhIG9iamVjdC4gSG93ZXZlciwgYXQgdGhpcyBwb2ludAoJICB0aGUgZGF0YSBvYmplY3QgYmVsb25ncyBkb3duc3RyZWFtIGFuZCBtdXN0IG5vdCBiZSB0b3VjaGVkLgoJICBCeSBzZXR0aW5nIGRhdGEgPSBOVUxMLCB0aGUgY29kZSBza2lwcyB0aGlzIHVucmVmLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy8vc2hvd19idWcuY2dpP2lkPTc1MzE1MQoKMjAxNS0wOC0wNCAyMDowODowNCArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogRml4IHRoZSBuYW1lIG9mIHRoZSBwYXJlbnRidWZmZXJtZXRhIGRlYnVnIGNhdGVnb3J5LgoJICBEb24ndCB1c2UgJ2dsYnVmZmVycmVmbWV0YScgYXMgdGhlIGRlYnVnIGNhdGVnb3J5IGZvciB0aGUKCSAgcGFyZW50IGJ1ZmZlciBtZXRhLgoKMjAxNS0wOC0wNCAxMzo0NTowOSArMDkwMCAgRXVuaGFlIENob2kgPGV1bmhhZTEuY2hvaUBzYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogbm90IHVwZGF0ZSB1cHN0cmVhbSBzaXplIHdpdGggbmVnYXRpdmUgdmFsdWUKCSAgdXBzdHJlYW1fc2l6ZSBjYW4gYmUgbmVnYXRpdmUgYnV0IHF1ZXVlLT51cHN0cmVhbV9zaXplIGlzIHVuc2lnbmVkIHR5cGUuCgkgIHRvIGdldCBhIGNoYW5jZSB0byB1cGRhdGUgcXVldWUtPnVwc3RyZWFtX3NpemUgaW4gZ3N0X3F1ZXVlMl9nZXRfcmFuZ2UoKQoJICBpdCBzaG91bGQga2VlcCB0aGUgZGVmYXVsdCB2YWx1ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MzAxMQoKMjAxNS0wOC0wNCAxOTo1OToyOCArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IFJlbW92ZSBleHRyYSBkZWJ1ZyBzeW1ib2wgZnJvbSBleHBvcnRzCgkgIERvbid0IGV4cG9ydCB0aGUgZGVidWcgdmFyaWFibGUgZm9yIHRoZSBwYXJlbnRfYnVmZmVyX21ldGEuCgkgIFRoaXMgd2FzIGFjY2lkZW50YWxseSBleHBvcnRlZCBhbmQgc2hvdWxkbid0IGJlIHB1YmxpYwoKMjAxNS0wOC0wNCAwMDoxMToyNCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IHVzZSBHU1RfSU5GT19PQkpFQ1QgZm9yIG1vcmUgZGV0YWlsCgkgIEhlbHBzIHRvIGRpc3RpZ3Vpc2ggbXVsdGlwbGUgZmlsZXNpbmtzLgoKMjAxNS0wNy0zMCAxNzoyOToyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGRvY3M6IGluZm86IHJlbW92ZSAwLjggdGVybWlub2xvZ3kgZnJvbSBsb2cgbGV2ZWwgZGVzY3JpcHRpb24KCSAgV2UgZG9uJ3QgIml0ZXJhdGUiIGJpbnMgb3IgcGlwZWxpbmVzIGFueSBtb3JlLgoKMjAxNS0wNy0zMCAxMjoxNzoxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXBhcnNlLmM6CgkgIHRlc3RzOiBiYXNlcGFyc2U6IGZpeCBidWZmZXIgbGVhayBpbiB1bml0IHRlc3QKCSAgRml4ZXMgbWFrZSBjaGVjay12YWxncmluZAoKMjAxNS0wNy0yOCAyMToxNDoyMiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBkb2Mvc2Vla2ZsYWdzOiBGaXggY3Jvc3MgcmVmZXJlbmNlcwoJICBUaGlzIGZpeGVzIG1pc3MtdXNlIG9mIEAgaW5zdGVhZCBvZiAlIHRvIHJlZmVyIHRvIGVudW1lcmF0aW9uCgkgIHZhbHVlcy4KCjIwMTUtMDctMjggMjI6MzA6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgYSBmZXcgbW9yZSBuZXcgc3ltYm9scyBhbmQgZGVmaW5lcwoKMjAxNS0wNy0yOCAxNjo1Nzo0MyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuaDoKCSAgZG9jL2NhcHNmaWx0ZXI6IERvY3VtZW50IGZpbHRlcmluZyBtb2RlcwoJICBUaGlzIGlzIGRvY3VtZW50YXRpb24gZm9yIHRoZSBIVE1MIGRvY3VtZW50YXRpb24uCgoyMDE1LTA3LTI4IDE2OjUwOjU1IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJICBkb2MvZmlsZXNpbms6IEFkZCBCdWZmZXJNb2RlIGVudW1lcmF0aW9uCgkgIFRoaXMgaXMgcHVyZWx5IGZvciBkb2N1bWVudGF0aW9uIHB1cnBvc2UuIFRoaXMgd2F5IHRoZSB2YWx1ZXMgd2lsbAoJICBzaG93IHVwIGluIHRoZSBIVE1MIGRvY3VtZW50YXRpb24uCgoyMDE1LTA3LTI4IDE1OjUwOjQwIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgZG9jL2dzdGhhcmRuZXNzOiBGaXggdHlwbyBpbiBHc3RBbGxvY2F0aW9uUGFyYW1zCgkgIEl0J3Mgbm90IEdzdEFsbG9jYXRvclBhcmFtcyBidXQgR3N0QWxsb2NhdGlvblBhcmFtcy4KCjIwMTUtMDctMjggMTU6NDY6MDkgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBkb2MvZ3N0aGFybmVzczogUmVtb3ZlIHVua25vd24gcGFyYW1ldGVyCgkgIHNpbmtfZWxlbm1lbnRfbmFtZSBpcyBub3QgYSBwYXJhbWV0ZXIgb2YgZ3N0X2hhcm5lc3NfYWRkX3NpbmtfaGFybmVzcygpCgkgIGZ1bmN0aW9uLCBidXQgc3RpbGwgaXQgc2hvdyB1cCBpbiBkb2N1bWVudGF0aW9uLgoKMjAxNS0wNy0yOCAxMjoxOTowNCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuaDoKCSAgY2Fwc2ZpbHRlcjogT25seSByZW1lbWJlciBwcmV2aW91cyBmaWx0ZXIgY2FwcyBpZiB0aGV5IHdlcmUgYWN0dWFsbHkgdXNlZCBmb3Igc29tZXRoaW5nCgkgIElmIG5vYm9keSBldmVyIHNhdyB0aGUgcHJldmlvdXMgZmlsdGVyIGNhcHMsIG5vdGhpbmcgY291bGQndmUgbmVnb3RpYXRlZCB3aXRoCgkgIHRoZW0gYW5kIHdlIGNhbiBqdXN0IHByZXRlbmQgdGhleSBuZXZlciBleGlzdGVkIGF0IGFsbC4KCjIwMTUtMDctMjggMTI6MTY6MTIgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogV2hlbiBzd2l0Y2hpbmcgY2FwcyBjaGFuZ2UgbW9kZXMsIGZvcmdldCBhbGwgcHJldmlvdXMgY2FwcwoKMjAxNS0wNy0yMyAxODoxNTowNSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBSZXR1cm4gRkxPV19GTFVTSElORyBpZiBuZWdvdGlhdGlvbiBmYWlscyBkdXJpbmcgc2h1dGRvd24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjgwMAoKMjAxNS0wNy0yMiAxODo1NToyOSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogRml4IGluZGVuZGF0aW9uCgoyMDE1LTA3LTIxIDEzOjE0OjU5IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogQXZvaWQgaW5jcmVhc2luZyBxdWVyeSByZWZlcmVuY2UKCSAgZ3N0X3F1ZXJ5X2ZpbmRfYWxsb2NhdGlvbl9tZXRhKCkgcmVxdWlyZXMgdGhlIHF1ZXJ5IHRvIGJlCgkgIHdyaXRhYmxlIHRvIHdvcmsuIFRoaXMgcGF0Y2ggZW5zdXJlIGF2b2lkcyB0YWtpbmcgYSByZWZlcmVuY2UKCSAgb24gdGhlIHF1ZXJ5LCBzbyB3ZSBjYW4gbm93IGNoZWNrIGlmIGEgY2VydGFpbiBhbGxvY2F0aW9uIG1ldGEKCSAgaXMgcHJlc2VudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjY2MQoKMjAxNS0wNy0yMiAxNTozODowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZG9jczogZml4IGRlc2NyaXB0aW9uIG9mIGdzdF9idWZmZXJfZXh0cmFjdF9kdXAoKQoJICBObyBHQnl0ZXMgaW52b2x2ZWQuCgoyMDE1LTA3LTIxIDAwOjE3OjI4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJICBjb25jYXQ6IGRvdCBub3QgcmVzZXQgcGFkIHN0YXRlcyB0b28gZWFybHkKCSAgUmVzZXR0aW5nIHRoZSBmbHVzaGluZyBzdGF0ZSBvZiB0aGUgcGFkcyBhdCB0aGUgZW5kIG9mIHRoZQoJICBQQVVTRURfVE9fUkVBRFkgdHJhbnNpdGlvbiB3aWxsIG1ha2UgcGFkcyBoYW5kbGUgc2VyaWFsaXplZAoJICBxdWVyaWVzIGFnYWluIHdoaWNoIHdpbGwgd2FpdCBmb3Igbm9uLWFjdGl2ZSBwYWRzIGFuZCBtaWdodAoJICBjYXVzZSBkZWFkbG9ja3Mgd2hlbiBzdG9wcGluZyB0aGUgcGlwZWxpbmUuCgkgIE1vdmUgdGhlIHJlc2V0IHRvIHRoZSBSRUFEWV9UT19QQVVTRUQgaW5zdGVhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjYyMwoKMjAxNS0wNy0yMCAxNjoxODowNiArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5oOgoJICBoYXJuZXNzOiBhZGQgZnVuY3Rpb25zIGZvciBhZGRpbmcgc3ViLWhhcm5lc3NlcyBkaXJlY3RseQoJICBCeSBpbnRyb2R1Y2luZyBnc3RfaGFybmVzc19hZGRfc3JjX2hhcm5lc3MgYW5kIGdzdF9oYXJuZXNzX2FkZF9zaW5rX2hhcm5lc3MKCSAgd2UgY29sbGVjdCBhbGwgc3ViLWhhcm5lc3Mgc2V0dXAgaW4gb25lIGZ1bmN0aW9uLCBtYWtpbmcgdGhlIHByZXZpb3VzCgkgIHN1Yi1oYXJuZXNzIGNyZWF0aW9uIGZ1bmN0aW9ucyBub3cgY2FsbHMgdGhlc2UgZGlyZWN0bHksIGFuZCBtYWtpbmcgaXQKCSAgbXVjaCBlYXNpZXIgKGFuZCBsZXNzIGVycm9yLXByb25lKSB0byBhZGQgeW91ciBvd24gc3JjIG9yIHNpbmstaGFybmVzcwoJICB1c2luZyB0aGUgbW9yZSBnZW5lcmljIGhhcm5lc3MtY3JlYXRpb24gZnVuY3Rpb25zLgoKMjAxNS0wNy0xNyAxNzo0NDo1MiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBEb24ndCBvdmVycmlkZSBnc3Rfc2VnbWVudF9kb19zZWVrKCkKCSAgVGhpcyBsaW5lIGhhcyBubyBwdXJwb3NlLCBjbGVhcmx5IGdzdF9zZWdtZW50X2RvX3NlZWsoKSBpcyBkb2luZwoJICB0aGUgcmlnaHQgam9iLCBhbHNvLCBoYXZpbmcgdGhlIHN0YXJ0IHRpbWUgKGEgdGltZXN0YW1wKSBiZSB0aGF0CgkgIHNhbWUgYXMgdGltZSAodGhlIHN0cmVhbSB0aW1lKSBpcyBxdWl0ZSBvZGQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA3ODMKCjIwMTUtMDctMTcgMTc6NDM6MjYgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRml4IGV4dHJhcG9sYXRpb24gb2Ygc2Vla3NlZ21lbnQuc3RvcAoJICBUaGUgc3RvcCBzaGFsbCBiZSByZWxhdGl2ZSB0byBzdGFydCBpZiBleHRyYXBvbGF0ZWQgZnJvbSB0aGUKCSAgZHVyYXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA3ODMKCjIwMTUtMDctMTYgMTg6NDc6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSAgZGV2aWNlbW9uaXRvcjogZG8gc3RhcnQgYW5kIHN0b3Agb3V0c2lkZSBvZiB0aGUgbG9jawoJICBSZWxlYXNlIHRoZSBtb25pdG9yIGxvY2sgd2hlbiBjYWxsaW5nIHRoZSBwcm92aWRlciBzdGFydC9zdG9wIG1ldGhvZHMuCgkgIEJlY2F1c2Ugd2UgcmVsZWFzZSB0aGUgbG9jayBub3csIFdlIG5lZWQgdG8gbWFrZSBzdXJlIHdlIGNoZWNrIHRoZQoJICBjb29raWUgYWdhaW4gYW5kIGtlZXAgdHJhY2sgb2Ygc3RhcnRlZCBhbmQgcmVtb3ZlZCBwcm92aWRlcnMuCgoyMDE1LTA3LTE2IDE4OjQzOjA2ICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuaDoKCSAgZGV2aWNlcHJvdmlkZXI6IHNtYWxsIGNsZWFudXBzCgkgIFByb3RlY3QgYWdhaW5zdCB3cm9uZyBhcmd1bWVudHMuCgkgIENsZWFuIHVwIHRoZSBoZWFkZXIgZmlsZSBpbmRlbnRhdGlvbi4KCjIwMTUtMDctMTYgMTc6MjU6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSAgZGV2aWNlbW9uaXRvcjoga2VlcCBvcmRlciBvZiBwcm92aWRlcnMgYW5kIGRldmljZXMKCSAgVGhlIGRldmljZXByb3ZpZGVycyBhcmUgYWRkZWQgdG8gdGhlIGFycmF5IHNvcnRlZCBieSB0aGVpciByYW5rLiBNYWtlCgkgIHN1cmUgd2Uga2VlcCB0aGlzIG9yZGVyaW5nIHdoZW4gcmVtb3ZpbmcgYSBwcm92aWRlci4KCSAgV2UgdXNlIF9wcmVwZW5kIHRvIGNvbGxlY3QgdGhlIGRldmljZXMsIHVzZSBnX2xpc3RfcmV2ZXJzZSB0byBnZXQgdGhlCgkgIGRldmljZXMgaW4gdGhlIHJpZ2h0IG9yZGVyOyBzb3J0ZWQgYnkgcmFuayBhbmQgaW4gdGhlIHNhbWUgb3JkZXIgYXMKCSAgcmV0dXJuZWQgYnkgdGhlIHByb3ZpZGVyLgoKMjAxNS0wNy0xNiAxNzo1MDo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogZml4IGluZGVudGF0aW9uCgoyMDE1LTA3LTE2IDE3OjUwOjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBmaXggcGFkIHRlbXBsYXRlIGxlYWsKCjIwMTUtMDctMTYgMTc6MTM6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIGRvY3M6IGRyb3AgcmVmZXJlbmNlIHRvIHNvdXJjZWZvcmdlIG1haWxpbmcgbGlzdCBhZHJlc3MKCjIwMTUtMDctMTYgMTc6NTM6NDAgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogZG9uJ3QgcmUtZXN0YWJsaXNoIHRoZSBoYXJuZXNzIHNpbmsgYW5kIHNyYyBwYWRzCgkgIEdpdmVuIHRoYXQgdGhlIGVsZW1lbnQgaGFzIHRoZSBwb3NzaWJpbGl0eSB0byBoYXZlIG9uZSwgdGhleSBzaG91bGQKCSAgYWxyZWFkeSBiZSB0aGVyZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjQ5OAoKMjAxNS0wNy0xMyAxMTowMzoxMyArMDIwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuaDoKCSAgaGFybmVzczogSW1wcm92ZSBkZXRlY3Rpb24gb2YgZWxlbWVudCB0eXBlCgkgIFRoZSBlbGVtZW50IGZsYWcgZG9lcyBub3QgaW5kaWNhdGUgd2V0aGVyIGEgYmluIHNob3VsZCBiZSB0ZXN0ZWQgYXMgYQoJICBzb3VyY2Ugb3IgYXMgYSBzaW5rLCBlZy4gYSBiaW4gd2l0aCB0aGUgc2luayBmbGFnIG1heSBzdGlsbCBoYXZlIGEKCSAgc291cmNlIHBhZCBhbmQgYSBiaW4gd2l0aCB0aGUgc291cmNlIGZsYWcgbWF5IGhhdmUgYSBzaW5rIHBhZC4gSW4gdGhpcwoJICBjYXNlIGl0IGlzIGJldHRlciB0byBkZXRlcm1pbmUgdGhlIGVsZW1lbnQgdHlwZSBieSBsb29raW5nIGF0IHRoZQoJICBhdmFpbGFibGUgcGFkcyBhbmQgcGFkIHRlbXBsYXRlcy4KCSAgQWxzbyByZW5hbWUgc3JjcGFkIGFuZCBzaW5rcGFkIHdoZXJlIGl0IGFjdHVhbGx5IHJlcHJlc2VudHMKCSAgZWxlbWVudF9zcmNwYWRfbmFtZSBhbmQgZWxlbWVudF9zaW5rcGFkX25hbWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTI0OTMKCjIwMTUtMDctMTMgMTE6MTA6NDkgKzAyMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBGb3J3YXJkIHN0aWNreSBldmVudHMgdG8gc2luayBoYXJuZXNzCgkgIEZpeGVzIGlzc3VlIHdoZXJlIGlmIGEgc2luayBoYXJuZXNzIHdhcyBhZGRlZCBsYXRlIHRoZSBzdGlja3kgZXZlbnRzCgkgIHdvdWxkIG5vdCBiZSBmb3J3YXJlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjQ5NAoKMjAxNS0wNy0xNiAxMjozNjoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuaDoKCSAgaGFybmVzczogbWFrZSBoZWFkZXIgbmljZXIgdG8gcmVhZAoKMjAxNS0wNy0xNiAxMDozNjozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCBuZXcgZnVuY3Rpb24gdG8gQVBJIGRvY3MKCjIwMTUtMDctMTUgMTg6MjE6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGRldmljZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZXZpY2U6IGFkZCBnZW5lcmljIHN0cnVjdCB3aXRoIHByb3BlcnRpZXMKCSAgQWRkIGEgZ2VuZXJpYyBzdHJ1Y3R1cmUgdG8gaG9sZCBhbnkgYWRkaXRpb25hbCBwcm9wZXJ0aWVzIGFib3V0IHRoZQoJICBkZXZpY2UuCgoyMDE1LTA3LTE0IDEyOjQ0OjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBmaXggdHlwbyBpbiBhbGxvdy1ub3QtbGlua2VkIHByb3BlcnR5IGRlc2NyaXB0aW9uCgoyMDE1LTA3LTEzIDE0OjI0OjM0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBkb2NzOiBidXM6IG1lbnRpb24gbWFpbiBsb29wIHJlcXVpcmVtZW50IGluIGdzdF9idXNfYWRkX3dhdGNoKCkgZG9jcwoKMjAxNS0wMy0xOCAxNjowNTozNCArMDUzMCAgUHJhc2hhbnQgR290YXJuZSA8cHMuZ290YXJuZUBzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IGFkZCBmdW5jdGlvbiBndWFyZCBmb3IgX3NldF9sb2NrKCkgYW5kIGZpeCBndWFyZCBmb3IgX2pvaW4oKQoJICBTaG91bGQgb25seSBhY2Nlc3MgdGhlIG9iamVjdCBzdHJ1Y3R1cmUgYWZ0ZXIgY2hlY2tpbmcKCSAgaXQncyB2YWxpZCBpbiBnc3RfdGFza19qb2luKCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDYzODUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjQzMQoKMjAxNS0wNS0xOSAxODo1ODoxMSArMDIwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cGhpbG5AaWdhbGlhLmNvbT4KCgkqIGdzdC9nc3Rwcm90ZWN0aW9uLmM6CgkgIHByb3RlY3Rpb246IGltcGxlbWVudCBtZXRhIHRyYW5zZm9ybSBmdW5jdGlvbgoJICBDb3B5IHRoZSBHc3RNZXRhIGNvbnRlbnRzIG92ZXIgdG8gdGhlIG5ldyBidWZmZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDk1OTAKCjIwMTUtMDctMTAgMDk6MTI6MTUgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGVzdGltYXRlIGR1cmF0aW9uIG9uIEVPUwoJICBGb3IgZmlsZXMgd2hpY2ggYXJlIHNtYWxsZXIgdGhhbiAxLjUgc2Vjb25kcywgdGhlIGR1cmF0aW9uCgkgIGVzdGltYXRpb24gZG9lcyBub3QgaGFwcGVuLiBTbyB0aGUgZHVyYXRpb24gd2lsbCBhbHdheXMgYmUKCSAgZGlzcGxheWVkIGFzIDAuIFVwZGF0aW5nIHRoZSBkdXJhdGlvbiBvbiBFT1Mgd2hlbiB0aGUgZXN0aW1hdGlvbgoJICBoYXMgbm90IGhhcHBlbmVkIGFscmVhZHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDEzMQoKMjAxNS0wNy0xMCAxMTowMToyMSArMDkwMCAgSHl1bmp1biBLbyA8enpvb24ua29Ac2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogY2hhbmdlIGxvZyBtZXNzYWdlIHByb3Blcmx5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTIxMTYKCjIwMTUtMDctMDkgMDA6MTI6NTEgKzA5MDAgIEp1c3RpbiBKb3kgPGp1c3Rpbi5qb3kuOXRvNUBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHN0cmVhbWlkZGVtdXguYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzdHJlYW1pZGRlbXV4Lmg6CgkgIGRvY3M6IGFkZCBTdHJlYW1pZERlbXV4IHRvIGRvY3VtZW50YXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTg3MwoKMjAxNS0wNy0wOSAwMDoyMTo0MiArMDkwMCAgSHl1bmp1biBLbyA8enpvb24ua29Ac2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogZml4IHRvIGdldCB2YWxpZCAoYnVmZmVyXylsaXN0CgkgIGdldF9saXN0L2dldF9idWZmZXJfbGlzdCBzaG91bGQgYmUgZG9uZSB3aXRoIGJ1ZmZlcnMgaW4gYWRhcHRlciByZW1haW5pbmcKCSAgd2hpbGUgdGFrZV9saXN0L3Rha2VfYnVmZmVyX2xpc3QgZmx1c2hlcyBlYWNoIGJ1ZmZlciBvbmUgYnkgb25lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyMTE2CgoyMDE1LTA3LTA4IDIwOjA2OjI3ICswOTAwICBIeXVuanVuIEtvIDx6em9vbi5rb0BzYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICBhZGFwdGVyOiB1bml0IHRlc3QgZm9yIG5ldyBnZXRfKGJ1ZmZlcl8pbGlzdAoKMjAxNS0wNy0wOCAxMjowMDo1NiArMDIwMCAgQXJuYXVkIFZyYWMgPGF2cmFjQGZyZWVib3guZnI+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHB1dCBidWZmZXIgaW4gYSBjb3JyZWN0IHN0YXRlIGFmdGVyIGdzdF9hZGFwdGVyX2dldF9idWZmZXIgY2FsbAoJICBXZSBtdXN0IG1ha2UgdGhlIGJ1ZmZlciB3cml0YWJsZSB0byB3cml0ZSBpdHMgUFRTIGFuZCBEVFMsIGFuZCBhbHNvCgkgIHJlc2V0IGl0cyBkdXJhdGlvbi4KCSAgVGhlIGJlaGF2aW91ciBpcyBub3cgdGhlIHNhbWUgYXMgYmVmb3JlIGNvbW1pdCBjM2JjYmFkZCwgZXhjZXB0IG1ldGFzCgkgIG1pZ2h0IHN0aWxsIGJlIGF0dGFjaGVkIHRvIHRoZSBidWZmZXIgZXh0cmFjdGVkIGZyb20gdGhlIGFkYXB0ZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTIwOTIKCjIwMTUtMDctMDcgMTU6MDI6NDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IGZpeCBpbmRlbnRhdGlvbiBhbmQgcmVwbGFjZSBzdHJlc3MgdGVzdCBmdW5jdGlvbiBtYWNyb3MKCSAgVGhlc2Ugc2NyZXcgd2l0aCBpbmRlbnRhdGlvbiBhbmQgc2VlbSBhIGJpdCB0cml2aWFsLiBKdXN0IGNvcHknbidwYXN0ZS4KCjIwMTUtMDctMDcgMTA6NDY6NDggKzA5MDAgIEh5dW5qdW4gS28gPHp6b29uLmtvQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNvbnRyb2xtZXNzYWdlbWV0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJICBtZXRhOiB0cmFuc2Zvcm1fZnVuYzogcmV0dXJuIEZBTFNFIGlmIG5vdCBzdXBwb3J0ZWQgb3IgZmFpbGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTE3NzgKCjIwMTUtMDctMDcgMTE6NTM6MDcgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IHJlZmFjdG9yIGFuZCBhZGQgdGVzdHMgdXNpbmcgR3N0SGFybmVzcwoJICBXcml0aW5nIGEgdGVzdCBmb3IgdW5zY2hlZHVsaW5nIHRoZSBnc3RfY2xvY2tfaWRfd2FpdCBpbnNpZGUgdGhlCgkgIGlkZW50aXR5IGVsZW1lbnQsIGZvdW5kIGFuIGludmFsaWQgcmVhZCwgY2F1c2VkIGJ5IHJlbW92aW5nIHRoZSBjbG9jay1pZAoJICB3aGVuIGNhbGxpbmcgX3Vuc2NoZWR1bGUgaW5zdGVhZCBvZiBsZXR0aW5nIHRoZSBjb2RlIGNhbGxpbmcgX3dhaXQgcmVtb3ZlCgkgIHRoZSBjbG9jay1pZCBhZnRlciBiZWluZyB1bnNjaGVkdWxlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjA1NQoKMjAxNC0wNC0xMiAxOTo0ODoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IG1ha2Ugc3VyZSBnX2Fzc2VydCgpIHN0YXRlbWVudHMgYXJlIGFsd2F5cyBhY3RpdmUKCSAgV2UgaGF2ZSBjb2RlIHdpdGggc2lkZSBlZmZlY3RzIGluc2lkZSBnX2Fzc2VydCgpcywgc28gbWFrZQoJICBzdXJlIHRob3NlIGFyZSBhbHdheXMgZW5hYmxlZCBoZXJlICh0aGV5IG1pZ2h0IG90aGVyd2lzZQoJICBnZXQgZGlzYWJsZWQgZm9yIHJlbGVhc2UgYnVpbGRzKS4KCjIwMTUtMDctMDcgMDA6NTY6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuaDoKCSAgaGFybmVzczogcmVuYW1lIEdzdEhhcm5lc3NQcmVwYXJlQnVmZmVyIC0+IEdzdEhhcm5lc3NQcmVwYXJlQnVmZmVyRnVuYwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxOTE2CgoyMDE1LTA3LTA3IDAwOjUzOjQ4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svY2hlY2suaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmg6CgkgIGRvY3M6IGFkZCBHc3RIYXJuZXNzIHRvIGRvY3VtZW50YXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTkxNgoKMjAxMy0xMi0xNiAxMDo0Nzo0NyArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5oOgoJICBjaGVjazogQWRkIEdzdEhhcm5lc3MgY29udmVuaWVuY2UgQVBJIGZvciB1bml0IHRlc3RzCgkgIGh0dHA6Ly9nc3Rjb25mLnViaWNhc3QudHYvdmlkZW9zL2dzdGhhcm5lc3MtYWdhaW4tYS1mb2xsb3ctdXAvCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTE5MTYKCjIwMTUtMDctMDYgMDk6MjY6NTggKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJldmVyc2UgcGxheWJhY2sgaW4gcHVsbCBtb2RlCgkgIHJpZ2h0IG5vdyByZXZlcnNlIHBsYXliYWNrIGlzIGRpc2FibGVkIGluIHB1bGwgbW9kZS4KCSAgZW5hYmxpbmcgdGhlIGNvZGUgZm9yIHRoZSBzYW1lIGFuZCBjaGFuZ2luZyBhIGJpdCBvZiBsb2dpYwoJICB0byBtYWtlIHJldmVyc2UgcGxheWJhY2sgd29yay4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDc4MwoKMjAxNS0wNi0yMCAwODozMzoyNiArMDkwMCAgVmluZWV0aCBUIE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFkZCByZXZlcnNlIHBsYXliYWNrIHRlc3QgaW4gcHVsbCBtb2RlCgkgIGFkZCB0ZXN0IGZvciByZXZlcnNlIHBsYXliYWNrIGluIHB1bGwgbW9kZSBhbmQgY29tcGFyZQoJICB0aGUgYnVmZmVycyBiZWluZyByZWNlaXZlZCBpbiBzaW5rIGNoYWluIHRvIG1ha2Ugc3VyZQoJICB0aGUgcGxheWJhY2sgaXMgYWxscmlnaHQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDc4MwoKMjAxNS0wNy0wNiAxNDozMToyNCArMDUzMCAgQXJ1biBSYWdoYXZhbiA8Z2l0QGFydW5yYWdoYXZhbi5uZXQ+CgoJKiBzY3JpcHRzL2dpdC11cGRhdGUuc2g6CgkgIFJldmVydCAic2NyaXB0czogQWxsb3cgcGFzc2luZyBtYWtlIGZsYWdzIHRvIGdpdC11cGRhdGUuc2giCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYWI1ZmRkNzIxMjllYTYxZThkZmY1MWNkYzBhZmNjY2FjMDNlYmMyYi4KCSAgV2UgY2FuIHVzZSB0aGUgTUFLRUZMQUdTIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIHBhc3Mgb3B0aW9ucyB0byBtYWtlLAoJICBzbyBhdm9pZCBhZGRpbmcgYW5vdGhlciBtZWNoYW5pc20gdGhhdCBjb3VsZCBiZSBjb25mdXNpbmcuCgoyMDE1LTA3LTA2IDExOjE2OjI3ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxnaXRAYXJ1bnJhZ2hhdmFuLm5ldD4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBDbGFyaWZ5IHBhZCBwcm9iZSByZXR1cm4gdHlwZSBkb2N1bWVudGF0aW9uCgoyMDE1LTA3LTAyIDE0OjMyOjIxICswODAwICBTb25nIEJpbmcgPGIwNjQ5OEBmcmVlc2NhbGUuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogU2hvdWxkbid0IGRyb3AgYnVmZmVyIHdoZW4gc3luYz1mYWxzZQoJICBTaG91bGRuJ3QgZHJvcCBidWZmZXIgd2hlbiBzeW5jPWZhbHNlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTE4MTkKCjIwMTUtMDctMDYgMTE6MjU6NTAgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGdpdEBhcnVucmFnaGF2YW4ubmV0PgoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJICBzY3JpcHRzOiBBbGxvdyBwYXNzaW5nIG1ha2UgZmxhZ3MgdG8gZ2l0LXVwZGF0ZS5zaAoJICBNb3N0bHkgYWRkaW5nIHRoaXMgZm9yIGFkZCBhIC1qTiBhcyBhcHByb3ByaWF0ZSB3aGlsZSBidWlsZGluZy4KCjIwMTUtMDUtMzAgMTQ6Mjc6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBhdm9pZCBzbGljZSBhbGxvY3MvZnJlZXMgZm9yIGVhY2ggaXRlbQoJICBNaWNyb29wdGltaXNhdGlvbjogTGV0IEdzdFF1ZXVlQXJyYXkgc3RvcmUgb3VyCgkgIGl0ZW0gc3RydWN0LiBUaGF0IHdheSB3ZSBkb24ndCBoYXZlIHRvIGFsbG9jL2ZyZWUKCSAgdGVtcG9yYXJ5IFF1ZXVlSXRlbSBzbGljZXMgZm9yIGV2ZXJ5IGl0ZW0gd2Ugd2FudAoJICB0byBwdXQgaW50byB0aGUgcXVldWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAxNDkKCjIwMTUtMDUtMzAgMTM6MDc6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgcXVldWVhcnJheTogYWxsb3cgc3RvcmluZyBvZiBzdHJ1Y3RzIGluIGFkZGl0aW9uIHRvIHBvaW50ZXJzCgkgIFRoaXMgd2F5IHdlIGRvbid0IGhhdmUgdG8gYWxsb2NhdGUvZnJlZSB0ZW1wb3Jhcnkgc3RydWN0cwoJICBmb3Igc3RvcmluZyB0aGluZ3MgaW4gdGhlIHF1ZXVlIGFycmF5LgoJICBBUEk6IGdzdF9xdWV1ZV9hcnJheV9uZXdfZm9yX3N0cnVjdCgpCgkgIEFQSTogZ3N0X3F1ZXVlX2FycmF5X3B1c2hfdGFpbF9zdHJ1Y3QoKQoJICBBUEk6IGdzdF9xdWV1ZV9hcnJheV9wZWVrX2hlYWRfc3RydWN0KCkKCSAgQVBJOiBnc3RfcXVldWVfYXJyYXlfcG9wX2hlYWRfc3RydWN0KCkKCSAgQVBJOiBnc3RfcXVldWVfYXJyYXlfZHJvcF9zdHJ1Y3QoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMTQ5CgoyMDE1LTA3LTAzIDIxOjU3OjU1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmNzRiMmRmIHRvIDlhZWQxZDcKCjIwMTUtMDYtMTkgMDA6MDU6NDQgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgcGFkOiBFbmZvcmNlIE5FRURfUEFSRU5UIGZsYWcgYWxzbyBmb3IgY2hhaW4KCSAgVGhlIGNoZWNrIGZvciB0aGUgcHJlc2VuY2Ugb2YgdGhlIHBhcmVudCBpbiB0aGUgcHJlc2VuY2Ugb2YKCSAgdGhlIE5FRURfUEFSRU5UIGZsYWcgd2FzIG1pc3NpbmcgZm9yIHRoZSBjaGFpbiBmdW5jdGlvbi4gQWxzbyBrZWVwCgkgIGEgcmVmIG9uIHRoZSBwYXJlbnQgaW4gY2FzZSB0aGUgcGFkIGlzIHJlbW92ZWQgbWlkLWNoYWluLgoKMjAxNS0wNy0wMyAxNTo1NTowOCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSAgZG9jczogdXBkYXRlIGZvciB0d28gbWlzc2luZyBlbGVtZW50cwoJICBDb25jYXQgd2FzIG5vdCBsaW5rZWQgYW5kIHN0cmVhbWlkZGVtdXggd2FzIG1pc3NpbmcuCgoyMDE1LTA3LTAzIDEyOjM3OjU0ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgZG9jczogYW5vdGhlciBzd2VlcCBjYW5vbmljYWxpemluZyB0aGUgcGx1Z2luIGRvY3Mgc2VjdGlvbnMgZmlsZQoJICBVc2UgdW5kZXJzY29yZXMgZm9yIGNhcHNmaWx0ZXIgbWFjcm9zLiBDb3JyZWN0IHRoZSB0eXBlLW5hbWUgZm9yIGZha2VzcmMKCSAgaWYgd2UgZXZlciBpbXBsZW1lbnQgdGhlIGVudW0uCgoyMDE1LTA3LTAzIDExOjQ1OjE5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgZG9jczogb3JkZXIgYW5kIGNhbm9uaWNhbGl6ZSB0aGUgLXNlY3Rpb25zLnR4dCBmaWxlCgkgIEhhdmUgYWxsIHNlY3Rpb25zIGluIGFscGhhYmV0aWNhbCBvcmRlci4gQWxzbyBtYWtlIHRoZSBtYWNybyBvcmRlciBjb25zaXN0ZW50LgoJICBUaGlzIGlzIGEgcHJlcGFyYXRpb24gZm9yIGdlbmVyYXRpbmcgdGhlIGZpbGUuIFJlbW92ZSBHRVRfQ0xBU1MgbWFjcm8gZm9yCgkgIHR5cGVmaW5lIGVsZW1lbnQsIHNpbmNlIGl0IGlzIG5vdCB1c2VkIGFuZCB0aGUgaGVhZGVyIGlzIG5vdCBpbnN0YWxsZWQuCgoyMDEzLTEyLTE2IDExOjI0OjE3ICswMTAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBBZGQgbWlzc2luZyBmaWVsZCBpbml0aWFsaXplcnMgdG8gR3N0TWFwSW5mbwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxODgxCgoyMDE1LTA3LTAyIDE1OjEwOjQzICswMTAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IHJlbW92ZSBhbHdheXMtdHJ1ZSBjaGVjawoJICBldmVudCBjYW4ndCBiZSBOVUxMLCBpdCBoYXMgYmVlbiBkZXJlZmVyZW5jZWQgYnkgR1NUX0VWRU5UX1RZUEUgKCksIGFuZCBubwoJICBjYXNlIGZyZWVzIHRoZSBwb2ludGVyLiBSZW1vdmUgdW5uZWNlc3NhcnkgY2hlY2sgd2hpY2ggd2lsbCBhbHdheXMgYmUgVHJ1ZS4KCSAgQ0lEICMxMzA4OTU1CgoyMDE1LTA3LTAxIDEwOjUwOjE5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIHRyYW5zZm9ybTogQWxzbyBjb3B5IFBPT0wgbWV0YXMgYW5kIG1ha2Ugc3VyZSB0byBjb3B5IG92ZXIgbWV0YXMgd2hlbiBjcmVhdGluZyBzdWJidWZmZXJzCgkgIFBPT0wgbWV0YSBqdXN0IG1lYW5zIHRoYXQgdGhpcyBzcGVjaWZpYyBpbnN0YW5jZSBvZiB0aGUgbWV0YSBpcyByZWxhdGVkIHRvIGEKCSAgcG9vbCwgYSBjb3B5IHNob3VsZCBiZSBtYWRlIHdoZW4gcmVhc29uYWJsZSBhbmQgdGhlIGZsYWcgc2hvdWxkIGp1c3Qgbm90IGJlCgkgIHNldCBpbiB0aGUgY29weS4KCjIwMTUtMDctMDEgMTA6NDU6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogQWxzbyBjb3B5IFBPT0wgbWV0YXMgYW5kIG1ha2Ugc3VyZSB0byBjb3B5IG92ZXIgbWV0YXMgd2hlbiBjcmVhdGluZyBzdWJidWZmZXJzCgkgIFBPT0wgbWV0YSBqdXN0IG1lYW5zIHRoYXQgdGhpcyBzcGVjaWZpYyBpbnN0YW5jZSBvZiB0aGUgbWV0YSBpcyByZWxhdGVkIHRvIGEKCSAgcG9vbCwgYSBjb3B5IHNob3VsZCBiZSBtYWRlIHdoZW4gcmVhc29uYWJsZSBhbmQgdGhlIGZsYWcgc2hvdWxkIGp1c3Qgbm90IGJlCgkgIHNldCBpbiB0aGUgY29weS4KCjIwMTUtMDctMDEgMTA6MzY6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogRG9uJ3QgY29weSAibWVtb3J5IiBtZXRhcyB1bmNvbmRpdGlvbmFsbHkKCSAgRG9uJ3QgY29weSBtZW1vcnkgbWV0YXMgaWYgd2Ugb25seSBjb3BpZWQgcGFydCBvZiB0aGUgYnVmZmVyLCBkaWRuJ3QKCSAgY29weSBtZW1vcmllcyBvciBtZXJnZWQgbWVtb3JpZXMuIEluIGFsbCB0aGVzZSBjYXNlcyB0aGUgbWVtb3J5CgkgIHN0cnVjdHVyZSBoYXMgY2hhbmdlZCBhbmQgdGhlIG1lbW9yeSBtZXRhIGJlY29tZXMgbWVhbmluZ2xlc3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTE3MTIKCjIwMTUtMDctMDEgMTA6MjU6MTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIFJldmVydCAiYnVmZmVyOiBEb24ndCBjb3B5IFBPT0xFRCBhbmQgbWVtb3J5IG1ldGFkYXRhIHVuY29uZGl0aW9uYWxseSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA3YTA4ZmE1ZWM0ODA0ZjEwNGU5YWE5ZjQ1ODMyMmY2ZWI0OWE3ZTQ5LgoKMjAxNS0wNi0zMCAxMzozODoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBEb24ndCBjb3B5IFBPT0xFRCBhbmQgbWVtb3J5IG1ldGFkYXRhIHVuY29uZGl0aW9uYWxseQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxNzEyCgoyMDE1LTA2LTMwIDExOjE4OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBVc2UgbmV3IGdzdF9hZGFwdGVyX2dldF9idWZmZXIoKSBBUEkgaW5zdGVhZCBvZiBnc3RfYWRhcHRlcl9tYXAoKQoJICBUaGlzIHByZXNlcnZlcyBHc3RNZXRhIHByb3Blcmx5IHVubGVzcyB0aGUgc3ViY2xhc3MgZG9lcyBzcGVjaWFsIHRoaW5ncy4gSXQncwoJICBlbm91Z2ggdG8gbWFrZSBoMjY0cGFyc2UncyBzdHJlYW0tZm9ybWF0L2FsaWdubWVudCBjb252ZXJzaW9uIHBhc3MgdGhyb3VnaAoJICBtZXRhcyBhcyBuZWVkZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDIzODUKCjIwMTUtMDYtMzAgMTE6MTE6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYWRhcHRlcjogQWRkIGdldCB2YXJpYW50cyBvZiB0aGUgYnVmZmVyIGJhc2VkIHRha2UgZnVuY3Rpb25zCgkgIE1haW4gZGlmZmVyZW5jZSB0byBnc3RfYWRhcHRlcl9tYXAoKSBmb3IgYWxsIHByYWN0aWNhbCBwdXJwb3NlcyBpcyB0aGF0CgkgIEdzdE1ldGEgb2YgdGhlIGJ1ZmZlcnMgd2lsbCBiZSBwcmVzZXJ2ZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDIzODUKCjIwMTUtMDYtMjkgMTc6MDM6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogQ29weSBvdmVyIEdzdE1ldGEgZnJvbSB0aGUgaW5wdXQgYnVmZmVycyB0byB0aGUgb3V0cHV0CgkgIEFsbCBmdW5jdGlvbnMgdGhhdCByZXR1cm4gYSBHc3RCdWZmZXIgb3IgYSBsaXN0IG9mIHRoZW0gd2lsbCBub3cgY29weQoJICBhbGwgR3N0TWV0YSBmcm9tIHRoZSBpbnB1dCBidWZmZXJzIGV4Y2VwdCBmb3IgbWV0YSB3aXRoIEdTVF9NRVRBX0ZMQUdfUE9PTEVECgkgIGZsYWcgb3IgIm1lbW9yeSIgdGFnLgoJICBUaGlzIGlzIHNpbWlsYXIgdG8gdGhlIGV4aXN0aW5nIGJlaGF2aW91ciB0aGF0IHRoZSBjYWxsZXIgY2FuJ3QgYXNzdW1lCgkgIGFueXRoaW5nIGFib3V0IHRoZSBidWZmZXIgZmxhZ3MsIHRpbWVzdGFtcHMgb3Igb3RoZXIgbWV0YWRhdGEuIEFuZCBpdCdzCgkgIGFsc28gdGhlIHNhbWUgdGhhdCBnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcl9mYXN0KCkgZGlkIGJlZm9yZSwgYW5kIHdoYXQKCSAgZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXIoKSBkaWQgaWYgcGFydCBvZiB0aGUgZmlyc3QgYnVmZmVyIG9yIHRoZSBjb21wbGV0ZQoJICBmaXJzdCBidWZmZXIgd2FzIHJlcXVlc3RlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjM4NQoKMjAxNS0wNi0yOSAyMDoyNzoxMiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHA6IEluaXQgZnVuY3Rpb24gY2FuIHRha2UgYSBOVUxMIGludGVyZmFjZXMgYXJyYXkKCjIwMTUtMDYtMjkgMTM6NTc6MTEgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICB0ZXN0czogY2FwczogZml4IHRlc3RfaW50ZXJzZWN0X2ZsYWdzZXQgZmFpbHVyZQoJICB0ZXN0X2ludGVyc2VjdF9mbGFnc2V0IGZhaWxzIGJlY2F1c2Ugd2hlbiBjYXBzIGlzIGJlaW5nCgkgIGNyZWF0ZWQsIGZsYWdzIGFuZCBtYXNrIGFyZSBiZWluZyBjYXN0IHRvIHVpbnQ2NCB3aGlsZQoJICB0aGV5IHNob3VsZCBiZSB1aW50LiBUaGlzIHJlc3VsdHMgaW4gaW52YWxpZCBtZW1vcnkgYWNjZXNzCgkgIG9yIGEgc2VnZmF1bHQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTE2MjgKCjIwMTUtMDYtMjkgMTQ6MjI6NDYgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBzY3JpcHRzOiBGaXggR1NUX1ZBTElEQVRFX1BMVUdJTl9QQVRICgkgIEl0IG1vdmVkIHJlY2VudGx5CgoyMDE1LTA2LTI5IDEzOjU4OjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IEZpeCB1cCBkb2N1bWVudGF0aW9uIG9mIHRyYW5zZm9ybV9tZXRhIHZmdW5jCgkgIEJ5IGRlZmF1bHQgd2UgY29weSBhbGwgbWV0YXMgdGhhdCBoYXZlIG5vIHRhZ3MuCgoyMDE1LTA2LTI5IDEwOjQxOjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmg6CgkgIGRpcmVjdGNvbnRyb2xiaW5kaW5nOiBmaXggQUJJIGJyZWFrCgkgIFN0cnVjdHVyZSBzaXplIHdhcyBpbmNyZWFzZWQgd2l0aG91dCBhZGp1c3RtZW50IG9mIHRoZSBwYWRkaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxNjIyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDA1MDIKCjIwMTUtMDMtMTkgMTU6NTU6MTQgKzA1MzAgIFByYXNoYW50IEdvdGFybmUgPHBzLmdvdGFybmVAc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBndWFyZCBhZ2FpbnN0IE5VTEwgdGFzayBmdW5jdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2NDM5CgoyMDE1LTA1LTE0IDExOjQ4OjQ1ICswMjAwICBNaWd1ZWwgUGFyw61zIETDrWF6IDxtcGFyaXNkaWF6QGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmg6CgkgIGZ1bm5lbDogYWRkICJmb3J3YXJkLXN0aWNreS1ldmVudHMiIHByb3BlcnR5CgkgIEl0IGlzIHVzZWZ1bCB0byBhdm9pZCBzZW5kaW5nIHN0aWNreSBldmVudCBvbiBzdHJlYW0gY2hhbmdlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTMxNQoKMjAxNS0wNi0yNSAwMDowNDowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS41LjIgPT09CgoyMDE1LTA2LTI0IDIyOjQ5OjE3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuNS4yCgoyMDE1LTA2LTI0IDIyOjQ1OjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNS0wNi0yMiAyMzozNzoyNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHRlc3RzOiBnc3R1dGlsczogZml4IHdyb25nIGRlc2NyaXB0aW9uIG9mIHRlc3QgZWxlbWVudAoJICBJdCBpcyBhIGZha2VzaW5rIHdpdGggcmVxdWVzdCBwYWRzLCBub3QgYSBzb3VyY2UKCjIwMTUtMDYtMjQgMTU6MzU6MTYgKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hc2hnQGF4aXMuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogRml4ZWQgY29tcGlsZXIgd2FybmluZwoJICBUaGUgcG9vbCB2YXJpYWJsZSB3YXMgdW51c2VkIHdoZW4gYnVpZGxpbmcgd2l0aCBkZWJ1ZyBkaXNhYmxlZC4KCjIwMTUtMDYtMjQgMTE6MTM6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2h1LnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3J1LnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE1LTA2LTI0IDExOjEyOjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgLmRlZiBmaWxlIGZvciBuZXcgQVBJCgoyMDE1LTA2LTI0IDE0OjE5OjA0ICswOTAwICBIeXVuanVuIEtvIDx6em9vbi5rb0BzYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IG5lZWQgdG8gZGVlcC1jb3B5IGxhc3QgYnVmZmVyIGxpc3QgaW4gZHJhaW4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTQyMAoKMjAxNS0wNi0yNCAxMDo1MjowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IFdhcm4gaWYgY29weWluZyBhIGJ1ZmZlciBmYWlscyBpbiBnc3RfYnVmZmVyX2xpc3RfY29weV9kZWVwKCkKCjIwMTUtMDYtMjQgMTQ6MTg6NDcgKzA5MDAgIEh5dW5qdW4gS28gPHp6b29uLmtvQHNhbXN1bmcuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcmxpc3Q6IGFkZCBuZXcgYXBpIGdzdF9idWZmZXJfbGlzdF9jb3B5X2RlZXAKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTQyMAoKMjAxNS0wNi0yMyAxNjo1ODo1NiArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzaGdAYXhpcy5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdGNoZWNrOiBQcmludCBuZXdsaW5lIGluIG1lc3NhZ2UgaGFuZGxlcgoJICBUaGUgbWVzc2FnZSBoYW5kbGVyIGlzIHN1cHBvc2VkIHRvIHByaW50IGEgbmV3bGluZSBhZnRlciB0aGUgbWVzc2FnZQoJICBqdXN0IGxpa2UgdGhlIGRlZmF1bHQgbWVzc2FnZSBoYW5kbGVyLgoKMjAxNS0wNi0xMiAxNjo1NDozMiArMDgwMCAgU29uZyBCaW5nIDxiMDY0OThAZnJlZXNjYWxlLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBIYW5kbGUgZGlmZmVyZW50IGR1cmF0aW9uIHRyYWNrIHNlbGVjdGlvbgoJICBTdXBwb3J0IHRyYWNrIHN3aXRjaCBmcm9tIEVPUyB0cmFjayB0byBub24tRU9TIG9uZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDc2MQoKMjAxNS0wNi0xMiAxNjo1Mjo0NiArMDgwMCAgU29uZyBCaW5nIDxiMDY0OThAZnJlZXNjYWxlLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBDbGVhciBFT1MgZmxhZyBhZnRlciByZWNlaXZlZCBTVFJFQU1fU1RBUlQgZXZlbnQKCSAgQ2xlYXIgRU9TIGZsYWcgYWZ0ZXIgcmVjZWl2ZWQgU1RSRUFNX1NUQVJUIGV2ZW50CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA3NjEKCjIwMTUtMDYtMjIgMTQ6MzA6NDkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB0ZXN0czogZ3N0dXRpbHM6IGFkZCB0ZXN0cyBmb3IgZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkCgkgIEFkZHMgdGVzdHMgZm9yIGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZCBmb3Igd2hlbiBpdCBoYXMgdG8KCSAgcmVxdWVzdCBwYWRzLgoJICBOb3RlIHRoYXQgdGhlc2UgdGVzdHMgZG9uJ3QgY292ZXIgdGhlIGNhc2Ugd2hlbiBpdCBoYXMgdG8gcmVxdWVzdAoJICBhIHBhZCB0aGF0IGFscmVhZHkgZXhpc3RzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxMjM1CgoyMDE1LTA2LTE5IDE1OjQ2OjU2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHVzZSBjYXBzIHdoZW4gZ2V0dGluZyBhIGNvbXBhdGlibGUgcGFkIGJ5IHRlbXBsYXRlCgkgIERvIG5vdCBpZ25vcmUgdGhlIGNhcHMgYXJndW1lbnQgd2hlbiByZXF1ZXN0aW5nIGEgcGFkIGJ5IHRlbXBsYXRlLgoJICBUaGlzIGlzIHBhcnRpY3VsYXJseSBoYXJtZnVsIHdoZW4gdGhlIHBhZCBjYXBzIHF1ZXJ5IGJ5IGRlZmF1bHQKCSAgcmV0dXJucyBBTlkgc28gaXQgd2lsbCBtYXRjaCB0aGUgZmlyc3QgdGVtcGxhdGUgaW5zdGVhZCBvZiB0aGUKCSAgb25lIHRoYXQgYWN0dWFsbHkgaW50ZXJzZWN0cyB3aXRoIHRoZSBjYXBzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxMjM1CgoyMDE1LTA2LTIzIDAwOjE0OjMwICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RzYW1wbGUuaDoKCSAgZ3N0c2FtcGxlLmg6IEluY2x1ZGUgZ3N0YnVmZmVybGlzdC5oIG5vdyB0aGF0IGl0IHVzZXMgR3N0QnVmZmVyTGlzdAoKMjAxNS0wNi0xNyAxNjoxMjoxMyArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuYzoKCSAgY29uY2F0OiB3aGVuIHJlbGVhc2luZyBwYWQsIHNlbmQgRU9TIGFwcHJvcHJpYXRlbHkuCgkgIFByZXZpb3VzbHksIGNvbmNhdCBzZW50IGFuIEVPUyBpZiB0aGVyZSB3YXMgYSBuZXh0IHBhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTEwNwoKMjAxNS0wNi0xNiAxNjoxNDoxOCArMDIwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuaDoKCSAgY29uY2F0OiBBZGQgYWRqdXN0LWJhc2UgcHJvcGVydHkKCSAgVGhpcyBkaXNhYmxlcyB0aGUgc2VnbWVudC5iYXNlIGFkanVzdG1lbnRzLCB3aGljaCBpcyB1c2VmdWwgaWYgZG93bnN0cmVhbQoJICB0YWtlcyBjYXJlIG9mIGJhc2UgYWRqdXN0bWVudHMgYWxyZWFkeSAoZXhhbXBsZTogYSBjb21iaW5hdGlvbiBvZiBjb25jYXQKCSAgYW5kIHN0cmVhbXN5bmNocm9uaXplcikKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTA0NwoKMjAxNS0wNi0yMiAxNDowNDo0NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IFVuc2V0IHRoZSBsYXN0IGJ1ZmZlciBsaXN0IGlmIHdlIG9ubHkgZ290IGEgYnVmZmVyCgkgIEFsc28gcmVtZW1iZXIgYW55IHByZXJvbGwgYnVmZmVyIGxpc3QuCgoyMDE1LTA2LTIyIDEzOjMzOjI5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHNhbXBsZTogQWRkIG5ldyBBUEkgdG8gdGhlIGRvY3MKCjIwMTUtMDYtMjIgMjA6MDI6NTUgKzA5MDAgIEh5dW5qdW4gPHp6b29uLmtvQHNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZW5hYmxlIHRvIGdldCBsYXN0IHNhbXBsZSBpbmNsdWRpbmcgYnVmZmVyIGxpc3QgaWYgbmVlZGVkCgkgIEluIGNhc2Ugb2YgYSBidWZmZXIgbGlzdCByZW5kZXJpbmcsIGxhc3Qtc2FtcGxlIGlzIG5vdCB1cGRhdGVkLgoJICBJdCBuZWVkcyB0byBiZSB1cGRhdGVkIGFuZCBlbmFibGUgdG8gZ2V0IGJ1ZmZlciBsaXN0IGZyb20gbGFzdC1zYW1wbGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTEwMjYKCjIwMTUtMDYtMjIgMTk6MzU6NDAgKzA5MDAgIEh5dW5qdW4gPHp6b29uLmtvQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0c2FtcGxlLmg6CgkgIHNhbXBsZTogYWRkIGdzdF9zYW1wbGVfc2V0L2dldF9idWZmZXJfbGlzdCBhcGlzCgkgIEFsbG93ZWQgdG8gc2V0L2dldCBidWZmZXIgbGlzdCB0byBzYW1wbGUgaWYgbmVlZGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTEwMjYKCjIwMTUtMDYtMTkgMTA6NTI6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0LnB5OgoJICB0ZXN0LnB5OiByZW1vdmUgYWNjaWRlbnRhbGx5IGNvbW1pdHRlZCBmaWxlCgoyMDE1LTA2LTE4IDExOjUxOjQ4IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgZG9jOiBVbmlmeSBTaW5jZSBtYXJrIGZvciBhdHRyaWJ1dGUgYW5kIGVudW0KCSAgQXMgdGhpcyBzaG93IHVwIGFzIHByb3NlIGluIHRoZSBkb2MsIHNpbXBseSBtYWtlIGl0IGNvbnNpc3RlbnQKCSAgYW5kICJhcmd1YWJsZSIgbmljZXIgdG8gcmVhZC4KCjIwMTUtMDYtMTggMTE6NDg6NTAgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBkb2M6IFJlbW92ZSBwYXJlbnRoZXNpcyBhcm91bmQgU2luY2U6CgkgIFRoaXMgY29uZnVzZSB0aGUgcGFyc2VyLCBoZW5jZSBpdCBkb2VzIG5vdCBlbmR1cCBpbiB0aGUgZG9jIGFuZCB0aGUKCSAgaW5kZXggcHJvcGVybHkuCgoyMDE1LTA1LTA2IDE2OjQ0OjQ4ICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIEdzdFBhcmVudEJ1ZmZlck1ldGEKCSAgQSBjb3JlIG1ldGEgd2hpY2ggaGVscHMgaW1wbGVtZW50IHRoZSBvbGQgY29uY2VwdAoJICBvZiBzdWItYnVmZmVyaW5nIGluIHNvbWUgc2l0dWF0aW9ucywgYnkgbWFraW5nIGl0CgkgIHBvc3NpYmxlIGZvciBhIGJ1ZmZlciB0byBrZWVwIGEgcmVmIG9uIGEgZGlmZmVyZW50CgkgIHBhcmVudCBidWZmZXIuIFRoZSBwYXJlbnQgYnVmZmVyIGlzIHVucmVmZmVkIHdoZW4KCSAgdGhlIE1ldGEgaXMgZnJlZWQuCgkgIFRoaXMgbWV0YSBpcyB1c2VkIHRvIGVuc3VyZSB0aGF0IGEgYnVmZmVyIHdob3NlCgkgIG1lbW9yeSBpcyBiZWluZyBzaGFyZWQgdG8gYSBjaGlsZCBidWZmZXIgaXNuJ3QgZnJlZWQKCSAgYW5kIHJldHVybmVkIHRvIGEgYnVmZmVyIHBvb2wgdW50aWwgdGhlIG1lbW9yeQoJICBpcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDAzOQoKMjAxNS0wNi0xNiAxODowODoyNCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIHRlc3QucHk6CgkgIGdpOiBVc2UgSU5UUk9TUEVDVElPTl9JTklUIGZvciAtLWFkZC1pbml0LXNlY3Rpb24KCSAgVGhpcyBuZXcgZGVmaW5lIHdhcyBhZGRlZCB0byBjb21tb24uIFRoZSBuZXcgaW5pdCBzZWN0aW9uIGZpeGVkCgkgIGNvbXBpbGF0aW9uIHdhcm5pbmcgZm91bmQgaW4gdGhlIGluaXQgbGluZSB0aGF0IHdhcyBzcHJlYWQgYWNyb3NzCgkgIGFsbCBmaWxlcy4KCjIwMTUtMDYtMTYgMTc6NDY6NDQgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA2MDE1ZDI2IHRvIGY3NGIyZGYKCjIwMTUtMDYtMTUgMTA6MDY6MDAgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGNsb2NrOiBGaXggX1NUSU1FX0ZPUk1BVCBtYWNyb3MKCSAgVGhpcyBtYWNybyBkaWRuJ3Qgd29yayB3ZWxsIGFzIGl0IHJlbGllZCBvbiB0aGUgc2lnbiBvbiB0aGUgbGFzdAoJICBkaXZpZGVkIG51bWJlciAobnVtYmVyIG9mIGRheXMpLiBUaGlzIHZhbHVlIGlzIG1vc3Qgb2YgdGhlIHRpbWUKCSAgemVybywgYW5kIHplcm8gaXMgY29uc2lkZXJlZCBwb3NpdGl2ZSBpbiBwcmludGYuIEluc3RlYWQsIGRlYWwgd2l0aAoJICB0aGUgc2lnbiBtYW51YWxseSwgYW5kIHJlc3VzZSB0aGUgb3JpZ2luYWwgbWFjcm9zIGZvciB0aGUgcmVzdC4gVGhpcwoJICBhY3R1YWxseSBzaW1wbGlmeSB0aGUgbWFjcm8gYSBsb3QuCgoyMDE1LTA2LTE0IDIwOjQ4OjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmRlbGVtZW50OiByZXNldCBzZWdtZW50IG9ubHkgb25jZSBzdHJlYW1pbmcgaGFzIHN0b3BwZWQKCSAgRml4ZXMgdGhlIG9jY2FzaW9uYWwgY3JpdGljYWxzIGluIHRoZSBkaXNjb3ZlcmVyIHVuaXQgdGVzdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTA3MwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwODIzCgoyMDE1LTA2LTE0IDExOjIzOjIyIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGRvYzogQWRkIG1vcmUgbWlzc2luZyBzeW1ib2xzIGluIGxpYi1zZWN0aW9ucy50eHQKCSAgVGhlc2Ugd2hlcmUgY2F1c2luZyBicm9rZW4gbGlua3MuCgoyMDE1LTA2LTE0IDExOjIyOjU0IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJICBkb2M6IEZpeCByZWZlcmVuY2UgdG8gdW5rbm93biB0eXBlIEdzdE5ldEFkZHJlc3MKCjIwMTUtMDYtMTQgMTE6MjI6MzYgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJICBkb2M6IEluY2x1ZGUgYW5kIGZpeCBHc3RDb250cm9sUG9pbnQKCjIwMTUtMDYtMTQgMTE6MjE6MjYgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgZG9jOiBBZGQgR3N0TmV0Q29udHJvbE1lc3NhZ2VNZXRhIHRvIHRoZSBkb2MKCSAgVGhpcyBpcyBiZWluZyByZWZlcmVuY2VkIGVsc2V3aGVyZSwgYnV0IHJlc3VsdHMgaW4gYnJva2VuIGxpbmtzLgoJICBJdCBzZWVtcyB0byBiZSBwdWJsaWMgQVBJLCBzbyBJIHRoaW5rIGl0IHNob3VsZCBiZSBpbiB0aGUgZG9jLgoKMjAxNS0wNi0xNCAxMDo1OTo1MSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSAgZG9jOiBEb2N1bWVudCBHc3RQdXNoU3JjQ2xhc3MKCjIwMTUtMDYtMTQgMTA6NTg6MTggLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBkb2M6IEJldHRlciBkb2N1bWVudCBuZXcgR3N0Q29sbGVjdERhdGEuQUJJLmFiaS5kdHMKCSAgVGhlIGRvYyBnZW5lcmF0b3IgZ2V0IGNvbmZ1c2VkIHdpdGggdGhlIGlubGluZSBzdHJ1Y3R1cmUuIFNvCgkgIHdvcmthcm91bmQgYnkgd3JhcHBpbmcgdGhlIGlubmVyIG9mIHRoZSBzdHJ1Y3R1cmUgd2l0aAoJICBwdWJsaWMvcHJpdmF0ZSBtYXJrLCBhbmQgZG9jdW1lbnQgdGhhdCBHU1RfQ09MTEVDVF9QQURTX0RUUyBtYWNybwoJICBzaGFsbCBiZSB1c2VkIHRvIGFjY2VzcyB0aGlzLgoKMjAxNS0wNi0xNCAxMDo1NjoyOCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y29udHJvbG1lc3NhZ2VtZXRhLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5oOgoJICBkb2M6IFZhcmlvdXMgZG9jIGZpeGVzIGZvciBsaWJnc3RyZWFtZXItYmFzZQoJICAqIEZpeCBmdW5jdGlvbiBuYW1lIGluIHNlY3Rpb25zLnR4dAoJICAqIEFkZCBmZXcgbWlzc2luZyBvciBmaXggbWlzcy1uYW1lZAoJICAqIFdvcmthcm91bmQgZ3RrLWRvYyBiZWluZyBjb25mdXNlZCB3aXRoIG5vbiB0eXBlZGVmCgkgIHR5cGVzIChsb29zZSB0cmFjayBvZiBwdWJsaWMvcHJpdmF0ZQoKMjAxNS0wNi0xNCAxMDoyNTo1MiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1cmkuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGRvYzogTW9yZSBkb2Mgd2FybmluZyBmaXhlcwoJICBTbyBmcm9tIHRoaXMgcG9pbnQsIHRoZSByZW1haW5pbmcgd2FybmluZyBmb3IgbGliZ3N0cmVhbWVyIGFyZSBhYm91dAoJICBwcm90ZWN0ZWQgbWVtYmVyIG5vdCBzaG93aW5nIGluIHRoZSBkb2MuIFRoaXMgbWF5IG5lZWQgc29tZSBkaXNjdXNzaW9uCgkgIHdpdGggdXBzdHJlYW0gZ3RrLWRvYyBwZW9wbGUuCgkgICogUmVtb3ZlICUgaW4gZnJvbSBvZiBub25lIG1hY3JvCgkgICogRml4ZWQgR1NUX1RZUEVfRkFHUyAtPiBHU1RfVFlQRV9GQUdfU0VUCgkgICogTWlub3Igd29yZGluZyBmaXgKCSAgKiBDYW4ndCBsaW5rIHRvIEdzdFVyaS5wb3J0LCBzbyBzcGxpdCB0aGUgLnBvcnQgcGFydAoKMjAxNS0wNi0xNCAwOToxNzoyMSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIGRvYzogSW4gR3N0VXJpIHdlIG1lYW50IG51bC10ZXJtaW5hdGVkLCBub3QgJU5VTEwKCSAgJU5VTEwgcmVmZXJzIHRvIHRoZSBwb2ludGVyLiBJJ3ZlIHdyaXR0ZW4gaXQgdGhpcyB3YXkgaW4gb25lCgkgIHdvcmQgYXMgdGhpcyBpcyB3aGF0IEdMaWIgdXNlcy4KCjIwMTUtMDYtMTMgMjE6MDI6MjAgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBkb2M6IENhbm5vdCByZWZlcmVuY2UgR1NUX1BBQ0tBR0VfUkVMRUFTRV9EQVRFVElNRQoJICBTbyBzaW1wbHkgcmVtb3ZlIHRoZSAlIHNpZ24uCgoyMDE1LTA2LTEzIDIwOjUyOjAxIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBkb2M6IEZpeCB0eXBvIGluIHJlZiBfY2xvY2tfd2FpdF9mb3Jfc3luYygpCgoyMDE1LTA2LTEzIDIwOjM3OjM0IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgZG9jOiBGaXggR3N0VXJpIGRvYyB0eXBvcwoJICAqIFVzZSAmcGVyY3RuOyBpbnN0ZWFkIG9mIHJlc2VydmVkIGNoYXJhY3RlciAlCgkgICogTlVMTCB0YWtlIHR3byBMCgoyMDE1LTA2LTEzIDIwOjE5OjU5IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuaDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0ZXJyb3IuaDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cHJvdGVjdGlvbi5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSAgZG9jOiBGaXggU2luY2U6IG1hcmtzCgkgIFRoZXJlIHdhcyBmZXcgU2luY2U6IG1hcmsgbWlzc2luZyB0aGVpciBjb2x1bW4uIEFsc28gdW5pZnkgdGhlIHdheQoJICB3ZSBzZXQgdGhlIFNpbmNlIG1hcmsgb24gZW51bSB2YWx1ZSBhbmQgc3RydWN0dXJlIG1lbWJlcnMuIFRoZXNlCgkgIHNhZGx5IGRvbid0IHNob3cgdXAgaW4gdGhlIGluZGV4LgoKMjAxNS0wNi0xMyAyMDowMToyNyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGRvYzogQWRkIGdzdF9idWZmZXJfY29weV9kZWVwKCkKCjIwMTUtMDYtMTMgMTk6NDc6NDUgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkgIGdpOiBTa2lwIGdzdF9jb25zaXRlbmN5X2NoZWNrZXJfbmV3CgkgIFRoaXMgbm9uIGJveGVkIHR5cGUgY2Fubm90IGJlIGFsbG9jYXRlZCBzYWZlbHkuCgoyMDE1LTA2LTEzIDE5OjQ2OjIxIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgIGRvYzogQWRkIGluZGV4ZXMgb2YgYWRkZWQgQVBJcwoJICBPbmUgb2YgdGhlIG5pY2UgZmVhdHVyZSBpbiBHVEsgZG9jIGlzIHRoYXQgaXQgZ2VuZXJhdGUgaW5kZXhlcwoJICBvZiBhZGRlZCBBUElzIGJhc2Ugb24gdGhlIHNpbmNlIG1hcmtlci4gSW5jbHVkZSB0aGF0IGluIG91ciBkb2MKCSAgd2hpbGUgZml4aW5nIHRoZSBpc3N1ZSBvZiBkdXBsaWNhdGUgSUQgKHByb2R1Y2UgeG1sIGNvbnRhaW5zIHRoYXQKCSAgaWQgaXQgc2VlbXMpCgoyMDE1LTA2LTEzIDE1OjEwOjUzIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSAgZG9jOiBNYWtlIC4uLl9zb3VyY2VfZmluZF9jb250cm9sX3BvaW50X2l0ZXIgdHJhbnNmZXIgbm9uZQoKMjAxNS0wNi0xMyAxNDo0MDo0MyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bnRwcGFja2V0LmM6CgkgIGRvYzogU2lsZW5jZSB3YXJuaW5nIGFib3V0IHVudXNlZCBnc3RudHBwYWNrZXQgc2VjdGlvbgoJICBUaGlzIEFQSSBpcyBpbnRlcm5hbC4KCjIwMTUtMDYtMTMgMTQ6Mzc6NDIgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvbmV0L2dzdG50cHBhY2tldC5jOgoJICBSZXZlcnQgImRvYzogQWRkIEdzdE50cFBhY2tldCB0byB0aGUgZG9jIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGM0ZWI4NzY5NjFhYmExMDkyYzQ4MzFhOGZlYWY0OGQ3YmUxZTM4YWUuCgkgIE9vcHMsIHRoaXMgaXMgbm90IGEgcHVibGljIEFQSQoKMjAxNS0wNi0xMyAxNDoyMTo0MSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9uZXQvZ3N0bnRwcGFja2V0LmM6CgkgIGRvYzogQWRkIEdzdE50cFBhY2tldCB0byB0aGUgZG9jCgoyMDE1LTA2LTEzIDEzOjU1OjI3IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguYzoKCSAgZG9jOiBSZW1vdmUgZ3N0aW5kZXggZnJvbSBkb2MgY29tbWVudAoJICBNb3ZpbmcgdGhhdCB0byBub3JtYWwgY29tbWVudCB0byBzaWxlbmNlIHRoZSBnZW5lcmF0b3IuIEdzdEluZGV4CgkgIGlzIG5vdCBpbiBHU3RyZWFtZXIgbGlicmFyeSBhdCB0aGUgbW9tZW50IChyZW1vdmVkIGZyb20gMC4xMCkuCgoyMDE1LTA2LTEzIDEzOjQ4OjAzIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgZ2k6IFNldCBjb2xsZWN0cGFkcyBmdW5jdGlvbiBwYXJhbSBzY29wZQoKMjAxNS0wNi0xMyAxMzo0Mjo1OCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkgIGdpOiBTa2lwIGFsbG9jYXRvciBvZiBub24tYm94ZWQgc3RydWN0dXJlCgkgIFRoZXNlIGFyZSBub3QgdXNhYmxlIGFzIHRoZXkgYXJlLCBhbmQgY2FuIGVhc2lseSBsZWFkIHRvIGNyYXNoCgkgIG9yIGxlYWtzLiBUaGlzIGFsc28gc2lsZW5jZSB3YXJuaW5nIGZyb20gdGhlIHNjYW5uZXIuIElmIHdlIG1hbmFnZSB0bwoJICBtYWtlIHRoaXMgdXNhYmxlLCB3ZSBjYW4gdGhlbiByZW1vdmUgdGhhdCBtYXJrLCBpdCB3aWxsIHJlcXVpcmUKCSAgdG8gbWFrZSB0aGlzIHR5cGUgYm94ZWQuCgoyMDE1LTA2LTEzIDEzOjI0OjEzIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvYzogR2l2ZSBnc3Rjb25maWcgYSBuaWNlIG5hbWUKCSAgQXMgYWxsIG90aGVyIHNlY3Rpb24gZG8gaGF2ZSBhIG5pY2UgY2FtZSBjYXNlIG5hbWUsIGl0IHNlZW1zCgkgIG1vcmUgY29uc2lzdGVudC4KCjIwMTUtMDYtMTMgMTM6MTk6MjEgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jOiBBZGQgbWlzc2luZyBnc3RfZXZlbnRfbmV3L3BhcnNlX3Byb3RlY3Rpb24KCjIwMTUtMDYtMTMgMTM6MTk6MDUgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jOiBHaXZlIGdzdHByb3RlY3Rpb24gc2VjdGlvbiBhIG5pY2UgdGl0bGUKCjIwMTUtMDYtMTMgMTM6MTQ6MzAgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGRvYzogUmVtb3ZlIHVuZWVkZWQgcHJvdGVjdGlvbmV2ZW50IHNlY3Rpb24KCSAgVGhlc2UgZnVuY3Rpb25zIGFyZSBwYXJ0IG9mIGdzdGV2ZW50IHNlY3Rpb24gYWxyZWFkeS4gS2VlcCB0aGUgZG9jLAoJICBzaW5jZSBpdCdzIGdvb2QuCgoyMDE1LTA2LTEzIDEyOjMyOjQ5IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IEFkZCBtaXNzaW5nIHNjb3BlIHRvIGZ1bmMgcGFyYW0KCSAgVGhpcyB0ZWxsIEdJIGlmIHRoaXMgZnVuY3Rpb24gaXMgZm9yIGFjdGlvbnMgKGNhbGwpIG9yIGlzIHRoZQoJICBhbnN3ZXIgb2YgdGhpcyBtZXRob2QgYmVpbmcgYXN5bmNocm9ub3VzIChhc3luYykuIEluIHRoaXMgY2FzZQoJICBpdCdzIGEgY2FsbC4gVGhpcyBhbHNvIHNpbGVuY2Ugd2FybmluZyBmcm9tIHRoZSBHSSBzY2FubmVyLgoKMjAxNS0wNi0xMyAxMjoyNzozMSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cHJvdGVjdGlvbi5oOgoJICBnc3Rwcm90ZWN0aW9uOiBBZGQgbWlzc2luZyBTaW5jZSAxLjYgbWFyawoKMjAxNS0wNi0xMyAxMjoyNjoxMyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cHJvdGVjdGlvbi5jOgoJICBnc3RwcmVjdGlvbjogX2FkZF9wcm90ZWN0aW9uX21ldGEoKSBpcyB0cmFuc2ZlciBub25lCgkgIEp1c3QgbGlrZSBnc3RfYnVmZmVyX2FkZF9tZXRhKCkgdGhpcyBmdW5jdGlvbiBzaG91bGQgYWxzbyBiZQoJICB0cmFuc2ZlciBub25lLiBUaGlzIGFsc28gc2lsZW5jZSBhIGdpIHdhcm5pbmcgYWJvdXQgcmV0dXJuaW5nCgkgIGEgY29weSBvZiBhIG5vbiBib3hlZCBiYXJlIHN0cnVjdHVyZS4KCjIwMTUtMDYtMTMgMTI6MjU6MTkgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHByb3RlY3Rpb24uYzoKCSogZ3N0L2dzdHByb3RlY3Rpb24uaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByb3RlY3Rpb24uYzoKCSAgZ3N0cHJvdGVjdGlvbjogQWRkIG1pc3NpbmcgbmFtZXNwYWNlIHRvIG1hY3JvCgkgIEdTVF9QUk9URUNUSU9OX1NZU1RFTV9JRF9DQVBTX0ZJRUxEIHdhcyBtaXNzaW5nIHRoZSBHU1RfIG5hbWVzcGFjZS4KCSAgQWRkIGl0IGJlZm9yZSBpdHMgdG9vIGxhdGUuCgoyMDE1LTA2LTEzIDExOjU1OjEwIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2ZXJzaW9uLmguaW46CgkgIGRvYzogS2VlcCBTRUNUSU9OOiBhZnRlciB0aGUgaWZkZWYKCSAgT3RoZXJ3aXNlIEdUSyBkb2Mgd2lsbCBzZWUgaXQgYXMgb2Z0ZW4gYXMgd2UgaW5jbHVkZSB0aGF0IGZpbGVzCgkgIGFuZCB3YXJuIGFib3V0IGR1cGxpY2F0ZWQgU0VDVElPTjoKCjIwMTUtMDYtMTMgMTA6MjM6NTIgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgZ2k6IFNraXAgbWluaSBvYmplY3QgbWV0aG9kIHRoYXQgcGxheSB3aXRoIHJlZmNvdW50aW5nCgkgIEl0IG1ha2Ugbm8gc2Vuc2UgdG8gYWxsb3cgdXNpbmcgdGhhdC4gQW55IHVzZSB3b3VsZCBsZWFkIHRvIGxlYWsKCSAgb2YgY3Jhc2guIE5vdGUgdGhhdCBHTWluaU9iamVjdCBpcyBlbnRpcmVseSB1bnVzYWJsZSBhcyB5b3UgY2Fubm90CgkgIGNhc3QgZnJvbSBsZXQncyBzYXkgR3N0QnVmZmVyIHRvIEdzdE1pbmlPYmplY3QuCgoyMDE1LTA2LTEzIDE1OjA1OjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSAgbGliczogbW9yZSBkb2Mgc2Nhbm5lciBmaXhlcwoJICBnc3RiYXNldHJhbnNmb3JtLmg6MTk2OiBXYXJuaW5nOiBHc3RCYXNlOiAiQHN1Ym1pdF9pbnB1dF9idWZmZXIiIHBhcmFtZXRlciB1bmV4cGVjdGVkIGF0IHRoaXMgbG9jYXRpb246CgkgICogQHN1Ym1pdF9pbnB1dF9idWZmZXI6IEZ1bmN0aW9uIHdoaWNoIGFjY2VwdHMgYSBuZXcgaW5wdXQgYnVmZmVyIGFuZCBwcmUtcHJvY2Vzc2VzIGl0LgoJICBnc3RuZXRjb250cm9sbWVzc2FnZW1ldGEuYzoxMDM6IFdhcm5pbmc6IEdzdE5ldDogZ3N0X2J1ZmZlcl9hZGRfbmV0X2NvbnRyb2xfbWVzc2FnZV9tZXRhOiB1bmtub3duIHBhcmFtZXRlciAnbWVzc2FnZScgaW4gZG9jdW1lbnRhdGlvbiBjb21tZW50LCBzaG91bGQgYmUgJ2FkZHInCgoyMDE1LTA2LTEzIDA5OjM3OjQ2IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIGRvYzogRml4IGFubm9hdGlvbiBmb3IgR3N0TWluaU9iamVjdAoJICBSZXBsYWNpbmcgcmVwcmVjYXRlZCAiUmVmIEZ1bmM6IiwgIlVucmVmIEZ1bjoiIGV0Yy4gY29tbWVudCBibG9jawoJICB3aXRoIGFwcHJvcHJpYXRlIChyZWYtZnVuYyBuYW1lKSBldGMuIGFubm90YXRpb24uCgoyMDE1LTA2LTEzIDA5OjM0OjA2IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBkb2M6IEZpeCB1bmJhbGFuY2VkIHBhcmVudGhlc2lzCgoyMDE1LTA2LTEzIDA5OjMwOjI0IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5oOgoJICBkb2M6IEZpeCBtb3JlIHR5cG8KCjIwMTUtMDYtMTMgMDk6MjI6NDEgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGRvYzogRml4IHR5cGUgaW4gcHJldmlvdXMgY29tbWl0CgkgIE1hcmtlciBpcyAodmFsdWUgLi4gbm90IChhbHVlLgoKMjAxNS0wNi0xMyAwOToxOToyNyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIGRvYzogRG9uJ3QgdXNlIGRlcHJlY2F0ZWQgVmFsdWU6IGFuZCBUeXBlOiBjb21tZW50CgkgIEluc3RlYWQgdXNlIGFwcHJvcHJpYXRlIGFubm90YXRpb24uIEFubm90YXRpb25zIGNhbiBiZSBhZGRlZAoJICB0byB0aGUgcmlnaHQgb2YgdGhlIGNvbnN0YW50IG5hbWUgaW4gYSBjb21tZW50IGJsb2NrLgoKMjAxNS0wNi0xMiAxNzowNzozOCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgY29sbGVjdHBhZHM6IEFkZCBuZXcgbWFjcm8gdG8gdGhlIGRvYwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwNTc1CgoyMDE1LTA2LTEyIDE3OjA3OjI2IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBjbG9jazogQWRkIG5ldyBzaWduZWQgdGltZSBtYWNybyB0byB0aGUgZG9jCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDA1NzUKCjIwMTUtMDYtMTAgMTQ6MTc6MDEgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IERvbid0IGluaXRpYWxseSBzZW5kIGFuIGludmFsaWQgRFRTCgkgIFNlbmRpbmcgYSBwb3NzaWJseSBpbnZhbGlkIERUUyBtYXkgY29uZnVzZSB0aGUgbXV4ZXJzLCB3aGljaCB3aWxsCgkgIHRoZW4gdGhpbmsgdGhlIERUUyBpcyBnb2luZyBiYWNrd2FyZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MDU3NQoKMjAxNS0wNC0wMyAxNzo1NDo1MCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IEFkZCBuZWdhdGl2ZSBEVFMgc3VwcG9ydAoJICBNYWtlIGdzdF9jb2xsZWN0X3BhZHNfY2xpcF9ydW5uaW5nX3RpbWUoKSBmdW5jdGlvbiBhbHNvIHN0b3JlIHRoZQoJICBzaWduZWQgRFRTIGluIHRoZSBDb2xsZWN0RGF0YS4gVGhpcyBzaWduZWQgRFRTIHZhbHVlIGNhbiBiZSB1c2VkIGJ5CgkgIG11eGVycyB0byBwcm9wZXJseSBoYW5kbGUgc3RyZWFtcyB3aGVyZSBEVFMgY2FuIGJlIG5lZ2F0aXZlIGluaXRpYWxseS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MDU3NQoKMjAxNS0wNi0xMiAxMjowNjowNSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGNsb2NrOiBBZGQgc2lnbmVkIHRpbWUgdXRpbGl0aWVzCgkgIEFkZCB1dGlsaXR5IHRvIHByaW50IHNpZ25lZCB2YWx1ZSBvZiB0aW1lLiBUaGlzIGlzIHVzZWZ1bCB0bwoJICB0cmFjZSBydW5uaW5nIHRpbWUgdmFsdWVzIGluIGdpbnQ2NCBvciBHc3RDbG9ja1RpbWVEaWZmIHZhbHVlcy4KCSAgQWRkaXRpb25hbGx5LCBkZWZpbmUgR1NUX0NMT0NLX1NUSU1FX05PTkUgdG8gaW5kaWNhdGUgYW4gaW52YWxpZAoJICBzaWduZWQgdGltZSB2YWx1ZSBhbmQgdmFsaWRhdGlvbiBtYWNyby4gTmV3IG1hY3JvcyBhcmU6CgkgIEdTVF9DTE9DS19TVElNRV9OT05FCgkgIEdTVF9DTE9DS19TVElNRV9JU19WQUxJRAoJICBHU1RfU1RJTUVfRk9STUFUCgkgIEdTVF9TVElNRV9BUkdTCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDA1NzUKCjIwMTUtMDYtMTAgMjA6NDQ6MjYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IGFkZCBhbGxvdy1ub25lIHRvIGdzdF9tZXNzYWdlX25ld18gZnVuY3Rpb24KCSAgTm8gcmVzdHJpY3Rpb24gZm9yIGNyZWF0aW5nIG1lc3NhZ2VzIHdpdGhvdXQgYSBzb3VyY2UKCjIwMTUtMDYtMTIgMTM6NDU6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgLmRlZiBmaWxlIGZvciBuZXcgQVBJCgoyMDE1LTA1LTI3IDEyOjI5OjQxICswMzAwICBMYXphciBDbGF1ZGl1IDxsYXphci5jbGF1ZGl1LmZsb3JpbkBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuaDoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hYnNvbHV0ZS1leGFtcGxlLmM6CgkgIGNvbnRyb2xsZXI6IEFkZGVkIGFic29sdXRlIGRpcmVjdCBjb250cm9sIGJpbmRpbmcsIGV4YW1wbGUgYW5kIHRlc3QKCSAgRml4ZXM6IDc0MDUwMgoJICBBUEk6IGdzdF9kaXJlY3RfY29udHJvbF9iaW5kaW5nX25ld19hYnNvbHV0ZQoKMjAxNS0wNi0wNCAwMDowMzoxNiArMTAwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGFsbG9jYXRvci5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBwcm92aWRlIGEgbWVtX21hcF9mdWxsIHRoYXQgdGFrZXMgdGhlIEdzdE1hcEluZm8KCSAgRm9sbG93IHVwIG9mIDcxMzAyMzBkZGIzNDlkMGNhNzk0MmFiZGJhMjZiNzU1OGRmMDU1ZDEKCSAgUHJvdmlkZSB0aGUgbWVtb3J5IGltcGxlbWVudGF0aW9uIHRoZSBHc3RNYXBJbmZvIHRoYXQgd2lsbCBiZSB1c2VkIHRvCgkgIG1hcC91bm1hcCB0aGUgbWVtb3J5LiAgVGhpcyBhbGxvd3MgdGhlIG1lbW9yeSBpbXBsZW1lbnRhdGlvbiB0byB1c2UKCSAgc29tZSBzY3JhdGNoIHNwYWNlIGluIEdzdE1hcEluZm8gdG8gZS5nLiB0cmFjayBkaWZmZXJlbnQgbWFwL3VubWFwCgkgIGJlaGF2aW91ciBvciBzdG9yZSBleHRyYSBpbXBsZW1lbnRhdGlvbiBkZWZpbmVkIGRhdGEgYWJvdXQgdGhlIG1hcAoJICBpbiB1c2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAzMTkKCjIwMTUtMDQtMDggMTQ6MjE6NDMgLTA3MDAgIEFsaXNvbiBDaGFpa2VuIDxhbGlzb25fY2hhaWtlbkBtZW50b3IuY29tPgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICBkb2NzOiBtYW51YWw6IGZpeCBuYW1lIHJldmVyc2FsIGluIGJhc2ljcy1wYWRzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDc1MzIKCjIwMTUtMDYtMTEgMjM6MDY6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzX3ByaXZhdGUuYzoKCSAgZ3N0X3dyaXRldjogZGVmaW5lIFVJT19NQVhJT1Ygb24gaU9TL09TWAoJICBBcHBhcmVudGx5IGl0J3Mgb25seSBzZXRvbiBpT1MvT1NYIGlmIGRlZmluZWQoS0VSTkVMKS4KCjIwMTUtMDYtMTIgMDE6MTU6MTkgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50c19wcml2YXRlLmM6CgkgIGdzdF93cml0ZXY6IFJlc3BlY3QgVUlPX01BWElPViBsaW1pdCBmb3IgdGhlIGlvdiBhcnJheQoJICBJZiB3ZSByZWNlaXZlIG1vcmUgdGhhbiBVSU9fTUFYSU9WICgxMDI0IHR5cGljYWxseSkgYnVmZmVycwoJICBpbiBhIHNpbmdsZSB3cml0ZXYgY2FsbCwgZmFsbCBiYWNrIHRvIGNvbnNvbGlkYXRpbmcgdGhlbQoJICBpbnRvIG9uZSBvdXRwdXQgYnVmZmVyIG9yIG11bHRpcGxlIHdyaXRlIGNhbGxzLgoJICBUaGlzIGNvdWxkIGJlIG1hZGUgbW9yZSBvcHRpbWFsLCBidXQgbGV0J3Mgd2FpdCB1bnRpbCBpdCdzCgkgIGV2ZXIgYSBib3R0bGVuZWNrIGZvciBzb21lb25lCgoyMDE1LTA2LTExIDEyOjM0OjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGlwZWxpbmU6IEFkZCBnc3RfcGlwZWxpbmVfc2V0X2xhdGVuY3koKSwgZ2V0dGVyIGFuZCBHT2JqZWN0IHByb3BlcnR5CgkgIFRoaXMgb3ZlcnJpZGVzIHRoZSBkZWZhdWx0IGxhdGVuY3kgaGFuZGxpbmcgYW5kIGNvbmZpZ3VyZXMgdGhlIHNwZWNpZmllZAoJICBsYXRlbmN5IGluc3RlYWQgb2YgdGhlIG1pbmltdW0gbGF0ZW5jeSB0aGF0IHdhcyByZXR1cm5lZCBmcm9tIHRoZSBMQVRFTkNZCgkgIHF1ZXJ5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwNzgyCgoyMDE1LTA2LTExIDExOjM3OjMwICswMjAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJICBjb25jYXQ6IEFkZCBhY3RpdmUtcGFkIHByb3BlcnR5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY5NDkKCjIwMTUtMDYtMTEgMTE6MDU6NTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJICBjb25jYXQ6IEFsc28gcmVzZXQgdGhlIGN1cnJlbnQgc3RhcnQgb2Zmc2V0IHdoZW4gcmVjZWl2aW5nIGEgRkxVU0hfU1RPUCBvbiB0aGUgc3JjcGFkCgoyMDE1LTA2LTExIDExOjA1OjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuYzoKCSAgY29uY2F0OiBBZGQgc29tZSBuZXdsaW5lcyB0byBldmVudCBoYW5kbGluZyBjb2RlIHRvIG1ha2UgdGhlIGNvZGUgbG9vayBhIGJpdCBsZXNzIGRlbnNlCgoyMDE1LTA2LTExIDEwOjUzOjMwICswMjAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJICBjb25jYXQ6IFJlc2V0IHNlZ21lbnQgYmFzZSBvZmZzZXQgYWZ0ZXIgRkxVU0hfU1RPUCB3aXRoIHJlc2V0X3RpbWUgPSBUUlVFCgkgIElmIHRoZSByZXNldF90aW1lIHZhbHVlIG9mIGEgRkxVU0hfU1RPUCBldmVudCBpcyBzZXQgdG8gVFJVRSwgdGhlIHBpcGVsaW5lCgkgIHdpbGwgaGF2ZSB0aGUgYmFzZV90aW1lIG9mIGl0cyBlbGVtZW50cyByZXNldC4gVGhpcyBtZWFucyB0aGF0IHRoZSBjb25jYXQKCSAgZWxlbWVudCdzIGN1cnJlbnRfc3RhcnRfb2Zmc2V0IGhhcyB0byBiZSByZXNldCB0byAwLCBzaW5jZSBpdCB3YXMKCSAgY2FsY3VsYXRlZCB3aXRoIHRoZSBvbGQgYmFzZS10aW1lIGluIG1pbmQuCgkgIE9ubHkgRkxVU0hfU1RPUCBldmVudHMgY29taW5nIGZyb20gdGhlIGFjdGl2ZSBwYWQgYXJlIGxvb2tlZCBhdC4KCSAgU2lnbmVkLW9mZi1ieTogQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKMjAxNS0wMy0yOCAxNjo0NjozMiArMDEwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuYzoKCSAgY29uY2F0OiBGb3J3YXJkIEZMVVNIX1NUQVJUIGFuZCBGTFVTSF9TVE9QIGV2ZW50cwoJICBXaXRob3V0IHRoaXMsIHNlZWtpbmcgZGVhZGxvY2tzIGlmIHBlcmZvcm1lZCB3aGlsZSB0aGUgcGlwZWxpbmUgaXMgcGF1c2VkLgoJICBPbmx5IGZsdXNoIGV2ZW50cyBjb21pbmcgZnJvbSB0aGUgYWN0aXZlIHBhZCBhcmUgZm9yd2FyZGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1MzY2CgoyMDE1LTA2LTA5IDE0OjI4OjMwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogTWFrZWZpbGUuYW06CgkgIGNydWZ0OiBhZGQgdGhlIG9ic29sZXRlIHRtcGwgZGlyIHRvIGNydWZ0LWRpcnMKCjIwMTUtMDYtMDkgMTE6MzA6MTAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGQ5YTMzNTMgdG8gNjAxNWQyNgoKMjAxNS0wNi0wOSAxMTowMTo1MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IEZpeCBmc3luYy9fY29tbWl0IHVzYWdlCgkgIF9NU0NfVkVSIHdpbGwgb25seSBiZSBkZWZpbmVkIHdoZW4gYnVpbGRpbmcgKm9uKiB3aW5kb3dzIGFuZCBub3QganVzdAoJICAqZm9yKiB3aW5kb3dzLiBJbnN0ZWFkLCB1c2UgdGhlIEdfT1NfV0lOMzIgZGVmaW5lCgoyMDE1LTA2LTA5IDEwOjU5OjQyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wdHAtaGVscGVyLmM6CgkgIHB0cDogQ2hlY2sgZm9yIHRoZSBhY3R1YWwgQVBJIHdlIHVzZSBpbnN0ZWFkIG9mIGp1c3QgbG9va2luZyBmb3IgX19BUFBMRV9fCgkgIFNob3VsZCBmaXggdGhlIGJ1aWxkIG9uIEZyZWVCU0QsIERyYWdvbkZseSBhbmQgb3RoZXIgQlNEcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDUzMAoKMjAxNS0wNi0wOCAxNzoxMDo1NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogVXNlIHRoZSBuZXcgR1NUX0NMT0NLX0ZMQUdfTkVFRFNfU1RBUlRVUF9TWU5DIGZsYWcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDU3NAoKMjAxNS0wNi0wOCAxNzowNDo1NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogTWFrZSB0aGUgY2xvY2sgYSB3cmFwcGVyIGNsb2NrIGFyb3VuZCBhbiBpbnRlcm5hbCBjbG9jawoJICBUaGUgaW50ZXJuYWwgY2xvY2sgaXMgb25seSB1c2VkIGZvciBzbGF2aW5nIGFnYWluc3QgdGhlIHJlbW90ZSBjbG9jaywgd2hpbGUKCSAgdGhlIHVzZXItZmFjaW5nIEdzdENsb2NrIGNhbiBiZSBhZGRpdGlvbmFsbHkgc2xhdmVkIHRvIGFub3RoZXIgY2xvY2sgaWYKCSAgZGVzaXJlZC4gQnkgZGVmYXVsdCwgaWYgbm8gbWFzdGVyIGNsb2NrIGlzIHNldCwgdGhpcyBoYXMgZXhhY3RseSB0aGUgc2FtZQoJICBiZWhhdmlvdXIgYXMgYmVmb3JlLiBJZiBhIG1hc3RlciBjbG9jayBpcyBzZXQgKHdoaWNoIHdhcyBub3QgYWxsb3dlZCBiZWZvcmUpLAoJICB0aGUgdXNlci1mYWNpbmcgY2xvY2sgaXMgcmVwb3J0aW5nIHRoZSByZW1vdGUgY2xvY2sgYXMgaW50ZXJuYWwgdGltZSBhbmQKCSAgc2xhdmVzIHRoaXMgdG8gdGhlIG1hc3RlciBjbG9jay4KCSAgVGhpcyBhbHNvIHJlbW92ZXMgdGhlIHdlaXJkbmVzcyB0aGF0IHRoZSBpbnRlcm5hbCB0aW1lIG9mIHRoZSBuZXRjbGllbnRjbG9jawoJICB3YXMgYWx3YXlzIHRoZSBzeXN0ZW0gY2xvY2sgdGltZSwgYW5kIG5vdCB0aGUgcmVtb3RlIGNsb2NrIHRpbWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA1NzQKCjIwMTUtMDYtMDggMjM6MDc6NDAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGQzN2FmMzIgdG8gZDlhMzM1MwoKMjAxNS0wNi0wOCAyMDowMDo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkgIHRlc3RzOiBmYWtlc2luazogZml4IHN0cmluZyBsZWFrIGluIHVuaXQgdGVzdAoKMjAxNS0wNi0wOSAwMDo1MjozNCArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGZpbGVzaW5rOiBGaXggV2luZG93cyBidWlsZCBieSB1c2luZyBfY29tbWl0IGluc3RlYWQgb2YgZnN5bmMuCgoyMDE1LTA2LTA4IDEyOjIyOjU2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cDogTWFrZSBzdXJlIHRvIGFsd2F5cyBpbml0aWFsaXplIHRoZSB2YXJpYWJsZXMgd2UgcHV0IGludG8gdGhlIHN0YXRpc3RpY3Mgc3RydWN0dXJlIGxhdGVyCgkgIENJRCAxMzA0Njc2LCAxMzA0Njc3LCAxMzA0Njc4LCAxMzA0Njc5LgoKMjAxNS0wNi0wOCAxMjowMjozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXB0cC1oZWxwZXIuYzoKCSAgcHRwOiBFbnN1cmUgdGhhdCBub3QgdG9vIG11Y2ggaXMgcmVhZCBmcm9tIG9yIHdyaXR0ZW4gdG8gc3RydWN0IGlmcmVxLmlmcl9uYW1lCgoyMDE1LTA2LTA4IDE5OjMzOjAzICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiBBZGQgU2luY2UgbWFya2VycyBmb3IgbmV3IHZmdW5jcwoJICBBZGQgU2luY2U6IDEuNiBtYXJrZXJzIGZvciB0aGUgbmV3IHN1Ym1pdF9pbnB1dF9idWZmZXIoKSBhbmQKCSAgZ2VuZXJhdGVfb3V0cHV0KCkgdmZ1bmNzCgoyMDE1LTA1LTIzIDAxOjA4OjI5ICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTIuYzoKCSAgYmFzZXRyYW5zZm9ybTogU3BsaXQgaW5wdXQgYnVmZmVyIHByb2Nlc3NpbmcgZnJvbSBvdXRwdXQgZ2VuZXJhdGlvbgoJICBBbGxvdyBmb3Igc3ViLWNsYXNzZXMgd2hpY2ggd2FudCB0byBjb2xsYXRlIGluY29taW5nIGJ1ZmZlcnMgb3IKCSAgc3BsaXQgdGhlbSBpbnRvIG11bHRpcGxlIG91dHB1dCBidWZmZXJzIGJ5IHNlcGFyYXRpbmcgdGhlIGlucHV0CgkgIGJ1ZmZlciBzdWJtaXNzaW9uIGZyb20gb3V0cHV0IGJ1ZmZlciBnZW5lcmF0aW9uIGFuZCBhbGxvd2luZwoJICBmb3IgbG9vcGluZyBvZiBvbmUgb2YgdGhlIHBoYXNlcyBkZXBlbmRpbmcgb24gcHVsbCBvciBwdXNoIG1vZGUKCSAgb3BlcmF0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMDMzCgoyMDE1LTA0LTE2IDEwOjMyOjAyICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBBZGQgR1NUX0JVRkZFUl9GTEFHX1NZTkNfQUZURVIgZmxhZywgYW5kIGltcGxlbWVudCBpbiBmaWxlc2luay4KCSAgTWFrZXMgaXQgcG9zc2libGUgdG8gZ2V0IGZpbGVzaW5rIHRvIGZzeW5jKCkgYWZ0ZXIgcmVuZGVyaW5nCgkgIGEgYnVmZmVyLgoKMjAxNS0wNi0wOCAxMDo0NjoyNCArMDIwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwOiBGaXggYnVpbGQgb24gV2luZG93cywgYW5kIGluIGdlbmVyYWwgdGhlIEdJIGJ1aWxkIHdoZW4gUFRQIHN1cHBvcnQgd2FzIG5vdCBhdmFpbGFibGUKCSAgSXQncyBub3QgZ29pbmcgdG8gd29yayBvbiBXaW5kb3dzIHN0aWxsLCB0aGUgaGVscGVyIHByb2Nlc3MgbmVlZHMgdG8gYmUKCSAgcG9ydGVkLgoKMjAxNS0wNi0wNyAyMzowNTo1MyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMjFiYTJlNSB0byBkMzdhZjMyCgoyMDE1LTA2LTA3IDE3OjMxOjUwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBjNDA4NTgzIHRvIDIxYmEyZTUKCjIwMTUtMDYtMDcgMTY6NTg6NDAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgIGRvY3M6IHJlbW92ZSB2YXJpYWJsZXMgdGhhdCB3ZSBkZWZpbmUgaW4gdGhlIHNuaXBwZXQgZnJvbSBjb21tb24KCSAgVGhpcyBpcyBzeW5jaW5nIG91ciBNYWtlZmlsZS5hbSB3aXRoIHVwc3RyZWFtIGd0a2RvYy4KCjIwMTUtMDYtMDcgMTc6MTY6MDYgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGQ2NzY5OTMgdG8gYzQwODU4MwoKMjAxNS0wNi0wNyAxNjo0NDoyNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKMjAxNS0wNi0wNyAxMDo1MjozMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RudHBwYWNrZXQuYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IFRoZSBOVFAgcG9sbCBpbnRlcnZhbCBpcyBhIHNpZ25lZCBpbnQ4LCBub3QgdW5zaWduZWQKCj09PSByZWxlYXNlIDEuNS4xID09PQoKMjAxNS0wNi0wNyAwOTo0MToyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnNpZ25hbHM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS41LjEKCjIwMTUtMDYtMDcgMDk6MzM6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2ZyLnBvOgoJKiBwby90ci5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTUtMDYtMDcgMDk6MzI6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IEFkZCBTaW5jZSBtYXJrZXIgdG8gdGhlIGRvY3MgZm9yIGdzdF9udHBfY2xvY2tfbmV3KCkKCjIwMTUtMDYtMDcgMDk6MzI6MTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE1LTA2LTA3IDA5OjA4OjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IEZpeCBjb21waWxlciB3YXJuaW5ncyBpbiB1bml0IHRlc3QKCSAgZ3N0L2dzdG1lbW9yeS5jOjU3MDozODogZXJyb3I6IGltcGxpY2l0IGNvbnZlcnNpb24gZnJvbSBlbnVtZXJhdGlvbiB0eXBlICdHc3RNYXBGbGFncycgdG8gZGlmZmVyZW50IGVudW1lcmF0aW9uCgkgIHR5cGUgJ0dzdExvY2tGbGFncycgWy1XZXJyb3IsLVdlbnVtLWNvbnZlcnNpb25dCgkgIGZhaWxfdW5sZXNzIChnc3RfbWVtb3J5X2xvY2sgKG1lbSwgR1NUX01BUF9XUklURSkpOwoJICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Xn5+fn5+fn5+fn5+fn4KCjIwMTUtMDYtMDcgMDg6NTk6MjMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwY2xvY2s6IFVzZSB0aGUgY3VycmVudCBwYXRoIGRlbGF5IGZvciBjYWxjdWxhdGlvbiB0aGUgbG9jYWwvcmVtb3RlIGNsb2NrIHRpbWVzCgkgIFRoZSBtZWFuIG1pZ2h0IGN1cnJlbnRseSBiZSBjaGFuZ2luZywgYW5kIHRoZSBjdXJyZW50IHBhdGggZGVsYXkgaXMgdGhlCgkgIGNsb3Nlc3Qgd2UgY2FuIGdldCB0byB0aGUgYWN0dWFsIGRlbGF5IGFyb3VuZCB0aGUgY3VycmVudCBTWU5DIG1lc3NhZ2UuCgoyMDE1LTA2LTA2IDIzOjA1OjMyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBBZGQgc29tZSBjb3B5cmlnaHQgc3R1ZmYKCjIwMTUtMDYtMDYgMjE6NDM6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSogbGlicy9nc3QvbmV0L2dzdG50cHBhY2tldC5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bnRwcGFja2V0Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZGVmOgoJICBuZXRjbGllbnRjbG9jazogQWRkIE5UUHY0IHN1cHBvcnQKCSAgVGhpcyB1c2VzIGFsbCBvZiB0aGUgbmV0Y2xpZW50Y2xvY2sgY29kZSwgZXhjZXB0IGZvciB0aGUgZ2VuZXJhdGlvbiBhbmQKCSAgcGFyc2luZyBvZiBwYWNrZXRzLiBVbmZvcnR1bmF0ZWx5IHNvbWUgY29kZSBkdXBsaWNhdGlvbiB3YXMgbmVjZXNzYXJ5CgkgIGJlY2F1c2UgR3N0TmV0VGltZVBhY2tldCBpcyBwdWJsaWMgQVBJIGFuZCBjb3VsZG4ndCBiZSBleHRlbmRlZCBlYXNpbHkKCSAgdG8gc3VwcG9ydCBOVFB2NCBwYWNrZXRzIHdpdGhvdXQgYnJlYWtpbmcgQVBJL0FCSS4KCjIwMTUtMDYtMDYgMjA6Mzk6NDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IFByZXBhcmF0aW9uIGZvciBOVFB2NCBzdXBwb3J0CgkgIFdlIGV4dGVuZCBvdXIgY2FsY3VsYXRpb25zIHRvIHdvcmsgd2l0aCBsb2NhbCBzZW5kIHRpbWUsIHJlbW90ZSByZWNlaXZlIHRpbWUsCgkgIHJlbW90ZSBzZW5kIHRpbWUgYW5kIGxvY2FsIHJlY2VpdmUgdGltZS4gRm9yIHRoZSBuZXRjbGllbnRjbG9jayBwcm90b2NvbCwKCSAgcmVtb3RlIHJlY2VpdmUgYW5kIHNlbmQgdGltZSBhcmUgYXNzdW1lZCB0byBiZSB0aGUgc2FtZSB2YWx1ZS4KCSAgRm9yIHRoZSByZXN1bHRzLCB0aGlzIG1vZGlmaWVkIGNhbGN1bGF0aW9uIG1ha2VzIGFic29sdXRlbHkgbm8gZGlmZmVyZW5jZQoJICB1bmxlc3MgdGhlIHR3byByZW1vdGUgdGltZXMgYXJlIGRpZmZlcmVudC4KCjIwMTUtMDYtMDYgMTk6MDE6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2suIEZpeCBsYXN0IGNvbW1pdAoJICBBcHBhcmVudGx5IEkgZmFpbGVkIGF0IGdpdCBhZGQgLWkuCgoyMDE1LTA2LTA2IDE4OjQyOjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBNYWtlIGdzdF9uZXRfY2xpZW50X2Nsb2NrX25ldygpIGEgdGhpbmcgd3JhcHBlciBhcm91bmQgZ19vYmplY3RfbmV3KCkKCSAgQmluZGluZ3Mgd2lsbCBsaWtlIHRoaXMsIGFuZCBhbHNvIGl0IGZpeGVzIGEgRklYTUUgY29tbWVudC4KCjIwMTUtMDYtMDYgMTQ6MzQ6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwY2xvY2s6IFVzZSAjZGVmaW5lIGV2ZXJ5d2hlcmUgaW5zdGVhZCBvZiBHX05fRUxFTUVOVFMoKQoKMjAxNS0wNi0wNiAxNDozMToxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogRmlsdGVyIFJUVHMgYmFzZWQgb24gdGhlIG1lZGlhbiBvZiB0aGUgbGFzdCBSVFRzIGJlZm9yZSBjb25zaWRlcmluZyB0aGVtIGF0IGFsbAoJICBUaGlzIGltcHJvdmVzIGFjY3VyYWN5IG9uIHdpZmkgb3Igc2ltaWxhciBuZXR3b3Jrcywgd2hlcmUgdGhlIFJUVCBjYW4gZ28gdmVyeQoJICBoaWdoIHVwIGZvciBhIHNpbmdsZSBvYnNlcnZhdGlvbiBldmVyeSBub3cgYW5kIHRoZW4uIFdpdGhvdXQgZmlsdGVyaW5nIHRoZW0KCSAgYXdheSBjb21wbGV0ZWx5LCB0aGV5IHdvdWxkIHN0aWxsIHN0aWxsIG1vZGlmeSB0aGUgYXZlcmFnZSBSVFQsIGFuZCB0aHVzIGFsbAoJICBjbG9jayBlc3RpbWF0aW9ucy4KCjIwMTUtMDYtMDYgMTQ6MTk6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwY2xvY2s6IFVzZSBhIHN5c3RlbSBjbG9jayBmb3IgdGhlIHRpbWUgb2JzZXJ2YXRpb25zIGluc3RlYWQgb2YgZ3N0X3V0aWxfZ2V0X3RpbWVzdGFtcCgpCgkgIFRoZXkgZG9uJ3QgbmVjZXNzYXJpbHkgdXNlIHRoZSBzYW1lIHVuZGVybHlpbmcgY2xvY2tzIChlLmcuIG9uIFdpbmRvd3MpLCBvcgoJICBtaWdodCBiZSBjb25maWd1cmVkIHRvIGEgZGlmZmVyZW50IGNsb2NrIHR5cGUgKG1vbm90b25pYyB2cy4gcmVhbCB0aW1lIGNsb2NrKS4KCSAgV2UgbmVlZCB0aGUgdmFsdWVzIGEgY2xlYW4gc3lzdGVtIGNsb2NrIHJldHVybnMsIGFzIHRob3NlIGFyZSB0aGUgdmFsdWVzIHVzZWQKCSAgYnkgdGhlIGludGVybmFsIGNsb2Nrcy4KCjIwMTUtMDYtMDYgMTI6MzU6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwY2xvY2s6IEZpeCBkb2N1bWVudGF0aW9uIGEgYml0CgoyMDE1LTA2LTA1IDE5OjM1OjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSAgdGVzdHM6IGZha2VzaW5rOiB0ZXN0IG5vdGlmeTo6bGFzdC1tZXNzYWdlIGFuZCBkZWVwLW5vdGlmeTo6bGFzdC1tZXNzYWdlCgkgIGRlZXAtbm90aWZ5OjpsYXN0LW1lc3NhZ2Ugc2VlbXMgdG8gY2F1c2Ugc29tZSBwcm9ibGVtcywgc28gZGlzYWJsZSBmb3Igbm93LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxNjQyCgoyMDE1LTA2LTA1IDEwOjAyOjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFBvc3QgYW4gZXJyb3IgaWYgd2UgY2FuJ3QgdHlwZWZpbmQgdGhlIGRhdGEgdW50aWwgRU9TCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA0MzkKCjIwMTUtMDYtMDQgMTk6MDU6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wdHAtaGVscGVyLmM6CgkgIHB0cC1oZWxwZXI6IE1ha2Ugc3VyZSB0byB1c2UgZ19wb2xsKCkgZm9yIHRoZSBtYWluIGNvbnRleHQKCSAgVGhlIG1vZGlmaWVkIG1haW4gY29udGV4dCBmcm9tIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDEwNTQKCSAgc29tZWhvdyBjYWxscyBzZXR1Z2lkKCksIHdoaWNoIGFib3J0KClzIHNldHVpZCByb290IGFwcGxpY2F0aW9ucyBvbiBPU1guCgoyMDE1LTA2LTA0IDE4OjMyOjE0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcHRwLWhlbHBlci5jOgoJICBwdHAtaGVscGVyOiBNYWtlIHN1cmUgdGhhdCB3ZSBhcmUgcnVubmluZyBzZXR1aWQgcm9vdCBpZiBjb25maWd1cmVkIHRoYXQgd2F5CgoyMDE1LTA2LTA0IDE4OjAwOjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcHRwLWhlbHBlci5jOgoJICBwdHAtaGVscGVyOiBGaXggaW50ZXJmYWNlIGxpc3RpbmcgYW5kIE1BQyByZXRyaWV2YWwgb24gT1NYCgoyMDE1LTA2LTAzIDE5OjA0OjE1ICswMzAwICBWaXZpYSBOaWtvbGFpZG91IDx2aXZpYUBhaGlydS5ldT4KCgkqIHRvb2xzL2dzdC1pbmRlbnQ6CgkgIGdzdC1pbmRlbnQ6IEFkZCBzdXBwb3J0IGZvciBnaW5kZW50IGFzIGV4ZWN1dGFibGUgbmFtZQoJICBnc3QtaW5kZW50IHVzZWQgdG8gc3VwcG9ydCBnbnVpbmRlbnQgYW5kIGluZGVudCBhcyBleGVjdXRhYmxlIG5hbWVzLgoJICBIb3dldmVyLCBvbiBPU1ggb25lIGNhbiAiYnJldyBpbnN0YWxsIGdudS1pbmRlbnQiIGFuZCB0aGVuIHRoZQoJICBleGVjdXRhYmxlIG5hbWUgd2lsbCBiZSBnaW5kZW50LiBBZGRlZCBzdXBwb3J0IGZvciB0aGF0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMzUxCgoyMDE1LTA2LTAzIDE2OjQyOjU3ICswMTAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy8uZ2l0aWdub3JlOgoJICBnaXRpZ25vcmU6IGFkZCBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wdHAtaGVscGVyCgoyMDE1LTA2LTAzIDE2OjM0OjU4ICswMTAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSAgcHRwOiBpZ25vcmUgcGVybWlzc2lvbiBlcnJvcnMgaW4gTWFrZWZpbGUKCSAgVG8gc2F0aXNmeSB0aGUgYnVpbGRzbGF2ZXMgaWdub3JlIHBlcm1pc3Npb24gZXJyb3JzIGluIGNob3duLCBjaG1vZCBhbmQgc2V0Y2FwCgoyMDE1LTA2LTAzIDE3OjA2OjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcHRwLWhlbHBlci5jOgoJICBwdHA6IERvbid0IHVzZSBTSU9DR0lGSFdBRERSIG9uIEFwcGxlCgkgIEp1c3QgI2lmZGVmIHRoZSBjb2RlIGZvciBub3csIHRoaXMgc2hvdWxkIGJlIGltcGxlbWVudGVkIGFyb3VuZAoJICBJT0tpdCBsYXRlciBpbnN0ZWFkIG9mIHVzaW5nIGlvY3Rscy4KCjIwMTUtMDYtMDMgMTY6Mjg6NDQgKzAyMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxuQGlnYWxpYS5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJICBidWlsZDogbWFrZSBpbnN0YWxsLWV4ZWMtaG9va3MgZGVwZW5kIG9uIGluc3RhbGwtaGVscGVyc1BST0dSQU1TCgkgIFRvIGF2b2lkIHJhY2UgY29uZGl0aW9ucyB3aGVyZSBtYWtlIHdvdWxkIHRyeSB0byBjaGFuZ2Ugb3duZXJzaGlwIGFuZAoJICBwZXJtaXNzaW9ucyBvZiB0aGUgbm90LXlldC1pbnN0YWxsZWQgcHRwIGhlbHBlci4KCjIwMTUtMDYtMDMgMTY6MDg6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwOiBGaXggZGVidWcgb3V0cHV0IHRvIHByaW50IHRoZSBkaWZmZXJlbmNlIGluc3RlYWQgb2YgYWJzb2x1dGUgdmFsdWVzCgoyMDE1LTA2LTAzIDE1OjIyOjMxICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHBjbG9jazogZml4IGNvbXBpbGF0aW9uCgkgIERvbid0IHB1dCBjb2RlIGJldHdlZW4gZGVjbGFyYXRpb25zLgoJICBGaXggdXNlIG9mIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzCgoyMDE1LTA2LTAzIDExOjA0OjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cDogQWRkIG1lZGlhbiBiYXNlZCBwcmUtZmlsdGVyaW5nIG9mIGRlbGF5cwoJICBJZiB0aGUgZGVsYXkgbWVhc3VyZW1lbnQgaXMgdG9vIGZhciBhd2F5IGZyb20gdGhlIG1lZGlhbiBvZiB0aGUgd2luZG93IG9mIGxhc3QKCSAgZGVsYXkgbWVhc3VyZW1lbnRzLCB3ZSBkaXNjYXJkIGl0LiBUaGlzIGluY3JlYXNlcyBhY2N1cmFjeSBvbiB3aWZpIGEgbG90LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ5MzkxCgoyMDE1LTA2LTAyIDE1OjI0OjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cDogQWRkICNkZWZpbmUgdG8gb25seSB1c2UgU1lOQyBtZXNzYWdlcyBmb3Igd2hpY2ggd2UgY2FuIHNlbmQgREVMQVlfUkVRCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDkzOTEKCjIwMTUtMDUtMTUgMTY6NTg6NTEgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwOiBBZGQgI2RlZmluZXMgdG8gZW5hYmxlL2Rpc2FibGUgaW1wcm92ZW1lbnRzIGZvciB1bnJlbGlhYmxlIG5ldHdvcmtzCgkgIFdlIHNob3VsZCBkbyBzb21lIG1vcmUgbWVhc3VyZW1lbnRzIHdpdGggYWxsIHRoZXNlIGFuZCBjaGVjayBob3cgbXVjaCBzZW5zZQoJICB0aGV5IG1ha2UgZm9yIFBUUC4gQWxzbyBlbmFibGluZyB0aGVtIG1lYW5zIG5vdCBmb2xsb3dpbmcgSUVFRTE1ODgtMjAwOCBieSB0aGUKCSAgbGV0dGVyIGFueW1vcmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDkzOTEKCjIwMTUtMDUtMTQgMTI6MTg6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXB0cC1oZWxwZXIuYzoKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwX3ByaXZhdGUuaDoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5oOgoJKiBsaWJzL2dzdC9uZXQvbmV0Lmg6CgkqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9wdHAvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvcHRwL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9wdHAvcHRwLXByaW50LXRpbWVzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZGVmOgoJICBwdHA6IEluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgYSBQVFAgY2xvY2sKCSAgR3N0UHRwQ2xvY2sgaW1wbGVtZW50cyBhIFBUUCAoSUVFRTE1ODg6MjAwOCkgb3JkaW5hcnkgY2xvY2sgaW4KCSAgc2xhdmUtb25seSBtb2RlLCB0aGF0IGFsbG93cyBhIEdTdHJlYW1lciBwaXBlbGluZSB0byBzeW5jaHJvbml6ZQoJICB0byBhIFBUUCBuZXR3b3JrIGNsb2NrIGluIHNvbWUgc3BlY2lmaWMgZG9tYWluLgoJICBUaGUgUFRQIHN1YnN5c3RlbSBjYW4gYmUgaW5pdGlhbGl6ZWQgd2l0aCBnc3RfcHRwX2luaXQoKSwgd2hpY2ggdGhlbgoJICBzdGFydHMgYSBoZWxwZXIgcHJvY2VzcyB0byBkbyB0aGUgYWN0dWFsIGNvbW11bmljYXRpb24gdmlhIHRoZSBQVFAKCSAgcG9ydHMuIFRoaXMgaXMgcmVxdWlyZWQgYXMgUFRQIGxpc3RlbnMgb24gcG9ydHMgPCAxMDI0IGFuZCB0aHVzCgkgIHJlcXVpcmVzIHNwZWNpYWwgcHJpdmlsZWdlcy4gT25jZSB0aGlzIGhlbHBlciBwcm9jZXNzIGlzIHN0YXJ0ZWQsIHRoZQoJICBtYWluIHByb2Nlc3Mgd2lsbCBzeW5jaHJvbml6ZSB0byBhbGwgUFRQIGRvbWFpbnMgdGhhdCBhcmUgZGV0ZWN0ZWQgb24KCSAgdGhlIHNlbGVjdGVkIGludGVyZmFjZXMuCgkgIGdzdF9wdHBfY2xvY2tfbmV3KCkgdGhlbiBhbGxvd3MgdG8gY3JlYXRlIGEgR3N0Q2xvY2sgdGhhdCBwcm92aWRlcyB0aGUKCSAgUFRQIHRpbWUgZnJvbSBhIG1hc3RlciBjbG9jayBpbnNpZGUgYSBzcGVjaWZpYyBQVFAgZG9tYWluLiBUaGlzIGNsb2NrCgkgIHdpbGwgb25seSByZXR1cm4gdmFsaWQgdGltZXN0YW1wcyBvbmNlIHRoZSB0aW1lc3RhbXBzIGluIHRoZSBQVFAgZG9tYWluCgkgIGFyZSBrbm93bi4gVG8gY2hlY2sgdGhpcywgdGhlIEdzdFB0cENsb2NrOjppbnRlcm5hbC1jbG9jayBwcm9wZXJ0eSBhbmQKCSAgdGhlIHJlbGF0ZWQgbm90aWZ5OjpjbG9jayBzaWduYWwgY2FuIGJlIHVzZWQuIE9uY2UgdGhlIGludGVybmFsIGNsb2NrCgkgIGlzIG5vdCBOVUxMLCB0aGUgUFRQIGRvbWFpbidzIHRpbWUgaXMga25vd24uIEFsdGVybmF0aXZlbHkgeW91IGNhbiB3YWl0CgkgIGZvciB0aGlzIHdpdGggZ3N0X3B0cF9jbG9ja193YWl0X3JlYWR5KCkuCgkgIFRvIGdhdGhlciBzdGF0aXN0aWNzIGFib3V0IHRoZSBQVFAgY2xvY2sgc3luY2hyb25pemF0aW9uLAoJICBnc3RfcHRwX3N0YXRpc3RpY3NfY2FsbGJhY2tfYWRkKCkgY2FuIGJlIHVzZWQuIFRoaXMgZ2l2ZXMgdGhlCgkgIGFwcGxpY2F0aW9uIHRoZSBwb3NzaWJpbGl0eSB0byBjb2xsZWN0IGFsbCBraW5kcyBvZiBzdGF0aXN0aWNzCgkgIGZyb20gdGhlIGNsb2NrIHN5bmNocm9uaXphdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTM5MQoKMjAxNS0wNi0wMyAxMzoxNjoxNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNsb2NrOiBBZGQgR1NUX0NMT0NLX0ZMQUdfTkVFRFNfU1RBUlRVUF9TWU5DIGFuZCByZWxhdGVkIEFQSQoJICBnc3RfY2xvY2tfd2FpdF9mb3Jfc3luYygpLCBnc3RfY2xvY2tfaXNfc3luY2VkKCkgYW5kIGdzdF9jbG9ja19zZXRfc3luY2VkKCkKCSAgcGx1cyBhIHNpZ25hbCB0byBhc3luY2hyb25vdXNseSB3YWl0IGZvciB0aGUgY2xvY2sgdG8gYmUgc3luY2VkLgoJICBUaGlzIGNhbiBiZSB1c2VkIGJ5IGNsb2NrcyB0byBzaWduYWwgdGhhdCB0aGV5IG5lZWQgaW5pdGlhbCBzeW5jaHJvbml6YXRpb24KCSAgYmVmb3JlIHRoZXkgY2FuIHJlcG9ydCBhbnkgdGltZSwgYW5kIHRoYXQgdGhpcyBzeW5jaHJvbml6YXRpb24gY2FuIGFsc28gZ2V0CgkgIGNvbXBsZXRlbHkgbG9zdCBhdCBzb21lIHBvaW50LiBOZXR3b3JrIGNsb2NrcywgbGlrZSB0aGUgR1N0cmVhbWVyCgkgIG5ldGNsaWVudGNsb2NrLCBOVFAgb3IgUFRQIGNsb2NrcyBhcmUgZXhhbXBsZXMgZm9yIGNsb2NrcyB3aGVyZSB0aGlzIGlzIHVzZWZ1bAoJICB0byBoYXZlIGFzIHRoZXkgY2FuJ3QgcmVwb3J0IGFueSB0aW1lIGF0IGFsbCBiZWZvcmUgdGhleSdyZSBzeW5jZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDkzOTEKCjIwMTUtMDYtMDMgMTg6MDM6MzYgKzEwMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogcHJvdmlkZSBhIG1lbV91bm1hcCBmdW5jdGlvbiB0aGF0IHRha2VzIHRoZSBmbGFncyB0byB1bm1hcAoJICBUaGVyZSBhcmUgZ3N0bWVtb3J5J3MgYXZhaWxhYmxlIHRoYXQgb3BlcmF0ZSBpbiB0d28gbWVtb3J5IGRvbWFpbnMKCSAgYW5kIG5lZWQgdG8gZW5zdXJlIGNvbnNpc3RlbnQgYWNjZXNzIGJldHdlZW4gdGhlc2UgZG9tYWlucy4KCSAgSW1hZ2luZSBhIHNjZW5hcmlvIHdoZXJlIGUuZy4gdGhlIEdMTWVtb3J5IGlzIG1hcHBlZCB0d2ljZSBpbiBib3RoCgkgIHRoZSBHUFUgYW5kIHRoZSBDUFUgZG9tYWluLiAgT24gdW5tYXAgb3IgYSBzdWJzZXF1ZW50IG1hcCwgaXQgd291bGQKCSAgbGlrZSB0byBlbnN1cmUgdGhhdCB0aGUgbW9zdCByZWNlbnQgZGF0YSBpcyBhdmFpbGFibGUgaW4gdGhlIG1lbW9yeQoJICBkb21haW4gcmVxdWVzdGVkLiAgRWl0aGVyIGJ5IGZsdXNoaW5nIHRoZSB3cml0ZXMgYW5kL29yIGluaXRpYXRpbmcgYQoJICBETUEgdHJhbnNmZXIuICBXaXRob3V0IGtub3dpbmcgd2hpY2ggZG9tYWluIGlzIGJlaW5nIHVubWFwcGVkLCB0aGUKCSAgbWVtb3J5IGRvZXMgbm90IGtub3cgd2hlcmUgdGhlIG1vc3QgcmVjZW50IGRhdGEgaXMgdG8gdHJhbnNmZXIgdG8KCSAgdGhlIG90aGVyIG1lbW9yeSBkb21haW4uCgkgIE5vdGU6IHRoaXMgc3RpbGwgZG9lcyBub3QgYWxsb3cgZG93bmdyYWRpbmcgYSBtZW1vcnkgbWFwLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMzE5CgoyMDE1LTA2LTAyIDE2OjE0OjUwICsxMDAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBnc3RfbWVtb3J5X3NoYXJlIG1heSBmYWlsIHRvIGV4Y2x1c2l2ZWx5IGxvY2sgdGhlIHBhcmVudCBtZW1vcnkKCSAgTm93IHRoYXQgbG9ja2luZyBleGNsdXNpdmVseSBkb3dzIG5vdCBhbHdheXMgc3VjY2VlZCwgd2UgbmVlZCB0byBzaWduYWwKCSAgdGhlIGZhaWx1cmUgY2FzZSBmcm9tIGdzdF9tZW1vcnlfaW5pdC4KCSAgUmF0aGVyIHRoYW4gaW50cm9kdWNpbmcgYW4gQVBJIG9yIGZ1bmNpb25hbGl0eSBjaGFuZ2UgdG8gZ3N0X21lbW9yeV9pbml0LAoJICB3b3JrYXJvdW5kIGJ5IGNoZWNraW5nIGV4Y2x1c2l2aXR5IGluIHRoZSBjYWxsaW5nIGNvZGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAxNzIKCjIwMTUtMDYtMDIgMDA6MjM6MzcgKzEwMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGxvY2tpbmcgbWVtb3J5IGV4Y2x1c2l2ZWx5IG1heSBmYWlsCgkgIEF0dGVtcHQgdG8gcmV0dXJuIGEgY29weSBvZiB0aGUgbWVtb3J5IGluc3RlYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAxNzIKCjIwMTUtMDUtMzEgMjE6MjU6MjMgKzEwMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWluaW9iamVjdDogZGlzYWxsb3cgYSBkb3VibGUgd3JpdGUvZXhjbHVzaXZlIGxvY2sKCSAgZ3N0X21lbW9yeV9sb2NrIChtZW0sIFdSSVRFIHwgRVhDTFVTSVZFKTsKCSAgZ3N0X21lbW9yeV9sb2NrIChtZW0sIFdSSVRFIHwgRVhDTFVTSVZFKTsKCSAgU3VjY2VlZHMgd2hlbiB0aGUgcGFydC1taW5pb2JqZWN0LnR4dCBkZXNpZ24gZG9jIHN1Z2dlc3RzIHRoYXQgdGhpcyBzaG91bGQgZmFpbDoKCSAgIkEgZ3N0X21pbmlfb2JqZWN0X2xvY2soKSBjYW4gZmFpbCB3aGVuIGEgV1JJVEUgbG9jayBpcyByZXF1ZXN0ZWQgYW5kCgkgIHRoZSBleGNsdXNpdmUgY291bnRlciBpcyA+IDEuIEluZGVlZCBhIEdzdE1pbmlPYmplY3Qgb2JqZWN0IHdpdGggYW4KCSAgZXhjbHVzaXZlIGNvdW50ZXIgMSBpcyBsb2NrZWQgRVhDTFVTSVZFTFkgYnkgYXQgbGVhc3QgMiBvYmplY3RzIGFuZCBpcwoJICB0aGVyZWZvcmUgbm90IHdyaXRhYmxlLiIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDE3MgoKMjAxNS0wNi0wMiAyMDozMjozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiBtYXRjaCByZXR1cm4gdHlwZSBvZiBnZXRfdXJpX3R5cGUoKSBpbXBsZW1lbnRhdGlvbiB0byBkZWNsYXJhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMjkyCgoyMDE1LTA2LTAzIDAwOjEyOjM2ICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZ3N0YnVmZmVyOiBBZGQgYSBub3RlIGFib3V0IG1ldGFzIG5lZWRpbmcgdG8gYmUgY29waWVkIGxhc3QKCjIwMTUtMDUtMjcgMjI6MjM6MDAgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogSW1wbGVtZW50IGdzdF92YWx1ZV9pc19zdWJzZXQoKSBmb3IgZmxhZ3NldHMKCjIwMTUtMDYtMDIgMTY6MzM6NDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJvdGVjdGlvbi5jOgoJICBjaGVjazogVXNlIEdTVF9DSEVDS19NQUlOIG1hY3JvCgoyMDE1LTA1LTIwIDIxOjE4OjA4ICswOTAwICBldW5oYWUgY2hvaSA8ZXVuaGFlMS5jaG9pQHNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJICBkb3dubG9hZGJ1ZmZlcjogcmVsZWFzZSBsb2NrIGJlZm9yZSBwb3N0aW5nIG1zZwoJICB0byBhdm9pZCB0aGUgZGVhZGxvY2sgaW4gcGxheWJpbjIsCgkgIHNlbmQgbXNnIGFmdGVyIHJlbGVhc2UgdGhlIGRvd25sb2FkIGJ1ZmZlciBsb2NrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ5NTM1CgoyMDE1LTA1LTMxIDIwOjIxOjQyIC0wMzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogYWRkIG5vdGUgYWJvdXQgbWlzc2luZyBmaWVsZCBjcmVhdGlvbiBvbiBfc2V0KCkKCjIwMTUtMDUtMzAgMTM6MDE6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHRlc3RzOiBmaXggc29tZSBsZWFrcyBpbiBuZXcgZmxhZ3NldCBjaGVja3MKCjIwMTUtMDUtMzAgMTI6Mzk6MTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSAgcXVldWVhcnJheTogcmVtb3ZlIGR1cGxpY2F0ZSBhc3NpZ25tZW50CgkgIFdlJ3ZlIGFscmVhZHkgZG9uZSB0aGlzIGVhcmxpZXIgaW4gdGhlIGZ1bmN0aW9uLAoJICBhbmQgbm90aGluZyBoYXMgY2hhbmdlZCBzaW5jZSB3ZSBmaXJzdCByZWFkIGl0LgoKMjAxNS0wNS0yNyAxNzoyMjoyOCArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3QvZ3N0LmM6IEFkZCBhIHdhcm5pbmcgYWJvdXQgRGxsTWFpbiB0byBwcmV2ZW50IG1pc3VzZQoJICBEbGxNYWluIHNob3VsZCBub3QgYmUgcmVsaWVkIG9uIGZvciBhbnl0aGluZyBleGNlcHQgc3RvcmluZyB0aGUgRExMIGhhbmRsZS4KCSAgSXQgc2hvdWxkIGFsc28gbm90IGJlIGRlZmluZWQgZm9yIHN0YXRpYyBidWlsZHMsIGJ1dCBkb2luZyBzbyBpcyBub3QKCSAgc3RyYWlnaHRmb3J3YXJkIGFuZCBpcyBtb3N0bHkgaGFybWxlc3MsIHNvIGxldCdzIGp1c3QgYWRkIGEgY29tbWVudCBhYm91dCB0aGF0CgkgIGZvciBub3cuCgoyMDE1LTA1LTI3IDEzOjU0OjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBJbXByb3ZlIGRlYnVnIG91dHB1dCBhIGJpdAoKMjAxNS0wNS0yNiAxNDo0NjoxNiArMDEwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDoKCSAgZG9jczogZml4IHR5cG8gaW4gZHJhZnQta2xhc3MudHh0CgoyMDE1LTA1LTI2IDE0OjAzOjI1ICswMTAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogZG9jcy9jb2RlLXJldmlld3MvUkVBRE1FOgoJKiBkb2NzL2NvZGUtcmV2aWV3cy9nc3RiaW4uYy0xLjQxOgoJICBjb2RlLXJldmlld3M6IHJlbW92ZSBvYnNvbGV0ZSBjb2RlIHJldmlld3MKCSAgVGhpcyBvYnNvbGV0ZSBmb2xkZXIgaGFzbid0IGJlZW4gdG91Y2hlZCBzaW5jZSAyMDAxIGFuZCBoYXMgbm8gcHVycG9zZS4gSXQKCSAgY29uZnVzZXMgbmV3IGRldmVsb3BlcnMuCgoyMDE1LTA1LTI1IDIxOjAyOjI4ICsxMDAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB1c2UgdGhlIHNsaWdodGx5IG1vcmUgY29ycmVjdCB0YWtlX3NhbXBsZSBmb3IgbGFzdC1zYW1wbGUKCSAgZ3N0X3ZhbHVlX3Rha2VfYnVmZmVyKCkgYW5kIGdzdF92YWx1ZV90YWtlX3NhbXBsZSgpIGJvdGggcmVzb2x2ZSB0bwoJICBnX3ZhbHVlX3Rha2VfYm94ZWQoKS4gIFVzZSB0aGUgbWV0aG9kIHdpdGggdGhlIGNvcnJlY3QgbmFtZSBpZiB3ZQoJICBldmVyIGNoYW5nZSB0aGF0LgoKMjAxNS0wNS0yNSAxNjoyMzozMyArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvY2Fwc2xpc3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHZhbHVlOiBBZGQgR3N0RmxhZ1NldCB0eXBlCgkgIEdzdEZsYWdTZXQgaXMgYSBuZXcgdHlwZSBkZXNpZ25lZCBmb3IgbmVnb3RpYXRpbmcgc2V0cwoJICBvZiBib29sZWFuIGNhcGFiaWxpdGllcyBmbGFncywgY29uc2lzdGluZyBvZiBhIDMyLWJpdAoJICBmbGFncyBiaXRmaWVsZCBhbmQgMzItYml0IG1hc2sgZmllbGQuIFRoZSBtYXNrIGZpZWxkCgkgIGluZGljYXRlcyB3aGljaCBvZiB0aGUgZmxhZ3MgYml0cyBhbiBlbGVtZW50IG5lZWRzIHRvIGhhdmUKCSAgYXMgc3BlY2lmaWMgdmFsdWVzLCBhbmQgd2hpY2ggaXQgZG9lc24ndCBjYXJlIGFib3V0LgoJICBUaGlzIGFsbG93cyBlZmZpY2llbnQgbmVnb3RpYXRpb24gb2YgYXJyYXlzIG9mIGJvb2xlYW4KCSAgY2FwYWJpbGl0aWVzLgoJICBUaGUgc3RhbmRhcmQgc2VyaWFsaXNhdGlvbiBmb3JtYXQgaXMgRkxBR1M6TUFTSywgd2l0aAoJICBmbGFncyBhbmQgbWFzayBmaWVsZHMgZXhwcmVzc2VkIGluIGhleGFkZWNpbWFsLCBob3dldmVyCgkgIEdzdEZsYWdTZXQgaGFzIGEgZ3N0X3JlZ2lzdGVyX2ZsYWdzZXQoKSBmdW5jdGlvbiwgd2hpY2gKCSAgYXNzb2NpYXRlcyBhIG5ldyBHc3RGbGFnU2V0IGRlcml2ZWQgdHlwZSB3aXRoIGFuIGV4aXN0aW5nCgkgIEdGbGFncyBndHlwZS4gV2hlbiBzZXJpYWxpemluZyBhIEdzdEZsYWdTZXQgd2l0aCBhbgoJICBhc3NvY2lhdGVkIHNldCBvZiBHRmxhZ3MsIGl0IGFsc28gc2VyaWFsaXplcyBhIGh1bWFuLXJlYWRhYmxlCgkgIGZvcm0gb2YgdGhlIGZsYWdzIGZvciBlYXNpZXIgZGVidWdnaW5nLgoJICBJdCBpcyBwb3NzaWJsZSB0byBwYXJzZSBhIEdGbGFncyBzdHlsZSBzZXJpYWxpc2F0aW9uIG9mIGEKCSAgZmxhZ3NldCwgd2l0aG91dCB0aGUgaGV4IHBvcnRpb24gb24gdGhlIGZyb250LiBpZSwKCSAgK2ZsYWcxL2ZsYWcyL2ZsYWczK2ZsYWc0LCB0byBpbmRpY2F0ZSB0aGF0CgkgIGZsYWcxICYgZmxhZzQgbXVzdCBiZSBzZXQsIGFuZCBmbGFnMi9mbGFnMyBtdXN0IGJlIHVuc2V0LAoJICBhbmQgYW55IG90aGVyIGZsYWdzIGFyZSBkb24ndC1jYXJlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2MzczCgoyMDE1LTA1LTIwIDIwOjE5OjI5ICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IEFkZCBhIGNvbXBhcmlzaW9uIGZ1bmN0aW9uIGZvciBHc3RTdHJ1Y3R1cmVzCgoyMDE1LTA1LTE5IDE0OjM0OjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgbmV0OiBrZWVwIEdDYW5jZWxsYWJsZSBmZCBhcm91bmQgaW5zdGVhZCBvZiByZS1jcmVhdGluZyBpdCBjb25zdGFudGx5CgkgIEp1c3QgY3JlYXRlIHRoZSBjYW5jZWxsYWJsZSBmZCBvbmNlIGFuZCBrZWVwIGl0IGFyb3VuZCBpbnN0ZWFkCgkgIG9mIGNyZWF0aW5nL2Nsb3NpbmcgaXQgZm9yIGV2ZXJ5IHNpbmdsZSBwYWNrZXQuIFNpbmNlIHdlIHNwZW5kCgkgIG1vc3QgdGltZSB3YWl0aW5nIGZvciBwYWNrZXRzLCBhbiBmZCBpcyBhbGxvY2VkIGFuZCBpbiB1c2UgcHJldHR5CgkgIG11Y2ggYWxsIHRoZSB0aW1lIGFueXdheS4KCjIwMTUtMDUtMTggMTI6NTI6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgIFJldmVydCAiZG9jOiBXb3JrYXJvdW5kIGd0a2RvYyBpc3N1ZSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA0NjBhN2JmNjgyOTJkMDU3Yzc3ZTg0ZDFlYTg2YjhlNzNmYzA4MWYzLgoJICBUaGlzIHNob3VsZCBiZSBmaXhlZCBieSB0aGUgZ3RrLWRvYyAxLjIzIHJlbGVhc2UuCgkgIDxwYXJhPiBjYW5ub3QgY29udGFpbiA8cmVmc2VjdDI+OgoJICBodHRwOi8vd3d3LmRvY2Jvb2sub3JnL3RkZy9lbi9odG1sL3BhcmEuaHRtbAoJICBodHRwOi8vd3d3LmRvY2Jvb2sub3JnL3RkZy9lbi9odG1sL3JlZnNlY3QyLmh0bWwKCjIwMTUtMDUtMTEgMTA6NTI6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzcGFyc2VmaWxlLmM6CgkgIHNwYXJzZWZpbGU6IHNtYWxsIGNsZWFudXAKCSAgVGhlIGVycm9yIHBhdGggdW5yZWZzIGZpbGUtPmZpbGUgc28gbWFrZSBzdXJlIHdlIG9ubHkgZ28gdGhlcmUgd2hlbgoJICB0aGVyZSBpcyBhIG5vbi1OVUxMIGZpbGUtPmZpbGUuCgoyMDE1LTA1LTE2IDIzOjI5OjAzIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgZG9jOiBXb3JrYXJvdW5kIGd0a2RvYyBpc3N1ZQoJICBXaXRoIGd0a2RvYyAxLjIyLCB0aGUgWE1MIGdlbmVyYXRvciBmYWlscyB3aGVuIGEgaXRlbWl6ZWRsaXN0IGlzCgkgIGZvbGxvd2VkIGJ5IGEgcmVmc2VjdDIuIFdvcmthcm91bmQgdGhlIGlzc3VlIGJ5IHdyYXBwaW5nIHRoZSByZWZzZWN0MgoJICBpbnRvIHBhcmEuCgoyMDE1LTA1LTEzIDEzOjI4OjA1IC0wMzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6IG1pbm9yIGNvcnJlY3Rpb25zCgoyMDE1LTA1LTE2IDEyOjU3OjEyICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkgIHRpbWVkdmFsdWVjb250cm9sc291cmNlOiBDaGVjayB0aGF0IHRoZSBvbmx5IGl0ZXIgaXMgdGhlIGVuZCBpdGVyIGluIHRoZSBHU2VxdWVuY2UKCSAgUHJldmlvdXMgcGF0Y2ggd2FzIGFzc3VtaW5nIHRoYXQgaWYgdGhlIHJldHVybmVkIGl0ZXIgd2FzIHRoZSBsYXN0IGl0ZXIKCSAgdGhlIEdTZXF1ZW5jZSB3YXMgZW1wdHksIHdoaWNoIGlzIG9idmlvdXNseSB3cm9uZy4KCjIwMTUtMDUtMTYgMTE6MTc6NDAgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSAgdGltZWR2YWx1ZWNvbnRyb2xzb3VyY2U6IEZpeCByZW1vdmluZyBhbGwga2V5ZnJhbWVzLCBhbmQgYWRkaW5nIG9uZSBiYWNrCgkgIFdlIHdlcmUgc2VnZmF1bHRpbmcgYmVjYXVzZSBnX3NlcXVlbmNlX3NlYXJjaCB3YXMgcmV0dXJuaW5nIHRoZSBpdGVyX2VuZCwKCSAgYW5kIHRoYXQgaXRlcmF0b3IgZG9lcyBub3QgY29udGFpbiBhbnl0aGluZyBhbmQgdGh1cyBzaG91bGQgbm90IGJlIHVzZWQKCSAgZGlyZWN0bHkKCjIwMTUtMDUtMTUgMjA6NDQ6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgZmFrZXNyYzogZml4IHByb3BlcnR5IGRlc2NyaXB0aW9uCgkgIFdlJ3JlIGVudGVycHJpc2Ugbm93IGZvbGtzLgoKMjAxNS0wNS0xNSAxNDo1NzoxNCArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYnVtcCBjaGFpbiBmdW5jdGlvbiBjYWxsIGxvZ3MgZnJvbSBMT0cgdG8gREVCVUcKCSAgVGhleSdyZSByZWFsbHkgdXNlZnVsIGNvbXBhcmVkIHRvIG90aGVyIExPRyBzdHVmZiBpbiB0aGVyZSwgc28KCSAgdGhlcmUgaXMgdmFsdWUgaXMgaW5jbHVkaW5nIHRoZW0gYW5kIG5vdCB0aGUgcmVzdC4KCjIwMTUtMDUtMTUgMTM6NDM6MTIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0b2JqZWN0OiBhZGQgZ3N0X29iamVjdF9oYXNfYXNfYW5jZXN0b3IgYW5kIGRlcHJlY2F0ZSBwcmV2aW91cyBmdW5jdGlvbgoJICBUaGUgb2xkIGdzdF9vYmplY3RfaGFzX2FuY2VzdG9yIHdpbGwgY2FsbCB0aGUgbmV3IGNvZGUuIFRoaXMgZXN0YWJsaXNoZXMgdGhlCgkgIHN5bWV0cnkgd2l0aCB0aGUgbmV3IGdzdF9vYmplY3RfaGFzX2FzX3BhcmVudC4KCSAgQVBJOiBnc3Rfb2JqZWN0X2hhc19hc19hbmNlc3RvcigpCgoyMDE1LTA1LTE1IDA4OjA1OjUwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdG9iamVjdDogcmVuYW1lIGdzdF9vYmplY3RfaGFzX3BhcmVudCB0byBnc3Rfb2JqZWN0X2hhc19hc19wYXJlbnQKCSAgVGhpcyBhdm9pZCBjb25mdXNpb24gd2l0aCBhIHBvdGVudGlhbCBwdW5jdGlvbiB0aGF0IGNoZWNrIGlmIGEgZ3N0b2JqZWN0IGhhcy1hCgkgIHBhcmVudC4KCSAgQVBJOiBnc3Rfb2JqZWN0X2hhc19hc19wYXJlbnQoKQoKMjAxNS0wNS0xNCAxNTo0OTo0MyArMDgwMCAgSmlhbiA8Smlhbi5MaUBmcmVlc2NhbGUuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogRml4IFFvUy9sYXRlbmVzcyBjaGVja2luZyBpZiBzdWJjbGFzcyBpbXBsZW1lbnRzIHByZXBhcmUvcHJlcGFyZV9saXN0IHZmdW5jcwoJICBJbiBiYXNlc2luayBmdW5jdGlvbnMgZ3N0X2Jhc2Vfc2lua19jaGFpbl91bmxvY2tlZCgpLCBiZWxvdyBjb2RlIGlzIHVzZWQgdG8KCSAgY2hlY2tpbmcgaWYgYnVmZmVyIGlzIGxhdGUgYmVmb3JlIGRvaW5nIHByZXBhcmUgY2FsbCB0byBzYXZlIHNvbWUgZWZmb3J0OgoJICBpZiAoc3luY2FibGUgJiYgZG9fc3luYykKCSAgbGF0ZSA9CgkgIGdzdF9iYXNlX3NpbmtfaXNfdG9vX2xhdGUgKGJhc2VzaW5rLCBvYmosIHJzdGFydCwgcnN0b3AsCgkgIEdTVF9DTE9DS19FQVJMWSwgMCwgRkFMU0UpOwoJICBpZiAoR19VTkxJS0VMWSAobGF0ZSkpCgkgIGdvdG8gZHJvcHBlZDsKCSAgQnV0IHRoaXMgY29kZSBoYXMgcHJvYmxlbSwgaXQgc2hvdWxkIGNhbGN1bGF0ZSBqaXR0ZXIgYmFzZWQgb24gY3VycmVudCBtZWRpYQoJICBjbG9jaywgcmF0aGVyIHRoYW4ganVzdCBwYXNzaW5nIDAuIEkgZm91bmQgaXQgd2lsbCBkcm9wIGFsbCB0aGUgZnJhbWVzIHdoZW4KCSAgcmV3aW5kIGluIHNsb3cgc3BlZWQsIHN1Y2ggYXMgLTJYLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ5MjU4CgoyMDE1LTA1LTExIDE3OjE0OjUwICswMjAwICBWw61jdG9yIE1hbnVlbCBKw6FxdWV6IExlYWwgPHZqYXF1ZXpAaWdhbGlhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgZmRzcmM6IGRvY3M6IGZpeCBhbmQgdXBkYXRlIGRvY3VtZW50YXRpb24KCSAgVXBkYXRlIGV4YW1wbGUgdG8gdXNlIGdzdC1sYXVuY2gtMS4wIGFuZCBmaXggYSBwYXJhZ3JhcGguCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDkyMzMKCjIwMTUtMDUtMDkgMTE6NTM6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBNYWtlZmlsZS5hbToKCSAgQWRkIHJlbW92ZWQgZXhhbXBsZSBkaXJlY3RvcmllcyB0byBDUlVGVF9ESVJTCgoyMDE1LTA1LTA4IDE0OjA4OjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBkb2NzOiBnc3QtbGF1bmNoIC0+IGdzdC1sYXVuY2gtMS4wIGluIGV4YW1wbGUgcGlwZWxpbmVzCgkgIEFuZCBzb21lIHNtYWxsIGV4YW1wbGUgcGlwZWxpbmUgZml4LXVwcy4KCjIwMTUtMDUtMDkgMjI6MTA6MzAgLTAzMDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY29udmVudGlvbnMudHh0OgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnZlbnRpb25zLnR4dDogbWlub3IgY29ycmVjdGlvbnMKCjIwMTUtMDUtMDkgMjI6MDQ6NTIgLTAzMDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY29udGV4dC50eHQ6CgkgIGRvY3MvZGVzaWduL3BhcnQtY29udGV4dC50eHQ6IG1pbm9yIGNvcnJlY3Rpb25zCgoyMDE1LTA1LTA5IDIyOjAxOjA0IC0wMzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6CgkgIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDogbWlub3IgY29ycmVjdGlvbnMKCjIwMTUtMDUtMDIgMTc6MTY6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBkb2NzOiB1cGRhdGUgcG9ydGluZyBndWlkZXMgdG8gbWVudGlvbiBuZXcgZGV2aWNlIHByb2JpbmcgQVBJCgoyMDE1LTA1LTAxIDIwOjM3OjE4IC0wMzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDogbWlub3IgY29ycmVjdGlvbnMKCjIwMTUtMDUtMDEgMTg6MzI6MjYgKzA5MDAgIEppbW15IE9obiA8eW9uZ2ppbi5vaG5AbGdlLmNvbT4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogcmVtb3ZlIGR1cGxpY2F0ZWQgaW5jbHVkZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4NzM5CgoyMDE1LTA0LTI4IDE5OjU5OjMxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbGF1bmNoLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL2xhdW5jaC9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbGF1bmNoL21wM3BhcnNlbGF1bmNoLmM6CgkqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3F1ZXVlLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL3F1ZXVlL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9xdWV1ZS9xdWV1ZS5jOgoJKiB0ZXN0cy9leGFtcGxlcy90eXBlZmluZC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy90eXBlZmluZC9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvdHlwZWZpbmQvdHlwZWZpbmQuYzoKCSAgdGVzdHM6IHJlbW92ZSBzb21lIHBvaW50bGVzcyBhbmNpZW50IGNvZGUgZXhhbXBsZXMKCjIwMTUtMDQtMjggMTc6NTQ6NTEgKzAzMDAgIElseWEgS29uc3RhbnRpbm92IDxpbHlhLmtvbnN0YW50aW5vdkBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBHU1RfQkFTRV9QQVJTRV9GTEFHX0xPU1RfU1lOQwoJICBTaW5jZSBmcmFtZS0+cHJpdi0+ZGlzY29udCB3YXMgY2xlYXJlZCBlYXJsaWVyLAoJICBHU1RfQkFTRV9QQVJTRV9GTEFHX0xPU1RfU1lOQyB3YXMgbmV2ZXIgYmVpbmcgc2V0LgoJICBUYWtlIHRoZSBjaGFuY2UgdG8gcmVmYWN0b3IgdGhlIGZyYW1lIGNyZWF0aW9uIGEgYml0IHRvCgkgIG9yZ2FuaXplIHRoZSBmbGFncyBzZXR0aW5nIGFuZCByZXNldC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczODIzNwoKMjAxNS0wMy0wOSAxOTozMTozNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZXNwZWN0IERJU0NPTlQgZmxhZyBvbiBidWZmZXJzCgkgIERyYWluIHRoZSBwYXJzZXIgd2hlbiBhIERJU0NPTlQgYnVmZmVyIGlzIHJlY2VpdmVkIGFuZCB0aGVuIG1hcmsKCSAgdGhlIG5leHQgYnVmZmVyIHRvIGJlIHB1c2hlZCBhcyBhIERJU0NPTlQgb25lCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDU5MjcKCjIwMTUtMDQtMjggMTU6NTA6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBDb3B5IHRoZSB0YWcgc2NvcGUgdG9vIHdoZW4gY29weWluZyB0YWcgbGlzdHMKCjIwMTUtMDQtMjAgMjA6MDI6NTEgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBBbHNvIHN5bmNocm9uaXplIEdBUCBldmVudHMgaW4gc3luYz0xCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MDE4NTMKCjIwMTUtMDQtMjAgMTk6MzE6MzcgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgaWRlbnRpdHk6IFdpdGggc3luYz10cnVlLCBkb24ndCBwcmUtcm9sbAoJICBUbyBhY3QgbGlrZSBhIHJlYWwgbGl2ZSBlbGVtZW50LCBibG9jayB0aGUgc3RyZWFtaW5nIHdoZW4gcGF1c2VkLCBhbmQKCSAgcmV0dXJuIE5PX1BSRVJPTEwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MDE4NTMKCjIwMTUtMDQtMjAgMTk6MjQ6NDUgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgaWRlbnRpdHk6IFRha2UgdXBzdHJlYW0gbGF0ZW5jeSBpbnRvIGFjY291bnQgZm9yIHN5bmM9MQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjAxODUzCgoyMDE1LTA0LTIwIDE5OjA3OjI3IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogSGFuZGxlIFBUUyBhbmQgRFRTIHNlcGFyYXRlbHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYwMTg1MwoKMjAxNS0wNC0yNiAxNzowNTo0OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIC5naXRpZ25vcmU6CgkqIEFuZHJvaWQubWs6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSAgUmVtb3ZlIG9ic29sZXRlIEFuZHJvaWQgYnVpbGQgY3J1ZnQKCSAgVGhpcyBpcyBub3QgbmVlZGVkIGFueSBsb25nZXIuCgoyMDE1LTA0LTI0IDE2OjUxOjI0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkgIGlucHV0c2VsZWN0b3I6IE9ubHkgdHJ5IHRvIHB1c2ggdGhlIGZpcnN0IEVPUyByZWNlaXZlZAoJICBTdWJzZXF1ZW50IEVPUyB3aWxsIHB1c2ggb24gdGhlIHNvdXJjZSBwYWQgdGhhdCBhbHJlYWR5IHJlY2VpdmVkCgkgIEVPUyBhbmQgdGhhdCB3aWxsIG1ha2UgdGhlIGV2ZW50IGZ1bmN0aW9uIHJldHVybiBGQUxTRS4gSXQgbmVlZHMKCSAgb25seSB0byBwdXNoIHRoZSBmaXJzdCBvbmUgYW5kIG9ubHkgcmV0dXJuIFRSVUUgZm9yIHRoZSBzdWJzZXF1ZW50CgkgIG9uZXMuCgoyMDE1LTA0LTI0IDE1OjE5OjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByaW50Zi5jOgoJICB0ZXN0czogcHJpbnRmOiBhZGQgdW5pdCB0ZXN0IGZvciAlJQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4NDE0CgoyMDE1LTA0LTI0IDE1OjE2OjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L3ByaW50Zi92YXNucHJpbnRmLmM6CgkgIHByaW50ZjogZml4IGludmFsaWQgbWVtb3J5IGFjY2VzcyBpbiBjYXNlIG9mICUlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDg0MTQKCjIwMTUtMDQtMjMgMTU6NTU6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IGRlZmluZSBHU1RfQ0hFQ0tfVEVTVF9FTlZJUk9OTUVOVF9CRUFDT04KCjIwMTUtMDQtMjMgMTU6NTQ6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogb3B0aW9uYWxseSBjaGVjayBlbnYgdmFyIGZvciB1cyB0byBtYWtlIHN1cmUgdGVzdCBlbnYgaXMgc2V0IHVwCgkgIElmIEdTVF9DSEVDS19URVNUX0VOVklST05NRU5UX0JFQUNPTiBpcyBkZWZpbmVkLCBjaGVjayBpZiB0aGUKCSAgZW52aXJvbm1lbnQgdmFyaWFibGUgaXQgaXMgZGVmaW5lZCB0byBpcyBzZXQgdXAgYXQgdGhlIHN0YXJ0CgkgIG9mIGVhY2ggdGVzdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvL3Nob3dfYnVnLmNnaT9pZD03NDc2MjQKCjIwMTUtMDQtMjMgMDk6MDY6NDIgKzA5MDAgIENoYW5nYm9rIENoZWEgPGNoYW5nYm9rLmNoZWFAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IFJlbW92ZSB1bnVzZWQgYXNzaWdubWVudCBpbiBwZXJmb3JtX3NlZWsoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4MzQ1CgoyMDE1LTA0LTIyIDExOjQ0OjAwICswNTMwICBQcmFzaGFudCBHb3Rhcm5lIDxwcy5nb3Rhcm5lQHNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICB0ZXN0OiBtZW1vcnk6IEFkZGVkIHRlc3QgdG8gdmVyaWZ5IHRoZSBhbGxvY2F0aW9uIHBhcmFtcwoJICBOZXcgdGVzdCBhZGRlZCB0byB2ZXJpZnkgdGhlIGFsbG9jYXRpb24gcGFyYW1zIGZvciB0aGUgbWVtb3J5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDgyNzcKCjIwMTUtMDQtMjIgMTE6MDQ6MDYgLTA2MDAgIEphc29uIExpdHppbmdlciA8amxpdHppbmdlckBjb250cm9sNC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJICB0ZXN0czogaW5mbzogYWRkIHRlc3QgY2FzZSB0byByZXByb2R1Y2UgaW5maW5pdGUgbG9vcAoJICBnc3RfZGVidWdfdW5zZXRfdGhyZXNob2xkX2Zvcl9uYW1lKCkgdXNlZCB0byBnbyBpbnRvIGFuCgkgIGluZmluaXRlIGxvb3Agd2hlbiB0aGVyZSB3YXMgbW9yZSB0aGFuIG9uZSBjYXRlZ29yeSBpbgoJICB0aGUgbGlzdC4gIFRoaXMgdGVzdCBjYXB0dXJlcyB0aGUgcHJvYmxlbSBieSBmYWlsaW5nCgkgIHZpYSB0aW1lb3V0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4MzIxCgoyMDE1LTA0LTIyIDEyOjAzOjMzIC0wNjAwICBKYXNvbiBMaXR6aW5nZXIgPGpsaXR6aW5nZXJAY29udHJvbDQuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZ3N0aW5mbzogZml4IGluZmluaXRlIGxvb3AgaW4gZ3N0X2RlYnVnX3Vuc2V0X3RocmVzaG9sZF9mb3JfbmFtZSgpCgkgIEVuc3VyZSBpdGVyYXRvciBpcyBhZHZhbmNlZC4gVGhlIGN1cnJlbnQgbGlzdCBpdGVyYXRpb24gY29kZSBvbmx5CgkgIGFkdmFuY2VzIHRoZSBpdGVyYXRvciAod2FsaykgaWYgYSBtYXRjaCBpcyBmb3VuZCwgd2hpY2ggcmVzdWx0cwoJICBpbiBhbiBpbmZpbml0ZSBsb29wIHdoZW4gbW9yZSB0aGFuIG9uZSBlbnRyeSBleGlzdHMgaW4gdGhlIGxpc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDgzMjEKCjIwMTUtMDQtMjIgMTA6MTQ6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBzY3JpcHRzL2NyZWF0ZS11bmluc3RhbGxlZC1zZXR1cC5zaDoKCSAgc2NyaXB0czogY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwOiBtaXNjZWxsYW5lb3VzIGZpeGVzCgkgIEVycm9yIG91dCBpZiByZXF1aXJlZCBidWlsZCB0b29scyAoZmxleCwgYmlzb24sIHBrZy1jb25maWcpCgkgIGFyZSBub3QgcHJlc2VudCwgaW5zdGVhZCBvZiBwcmludGluZyBhIG1lc3NhZ2UgYW5kIHRoZW4KCSAgY29udGludWluZy4KCSAgQ2hlY2sgb3V0IHN1Ym1vZHVsZXMgd2hlbiBmZXRjaGluZyB0aGUgcmVwb3NpdG9yaWVzLCBzbwoJICB0aGV5J3JlIGFscmVhZHkgdGhlcmUgYW5kIHJlYWR5IGxhdGVyLgoJICBSZW1vdmUgc29tZSAwLjEwIGNydWZ0LgoKMjAxNS0wNC0yMiAwOTo1OToyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIC5naXRpZ25vcmU6CgkgIEFkZCBJTlNUQUxMIHRvIC5naXRpZ25vcmUKCjIwMTUtMDQtMjIgMDk6NTY6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJICB0ZXN0czogZXJyb3Igb3V0IGlmIHRlc3QgZW52aXJvbm1lbnQgaXMgbm90IGFjdHVhbGx5IHNldCB1cCBwcm9wZXJseQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy8vc2hvd19idWcuY2dpP2lkPTc0NzYyNAoKMjAxNS0wNC0yMiAwOTo1Mjo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBjYW4gdXNlIEFNX1NJTEVOVF9SVUxFUyB1bmNvbmRpdGlvbmFsbHkgbm93CgkgIGh0dHBzOi8vYXV0b3Rvb2xzLmlvL2F1dG9tYWtlL3NpbGVudC5odG1sCgoyMDE1LTA0LTIyIDA5OjQ3OjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGJ1bXAgYXV0b21ha2UgcmVxdWlyZW1lbnQgdG8gMS4xNCBhbmQgYXV0b2NvbmYgdG8gMi42OQoJICBUaGlzIGlzIG9ubHkgcmVxdWlyZWQgZm9yIGJ1aWxkcyBmcm9tIGdpdCwgcGVvcGxlIGNhbiBzdGlsbAoJICBidWlsZCB0YXJiYWxscyBpZiB0aGV5IG9ubHkgaGF2ZSBvbGRlciBhdXRvdG9vbHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnLy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3NjI0CgoyMDE1LTA0LTIyIDEwOjMyOjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogSU5TVEFMTDoKCSAgUmVtb3ZlIElOU1RBTEwgZmlsZQoJICBhdXRvdG9vbHMgYXV0b21hdGljYWxseSBnZW5lcmF0ZSB0aGlzLCBhbmQgd2hlbiB1c2luZyBkaWZmZXJlbnQgdmVyc2lvbnMKCSAgZm9yIGF1dG9nZW4uc2ggdGhlcmUgd2lsbCBhbHdheXMgYmUgY2hhbmdlcyB0byBhIGZpbGUgdHJhY2tlZCBieSBnaXQuCgoyMDE1LTA0LTIwIDIyOjA3OjM0ICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0cmVhbWVyLXVuaW5zdGFsbGVkOiBVcGRhdGUgcGF0aCB0byB0aGUgR3N0VmFsaWRhdGUgc2NlbmFyaW9zCgoyMDE1LTA0LTIwIDA5OjIzOjQzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IENoZWNrIHJldHVybiB2YWx1ZSBvZiBtZXRhIHRyYW5zZm9ybSBmdW5jdGlvbiBpbiBnc3RfYnVmZmVyX2NvcHlfaW50bygpCgkgIC4uLiBieSBwcmludGluZyBzb21lIGRlYnVnIG91dHB1dCB3aGVuZXZlciBjb3B5aW5nIGEgR3N0TWV0YSBmYWlscy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODExOQoKMjAxNS0wNC0xOCAxMjozMTowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogZml4IGhlYWRlciBmb3JtYXR0aW5nCgoyMDE1LTA0LTE4IDEyOjI4OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByb3RlY3Rpb24uYzoKCSAgdGVzdHM6IHByb3RlY3Rpb246IGZpeCBsZWFrIGluIHVuaXQgdGVzdAoKMjAxNS0wNC0xOCAxMjoyNzo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3QuaDoKCSAgZ3N0Lmg6IGluY2x1ZGUgdGhlIG5ldyBnc3Rwcm90ZWN0aW9uLmggaGVhZGVyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU5OTEKCjIwMTUtMDQtMTUgMTU6MzM6MzEgKzAxMDAgIEFsZXggQXNobGV5IDxidWd6aWxsYUBhc2hsZXktZmFtaWx5Lm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3Rwcm90ZWN0aW9uLmM6CgkqIGdzdC9nc3Rwcm90ZWN0aW9uLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByb3RlY3Rpb24uYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHByb3RlY3Rpb246IGFkZCBHc3RQcm90ZWN0aW9uTWV0YSB0byBzdXBwb3J0IHByb3RlY3RlZCBjb250ZW50CgkgIEluIG9yZGVyIHRvIHN1cHBvcnQgc29tZSB0eXBlcyBvZiBwcm90ZWN0ZWQgc3RyZWFtcyAoc3VjaCBhcyB0aG9zZQoJICBwcm90ZWN0ZWQgdXNpbmcgREFTSCBDb21tb24gRW5jcnlwdGlvbikgc29tZSBwZXItYnVmZmVyIGluZm9ybWF0aW9uCgkgIG5lZWRzIHRvIGJlIHBhc3NlZCBiZXR3ZWVuIGVsZW1lbnRzLgoJICBUaGlzIGNvbW1pdCBhZGRzIGEgR3N0TWV0YSB0eXBlIGNhbGxlZCBHc3RQcm90ZWN0aW9uTWV0YSB0aGF0IGFsbG93cwoJICBwcm90ZWN0aW9uIHNwZWNpZmljIGluZm9ybWF0aW9uIHRvIGJlIGFkZGVkIHRvIGEgR3N0QnVmZmVyLiBBbiBleGFtcGxlCgkgIG9mIGl0cyB1c2FnZSBpcyBxdGRlbXV4IHByb3ZpZGluZyBpbmZvcm1hdGlvbiB0byBlYWNoIG91dHB1dCBzYW1wbGUKCSAgdGhhdCBlbmFibGVzIGEgZG93bnN0cmVhbSBlbGVtZW50IHRvIGRlY3J5cHQgaXQuCgkgIFRoaXMgY29tbWl0IGFkZHMgYSB1dGlsaXR5IGZ1bmN0aW9uIHRvIHNlbGVjdCBhIHN1cHBvcnRlZCBwcm90ZWN0aW9uCgkgIHN5c3RlbSBmcm9tIHRoZSBpbnN0YWxsZWQgRGVjcnlwdGlvbiBlbGVtZW50cyBmb3VuZCBpbiB0aGUgcmVnaXN0cnkuCgkgIFRoZSBnc3RfcHJvdGVjdGlvbl9zZWxlY3Rfc3lzdGVtIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYW4gYXJyYXkgb2YKCSAgaWRlbnRpZmllcnMgYW5kIHNlYXJjaGVzIHRoZSByZWdpc3RyeSBmb3IgYSBlbGVtZW50IG9mIGtsYXNzIERlY3J5cHRvciB0aGF0CgkgIHN1cHBvcnRzIG9uZSBvciBtb3JlIG9mIHRoZSBzdXBwbGllZCBpZGVudGlmaWVycy4gSWYgbXVsdGlwbGUgZWxlbWVudHMKCSAgYXJlIGZvdW5kLCB0aGUgb25lIHdpdGggdGhlIGhpZ2hlc3QgcmFuayBpcyBzZWxlY3RlZC4KCSAgVGhpcyBjb21taXQgYWRkcyBhIHVuaXQgdGVzdCBmb3IgdGhlIGdzdF9wcm90ZWN0aW9uX3NlbGVjdF9zeXN0ZW0KCSAgZnVuY3Rpb24gdGhhdCBhZGRzIGEgZmFrZSBEZWNyeXB0b3IgZWxlbWVudCB0byB0aGUgcmVnaXN0cnkgYW5kIHRoZW4KCSAgY2hlY2tzIHRoYXQgaXQgY2FuIGNvcnJlY3RseSBiZSBzZWxlY3RlZCBieSB0aGUgdXRpbGl0eSBmdW5jdGlvbi4KCSAgVGhpcyBjb21taXQgYWRkcyBhIHVuaXQgdGVzdCBmb3IgR3N0UHJvdGVjdGlvbk1ldGEgdGhhdCBjcmVhdGVzCgkgIEdzdFByb3RlY3Rpb25NZXRhIGFuZCBhZGRzICYgcmVtb3ZlcyBpdCBmcm9tIGEgYnVmZmVyIGFuZCBwZXJmb3JtcyBzb21lCgkgIHNpbXBsZSByZWZlcmVuY2UgY291bnQgY2hlY2tzLgoJICBBUEk6IGdzdF9idWZmZXJfYWRkX3Byb3RlY3Rpb25fbWV0YSgpCgkgIEFQSTogZ3N0X2J1ZmZlcl9nZXRfcHJvdGVjdGlvbl9tZXRhKCkKCSAgQVBJOiBnc3RfcHJvdGVjdGlvbl9zZWxlY3Rfc3lzdGVtKCkKCSAgQVBJOiBnc3RfcHJvdGVjdGlvbl9tZXRhX2FwaV9nZXRfdHlwZSgpCgkgIEFQSTogZ3N0X3Byb3RlY3Rpb25fbWV0YV9nZXRfaW5mbygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU5OTEKCjIwMTUtMDMtMTYgMTI6MzU6MjcgKzAwMDAgIEFsZXggQXNobGV5IDxidWd6aWxsYUBhc2hsZXktZmFtaWx5Lm5ldD4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBldmVudDogYWRkIG5ldyBHU1RfRVZFTlRfUFJPVEVDVElPTgoJICBJbiBvcmRlciBmb3IgYSBkZWNyeXB0ZXIgZWxlbWVudCB0byBkZWNyeXB0IG1lZGlhIHByb3RlY3RlZCB1c2luZyBhCgkgIHNwZWNpZmljIHByb3RlY3Rpb24gc3lzdGVtLCBpdCBmaXJzdCBuZWVkcyBhbGwgdGhlIHByb3RlY3Rpb24gc3lzdGVtCgkgIHNwZWNpZmljICBpbmZvcm1hdGlvbiBuZWNlc3NhcnkgKEUuZy4gaW5mb3JtYXRpb24gb24gaG93IHRvIGFjcXVpcmUKCSAgdGhlIGRlY3J5cHRpb24ga2V5cykgZm9yIHRoYXQgc3RyZWFtLgoJICBUaGUgR1NUX0VWRU5UX1BST1RFQ1RJT04gZGVmaW5lZCBpbiB0aGlzIGNvbW1pdCBlbmFibGVzIHRoaXMgaW5mb3JtYXRpb24KCSAgdG8gYmUgcGFzc2VkIGZyb20gZWxlbWVudHMgdGhhdCBleHRyYWN0IGl0IChlLmcuIHF0ZGVtdXgsIGRhc2hkZW11eCkgdG8KCSAgZWxlbWVudHMgdGhhdCB1c2UgaXQgKEUuZy4gYSBkZWNyeXB0ZXIgZWxlbWVudCkuCgkgIEFQSTogR1NUX0VWRU5UX1BST1RFQ1RJT04KCSAgQVBJOiBnc3RfZXZlbnRfbmV3X3Byb3RlY3Rpb24oKQoJICBBUEk6IGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTk5MQoKMjAxNS0wNC0xOCAxMTo0MjoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogZml4IHVzZSBvZiBwb3NzaWJseS1mcmVlZCBwYWQgaW4gZGVidWcgc3RhdGVtZW50CgkgIFRoZSBnc3Rfb2JqZWN0X3VucmVmKCkgaW4gdGhlIGJsb2NrIGFib3ZlIG1heSBiZSBkcm9wcGluZwoJICB0aGUgbGFzdCByZWYgdG8gdGhlIHBhZCBhbmQgZnJlZSB0aGUgcGFkLiBTZXQgcGFkIHBvaW50ZXIKCSAgdG8gTlVMTCBoZXJlLCBzbyB0aGF0IHdlIGRvbid0IGFjY2lkZW50YWxseSB1c2UgYQoJICBwb3NzaWJseS1mcmVlZCBwYWQgcG9pbnRlciBpbiB0aGUgZGVidWcgbG9nIHN0YXRlbWVudHMKCSAgZnVydGhlciBiZWxvdywgYW5kIGFsc28gdXNlIHRoZSB0ZWUgZWxlbWVudCBhcyBsb2cgb2JqZWN0CgkgIHNpbmNlIHRoYXQncyBtb3JlIGFwcHJvcHJpYXRlIGFueXdheS4KCSAgRml4ZXMgdmFsZ3JpbmQgd2FybmluZ3MgYW5kIGNyYXNoZXMgaW4gdGVlIHRlc3Rfc3RyZXNzCgkgIHVuaXQgdGVzdCB3aGVuIGRlYnVnIGxvZ2dpbmcgaXMgZW5hYmxlZC4KCjIwMTUtMDQtMTggMTI6MDA6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJICB0ZXN0czogaW5mbzogZml4IHVuaXQgdGVzdCB3aGVuIHJ1biB3aXRoIEdTVF9ERUJVRz0qOjkKCSAgT25seSBzYXZlIHRoZSBtZXNzYWdlcyB3ZSdyZSBpbnRlcmVzdGVkIGluIGFuZCBleHBlY3RpbmcuCgkgIFdoZW4gcnVuIHdpdGggKjo5IHdlIG1pZ2h0IGdldCBhZGRpdGlvbmFsIFRSQUNFIGxldmVsCgkgIG1lc3NhZ2VzIGZyb20gb3RoZXIgY2F0ZWdvcmllcyBhbmQgdGhlbiB3ZSBkb24ndCBlbmQgdXAKCSAgd2l0aCB0aGUgbnVtYmVyIG9mIG1lc3NhZ2VzIHdlIGV4cGVjdC4KCjIwMTUtMDQtMTggMTE6MjU6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBwYWQ6IGZpeCBidWZmZXIgbGVhayBpbiBuZXcgYmxvY2tpbmdfd2l0aF9wcm9iZV90eXBlX2lkbGUgdGVzdAoKMjAxNS0wNC0xOCAxMToxMToyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IHBhZDogZml4IGludmFsaWQgbWVtb3J5IGFjY2VzcyBpbiBkZWJ1ZyBsb2cgbWVzc2FnZQoJICBUaGUgc3RyaW5nIHdlIHB1dCBpbiB0aGUgYnVmZmVyIGlzIG5vdCBOVUwtdGVybWluYXRlZCwgc28KCSAgZG9uJ3QgdHJ5IHRvIHByaW50IHRoYXQgdmlhICVzIGluIGEgZGVidWcgbG9nIG1lc3NhZ2UuCgoyMDE1LTA0LTE3IDE1OjE5OjA3ICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJICBoZWxwZXJzOiBvbiBPU1gsIE1LRElSX1AgaXMgaW5zdGFsbC1zaCAtYyAtZAoJICBTbyB3ZSBuZWVkIHRvIGNhbGwgaXQgYmVmb3JlIGNkaW5nIHRvIHRoZSBiaW4gZGlyZWN0b3J5LgoKMjAxNS0wNC0xNyAxMzowMjoxMiArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSAgaGVscGVyczogaW5zdGFsbCAtRCBpc24ndCBwb3J0YWJsZSwgdXNlICQoTUtESVJfUCkgaW5zdGVhZC4KCjIwMTUtMDQtMTQgMTA6NDc6MjAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IHBhZDogdGVzdCB0aGF0IGlkbGUgcHJvYmUgd2lsbCBibG9jawoJICBUaGlzIHRlc3RzIGFkZCBhbiBpZGxlIHByb2JlIG9uIGFuIGlkbGUgcGFkIGZyb20gYSBzZXBhcmF0ZSB0aHJlYWQKCSAgc28gdGhhdCB0aGUgY2FsbGJhY2sgaXMgY2FsbGVkIGltbWVkaWF0ZWxseS4gVGhpcyBjYWxsYmFjayB3aWxsIHNpdAoJICBzdGlsbCBhbmQgdGhlbiB3ZSB0cnkgdG8gcHVzaCBhIGJ1ZmZlciBvbiB0aGlzIHNhbWUgcGFkLiBJdCB2ZXJpZmllcwoJICB0aGF0IHRoZSBpZGxlIHByb2JlIGJsb2NrcyBkYXRhIHBhc3NpbmcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0Nzg1MgoKMjAxNS0wNC0xNCAxNzowNjozNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGJsb2NrIGRhdGEgZmxvdyB3aGVuIGlkbGUgcHJvYmUgaXMgcnVubmluZwoJICBXaGVuIGlkbGUgcHJvYmUgcnVucyBkaXJlY3RseSBmcm9tIHRoZSBnc3RfcGFkX2FkZF9wcm9iZSgpIGZ1bmN0aW9uCgkgIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgbm8gZGF0YSBmbG93IGhhcHBlbnMgYXMgaWRsZSBwcm9iZQoJICBpcyBhIGJsb2NraW5nIHByb2JlLiBUaGUgaWRsZSBwcm9iZSB3aWxsIHByZXZlbnQgdGhhdCBhbnkKCSAgYnVmZmVyLCBidWZmZXJsaXN0IG9yIHNlcmlhbGl6ZWQgZXZlbnRzIGFuZCBxdWVyaWVzIGFyZSBub3QKCSAgZmxvd2luZyB3aGlsZSBpdCBpcyBydW5uaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3ODUyCgoyMDE1LTA0LTE2IDEzOjQxOjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJICBkb2NzOiBjbGFyaWZ5IHRoYXQgcmV0dXJuIHZhbHVlIG9mIGdzdF9maWxlbmFtZV90b191cmkoKSBtdXN0IGJlIGZyZWVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDcxMDQKCjIwMTUtMDQtMTUgMTE6MDI6NTQgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJICBiaW46IHVuZG8gdXB3YXJkIHN0YXRlIGNoYW5nZXMgb24gY2hpbGRyZW4gd2hlbiBhIGNoaWxkIGZhaWxzCgkgIFdoZW4gYSBiaW4gY2hhbmdlcyBzdGF0ZXMgdXB3YXJkcywgYW5kIGEgY2hpbGQgZmFpbHMgdG8gY2hhbmdlLAoJICBhbnkgY2hpbGQgdGhhdCB3YXMgYWxyZWFkeSBzd2l0Y2hlZCB3aWxsIG5vdCBiZSByZXNldCB0byBpdHMKCSAgb3JpZ2luYWwgc3RhdGUsIGxlYXZpbmcgaXRzIHN0YXRlIGluY29uc2lzdGVudCB3aXRoIHRoZSBiaW4sCgkgIHdoaWNoIGRvZXMgbm90IGNoYW5nZSBzdGF0ZSBkdWUgdG8gdGhlIGZhaWx1cmUuCgkgIElmIHRoZSBzdGF0ZSBjaGFuZ2Ugd2FzIGZyb20gTlVMTCB0byBSRUFEWSwgaXQgbWVhbnMgdGhhdCBkZWxldGluZwoJICB0aGlzIGJpbiB3aWxsIGNhdXNlIHRob3NlIGNoaWxkcmVuIHRvIGJlIGRlbGV0ZWQgd2hpbGUgbm90IGluCgkgIE5VTEwgc3RhdGUsIHdoaWNoIGlzIGEgQmFkIFRoaW5nLiBGb3Igb3RoZXIgdXB3YXJkIGNoYW5nZXMsIGl0CgkgIGlzIGxlc3Mgb2YgYSBwcm9ibGVtLCBhcyBhIHN1YnNlcXVlbnQgc3dpdGNoIGJhY2sgdG8gTlVMTCB3aWxsCgkgIGNhdXNlIGFuIGFjdHVhbCBkb3dud2FyZHMgY2hhbmdlIG9uIHRob3NlIGluY29uc2lzdGVudCBlbGVtZW50cywKCSAgYWxiZWl0IGZyb20gdGhlICJ3cm9uZyIgc3RhdGUuCgkgIFdlIG5vdyByZXNldCBzdGF0ZSB0byB0aGUgb3JpZ2luYWwgb25lIHdoZW4gYSBjaGlsZCBmYWlscy4KCSAgSW5jbHVkZXMgdW5pdCB0ZXN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3NjEwCgoyMDE1LTA0LTE1IDE0OjQ1OjIxICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJICBoZWxwZXJzOiB1c2UgJChJTlNUQUxMKSB0byAuLi4gaW5zdGFsbCB0aGUgaGVscGVyLgoJICBBcyBpdCB3aWxsIGNyZWF0ZSB0aGUgZm9sZGVycyBhbmQgc2V0IHBlcm1pc3Npb25zIGFwcHJvcHJpYXRlbHksCgkgIGJldHRlciB0aGFuIGRvaW5nIGl0IG1hbnVhbGx5LgoKMjAxNS0wNC0xNSAxMzowMjozNiArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSAgaGVscGVyczogRml4IE1ha2VmaWxlLmFtIHRvIGluc3RhbGwgdGhlIGNvbXBsZXRpb24taGVscGVyIGNvcnJlY3RseS4KCSAgKyBUaGUgcHJvZ3JhbSBpcyBpbnN0YWxsZWQgYXQgaW5zdGFsbC1leGVjIHRpbWUsIHdlIHRodXMgbmVlZAoJICB0byBtb3ZlIGl0IGluIGluc3RhbGwtZXhlYy1ob29rLCBub3QgaW5zdGFsbC1kYXRhLWhvb2suCgoyMDE1LTA0LTE1IDExOjM4OjM1ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBSZXZlcnQgImJhc2VzcmM6IGZpeCBwb29sIGxlYWsgb24gYWxsb2NhdGlvbiBxdWVyeSBlcnJvciBwYXRoIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDg0ZmRmNTBiMmY5ODk1MWEzMmZhMTQ4MDJiNjI2MjFmMTEwNWNkMzUuCgkgIEl0IHNlZW1zIHRoZSBidWcgd2FzIGZpeGVkIGluZGVwZW5kZW50bHksIGFuZCB0aGUgbWVyZ2Ugd2FzCgkgIGF1dG9tYWdpYywgeWllbGRpbmcgdHdvIGV4dHJhIGZyZWUgY2FsbHMuCgoyMDE1LTA0LTE0IDEzOjQyOjU1ICswOTAwICBTdWh3YW5nIEtpbSA8c3Vod2FuZy5raW1AbGdlLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjbG9jay5jOgoJICB0ZXN0czogY2xvY2s6IGZpeCB0ZXN0IGNsb2NrIG5hbWUKCSAgRG9uJ3QgY2FsbCB0aGUgc2xhdmUgdGVzdCBjbG9jayAiTWFzdGVyIi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjQzMAoKMjAxNS0wNC0xNCAxNzo0NzowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgZWxlbWVudGZhY3Rvcnk6IGFkZCBFTkNSWVBUT1IgY2xhc3MgZGVmaW5lcwoJICB0byBnbyB3aXRoIERFQ1JZUFRPUi4KCjIwMTUtMDMtMTYgMTM6MTE6NTkgKzAwMDAgIEFsZXggQXNobGV5IDxidWd6aWxsYUBhc2hsZXktZmFtaWx5Lm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgZWxlbWVudGZhY3Rvcnk6IGFkZCBERUNSWVBUT1IgY2xhc3MgZGVmaW5lcwoJICBBbiBlbGVtZW50IHRoYXQgcGVyZm9ybXMgZGVjcnlwdGlvbiBkb2VzIG5vdCBuYXR1cmFsbHkgZml0IHdpdGhpbiBhbnkKCSAgb2YgdGhlIGV4aXN0aW5nIGVsZW1lbnQgZmFjdG9yeSBjbGFzcyB0eXBlcy4gSXQgaXMgdXNlZnVsIHRvIGJlIGFibGUKCSAgdG8gZWFzaWx5IGdldCBhIGxpc3Qgb2YgYWxsIGVsZW1lbnRzIHRoYXQgc3VwcG9ydCBkZWNyeXB0aW9uIHNvIHRoYXQKCSAgYSB1bmlvbiBjYW4gYmUgY29tcHV0ZWQgYmV0d2VlbiB0aGUgcHJvdGVjdGlvbiBzeXN0ZW1zIHRoYXQgaGF2ZSBhCgkgIHN1cHBvcnRlZCBkZWNyeXB0b3IgYW5kIHRoZSBhbGxvd2VkIHByb3RlY3Rpb24gc3lzdGVtcyBmb3IgYSBwYXJ0aWN1bGFyCgkgIHN0cmVhbS4KCSAgVGhpcyBjb21taXQgYWRkcyBhIG5ldyBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfREVDUllQVE9SIGFuZCBpdHMKCSAgYXNzb2NpYXRlZCBzdHJpbmcgaWRlbnRpZmllciAiRGVjcnlwdG9yIi4gSXQgYWxzbyBhZGRzCgkgIEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9ERUNSWVBUT1IgdG8gR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX0RFQ09EQUJMRQoJICBzbyB0aGF0IHVyaWRlY29kZWJpbiBjYW4gYXV0by1wbHVnIGEgZGVjcnlwdGlvbiBlbGVtZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1OTkxCgoyMDE1LTA0LTEzIDE3OjAxOjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmRlbGVtZW50OiBVc2UgZ3N0X2V2ZW50X3VucmVmKCkgaW5zdGVhZCBvZiBnc3RfbWluaV9vYmplY3RfdW5yZWYoKSArIGNhc3RpbmcKCjIwMTUtMDQtMTMgMTQ6NDA6MjIgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGZpeCBsZWFrIGluIGdzdF90eXBlX2ZpbmRfZWxlbWVudF9zcmNfZXZlbnQoKQoJICBnc3RfdHlwZV9maW5kX2VsZW1lbnRfc3JjX2V2ZW50KCkgaXMgc3VwcG9zZWQgdG8gY29uc3VtZSBAZXZlbnQgYnV0IHdhc24ndAoJICBkb2luZyBzbyB3aGVuIGl0IHdhcyBoYW5kbGluZyB0aGUgZXZlbnQgaXRzZWxmLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3Nzc1CgkgIFNpZ25lZC1vZmYtYnk6IEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKMjAxNS0wNC0xMSAyMDo0NDowMiArMDkwMCAgSHl1bmp1biBLbyA8enpvb24ua29Ac2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IHJlc2V0IGVycm5vIGJlZm9yZSBnX2FzY2lpX3N0cnRvdWxsIGNhbGwKCSAgImVycm5vIiBhbHJlYWR5IGhhcyBtZWFuaW5nbGVzcyB2YWx1ZSBiZWZvcmUgZ19hc2NpaV9zdHJ0b3VsbCBjYWxsLgoJICBUaGlzIGNhdXNlcyBpbnZhbGlkIGVycm9yIGNoZWNrIHdpdGhvdXQgcmVzZXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDc2OTAKCjIwMTUtMDQtMTIgMTM6MTM6MzIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogT25seSBzZXQgRFRTIHRvIHNlZ21lbnQuc3RhcnQgb24gdGhlIGZpcnN0IGJ1ZmZlciBpZiBzdWJjbGFzcyBkaWQgbm90IHByb3ZpZGUgUFRTCgkgIE90aGVyd2lzZSB3ZSdyZSBnb2luZyB0byBzZXQgYSByYXRoZXIgYXJiaXRyYXJ5IERUUyBvZiBzZWdtZW50LnN0YXJ0ICh1c3VhbGx5CgkgIDApIGZvciBsaXZlIHNvdXJjZXMsIHdoaWNoIGNvbmZ1c2VzIHN5bmNocm9uaXphdGlvbiBpZiB0aGUgc291cmNlIHN0YXJ0ZWQKCSAgY2FwdHVyaW5nIGF0IGEgbGF0ZXIgdGltZS4gQW5kIGl0J3MgZXNwZWNpYWxseSB3cm9uZyBmb3IgcmF3IG1lZGlhLCBmb3Igd2hpY2gKCSAgd2Ugc2hvdWxkIG5vdCBzZXQgYW55IERUUyBhdCBhbGwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDc3MzEKCjIwMTQtMDktMDIgMTc6NDA6MjggKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogUnVuIHRoZSBkZWZhdWx0IGhhdmUtdHlwZSBoYW5kbGVyIGFmdGVyIGFsbCBhcHBsaWNhdGlvbiBoYW5kbGVycwoJICBPdGhlcndpc2UgdGhlIENBUFMgZXZlbnQgd2lsbCBhbHJlYWR5IGJlIGZvcndhcmRlZCBkb3duc3RyZWFtIGFuZAoJICB0aGUgYXBwbGljYXRpb24gaGFzIG5vIHdheSB0byBpbnRlcnZlbmUgYW55bW9yZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTg5NgoKMjAxNS0wMy0xMCAxMjo1Nzo0NCArMTAwMCAgRHVuY2FuIFBhbG1lciA8ZHBhbG1lckBkaWdpc29mdC50dj4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBEb24ndCBhdXRvbWF0aWNhbGx5IGVudGVyIHRoZSBidWZmZXJpbmcgc3RhdGUgd2hlbiB1c2UtYnVmZmVyaW5nIGlzIHNldC4KCSAgVGhlcmUgaXMgbm8gcmVhc29uIEkgY2FuIHNlZSB0byBzZXQgbXEtPmJ1ZmZlcmluZyA9IFRSVUUgd2hlbgoJICB1c2VfYnVmZmVyaW5nIGlzIHNldDsgdGhlIGNvZGUgaGVyZSBhbHNvIGNhbGxzIHVwZGF0ZV9idWZmZXJpbmcoKSwgd2hpY2gKCSAgd2lsbCBzZXQgbXEtPmJ1ZmZlcmluZyA9IFRSVUUgaWYgdGhpcyBpcyB3YXJyYW50ZWQgYmVjYXVzZSBvZiBsb3cgYnVmZmVyCgkgIGxldmVscy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTkzNwoKMjAxNS0wNC0xMCAxMjozMjoyNyArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogZml4IGNhY2hlZCBidWZmZXIgbGVhayBpbiBjaGFpbiBmdW5jdGlvbgoJICBnc3Rfc2VsZWN0b3JfcGFkX2NoYWluKCkgd2FzIHBvcHBpbmcgY2FjaGVkIGJ1ZmZlcnMgb3V0IG9mIHRoZSBxdWV1ZSB3aXRob3V0CgkgIGZyZWVpbmcgdGhvc2UuIE1ha2Ugc3VyZSB3ZSBkb24ndCBzdGVhbCB0aGUgR3N0QnVmZmVyIGFzIHRoZSBjYWNoZWQgYnVmZmVyIHJlZgoJICBoYXMgYmVlbiBwYXNzZWQgdG8gdGhlIHBhZCBjaGFpbiBmdW5jdGlvbi4KCSAgVGhpcyBjYW4gYmUgcmVwcm9kdWNlZCBieSBydW5uaW5nIHRoZQoJICB2YWxpZGF0ZS5maWxlLnBsYXliYWNrLnN3aXRjaF9zdWJ0aXRsZV90cmFja193aGlsZV9wYXVzZWQudGVzdDVfbWt2IHNjZW5hcmlvCgkgIHdpdGggVmFsZ3JpbmQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDc2MTEKCSAgU2lnbmVkLW9mZi1ieTogR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoyMDE1LTA0LTA4IDE2OjA0OjExICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogY29tbW9uOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICB0ZXN0czogVXNlIEFNX1RFU1RTX0VOVklST05NRU5UCgkgIE5lZWRlZCBieSB0aGUgbmV3IGF1dG9tYWtlIHRlc3QgcnVubmVyCgoyMDE1LTA0LTA3IDE1OjAwOjQ2ICswNTMwICBQcmFzaGFudCBHb3Rhcm5lIDxwcy5nb3Rhcm5lQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogbWFrZSBzdXJlIGxpc3QgaXMgd3JpdGFibGUgYmVmb3JlIGFkZGluZyBvciByZW1vdmluZyBidWZmZXJzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDc0MzkKCjIwMTUtMDQtMDcgMTQ6MzQ6NTggKzA1MzAgIFByYXNoYW50IEdvdGFybmUgPHBzLmdvdGFybmVAc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBtaW5vciBkb2NzIGFkZGl0aW9uIGZvciBnc3RfYnVmZmVyX2xpc3RfZ2V0KCkKCSAgUmV0dXJuIGJ1ZmZlciByZW1haW5zIHZhbGlkIGFzIGxvbmcgYXMgbGlzdCBpcyB2YWxpZAoJICBhbmQgYnVmZmVyIGlzIG5vdCByZW1vdmVkIGZyb20gbGlzdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzQzOAoKMjAxNS0wNC0wNyAxMTozODozMSArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZml4IHBvb2wgbGVhayBvbiBhbGxvY2F0aW9uIHF1ZXJ5IGVycm9yIHBhdGgKCSAgSXQgY291bGQgYmUgdHJpZ2dlcmVkIGJ5OgoJICBnc3QtbGF1bmNoLTEuMCB2aWRlb3Rlc3RzcmMgbnVtLWJ1ZmZlcnM9MjAgISB2aWRlY3JvcCBib3R0b209MjE0NzQ4MzY0ICEgdmlkZW9jb252ZXJ0ICEgYXV0b3ZpZGVvc2luawoJICBTcG90dGVkIHdoaWxlIHRlc3Rpbmc6CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDM5MTAKCjIwMTUtMDQtMDYgMTg6NDU6MzcgLTA3MDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZvcndhcmQgU0VHTUVOVF9ET05FIGV2ZW50cyBpbW1lZGlhdGVseQoJICBUaGVyZSBtaWdodCBiZSBubyBtb3JlIGRhdGEgY29taW5nIGFmdGVyd2FyZHMsIGFuZCB3ZSBqdXN0IGRyYWluZWQgZXZlcnl0aGluZwoJICB0aGF0IHdhcyBsZWZ0IHRvIGJlIHB1c2hlZCBhbnl3YXkuCgoyMDE1LTA0LTA2IDE4OjU2OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZG9jczogZml4IGNyb3NzLXJlZmVyZW5jZSB0byBlbnZpcm9ubWVudCB2YXJpYWJsZXMgaW4gR3N0SW5mbwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3NDE2CgoyMDE1LTA0LTA2IDEwOjE4OjE1ICswNTMwICBQcmFzaGFudCBHb3Rhcm5lIDxwcy5nb3Rhcm5lQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGFkZCBjaGVjayBmb3Igd3JpdGFibGl0eSBpbiByZXNpemUKCSAgQWRkIGd1YXJkIHRvIGdzdF9tZW1vcnlfcmVzaXplKCkgdG8gbWFrZSBzdXJlIHRoZQoJICBtZW1vcnkgdG8gYmUgcmVzaXplZCBpcyBhY3R1YWxseSB3cml0YWJsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzM5MgoKMjAxNS0wNC0wNSAxNjo0NzoyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgdGVzdHM6IG11bHRpcXVldWU6IGFkZCB0ZXN0IHRvIG1ha2Ugc3VyZSBpbml0aWFsIGV2ZW50cyBnbyB0aHJvdWdoIHdpdGhvdXQgYnVmZmVycwoKMjAxNS0wNC0wNSAxNjowNjo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkgIHRlc3RzOiBxdWV1ZTogY2hlY2sgdGhhdCB0aGUgaW5pdGlhbCBldmVudHMgYXJlIHNlbnQgb24gaW1tZWRpYXRlbHkKCSAgQWRkIGEgY2hlY2sgdGhhdCBtYWtlcyBzdXJlIHN0cmVhbS1zdGFydCwgY2FwcywgYW5kIHNlZ21lbnQgZXZlbnRzCgkgIGFyZSBwYXNzZWQgb24gYnkgcXVldWUgd2l0aG91dCBkZWxheSwgaS5lLiBldmVuIGlmIG5vIGJ1ZmZlciBpcwoJICBzZW50LgoKMjAxNS0wNC0wNCAxODozMzoxOCAtMDcwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBQcmludCBkZWJ1ZyBvdXRwdXQgZnJvbSBnc3RfcGFkX2xpbmtfZnVsbCgpIGlmIHByZXBhcmluZyBsaW5raW5nIGZhaWxlZAoJICBNYWtlcyBpdCBlYXNpZXIgdG8gZmluZCBsaW5raW5nIGZhaWx1cmVzIGluIGRlYnVnIGxvZ3MuCgoyMDE1LTA0LTA0IDE5OjI5OjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgc2VnbWVudDogc21hbGwgZG9jcyBhZGRpdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkwNTY0CgoyMDE1LTA0LTA0IDE4OjE4OjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW1zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJICBkb2NzOiBkZXNpZ246IGZpeCBzb21lIDAuMTAtaXNtcyBpbiBHc3RTZWdtZW50IGRvY3MKCSAgMSkgc2VnbWVudC5hY2N1bSAtPiBzZWdtZW50LmJhc2UKCSAgMikgUmVmZXIgdG8gR3N0U2VnbWVudCBtZW1iZXJzIGFzIFMuZm9vIGluc3RlYWQgb2YKCSAgTlMuZm9vLCB0aGUgZXZlbnQgaXMgbm93IGNhbGxlZCBhIHNlZ21lbnQgZXZlbnQKCSAgcmF0aGVyIHRoYW4gbmV3c2VnbWVudCBldmVudC4KCSAgMykgVGhlcmUncyBubyBtb3JlIGFic19yYXRlIGZpZWxkIGluIEdzdFNlZ21lbnQsCgkgIGFuZCB0aGVyZSBuZXZlciB3YXMgYW4gYWJzX2FwcGxpZWRfcmF0ZSBmaWVsZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MDU2NAoKMjAxNS0wNC0wNCAwNDoxNDo1MCArMDMwMCAgSWx5YSBLb25zdGFudGlub3YgPGlseWEua29uc3RhbnRpbm92QGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBkbyBub3QgbGVhayBidWZmZXIgcG9vbCBpbiBlcnJvciBjYXNlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDczMjEKCjIwMTUtMDQtMDMgMTk6MTI6NDggLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiBTaWxlbmNlIGEgY29tcGlsZXIgd2FybmluZwoJICBUaGlzIGlzIGEgZmFsc2UgcG9zaXRpdmUgZm9yIHVzZSBpbml0aWFsaXplZC4gVGhlIHZhcmlhYmxlIGlzIHNldCBhbmQKCSAgdXNlZCBlbmNsb3NlZCBpbiB0aGUgc2FmZSBpZiBjb25kaXRpb24uCgoyMDE1LTA0LTAzIDE2OjMyOjE2IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2M6IEFkZCBnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWVfZnVsbAoKMjAxNS0wNC0wMyAxMzoxOToxMyAtMDcwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBGaXggZG9jdW1lbnRhdGlvbiwgYnVmZmVyIHBvb2xzIGFyZSB1bnJlZmZlZCBhbmQgbm90IGZyZWVkCgoyMDE1LTA0LTAzIDIwOjQzOjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogSU5TVEFMTDoKCSAgVXBkYXRlIElOU1RBTEwgdG8gdGhlIGF1dG9tYWtlIDEuMTQgdmVyc2lvbgoKMjAxNS0wNC0wMyAxODo1NzozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYmM3NmE4YiB0byBjOGZiMzcyCgoyMDE1LTA0LTAzIDE2OjI3OjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBmaXggZXhwb3J0cwoKMjAxNS0wMy0xOSAxMDo0NTo1NiArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc2VnbWVudDogYWRkIGdzdF9zZWdtZW50X2lzX2VxdWFsCgkgIEl0IGJlYXRzIG1lbWNtcCBkdWUgdG8gdGhlICdyZXNlcnZlZCcgZmllbGRzLgoJICBBUEk6IGdzdF9zZWdtZW50X2lzX2VxdWFsKCkKCSAgRm91bmQgdmlhLCBidXQgcHJvYmFibHkgbm90IGRpcmVjdGx5IGxpbmtlZCB0bywKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczODIxNgoKMjAxNS0wNC0wMyAwMDozNjo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IEFQSSB0byBleHBvcnRzCgoyMDE0LTA4LTA2IDEwOjMyOjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWxsb3cgcHJvYmVzIHRvIHJlbW92ZSB0aGUgZGF0YSBpdGVtIHdoaWxzdCByZXR1cm5pbmcgUFJPQkVfT0sKCSAgVXNlIGNhc2U6IHdlIHdhbnQgdG8gYmxvY2sgdGhlIHNvdXJjZSBwYWQgb2YgYSBsZWFreSBxdWV1ZSBhbmQKCSAgZHJvcCB0aGUgYnVmZmVyIHRoYXQgY2F1c2VzIHRoZSBibG9jay4gSWYgd2UgcmV0dXJuIFBST0JFX0RST1AKCSAgdGhlbiB0aGUgYnVmZmVyIGdldHMgZHJvcHBlZCwgYnV0IHdlIGdldCBjYWxsZWQgYWdhaW4uIElmIHdlCgkgIHJldHVybiBQUk9CRV9PSyB3ZSBjYW4ndCBlYXNpbHkgZHJvcCB0aGUgYnVmZmVyLiBJZiB3ZSBqdXN0CgkgIHJlcGxhY2UgdGhlIGl0ZW0gaW50byB0aGUgR3N0UGFkUHJvYmVJbmZvIHN0cnVjdHVyZSB3aXRoIE5VTEwsCgkgIEdTdHJlYW1lciB3aWxsIHB1c2ggYSBOVUxMIGJ1ZmZlciB0byB0aGUgbmV4dCBlbGVtZW50IHdoZW4gd2UKCSAgdW5ibG9jayB0aGUgcGFkIHByb2JlLiBUaGlzIHBhdGNoIGVuc3VyZXMgaXQgZG9lc24ndCBkbyB0aGF0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0MzQyCgoyMDE1LTAyLTEyIDE5OjM5OjQ0IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogRG9jdW1lbnQgd2hlbiBhIGNsb2NrIGlzIGF2YWlsYWJsZSBmcm9tIGdzdF9lbGVtZW50X2dldF9jbG9jaygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQ0NDIKCjIwMTUtMDItMTIgMTk6NDA6MDYgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkgIHBpcGVsaW5lOiBBZGQgYmluZGluZyBmcmllbmRseSBnc3RfcGlwZWxpbmVfZ2V0X3BpcGVsaW5lX2Nsb2NrKCkKCSAgQWxzbyBza2lwIGdzdF9waXBlbGluZV9nZXRfY2xvY2soKSBhbmQgZ3N0X3BpcGVsaW5lX3NldF9jbG9jaygpIGZyb20gdGhlCgkgIGJpbmRpbmdzIGFzIHRoZXkgYXJlIGNvbmZ1c2VkIHdpdGggZ3N0X2VsZW1lbnRfKl9jbG9jaygpLgoJICBBUEk6IGdzdF9waXBlbGluZV9nZXRfcGlwZWxpbmVfY2xvY2soKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0NDQyCgoyMDE1LTA0LTAyIDE3OjMyOjQyIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogQWRkIFNpbmNlIG1hcmsgZm9yIG5ldyBtZXRob2QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNDQyNAoKMjAxNS0wMi0yMCAxNzo1MDo0OCArMDEwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiBBZGQgYSBtZXRob2QgdG8gbGV0IHN1YmNsYXNzZXMgY2xlYW5seSB1cGRhdGUgc3JjcGFkIGNhcHMKCSAgQVBJOgoJICBnc3RfYmFzZV90cmFuc2Zvcm1fdXBkYXRlX3NyYwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0NDI0CgoyMDE1LTA0LTAyIDIxOjE4OjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtc2NoZWR1bGluZy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgZG9jczogcHdnOiBmaXggbWlzc2luZyBjb21tYSBhbmQgMC4xMC1pc20gaW4gY29kZSBzYW1wbGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzI2NwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3MjY2CgoyMDE1LTA0LTAyIDE5OjI5OjQ2ICswMzAwICBJbHlhIEtvbnN0YW50aW5vdiA8aWx5YS5rb25zdGFudGlub3ZAZ21haWwuY29tPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGltcHJvdmUgZG9jcyBmb3IgX2NvcHkoKSBhbmQgX3NoYXJlKCkKCjIwMTUtMDQtMDIgMTE6NDI6MjAgKzA1MzAgIFByYXNoYW50IEdvdGFybmUgPHBzLmdvdGFybmVAc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJICB0ZXN0OiBmaWxlc2luazogYWRkIHRlc3RzIGZvciBidWZmZXJzIHdpdGggbXVsdGlwbGUgbWVtb3J5IGJsb2NrcwoJICBVcGRhdGUgdGVzdF9zZWVraW5nIHRlc3RjYXNlIHRvIHZlcmlmeSB0aGUgcmVuZGVyIGFuZCByZW5kZXJfbGlzdAoJICB2aXJ0dWFsIG1ldGhvZCBoYW5kbGUgYnVmZmVycyBhbmQgYnVmZmVyIGxpc3QgY29udGFpbmluZyBtdWx0aXBsZQoJICBtZW1vcnkgYmxvY2tzIGNvcnJlY3RseS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzIyMwoKMjAxNS0wNC0wMiAwOTo0NDozMyArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDogQWRkIGEgRklYTUUgZm9yIDIuMCBhYm91dCByZXF1ZXN0X25ld19wYWQgVlMgcmVxdWVzdF9wYWQgbmFtaW5nCgoyMDE1LTA0LTAyIDA5OjM0OjAwICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBGaXggcmVxdWVzdF9uZXdfcGFkIGludHJvc3BlY3Rpb24KCSAgTWFya2luZyBnc3RfZWxlbWVudF9yZXF1ZXN0X3BhZCBhcyB0aGUgY2FsbGVyIG9mIHRoZSAtPnJlcXVlc3RfbmV3X3BhZAoJICB2aXJ0dWFsIG1ldGhvZC4KCjIwMTUtMDQtMDEgMDk6MjA6MjQgKzA1MzAgIFByYXNoYW50IEdvdGFybmUgPHBzLmdvdGFybmVAc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJICB0ZXN0czogZmlsZXNpbms6IGFkZCBjaGVjayBmb3IgcmVuZGVyX2xpc3QgdmlydHVhbCBtZXRob2QKCSAgR3N0RmlsZVNpbmsgaW1wbGVtZW50cyB0aGUgcmVuZGVyX2xpc3QgdmlydHVhbCBtZXRob2QgdG8gcmVuZGVyCgkgIGEgbGlzdCBvZiBidWZmZXJzLiBVcGRhdGUgdGhlIHRlc3Rfc2Vla2luZyB0ZXN0IGNhc2UgdG8gYWxzbwoJICBjaGVjayB0aGUgcmVuZGVyX2xpc3QgbWV0aG9kIGltcGxlbWVudGF0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3MTAwCgoyMDE1LTA0LTAxIDEyOjEzOjE3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IG5pY2VyIHByaW50aW5nIG9mIGNhcHMgZmVhdHVyZXMKCSAgT25seSBwcmludCBpbnRlcmVzdGluZyBjYXBzIGZlYXR1cmVzLCBkb24ndAoJICBhcHBlbmQgKG1lbW9yeTpTeXN0ZW1NZW1vcnkpIHRvIGFsbCBjYXBzLAoJICB3aGljaCBtYWtlcyB0aGVtIG11Y2ggbW9yZSB1bndpZWxkeSBhbmQKCSAgaGFyZGVyIHRvIHJlYWQuIEFsc28gdXNlIGludGVybmFsIGZ1bmN0aW9uCgkgIHRvIGdldCBjYXBzIGZlYXR1cmVzIHNvIHRoYXQgb3VyIHByaW50aW5nCgkgIGhhcyBubyBzaWRlIGVmZmVjdHMgb24gdGhlIGNhcHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY4MDkKCjIwMTUtMDMtMjYgMTM6MDU6NTcgKzAxMDAgIEx1Ym9zeiBTYXJuZWNraSA8bHVib3N6LnNhcm5lY2tpQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IHBsb3QgY2FwcyBmZWF0dXJlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2ODA5CgoyMDE1LTAzLTMxIDIzOjQ4OjIyICswOTAwICBXb25jaHVsIExlZSA8Y2h1bDA4MTJAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEZpeCBhIHR5cG8gaW4gYSBkb2NzdHJpbmcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzExOQoKMjAxNS0wMy0zMSAxMToxNToxMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgaW50cm9zcGVjdGlvbjogRG9uJ3QgdXNlIGctaXItc2Nhbm5lciBjYWNoZSBhdCBjb21waWxlIHRpbWUKCSAgSXQgcG9sbHV0ZXMgdXNlciBkaXJlY3RvcmllcyBhbmQgd2UgZG9uJ3QgbmVlZCB0byBjYWNoZSBpdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3MDk1CgoyMDE1LTAzLTI4IDE0OjQ1OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBvdXRkYXRlZCBkZWJ1ZyBtZXNzYWdlCgkgIEJ1ZmZlciBsaXN0cyBkb24ndCBoYXZlIGdyb3VwcyBhbnkgbW9yZSBpbiAxLjAKCjIwMTUtMDMtMjcgMTg6MjA6MzcgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBGbHVzaC1zdG9wIHN0YXJ0cyBsaXZlIHRhc2sgaW4gcGF1c2VkCgkgIFRoZSBmbHVzaC1zdG9wIGV2ZW50IHNob3VsZCBub3QgcmVzdGFydCB0aGUgdGFzayBmb3IgbGl2ZSBzb3VyY2VzIHVubGVzcwoJICB0aGUgZWxlbWVudCBpcyBwbGF5aW5nLiBUaGlzIHdhcyBicmVha2luZyBzZWVrcyBpbiBwYXVzZSB3aXRoIHRoZSBydHBzcmMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzU3MDEKCjIwMTUtMDMtMjcgMTY6MjM6NDAgKzAwMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJICB0ZXN0czogY2hlY2sgbG9jYXRpb24gaXNuJ3QgdHJ1bmNhdGVkCgkgIFRlc3QgY292ZXJpbmcgdGhlIHJlY2VudCBjb21taXQgd2hlcmUgbG9jYXRpb249JyIuYWJjJyB3b24ndCBnZXQgdHJ1bmNhdGVkCgkgIHRvICcuYWInIGFueW1vcmUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODYyNQoKMjAxNS0wMy0yNiAxNzowMTowNiArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IG9ubHkgdW53cmFwIHN0cmluZyBkZWxpbWl0ZWQgd2l0aCAiCgkgIERvbid0IHVud3JhcCBzdHJpbmdzIHRoYXQgc3RhcnQgYnV0IGRvbid0IGZpbmlzaCB3aXRoIGEgZG91YmxlIHF1b3RlLiBJZiBhCgkgIHN0cmluZyBpcyBkZWxpbWl0ZWQgYnkgdHdvIHF1b3RlcyB3ZSB1bmVzY2FwZSB0aGVtIGFuZCBhbnkgc3BlY2lhbCBjaGFyYWN0ZXJzCgkgIGluIHRoZSBtaWRkbGUgKGxpa2UgXCIgb3IgXFwpLiBJZiB0aGUgZmlyc3QgY2hhcmFjdGVyIG9yIHRoZSBsYXN0IGNoYXJhY3RlcgoJICBhcmVuJ3QgYSBxdW90ZSB3ZSBhc3N1bWUgaXQncyBwYXJ0IG9mIGFuIHVuZXNjYXBlZCBzdHJpbmcuCgkgIE1vdmVkIHNvbWUgZGVzZXJpYWxpemVfc3RyaW5nIHVuaXQgdGVzdHMgYmVjYXVzZSB3ZSBkb24ndCB0cnkgdG8gdW53cmFwIHN0cmluZ3MKCSAgbWlzc2luZyB0aGF0IHNlY29uZCBxdW90ZSBhbnltb3JlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4NjI1CgoyMDE1LTAzLTI3IDE3OjE2OjAzICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IGNoZWNrIGJlZm9yZSB0cnVuY2F0aW5nIHN0cmluZ3MKCSAgRG9uJ3QgdHJ1bmNhdGUgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIGEgc3RyaW5nIGlmIGl0IGlzbid0IG5lY2Vzc2FyeS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODYyNQoKMjAxNS0wMy0yNyAxMDoxNToxNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBBZGQgZ3VhcmRzIGFnYWluc3QgaW52YWxpZCBhcmd1bWVudHMgdG8gc2V0X2ZsdXNoaW5nKCkgYW5kIHBvbGwoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2ODcxCgoyMDE1LTAzLTI1IDEwOjQ5OjA4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG9ubHkgcG9zdCAnbm8gdmFsaWQgZnJhbWVzJyBlcnJvciBpZiBidWZmZXJzIHdlcmUgcmVjZWl2ZWQKCSAgT3RoZXJ3aXNlIGJhc2VwYXJzZSB3aWxsIGNvbnNpZGVyIGVtcHR5IHN0cmVhbXMgdG8gYmUgYW4gZXJyb3Igd2hpbGUKCSAgYW4gZW1wdHkgc3RyZWFtIGlzIGEgdmFsaWQgc2NlbmFyaW8uIFdpdGggdGhpcyBwYXRjaCwgZXJyb3JzIHdvdWxkCgkgIG9ubHkgYmUgZW1pdHRlZCBpZiB0aGUgcGFyc2VyIHJlY2VpdmVkIGRhdGEgYnV0IHdhc24ndCBhYmxlIHRvCgkgIHByb2R1Y2UgYW55IG91dHB1dCBmcm9tIGl0LgoJICBUaGlzIGNoYW5nZSBpcyBvbmx5IGZvciBwdXNoLW1vZGUgb3BlcmF0aW9uIGFzIGluIHB1bGwgbW9kZSBhbgoJICBlbXB0eSBmaWxlIGNhbiBiZSBjb25zaWRlcmVkIGFuIGVycm9yIGZvciB0aGUgb25lIGRyaXZpbmcgdGhlCgkgIHBpcGVsaW5lCgkgIEluY2x1ZGVzIGEgdW5pdCB0ZXN0IGZvciBpdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMTcxCgoyMDE1LTAzLTE5IDEwOjM2OjExICswMTAwICBKb3NlIEFudG9uaW8gU2FudG9zIENhZGVuYXMgPHNhbnRvc2NhZGVuYXNAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkgIHRlZTogQWRkIGFsbG93LW5vdC1saW5rZWQgcHJvcGVydHkKCSAgVGhpcyBwcm9wZXJ0eSBhdm9pZHMgbm90IGxpbmtlZCBlcnJvciB3aGVuIGFsbCB0aGUgcGFkcyBhcmUgdW5saW5rZWQKCSAgb3Igd2hlbiB0aGVyZSBhcmUgbm8gc291cmNlIHBhZHMuIFRoaXMgaXMgdXNlZnVsIGluIGR5bmFtaWMgcGlwZWxpbmVzCgkgIHdoZXJlIGl0IGNhbiBoYXBwZW4gdGhhdCBmb3IgYSBzaG9ydCB0aW1lIHRoZXJlIGFyZSBubyBwYWRzIGF0IGFsbCBvcgoJICBhbGwgZG93bnN0cmVhbSBwYWRzIGFyZSBub3QgbGlua2VkIHlldC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjQzNgoKMjAxNS0wMy0yMSAxNzoxMzoxOCAtMDUwMCAgTWljaGFlbCBDYXRhbnphcm8gPG1jYXRhbnphcm9AZ25vbWUub3JnPgoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgIGRvY3M6IEZpeCB0eXBvcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2NTg1CgoyMDE1LTAzLTIxIDE1OjQ2OjUwIC0wNTAwICBNaWNoYWVsIENhdGFuemFybyA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogRml4IHR5cG9zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY1ODUKCjIwMTUtMDMtMjQgMTY6MDQ6MTYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0LXNlbGVjdG9yOiBhZGQgZHJhaW4gaGFuZGxpbmcKCSAgUmVsZWFzZSB0aGUgbGF0ZXN0IGJ1ZmZlciwgaWYgYW55LCBhbmQgdGhlbiBqdXN0IGxldAoJICB0aGUgZHJhaW4gYmUgcHVzaGVkIGRvd25zdHJlYW0KCjIwMTUtMDMtMjQgMTk6MzI6NDkgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIE1ha2VmaWxlLmFtOgoJICBSZXZlcnQgIkZpeCBkaXN0Y2hlY2siCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNTZkZDJkODljNGVhYzQ2MGNiYzM3ZTJhNTFjMWRkOWU3OTI5OTllOC4KCSAgSW5zdGFsbGluZyBjb21wbGV0aW9ucyB0byBhIGN1c3RvbSBwcmVmaXggaXMgbm93IGZpeGVkLgoKMjAxNS0wMy0yNCAxOTozMDo1MiArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSAgaGVscGVyczogcmVtb3ZlIGNvbXBsZXRpb24taGVscGVyIG9uIHVuaW5zdGFsbAoJICArIEFuZCBhZGQgaXQgdG8gQ0xFQU5GSUxFUwoKMjAxNS0wMy0xOCAxOTozODoxNSArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogZGF0YS9jb21wbGV0aW9ucy9nc3QtaW5zcGVjdC0xLjA6CgkqIGRhdGEvY29tcGxldGlvbnMvZ3N0LWxhdW5jaC0xLjA6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0OgoJICBjb21wbGV0aW9uczogcmVtb3ZlIGxhc3QgdW5uYW1lc3BhY2VkIHN5bWJvbHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQ4NzcKCjIwMTUtMDMtMTggMTQ6NDQ6MjEgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGRhdGEvY29tcGxldGlvbnMvZ3N0LWluc3BlY3QtMS4wOgoJKiBkYXRhL2NvbXBsZXRpb25zL2dzdC1sYXVuY2gtMS4wOgoJICBjb21wbGV0aW9uczogcmVtb3ZlIGRlcHJlY2F0ZWQgc2hlbGwgc3ludGF4LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0ODc3I2MyMQoKMjAxNS0wMy0xOCAxNDozNzoxMSArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogZGF0YS9jb21wbGV0aW9ucy9nc3QtaW5zcGVjdC0xLjA6CgkqIGRhdGEvY29tcGxldGlvbnMvZ3N0LWxhdW5jaC0xLjA6CgkgIGNvbXBsZXRpb25zOiBwcmVmaXggc2hlbGwgZnVuY3Rpb25zIHdpdGggX2dzdAoJICArIFRvIG1ha2UgaXQgbW9yZSBkaWZmaWN1bHQgZm9yIHRoZW0gdG8gY29uZmxpY3QgaW4gdGhlCgkgIGdsb2JhbCBuYW1lc3BhY2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQ4NzcjYzIxCgoyMDE1LTAzLTI0IDEzOjEzOjI5IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFzaC1jb21wbGV0aW9uOiBSZXNwZWN0IHRoZSBwcmVmaXgKCSAgRG9uJ3QgdHJ5IGFuZCBpbnN0YWxsIHRoZSBiYXNoIGhlbHBlcnMgb3V0c2lkZSB0aGUgZGVmaW5lZCBwcmVmaXguCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQ4NzcKCjIwMTQtMTEtMTkgMTM6MDg6NDUgKzAxMDAgIEphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRpZykgPGpzdGVmZmVuc0BtYWtlLnR2PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBSZW5hbWUgX2FjdGl2YXRlX3NpbmtwYWQgdG8gX2dldF9hY3RpdmVfc2lua3BhZAoJICBSZW1vdmVzIHRoZSBub3cgdW51c2VkICdwYWQnIHBhcmFtZXRlciBhbmQgcmVuYW1lcyB0aGUgZnVuY3Rpb24KCSAgdG8gc29tZXRoaW5nIG1vcmUgYXBwcm9wcmlhdGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzk2MjAKCjIwMTQtMTEtMTkgMTM6MDM6MjEgKzAxMDAgIEphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRpZykgPGpzdGVmZmVuc0BtYWtlLnR2PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBSZW1vdmUgcGFkJ3MgJ2FjdGl2ZScgZmllbGQKCSAgVGhpcyBpcyBub3cgbmV2ZXIgcmVhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczOTYyMAoKMjAxNC0xMS0xOSAxMjo1OToxMiArMDEwMCAgSmFuIEFsZXhhbmRlciBTdGVmZmVucyAoaGVmdGlnKSA8anN0ZWZmZW5zQG1ha2UudHY+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IFVzZSBzZWdtZW50LXByZXNlbmNlIGZvciBydW5uaW5nX3RpbWUgY2hlY2sKCSAgV2hlbiBkZXRlcm1pbmluZyB3aGV0aGVyIHRoZSBydW5uaW5nX3RpbWUgb2YgYSBwYWQgY2FuIGJlCgkgIGNhbGN1bGF0ZWQsIGNoZWNrIGlmIHRoZSBzZWdtZW50IGlzIGluIFRJTUUgZm9ybWF0IGluc3RlYWQKCSAgb2YgdXNpbmcgdGhlICdhY3RpdmUnIGZpZWxkLgoJICBTaW5jZSB0aGUgbGF0dGVyIGlzIHNldCB0aHJvdWdoICphbnkqIGFjdGl2aXR5LCBpdCdzIG5vdCBhCgkgIHJlbGlhYmxlIGluZGljYXRvciBvZiBzZWdtZW50IHByZXNlbmNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5NjIwCgoyMDE1LTAzLTIzIDEzOjIwOjM0ICswMTAwICBKYW4gQWxleGFuZGVyIFN0ZWZmZW5zIChoZWZ0aWcpIDxqc3RlZmZlbnNAbWFrZS50dj4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSAgaW5wdXQtc2VsZWN0b3I6IFJlbW92ZSAnYmxvY2tlZCcgZmxhZwoJICBXaXRoIHRoZSBkaXNhcHBlYXJhbmNlIG9mIHRoZSAnYmxvY2snIHNpZ25hbCwgdGhpcwoJICBmbGFnIGNhbm5vdCBiZSBzZXQgdG8gVFJVRS4KCSAgZ3N0X2lucHV0X3NlbGVjdG9yX3dhaXQgZGlzYXBwZWFycyBhcyBpdCBuZXZlciB3YWl0cwoJICBhbmQganVzdCByZXR1cm5zIHNlbGYtPmZsdXNoaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2ODkxCgoyMDE1LTAzLTIzIDEyOjEyOjUxICswMTAwICBKYW4gQWxleGFuZGVyIFN0ZWZmZW5zIChoZWZ0aWcpIDxqc3RlZmZlbnNAbWFrZS50dj4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSAgaW5wdXQtc2VsZWN0b3I6IFJlbW92ZSBvYnNvbGV0ZSAnYmxvY2snIHNpZ25hbAoJICBUaGlzIHNpZ25hbCBibG9ja3MgdGhlIGlucHV0LXNlbGVjdG9yIHdpdGggbm8gbWVhbnMgb2YgdW5ibG9ja2luZwoJICBvdGhlciB0aGFuIGEgc3RhdGUgY2hhbmdlIGJhY2sgdG8gUkVBRFkuIEl0IHNlZW1zIHRoaXMgc2lnbmFsIHdhcwoJICBwYXJ0IG9mIGFuIG9sZCB3YXkgb2Ygc3luY2hyb25vdXNseSBzd2l0Y2hpbmcgdGhlIHNlbGVjdG9yLAoJICB0b2dldGhlciB3aXRoIHRoZSBhbHJlYWR5LXJlbW92ZWQgJ3N3aXRjaCcgc2lnbmFsLgoJICBSZW1vdmluZyB0aGUgc2lnbmFsIGlzIHNhZmUsIGFzIGF0dGVtcHRpbmcgdG8gdXNlIGl0IGNvdWxkIG9ubHkKCSAgZW5kIGluIGRlYWRsb2Nrcy4gQXR0ZW1wdGluZyB0byBlbWl0IGFuIHVua25vd24gc2lnbmFsIGp1c3QgY2F1c2VzCgkgIGdfY3JpdGljYWxzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2ODkxCgoyMDE1LTAzLTIzIDEzOjA1OjMwICswMTAwICBKYW4gQWxleGFuZGVyIFN0ZWZmZW5zIChoZWZ0aWcpIDxqc3RlZmZlbnNAbWFrZS50dj4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3RvcjogRml4IHdhaXRpbmcgb24gRU9TCgkgIFRoaXMgYXBwYXJlbnRseSBnb3QgYnJva2VuIGJ5IGJjMWVjNGUuIFNpbmNlIHNlbGYtPmJsb2NrZWQgaXMgYWx3YXlzCgkgIEZBTFNFLCBnc3RfaW5wdXRfc2VsZWN0b3Jfd2FpdCBuZXZlciBhY3R1YWxseSB3YWl0cy4KCSAgVXNpbmcgKCFzZWxmLT5lb3MgfHwgc2VsZi0+YmxvY2tlZCkgJiYgLi4uIGFzIHRoZSBsb29wIGNvbmRpdGlvbiB3b3VsZAoJICBiZSBpbmNvcnJlY3QgYXMgd2VsbCwgYmVjYXVzZSB0aGVuIHRoZSBvdGhlciBjYWxsIHRvIHRoZSBmdW5jdGlvbiBpbgoJICBfY2hhaW4gd291bGQgYmxvY2sgdW50aWwgRU9TLCBzbyB0aGUgZnVuY3Rpb25zIGNhbm5vdCBiZSBtZXJnZWQgdHJpdmlhbGx5LgoJICBTaW5jZSBibG9ja2luZyBpcyBvYnNvbGV0ZSwgZ3N0X2lucHV0X3NlbGVjdG9yX3dhaXQgd2lsbCBnZXQgcmVtb3ZlZCBhbnl3YXkuCgkgIEFzIHN1Y2gsIGp1c3QgaW5saW5lIHRoZSBsb29wLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2NTE4CgoyMDE1LTAzLTIwIDA3OjIzOjUzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJICB0ZXN0czogaW5wdXQtc2VsZWN0b3I6IG5ldyB0ZXN0cyBmb3IgRU9TIGhhbmRsaW5nCgkgIDMgbmV3IHRlc3RzOgoJICAxKSBUZXN0cyB0aGF0IGEgc3RyZWFtIHRoYXQgaXMgZW1wdHkgKGp1c3QgYW4gRU9TIGV2ZW50KQoJICBvbiBpbmFjdGl2ZSBwYWQgZG9lc24ndCBnZXQgdGhyb3VnaCBhbmQgdGFtcGVyCgkgIHdpdGggdGhlIGFjdGl2ZSBwYWQgdGhhdCBzdGlsbCBoYXMgZGF0YQoJICAyKSBUZXN0cyB0aGF0IGEgc3RyZWFtIHRoYXQgaXMgc2hvcnRlciB0aGFuIHRoZSBhY3RpdmUgb25lCgkgIChwdXNoZXMgRU9TIGVhcmxpZXIpIGRvZXNuJ3QgaGFzIGl0cyBFT1MgcHVzaGVkCgkgIDMpIFRlc3RzIHRoYXQgc3dpdGNoaW5nIHRvIGFuIGluYWN0aXZlIHN0cmVhbSB0aGF0IGhhcyByZWNlaXZlZAoJICBFT1Mgd2lsbCBtYWtlIGlucHV0LXNlbGVjdG9yIHB1c2ggRU9TCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY1MTgKCjIwMTUtMDMtMTkgMTI6MTE6MTkgKzAwMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkgIHRlc3RzOiBzZWxlY3RvcjogcmVtb3ZlIHdlaXJkIHNlbWljb2xvbnMgYXQgdGhlIGVuZCBvZiB0ZXN0IGZ1bmN0aW9ucwoJICBFdmVuIHRob3VnaCBpdCB3b3JrcywgaXQgaXMgbm90IG5lZWRlZCBhbmQgc2VlbXMgbW9yZSBuYXR1cmFsCgkgIHRvIG5vdCBoYXZlIHNlbWljb2xvbnMgYXQgdGhlIGVuZCBvZiBmdW5jdGlvbiBkZWNsYXJhdGlvbnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjUxOAoKMjAxNC0wNy0xNyAxNjozMzoyOSArMDIwMCAgSmFuIEFsZXhhbmRlciBTdGVmZmVucyAoaGVmdGlnKSA8amFuLnN0ZWZmZW5zQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogUHJvY2VzcyBTRUVLSU5HIHF1ZXJ5CgkgIEFkZCBRVUVSWV9TRUVLSU5HIGhhbmRsaW5nIHRvIHF1ZXVlMiwgc28gUlRNUCBsaXZlIHN0cmVhbXMgYmVjb21lCgkgIHNlZWthYmxlIHdoZW4gYSBxdWV1ZTIgaW4gZG93bmxvYWQgb3IgcmluZ2J1ZmZlciBtb2RlIGlzIGluc2VydGVkOgoJICBydG1wc3JjICEgcXVldWUyICEgZmx2ZGVtdXgKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzM1MQoKMjAxNS0wMy0yMSAxOTozNzozMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJICBjaGVjazogRml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgY29tcGlsZXIgd2FybmluZyB3aXRoIGdjYwoJICBjaGVja19ydW4uYzogSW4gZnVuY3Rpb24gJ3NpZ19oYW5kbGVyJzoKCSAgY2hlY2tfcnVuLmM6MTI3OjEzOiB3YXJuaW5nOiAnY2hpbGRfc2lnJyBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMgZnVuY3Rpb24gWy1XbWF5YmUtdW5pbml0aWFsaXplZF0KCSAga2lsbHBnKGdyb3VwX3BpZCwgY2hpbGRfc2lnKTsKCSAgXgoJICBjaGVja19ydW4uYzoxMzA6MzE6IHdhcm5pbmc6ICdpZHgnIG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbiBbLVdtYXliZS11bmluaXRpYWxpemVkXQoJICBzaWdhY3Rpb24oc2lnX25yLCAmb2xkX2FjdGlvbltpZHhdLCBOVUxMKTsKCSAgXgoKMjAxNS0wMy0yMSAxNToxOTo0MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJICBjaGVjazogQ2F0Y2ggU0lHVEVSTSBhbmQgU0lHSU5UIGluIHRoZSB0ZXN0IHJ1bm5lciBhbmQga2lsbCBhbGwgY3VycmVudGx5IHJ1bm5pbmcgdGVzdHMKCSAgT3RoZXJ3aXNlIGUuZy4gY3RybCtjIGluIHRoZSB0ZXN0IHJ1bm5lciBleGl0cyB0aGUgdGVzdCBydW5uZXIsIHdoaWxlIHRoZSB0ZXN0CgkgIGl0c2VsZiBpcyBzdGlsbCBydW5uaW5nIGluIHRoZSBiYWNrZ3JvdW5kLCB1c2VzIENQVSBhbmQgbWVtb3J5IGFuZCBwb3RlbnRpYWxseQoJICBuZXZlciBleGl0cyAoZS5nLiBpZiB0aGUgdGVzdCByYW4gaW50byBhIGRlYWRsb2NrIG9yIGluZmluaXRlIGxvb3ApLgoJICBUaGUgcmVhc29uIHdoeSB3ZSBoYXZlIHRvIG1hbnVhbGx5IGtpbGwgdGhlIGFjdHVhbCB0ZXN0cyBpcyB0aGF0IGFmdGVyCgkgIGZvcmtpbmcgdGhleSB3aWxsIGJlIG1vdmVkIHRvIHRoZWlyIG93biBwcm9jZXNzIGdyb3VwLCBhbmQgYXMgc3VjaCBhcmUKCSAgbm90IHJlY2VpdmluZyBhbnkgc2lnbmFscyBzZW50IHRvIHRoZSB0ZXN0IHJ1bm5lciBhbnltb3JlLiBUaGlzIGlzIHN1cHBvc2VkCgkgIHRvIGJlIGRvbmUgdG8gbWFrZSBpdCBlYXNpZXIgdG8ga2lsbCBhIHRlc3QsIHdoaWNoIGl0IG9ubHkgcmVhbGx5IGRvZXMgaWYKCSAgdGhlIHRlc3QgaXRzZWxmIGlzIGZvcmtpbmcgb2ZmIG5ldyBwcm9jZXNzZXMuCgkgIFRoaXMgZml4IGlzIG5vdCBjb21wbGV0ZSB0aG91Z2guIFNJR0tJTEwgY2FuJ3QgYmUgY2F1Z2h0IGF0IGFsbCwgYW5kIGVycm9yCgkgIHNpZ25hbHMgbGlrZSBTSUdTRUdWLCBTSUdGUEUgYXJlIGN1cnJlbnRseSBub3QgY2F1Z2h0LiBUaGUgbGF0dGVyIHdpbGwgb25seQoJICBoYXBwZW4gaWYgdGhlcmUgaXMgYSBidWcgaW4gdGhlIHRlc3QgcnVubmVyIGl0c2VsZiwgYW5kIGFzIHN1Y2ggc2VlbSBsZXNzCgkgIGltcG9ydGFudC4KCjIwMTUtMDMtMTkgMTM6NTE6MzggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBEb24ndCBkcm9wIG5vbi1zZXJpYWxpemVkIHF1ZXJpZXMgd2hlbiB0aGUgdmFsdmUgaXMgZHJvcHBpbmcKCSAgT3RoZXJ3aXNlIHdlIGVuZCB1cCBkcm9wcGluZyBlLmcuIENBUFMgcXVlcmllcywgYW5kIHRoZW4gdXBzdHJlYW0ganVzdAoJICBuZWdvdGlhdGVzIHRvIHdoYXRldmVyIGZvcm1hdCBpdCB3YW50cyB0by4gT25jZSB0aGUgdmFsdmUgaXMgbm90LWRyb3BwaW5nCgkgIGFueW1vcmUgdGhpcyBjYW4gZWFzaWx5IHJlc3VsdCBpbiBuZWdvdGlhdGlvbiBmYWlsaW5nIGNvbXBsZXRlbHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY0NDgKCjIwMTUtMDMtMjAgMDk6MDA6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc2VnbWVudDogcmVtb3ZlIHRoZSBib3VuZHMgY2hlY2sgZnJvbSBfdG9fcnVubmluZ190aW1lX2Z1bGwoKQoJICBEbyBub3QgZG8gYW55IGNoZWNrcyBmb3IgdGhlIHN0YXJ0L3N0b3AgaW4gdGhlIG5ldwoJICBnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWVfZnVsbCgpIG1ldGhvZCwgd2UgY2FuIGxldCB0aGlzIGJlIGRvbmUgYnkKCSAgdGhlIG1vcmUgY2FwYWJsZSBnc3Rfc2VnbWVudF9jbGlwKCkgbWV0aG9kLiBUaGlzIGFsbG93cyB1cyB0byByZW1vdmUgdGhlCgkgIGVudW0gb2YgcmVzdWx0cyBhbmQgb25seSByZXR1cm4gdGhlIHNpZ24gb2YgdGhlIGNhbGN1bGF0ZWQgcnVubmluZy10aW1lLgoJICBXZSBuZWVkIHRvIHB1dCB0aGUgb2xkIGNsaXBwaW5nIGNoZWNrcyBpbiB0aGUgb2xkCgkgIGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSgpIHN0aWxsIGJlY2F1c2UgdGhleSB3b3JrIHNsaWdodGx5CgkgIGRpZmZlcmVudGx5IHRoYW4gdGhlIF9jbGlwIG1ldGhvZHMuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwNTc1CgoyMDE1LTAzLTE5IDE3OjM2OjM2ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IGFkZCBvcHRpb24gdG8gZGlzYWJsZSBjbGlwcGluZwoJICBBZGQgYSBjbGlwIGFyZ3VtZW50IHRvIGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZV9mdWxsKCkgdG8gZGlzYWJsZQoJICB0aGUgY2hlY2tzIGFnYWluc3QgdGhlIHNlZ21lbnQgYm91bmRhcmllcy4gVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0bwoJICBnZW5lcmF0ZSBhbiBleHRyYXBvbGF0ZWQgcnVubmluZy10aW1lIGZvciB0aW1lc3RhbXBzIG91dHNpZGUgb2YgdGhlCgkgIHNlZ21lbnQuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwNTc1CgoyMDE1LTAzLTE4IDE2OjI3OjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IHJlZi91bnJlZiBuZXcgZW51bSB0eXBlIGluIGdzdF9pbml0L2RlaW5pdCgpCgoyMDE1LTAzLTE4IDE0OjE2OjQ4ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiB0ZXN0cy9taXNjL3Rlc3QtZ3N0cmVhbWVyLWNvbXBsZXRpb24uc2g6CgkqIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOgoJICB0b29sczogcmVtb3ZlIG91dGRhdGVkIGNvbXBsZXRpb24gc2NyaXB0CgkgICsgUmVtb3ZlIHRoZSBhc3NvY2lhdGVkIHRlc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDg3NyNjMjEKCjIwMTUtMDMtMTggMTE6MzE6NTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHNlZ21lbnQ6IGFkZCBoZWxwZXIgdG8gZ2V0IG5lZ2F0aXZlIHJ1bm5pbmctdGltZQoJICBBZGQgYSBoZWxwZXIgbWV0aG9kIHRvIGdldCBhIHJ1bm5pbmctdGltZSB3aXRoIGEgbGl0dGxlIG1vcmUgZmVhdHVyZXMKCSAgc3VjaCBhcyBkZXRlY3RpbmcgaWYgdGhlIHZhbHVlIHdhcyBiZWZvcmUgb3IgYWZ0ZXIgdGhlIHNlZ21lbnQgYW5kCgkgIG5lZ2F0aXZlIHJ1bm5pbmctdGltZS4KCSAgQVBJOiBnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWVfZnVsbCgpCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDA1NzUKCjIwMTUtMDMtMTggMTA6NTM6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogZml4IG9mZnNldCBoYW5kbGluZyB3aXRoIG5vbiAwIHN0YXJ0CgkgIFRoZSBwb3NpdGlvbiBpbiB0aGUgc2VnbWVudCBpcyByZWxhdGl2ZSB0byB0aGUgc3RhcnQgYnV0IHRoZSBvZmZzZXQKCSAgaXNuJ3QsIHNvIHN1YnRyYWN0IHRoZSBzdGFydCBmcm9tIHRoZSBwb3NpdGlvbiB3aGVuIHNldHRpbmcgdGhlIG9mZnNldC4KCSAgQWRkIHVuaXQgdGVzdCBmb3IgdGhpcyBhcyB3ZWxsLgoKMjAxNS0wMy0xOCAwOTozNjozNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogQWRkIHN1cHBvcnQgZm9yIGJ1ZmZlciBsaXN0cwoKMjAxMy0xMS0yOSAxNjoyODo0MSAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVtb3ZlIGR1cGxpY2F0ZSBjb2RlCgkgIFRoZXNlIGFyZSBhbHJlYWR5IGZyZWVkIGJ5IGdzdF9iYXNlX3BhcnNlX2NsZWFyX3F1ZXVlcygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzk3NjgKCjIwMTUtMDMtMTcgMTU6NDE6MzggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogRml4IGluZGVudGlvbgoKMjAxNS0wMy0xMyAxMTowODoyNSArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlc2V0IHNraXAgb24gc2VnbWVudHMgYW5kIGRpc2NvbnRpbnVpdGllcwoJICBMYXJnZSBzY2FsZSBza2lwIGlzIGFuIG9wdGltaXphdGlvbiwgYW5kIHRodXMgaXQgaXMgc2FmZXIgdG8KCSAgc3RvcCBza2lwcGluZyB0aGFuIHRvIGNvbnRpbnVlLiBDbGVhciBza2lwIG9uIHNlZ21lbnRzIGFuZAoJICBkaXNjb250aW51aXRpZXMsIGFzIHRoZXNlIGFyZSBwb2ludHMgd2hlcmUgaXQgaXMgcG9zc2libGUgdGhhdAoJICB0aGUgb3JpZ2luYWwgaWRlYSBvZiAiYnl0ZXMgdG8gc2tpcCIgY2hhbmdlcy4KCjIwMTUtMDMtMTUgMTQ6MTk6MTcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRG9uJ3QgZ3JvdyBxdWV1ZSBpbmZpbml0ZWx5IGlmIG9ubHkgb25lIHBhZCBpcyBsaW5rZWQKCSAgVGhpcyB3YXMgaW50cm9kdWNlZCBieQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE5ODkzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI4OTEKCSAgYnV0IGl0IGRvZXNuJ3QgbWFrZSBhbnkgc2Vuc2UgYXQgYWxsIGFuZCBjYXVzZXMgaHVnZSBtZW1vcnkgbGVha3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQyNTMKCjIwMTUtMDMtMTQgMjE6MDc6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBoYW5kbGUgZW1wdHkgYnVmZmVyIGxpc3QgbW9yZSBncmFjZWZ1bGx5CgkgIERvbid0IGFib3J0LCBqdXN0IGlnbm9yZSBpdC4gSXQncyBsaWtlIGEgYnVmZmVyCgkgIHdpdGhvdXQgbWVtb3JpZXMuCgoyMDE1LTAzLTE0IDE3OjM5OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IG1pbm9yIG9wdGltaXNhdGlvbiBmb3IgZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXJfbGlzdCgpCgkgIFRyeSB0byBhbGxvY2F0ZSBidWZmZXIgbGlzdCB3aXRoIGEgc3VpdGFibGUgc2l6ZSBmcm9tIHRoZQoJICBiZWdpbm5pbmcgdG8gYXZvaWQgaGF2aW5nIHRvIHJlLWFsbG9jIHRoZSBidWZmZXIgbGlzdCBhcnJheS4KCjIwMTUtMDMtMTQgMTc6MjM6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgdGVzdHM6IGFkZCB1bml0IHRlc3QgZm9yIGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyX2xpc3QoKQoKMjAxNS0wMy0xNCAxNzoyMDozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBhZGFwdGVyOiBhZGQgZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXJfbGlzdCgpCgkgIEFQSTogZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXJfbGlzdCgpCgoyMDE1LTAzLTE0IDE2OjA1OjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSAgQWRkIG5ldyBzdHJlYW1pZGRlbXV4IGJpbmFyaWVzIHRvIC5naXRpZ25vcmUKCjIwMTUtMDMtMTQgMTY6MDA6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBhdm9pZCBtdWx0aXBsZSBjYWxscyB0byBnc3RfYnVmZmVyX2dldF9zaXplKCkgaW4gbWFjcm8KCjIwMTUtMDMtMTQgMTU6NTg6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogYXZvaWQgbXVsdGlwbGUgY2FsbHMgdG8gZ3N0X2J1ZmZlcl9nZXRfc2l6ZSgpIGluIG1hY3JvCgoyMDE1LTAzLTEzIDE4OjIyOjAxICswMDAwICBSYW1pcm8gUG9sbGEgPHJhbWlyby5wb2xsYUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBwcm9wZXJseSBlc2NhcGUgcGVyY2VudCBzaWduIGluIGRvY3VtZW50YXRpb24KCjIwMTUtMDMtMTQgMTM6Mzc6MDkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogVXNlIHRoZSBjb3JyZWN0IGVudW0gdHlwZSB0byBmaXggYSBjb21waWxlciB3YXJuaW5nCgkgIGdzdGJ1ZmZlci5jOjUyMjo1ODogZXJyb3I6IGltcGxpY2l0IGNvbnZlcnNpb24gZnJvbSBlbnVtZXJhdGlvbiB0eXBlICdHc3RCdWZmZXJGbGFncycgdG8KCSAgZGlmZmVyZW50IGVudW1lcmF0aW9uIHR5cGUgJ0dzdEJ1ZmZlckNvcHlGbGFncycgWy1XZXJyb3IsLVdlbnVtLWNvbnZlcnNpb25dCgkgIGlmICghZ3N0X2J1ZmZlcl9jb3B5X2ludG8gKGNvcHksIChHc3RCdWZmZXIgKikgYnVmZmVyLCBmbGFncywgMCwgLTEpKQoJICB+fn5+fn5+fn5+fn5+fn5+fn5+fiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+CgkgIGdzdGJ1ZmZlci5jOjUzNDo0NjogZXJyb3I6IGltcGxpY2l0IGNvbnZlcnNpb24gZnJvbSBlbnVtZXJhdGlvbiB0eXBlICdHc3RCdWZmZXJDb3B5RmxhZ3MnIHRvCgkgIGRpZmZlcmVudCBlbnVtZXJhdGlvbiB0eXBlICdHc3RCdWZmZXJGbGFncycgWy1XZXJyb3IsLVdlbnVtLWNvbnZlcnNpb25dCgkgIHJldHVybiBnc3RfYnVmZmVyX2NvcHlfd2l0aF9mbGFncyAoYnVmZmVyLCBHU1RfQlVGRkVSX0NPUFlfQUxMKTsKCSAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4gICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fgoJICAuL2dzdGJ1ZmZlci5oOjQzMzozMTogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnR1NUX0JVRkZFUl9DT1BZX0FMTCcKCSAgLi4uKChHc3RCdWZmZXJDb3B5RmxhZ3MpKEdTVF9CVUZGRVJfQ09QWV9NRVRBREFUQSB8IEdTVF9CVUZGRVJfQ09QWV9NRU1PUlkpKQoJICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoKMjAxNS0wMy0xNCAxNDowNjowOSArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRlZjoKCSAgZGVmczogdXBkYXRlIGRlZnMKCjIwMTQtMTAtMzAgMTU6Mzk6MjEgKzAwMDAgIFdpbGxpYW0gTWFubGV5IDx3aWxsQHdpbGxpYW1tYW5sZXkubmV0PgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y29udHJvbG1lc3NhZ2VtZXRhLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjb250cm9sbWVzc2FnZW1ldGEuaDoKCSAgbWV0YTogQWRkIGBHc3ROZXRDb250cm9sTWVzc2FnZU1ldGFgCgkgIEdzdE5ldEFkZHJlc3MgY2FuIGJlIHVzZWQgdG8gc3RvcmUgYW5jaWxsYXJ5IGRhdGEgd2hpY2ggd2FzIHJlY2VpdmVkIHdpdGgKCSAgb3IgaXMgdG8gYmUgc2VudCBhbG9uZ3NpZGUgdGhlIGJ1ZmZlciBkYXRhLiAgV2hlbiB1c2VkIHdpdGggc29ja2V0IHNpbmtzCgkgIGFuZCBzb3VyY2VzIHdoaWNoIHVuZGVyc3RhbmQgdGhpcyBtZXRhIGl0IGFsbG93cyBzZW5kaW5nIGFuZCByZWNlaXZpbmcKCSAgYW5jaWxsYXJ5IGRhdGEgc3VjaCBhcyB1bml4IGNyZWRlbnRpYWxzIChTZWUgYEdVbml4Q3JlZGVudGlhbHNNZXNzYWdlYCkKCSAgYW5kIFVuaXggZmlsZSBkZXNjcmlwdGlvbnMgKFNlZSBgR1VuaXhGRE1lc3NhZ2VgKS4KCSAgVGhpcyB3aWxsIGJlIHVzZWZ1bCBmb3IgaW1wbGVtZW50aW5nIHByb3RvY29scyB3aGljaCB1c2UgZmlsZS1kZXNjcmlwdG9yCgkgIHBhc3NpbmcgaW4gcGF5bG9hZGVycy9kZXBheWxvYWRlcnMgd2l0aG91dCBoYXZpbmcgdG8gcmUtaW1wbGVtZW50IGFsbCB0aGUKCSAgc29ja2V0IGhhbmRsaW5nIGNvZGUgYWxyZWFkeSBwcmVzZW50IGluIGVsZW1lbnRzIHN1Y2ggYXMgbXVsdGlzb2NrZXRzaW5rLAoJICBldGMuICBUaGlzLCBpbiB0dXJuLCB3aWxsIGJlIHVzZWZ1bCBmb3IgaW1wbGVtZW50aW5nIHplcm8tY29weSB2aWRlbyBJUEMuCgkgIFRoaXMgbWV0YSB1c2VzIHRoZSBwbGF0Zm9ybSBpbmRlcGVuZGVudCBgR1NvY2tldENvbnRyb2xNZXNzYWdlYCBBUEkKCSAgcHJvdmlkZWQgYnkgR0xpYiBhcyBhIHBhcnQgb2YgR0lPLiAgQXMgYSByZXN1bHQgdGhpcyBuZXcgbWV0YSBkb2VzIG5vdAoJICByZXF1aXJlIGFueSBuZXcgZGVwZW5kZW5jaWVzIG9yIGFueSBjb25kaXRpb25hbCBjb21wbGlhdGlvbiBmb3IKCSAgcG9ydGFibGlsaXR5LCBhbHRob3VnaCBpdCBpcyB1bmxpa2VseSB0byBkbyBhbnl0aGluZyB1c2VmdWwgb24gbm9uLVVOSVgKCSAgcGxhdGZvcm1zLgoKMjAxNS0wMy0xNCAxMTo1NzozMyArMDAwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIGFsbG9jYXRpb246IEFsbG93IGFsbG9jYXRpb24gcG9vbCB3aXRob3V0IHNpemUKCSAgVGhpcyBhbGxvdyBwcm9wb3NpbmcgYSBudW1iZXIgb2YgYnVmZmVycyByZXF1aXJlZCBldmVuIGlmIHRoZSBzaXplCgkgIG9mIGJ1ZmZlciBpcyB1bmZpeGVkLiBUaGlzIGlzIG9mdGVuIHRoZSBjYXNlIGZvciBlbmNvZGVkIGZvcm1hdHMuCgoyMDE1LTAzLTAxIDEzOjE1OjQwIC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IERvbid0IHN0b3AgdGhlIHBvb2wgaW4gc2V0X2NvbmZpZygpCgkgIERvbid0IHN0b3AgdGhlIHBvb2wgaW4gc2V0X2NvbmZpZygpLiBJbnN0ZWFkLCBsZXQgdGhlIGNvbnRyb2xsaW5nCgkgIGVsZW1lbnQgbWFuYWdlIGl0LiBNb3N0IG9mIHRoZSB0aW1lLCB3aGVuIGFuIGFjdGl2ZSBwb29sIGlzIGJlaW5nCgkgIGNvbmZpZ3VyZWQgaXMgYmVjYXVzZSB0aGUgY2FwcyBkaWRuJ3QgY2hhbmdlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1Mzc3CgoyMDE1LTAzLTEzIDE4OjUzOjExICswMDAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBkcmFpbiBvbiBhbGxvY2F0aW9uIHF1ZXJ5CgkgIEFsbG93cyBidWZmZXJzIHRvIGJlIHJlY2xhaW1lZCB3aGVuIGNhcHMgaXMgdG8gYmUgcmVuZWdvdGlhdGVkIHNvCgkgIHRoYXQgYnVmZmVycG9vbHMgY2FuIGJlIHN0b3BwZWQuIEFzIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5IGlzCgkgIHNlcmlhbGl6ZWQgYWxsIGJ1ZmZlcnMgaGF2ZSBiZWVuIGFscmVhZHkgZHJhaW5lZCBmcm9tIHRoZSBwaXBlbGluZSwKCSAgZXhjZXB0IHRoaXMgbGFzdF9zYW1wbGUgb25lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgyNzcwCgoyMDE1LTAzLTEzIDE4OjM1OjE0ICswMDAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB3aGVuIGRyYWluaW5nLCBkZWVwIGNvcHkgdGhlIGxhc3QgYnVmZmVyIHRvIHVucmVmIG9sZCBtZW1vcnkKCSAgVXNlIGdzdF9idWZmZXJfY29weV9kZWVwKCkgdG8gZm9yY2UgdGhlIGNvcHkgb2YgdGhlIHVuZGVybHlpbmcKCSAgbWVtb3J5IGluc3RlYWQgb2YgcG9zc2libHkgZG9pbmcgYSBzaGFsbG93IGNvcHkgb2YgdGhlIGJ1ZmZlcgoJICBhbmQganVzdCByZWZlcmVuY2luZyB0aGUgbWVtb3J5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUyODcKCjIwMTUtMDMtMTMgMTg6MzU6MDEgKzAwMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RidWZmZXI6IGFkZCBnc3RfYnVmZmVyX2NvcHlfZGVlcAoJICBBIHZhcmlhbnQgb2YgZ3N0X2J1ZmZlcl9jb3B5IHRoYXQgZm9yY2VzIHRoZSB1bmRlcmx5aW5nIG1lbW9yeQoJICB0byBiZSBjb3BpZWQuCgkgIFRoaXMgaXMgYWRkZWQgdG8gYXZvaWQgYWRkaW5nIGFuIGV4dHJhIHJlZmVyZW5jZSB0byBhIEdzdE1lbW9yeQoJICB0aGF0IG1pZ2h0IGJlbG9uZyB0byBhIGJ1ZmZlcnBvb2wgdGhhdCBpcyB0cnlpbmcgdG8gYmUgZHJhaW5lZC4KCSAgVGhlIHVzZSBjYXNlIGlzIHdoZW4gdGhlIGJ1ZmZlciBjb3B5aW5nIGlzIGRvbmUgdG8gcmVsZWFzZSB0aGUKCSAgb2xkIGJ1ZmZlciBhbmQgYWxsIGl0cyByZXNvdXJjZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUyODcKCjIwMTUtMDMtMTMgMTU6MzE6MzAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogVXNlIGdfbGlzdF9mcmVlX2Z1bGwoKSBpbnN0ZWFkIG9mIG1hbnVhbGx5IHVucmVmZmluZyBhbmQgZnJlZWluZwoJICBBbHNvIHVucmVmIHRoZSBtZXNzYWdlcywgbm90IHRoZSBHTGlzdCBub2Rlcy4KCjIwMTUtMDMtMTMgMTM6NDI6NDYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogRml4IGFub3RoZXIgY2FzZSB3aGVyZSB3ZSBob2xkIHRoZSBvYmplY3QgbG9jayB3aGlsZSB1bnJlZmZpbmcgYSBtZXNzYWdlCgoyMDE1LTAzLTEzIDE1OjI4OjQyICswMjAwICBWaXZpYSBOaWtvbGFpZG91IDx2aXZpYUBhaGlydS5ldT4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBVbnJlZmVyZW5jaW5nIG1lc3NhZ2VzIG91dHNpZGUgdGhlIGxvY2sKCSAgU2hvdWxkbid0IHRha2UgdGhlIGxvY2sgd2hpbGUgdW5yZWZlcmVuY2luZyBtZXNzYWdlcywgYmVjYXVzZSB0aGF0IG1heSBjYXVzZQoJICBtb3JlIG1lc3NhZ2VzIHRvIGJlIHNlbnQsIHdoaWNoIHdpbGwgdHJ5IHRvIHRha2UgdGhlIGxvY2sgYW5kIGNhdXNlIHRoZSBhcHAgdG8KCSAgaGFuZy4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyODc3NwoKMjAxNS0wMi0yMyAyMDoyNzozMiArMDIwMCAgVml2aWEgTmlrb2xhaWRvdSA8dml2aWFAYWhpcnUuZXU+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1dGlsczogQWRkIGdzdF9iaW5fc3luY19jaGlsZHJlbl9zdGF0ZXMoKQoJICBnc3RfYmluX3N5bmNfY2hpbGRyZW5fc3RhdGVzKCkgd2lsbCBpdGVyYXRlIG92ZXIgYWxsIHRoZSBlbGVtZW50cyBvZiBhIGJpbiBhbmQKCSAgc3luYyB0aGVpciBzdGF0ZXMgd2l0aCB0aGUgc3RhdGUgb2YgdGhlIGJpbi4gVGhpcyBpcyB1c2VmdWwgd2hlbiBhZGRpbmcgbWFueQoJICBlbGVtZW50cyB0byBhIGJpbiBhbmQgd291bGQgb3RoZXJ3aXNlIGhhdmUgdG8gY2FsbAoJICBnc3RfZWxlbWVudF9zeW5jX3N0YXRlX3dpdGhfcGFyZW50KCkgb24gZWFjaCBhbmQgZXZlcnkgb25lIG9mIHRoZW0uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUwNDIKCjIwMTUtMDItMDMgMTY6MTI6MzIgKzAxMDAgIEF1csOpbGllbiBaYW5lbGxpIDxhdXJlbGllbi56YW5lbGxpQHBhcnJvdC5jb20+CgoJKiBnc3QvcHJpbnRmL3Zhc25wcmludGYuYzoKCSAgcHJpbnRmOiBoYW5kbGUgdW5zaWduZWQgbW9kaWZpZXIgZm9yIGxvbmcgbG9uZwoJICBPdGhlcndpc2UsIGFuIHVuc2lnbmVkIGludGVnZXIgd2lsbCBiZSBkaXNwbGF5ZWQgYXMgYSBzaWduZWQgb25lIGlmIHdlCgkgIHVzZSBpbnRlcm5hbCBwcmludCwgaWUgSEFWRV9MT05HX0xPTkdfRk9STUFUIGlzIG5vdCBkZWZpbmVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2MDk2CgoyMDE1LTAzLTEyIDE0OjM5OjM3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzdHJlYW1pZGRlbXV4LmM6CgkgIHN0cmVhbWlkZGVtdXg6IFJlc2V0IHBhZCBjb3VudGVyIGFmdGVyIHJlbW92aW5nIGFsbCBwYWRzCgoyMDE0LTAzLTA0IDE5OjQwOjA1ICswOTAwICBIb29uSGVlIExlZSA8aG9vbmhlZS5sZWVAbGdlLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHN0cmVhbWlkZGVtdXguYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzdHJlYW1pZGRlbXV4Lmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zdHJlYW1pZGRlbXV4LmM6CgkqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1pZGRlbXV4L01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1pZGRlbXV4L3N0cmVhbWlkZGVtdXgtc3RyZWFtLmM6CgkgIHN0cmVhbWlkZGVtdXg6IEFkZCBzdHJlYW1pZGRlbXV4IGVsZW1lbnQKCSAgRGVtdWx0aXBsZXggYSBzdHJlYW0gdG8gbXVsdGlwbGUgc291cmNlIHBhZHMgYmFzZWQgb24gdGhlIHN0cmVhbSBpZHMgZnJvbSB0aGUKCSAgc3RyZWFtLXN0YXJ0IGV2ZW50cy4gVGhpcyBiYXNpY2FsbHkgcmV2ZXJzZXMgdGhlIGJlaGF2aW91ciBvZiBmdW5uZWwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDc2MDUKCjIwMTUtMDMtMTIgMTM6Mjk6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgd2luMzI6IHVwZGF0ZQoKMjAxNS0wMy0xMiAxMzoyNjo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByaW50Zi5jOgoJICB0ZXN0czogYWRkIHNvbWUgYmFzaWMgdW5pdCB0ZXN0cyBmb3Igb3VyIHByaW50ZiBzdHVmZgoJICBUbyB0ZXN0IG5ldyAlSTMyIHN1cHBvcnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQyODEKCjIwMTUtMDItMTAgMTc6NDA6NDggKzAxMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1wYXJzZS5jOgoJICBwcmludGY6IGFkZCBzdXBwb3J0IGZvciAlSTMyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQyODEKCjIwMTUtMDMtMTIgMTM6MTQ6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBtb3ZlIGNhdGVnb3J5IGxldmVsIHRocmVzaG9sZCBjaGVjayBpbnRvIGxvZyBmdW5jdGlvbiBkaXNwYXRjaGVyCgkgIE1pbm9yIG9wdGltaXNhdGlvbjogY2hlY2sgY2F0ZWdvcnkgbG9nIGxldmVsIGVhcmxpZXIgaW4gdGhlCgkgIGxvZyBmdW5jdGlvbiBkaXNwYXRjaGVyIGFuZCBub3Qgb25seSBpbiB0aGUgZGVmYXVsdCBsb2cKCSAgZnVuY3Rpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUyMTMKCjIwMTUtMDMtMTIgMTI6NTk6NTcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogUmVzZXQgc2VnbWVudCB3aGVuIGRlYWN0aXZhdGluZyBwdWxsIG1vZGUgb3Igbm90IHJ1bm5pbmcgaW4gcHVsbCBtb2RlCgkgIFdlIHVzZSB0aGUgc2VnbWVudCBmb3JtYXQgdG8gZGV0ZWN0IGlmIHdlIHJ1biB0aGUgc3RyZWFtaW5nIHRocmVhZCBvciBub3QuCgkgIFdpdGhvdXQgcmVzZXR0aW5nIHdlIG1pZ2h0IGJlbGlldmUgd2UgZG8gc28sIGFsdGhvdWdoIHdlIG9ubHkgZGlkIGluIHRoZSBwYXN0CgkgIGFuZCBhcmUgbm93IHJ1bm5pbmcgaW4gZS5nLiBwdXNoIG1vZGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUwNzMKCjIwMTUtMDMtMDggMjA6NDI6MzggKzAxMDAgIE1pY2hhxYIgRMSZYnNraSA8ZGVic2tpLm1pLnpkQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5jOgoJKiBtNC9jaGVjay1jaGVja3MubTQ6CgkgIGNoZWNrOiBVc2UgbWtzdGVtcCBpbnN0ZWFkIG9mIHRlbXBuYW0gaWYgcG9zc2libGUKCSAgVXNpbmcgdGVtcG5hbSgpIGlzIGRlcHJlY2F0ZWQsIHRoaXMgZ2l2ZXMgd2FybmluZyBhbmQgZmFpbHMgdGhlIGJ1aWxkCgkgIHdpdGggLVdlcnJvci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTg1OAoKMjAxNS0wMy0xMSAxNjozNjoyOSArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBjbGVhbiB1cCB0aGUgbmVlZF9wcmVyb2xsIHZhcmlhYmxlCgkgIEJhc2VkIG9uIHBhdGNoIGZyb20gU29uZyBCaW5nIDxiMDY0OThAZnJlZXNjYWxlLmNvbT4KCSAgRG9uJ3QganVzdCBzZXQgdGhlIG5lZWRfcHJlcm9sbCBmbGFnIHRvIFRSVUUgaW4gYWxsIGNhc2VzLiBXaGVuIHdlCgkgIGFyZSBhbHJlYWR5IHByZXJvbGxlZCBpdCBuZWVkcyB0byBiZSBzZXQgdG8gRkFMU0UgYW5kIHdoZW4gd2UgZ28gdG8KCSAgUkVBRFkgd2Ugc2hvdWxkIG5vdCB0b3VjaCBpdC4gV2Ugc2hvdWxkIG9ubHkgc2V0IGl0IHRvIFRSVUUgaW4gb3RoZXIKCSAgY2FzZXMsIGxpa2Ugd2hhdCB0aGUgY29kZSBhYm92ZSBkb2VzLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjY1NQoKMjAxNC0xMi0wNSAxNDoxNjo1MiArMDkwMCAgaG9vbmhlZS5sZWUgPGhvb25oZWUubGVlQGxnZS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSAgZnVubmVsOiBoYW5kbGUgR0FQIGV2ZW50IHRvIGZvcndhcmRzIHN0aWNreSBldmVudHMgaW50byBkb3duc3RyZWFtCgkgIElmIG5vIGRhdGEgaXMgY29taW5nIGFuZCBmdW5uZWwgcmVjZWl2ZSBHQVAgZXZlbnQsIG5lZWQgdG8gZm9yd2FyZHMgc3RpY2t5IGV2ZW50cwoJICBpbnRvIGRvd25zdHJlYW0gaWYgaXQgbmVlZHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzgyMDIKCjIwMTUtMDMtMTAgMTY6NDI6NDQgKzAwMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYzoKCSAgY2hlY2s6IGR1cGxpY2F0ZSBjb2RlIGJyYW5jaGVzCgkgIENJRCAjMTIyNjQ0NgoKMjAxNS0wMy0xMCAwOToyMToyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9xdWV1ZS1lcnJvci5jOgoJICBGaXggZG91YmxlIHNlbWljb2xvbnMKCjIwMTUtMDItMjIgMTA6MTI6MDEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSBleHBvcnRzCgoyMDE1LTAyLTIxIDIwOjEzOjA0ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5oOgoJICBmbG93Y29tYmluZXI6IGFkZCBhIGdzdF9mbG93X2NvbWJpbmVyX3VwZGF0ZV9wYWRfZmxvdygpIG1ldGhvZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0NTcyCgkgIEFQSTogZ3N0X2Zsb3dfY29tYmluZXJfdXBkYXRlX3BhZF9mbG93KCkKCjIwMTUtMDItMTUgMjA6NTI6MTAgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmg6CgkgIGZsb3djb21iaW5lcjogYWRkIGEgZ3N0X2Zsb3dfY29tYmluZXJfcmVzZXQoKSBtZXRob2QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDU3MgoJICBBUEk6IGdzdF9mbG93X2NvbWJpbmVyX3Jlc2V0KCkKCjIwMTUtMDMtMDYgMTA6NTk6NTggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogRml4IHR5cG8gaW4gZGVidWcgbWVzc2FnZQoKMjAxNS0wMy0wNSAxODozMDo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGF2b2lkIG1hbGxvYy9mcmVlIGlmIGxvZyBvYmplY3QgaXMgTlVMTAoKMjAxNS0wMy0wNSAxNzo1NDowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IG1vdmUgX19GSUxFX18gcGF0aCBzaG9ydGVuaW5nIGludG8gZGVmYXVsdCBsb2cgaGFuZGxlcgoJICBJbnN0ZWFkIG9mIGFsd2F5cyBzaG9ydGVuaW5nIHRoZSBfX0ZJTEVfXyBwYXRoLCBldmVuIGlmIHRoZQoJICBsb2cgbWVzc2FnZSBpcyBub3QgYWN0dWFsbHkgcHJpbnRlZCwgd2hpY2ggbWlnaHQgaGFwcGVuIGlmCgkgIHRoZSBsb2cgbGV2ZWwgaXMgYWN0aXZhdGVkIGJ1dCB0aGUgY2F0ZWdvcnkgaXMgbm90LCBvbmx5CgkgIHNob3J0ZW4gdGhlIHBhdGggaWYgd2UncmUgYWN0dWFsbHkgZ29pbmcgdG8gb3V0cHV0IGl0IGFuZAoJICBpZiBpdCBsb29rcyBsaWtlIGl0IG5lZWRzIHNob3J0ZW5pbmcuIExvZyBoYW5kbGVycyBoYWQgbm8KCSAgZ3VhcmFudGVlIHRoYXQgdGhleSB3b3VsZCBnZXQgYSBuYW1lIGluc3RlYWQgb2YgYSBwYXRoCgkgIGFueXdheSBvbiBhbnkgYXJjaGl0ZWN0dXJlLCBzbyBpdCBzaG91bGRuJ3QgYmUgYSBwcm9ibGVtLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1MjEzCgoyMDE1LTAyLTI3IDAxOjE2OjU4ICsxMTAwICBQZXRlciBVcmJhbmVjIDxnaXQudXNlckB1cmJhbmVjLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHNob3J0ZW4gX19GSUxFX18gb24gYWxsIHBsYXRmb3JtcwoJICBUaGlzIGlzIHVzZWZ1bCBub3Qgb25seSBmb3IgTVNWQywgYnV0IGFsc28gd2l0aCBnY2MvTGludXgKCSAgd2hlbiBkb2luZyBjcm9zcy1jb21waWxhdGlvbiBidWlsZHMgYW5kIG91dC1vZi10cmVlIGJ1aWxkcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTIxMwoKMjAxNS0wMy0wNCAxMTowMjo0MSArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWxhdGVuY3kudHh0OgoJICBkb2NzOiBjbGFyaWZ5IG1pbi1sYXRlbmN5IHdvcmRpbmcgaW4gcGFydC1sYXRlbmN5LnR4dAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0MzM4CgoyMDE1LTAyLTI2IDE0OjQzOjI1ICswMTAwICBNYXJjaW4gS29sbnkgPG1hcmNpbi5rb2xueUBmbHl0cm9uaWMucGw+CgoJKiB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6CgkgIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDogcmVtb3ZlZCBsaWJ4bWwgaW5jbHVkZSBkaXJlY3RpdmUKCSAgVGhpcyBpcyBhIGxlZnRvdmVyIGZyb20gMC4xMCBhbmQgbm90IG5lZWRlZCBhbnltb3JlLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1MjEwCgoyMDE1LTAzLTAzIDEyOjUzOjEzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBTaWduYWwgdGhlIHNpbmtwYWQgdGhyZWFkIGlmIGEgZmxvdyBlcnJvciBoYXBwZW5lZAoJICBJdCBtaWdodCBzdGlsbCBiZSB3YWl0aW5nIGZvciBhIHF1ZXJ5IHRvIGJlIGhhbmRsZWQsIG9yIHRoZSBxdWV1ZSB0byBiZWNvbWUKCSAgZW1wdHkgYWdhaW4gZm9yIHRoZSBuZXh0IGl0ZW0uIEFsc28gaWYgZG93bnN0cmVhbSByZXR1cm5zIEZMVVNISU5HLCBmbHVzaCB0aGUKCSAgcXVldWUgbGlrZSB3ZSBkbyBpbiBxdWV1ZSBhbmQgbXVsdGlxdWV1ZS4KCjIwMTUtMDMtMDMgMTI6NDg6MzQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBXYWtlIHVwIHRoZSBxdWVyeSBmdW5jdGlvbiBvbiBlcnJvcnMgZnJvbSB0aGUgbG9vcCBmdW5jdGlvbgoJICBPdGhlcndpc2Ugd2UgbWlnaHQgd2FpdCBmb3JldmVyIGZvciBzZXJpYWxpemVkIHF1ZXJpZXMgdG8gYmUgaGFuZGxlZCBhcyB0aGUKCSAgbG9vcCBmdW5jdGlvbiBpcyBzdG9wcGVkIGFuZCBhcyBzdWNoIHdlIHdpbGwgbmV2ZXIgZXZlciBkZXF1ZXVlIHRoZSBxdWVyeSBhbmQKCSAgaGFuZGxlIGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1MzE5CgoyMDE1LTAzLTAyIDIwOjMxOjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBpbXByb3ZlIHdhcm5pbmcgd2hlbiBsaW5raW5nICBlbGVtZW50cyB3aXRob3V0IGNvbW1vbiBhbmNlc3RvcgoJICBUaGlzIGNvbWVzIHVwIHF1aXRlIGEgbG90IGFuZCBpdCdzIGEgY29tbW9uIG1pc3Rha2UsIHNvIGxldCdzCgkgIHRyeSB0byBpbXByb3ZlIHRoZSB3YXJuaW5nIG1lc3NhZ2UgYSBsaXR0bGUuCgoyMDE1LTAyLTI3IDAwOjMzOjI3ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxnaXRAYXJ1bnJhZ2hhdmFuLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3RvcjogRHJvcCBjdXN0b20gbGF0ZW5jeSBxdWVyeSBoYW5kbGluZwoJICBUaGUgZGVmYXVsdCBsYXRlbmN5IHF1ZXJ5IGhhbmRsZXIgbm93IGltcGxlbWVudHMgdGhpcyBsb2dpYwoKMjAxNS0wMi0yNiAxNTo1NzoyMCArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bnNpbnN0YWxsZWQ6IEFkZCBnZXMtbGF1bmNoIG1hbnVhbHMgcGF0aCB0byBNQU5QQVRILgoKMjAxNS0wMi0yNiAxMzowODo0OCArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRG9uJ3QgZmFpbCBsYXRlbmN5IHF1ZXJ5IG9uIHVubGlua2VkIHBhZHMKCSAgQSBzaW5nbGUgdW5saW5rZWQgcGFkIGNhbiBtYWtlIHRoZSBsYXRlbmN5IHF1ZXJ5IGZhaWwgYWNyb3NzIHRoZQoJICBwaXBlbGluZSwgd2hpY2ggaXMgcHJvYmFibHkgbm90IGRlc2lyYWJsZS4gSW5zdGVhZCwgd2UgcmV0dXJuIGEgZGVmYXVsdAoJICBhbnl0aGluZyBnb2VzIHZhbHVlLgoJICBQZXJoYXBzIHdlIHNob3VsZCBhbHNvIGJlIGVtaXR0aW5nIGEgZ3N0X21lc3NhZ2VfbmV3X2xhdGVuY3koKSB3aGVuIGEKCSAgUExBWUlORyBlbGVtZW50IGhhcyBvbmUgb2YgaXRzIHBhZHMgbGlua2VkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1MTk3CgoyMDE0LTEwLTIyIDE2OjQzOjQzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBEb24ndCBlbWl0IGVycm9ycyBvbiBFT1MgaWYgd2Ugc2F3IEdBUCBldmVudHMKCSAgSWYgd2Ugc2F3IEdBUCBldmVudHMgKG1lYW5pbmcgdGhlIHN0cmVhbXMgaXMgYWR2YW5jaW5nKSBiZWZvcmUgd2UgZ2V0CgkgIEVPUywgd2Ugc2hvdWxkIG5vdCBwb3N0IGFuIEVSUk9SLCBzaW5jZSBpdCBpcyBub3QgZmF0YWwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUxNDMKCjIwMTUtMDItMjUgMDg6MjY6MTkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSAgZ3N0dmFsdWU6IE1ha2Ugc3VyZSBHU1RfRk9VUkNDX0FSR1MgcHJvZHVjZXMgcHJpbnRhYmxlIGNoYXJhY3RlcnMKCSAgU29tZSBzeXN0ZW1zIHdpbGwgY3Jhc2ggaWYgd2UgdXNlIG5vbi1wcmludGFibGUgY2hhcmFjdGVycyBpbiBwcmludC9kZWJ1ZwoJICBzdGF0ZW1lbnRzLgoJICBNYWtlIHN1cmUgdGhhdCBHU1RfRk9VUkNDX0FSR1MgbmV2ZXIgZG9lcyB0aGF0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUxNDQKCjIwMTUtMDItMjUgMTY6MTE6MDYgKzAwMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0dXRpbHM6IHJlbW92ZSBpbmNvcnJlY3QgRml4bWUgY29tbWVudAoJICBJZiB0aGUgY2hlY2tzIHdlcmUgY2hhbmdlZCB0byB1c2luZyBnX3JldHVybl9pZl9mYWlsKCkgdGhlIEdTVF9ERUJVRyBsaW5lcwoJICBhYm91dCB0aGUgc3BlY2lmaWMgZmFpbHVyZSB3b3VsZCBiZSBsb3N0LgoKMjAxNS0wMi0yNSAxNjowMjozOSArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3R1dGlsczogcmVtb3ZlIG9ic29sZXRlIEZpeG1lIGNvbW1lbnQKCSAgZ3N0X3BhZF9saW5rX2ZpbHRlcmVkKCkgaXMgdmVyeSBsb25nIGdvbmUgYW5kIGN1cnJlbnQKCSAgZ3N0X2VsZW1lbnRfbGlua19wYWRzX2ZpbHRlcmVkKCkgZG9lc24ndCBhcHBseSB0byB0aGlzIEZpeG1lIGNvbW1lbnQuCgoyMDE1LTAyLTI0IDIxOjU4OjAwICswMTAwICBNYXR0aGlldSBCb3Vyb24gPG1hdHRoaWV1LmJvdXJvbkBjb2xsYWJvcmEuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIGFkYXB0aXZlZGVtdXggcGF0aHMgZnJvbSAtYmFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUxMjIKCjIwMTUtMDItMjQgMTg6MTQ6NDcgKzAwMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2ZhcS9kZXZlbG9waW5nLnhtbDoKCSAgZG9jczogcmVtb3ZlIGRlYWQgbGluawoJICBSZW1vdmUgZGVhZCBsaW5rIHRvIHdpa2kgcGFnZSBmb3IgU3VibWl0dGluZ1BhdGNoZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDMxMQoKMjAxNS0wMi0yNCAxNDowNzo1NCArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSAgaGVscGVyczogRml4IGluc3RhbGwgb2YgY29tcGxldGlvbi1oZWxwZXIuCgkgIEJ5IGFwcGx5aW5nIHRoZSBzdXBwbGllZCB0cmFuc2Zvcm1hdGlvbiB0byB0aGUgcHJvZ3JhbSBuYW1lLAoJICBmb3IgZXhhbXBsZSAtLXByb2dyYW0tcHJlZml4LgoKMjAxNS0wMi0yMyAxNjozOTo0MyAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSAgY29tcGxldGlvbi1oZWxwZXI6IEFkZCBtaXNzaW5nIERFU1RESVIKCSAgT3RoZXJ3aXNlIGRvaW5nICJtYWtlIGluc3RhbGwgREVTVERJUiIgd2lsbCB0cnkgdG8gd3JpdGUgdG8KCSAgL3Vzci9zaGFyZS8uLi4KCjIwMTUtMDItMjMgMjE6MTc6MTYgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LWNvbXBsZXRpb24taGVscGVyLmM6CgkgIGNvbXBsZXRpb24taGVscGVyOiBBZGQgZmlsdGVyaW5nIGJ5IGtsYXNzIGFuZCBzaW5rIGNhcHMuCgoyMDE1LTAyLTIxIDE3OjEzOjI2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogYXZvaWQgcmV0dXJuaW5nIGRvd25zdHJlYW0gR1NUX0ZMT1dfRU9TIGZyb20gcHJldmlvdXMgc2VnbWVudCB0byBjdXJyZW50IHVwc3RyZWFtIHNlZ21lbnQKCjIwMTUtMDItMjIgMTA6MDI6MjUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmM6CgkgIGZsb3djb21iaW5lcjogZml4IGRvY3VtZW50YXRpb24gY29tbWVudCB0eXBvCgoyMDE1LTAyLTIyIDEwOjAxOjMzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGRyYWluIHNlZ21lbnQgdXBvbiBTRUdNRU5UX0RPTkUgdG8gZW5zdXJlIHByb3BlciBldmVudCBvcmRlcgoKMjAxNS0wMi0yMiAxMDowMTo1MCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBjbGVhbiB1cCBzb21lIGJvZ3VzIGNvbW1lbnRlZCBjb2RlCgoyMDE1LTAyLTIzIDE5OjEwOjA4ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJICBjb21wbGV0aW9uLWhlbHBlcjogQXBwZW5kICQoRVhFRVhUKSB0byB0aGUgbmFtZSBvZiB0aGUgbW92ZWQgZmlsZS4KCSAgRml4ZXMgdGhlIGJ1aWxkIG9uIFdpbmRvd3MKCSAgKGh0dHBzOi8vY2kuZ3N0cmVhbWVyLm5ldC9qb2IvY2VyYmVyby1jcm9zcy1taW5ndzMyLzE3NDIvY29uc29sZSkKCjIwMTUtMDItMjMgMTc6MjM6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBNYWtlZmlsZS5hbToKCSAgRml4IGRpc3RjaGVjawoJICBEaXNhYmxlIGJhc2ggY29tcGxldGlvbiBkdXJpbmcgZGlzdGNoZWNraW5nIG90aGVyd2lzZQoJICBpdCBtYXkgdHJ5IHRvIGluc3RhbGwgaW50byBhIHN5c3RlbSBwYXRoIGFuZCBmYWlsLgoKMjAxNS0wMi0yMyAxNzoxNjo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIE1ha2VmaWxlLmFtOgoJICBEaXN0IG5ldyBkYXRhIGRpcmVjdG9yeQoJICBGaXhlcyAnbWFrZSBkaXN0JwoKMjAxNS0wMi0yMCAyMjowNDoyMiArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogTWFrZWZpbGUuYW06CgkqIGNvbmZpZ3VyZS5hYzoKCSogZGF0YS9NYWtlZmlsZS5hbToKCSogZGF0YS9jb21wbGV0aW9ucy9nc3QtaW5zcGVjdC0xLjA6CgkqIGRhdGEvY29tcGxldGlvbnMvZ3N0LWxhdW5jaC0xLjA6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvaGVscGVycy9nc3Q6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LWNvbXBsZXRpb24taGVscGVyLmM6CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkgIGJhc2gtY29tcGxldGlvbjogSW1wbGVtZW50IGluIGEgZGlmZmVyZW50IHdheS4KCSAgKyBHZXRzIGluc3RhbGxlZAoJICArIFVzZXMgYSBoZWxwZXIgdG9vbCwgZ3N0LWNvbXBsZXRpb24taGVscGVyLCBpbnN0YWxsZWQgaW4KCSAgYmFzaC1jb21wbGV0aW9ucy9oZWxwZXJzLgoJICArIEFkZHMgYSBjb21tb24gc2NyaXB0IHRoYXQgb3RoZXIgdG9vbHMgY2FuIHNvdXJjZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDg3NwoKMjAxNS0wMi0yMyAxMjowODo0OSArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJICBHc3REZXZpY2VNb25pdG9yOiBrZWVwIGFscGhhYmV0aWNhbCBvcmRlcgoKMjAxNS0wMi0yMCAxNjoyMjoyMyAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkgIFJldmVydCAiZWxlbWVudDogc2V0IHBhZHMgbmVlZC1wYXJlbnQgZmxhZyB0byBmYWxzZSB3aGVuIHJlbW92aW5nIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDE5MTE1NTRjZmYyYzRhMTE3NzJiNTQxYTgyMTVhODBjNzI4YjEwOTcuCgkgIFRoaXMgYnJlYWtzIHRoZSBmdW5jdGlvbmFsaXR5IG9mIEdTVF9QQURfRkxBR19ORUVEX1BBUkVOVCwgdGhlIHJlYXNvbiBmb3IgdGhpcwoJICBmbGFnIGlzIHRoYXQgaWYgYSBwYWQgaXMgcmVtb3ZlZCBmcm9tIGEgcnVubmluZyBlbGVtZW50LCB5b3UgZG9uJ3Qgd2FudAoJICBmdW5jdGlvbnMgKHN1Y2ggYXMgY2hhaW4gb3IgZXZlbnQpIHRvIGJlIGNhbGxlZCBvbiB0aGUgcGFkIHdpdGhvdXQgYSBwYXJlbnQgc2V0LgoJICBUaGlzIGNhbiBoYXBwZW4gaWYgeW91IHJlbW92ZSBhIHJlcXVlc3Qgb3Igc29tZXRpbWVzIHBhZCBmcm9tIGEgcnVubmluZyBlbGVtZW50LgoJICBJIGRvbid0IHNlZSB0aGUgY29kZSB0aGF0IGNhdXNlZCB0aGlzIGluIHRzZGVtdXgsIGJ1dCBpZiBpdCBuZWVkcyB0byB1bnNldAoJICB0aGUgZmxhZyBvbiByZW1vdmUsIGl0IHNob3VsZCBkbyBpdCBpdHNlbGYgYW5kIHRoZW4gbWFrZSBzdXJlIHRoYXQgdGhlIHBhcmVudAoJICBleGlzdHMgaW4gYW55IHBhZCBmdW5jdGlvbi4KCjIwMTUtMDItMTkgMTI6MTc6MTUgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBjYXN0IGVsZW1lbnQgaW4gQVNTRVJUX1NFVF9TVEFURS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDc3NwoKMjAxNS0wMi0xOSAwMToxNjo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBVc2UgYSBzZXBhcmF0ZSBxdWVyeSBmb3IgdXBzdHJlYW0gcGFkcyBhbmQgbGV0IGl0IGZhaWwgaWYgb25lIHVwc3RyZWFtIHF1ZXJ5IGZhaWxzCgoyMDE1LTAyLTE5IDAxOjEyOjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IElmIHRoZSBsYXRlbmN5IHF1ZXJ5IGZhaWxzIGZvciBvbmUgb2YgdGhlIHBhZHMsIGl0IGZhaWxzIG92ZXJhbGwKCjIwMTUtMDItMTggMTE6MDU6MTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBSZW1vdmUgdW51c2VkIGJvb2xlYW4gcGFyYW1ldGVyIGZyb20gaW50ZXJuYWwgZnVuY3Rpb25zCgoyMDE1LTAyLTE3IDEyOjExOjQzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgcXVldWU6IEFkZCB1bml0IHRlc3QgZm9yIGJ1ZmZlciBsaXN0IGFuZCB0aW1lIGxldmVsIGhhbmRsaW5nCgoyMDE1LTAyLTE3IDExOjQ0OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogQWRkIHN1cHBvcnQgZm9yIGJ1ZmZlciBsaXN0cwoKMjAxNS0wMi0xNyAxMTo0MTo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogQ291bnQgdGhlIG51bWJlciBvZiBidWZmZXJzIGluIGEgYnVmZmVyIGxpc3QgZm9yIHVwZGF0aW5nIHRoZSBjdXJyZW50IGxldmVscwoJICBpbnN0ZWFkIG9mIGp1c3QgYXNzdW1pbmcgb25lIGJ1ZmZlci4KCjIwMTUtMDItMTcgMjA6NDc6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiByZXZpdmUgYXN5bmMgZGVsaXZlcnkgbWVzc2FnZSBiZWZvcmUgYnVzIHRocmVhZCBjYW4gcnVuIHVucmVmCgkgIFJldml2ZSBtZXNzYWdlIGluIGRpc3Bvc2UgaGFuZGxlciBiZWZvcmUgd2Ugc2lnbmFsIHRoZSBidXMgdGhyZWFkLAoJICBvdGhlcndpc2UgdGhlIGJ1cyB0aHJlYWQgbWlnaHQgYmUgd29rZW4gdXAgYW5kIHVucmVmIHRoZSBtZXNzYWdlCgkgIGJlZm9yZSB3ZSBoYWQgYSBjaGFuY2UgdG8gcmV2aXZlIGl0IHlldC4KCjIwMTUtMDItMTYgMjM6MDI6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkgIHRlc3RzOiBidXM6IGFkZCB1bml0IHRlc3QgZm9yIGFzeW5jIG1lc3NhZ2UgZGVsaXZlcnkKCjIwMTUtMDItMTYgMjI6Mzk6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlLCBidXM6IGZpeCBhc3luYyBtZXNzYWdlIGRlbGl2ZXJ5CgkgIEFzeW5jIG1lc3NhZ2UgZGVsaXZlcnkgKHdoZXJlIHRoZSBwb3N0aW5nIHRocmVhZCBnZXRzIGJsb2NrZWQKCSAgdW50aWwgdGhlIG1lc3NhZ2UgaGFzIGJlZW4gcHJvY2Vzc2VkIGFuZC9vciBmcmVlZCkgd2FzIHByZXR0eQoJICBtdWNoIGNvbXBsZXRlbHkgYnJva2VuLgoJICBGb3Igb25lLCBkb24ndCB1c2UgR011dGV4IGltcGxlbWVudGF0aW9uIGRldGFpbHMgdG8gY2hlY2sKCSAgd2hldGhlciBhIG11dGV4IGhhcyBiZWVuIGluaXRpYWxpemVkIG9yIG5vdCwgZXNwLiBub3QKCSAgaW1wbGVtZW50YXRpb24gZGV0YWlscyB0aGF0IGRvbid0IGhvbGQgdHJ1ZSBhbnkgbW9yZSB3aXRoCgkgIG5ld2VyIEdMaWIgdmVyc2lvbnMgd2hlcmUgYXRvbWljIG9wcyBhbmQgZnV0ZXhlcyBhcmUgdXNlZAoJICAoc3BvdHRlZCBieSBKb3NlcCBUb3JyYXMpLiBUaGlzIGxlZCB0byBhc3luYyBtZXNzYWdlCgkgIGRlbGl2ZXJ5IG5vIGxvbmdlciBibG9ja2luZyB3aXRoIG5ld2VyIEdMaWIgdmVyc2lvbnMgb24KCSAgTGludXguCgkgIFNlY29uZGx5LCBhZnRlciBhc3luYyBkZWxpdmVyeSBkb24ndCBmcmVlIG11dGV4L0dDb25kCgkgIGVtYmVkZGVkIGluc2lkZSB0aGUganVzdC1mcmVlZCBtZXNzYWdlIHN0cnVjdHVyZS4KCSAgVXNlIGEgbmV3IChwcml2YXRlKSBtaW5pIG9iamVjdCBmbGFnIHRvIHNpZ25hbCBHc3RNZXNzYWdlCgkgIHRoYXQgdGhlIG1lc3NhZ2UgYmVpbmcgZnJlZWQgaXMgcGFydCBvZiBhbiBhc3luYyBkZWxpdmVyeQoJICBvbiB0aGUgYnVzIHNvIHRoYXQgdGhlIGRpc3Bvc2UgaGFuZGxlciBjYW4ga2VlcCB0aGUgbWVzc2FnZQoJICBhbGl2ZSBhbmQgdGhlIGJ1cyBjYW4gZnJlZSBpdCBvbmNlIGl0J3MgZG9uZSBjbGVhbmluZyB1cAoJICBzdHVmZi4KCjIwMTUtMDItMTYgMTk6MjQ6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBuaWNlciBidWZmZXIgb2Zmc2V0IHByaW50aW5nIHdoZW4gb2Zmc2V0cyBhcmUgbm90IHNldAoJICBQcmludCB1bnNldCBvZmZzZXRzIGFzICdub25lJyBpbnN0ZWFkIG9mIGh1bW9uZ291cyBudW1iZXJzLAoJICBmb3IgYmV0dGVyIHJlYWRhYmlsaXR5LgoKMjAxNS0wMi0xNiAxMTozNTo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBPbmx5IGluaXRpYWxpemUgR1ZhbHVlIHRvIGEgdHlwZSBvbmNlLCBub3Qgb24gZXZlcnkgcmV0cnkKCSAgT3RoZXJ3aXNlIHdlJ2xsIGdldCB3YXJuaW5ncyBsaWtlIHRoaXM6CgkgIGNhbm5vdCBpbml0aWFsaXplIEdWYWx1ZSB3aXRoIHR5cGUgJ2dib29sZWFuJywgdGhlIHZhbHVlIGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGl6ZWQgYXMgJ2dib29sZWFuJwoKMjAxNS0wMi0xNCAxMjoxNTowMyArMDEwMCAgTWF0dGhpZXUgQm91cm9uIDxtYXR0aGlldS5ib3Vyb25AY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3R1dGlsczogY2hlY2sgdXJpIGJlZm9yZSB1c2luZyBpdCBpbiBnc3RfcGFkX2NyZWF0ZV9zdHJlYW1faWRfaW50ZXJuYWwKCSAgSWYgYW4gZWxlbWVudCBpbXBsZW1lbnRzIHdyb25nbHkgdGhlIFVSSSBxdWVyeSBhbmQgc2V0IHRoZSB1cmkgdG8gTlVMTCBhbmQgaWYKCSAgdGhlIGVsZW1lbnQgY2FsbHMgZ3N0X3BhZF9jcmVhdGVfc3RyZWFtX2lkIGF0IHNvbWUgcG9pbnQsIGl0IHdpbGwgbGVhZCB0byBjcmFzaAoJICBhcyB0aGUgdXJpIGlzIG5vdCBzdXBwb3NlZCB0byBiZSBOVUxMIGluIHRoZSBnc3RfcGFkX2NyZWF0ZV9zdHJlYW1faWRfaW50ZXJuYWwKCSAgZnVuY3Rpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQ1MjAKCjIwMTUtMDItMTMgMTk6NDM6MjQgKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSAgdGltZWR2YWx1ZWNvbnRyb2xzb3VyY2U6IERvIG5vdCB3cm9uZ2x5IHNlbmQgdmFsdWUtcmVtb3ZlZAoJICBBbmQgYXZvaWQgZnJlZWluZyBzb21ldGhpbmcgd2UgZG8gbm90IG93bgoKMjAxNS0wMi0wNCAxNTowNjoxNyArMDEwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogU2V0IEdTVF9WQUxJREFURV9QTFVHSU5fUEFUSAoKMjAxNS0wMi0xMiAxMzozNDo0OSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGZpeCBkb2N1bWVudGF0aW9uIGFuZCBkZWJ1ZyBtZXNzYWdlIGFmdGVyIGxhdGVuY3kgdXBkYXRlcwoJICBDaGFuZ2VzIGRvY3MgYW5kIG1lc3NhZ2UgYWNjb3JkaW5nIHRvIGxhdGVuY3kgaGFuZGxpbmcgZml4CgoyMDE1LTAyLTEyIDE0OjUwOjE1ICswMDAwICBGcsOpZMOpcmljIFdhbmcgPGZyZWQud2FuZ0BmcmVlLmZyPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICBmZHNyYzogdXNlIGdfYXNjaWlfc3RydG91bGwoKSB0byBjb252ZXJ0IHNpemUgc3RyaW5nIGluIHVyaQoJICBzc2NhbmYoKSBkb2Vzbid0IGhhbmRsZSBHX0dVSU5UNjRfRk9STUFUIHdlbGwgb24gbWluZ3c2NCBpdAoJICBhcHBlYXJzLCBsZWFkaW5nIHRvIGNvbXBpbGVyIHdhcm5pbmdzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0MDM0CgoyMDE1LTAyLTEyIDE0OjAzOjE1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGdzdF9wYWRfaXRlcmF0ZV9pbnRlcm5hbF9saW5rcygpIGNhbiByZXR1cm4gTlVMTCBpZiB0aGVyZSBhcmUgbm9uZQoKMjAxNS0wMi0xMiAxNDowMzowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBSZXR1cm4gTlVMTCBpbnN0ZWFkIG9mIEZBTFNFIGZvciBwb2ludGVycwoKMjAxNS0wMi0xMiAxMzo1NTozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBJbXBsZW1lbnQgbW9yZSB1c2VmdWwgZGVmYXVsdCBoYW5kbGluZyBmb3IgdGhlIExBVEVOQ1kgcXVlcnkKCSAgQmVmb3JlIHdlIGp1c3QgdG9vayB0aGUgdmFsdWVzIGZyb20gdGhlIGZpcnN0IHBhZCB0aGF0IHN1Y2NlZGVkIHRoZSBxdWVyeSwKCSAgbm93IHdlIGFjY3VtdWxhdGUgdGhlIHJlc3VsdHMgb2YgZXZlcnkgc2lua3BhZCBwcm9wZXJseSBhbmQgcmV0dXJuIHRoYXQKCSAgcmVzdWx0LgoKMjAxNS0wMi0xMiAxMToyNjoyNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbGF0ZW5jeS50eHQ6CgkgIGRlc2lnbi9wYXJ0LWxhdGVuY3k6IE1pbm9yIGxvZ2ljIGZpeAoJICBUaGUgbWF4aW11bSBsYXRlbmN5IHdpbGwgYmUgdGhlIGVsZW1lbnQncyBtaW5pbXVtIGxhdGVuY3kgb3IgYmlnZ2VyLAoJICBub3QgYmlnZ2VyIHRoYW4gdGhlIGVsZW1lbnQncyBtaW5pbXVtIGxhdGVuY3kgb3IgYmlnZ2VyLgoKMjAxNS0wMi0xMSAxMzo0MTo1NiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIEltcHJvdmUgYW5kIGZpeCBMQVRFTkNZIHF1ZXJ5IGhhbmRsaW5nCgkgIFRoaXMgbm93IGZvbGxvd3MgdGhlIGRlc2lnbiBkb2NzIGV2ZXJ5d2hlcmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQxMDYKCjIwMTUtMDItMTEgMTI6MjA6MzkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWxhdGVuY3kudHh0OgoJICBkZXNpZ24vcGFydC1sYXRlbmN5OiBBZGQgbW9yZSBkZXRhaWxzIGFib3V0IG1pbi9tYXggbGF0ZW5jeSBoYW5kbGluZwoJICBUaGVzZSBkb2NzIG1pc3NlZCBtYW55IGRldGFpbHMgdGhhdCB3ZXJlIG5vdCBvYnZpb3VzIGFuZCBiZWNhdXNlIG9mIHRoYXQKCSAgaGFuZGxlZCBpbiBhIGZldyBkaWZmZXJlbnQsIGluY29tcGF0aWJsZSB3YXlzIGluIGRpZmZlcmVudCBlbGVtZW50cyBhbmQgYmFzZQoJICBjbGFzc2VzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0MTA2CgoyMDE1LTAyLTA3IDA1OjE2OjIzICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjbG9jay5jOgoJICB0ZXN0czogRml4IGNsb2NrIHJlZ3Jlc3Npb24gdGVzdAoJICBGaXggdXAgdGhlIHZhbHVlcyB0aGUgdGVzdCBpcyBjaGVja2luZyBmb3Igbm93IHRoYXQKCSAgdGhlIGNsb2NrIHJlZ3Jlc3Npb24gcmV0dXJucyBwYXJhbWV0ZXJzIHN0YXJ0aW5nIGZyb20KCSAgdGhlIGVuZCBvZiB0aGUgcmVncmVzc2lvbiByYW5nZS4KCjIwMTUtMDItMDcgMDQ6MjI6MjIgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsb2NrOiBEb24ndCB1cGRhdGUgdGhlIGNsb2NrIHdoZW4gaXQgZGVzeW5jaAoJICBBZGQgYSBob2xkIG9mZiB3aGVuIHRoZSBjbG9jayBjYWxpYnJhdGlvbiBzdWRkZW5seSBsb3NlcyBzeW5jaCwKCSAgYXMgaXQgbWF5IGJlIGEgZ2xpdGNoLCBidXQgYWxzbyBtYWtlIHN1cmUgd2UgdXBkYXRlIGlmIGl0IHN0YXlzCgkgIGRlc3luY2hlZCBmb3IgbW9yZSB0aGFuIGEgZmV3IHNlY29uZHMKCjIwMTUtMDItMDYgMDY6MDc6NDMgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsb2NrOiBNYWtlIHRoZSBSVFQgYXZlcmFnZSBpZ25vcmUgbGFyZ2UgdmFsdWVzIG1vcmUgZm9yY2VmdWxseS4KCSAgU21vb3RoIGxhcmdlciBSVFRzIGEgbGl0dGxlIGhhcmRlciwgc28gZXhjZXNzaXZlbHkgbGFyZ2UgdmFsdWVzCgkgIHBlcnR1cmIgdGhlIGF2ZXJhZ2UgYSBiaXQgbGVzcywgYW5kIHRoZXJlZm9yZSBnZXQgZmlsdGVyZWQgb3V0CgkgIG1vcmUgc3Ryb25nbHkKCjIwMTUtMDItMDUgMjI6NTU6MzkgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNsb2NrLWxpbnJlZy5jOgoJICBjbG9jazogTWFrZSBsaW5lYXIgcmVncmVzc2lvbiB4L3kgYmFzZSBzdGFydCBmcm9tIG1heGltdW0gb2JzZXJ2YXRpb24uCgkgIFByb2plY3QgdGhlIHJlc3VsdHMgb2YgdGhlIGxpbmVhciByZWdyZXNzaW9uIHRvIHRoZSBlbmQgb2YgdGhlCgkgIHJlZ3Jlc3Npb24gcmFuZ2UsIHNvIHRoZXkncmUgbW9yZSBkaXJlY3RseSBjb21wYXJhYmxlIHRvIHJlc3VsdHMKCSAgZ29pbmcgZm9yd2FyZAoKMjAxNS0wMi0wNSAxMzo0OTo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhZGQgIm9mZnNldCIgcHJvcGVydHkgdG8gZ28gd2l0aCBnc3RfcGFkX3NldF9vZmZzZXQoKQoJICBTbyB3ZSBjYW4gc2V0IHRoZSBvZmZzZXQgdmlhIGdzdC1sYXVuY2guCgoyMDE1LTAyLTAyIDA4OjIyOjQ3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IGFkZCBtb3JlIGRldGFpbCB0byBsb2dnaW5nIHdoZW4gbm90IGxvYWRpbmcgYSBwbHVnaW4KCSAgSW1wcm92ZSB0aGUgbG9nIG1lc3NhZ2VzIGFuZCBhZGQgZS5nIHRoZSB2ZXJzaW9uIG51bWJlciB3ZSBjaGVja2VkLgoKMjAxNS0wMi0wMiAxNzozNzo0NCArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogRml4IGEgdHlwbyBpbiBhIGRvY3N0cmluZy4KCjIwMTUtMDItMDEgMTQ6MjM6MjYgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgYnVpbGQ6IENoZWNrIHRoYXQgX01TQ19WRVIgbWFjcm8gaXMgZGVmaW5lZAoKMjAxNS0wMi0wMSAwMzozOTowMyArMDIwMCAgSWx5YSBLb25zdGFudGlub3YgPGlseWEua29uc3RhbnRpbm92QGdtYWlsLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogQWRkIHRocmVhZCBuYW1lIHN1cHBvcnQgb24gT1MgWCBhbmQgaU9TCgoyMDE1LTAxLTI5IDE2OjM3OjA3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNsb2NrLWxpbnJlZy5jOgoJICBjbG9jazogRG9uJ3QgdXNlIGludmFsaWQgb2JqZWN0cyBmb3IgR1NUX0RFQlVHX09CSkVDVCgpCgkgIE5vdCBzdXJlIHdoYXQgImNsb2NrIiBhY3R1YWxseSBpcyBoZXJlLCBpdCBtdXN0IGJlIHNvbWV0aGluZyBkZWZpbmVkIGJ5IG9uZSBvZgoJICB0aGUgaGVhZGVycyB0aGF0IGFyZSBpbmNsdWRlZC4KCjIwMTUtMDEtMjkgMTI6MTA6MTggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogRG9jdW1lbnQgdGhhdCBnc3RfYnVmZmVyX2NvcHlfcmVnaW9uKCkgYWNjZXB0cyAtMSBhcyBzaXplIHRvIGNvcHkgdW50aWwgdGhlIGVuZAoJICBJdCdzIGp1c3QgYSB3cmFwcGVyIGFyb3VuZCBnc3RfYnVmZmVyX2NvcHlfaW50bygpIGFmdGVyIGFsbC4KCjIwMTQtMTItMDkgMTY6Mjg6NTYgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgc2VnbWVudDogQWRkIG5ldyBza2lwIGZsYWdzIGZvciBjbGFyaWZ5aW5nIHRyaWNrIG1vZGUgcGxheWJhY2suCgkgIEFkZCBHU1RfU0VFS19GTEFHX1RSSUNLTU9ERV9LRVlfVU5JVFMgYW5kCgkgIEdTVF9TRUVLX0ZMQUdfVFJJQ0tNT0RFX05PX0FVRElPLCBhbmQgcmVuYW1lIEdTVF9TRUVLX0ZMQUdfU0tJUAoJICB0byBHU1RfU0VFS19GTEFHX1RSSUNLTU9ERSAod2l0aCBiYWNrd2FyZHMgY29tcGF0IGRlZmluZSkuCgkgIERvIHRoZSBzYW1lIGZvciB0aGUgY29ycmVzcG9uZGluZyBTRUdNRU5UIGZsYWdzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1NjY2CgoyMDE1LTAxLTIzIDA4OjU5OjI3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IGZpeCBhbm90aGVyIHR5cG8gaW4gdGhlIGRvY3MKCjIwMTUtMDEtMjIgMjM6MTA6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzoKCSAgdXJpOiBGaXggaW5kZW50aW9uCgoyMDE1LTAxLTIxIDE0OjEwOjAyICswMDAwICBEYXZpZCBXYXJpbmcgPGRhdmlkLndhcmluZ0ByZC5iYmMuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6CgkgIHVyaTogRml4IG5ldyBVUkkgcGFyc2luZyB0ZXN0cyBiYXNlZCBvbiBHTmV0J3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MzE5NQoKMjAxNS0wMS0yMSAxNDowOTo0NSArMDAwMCAgRGF2aWQgV2FyaW5nIDxkYXZpZC53YXJpbmdAcmQuYmJjLmNvLnVrPgoKCSogZ3N0L2dzdHVyaS5jOgoJICB1cmk6IEZpeCBwYXJzaW5nIGlzc3VlcwoJICBNYWtlIGhvc3QgSVBzIGluIHNxdWFyZSBicmFja2V0cyBzdG9yZSBvbmx5IHRoZSBJUCwgaS5lLiBzdHJpcCB0aGUgYnJhY2tldHMuCgkgIFN0cmlwIGxlYWRpbmcgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzIGluIFVSSXMuCgkgIEZhaWwgcGFyc2luZyB3aGVuIGhvc3QgcGFydCBkb2VzIG5vdCBtYXRjaCBhbnkgdmFsaWQgZm9ybWF0cyBmcm9tIFJGQzM5ODYuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDMxOTUKCjIwMTUtMDEtMTkgMTk6MTU6MzIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6CgkgIHVyaTogQWRkIHBhcnNpbmcgdW5pdCB0ZXN0IGJhc2VkIG9uIEdOZXQncwoJICBQbHVzIHNvbWUgbmV3IFVSSXMgdG8gcGFyc2UuCgkgIGh0dHBzOi8vZ2l0Lmdub21lLm9yZy9icm93c2UvYXJjaGl2ZS9nbmV0L3BsYWluL3Rlc3RzL2NoZWNrL2duZXQvZ25ldHVyaS5jCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDMxOTUKCjIwMTUtMDEtMjIgMTE6Mjk6MTggKzAxMDAgIEhlaW5yaWNoIEZpbmsgPGhmaW5rQHRvb2xzb25haXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IEZpeCBkb2Mgb2YgR1NUX0NIRUNLUyBhbmQgR1NUX0NIRUNLU19JR05PUkUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MzMzNQoKMjAxNS0wMS0yMSAxODowNzowOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogQWRkIF9mYWlsX3VubGVzcygpIGNvbXBhdGliaWxpdHkgZnVuY3Rpb24gYXJvdW5kIF9ja19hc3NlcnRfZmFpbGVkKCkKCSAgV2UgZXhwb3J0ZWQgdGhpcyBpbiA8IDEuNSBhbmQgaXQgd2FzIGF1dG9tYXRpY2FsbHkgdXNlZCBieSBtYW55IG1hY3JvcwoJICBmcm9tIHRoZSBoZWFkZXIuIEtlZXAgaXQgZXhwb3J0ZWQgZm9yIG5vdy4KCjIwMTUtMDEtMjEgMTQ6MTI6MjIgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogSW5saW5lIGFwcGx5X3BhZF9vZmZzZXQoKQoJICBBdm9pZCBkb2luZyBhIGZ1bmN0aW9uIGNhbGwgZm9yIHNvbWV0aGluZyB3aGljaCB3aWxsIG1vc3RseSBiZSB1bnVzZWQKCjIwMTUtMDEtMjEgMTQ6MTA6MDYgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogRml4IGRlYnVnIG1lc3NhZ2UKCjIwMTUtMDEtMjEgMTE6NDU6NDEgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogRml4IFBST0JFX05PX0RBVEEgbWFjcm8KCSAgVGhlIHByb2JsZW0gd2FzIHRoYXQgdGhlIG1hY3JvIHdhcyBhbHdheXMgdXNlZCB3aXRoICdyZXQnIGFzIHRoZSBkZWZhdWx0dmFsCgkgIGFyZ3VtZW50LgoJICBUaGlzIHdvdWxkIHJlc3VsdCBpbiB0aGUgbWFjcm8gZXZlbnR1YWxseSBleHBhbmRpbmcgdG8KCSAgaWYgKEdfVU5MSUtFTFkgKHJldCAhPSByZXQgJiYgcmV0ICE9IEdTVF9GTE9XX09LKSkKCSAgLi4uIHJldCAhPSByZXQgd2lsbCBhbHdheXMgZmFpbCwgYW5kIHRoZXJlZm9yZSB3ZSdkIG5ldmVyIGNhbGwgdGhlCgkgIGZvbGxvd2luZyBsaW5lLgoJICBJbnN0ZWFkIG9mIHRoYXQsIHN0b3JlIHRoZSBwcmV2aW91cyB2YWx1ZSBsb2NhbGx5IGZvciBjb21wYXJpc2lvbgoKMjAxNS0wMS0yMSAyMjo0NDo1OSArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xvY2s6IEZpeCBkb2NzIHR5cG8uIENsb2NrIGJ1cyBtZXNzYWdlcyBhcmUgR1NUX01FU1NBR0VfRUxFTUVOVAoKMjAxNS0wMS0xNSAyMjozMjoyOCArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xvY2s6IEltcGxlbWVudCByYXRlIGxpbWl0cyBmb3IgcG9sbGluZyBhbmQgZml4IHVwIHNrZXcgbGltaXRzCgkgIEFkZCB0aGUgbWluaW11bS11cGRhdGUtaW50ZXJ2YWwgcHJvcGVydHkgdG8gdGhlIGNsb2NrLCB3aXRoIGEgZGVmYXVsdAoJICBvZiA1MG1zIGFuZCBkb24ndCBzZW5kIHBvbGxpbmcgcmVxdWVzdHMgZmFzdGVyIHRoYW4gdGhhdC4gVGhhdCBoZWxwcyB0bwoJICBlbnN1cmUgd2Ugc3ByZWFkIHRoZSBpbml0aWFsIG9ic2VydmF0aW9ucyBvdXQgYSBsaXR0bGUgLSBzdGFydHVwIHRha2VzCgkgIGEgbGl0dGxlIGxvbmdlciwgYnV0IHRyYWNraW5nIGlzIG1vcmUgc3RhYmxlLgoJICBNb3ZlIHRoZSBkaXNjb250IHNrZXcgbGltaXRpbmcgY29kZSBpbnNpZGUgYW4gaWYgc3RhdGVtZW50LCBzbyB0aGF0CgkgIGl0J3Mgb25seSBkb25lIHdoZW4gdGhlIGxpbmVhciByZWdyZXNzaW9uIHN1Y2NlZWRzIGFuZCB0aGUgY2xvY2sKCSAgcGFyYW1ldGVycyBtaWdodCBhY3R1YWxseSBjaGFuZ2UuCgoyMDE1LTAxLTE1IDEwOjA1OjMyICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RjbG9jay1saW5yZWcuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjbG9jay5jOgoJICBjbG9jazogSW1wcm92ZSBzbGF2aW5nIHJlZ3Jlc3Npb24uCgkgIEFkZCBkb21haW4gY2hlY2tzIGZvciB0aGUgaW5wdXQgdmFsdWVzLCBhbmQgYSB2YXJpYWJsZSBwcmVjaXNpb24KCSAgY2FsY3VsYXRpb24gdGhhdCBsb29wcyBpZiBuZWNlc3NhcnkgdG8gZW5zdXJlIHdlIG5ldmVyIG92ZXJmbG93CgkgIGFjY3VtdWxhdG9ycyBhbmQgdGhlbiBzaWxlbnRseSBwcm9kdWNlIGdhcmJhZ2UgcmVzdWx0cy4KCSAgTWFrZSB0aGUgKG5vbi1wdWJsaWMpIGxpbmVhciByZWdyZXNzaW9uIGZ1bmN0aW9uIGF2YWlsYWJsZSBmb3IKCSAgdW5pdCB0ZXN0aW5nIGJ5IHB1dHRpbmcgaXQgaW4gYSBzZXBhcmF0ZSBzb3VyY2UgZmlsZSB0aGUgdGVzdAoJICBjYW4gaW5jbHVkZS4gQWRkIGEgdW5pdCB0ZXN0IHRoYXQgdGhlIG5ldyByZWdyZXNzaW9uIGZ1bmN0aW9uCgkgIHByb2R1Y2VzIHNlbnNpYmxlIHJlc3VsdHMgZm9yIHNldmVyYWwgaW5wdXRzIHRha2VuIGZyb20gcmVhbC13b3JsZAoJICBjYXB0dXJlcy4KCjIwMTUtMDEtMTAgMjE6NDI6MDAgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbmV0Y2xvY2svLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvbmV0Y2xvY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL25ldGNsb2NrL25ldGNsb2NrLWNsaWVudC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9uZXRjbG9jay9uZXRjbG9jay1zZXJ2ZXIuYzoKCSAgbmV0Y2xvY2s6IEFkZCBzaW1wbGUgbmV0d29yayBjbG9jayBzZXJ2ZXIgYW5kIGNsaWVudCBleGFtcGxlcwoKMjAxNS0wMS0xMCAyMTo0MjowMCArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xvY2s6IEltcGxlbWVudCBzZW5kaW5nIHN0YXRpc3RpYyBidXMgbWVzc2FnZXMgYW5kIGRpc2NvbnQgbGltaXRzCgkgIEFsbG93IHNldHRpbmcgYSBHc3RCdXMgb24gdGhlIG5ldHdvcmsgY2xvY2sgY2xpZW50CgkgIHZpYSBhIG5ldyAnYnVzJyBvYmplY3QgcHJvcGVydHkuIElmIGEgYnVzIGlzIHNldCwgdGhlCgkgIGNsb2NrIHdpbGwgb3V0cHV0IGFuIGVsZW1lbnQgbWVzc2FnZSBjb250YWluaW5nIHN0YXRpc3RpY3MKCSAgYWJvdXQgbmV3IGNsb2NrIG9ic2VydmF0aW9ucyBhbmQgdGhlIGNsb2NrIGNvcnJlbGF0aW9uLgoJICBXaGVuIHRoZSBsb2NhbCBjbG9jayBpcyBzeW5jaHJvbmlzZWQgd2l0aCB0aGUgcmVtb3RlLCBsaW1pdCB0aGUKCSAgbWF4aW11bSBqdW1wIGluIHRoZSBjbG9jayBhdCBhbnkgcG9pbnQgdG8gYmUgb25lIGF2ZXJhZ2UgUlRUIHRvCgkgIHRoZSBzZXJ2ZXIuIEFsc28sIHB1Ymxpc2ggaW4gdGhlIGJ1cyBtZXNzYWdlIHdoZXRoZXIgd2UgYXJlCgkgIHN5bmNoZWQgd2l0aCB0aGUgcmVtb3RlIG9yIG5vdC4KCjIwMTUtMDEtMTAgMjE6NDI6MDAgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY2xvY2s6IEFkZCBnc3RfY2xvY2tfYWRkX29ic2VydmF0aW9uX3VuYXBwbGllZCgpCgkgIGdzdF9jbG9ja19hZGRfb2JzZXJ2YXRpb25fdW5hcHBsaWVkKCkgYWRkcyBhIG5ldyBtYXN0ZXIvc2xhdmUgY2xvY2sKCSAgb2JzZXJ2YXRpb24gYW5kIHJ1bnMgdGhlIHJlZ3Jlc3Npb24gd2l0aG91dCBhY3RpdmF0aW5nIHRoZSBuZXcKCSAgY2FsaWJyYXRpb24gcmVzdWx0cy4KCjIwMTQtMTItMTYgMjI6NTE6MjIgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY2xvY2s6IEFkZCBnc3RfY2xvY2tfYWRqdXN0X3dpdGhfY2FsaWJyYXRpb24oKQoJICBnc3RfY2xvY2tfYWRqdXN0X3dpdGhfY2FsaWJyYXRpb24oKSB1c2VzIGRpcmVjdGx5IHBhc3NlZCBjYWxpYnJhdGlvbgoJICBwYXJhbWV0ZXJzLCBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBjbG9jaydzIGN1cnJlbnQgY2FsaWJyYXRpb24sCgkgIGFsbG93aW5nIGZvciBjYWxjdWxhdGlvbnMgdXNpbmcgcGVuZGluZyBvciBvbGQgY2FsaWJyYXRpb24gcGFyYW1zCgoyMDE1LTAxLTIxIDA5OjQ1OjE2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXQtc2VsZWN0b3I6IENvbnN0aWZ5IG5lZ290aWF0aW9uIG1vZGUgR0VudW1WYWx1ZSB0YWJsZQoKMjAxNS0wMS0yMCAxMDozNTo0NyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGRvY3M6IGZpeCB0eXBvIGluIEdzdEV2ZW50IGRvY3MKCSAgc2VuZCAtPiBzZW50CgoyMDE1LTAxLTIwIDA5OjE5OjEwICswMTAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBzY3JpcHRzL2dpdC11cGRhdGUuc2g6CgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBzY3JpcHRzOiBSZW1vdmUgZ25vbmxpbiBmcm9tIHRoZSBzY3JpcHRzCgkgIEl0IGlzIG5vdCBtYWludGFpbiBhbnltb3JlIGFuZCBpdHMgZmVhdHVyZSBhcmUgbm93IGluc2lkZSB0aGUgR1N0cmVhbWVyCgkgIEVkaXRpbmcgU2VydmljZXMgKGZvciB0aGUgdGltZSBiZWluZykuCgoyMDE1LTAxLTE2IDE5OjE3OjMxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IFBhc3Mgc3RydWN0cyB3ZSBwbGFuIHRvIG1vZGlmeSBhcm91bmQgYnkgcG9pbnRlciwgbm90IHZhbHVlCgkgIE90aGVyd2lzZSB0aGUgc3RydWN0IGlzIGdvaW5nIHRvIGJlIGNvcGllZCwgd2hpY2ggaXMgbm90IHZlcnkgZWZmaWNpZW50LiBBbmQKCSAgYWxzbyBoYXMgdGhlIG5pY2Ugc2lkZSBlZmZlY3QgdGhhdCBtb2RpZmljYXRpb25zIG9mIHRoZSBzdHJ1Y3QgbWlnaHQgYmUKCSAgZG9uZSBpbiBhIGNvcHksIGFuZCB3ZSBsYXRlciB1c2UgdGhlIG9yaWdpbmFsIHN0cnVjdCB3aXRob3V0IHRoZSBjaGFuZ2VzLgoJICBDYXVzZWQgTEFURU5DWSBxdWVyaWVzIHRvIGFsd2F5cyByZXR1cm4gdGhlIGluaXRpYWxpemF0aW9uIHZhbHVlcyBpbiBvbmUgb2YgbXkKCSAgdGVzdHMsIGluc3RlYWQgb2YgdGhlIGFjdHVhbCB2YWx1ZXMgcmVwb3J0ZWQgYnkgY2hpbGQgZWxlbWVudHMuCgoyMDE1LTAxLTE0IDEwOjUyOjExICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IHNlbmQgZ2FwIGV2ZW50cyB3aGVuIGRyb3BwaW5nIGJ1ZmZlcnMKCjIwMTUtMDEtMTMgMTg6MTE6MzkgKzAwMDAgIFBoaWxsaXAgV29vZCA8cGhpbGxpcC53b29kQGR1bmVsbS5vcmcudWs+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIHByZXNldDogZml4IGluY29ycmVjdCBwcmVzZXQgdmVyc2lvbiBjb21wYXJpc29uCgkgIFVzZSBhcHBfdmVyc2lvbiBpZiB0aGVyZSBhcmUgbm8gc3lzdGVtIHByZXNldHMsIHNvIHRoYXQgaWYgdGhlCgkgIGFwcGxpY2F0aW9uIHByZXNldHMgYXJlIG5ld2VyIHRoYW4gdGhlIHVzZXIgcHJlc2V0cyB0aGV5IGFyZSBtZXJnZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDI4NzcKCjIwMTUtMDEtMTIgMTY6MDM6MDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogRG9uJ3QgZGVyZWZlcmVuY2UgTlVMTCBwb2ludGVyCgkgIENJRCAxMjYyMjg2CgoyMDE1LTAxLTEyIDE1OjU1OjQ3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmMmM2Yjk1IHRvIGJjNzZhOGIKCjIwMTUtMDEtMTEgMjM6MDA6MjkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIHByZXNldDogZml4IHNvcnRpbmcgcHJlc2V0cwoJICBUaGUgZ2xpYiBkb2NzIGFyZSBub3QgY2xlYXIgb24gdGhpcywgYnV0IHRoZSBxc29ydCBtYW4tcGFnZSBpcyAtIHRoZQoJICBHQ29tcGFyZURhdGFGdW5jIGRvZXMgbm90IGdldCB0aGUgc3RyaW5ncywgYnV0IHBvaW50ZXJzIHRvIHRoZW0uCgoyMDE0LTEyLTMxIDE4OjUyOjM0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGZpeCBzaWxseSBHUXVldWUgaXRlcmF0aW9uIGNvZGUKCSAgTm90IGFjdGl2ZSBieSBkZWZhdWx0IHRob3VnaC4KCjIwMTUtMDEtMDQgMjM6MjQ6NTMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIHByZXNldDogZG9uJ3QgcmV0dXJuIGVtcHR5IHByZXNldCBsaXN0cwoJICBBZGQgYSBzaG9ydGN1dCBmb3IgdGhlIGNhc2VzIHdoZXJlIGFuIGVsZW1lbnQgaW1wbGVtZW50cyB0aGUgcHJlc2V0IGlmYWNlIGJ1dAoJICBoYXMgbm8gcHJlc2V0cyBhbmQgcmV0dXJuIE5VTEwgaW5zdGVhZCBvZiBhbiBlbXB0eSBsaXN0IGluIHRoYXQgY2FzZS4KCjIwMTUtMDEtMDQgMjM6MDg6NDcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogb25seSBwcmludCBwcmVzZXRzIGxpbmUgaWYgbnVtLXByZXNldHMgPiAwCgkgIEFsc28gY2hlY2sgZm9yIGFuIGVtcHR5IHN0cnYuCgoyMDE1LTAxLTA0IDIyOjUxOjA5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IGZpeCBvdXRwdXQgZm9yIC1hCgkgIFVzZSBuX3ByaW50IHRvIGVuc3VyZSBhbGwgbGluZXMgYXJlIHByZWZpeGVkIHdpdGggdGhlIGVsZW1lbnQgbmFtZS4KCjIwMTQtMTItMjkgMTE6NTQ6MDAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIGRvY3M6IGlnbm9yZSBsaWJjaGVjayBoZWFkZXJzIHRoYXQgdXNlIGRveHlnZW4gY29tbWVudHMKCjIwMTQtMTItMjkgMTE6NTI6MjIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBkb2NzOiBmaXggdHdvIGd0ay1kb2Mgd2FybmluZ3MKCSAgT25lIGJ5IGNvcnJlY3RpbmcgdGhlIGVuZC1vZi1jb21tZW50IG1hcmtlciBhbmQgb25lIGJ5IG1ha2luZyBzdXJlIHRoZSBmdW5jdGlvbgoJICBwcm90b3R5cGUgaW4gdGhlIGhlYWRlciBpcyBpbiBzeW5jIHdpdGggdGhlIGMgZmlsZSBhbmQgZG9jLWJsb2IuCgoyMDE0LTEyLTI2IDIzOjIyOjMwICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiBBZGQgbWlzc2luZyBpbnRlcmZhY2VzIHRvIGRvY3VtZW50YXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjA1NwoKMjAxNC0xMi0yNyAxNToxNTozMCArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBGaXggb3V0ZGF0ZWQgZXhhbXBsZSBjb2RlIGFuZCBhY2NvbXBhbnlpbmcgZG9jdW1lbnRhdGlvbgoJICBHc3RJdGVyYXRvciBubyBsb25nZXIgcmV0dXJucyBhIHJlZmNvdW50ZWQgZ3BvaW50ZXIKCjIwMTQtMTItMjQgMTM6NDY6MjggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogVXNlIHRoZSBzYW1lIHdhaXRpbmcgZnVuY3Rpb24gZm9yIEVPUyBhbmQgbm9uLUVPUyB3YWl0aW5nCgoyMDE0LTEyLTI0IDEzOjQ0OjA5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFdha2UgdXAgYWxsIHdhaXRpbmdzIHBhZHMgZGlyZWN0bHkgaWYgd2UgZm9yd2FyZCB0aGUgRU9TIGV2ZW50CgkgIE90aGVyd2lzZSB0aGV5IG1pZ2h0IHdhaXQgYSBiaXQgbG9uZ2VyIHVubmVjZXNzYXJpbHkuCgkgIEFsc28gZG8gc29tZSBtaW5vciBjbGVhbnVwLgoKMjAxNC0xMi0yNCAxMDoxMzo1MSArMDgwMCAgU29uZyBCaW5nIDxiMDY0OThAZnJlZXNjYWxlLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSAgaW5wdXRzZWxlY3RvcjogQmxvY2sgd2hlbiByZWNlaXZpbmcgYW4gRU9TIGV2ZW50IG9uIGEgZGVhY3RpdmF0ZWQgcGFkCgkgIC4uLiBhbmQgb25seSB1bmJsb2NrIHdoZW4gZWl0aGVyIGEpIHRoZSBwYWQgYmVjb21lcyBhY3RpdmUgYW5kIHRoZSBldmVudAoJICBzaG91bGQgYmUgZm9yd2FyZGVkIG9yIGIpIHRoZSBhY3RpdmUgcGFkIHdlbnQgRU9TIGl0c2VsZi4KCSAgT3RoZXJ3aXNlIGl0IGNhbiBoYXBwZW4gdGhhdCB3ZSBzd2l0Y2ggZnJvbSBhIGxvbmdlciB0cmFjayB0aGF0IGlzIG5vdCBFT1MgeWV0CgkgIHRvIGEgc2hvcnRlciB0cmFjayB0aGF0IGFscmVhZHkgaXMgRU9TLCBidXQgdGhlIHNob3J0ZXIgdHJhY2sgd29uJ3QgaGF2ZSBhbnkKCSAgcG9zc2liaWxpdHkgdG8gc2VuZCBpdHMgRU9TIGV2ZW50IGRvd25zdHJlYW0gYW55bW9yZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MDk0OQoKMjAxNC0xMi0yMyAxMjo1NDo1MCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBLZWVwIGEgcmVmIG9mIHRoZSBjdXJyZW50bHkgYWN0aXZlIHNpbmtwYWQgYXJvdW5kCgkgIE90aGVyd2lzZSB3ZSBjYW4ndCBiZSBzdXJlIHRoYXQgdGhlIHBvaW50ZXIgcG9pbnRzIHRvIGEgc3RpbGwgZXhpc3RpbmcKCSAgcGFkIGluc3RhbmNlIGFmdGVyIHJlbGVhc2luZyB0aGUgbG9jay4KCjIwMTQtMTItMjMgMTI6NTM6NTggKzAxMDAgIFNvbmcgQmluZyA8YjA2NDk4QGZyZWVzY2FsZS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogR2V0IHRoZSBhY3RpdmUgc2lua3BhZCBhZ2FpbiBhZnRlciB0YWtpbmcgdGhlIGxvY2sgd2hlbiBoYW5kbGluZyBldmVudHMKCSAgSXQgbWlnaHQgaGF2ZSBjaGFuZ2VkIGluIHRoZSBtZWFudGltZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTg5MwoKMjAxNC0xMi0yMiAxMzowODozNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBTaG9ydC1jaXJjdWl0IENBUFMgcXVlcnkgaGFuZGxpbmcgaWYgdHJhbnNmb3JtX2NhcHMgcmV0dXJucyBFTVBUWSBjYXBzCgkgIEJvdGggZm9yIHRoZSBwZWVyIGZpbHRlciBjYXBzIGFuZCB0aGUgY29udmVydGVkIGNhcHMgYmFzZWQgb24gdGhlIHBlZXIgY2Fwcy4KCSAgSWYgdGhlIHBlZXIgZmlsdGVyIGNhcHMgYXJlIEVNUFRZLCB0aGUgcGVlciBjYXBzIHF1ZXJ5IHdpbGwgYWxzbyByZXR1cm4KCSAgRU1QVFkuIFRoZXJlJ3Mgbm8gbmVkIHRvIGJvdGggZG93bnN0cmVhbS91cHN0cmVhbSB3aXRoIHRoaXMgcXVlcnkuCgoyMDE0LTEyLTIyIDExOjQ1OjEzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogTUFJTlRBSU5FUlM6CgkgIE1BSU5UQUlORVJTOiBVcGRhdGUgbXkgbWFpbCBhZGRyZXNzCgoyMDE0LTEyLTIxIDE0OjEyOjI5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogdXNlIGEgY29uc3RhbnQgZm9yIHRoZSBtYXggcGFyYW0gbGVuZ3RoCgkgIEltcHJvdmUgcmVhZGFiaWxpdHkgYnkgdXNpbmcgYSBkZWZpbmUgZm9yIHRoZSBtYXgtY2hhcnMuIEFsc28gdXNlIHRoZSB1bmljb2RlCgkgIGVsbGlwc2lzIGFzIGRvdCBmaWxlcyBhcmUgdXRmLTguCgoyMDE0LTEyLTE1IDE0OjAzOjU0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IHByaW50IHByZXNldCBuYW1lcwoJICBJZiB0aGUgZWxlbWVudCBzdXBwb3J0cyBwcmVzZXRzIGFuZCBzaGlwcyBzb21lLCBwcmludCB0aGVtLgoJICBGaXhlcyAjNzQxNDI3CgoyMDE0LTEyLTE5IDExOjM1OjI0ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZ3N0aW5mbzogQWRkIG5ldyBtYXhpbXVtIGxldmVsIGRlYnVnZ2luZwoJICBBUEk6IEdTVF9MRVZFTF9NQVgKCSAgQnkgY29tcGlsaW5nIGdzdHJlYW1lciAob3IgcGx1Z2lucykgd2l0aCBHU1RfTEVWRUxfTUFYIGRlZmluZWQsIG9ubHkKCSAgdGhlIGRlYnVnZ2luZyBzdGF0ZW1lbnRzIGF0IG9yIGJlbG93IHRoYXQgbGV2ZWwgd2lsbCBiZSBjb21waWxlZCBpbi4KCSAgVGhpcyBhbGxvd3MgY29tcGlsaW5nIGluIHNvbWUgZGVidWdnaW5nIChsaWtlIGVycm9ycyBhbmQgd2FybmluZ3MpIHdoaWNoCgkgIGhlbHBzIGluIGRlYnVnZ2luZywgYnV0IHdpdGhvdXQgdGhlIGZ1bGwgY3B1L21lbW9yeSBvdmVyaGVhZCBvZiBhbGwgZGVidWdnaW5nCgkgIGVuYWJsZWQuCgoyMDE0LTEyLTE4IDEyOjA0OjIyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBnc3RjaGVjazogZml4IEdJIGFubm90YXRpb24KCSAgQWRkIG1pc3NpbmcgOiB0byBhbm5vdGF0aW9uCgoyMDE0LTExLTEzIDE0OjUzOjU5ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZToganVtcCBvdmVyIGxhcmdlIHNraXBzIGluIHB1bGwgbW9kZQoJICBUaGlzIGJ5cGFzc2VzIHRoZSBkdW1waW5nIG9mIGJ1ZmZlcnMgd2Ugc3RpbGwgaGF2ZSB0byBkbyBpbiBwdXNoIG1vZGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzAwNTMKCjIwMTQtMTAtMjUgMTc6MTY6MjUgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW5AYWNjb3N0ZWQubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSogZ3N0L2dzdGRlYnVndXRpbHMuaDoKCSAgZGVidWd1dGlsczogVHJ1bmNhdGUgcGFyYW1ldGVyIHZhbHVlcyB0aGF0IGFyZSB0b28gbG9uZwoJICBUaGlzIHJlbW92ZXMgc29tZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBkdW1wcywgYnV0IGltcHJvdmVzIHJlYWRhYmlsaXR5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5MTY1CgoyMDE0LTEyLTE4IDEwOjUzOjAyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBlZjFmZmRjIHRvIGYyYzZiOTUKCjIwMTQtMTItMTYgMTY6MzE6MjEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc3RydWN0dXJlL2NhcHM6IEFkZCBnc3Rfe3N0cnVjdHVyZSxjYXBzfV9maWx0ZXJfYW5kX21hcF9pbl9wbGFjZSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzk3NjUKCjIwMTQtMTItMTYgMTg6MTQ6MjIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogQWRkIHNpbXBsZSB1bml0IHRlc3QgZm9yIGZvcmVhY2goKSBhbmQgbWFwX2luX3BsYWNlKCkKCjIwMTQtMTEtMDcgMTE6MTU6MDkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBBZGQgZ3N0X2NhcHNfZm9yZWFjaCgpIGFuZCBnc3RfY2Fwc19tYXBfaW5fcGxhY2UoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5NzY1CgoyMDE0LTEyLTE2IDE1OjUzOjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSBmb3IgbmV3IHRyYW5zbGF0YWJsZSBzdHJpbmdzCgoyMDE0LTEyLTE0IDEyOjU0OjMyICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbG9nLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuYzoKCSAgY2hlY2s6IEhhdmUgYXV0b3Rvb2xzIGdlbmVyYXRlIGludGVybmFsLWNoZWNrLmgKCSAgUHJldmlvdXNseSBHU3RyZWFtZXIgZ290IGFjY2VzcyB0byB0aGUgbGliY2hlY2sgaW50ZXJmYWNlIGJ5IGluY2x1ZGluZwoJICBsaWJzL2dzdC9jaGVjay9jaGVjay5oIHdoaWNoIGluIHR1cm4gaW5jbHVkZWQgaW50ZXJuYWwtY2hlY2suaCBpbiB0aGUKCSAgc2FtZSBkaXJlY3RvcnkuIGludGVybmFsLWNoZWNrLmggd2FzIGdlbmVyYXRlZCBieSBjb3B5aW5nCgkgIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmggd2hpY2ggaW4gdHVybiB3YXMgZ2VuZXJhdGVkIGZyb20KCSAgY2hlY2suaC5pbiBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuIEluIHRoaXMgY2FzZSBnZW5lcmF0aW5nCgkgIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmggaXMgdW5uZWNlc3NhcnksIGluIGFkZGl0aW9uIHRoaXMgZmlsZQoJICB3YXMgYWNjaWRlbnRhbGx5IGRpc3RyaWJ1dGVkIGluIGdlbmVyYXRlZCBwcm9qZWN0IHRhcmJhbGxzLgoJICBOb3cgbGlicy9nc3QvY2hlY2svaW50ZXJuYWwtY2hlY2suaCBpcyBnZW5lcmF0ZWQgZGlyZWN0bHkgZnJvbQoJICBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5oLmluIGJ5IGNvbmZpZ3VyZS4gVGhpcyBtZWFucyB0aGF0IHRoZQoJICBsaWJjaGVjayBzb3VyY2UgbXVzdCBpbmNsdWRlIGludGVybmFsLWNoZWNrLmggaW5zdGVhZCBvZiB0aGUgcHJldmlvdXNseQoJICBnZW5lcmF0ZWQgbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suaC4gSG93ZXZlciB0aGUgdW5uZWNlc3NhcnkKCSAgaW50ZXJtZWRpYXRlIHN0ZXAgaXMgbm93IHNraXBwZWQuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDEzNTkKCjIwMTQtMTItMTYgMTA6MTM6MDMgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogRG9uJ3QgY2hlY2sgc2l6ZSBpbiBjb25maWcgdmFsaWRhdGlvbgoJICBQb29scyBhcmUgYWxsb3dlZCB0byBjaGFuZ2UgdGhlIHNpemUgaW4gb3JkZXIgdG8gYWRhcHQgcGFkZGluZy4gU28KCSAgZG9uJ3QgY2hlY2sgdGhlIHNpemUuIE5vcm1hbGx5IHBvb2wgd2lsbCBjaGFuZ2UgdGhlIHNpemUgd2l0aG91dAoJICBmYWlsaW5nIHNldF9jb25maWcoKSwgYnV0IGl0IHRoZXkgZW5kdXAgY2hhbmdpbmcgdGhlIHNpemUgYmVmb3JlCgkgIHRoZSB2YWxpZGF0ZSBtZXRob2QgbWF5IGZhaWwgb24gYSBmYWxzZSBwb3NpdGl2ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTQyMAoKMjAxNC0xMi0xNiAxMjoyMTo1OSArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBsb2cgcmVhc29uIGZvciBkaXNjYXJkZWQgYnVmZmVycwoJICBQRVJGT1JNQU5DRSBsb2cgdGhlIHJlYXNvbiB3aHkgYSBidWZmZXIgY291bGQgbm90IGJlIHJlY3ljbGVkIGluIHRoZQoJICBidWZmZXJwb29sLgoKMjAxNC0xMi0xNSAxNDo1MzoyOCArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogbTQvY2hlY2stY2hlY2tzLm00OgoJICBjaGVjazogVXBkYXRlIHZlcnNpb24gbnVtYmVyIG9mIGluY2x1ZGVkIGxpYmNoZWNrCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDE1NTAKCjIwMTQtMTItMTIgMjE6MDI6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSBleHBvcnRzCgoyMDE0LTEyLTEyIDIxOjU0OjAxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogYWRkIG5ldyBwcmVzZXQgYXBpCgoyMDE0LTEyLTEyIDIxOjM4OjI2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cHJlc2V0Lmg6CgkgIHByZXNldDogYWRkIGdzdF9wcmVzZXRfaXNfZWRpdGFibGUoKQoJICBBZGQgYSBmdW5jdGlvbiB0byBjaGVjayBpZiB0aGUgcHJlc2V0IGlmYWNlIGltcGxlbWVudGF0aW9uIGlzIGVkaXRhYmxlIGFuZAoJICBkb2N1bWVudCB0aGlzIGZyb20gdGhlIGltcGxlbWVudGVycyBwZXJzcGVjdGl2ZS4KCSAgQVBJOiBnc3RfcHJlc2V0X2lzX2VkaXRhYmxlKCkKCjIwMTQtMTItMTIgMTQ6MjM6MTkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBkZWYgZmlsZQoKMjAxNC0xMi0xMiAxMzo1NzozOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IEZpeCBjb21waWxlciB3YXJuaW5nCgkgIGdzdGRlYnVndXRpbHMuYzogSW4gZnVuY3Rpb24gJ2dzdF9kZWJ1Z19iaW5fdG9fZG90X2RhdGEnOgoJICBnc3RkZWJ1Z3V0aWxzLmM6NjgzOjUzMDogZXJyb3I6ICdyZXR1cm4nIHdpdGggbm8gdmFsdWUsIGluIGZ1bmN0aW9uIHJldHVybmluZyBub24tdm9pZCBbLVdlcnJvcl0KCSAgZ19yZXR1cm5faWZfZmFpbCAoR1NUX0lTX0JJTiAoYmluKSk7CgoyMDE0LTEyLTEyIDEzOjE1OjAyICswNTMwICBBcnVuIFJhZ2hhdmFuIDxnaXRAYXJ1bnJhZ2hhdmFuLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6CgkgIGRlYnVndXRpbHM6IEFkZCBhIGdzdF9kZWJ1Z19iaW5fdG9fZG90X2RhdGEoKSBtZXRob2QKCSAgVGhpcyBwcm92aWRlcyB0aGUgZG90IGZpbGUgYXMgYSBzdHJpbmcsIHJhdGhlciB0aGFuIGR1bXBpbmcgdG8gYSBmaWxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQxNDI1CgoyMDE0LTEyLTEwIDExOjE3OjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgdHlwZWZpbmQ6IG1pbm9yIGNvc21ldGljIGNoYW5nZQoJICBObyBuZWUgdG8gYWJicmV2IHZhcmlhYiBuYW0gaGVyZSwgbmljZXIgdG8gcmVhZCBpZiBmdWxsLgoKMjAxNC0xMi0xMCAxMToxNjowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiB1c2UgR1NUX0JVRkZFUl9PRkZTRVRfTk9ORSBmb3IgYnVmZmVyIG9mZnNldAoKMjAxNC0xMi0wNyAxMjo1NToyNiArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suaC5pbjoKCSAgY2hlY2s6IEF2b2lkIHJlcXVyaW5nICh1KWludG1heF90IGluIG1hY3JvcwoJICBQcmV2aW91c2x5IGVtYmVkZGVkIGxpYmNoZWNrIHZlcnNpb25zIGRpZCBub3QgZGVwZW5kIG9uICh1KWludG1heF90IGFuZAoJICBkb2luZyBzbyB3b3VsZCByZXF1aXJlIHByb2plY3RzIHVzaW5nIEdTdHJlYW1lcidzIGNoZWNrIGZyYW1ld29yayB0byBhZGQKCSAgQVhfQ1JFQVRFX1NURElOVF9IIHRvIHRoZWlyIGNvbmZpZ3VyZS5hYy4gQSB3b3JrYXJvdW5kIGlzIHRvIGZhbGxiYWNrIHRvCgkgIGdsaWIgdHlwZXMuIFRoaXMgcGF0Y2ggYXNzdW1lcyB0aGF0IGdsaWIuaCBpcyBhbHdheXMgaW5jbHVkZWQgYmVmb3JlCgkgIGludGVybmFsLWNoZWNrLmggd2hpY2ggaXMgb2sgc2luY2UgZXZlcnl0aGluZyBHc3RyZWFtZXIgd291bGQgaW5jbHVkZQoJICBnc3QvZ3N0Y2hlY2suaCBpbnN0ZWFkIG9mIGRpcmVjdGx5IGluY2x1ZGluZyBpbnRlcm5hbC1jaGVjay5oLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3ODI2CgoyMDE0LTEyLTA2IDE5OjAzOjA0ICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jbG9ja19nZXR0aW1lLmM6CgkgIGNoZWNrOiBGaXggY29tcGlsYXRpb24gZXJyb3IgZm9yIGlPUwoJICBsaWJjaGVjayBpbmNsdWRlcyBDb3JlU2VydmljZXMgZm9yIGl0cyBjb21wYXQgZm9yIGNsb2NrX2dldHRpbWUoKSwKCSAgZXZlbiB0aG91Z2ggaXQgbmV2ZXIgdXNlcyBhbnl0aGluZyBpdCBkZWNsYXJlcy4gTGV0J3MgcmVtb3ZlIGl0LgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3ODI2CgoyMDE0LTExLTE1IDEzOjI2OjQ3ICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5oLmluOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19lcnJvci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19lcnJvci5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19saXN0LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xvZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19tc2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcGFjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wcmludC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfc3RyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC5oOgoJKiBtNC9jaGVjay1jaGVja3MubTQ6CgkgIGNoZWNrOiBBcHBseSBHU3RyZWFtZXItc3BlY2lmaWMgcGF0Y2hlcwoJICBSZWludHJvZHVjZWQgcGF0Y2hlczoKCSAgKiBNYWtlIHN1cmUgdGhhdCBmYWlsX2lmKDEpIGFjdHVhbGx5IGZhaWxzCgkgIGZyb20gY29tbWl0IDlmOTlkMDU2YTI2M2U3MWE1ZTYxODEyMjQ4MjlkZWY5MDZjZjAyMjYKCSAgTmV3IHBhdGNoZXMgZHVlIHRvIHVwZGF0ZWQgbGliY2hlY2sgKGJhc2VkIG9uIDAuOS4xNCk6CgkgICogQ2hlY2tzIGluIG00L2NoZWNrLWNoZWNrcy5tNCB0byBjYXRlciBmb3IgbmV3IGRlcGVuZGVuY2llcwoJICAqIENvbmRpdGlvbmFsIGNvbXBpbGUtdGltZSBjb21wYXQgUE9TSVggZmFsbGJhY2tzIGZvciBsaWJjaGVjawoJICAqIEF2b2lkIHJlbGF0aXZlIHBhdGhzIGZvciBsaWJjaGVjayBoZWFkZXIgZmlsZXMKCSAgKiBNYWtlIHRpbWVyX2NyZWF0ZSgpIHVzYWdlIGRlcGVuZCBvbiBwb3NpeCB0aW1lcnMsIG5vdCBsaWJydAoJICAqIFJlbHkgb24gZGVmYXVsdCBBWF9QVEhSRUFEIGJlaGF2aW9yIHRvIGFsbG93IEhBVkVfUFRIUkVBRCB0byBiZSB1c2VkCgkgIHdoZW4gY2hlY2tpbmcgZm9yIHR5cGVzIGFuZCBmdW5jdGlvbnMgKGxpa2UgY2xvY2tfZ2V0dGltZSgpKQoJICAqIEF2b2lkIGRvdWJsZSBkZWNsYXJhdGlvbiBvZiBjbG9ja19nZXR0aW1lKCkgd2hlbiBhdmFpbGFiZSBvdXRzaWRlIG9mCgkgIGxpYnJ0IGJ5IG1ha2luZyBjb21wYXQgY2xvY2tfZ2V0dGltZSgpIGRlY2xhcmF0aW9uIGNvbmRpdGlvbmFsCgkgICogY2hlY2sgMC45LjkgcmVuYW1lZCBfZmFpbF91bmxlc3MoKSBhbmQgMC45LjEyIGxhdGVyIHJlbmFtZWQgaXQgYWdhaW4KCSAgdG8gX2NrX2Fzc2VydF9mYWlsZWQoKSwgc28gQVNTRVJUX3tDUklUSUNBTCxXQVJOSU5HfSgpIG5vdyBjYWxscyB0aGlzCgkgIGZ1bmN0aW9uCgkgICogUmVtb3ZlIGxpYmNoZWNrIGZhbGxiYWNrIGluZnJhc3RydWN0dXJlIGZvciBtYWxsb2MoKSwgcmVhbGxvYygpLAoJICBnZXR0aW1lb2ZkYXkoKSBhbmQgc25wcmludGYoKSBzaW5jZSBlaXRoZXIgdGhleSBhcHBlYXIgdG8gYmUKCSAgYXZhaWxhYmxlIG9yIHRoZXkgaW50cm9kdWNlIGV2ZW4gbW9yZSBkZXBlbmRlbmNpZXMuCgkgIFRoZSByZXN1bHQgaXMgYW4gZW1iZWRkZWQgY2hlY2sgaW4gZ3N0cmVhbWVyIHRoYXQgaGFzIGJlZW4gdGVzdGVkIGJ5CgkgIHJ1bm5pbmcgY2hlY2sgdGVzdHMgaW4gY29yZSwgLWJhc2UsIC1nb29kLCAtYmFkLCAtdWdseSBhbmQgcnRzcC1zZXJ2ZXIKCSAgb24gTGludXgsIE9TWCBhbmQgV2luZG93cy4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzgyNgoKMjAxNC0xMS0xNSAxMjo1MzozMiArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svYWxhcm0uYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suaC5pbjoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfZXJyb3IuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfZXJyb3IuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfaW1wbC5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19saXN0LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xpc3QuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbG9nLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xvZy5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19tc2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbXNnLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcGFjay5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wcmludC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wcmludC5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfc3RyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3N0ci5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jbG9ja19nZXR0aW1lLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbG9jYWx0aW1lX3IuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svc3Ryc2lnbmFsLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL3RpbWVyX2NyZWF0ZS5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay90aW1lcl9kZWxldGUuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svdGltZXJfc2V0dGltZS5jOgoJICBjaGVjazogSW1wb3J0IHZlcnNpb24gMC45LjE0CgkgIFRoaXMgbGlmdHMgdGhlIGZpbGVzIGFsbW9zdCB2ZXJiYXRpbSAodGhlIGNoYW5nZXMgYmVpbmcgcnVubmluZyB0aG91Z2gKCSAgZ3N0LWluZGVudCBhbmQgZml4aW5nIHRoZSBGU0YgYWRkcmVzcykgZnJvbSB0aGUgdXBzdHJlYW0gcmVzcG9zaXRvcnkuCgkgIFRoZXJlZm9yZSB0aGlzIGNvbW1pdCByZXZlcnRzIHNvbWUgR1N0cmVhbWVyLXNwZWNpZmljIHBhdGNoZXMgdG8gY2hlY2sKCSAgdGhhdCB3aWxsIGJlIHJlaW50cm9kdWNlZCBuZXh0LgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3ODI2CgoyMDE0LTExLTA0IDE5OjExOjUwICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgdHlwZWZpbmQ6IFByb3BhZ2F0ZSBpbnB1dCBidWZmZXIgb2Zmc2V0CgkgIFRoZSBpbml0aWFsIGJ1ZmZlcnMgbWlnaHQgaGF2ZSBub24tZGVmYXVsdCBvZmZzZXRzLCBtYWtlIHN1cmUgdGhleSBnZXQKCSAgcHJvcGFnYXRlZCBpZiBwcmVzZW50LgoKMjAxNC0xMC0wNyAxNjo0NDo0NSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGNsYW1wIHJlcG9ydGVkIHBvc2l0aW9uIGJhc2VkIG9uIGRpcmVjdGlvbgoJICBXaGVuIHVzaW5nIGEgbmVnYXRpdmUgcmF0ZSAocmF0ZSBiZWluZyBzZWdtZW50LnJhdGUgKiBzZWdtZW50LmFwcGxpZWRfcmF0ZSksCgkgIHdlIHdpbGwgZW5kIHVwIHJlcG9ydGluZyBkZWNyZWFzaW5nIHBvc2l0aW9ucywgdGhlcmVmb3JlIGFkanVzdCB0aGUgY2xhbXBpbmcKCSAgYWdhaW5zdCBsYXN0IHJlcG9ydGVkIHZhbHVlIGFjY29yZGluZ2x5LgoJICBGaXhlcyBwb3NpdGlvbnMgZ2V0dGluZyBwcm9wZXJseSByZXBvcnRlZCB3aXRoIGFwcGxpZWRfcmF0ZSA8IDAuMAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM4MDkyCgoyMDE0LTExLTI4IDE0OjE3OjU0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYnVmZmVyaW5nLnhtbDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIERvbid0IGNvbXBhcmUgYm9vbGVhbnMgZm9yIGVxdWFsaXR5IHRvIFRSVUUgYW5kIEZBTFNFCgkgIFRSVUUgaXMgMSwgYnV0IGV2ZXJ5IG90aGVyIG5vbi16ZXJvIHZhbHVlIGlzIGFsc28gY29uc2lkZXJlZCB0cnVlLiBDb21wYXJpbmcKCSAgZm9yIGVxdWFsaXR5IHdpdGggVFJVRSB3b3VsZCBvbmx5IGNvbnNpZGVyIDEgYnV0IG5vdCB0aGUgb3RoZXJzLgoJICBBbHNvIG5vcm1hbGl6ZSBib29sZWFucyBpbiBhIGZldyBwbGFjZXMuCgoyMDE0LTExLTMwIDIzOjUwOjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50c19wcml2YXRlLmM6CgkgIHBsdWdpbnM6IGZpeCBidWlsZCBvbiB3aW5kb3dzCgkgIGdzdGVsZW1lbnRzX3ByaXZhdGUuYzogSW4gZnVuY3Rpb24gJ2dzdF93cml0ZXZfYnVmZmVycyc6CgkgIGdzdGVsZW1lbnRzX3ByaXZhdGUuYzoyMzY6NTE6IGVycm9yOiAnRVdPVUxEQkxPQ0snIHVuZGVjbGFyZWQKCjIwMTQtMTEtMjggMTU6MDk6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGZpbGVzaW5rOiB1c2Ugd3JpdGV2KCkgaW4gOjpyZW5kZXIoKSB0byB3cml0ZSBvdXQgbWVtb3JpZXMgd2l0aG91dCBtZXJnaW5nIHRoZW0KCjIwMTQtMTEtMjggMTU6MDQ6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSAgZmlsZXNpbms6IGltcGxlbWVudCA6OnJlbmRlcl9saXN0KCkgZnVuY3Rpb24gdGhhdCB1c2VzIHdyaXRldigpCgoyMDE0LTExLTI4IDE0OjQ3OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgZmRzaW5rOiB1c2Ugd3JpdGV2KCkgaW4gOjpyZW5kZXIoKSB0byB3cml0ZSBvdXQgbWVtb3JpZXMgd2l0aG91dCBtZXJnaW5nIHRoZW0KCjIwMTQtMTEtMjggMTQ6Mzk6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5oOgoJICBmZHNpbms6IGltcGxlbWVudCA6OnJlbmRlcl9saXN0KCkgdXNpbmcgd3JpdGV2KCkKCSAgV3JpdGUgb3V0IG11bHRpcGxlIGJ1ZmZlcnMgcG9zc2libHkgY29udGFpbmluZyBtdWx0aXBsZQoJICBtZW1vcmllcyB3aXRoIG9uZSB3cml0ZXYoKSBjYWxsLCB3aXRob3V0IG1lcmdpbmcgdGhlCgkgIGJ1ZmZlciBtZW1vcmllcyBmaXJzdCwgbGlrZSA6OnJlbmRlcigpIGRvZXMgY3VycmVudGx5LgoKMjAxNC0xMS0yOCAxNDozODozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50c19wcml2YXRlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHNfcHJpdmF0ZS5oOgoJICBwbHVnaW5zOiBhZGQgaGVscGVyIGZ1bmN0aW9uIGZvciB3cml0aW5nIGJ1ZmZlcnMgb3V0IHdpdGggd3JpdGV2KCkKCjIwMTQtMTEtMjggMTQ6MTU6MzAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdXBkYXRlIHRoZSBkdXJhdGlvbiB2YXJpYWJsZSBiZWZvcmUgZW1pdHRpbmcgdGhlIGJ1cwoJICBPdGhlcndpc2UgdGhlIGFwcGxpY2F0aW9uIG1pZ2h0IHN0aWxsIGdldCB0aGUgb2xkIHZhbHVlIGlmIGl0IGFza3MKCSAgYmV0d2VlbiB0aGUgbWVzc2FnZSBhbmQgdGhlIHJlYWwgdXBkYXRlLgoKMjAxNC0xMS0yOCAxNjoyNTowMiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IEZpeCBkb2MgYW5kIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2Ygc2VuZF9ldmVudAoJICBUaGUgZG9jdW1lbnRhdGlvbiBzdGF0ZXMgdGhhdCBnc3RfZWxlbWVudF9zZW5kX2V2ZW50IGlzIHRvICJzZW5kIGFuIGV2ZW50CgkgIHRvIGFuIGVsZW1lbnQiLgoJICBUaGVyZWZvcmUgd2UgKnNlbmQqIHVwc3RyZWFtIGV2ZW50cyB0byBhIHNvdXJjZSBwYWQgYW5kIGRvd25zdHJlYW0gZXZlbnRzCgkgIHRvIGEgc2luayBwYWQKCjIwMTQtMTEtMjggMTE6MTY6MDAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBGaWd1cmUgZGVmYXVsdCBzZW5kX2V2ZW50IGRpcmVjdGlvbiBoYW5kbGluZwoJICBJZiB3ZSBnZXQgYSBkb3duc3RyZWFtIGV2ZW50IHdlIHdhbnQgdG8gc2VuZCBpdCB0byBhIHJhbmRvbSBTSU5LIHBhZAoJICAoYW5kIHZpY2UtdmVyc2EpLgoKMjAxNC0xMS0yNyAxODowMDo1NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBDb21wYXJlIGNvcnJlY3QgY2FwcyB2YXJpYWJsZSBhZ2FpbnN0IE5VTEwgYmVmb3JlIGNvbXBhcmluZyBjYXBzCgoyMDE0LTExLTI3IDE3OjEwOjE5ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmMzJjZmNkIHRvIGVmMWZmZGMKCjIwMTQtMTEtMTAgMDk6NTg6NDcgKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBzY3JpcHRzOnVuaW5zdGFsbGVkOiBNYWtlIHN1ciB0aGUgR0VTIFRlc3RNYW5hZ2VyIGlzIHJlZ2lzdGVyZWQKCSAgU28gdGhhdCB3aGVuZXZlciB1c2VyIHdvcmsgd2l0aCBHc3RWYWxpZGF0ZSB0aGV5IGNhbiBydW4gR0VTIHRlc3RzCgkgIHdpdGhpbiB0aGUgZ3N0LXVuaW5zdGFsbGVkIGVudmlyb25tZW50CgoyMDE0LTExLTI2IDIxOjQ4OjA1ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxnaXRAYXJ1bnJhZ2hhdmFuLm5ldD4KCgkqIGNvbW1vbjoKCSogbTQvYXhfcHRocmVhZC5tNDoKCSAgYnVpbGQ6IFVwZGF0ZSBheF9wdGhyZWFkLm00IGFuZCBtb3ZlIGl0IHRvIGNvbW1vbgoJICBIYXMgc29tZSB1cGRhdGVzIGZvciBDbGFuZyBzdXBwb3J0IChtaWdodCBub3Qgd29yayB3aXRoIG5ld2VyIENsYW5nCgkgIHByb3Blcmx5LCB5ZXQpLCBBSVggc3VwcG9ydCwgYW5kIHNvbWUgbWlzYyBmaXhlcy4KCjIwMTQtMTEtMjUgMTc6NDY6MTIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkgIHRyaWdnZXJjb250cm9sc291cmNlOiBGaXggc2hvcnQgZGVzY3JpcHRpb24gZm9yIHRoZSBkb2NzCgoyMDE0LTExLTI1IDA5OjM5OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgIGRvY3M6IGFkZCBHU1RfR0xfKiBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gJ1J1bm5pbmcgR1N0cmVhbWVyJyBzZWN0aW9uCgoyMDE0LTExLTIzIDA1OjQ1OjI0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHBlcmNlbnRhZ2UgaXMgcmVsYXRpdmUgdG8gaGlnaC1wZXJjZW50CgkgIFdoZW4gY29tcGFyaW5nIHBlcmNlbnRhZ2UgdmFsdWVzLCBjb21wYXJlIHdpdGggMC0xMDAgc2NhbGUgYXMgaXQKCSAgaGFzIGFscmVhZHkgYmVlbiBtYWRlIHJlbGF0aXZlIHRvIDAtaGlnaF9wZXJjZW50LCBvdGhlcndpc2Ugd2UgbWFyawoJICB0aGUgcXVldWUgYXMgbm90IGJ1ZmZlcmluZyBhbmQgcmVwb3J0IGEgNTAlIHRvIHRoZSB1c2VyLiBUaGlzIGxlYWRzIHRvCgkgIGEgYnVmZmVyaW5nIHN0YWxsIGFzIHRoZSB1c2VyIGFzc3VtZXMgdGhlIHF1ZXVlIGlzIHN0aWxsIGJ1ZmZlcmluZyBidXQKCSAgaXQgdGhpbmtzIGl0IGlzbid0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2OTY5CgoyMDE0LTExLTIzIDA1OjQyOjUxIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogcGVyY2VudGFnZSBpcyBhbiBhYnNvbHV0ZSB2YWx1ZQoJICBtdWx0aXF1ZXVlJ3MgcXVldWVzIHN0b3JlZCBwZXJjZW50IHZhbHVlIGlzIHRoZSBwZXJjZW50YWdlIGZyb20gMAoJICB0byAxMDAgKG1heC1zaXplLSopIGFuZCBzaG91bGQgYmUgY29tcGFyZWQgd2l0aCB0aGUgcmVxdWVzdGVkIGxpbWl0CgkgIChoaWdoX3BlcmNlbnRhZ2UpIHNldCBieSB0aGUgdXNlciBhbmQgbm90IHdpdGggMTAwJSB0byBjaGVjayBpZgoJICBidWZmZXJpbmcgc2hvdWxkIHN0b3AuIE90aGVyd2lzZSB3ZSBhcmUgb25seSBzdG9wcGluZyBidWZmZXJpbmcgd2hlbiB0aGUKCSAgcXVldWUgZ2V0cyBjb21wbGV0ZWx5IGZ1bGwuCgoyMDE0LTExLTIwIDIxOjMzOjU5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEZpeCBjYXBzIGVxdWFsaXR5IGNoZWNrCgkgIEluc3RlYWQgb2YgY2hlY2tpbmcgaWYgb3VyIG91dGNhcHMgYXJlIGVxdWl2YWxlbnQgdG8gdGhlIHByZXZpb3VzIGluY2FwcywgYW5kCgkgIGlmIHRoYXQgaXMgdGhlIGNhc2Ugbm90IHNldHRpbmcgYW55IGNhcHMgb24gdGhlIHBhZC4uLiBjb21wYXJlIGFnYWluc3Qgb3VyCgkgIHByZXZpb3VzIG91dGNhcHMgYmVjYXVzZSB0aGF0J3Mgd2hhdCB3ZSBjYXJlIGFib3V0LgoJICBGaXhlcyBzb21lIGNhc2VzIHdoZXJlIHRoZSBvdXRjYXBzIGJlY2FtZSBlcXVpdmFsZW50IHRvIHRoZSBwcmV2aW91cyBpbmNhcHMsCgkgIGJ1dCB0aGUgcHJldmlvdXMgb3V0Y2FwcyB3ZXJlIGRpZmZlcmVudCBhbmQgd2Ugd2VyZSB0aGVuIHNlbmRpbmcgYnVmZmVycwoJICBkb3duc3RyZWFtIHRoYXQgd2VyZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBjYXBzIHdlIGZvcmdvdCB0byBzZXQgb24gdGhlIHBhZC4KCSAgUmVzdWx0aW5nIGluIGNyYXNoZXMgb3IgaW1hZ2UgY29ycnVwdGlvbi4KCjIwMTQtMTEtMjAgMTM6MzM6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBjb21tb246CgkgIGNvbW1vbjogdXBkYXRlIGZvciBiaXNvbiB2ZXJzaW9uIGNoZWNrIHBhdGNoCgkgIEZpeCBjb25maWd1cmUgY2hlY2sgd2l0aCBiaXNvbiBkZXZlbG9wbWVudCB2ZXJzaW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4OTQ2CgoyMDE0LTExLTIwIDEzOjM0OjMyICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGRvbid0IG92ZXJyZWFkIGlucHV0IHdoZW4gc2VhcmNoaW5nIGZvciAiCgkgIFdoZW4gc2VhcmNoaW5nIGZvciB0aGUgc3RyaW5nIHRlcm1pbmF0b3IgZG9uJ3QgcmVhZCBwYXN0IHRoZSBlbmRpbmcKCSAgMC1ieXRlIHdoZW4gZXNjYXBpbmcgY2hhcmFjdGVycy4KCSAgQWRkIHVuaXQgdGVzdCBmb3IgdmFyaW91cyBlc2NhcGluZyBjYXNlcy4KCjIwMTQtMTEtMDMgMTc6NDY6NTcgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZhaWwgZHJvcHBlZCBxdWVyaWVzCgkgIFByZXZpb3VzbHksIGRyb3BwaW5nIGEgcXVlcnkgZnJvbSBhIHBhZCBwcm9iZSB3b3VsZCBkZWVtIHRoZQoJICBxdWVyeSBzdWNjZWVkZWQsIGFuZCB0aGUgY2FsbGVyIG1pZ2h0IHRoZW4gYXNzdW1lIHRoZSBxdWVyeSdzCgkgIHJlc3VsdHMgYXJlIHZhbGlkLCBhbmQgdGh1cyBkZXJlZmVyZW5jZSBhbiBpbnZhbGlkIG9iamVjdAoJICBzdWNoIGFzIGEgR3N0Q2Fwcy4KCSAgV2Ugbm93IGFzc3VtZSBkcm9wcGVkIHF1ZXJpZXMgZGlkIG5vdCBzdWNjZWVkLiBEcm9wcGVkIGV2ZW50cwoJICBhbmQgYnVmZmVycyBhcmUgc3RpbGwgZGVlbWVkIGEgc3VjY2Vzcy4KCSAgQWRkZWQgYmFjayBhZnRlciBwcmV2aW91cyByZXZlcnQsIGFzIGl0J3MgYmVlbiBkb3VibGUgY2hlY2tlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MDAwMwoKMjAxNC0xMS0xMiAxMzo1NToyMyArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIFJldmVydCAicGFkOiBmYWlsIGRyb3BwZWQgcXVlcmllcyIKCSAgVGhpcyB3YXMgcHVzaGVkIGJ5IG1pc3Rha2UgYWxvbmcgd2l0aCBhbiB1bnJlbGF0ZWQgcGF0Y2guCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYzcxMDNjZTRiOGMxZGE3ZGNmYmNmMmVjODNhNDJhMzc2ZmI4OTZlMS4KCjIwMTQtMDUtMTMgMTE6MTg6MDggKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhbGxvdyBza2lwcGluZyBtb3JlIGRhdGEgdGhhbiB3ZSBjdXJyZW50bHkgaGF2ZQoJICBUaGlzIGNhbiBiZSB1c2VmdWwgZm9yIHNraXBwaW5nIGxhcmdlIHVud2FudGVkIGRhdGEsIHN1Y2ggYXMKCSAgbGFyZ2UgYWxidW0gYXJ0LCB3aGVuIHdlIGtub3cgdGhlIHNpemUgb2YgaXQgZnJvbSBhIG1ldGFkYXRhCgkgIGhlYWRlci4KCjIwMTQtMTEtMDMgMTc6NDY6NTcgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZhaWwgZHJvcHBlZCBxdWVyaWVzCgkgIFByZXZpb3VzbHksIGRyb3BwaW5nIGEgcXVlcnkgZnJvbSBhIHBhZCBwcm9iZSB3b3VsZCBkZWVtIHRoZQoJICBxdWVyeSBzdWNjZWVkZWQsIGFuZCB0aGUgY2FsbGVyIG1pZ2h0IHRoZW4gYXNzdW1lIHRoZSBxdWVyeSdzCgkgIHJlc3VsdHMgYXJlIHZhbGlkLCBhbmQgdGh1cyBkZXJlZmVyZW5jZSBhbiBpbnZhbGlkIG9iamVjdAoJICBzdWNoIGFzIGEgR3N0Q2Fwcy4KCSAgV2Ugbm93IGFzc3VtZSBkcm9wcGVkIHF1ZXJpZXMgZGlkIG5vdCBzdWNjZWVkLiBEcm9wcGVkIGV2ZW50cwoJICBhbmQgYnVmZmVycyBhcmUgc3RpbGwgZGVlbWVkIGEgc3VjY2Vzcy4KCjIwMTQtMTEtMTIgMTE6MzA6NTEgKzAxMDAgIEhhYWtvbiBTcG9yc2hlaW0gPGhhYWtvbi5zcG9yc2hlaW1AZ21haWwuY29tPgoKCSogZ3N0L2dzdHRhc2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogRml4IHBhdXNlL3N0b3AgcmFjZSBjb25kaXRpb24KCSAgSWYgYSB0YXNrIHRocmVhZCBpcyBjYWxsaW5nIHBhdXNlIG9uIGl0IHNlbGYgYW5kIHRoZQoJICBjb250cm9sbGluZy8ibWFpbiIgdGhyZWFkIHN0b3BzIHRoZSB0YXNrLCBpdCBjb3VsZCBlbmQgaW4gYSByYWNlCgkgIHdoZXJlIGdzdF90YXNrX2Z1bmMgbG9vcHMgYW5kIHRoZW4gY2hlY2tzIGZvciBwYXVzZWQgYWZ0ZXIgdGhlCgkgIGNvbnRyb2xsaW5nIHRocmVhZCBqdXN0IGNoYW5nZWQgdGhlIHRhc2sgc3RhdGUgdG8gc3RvcHBlZC4KCSAgSGVuY2UgdGhlIHRhc2sgd291bGQgYWN0dWFsbHkgY2FsbCBmdW5jIGFnYWluIGV2ZW4gdGhvdWdoIGl0IHdhcwoJICBib3RoIHBhdXNlZCBhbmQgc3RvcHBlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MDAwMQoKMjAxNC0xMS0xMCAxMDowMTowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBEb24ndCBjaGVjayBib29sZWFucyBmb3IgZXF1YWxpdHkgaW4gdGhlIHVuaXQgdGVzdAoJICBFdmVyeSB2YWx1ZSBvdGhlciB0aGFuIDAvRkFMU0UgaXMgVFJVRSwgPT0gVFJVRSB3aWxsIG9ubHkgY2hlY2sgZm9yIDEuCgoyMDE0LTExLTA1IDExOjUwOjQ3ICswMTAwICBKYW4gQWxleGFuZGVyIFN0ZWZmZW5zIChoZWZ0aWcpIDxqc3RlZmZlbnNAbWFrZS50dj4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RvYmplY3Q6IEFkZCBnc3Rfb2JqZWN0X2hhc19wYXJlbnQoKQoJICBBZGRzIGdzdF9vYmplY3RfaGFzX3BhcmVudCwgd2hpY2ggd29ya3MgbGlrZSBnc3Rfb2JqZWN0X2hhc19hbmNlc3RvcgoJICBidXQgZG9lcyBub3QgYXNjZW5kIGZ1cnRoZXIuCgkgIEFQSTogZ3N0X29iamVjdF9oYXNfcGFyZW50KCkKCjIwMTQtMTEtMDkgMTA6Mzc6NDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogRG9uJ3QgYm90aGVyIHRoZSBzdWJjbGFzcyB3aXRoIHNldHRpbmcgdGhlIHNhbWUgY2FwcyBtdWx0aXBsZSB0aW1lcwoKMjAxNC0xMS0wOSAxMDozMjoxOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IERvbid0IGJvdGhlciB0aGUgc3ViY2xhc3Mgd2l0aCBzZXR0aW5nIHRoZSBzYW1lIGNhcHMgbXVsdGlwbGUgdGltZXMKCjIwMTQtMTEtMDkgMTA6Mjk6NTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogRG9uJ3QgYm90aGVyIHRoZSBzdWJjbGFzcyB3aXRoIHNldHRpbmcgdGhlIHNhbWUgY2FwcyBtdWx0aXBsZSB0aW1lcwoKMjAxNC0xMS0wNyAwODoyMjowMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiByZW1vdmUgY29uZGl0aW9uYWwgZm9yIEdfVkFMVUVfQ09MTEVDVF9JTklUCgkgIFRoaXMgQVBJIGlzIGluIGdsaWIgc2luY2UgMi4yNCBhbmQgd2UgY3VycmVudGx5IHJlcXVpcmUgMi4zMiBhbmQgYWxyZWFkeSB1c2UKCSAgdGhpcyB1bmNvbmRpdGlvbmFsbHkgZWxzZXdoZXJlLgoKMjAxNC0xMS0wNSAxOTowOTozOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgcHJlc2V0OiByZW1vdmUgY29tbWVudGVkIGNvZGUKCSAgVGhlIEdRdWFyayB3YXMgbmV2ZXIgdXNlZC4KCjIwMTQtMTEtMDcgMTE6MzQ6MDggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkgIGdzdGNvbmZpZzogUHV0IGdzdGNvbmZpZy5oIGludG8gJChsaWJkaXIpL2dzdHJlYW1lci0xLjAvaW5jbHVkZQoJICBJdCdzIGFyY2hpdGVjdHVyZSBkZXBlbmRlbnQgYW5kIHNob3VsZCBub3QgYmUgcGxhY2VkIGludG8gdGhlIGluY2x1ZGUKCSAgZGlyZWN0b3J5IGFzIHRoZSBhc3N1bXB0aW9uIGlzIHRoYXQgYWxsIHRob3NlIGhlYWRlcnMgYXJlIGFyY2hpdGVjdHVyZQoJICBpbmRlcGVuZGVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczOTc2NwoKMjAxNC0xMS0wNyAxMDo1Njo0MiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiBGaXggZ29iamVjdC1pbnRyb3NwZWN0aW9uIHdhcm5pbmdzCgkgIGdzdHVyaS5jOjk5NzogRXJyb3I6IEdzdDogU2tpcHBpbmcgaW52YWxpZCBHVEstRG9jIGNvbW1lbnQgYmxvY2s6CgkgIC8qKiBwcml2YXRlIEdzdFVyaSBmdW5jdGlvbnMgKiovCgkgIF4KCSAgZ3N0dXJpLmM6MTE3OTogRXJyb3I6IEdzdDogU2tpcHBpbmcgaW52YWxpZCBHVEstRG9jIGNvbW1lbnQgYmxvY2s6CgkgIC8qKiBSRkMgMzk4NiBmdW5jdGlvbnMgKiovCgkgIF4KCjIwMTQtMTAtMjQgMjE6MjU6NTQgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSAgZGF0YXF1ZXVlOiBGaXggZ3N0X2RhdGFfcXVldWVfbmV3KCkgZGVzY3JpcHRpb24uCgkgIFJld29yZCB0aGUgZnVuY3Rpb24gZG9jcywgd2hpY2ggaGF2ZW4ndCBtYWRlIGFueSBzZW5zZSBzaW5jZQoJICBnc3RfZGF0YV9xdWV1ZV9uZXdfZnVsbCgpIHdhcyByZW1vdmVkIGEgZmV3IHllYXJzIGFnby4KCjIwMTQtMTEtMDMgMTg6Mjc6MjEgKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IEFuc3dlciB0aGUgcXVlcnkgcG9zaXRpb24gd2hlbiByZWNlaXZpbmcgaXQgZnJvbSB1cHN0cmVhbQoJICBDdXJyZW50bHkgd2UgYXJlIGp1c3QgcmV0dXJuaW5nIEZBTFNFLCBidXQgd2UgZG8gaGF2ZSB0aGUgaW5mb3JtYXRpb24KCSAgd2Ugc2hvdWxkIGp1c3QgYW5zd2VyIHRoZSBxdWVyeSB0aGUgc2FtZSB3YXkgYXMgd2hlbiBhbnN3ZXJpbmcgdGhyb3VnaAoJICB0aGUgR3N0RWxlbWVudC5xdWVyeSB2bWV0aG9kIGRlZmF1bHQgaW1wbGVtZW50YXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzk1ODAKCjIwMTQtMTAtMjIgMTQ6MDc6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2NhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogQWRkIGFuIG9wdGlvbmFsIGRlbGF5ZWQgY2FwcyBjaGFuZ2UgbW9kZQoJICBJbiB0aGlzIG1vZGUgd2UgYWNjZXB0IHByZXZpb3VzbHkgc2V0IGZpbHRlciBjYXBzIHVudGlsCgkgIHVwc3RyZWFtIHJlbmVnb3RpYXRlcyB0byBzb21ldGhpbmcgdGhhdCBpcyBjb21wYXRpYmxlCgkgIHRvIHRoZSBjdXJyZW50IGZpbHRlciBjYXBzLgoJICBUaGlzIGFsbG93cyBkeW5hbWljIGNhcHMgY2hhbmdlcyBpbiB0aGUgcGlwZWxpbmUgZXZlbgoJICBpZiB0aGVyZSBpcyBhIHF1ZXVlIGJldHdlZW4gYW55IGNvbnZlcnNpb24gZWxlbWVudAoJICBhbmQgdGhlIGNhcHNmaWx0ZXIuIFdpdGhvdXQgdGhpcyB3ZSB3b3VsZCBnZXQgbm90LW5lZ290aWF0ZWQKCSAgZXJyb3JzIGlmIHRpbWluZyBpcyBiYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzkwMDIKCjIwMTQtMTEtMDIgMjA6MTY6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dG9jLmM6CgkgIHRvYzogbWlub3IgY29kZSBjbGVhbi11cAoJICBBbmQgZ2V0IHJpZCBvZiBnX2xpc3RfcHJlcGVuZC9nX2xpc3RfcmV2ZXJzZQoJICBhbnRpLXBhdHRlcm4gd2hpbGUgd2UncmUgYXQgaXQuCgoyMDE0LTExLTAyIDE4OjUxOjA4ICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGVuc3VyZSBHU3RyZWFtZXIgaW5pdGlhbGl6YXRpb24gZGVidWcgbWVzc2FnZSBpcyBkaXNwbGF5ZWQKCSAgVGhlIEdTVF9JTkZPICgiaW5pdGlhbGl6ZWQgR1N0cmVhbWVyIHN1Y2Nlc2Z1bGx5IikgaXMgY3VycmVudGx5IGF0IHRoZSBlbmQgb2YKCSAgZ3N0X2luaXRfY2hlY2sgd2hpY2ggaXNuJ3QgZ3VhcmFudGVlZCB0byBiZSBydW4gc2luY2UgR1N0cmVhbWVyIGNhbiBiZQoJICBpbml0aWFsaXplZCBieSB1c2luZyBpbml0X3ByZSBhbmQgaW5pdF9wb3N0IGRpcmVjdGx5IGZyb20gR09wdGlvbkNvbnRleHQgbGlrZQoJICBnc3QtbGF1bmNoIGRvZXMuIEVuc3VyZSB0aGlzIG1lc3NhZ2UgaXMgZGlzcGxheWVkIGJ5IG1vdmluZyBpdCB0byBpbml0X3Bvc3QuCgoyMDE0LTExLTAxIDE5OjU2OjQxICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgZG9jOiBEbyBub3QgdXNlIGRlcHJlY2F0ZWQgZ3RrLWRvYyAnUmVuYW1lIHRvJyB0YWcKCSAgR09iamVjdCBpbnRyb3NwZWN0aW9uIEdUSy1Eb2MgdGFnICJSZW5hbWUgdG8iIGhhcyBiZWVuIGRlcHJlY2F0ZWQsIGNoYW5naW5nIHRvCgkgIHJlbmFtZS10byBhbm5vdGF0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5NTE0CgoyMDE0LTExLTAxIDIyOjMwOjMwICswMTAwICBBdXLDqWxpZW4gWmFuZWxsaSA8YXVyZWxpZW4uemFuZWxsaUBkYXJrb3NwaGVyZS5mcj4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBhZGQgR19QQVJBTV9ERVBSRUNBVEVEIHRvIGtub3duIGZsYWdzCgkgIERpc3BsYXkgJ2RlcHJlY2F0ZWQnIGluc3RlYWQgb2YgZmxhZyB2YWx1ZSB3aGVuIHVzaW5nIEdfUEFSQU1fREVQUkVDQVRFRAoJICBpbiBlbGVtZW50IHByb3BlcnRpZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzk1MTgKCjIwMTQtMTAtMzEgMTY6MTA6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay90b29scy9nc3RpbnNwZWN0LmM6CgkgIHRlc3RzOiByZWZhY3RvciB0b29scyBjaGVjayBhIGxpdHRsZQoJICBVc2UgYW4gYXJyYXkgb2YgY29uc3RhbnQgc3RyaW5ncyBzbyBpZiBhcmd1bWVudHMgZ2V0CgkgIHJlbW92ZWQgZnJvbSBpdCB0aGV5IGFyZSBub3QgY29uc2lkZXJlZCBsZWFrZWQsIGFuZAoJICB2YWxncmluZCBpcyBoYXBweS4gU3RpbGwgc29tZSBzdHVmZiBsZWFraW5nIGluIEdMaWIKCSAgdGhvdWdoLgoKMjAxNC0xMC0zMCAyMzoxNDo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJICB0ZXN0czogZml4IG91dC1vZi1ib3VuZHMgbWVtb3J5IGFjY2VzcyBpbiBieXRlcmVhZGVyIHVuaXQgdGVzdAoJICBDYXVnaHQgYnkgLWZzYW5pdGl6ZT1hZGRyZXNzIC8gbGliYXNhbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczOTQzMQoKMjAxNC0xMC0yOCAxOToxNjo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBtYWtlIGdzdF9pbml0KCkgdGhyZWFkLXNhZmUKCSAgQmVjYXVzZSB3ZSBjYW4sIGFuZCB0aGVyZSBpc24ndCByZWFsbHkgYW55CgkgIHJlYXNvbiBub3QgdG8gZG8gc28uCgoyMDE0LTEwLTI4IDA5OjI4OjI4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmRzcmMuYzoKCSAgdGVzdHM6IGZkc3JjOiBkb24ndCBpZ25vcmUgcmV0dXJuIHZhbHVlIG9mIHdyaXRlKCkKCSAgQ2F1c2VzIGNvbXBpbGVyIHdhcm5pbmdzIG9uIHNvbWUgc3lzdGVtcy4KCjIwMTQtMTAtMjggMDA6MDQ6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mZHNyYy5jOgoJICB0ZXN0czogZml4IGZkc3JjIHRlc3QgY29ybmVyIGNhc2UKCSAgTWFrZSBwaXBlIHNvY2tldCBub24tYmxvY2tpbmcsIHNvIHdlIGRvbid0CgkgIGVuZCB1cCBiZWluZyBibG9ja2VkIGluIGEgd3JpdGUgb24gdGhlIHBpcGUKCSAgd2hpbGUgdGhlIHNyYyBpcyBlb3MgYW5kIG5vdCByZWFkaW5nIGRhdGEKCSAgYW55IG1vcmUsIGFuZCB0aHVzIHdlIG5ldmVyIHVuYmxvY2sgYW5kIG5ldmVyCgkgIG5vdGljZSB0aGF0IHdlJ3JlIGRvbmUuIFRoaXMgd291bGQgaGFwcGVuCgkgIHF1aXRlIHJlbGlhYmx5IG9uIHRoZSBycGkuCgoyMDE0LTEwLTI3IDE3OjU2OjE1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA4NGQwNmNkIHRvIDdiYjJiY2UKCjIwMTQtMTAtMjUgMTc6MTU6NDIgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW5AYWNjb3N0ZWQubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogVHJpdmlhbCB0eXBvIGZpeAoKMjAxNC0xMC0yNCAxMjo1MTowNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGRvbid0IHVubG9jayBtdXRleCB0aGF0IGlzIG5vdCBsb2NrZWQKCSAgRml4ZXMgJ0F0dGVtcHQgdG8gdW5sb2NrIG11dGV4IHRoYXQgd2FzIG5vdCBsb2NrZWQnCgkgIHdhcm5pbmcgd2l0aCBuZXdlciBHTGlicyB3aGVuIHNpbmsgaXMgc2h1dCBkb3duIGluCgkgIGNlcnRhaW4gc2l0dWF0aW9ucy4gVHJpZ2dlcmVkIGJ5IHRoZSBkZWNvZGViaW4KCSAgdGVzdF9yZXVzZV93aXRob3V0X2RlY29kZXJzIHVuaXQgdGVzdCBpbiAtYmFzZQoJICBzb21ldGltZXMsIGVzcC4gb24gc2xvd2VyIG1hY2hpbmVzLgoKMjAxNC0xMC0yMiAxODoyNToyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSAuZGVmIGZvciBuZXcgX2dldF90eXBlKCkgZnVuY3Rpb24gZm9yIEdzdENvbnRyb2xQb2ludAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3NjE2CgoyMDE0LTA5LTI5IDIxOjEwOjE0ICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJICB0aW1lZHZhbHVlY29udHJvbHNvdXJjZTogQWRkIHNvbWUgc2lnbmFscyBhYm91dCB2YWx1ZXMgY2hhbmdlcwoJICBJbiBvcmRlciBmb3IgdXNlciB0byBiZSBhYmxlIHRvIHRyYWNrIGNoYW5nZXMgaW4gdGhlIHZhbHVlIHNldCBpbgoJICBHc3RUaW1lZFZhbHVlQ29udHJvbFNvdXJjZSB0aGUgZm9sbG93aW5nIHNpZ25hbHMgaGF2ZSBiZWVuIGFkZGVkOgoJICAqIHZhbHVlLWFkZGVkCgkgICogdmFsdWUtcmVtb3ZlZAoJICAqIHZhbHVlLWNoYW5nZWQKCSAgVG8gYmUgYWJsZSB0byB1c2UgYSBHc3RDb250cm9sUG9pbnQgdG8gYmUgbWFyc2hhbGxlZCBpbnRvIHRoZSBzaWduYWxzLAoJICB0aGUgR3N0Q29udHJvbFBvaW50IHN0cnVjdHVyZSBpcyBub3cgcmVnaXN0ZXJkIGFzIGEgR0JveGVkIHR5cGUuCgkgIE5ldyBBUEk6CgkgIH5+fn5+fn4KCSAgKiBHc3RUaW1lZFZhbHVlQ29udHJvbFNvdXJjZTo6dmFsdWUtYWRkZWQKCSAgKiBHc3RUaW1lZFZhbHVlQ29udHJvbFNvdXJjZTo6dmFsdWUtcmVtb3ZlZAoJICAqIEdzdFRpbWVkVmFsdWVDb250cm9sU291cmNlOjp2YWx1ZS1hZGRlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3NjE2CgoyMDE0LTEwLTIxIDEzOjAxOjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBhOGM4OTM5IHRvIDg0ZDA2Y2QKCjIwMTQtMTAtMjEgMTI6MTg6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiByZW1vdmUgZHVwbGljYXRlIGdzdF9tZXNzYWdlX2dldF90eXBlKCkgaW4gaW5pdAoJICBTcG90dGVkIGJ5OiBKYW4gU3RlZmZlbnMKCjIwMTQtMTAtMjEgMTI6NTc6NDUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBSRUFETUU6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNmU3NTQ5OCB0byBhOGM4OTM5CgoyMDE0LTEwLTIwIDE2OjM5OjM4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogaW5jbHVkZSB0aGUgYWN0dWFsIGRlbHRhIGluIHRoZSBtZXNzYWdlCgkgIEluY2x1ZGluZyB0aGUgYWN0dWFsIGRlbHRhIGluIHRoZSBtZXNzYWdlIG1ha2VzIGl0IGVhc3kgdG8gc2VlLCBpZiB0aGUgbmV3CgkgIGJ1ZmZlciBpcyBiZWhpbmQgb3IgYWhlYWQgYW5kIGhvdyBtdWNoLgoKMjAxNC0xMC0xOCAxODo0Mzo0MyArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IFRpZHkgaW5pdGlhbGlzYXRpb24KCSAgVXNlIHNvbWUgbWFjcm9zIHRvIG1ha2Ugb3VyIHZhbHVlIGZ1bmN0aW9ucyBzZXR1cCBhIGJpdAoJICB0aWRpZXIsIGFuZCBtaWNyby1vcHRpbWlzZSBhIGZldyByZWFsbG9jcyBieSBzZXR0aW5nIGFuCgkgIGluaXRpYWwgc2l6ZSBmb3IgdGhlIGdsb2JhbCB0eXBlIGFycmF5cy4KCjIwMTQtMTAtMTggMTc6Mjc6MDQgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWluZGVudDoKCSAgZ3N0LWluZGVudDogUnVuIGluZGVudCB0d2ljZS4gT25jZSBpcyBub3QgaWRlbXBvdGVudCwgdHdpY2Ugc2VlbXMgdG8gYmUuCgoyMDE0LTEwLTE2IDEwOjEzOjE0ICswNDAwICBBbmRyZWkgU2FyYWtlZXYgPHNhcmFrdXNoYUBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogV2FrZSB1cCBhbnkgd2FpdGluZyBzdHJlYW1zIGlmIHRoZSBjdXJyZW50IG9uZSBnb2VzIEVPUwoJICBPdGhlcndpc2Ugd2UgbWlnaHQgaGF2ZSB1bmxpbmtlZCBzdHJlYW1zIHdhaXRpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzgxOTgKCjIwMTQtMTAtMTcgMTI6NDE6MDQgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSAgdHlwZWZpbmQ6IHNpbXBsaWZ5IHJlZ2lzdHJhdGlvbiBjb2RlCgkgIFJlbW92ZSBhIHVzZWxlc3MgYXNzZXJ0ICh3ZSBqdXN0IGluc3RhbnRpYXRlZCB0aGlzIHR5cGUpLiBEcm9wIHRoZSBmcmVlJ2luZyBvZgoJICB0aGUgZXh0ZW5zaW9uIGFycmF5LiBBcyB3ZSBqdXN0IGNyZWF0ZWQgdGhlIGluc3RhbmNlIHRoaXMgaXMgYWx3YXlzIE5VTEwuCgoyMDE0LTEwLTE2IDEwOjU1OjM2ICswMjAwICBGZWxpeCBTY2h3YXJ6IDxmZWxpeC5zY2h3YXJ6QG9zcy5zY2h3YXJ6LmV1PgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtYWxsb2NhdGlvbi54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWNsb2NrLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtZXZlbnRzLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtcW9zLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdGFnZ2luZy54bWw6CgkgIGRvY3M6IHB3ZDogZml4IHR5cG9zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzg2MTIKCjIwMTQtMTAtMTEgMTk6Mjg6MjEgKzAyMDAgIExpbnVzIFN2ZW5zc29uIDxsaW51c3Auc3ZlbnNzb25AZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJICB0ZXN0czogQWRkIGEgdGVzdCBmb3IgcmVtb3ZpbmcgYSBidXMgd2F0Y2gKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTE5NQoKMjAxNC0wOC0xOSAyMzoyODo1MiArMDIwMCAgTGludXMgU3ZlbnNzb24gPGxpbnVzcC5zdmVuc3NvbkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVzOiBBZGQgYSBmdW5jdGlvbiB0byByZW1vdmUgYSBidXMgd2F0Y2gKCSAgSWYgYSBidXMgd2F0Y2ggaXMgYWRkZWQgdG8gdGhlIG5vbiBkZWZhdWx0IG1haW4gY29udGV4dCBpdCdzIG5vdAoJICBwb3NzaWJsZSB0byByZW1vdmUgaXQgdXNpbmcgZ19zb3VyY2VfcmVtb3ZlKCkuCgkgIEZpeGVzOiBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1MTk1CgoyMDE0LTEwLTA4IDIyOjUxOjU2ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuQGFjY29zdGVkLm5ldD4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBkb2NzOiBVcGRhdGUgR3N0UU9TVHlwZSBkb2N1bWVudGF0aW9uIGEgYml0CgkgIENvcnJlY3Rpb24gZm9yIHdobyBpcyBwcm9kdWNpbmcgZGF0YSB0b28gZmFzdCwgYW5kIHNvbWUgb3RoZXIgbWlub3IKCSAgY2xhcmlmaWNhdGlvbnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzgxNjYKCjIwMTQtMTAtMDggMTY6MDM6MjAgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtYWxsb2NhdGlvbi54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXFvcy54bWw6CgkgIGRvY3M6IHB3ZzogZml4IHR3byB0eXBvcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM4MTUzCgoyMDE0LTEwLTA4IDE1OjM3OjM3ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSAgZG9jczogcHdnOiBmaXggdHlwbyBpbiAnRHluYW1pYyBuZWdvdGlhdGlvbicgc2VjdGlvbgoJICBUaGUgcG9pbnQgb2YgdGhpcyBleGFtcGxlIGlzIHRvIHNob3cgaG93IHRvIHNldCBjYXBzCgkgIG9uIHRoZSBzb3VyY2UgcGFkIG9uY2UgaXQgaGFzIGJlZW4gc2V0IG9uIHRoZSBzaW5rIHBhZC4KCSAgU28sIGluIHBhc3N0aHJvdWdoIG1vZGUsIHRoZSBjYXBzIGlzIGp1c3QgY29waWVkIHRvIHRoZQoJICBzb3VyY2UgcGFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM4MTUzCgoyMDE0LTEwLTA4IDA5OjM3OjQxIC0wNzAwICBBbGVpeCBDb25jaGlsbG8gRmxhcXXDqSA8YWxlaXhAb2Jsb25nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBkb24ndCBsb2NrIG11bHRpcXVldWUgd2hlbiBwdXNoaW5nIHNlcmlhbGl6ZWQgcXVlcmllcwoJICBJZiB3ZSBhcmUgcHVzaGluZyBhIHNlcmlhbGl6ZWQgcXVlcnkgaW50byBhIHF1ZXVlIGFuZCB0aGUgcXVldWUgaXMKCSAgZmlsbGVkLCB3ZSB3aWxsIGVuZCBpbiBhIGRlYWRsb2NrLiBXZSBuZWVkIHRvIHJlbGVhc2UgdGhlIGxvY2sgYmVmb3JlCgkgIHB1c2hpbmcgYW5kIGFjcXVpcmUgaXQgYWdhaW4gYWZ0ZXJ3YXJkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3Nzk0CgoyMDE0LTEwLTA4IDAxOjMzOjUxICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IFVzZSBHU1RfUFRSX0ZPUk1BVCBpbiBkZWJ1ZyB0byBvdXRwdXQgYnVmZmVyIGRldGFpbHMKCSAgVXNlICVHU1RfUFRSX0ZPUk1BVCBpbnN0ZWFkIG9mICVwIGluIGRlYnVnIG91dHB1dCBzbyBhbGwgdGhlIGJ1ZmZlcgoJICBkZXRhaWxzIGFyZSBvdXRwdXQKCjIwMTQtMTAtMDYgMTM6Mzg6MjEgKzAyMDAgIE5pY29sYXMgSHVldCA8bmljb2xhcy5odWV0QHBhcnJvdC5jb20+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IGZpeCBtdWx0aS10aHJlYWQgZW50cnkgc3RhdHVzIGlzc3VlCgkgIFJ1bm5pbmcgdHdvIHRocmVhZHMsIG9uZSBleGVjdXRpbmcgdGhlIHRpbWVyIGFuZCBvbmUgdW5zY2hlZHVsaW5nIGl0LCB0aGUKCSAgdW5zY2hlZHVsZWQgc3RhdHVzIHNldCBieSB0aGUgc2Vjb25kIHRocmVhZCBpcyBzb21ldGltZXMgb3ZlcndyaXR0ZW4gYnkgdGhlCgkgIGZpcnN0IG9uZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzk5OQoKMjAxNC0xMC0wMyAxNDowNDo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBmaXggY29tcGlsYXRpb24KCjIwMTQtMTAtMDMgMTQ6NDQ6NDggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IGV4dHJhY3Qgc29tZSBjb21tb24gY29kZSBpbnRvIGhlbHBlcnMKCjIwMTQtMTAtMDMgMTQ6MDE6NTkgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IHNtYWxsIGNvZGUgY2xlYW51cHMKCSAgUmVuYW1lIFRJTUVTVEFNUCAtPiBQVFMuIE1vdmUgYSB2YXIgZG93biB0byB0aGUgc2NvcGUgd2hlcmUgaXQgaXMgdXNlZC4gVXNlCgkgIGdfcXVldWVfZnJlZV9mdWxsKCkuCgoyMDE0LTEwLTAzIDEzOjQ3OjQyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJICBpbnB1dHNlbGVjdG9yOiBmaXggcHJpbnRmIGZvcm1hdAoJICBUaGUgcGFkY291bnQgaXMgdWludC4gQWxzbyBhZGQgY29tbWVudHMgdG8gdGhlIGluc3RhbmNlIHZhcnMuCgoyMDE0LTEwLTAyIDAzOjMwOjI0ICswMjAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBkb24ndCBsZWFrIGNhcHMgaW4gZ3N0X2Jhc2VfcGFyc2VfcHJvY2Vzc19zdHJlYW1oZWFkZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzc2MgoKMjAxNC0xMC0wMyAxMzoxNDoyNSArMDIwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXBhcnNlLmM6CgkgIHRlc3RzOiBiYXNlcGFyc2U6IHNldF9zaW5rX2NhcHMgdmZ1bmMgc2hvdWxkJ3QgdGFrZSBvd25lcnNoaXAgb2YgdGhlIGNhcHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzc2MgoKMjAxNC0xMC0wMyAwOTo1NzozNyArMDEwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBmYWtlc3JjOiBtYXJrIHRoZSBwYXR0ZXJuIHByb3BlcnR5IGFzIHVudXNlZAoJICBSZXZlcnQgdGhlIHByZXZpb3VzIGNvbW1pdCB3aGljaCByZW1vdmVzIHRoZSBwYXR0ZXJuIHByb3BlcnR5IG9mIGZha2VzcmMgYmVjYXVzZQoJICBkb2luZyBzbyB3aWxsIGJyZWFrIEFCSS4gQnJpbmdpbmcgdGhlIHByb3BlcnR5IGJhY2sgYnV0IG1hcmtpbmcgaXQgYXMgdW51c2VkCgkgIGluIHRoZSBwcm9wZXJ0eSBzdHJpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc2ODMKCjIwMTQtMTAtMDMgMDk6MDE6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBSZXZlcnQgImJhc2VwYXJzZTogZG9uJ3QgbGVhayBjYXBzIGluIGdzdF9iYXNlX3BhcnNlX3Byb2Nlc3Nfc3RyZWFtaGVhZGVyIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDVlOGI0YmYwODUxODBmN2E0YzdhZTZlYzBmNTI1YmFlYWVkZDRkZjguCgkgIFRoaXMgY2F1c2VzIHJlZmNvdW50aW5nIGNyaXRpY2FscyBpbiB0aGUgYmFzZXBhcnNlIHVuaXQgdGVzdC4KCjIwMTQtMTAtMDIgMTM6NDU6MzQgKzAxMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkgIGZha2VzcmM6IHJlbW92aW5nIHVudXNlZCBwYXR0ZXJuIG9wdGlvbgoJICBFdmVudGhvdWdoIHRoZSAicGF0dGVybiIgcHJvcGVydHkgb2YgZmFrZXNyYyBjYW4gYmUgc2V0LCBpdCBpcyBuZXZlciB1c2VkLiBUaGUKCSAgb25seSBwYXR0ZXJuIHN1cHBvcnRlZCBpcyB0aGUgZGVmYXVsdCAweDAwIC0+IDB4ZmYsIGFuZCBpZiBhIHBhdHRlcm4gaXMgc2V0IGJ5CgkgIHRoZSB1c2VyIGl0IGlzIGlnbm9yZWQuIFJlbW92aW5nIHRoZSB1bnVzZWQgcHJvcGVydHkgYW5kIHZhcmlhYmxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3NjgzCgoyMDE0LTEwLTAyIDE0OjU1OjIyICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogQWRkIG1pc3NpbmcgYnJlYWsgaW4gc3dpdGNoCgoyMDE0LTEwLTAyIDExOjAwOjMyICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogdXBkYXRlIHNlZ21lbnQgcG9zaXRpb24gb24gR0FQIGV2ZW50cyB0byBjYWxjdWxhdGUgbGV2ZWxzIHByb3Blcmx5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc0OTgKCjIwMTQtMTAtMDIgMTA6NTc6NDMgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHVwZGF0ZSBzZWdtZW50IHBvc2l0aW9uIG9uIEdBUCBldmVudHMgdG8gY2FsY3VsYXRlIGxldmVscyBwcm9wZXJseQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3NDk4CgoyMDE0LTA5LTI3IDIwOjEwOjM0ICswMjAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHVwZGF0ZSBzZWdtZW50IHBvc2l0aW9uIG9uIEdBUCBldmVudHMgdG8gY2FsY3VsYXRlIGxldmVscyBwcm9wZXJseQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3NDk4CgoyMDE0LTEwLTAyIDAzOjMwOjI0ICswMjAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBkb24ndCBsZWFrIGNhcHMgaW4gZ3N0X2Jhc2VfcGFyc2VfcHJvY2Vzc19zdHJlYW1oZWFkZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzc2MgoKMjAxNC0xMC0wMiAxMDoxMzoyOCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBQdXNoIHBlbmRpbmcgZXZlbnRzIGJlZm9yZSBhIGJ1ZmZlciBhbHNvIGlmIHVwc3RyZWFtIG5ldmVyIGNvbmZpZ3VyZWQgY2FwcyBidXQgd2UgaGF2ZSBzcmNwYWQgY2FwcyBhbHJlYWR5CgkgIE90aGVyd2lzZSB3ZSBuZXZlciBzZW5kIHBlbmRpbmcgZXZlbnRzIGRvd25zdHJlYW0gdGhhdCBhcnJpdmUgYWZ0ZXIgd2UKCSAgY29uZmlndXJlZCBjYXBzIG9uIHRoZSBzcmNwYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc3MzUKCjIwMTQtMDktMjkgMTc6NDg6MjkgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHVyaTogRG9uJ3QgdW5jb25kaXRpb25hbGx5IHVzZSBnX2xpc3RfY29weV9kZWVwKCkKCSAgV2UgZG9uJ3QgZGVwZW5kIG9uIEdMaWIgMi4zNCB5ZXQgYW5kIGp1c3QgZm9yIHRoaXMgc2VlbXMgYSBiaXQgdXNlbGVzcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzU4NAoKMjAxNC0wOS0yOSAxNjoyMjo0NyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdHVyaS5jOgoJICB1cmk6IEluY2x1ZGUgb3VyIG93biBCU0QgbGljZW5zZWQgY29weSBvZiBzdHJjYXNlc3RyKCkgZm9yIFdpbmRvd3MgYW5kIG90aGVycwoKMjAxNC0wOS0yOSAxNTo1NDozNyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiBGaXggY29tcGlsZXIgd2FybmluZ3Mgd2l0aCBnY2MKCSAgVGhlc2UgYXJlIGFjdHVhbGx5IG5vdCB0cnVlLgoJICBnc3R1cmkuYzogSW4gZnVuY3Rpb24gJ19nc3RfdXJpX3N0cmluZ190b190YWJsZS5jb25zdHByb3AnOgoJICBnc3R1cmkuYzoxMzE2OjI3OiBlcnJvcjogJ3BjdF9rdl9zZXAnIG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbiBbLVdlcnJvcj1tYXliZS11bmluaXRpYWxpemVkXQoJICBmb3IgKG5leHRfc2VwID0gc3RyY2FzZXN0ciAodmFsdWUsIHBjdF9rdl9zZXApOyBuZXh0X3NlcDsKCSAgXgoJICBnc3R1cmkuYzoxMjgzOjI0OiBlcnJvcjogJ3BjdF9wYXJ0X3NlcCcgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCBpbiB0aGlzIGZ1bmN0aW9uIFstV2Vycm9yPW1heWJlLXVuaW5pdGlhbGl6ZWRdCgkgIG5leHRfc2VwID0gc3RyY2FzZXN0ciAobmV4dF9zZXAgKyAxLCBwY3RfcGFydF9zZXApKSB7CgkgIF4KCjIwMTQtMDktMjkgMTI6MTk6MzUgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHVyaTogRml4IG1lbW9yeSBsZWFrIGluIGdzdF91cmlfam9pbigpCgkgIFRoZSBtZXJnZWQgcGF0aCBzZWdtZW50cyBhcmUgYSBkZWVwLWNvcGllZCBsaXN0IGFuZCB3ZSBuZWVkIHRvIGZyZWUgdGhlCgkgIGNvbnRhaW5lZCBzdHJpbmdzIHRvbyBpbnN0ZWFkIG9mIGp1c3QgdGhlIGxpc3Qgbm9kZXMgdGhlbXNlbHZlcy4KCjIwMTQtMDctMzEgMjI6MTg6NTMgKzAxMDAgIERhdmlkIFdhcmluZyA8ZGF2aWQud2FyaW5nQHJkLmJiYy5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBHc3RVcmk6IEFkZCBHc3RVcmkgbWluaW9iamVjdCB0byBoYW5kbGUgVVJJcyBpbiBhbiBSRkMgMzk4NiBjb21wbGlhbnQgZmFzaGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI1MjIxCgoyMDE0LTA5LTI3IDEzOjU3OjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIHNjcmlwdHM6IGFkZCBnc3QtcnBpY2Ftc3JjIHRvIGdzdC11bmluc3RhbGxlZAoKMjAxNC0wOS0yNSAyMToyMTowOSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay90b29scy9nc3RpbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGZpeG1lOiBidW1wIGxlZnRvdmVyIDAuMTEgZml4bWUgY29tbWVudHMKCjIwMTQtMDktMjUgMjE6MDQ6MjMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6ICduZXdzZWdtZW50JyB0byAnc2VnbWVudCcgaW4gdGhlIGRvY3MKCSAgQnJpbmdzIHRoZSBhcGktZG9jcyBpbiBzeW5jIHdpdGggdGhlIDEuMCBhcGkgcmVuYW1lLgoKMjAxNC0wOS0yNSAyMDoyMzozMSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBtb3ZlIHRoZSBxdWljayByZXR1cm4gdXAKCSAgRG9uJ3QgYXNzaWduIGxvY2FsIHZhcnMgaWYgd2Ugc2tpcCBhbnl3YXkuIEFkZCBsb2dnaW5nIGZvciBmYWlsdXJlIGNvbmRpdGlvCgoyMDE0LTA5LTI1IDE5OjAxOjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogTWFrZWZpbGUuYW06CgkqIGNvbW1vbjoKCSAgdGVzdHM6IHBhcmFsbGVsaXNlICdtYWtlIHZhbGdyaW5kJwoJICBVc2UgJChNQUtFKSBpbnN0ZWFkIG9mICdtYWtlJyBpbnNpZGUgdGhlIE1ha2VmaWxlLAoJICBvdGhlcndpc2UgdGhlIG1ha2Ugd2lsbCBydW4gYXMgaWYgLWoxIGhhZCBiZWVuCgkgIHNwZWNpZmllZCBhbmQgY29tcGxhaW4gYWJvdXQgdGhlIGpvYiBzZXJ2ZXIgbm90CgkgIGJlaW5nIGF2YWlsYWJsZSwgYW5kIHdpdGggJChNQUtFKSBpbiBpbmhlcml0cyB0aGUKCSAgcGFyZW50IG1ha2UncyBzZXR0aW5ncyBpdCBzZWVtcy4KCSAgVXBncmFkZSBjb21tb24gc3VibW9kdWxlIGZvciBwYXJhbGxlbCBjaGVjay12YWxncmluZC4KCSAgTGV0IHRoaXMgc2V0dGxlIGEgYml0IGJlZm9yZSB1cGdyYWRpbmcgdGhlIG90aGVyIG1vZHVsZXMuCgoyMDE0LTA5LTI1IDE4OjU3OjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICB3aW4zMjogdXBkYXRlIC5kZWYgZmlsZQoJICBJdCdzIHNvcnRlZC4gSWYgaXQncyB1bnNvcnRlZCwgbWFrZSBjaGVjay1leHBvcnRzIGZhaWxzLgoKMjAxNC0wOS0yNSAxODo1NTowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHJlbW92ZSBjb25mdXNpbmcgd2FybmluZyBhYm91dCBydW5uaW5nIHVuZGVyIHZhbGdyaW5kCgkgIFdlJ3JlIG5vdCBhY3R1YWxseSBkb2luZyBhbnl0aGluZyBkaWZmZXJlbnRseSBhbnl3aGVyZSB3aGVuCgkgIHdlIGRldGVjdCB0aGF0IHdlJ3JlIHJ1bm5pbmcgdW5kZXIgdmFsZ3JpbmQsIHNvIGxldCdzIG5vdAoJICBwcmludCB0aGF0IGNvbmZ1c2luZyBtZXNzYWdlIHRoYXQgbWFrZXMgcGVvcGxlIHdvbmRlciBob3cKCSAgdGhleSBjYW4gc3dpdGNoIGl0IG9mZiBzbyB0aGV5IGNhbiB2YWxncmluZCB0aGUgbm9ybWFsCgkgIGNvZGUgcGF0aHMuIFNlZWluZyB0aGF0IHdlJ3JlIG5vdCBkb2luZyB0aGF0IG5vciBoYXZlIGRvbmUKCSAgc28gaW4gdGhlIGxhc3QgMTAgeWVhcnMgd2UgbWlnaHQganVzdCBhcyB3ZWxsIHJlbW92ZSB0aGUKCSAgZW50aXJlIGNoZWNrIGFjdHVhbGx5LgoKMjAxNC0wOS0yNSAxNjoyMTo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXBhcnNlLmM6CgkgIHRlc3RzOiBmaXggY2FwcyBsZWFrIGluIGJhc2VwYXJzZSB1bml0IHRlc3QKCjIwMTQtMDktMjUgMTQ6NTQ6MjMgKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hc2hnQGF4aXMuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9mbG93Y29tYmluZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBmbG93Y29tYmluZXI6IGFkZCBhIGdzdF9mbG93X2NvbWJpbmVyX2NsZWFyKCkgbWV0aG9kCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzczNTkKCSAgQVBJOiBnc3RfZmxvd19jb21iaW5lcl9jbGVhcigpCgoyMDE0LTA5LTI0IDEwOjExOjU0ICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgc2NyaXB0czogSGFuZGxlIGdzdC1weXRob24gaW4gZ3N0LXVuaW5zdGFsbGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDkwODIKCjIwMTQtMDYtMDMgMTQ6MjM6MzAgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBSZW1vdmUgRU9TIGV2ZW50IGZyb20gcGVuZGluZ19ldmVudCBsaXN0IG9uIEZMVVNIX1NUT1AKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTg2OAoKMjAxNC0wOS0yMiAxNDoyNzowNSArMDEwMCAgV2lsbGlhbSBNYW5sZXkgPHdpbGxAd2lsbGlhbW1hbmxleS5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGRvY3M6IEZpeCBHc3RCdWZmZXIgdHlwbyAibWVtb3J5IGJvY2siIC0+ICJtZW1vcnkgYmxvY2siCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzcxMTcKCjIwMTQtMDktMjIgMTc6Mjc6MzEgKzAxMDAgIFdpbGxpYW0gTWFubGV5IDx3aWxsQHdpbGxpYW1tYW5sZXkubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBkb2NzOiBJbXByb3ZlIGdzdF9idWZmZXJfZ2V0X21ldGEoKSB0byBjbGVhciB1cCBjb25mdXNpb24KCSAgSSB3YXMgY29uZnVzZWQgYnkgdGhlIGV4aXN0ZW5jZSBvZiBgZ3N0X2J1ZmZlcl9nZXRfbWV0YWAgYXMgaXQgc3VnZ2VzdGVkCgkgIHRvIG1lIHRoYXQgeW91IHNob3VsZCBvbmx5IGF0dGFjaCBvbmUgb2YgYW55IHR5cGUgb2YgR3N0TWV0YSB0byBhIGJ1ZmZlci4KCSAgSXQncyBwZXJmZWN0bHkgZmluZSB0byBhdHRhY2ggbXVsdGlwbGUgZnJvbSBhIHNpbmdsZSBBUEkgc28gSSdtCgkgIGRvY3VtZW50aW5nIHRoYXQgaGVyZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzEyOQoKMjAxNC0wOS0yMiAxOTowNTozMiArMDIwMCAgTWFyY2luIEtvbG55IDxtYXJjaW4ua29sbnlAZmx5dHJvbmljLnBsPgoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkgIGRhdGV0aW1lOiBhZGRlZCBtaXNzaW5nIGluY2x1ZGUgZGlyZWN0aXZlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3MTMzCgoyMDE0LTA5LTIzIDE0OjMxOjI5ICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBEbyBub3QgZm9yZ2V0IHRvIHJlbGVhc2UgdGhlIFFVRVVFX0xPQ0sgaW4gdGhlIG91dF9mbG93X2Vycm9yIHBhdGgKCSAgQXZvaWRpbmcgZGVhZGxvY2tzIQoKMjAxNC0wOS0yMyAxMjo1MzoxOCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBkb2NzOiBmaXggYSBzbWFsbCBjb250cmFkaXRpb24gaW4gdGhlIGRvY3MKCSAgVGhlIHZtZXRob2QgZ2V0X3NpemUoKSBzaGFsbCByZXR1cm4gdGhlIHNpemUgaW4gJ2Zvcm1hdCcgYXMgY29uZmlndXJlZCBieQoJICBfc2V0X2Zvcm1hdCgpLgoKMjAxNC0wOS0yMiAwOTozMzowNCArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogRG8gbm90IGhvbGQgR1NUX1FVRVVFX0xPQ0sgd2hpbGUgcG9zdGluZyBFUlJPUiBtZXNzYWdlcwoJICBUaGlzIG1pZ2h0IGNyZWF0ZSBkZWFkbG9ja3MgYW5kIHdlIG5lZWQgdG8gYXZvaWQgaG9sZGluZyBlbGVtZW50CgkgIHNwZWNpZmljIGxvY2sgd2hpbGUgcG9zdGluZyBtZXNzYWdlcwoJICBGb3IgZXhhbXBsZSBhIGRlYWRsb2NrIHdpbGwgaGFwcGVuIGlmIHdoaWxlIHBvc3RpbmcgdGhlIG1lc3NhZ2UsCgkgIHNvbWVvbmUgY29ubmVjdGVkIG9uIHRoZSBidXMgKHN5bmMpIHRyaWVzIHRvIERPVCB0aGUgcGlwZWxpbmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzcxMDIKCjIwMTQtMDktMTkgMTI6MDI6NDYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogZG8gbm90IHBvc3QgYnVmZmVyaW5nIG1lc3NhZ2VzIGhvbGRpbmcgdGhlIGxvY2sKCSAgSXQgbWlnaHQgY2F1c2UgZGVhZGxvY2tzIHRvIHBvc3QgbWVzc2FnZXMgd2hpbGUgaG9sZGluZyB0aGUgcXVldWUyCgkgIGxvY2suIFRvIGF2b2lkIHRoaXMgYSBuZXcgYm9vbGVhbiBmbGFnIGlzIHNldCB3aGVuZXZlciBhIG5ldwoJICBidWZmZXJpbmcgcGVyY2VudCBpcyBmb3VuZC4gVGhlIG1lc3NhZ2UgaXMgcG9zdGVkIGFmdGVyIHRoZSBsb2NrCgkgIGlzIHJlbGVhc2VkLgoJICBUbyBtYWtlIHN1cmUgdGhlIGJ1ZmZlcmluZyBtZXNzYWdlcyBhcmUgcG9zdGVkIGluIHRoZSByaWdodCBvcmRlciwgbWVzc2FnZXMKCSAgYXJlIHBvc3RlZCBob2xkaW5nIGFub3RoZXIgbG9jay4gVGhpcyBwcmV2ZW50cyAyIHRocmVhZHMgdHJ5aW5nIHRvIHBvc3QKCSAgbWVzc2FnZXMgYXQgdGhlIHNhbWUgdGltZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjk2OQoKMjAxNC0wOS0xOSAwOTo0MjoxMCArMDUzMCAgUmF2aSBLaXJhbiBLIE4gPHJhdmkua2lyYW5Ac2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIGdzdHVyaTogUmVtb3ZlIHVubmVjZXNzYXJ5IGNvZGUKCSAgZ3N0X3VyaV9oYW5kbGVyX3NldF91cmkoKSBmdW5jdGlvbiBoYXMgbmV3X3VyaSwgbG9jYXRpb24gYW5kIGNvbG9uCgkgIGFyZSBub3QgbmVjZXNzYXJ5LCB0aGV5IGNhbiBiZSByZW1vdmVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2ODc3CgoyMDE0LTA5LTE5IDAwOjMzOjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdGFnZ2luZy54bWw6CgkqIGRvY3MvcHdnL2ludHJvLWJhc2ljcy54bWw6CgkgIGRvY3M6IHB3ZzogZml4IHNvbWUgbGlua3MgdG8gdGhlIEFQSSBkb2NzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzY3NjIKCjIwMTQtMDktMTggMTg6NTU6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogcmVtb3ZlIEZJWE1FCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzU4NzgKCjIwMTQtMDktMTcgMjE6NDk6MTggLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogRml4IHNwZWxsaW5nIGVycm9yCgkgIFRoYW5rIHRvIEFkcmlhbiBPd2VuIGZvciByZXBvcnRpbmcgdGhpcyBlcnJvci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjgzOQoKMjAxNC0wOS0xNyAxNzoxNzoxMCArMDIwMCAgT2dueWFuIFRvbmNoZXYgPG9nbnlhbkBheGlzLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kZWxlbWVudDogZG8gbm90IGxlYWsgc3RpY2t5IGV2ZW50cyBpbiBmbHVzaF9zdG9wCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzY4MTMKCjIwMTQtMDktMTIgMTQ6NDI6MjMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBhdm9pZCBnbG9iYWwgdmFyaWFibGUgZm9yIGxvZ19maWxlCgkgIFVzZSB1c2VyX2RhdGEgdG8gcGFzcyB0aGUgbG9nX2ZpbGUgaGFuZGxlIHRvIHRoZSBsb2dnZXItZnVuY3Rpb24uCgkgIElmIG9uZSB3YW50cyB0byBjaGFuZ2UgdGhlIGxvZyB0YXJnZXQgKGUuZy4gR1NUX0RFQlVHX0ZJTEUpLCBzaW1wbHkgY2FsbAoJICBnc3RfZGVidWdfcmVtb3ZlX2xvZ19mdW5jdGlvbigpIGFuZCByZS1hZGQgdGhlIGhhbmRsZXIgd2l0aCB0aGUgbmV3IGxvZy10YXJnZXQKCSAgdXNpbmcgZ3N0X2RlYnVnX2FkZF9sb2dfZnVuY3Rpb24gKCkuCgoyMDE0LTA5LTE2IDEzOjQ4OjE4ICswMjAwICBPZ255YW4gVG9uY2hldiA8b2dueWFuQGF4aXMuY29tPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBhZGQgYW5ub3RhdGlvbnMgdG8gZ3N0X2V2ZW50X3BhcnNlX3RvY19zZWxlY3QoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2NzM5CgoyMDE0LTA5LTExIDE4OjAxOjU4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IGRvIG5vdCBwb3N0IG1lc3NhZ2VzIGhvbGRpbmcgdGhlIGxvY2sKCSAgSXQgbWlnaHQgY2F1c2UgZGVhZGxvY2tzIHRvIHBvc3QgbWVzc2FnZXMgd2hpbGUgaG9sZGluZyB0aGUgbXVsdGlxdWV1ZQoJICBsb2NrLiBUbyBhdm9pZCB0aGlzIGEgbmV3IGJvb2xlYW4gZmxhZyBpcyBzZXQgd2hlbmV2ZXIgYSBuZXcgYnVmZmVyaW5nIHBlcmNlbnQKCSAgaXMgZm91bmQuIFRoZSBtZXNzYWdlIGlzIHBvc3RlZCBhZnRlciB0aGUgbG9jayBjYW4gYmUgcmVsZWFzZWQuCgkgIFRvIG1ha2Ugc3VyZSB0aGUgYnVmZmVyaW5nIG1lc3NhZ2VzIGFyZSBwb3N0ZWQgaW4gdGhlIHJpZ2h0IG9yZGVyLCBtZXNzYWdlcwoJICBhcmUgcG9zdGVkIGhvbGRpbmcgYW5vdGhlciBsb2NrLiBUaGlzIHByZXZlbnRzIDIgdGhyZWFkcyB0cnlpbmcgdG8gcG9zdAoJICBtZXNzYWdlcyBhdCB0aGUgc2FtZSB0aW1lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2Mjk1CgoyMDE0LTA5LTE2IDE2OjA3OjQwICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGRvY3MvcHdnL290aGVyLWJhc2UueG1sOgoJICBkb2NzOiBmaXggdHlwbwoKMjAxNC0wOS0xNiAxMjoxNzo0OCArMDIwMCAgT2dueWFuIFRvbmNoZXYgPG9nbnlhbkBheGlzLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogQWRkIGFubm90YXRpb25zIHRvIGdzdF9xdWVyeV9hZGRfYWxsb2NhdGlvbl9wb29sKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjczNgoKMjAxNC0wOS0xNSAxNjozODoxNyArMDIwMCAgQXVyw6lsaWVuIFphbmVsbGkgPGF1cmVsaWVuLnphbmVsbGlAcGFycm90LmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBoYW5kbGUgcmVmZXJlbmNlIGluIHNldF9hbGxvY2F0aW9uIHJhdGhlciB0aGFuIGluIHByZXBhcmVfYWxsb2NhdGlvbgoJICBPdGhlcndpc2Ugd2UgY2FuIGZvcmdldCB0byB1bnJlZiBvYmplY3RzIGluIGVycm9yIGNhc2VzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2NjgwCgoyMDE0LTA5LTE1IDEzOjA2OjQwICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IFVzZSB0aGUgbmFtZSBwYXJhbWV0ZXIgb2YgZ3N0X2NoZWNrX3NldHVwX3NyY19wYWRfYnlfbmFtZSgpIGFuZCB0aGUgc2luayB2YXJpYW50CgkgIFRoaXMgd2FzIGhhcmRjb2RlZCB0byAic2luayIgLyAic3JjIiBieSBhY2NpZGVudCBpbiBwcmV2aW91cyByZWZhY3RvcmluZy4KCjIwMTQtMDktMTMgMjA6MTI6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgY29yZWVsZW1lbnRzOiBtYXJrIHByb3BlcnRpZXMgd2l0aCBNVVRBQkxFX1BMQVlJTkcKCjIwMTQtMDktMTEgMTU6NTI6MzIgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogQWRkIGEgZnVuY3Rpb24gdG8gY2hlY2sgZGVzdHJ1Y3Rpb24gb2Ygb2JqZWN0cwoJICBBZGQgYSBtZXRob2QgbGV0dGluZyBwZW9wbGUgdG8gZW5zdXJlIHRoYXQgdW5yZWZmaW5nIG9uZSBvYmplY3QKCSAgbGVhZHMgdG8gaXRzIGRlc3RydWN0aW9uLCBhbmQgcG9zc2libHkgdGhlIGRlc3RydWN0aW9uIG9mIG1vcmUgb2JqZWN0CgkgICh0aGluayBkZXN0cnVjdGlvbiBvZiBhIEdzdEJpbiBldGMuLi4pLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2NDc3CgoyMDE0LTA5LTEyIDE0OjEwOjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IGdzdC1pbnNwZWN0OiBkb24ndCBsaXN0IHBhZCBmdW5jdGlvbnMKCSAgRG9uJ3QgcHJpbnQgYWxsIHRoZSBkaWZmZXJlbnQgcGFkIGZ1bmN0aW9ucywgaXQncyBqdXN0CgkgIGNvbmZ1c2luZyBhbmQgbm8gb25lIGhhcyBldmVyIG5lZWRlZCB0byBrbm93IHRoaXMgZm9yCgkgIGFueXRoaW5nIGV2ZXIgYW55d2F5LCBpdCdzIGp1c3QgdXNlbGVzcyBpbmZvcm1hdGlvbi4KCSAgQmVzaWRlcywgd2UgYWxzbyBsYWJlbCB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbnMgYXMKCSAgJ2N1c3RvbScgaW1wbGVtZW50YXRpb25zICh0aGUgY29kZSB0aGF0IHRyaWVzIHRvCgkgIHByZXZlbnQgdGhhdCBkb2Vzbid0IGFjdHVhbGx5IHdvcmsgaXQgc2VlbXMpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2Mzc3CgoyMDE0LTA5LTEyIDE1OjIyOjE5ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IE1ha2Ugc3VyZSB0aGUgYnVmZmVyIHRvIGdldC9wdWxsX3JhbmdlKCkgaGFzIGF0IGxlYXN0IHRoZSByZXF1ZXN0ZWQgc2l6ZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1ODYxCgoyMDE0LTA5LTA1IDE4OjM2OjAyICswMDAwICBUaWFnbyA8dGlhZ29rYXRjaXBpc0BnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogQWRkaW5nIGRvY3VtZW50YXRpb24gdG8gdGhlIGdzdF9jaGVja19zZXR1cF9zaW5rX3BhZF9ieV9uYW1lIGZ1bmN0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQxOTAKCjIwMTQtMDktMTAgMTQ6NTM6MDAgKzAyMDAgIE9nbnlhbiBUb25jaGV2IDxvZ255YW5AYXhpcy5jb20+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGFkZCBhbm5vdGF0aW9ucyB0byBnc3RfcXVlcnlfc2V0X250aF9hbGxvY2F0aW9uX3Bvb2woKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy8vc2hvd19idWcuY2dpP2lkPTczNjQyNAoKMjAxNC0wOS0xMSAwOTozNToxNyArMDIwMCAgUsOpbWkgTGVmw6h2cmUgPHJlbWkubGVmZXZyZUBwYXJyb3QuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogZml4IHR5cG8gaW4gZGVzY3JpcHRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjQ1NQoKMjAxNC0wOS0wOSAyMDo0MzowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogbWlub3IgZG9jcyBmaXgKCjIwMTQtMDktMDcgMDE6MzA6MTYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5jOgoJICBSZXZlcnQgImRhdGF1cmlzcmM6IFJlbW92ZSB1bm5lY2Vzc2FyeSBlbHNlIGlmIGNvbmRpdGlvbiIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAzMDI0YWU5YzM4NDkwODE3YTc2YzgzZmVhYjNjODQ3Mjk4OWNhZmFkLgoJICBUaGUgKmJ1ZiBjYW4gYmUgTlVMTCBvciBub3QgZGVwZW5kaW5nIGlmIHRoZSBjYWxsZXIgb2YgZ3N0X3BhZF9nZXRfcmFuZ2UKCSAgZnVuY3Rpb24gcHJvdmlkZWQgb3Igbm90IGEgYnVmZmVyLgoKMjAxNC0wOS0wNCAxMzozODoyMSArMDUzMCAgVmluZWV0aCBUIE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuYzoKCSAgZGF0YXVyaXNyYzogUmVtb3ZlIHVubmVjZXNzYXJ5IGVsc2UgaWYgY29uZGl0aW9uCgkgIEluIGdzdF9kYXRhX3VyaV9zcmNfY3JlYXRlKCksIGJ1ZiBjYW5ub3QgYmUgTlVMTCwgaGVuY2UKCSAgZWxzZSBpZiAoKmJ1ZiAhPSBOVUxMKSB3aWxsIGJlIGludmFsaWQgc28gcmVtb3ZpbmcgdGhlCgkgIGVsc2UgaWYgY29uZGl0aW9uIGFuZCBhZGRpbmcgYSBjaGVjayB0byB1bnJlZmVyZW5jZSBidWYKCSAgaW4gZWxzZSBjb25kaXRpb24sIGp1c3QgaW4gY2FzZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1ODYxCgoyMDE0LTA5LTAzIDE3OjM4OjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSAgZGV2aWNlbW9uaXRvcjogZml4IHR5cG8gaW4gc2FtcGxlIGNvZGUgaW4gZG9jcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1OTc1CgoyMDE0LTA4LTI1IDExOjM0OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IGFkZCBmbHVzaC1zdG9wIG9uIGluYWN0aXZlIHBhZCB0ZXN0CgkgIENoZWNrIHRoYXQgcHVzaGluZyBmbHVzaC1zdG9wIG9uIGFuIGluYWN0aXZlIHBhZCBkb2VzIG5vdCBjbGVhciB0aGUKCSAgZmx1c2hpbmcgZmxhZy4KCjIwMTQtMDgtMjEgMTU6NDk6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IGFjY2VwdCBmbHVzaC1zdG9wIG9uIGluYWN0aXZlIHBhZHMKCSAgSW5hY3RpdmUgcGFkcyBzaG91bGQgYXQgYWxsIHRpbWVzIGhhdmUgdGhlIGZsdXNoaW5nIGZsYWcgc2V0LiBUaGlzIG1lYW5zCgkgIHRoYXQgd2hlbiB3ZSBnZXQgYSBmbHVzaC1zdG9wIG9uIGFuIGluYWN0aXZlIHBhZCB3ZSBtdXN0IGlnbm9yZSBpdC4KCSAgT24gc2lua3BhZHMsIG1ha2UgdGhpcyBtb3JlIGV4cGxpY2l0LiBXZSB1c2VkIHRvIG5vdCBjbGVhciB0aGUgZmx1c2gKCSAgZmxhZyBidXQgcmVtb3ZlIHRoZSBldmVudHMgYW5kIHRoZW4gcmV0dXJuIGFuIGVycm9yIGJlY2F1c2UgdGhlIGZsdXNoaW5nCgkgIGZsYWcgd2FzIHNldC4gTm93IGp1c3Qgc2ltcGx5IHJlZnVzZSB0aGUgZXZlbnQgd2l0aG91dCBkb2luZyBhbnl0aGluZy4KCSAgT24gc3JjcGFkcywgY2hlY2sgdGhhdCB3ZSBhcmUgdHJ5aW5nIHRvIHB1c2ggYSBmbHVzaC1zdG9wIGV2ZW50IGFuZAoJICByZWZ1c2UgaXQuIFdlIHdvdWxkIGFsbG93IHRoaXMgYW5kIG1hcmsgdGhlIHNyY3BhZCBhcyBub24tZmx1c2hpbmcKCSAgYW55bW9yZS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTM1NwoKMjAxNC0wOC0yNyAxNzowNjo1NyArMDUzMCAgUmF2aSBLaXJhbiBLIE4gPHJhdmkua2lyYW5Ac2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dC1zZWxlY3RvcjogU2VuZCBhbGwgZXZlbnRzIHRvIGFjdGl2ZSBzcmMgcGFkIGFuZCBFT1MgdG8gYWxsIHNyYyBwYWRzCgkgIEZpeGVzIHRlc3RzL2ljbGVzL291dHB1dC1zZWxlY3Rvci10ZXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjk4MTEKCjIwMTQtMDktMDIgMTI6MTE6NDQgKzA1MzAgIFZpbmVldGggVCBNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmM6CgkgIGRhdGF1cmlzcmM6IE1ha2UgZ2V0X3VyaSgpIHRocmVhZHNhZmUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTg2MQoKMjAxNC0wOC0yOCAxNzoyNDo1NiArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiBmaXggdHlwbyBpbiBhZHZhbmNlZC1kYXRhYWNjZXNzLnhtbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1NjA5CgoyMDE0LTA4LTI2IDIwOjE0OjQwICswMjAwICBBcm5hdWQgVnJhYyA8YXZyYWNAZnJlZWJveC5mcj4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBkbyBub3QgdG91Y2ggbWVtb3J5IHRhZyBmbGFnIHdoZW4gY29weWluZyBidWZmZXIgZmxhZ3MKCSAgVGhlIHRhZyBtZW1vcnkgZmxhZyB3aWxsIGJlIHNldCBsYXRlciBpZiB0aGUgbWVtb3J5IGlzIGFsc28gY29waWVkLiBUaGlzCgkgIHBhdGNoIGF2b2lkcyBidWZmZXJzIGJlaW5nIGZyZWVkIG5lZWRsZXNzbHkgaW4gYnVmZmVycG9vbHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzU1NzQKCjIwMTQtMDctMTUgMTY6MDY6NDkgKzAyMDAgIExpbnVzIFN2ZW5zc29uIDxsaW51c3Auc3ZlbnNzb25AZ21haWwuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IGdzdF9idXNfYWRkX3dhdGNoKCkgY2FuIHJldHVybiAwIG9uIGVycm9yCgkgIEZpeGVzOiBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1MTk1CgoyMDE0LTA4LTI1IDEzOjQ0OjMwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGhhbmRsZSBzdHJlYW1oZWFkZXJzIGJ5IHByZXBlbmRpbmcgdGhlbSB0byB0aGUgc3RyZWFtCgkgIEFkZCBhIGZpcnN0X2J1ZmZlciBib29sZWFuIHN0YXRlIGZsYWcgdG8gaGF2ZSBiYXNlcGFyc2UgZG8gYWN0aW9ucwoJICBiZWZvcmUgcHVzaGluZyBkYXRhLiBUaGlzIGlzIHVzZWQgdG8gY2hlY2sgdGhlIGNhcHMgZm9yIHN0cmVhbWhlYWRlcgoJICBidWZmZXJzIHRoYXQgYXJlIHByZXBlbmRlZCB0byB0aGUgc3RyZWFtLCBidXQgb25seSBpZiB0aGUgZmlyc3QgYnVmZmVyCgkgIGlzbid0IGFscmVhZHkgbWFya2VkIHdpdGggdGhlIF9IRUFERVIgZmxhZy4gSW4gdGhpcyBjYXNlLCBpdCBpcyBhc3N1bWVkCgkgIHRoYXQgdGhlIF9IRUFERVIgbWFya2VkIGJ1ZmZlciBpcyB0aGUgc2FtZSBhcyB0aGUgc3RyZWFtaGVhZGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1MDcwCgoyMDE0LTA4LTI3IDExOjAxOjAxICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuYzoKCSAgY29uY2F0OiBBbGxvdyBzZWVraW5nIG9uIHRoZSBjdXJyZW50bHkgcGxheWluZyBzdHJlYW0KCSAgVGhpcyBpcyBjb25zaXN0ZW50IHdpdGggdGhlIHN0cmVhbSB0aW1lIHJlcG9ydGluZy4KCjIwMTQtMDgtMjMgMTI6MjQ6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIGctaSAndHJhbnNmZXIgZnVsbCcgYW5ub3RhdGlvbnMgdG8gY2hhaW4gYW5kIGNoYWluX2xpc3QgZnVuY3Rpb25zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzUyMTAKCjIwMTQtMDgtMjIgMTA6MzI6MzggKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFubm90YXRlIEdzdFBhZEV2ZW50RnVuY3Rpb24gZXZlbnQgd2l0aCAndHJhbnNmZXIgZnVsbCcKCSAgVGhlIGNhbGxiYWNrIGlzIHN1cHBvc2VkIHRvIHRha2Ugb3duZXJzaGlwIG9mIHRoZSBldmVudCBzbwoJICBiZXN0IHRvIGJlIGV4cGxpY2l0IGFib3V0IGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1MjEwCgoyMDE0LTA4LTIwIDEyOjU1OjUxICswMjAwICBMaW51cyBTdmVuc3NvbiA8bGludXNzbkBheGlzLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkgIHRlc3RzOiBhZGQgdGVzdCB0aGF0IHRyaWdnZXJzIGRlYWRsb2NrIGluIHN0YXRlIGNoYW5nZSBvZiBxdWV1ZQoJICBXaGVuIHJlY2VpdmluZyBGTEFTSF9TVE9QIGluIGEgc3RhdGUgdHJhbnNpdGlvbiB0byBSRUFEWSwgYSBxdWV1ZQoJICBlbGVtZW50IGNhbiBlbmQgdXAgd2l0aCBhbiBhY3RpdmUgdGFzayB0aGF0IHdpbGwgbmV2ZXIgZW5kLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0Njg4CgoyMDE0LTA4LTIxIDE0OjAyOjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogZml4IHJhY2Ugd2hlbiBmbHVzaC1zdG9wIGV2ZW50IGNvbWVzIGluIHdoaWxzdCBzaHV0dGluZyBkb3duCgkgIERvbid0IHJlLXN0YXJ0IHRoZSBxdWV1ZSBwdXNoIHRhc2sgb24gdGhlIHNvdXJjZSBwYWQgd2hlbiBhCgkgIGZsdXNoLXN0b3AgZXZlbnQgY29tZXMgaW4gYW5kIHdlJ3JlIGluIHRoZSBwcm9jZXNzIG9mIHNodXR0aW5nCgkgIGRvd24sIG90aGVyd2lzZSB0aGF0IHRhc2sgd2lsbCBuZXZlciBiZSBzdG9wcGVkIGFnYWluLgoJICBXaGVuIHRoZSBlbGVtZW50IGlzIHNldCB0byBSRUFEWSBzdGF0ZSwgdGhlIHBhZHMgZ2V0IGRlLWFjdGl2YXRlZC4KCSAgVGhlIHNvdXJjZSBwYWQgZ2V0cyBkZWFjdGl2YXRlZCBiZWZvcmUgdGhlIHF1ZXVlJ3Mgb3duIGFjdGl2YXRlX21vZGUKCSAgZnVuY3Rpb24gb24gdGhlIHNvdXJjZSBwYWRzIGdldHMgY2FsbGVkICh3aGljaCB3aWxsIHN0b3AgdGhlIHRocmVhZCksCgkgIHNvIGNoZWNraW5nIHdoZXRoZXIgdGhlIHBhZCBpcyBhY3RpdmUgYmVmb3JlIHJlLXN0YXJ0aW5nIHRoZSB0YXNrIG9uCgkgIHJlY2VpdmluZyBmbHVzaC1zdG9wIHNob3VsZCBiZSBmaW5lLiBUaGUgcHJvYmxlbSB3b3VsZCBoYXBwZW4gd2hlbiB0aGUKCSAgZmx1c2gtc3RvcCBoYW5kbGVyIHdhcyBjYWxsZWQganVzdCBhZnRlciB0aGUgcXVldWUncyBhY3RpdmF0ZSBtb2RlCgkgIGZ1bmN0aW9uIGhhZCBzdG9wcGVkIHRoZSB0YXNrLgoJICBTcG90dGVkIGFuZCBkZWJ1Z2dlZCBieSBMaW51cyBTdmVuc3NvbiA8bGludXguc3ZlbnNzb25AYXhpcy5jb20+CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQ2ODgKCjIwMTQtMDgtMDYgMTQ6MDE6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJ5dGVyZWFkZXI6IGFkZCBnc3RfYnl0ZV9yZWFkZXJfcGVla19zdWJfcmVhZGVyKCkgYW5kIF9nZXRfc3ViX3JlYWRlcigpCgkgIEFkZHMgQVBJIHRvIGdldCBvciBwZWVrIGEgc3ViLXJlYWRlciBvZiBhIGNlcnRhaW4gc2l6ZSBmcm9tCgkgIGEgZ2l2ZW4gYnl0ZSByZWFkZXIuIFRoaXMgaXMgdXNlZnVsIHdoZW4gcGFyc2luZyBuZXN0ZWQgY2h1bmtzLAoJICBvbmUgY2FuIGVhc2lseSBnZXQgYSBieXRlIHJlYWRlciBmb3IgYSBzdWItY2h1bmsgYW5kIG1ha2UKCSAgc3VyZSBvbmUgbmV2ZXIgcmVhZHMgYmV5b25kIHRoZSBzdWItY2h1bmsgYm91bmRhcnkuCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX3BlZWtfc3ViX3JlYWRlcigpCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX2dldF9zdWJfcmVhZGVyKCkKCjIwMTQtMDctMjUgMTY6Mzk6NDAgKzAyMDAgIEF1csOpbGllbiBaYW5lbGxpIDxhdXJlbGllbi56YW5lbGxpQHBhcnJvdC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgZG9jczogbWFrZSBleHBsaWNpdCB0aGF0IHRoZSBjYXBzIHBhc3NlZCB0byBnc3RfYmFzZV9zcmNfc2V0X2NhcHMoKSBhcmUgJ3RyYW5mZXIgbm9uZScKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzc0MQoKMjAxNC0wOC0xNCAxODo1Mzo0MCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGFsd2F5cyBwcm94eSBjYXBzIHF1ZXJ5CgkgIE90aGVyd2lzZSBpdCB3b3VsZCBvbmx5IGJlIHByb3hpZWQgZm9yIHRoZSBhY3RpdmUgcGFkIHdoaWNoIGNhbiBsZWFkCgkgIHVwc3RyZWFtIHRvIHVzZSBhbiBpbmNvbXBhdGlibGUgY2FwcyBmb3IgdGhlIGRvd25zdHJlYW0gZWxlbWVudC4KCSAgRXZlbiBpZiBhIHJlY29uZmlndXJlIGV2ZW50IGlzIHNlbnQgdXBzdHJlYW0gd2hlbiB0aGUgcGFkIGlzIGFjdGl2YXRlZCwgdGhpcwoJICB3aWxsIHNhdmUgdGhlIGNhcHMgcmVjb25maWd1cmF0aW9uIGlmIGl0IGlzIGFscmVhZHkgdXNpbmcgYW4gYWNjZXB0YWJsZSBjYXBzLgoKMjAxNC0wOC0xNCAxNDozNzo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkgIGJhc2U6IGFuZCBmaXggYnVpbGQgd2l0aCBuZXcgZy1pIGFnYWluCgoyMDE0LTA4LTE0IDE0OjI1OjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSAgYmFzZTogcmVtb3ZlIGctaSBhbm5vdGF0aW9uIHRoYXQgbWFrZXMgb2xkZXIgZy1pci1zY2FubmVyIGNyYXNoCgkgIEp1c3QgcmVtb3ZlIG9uZSBza2lwIGFubm90YXRpb24gdGhhdCBjYXVzZXMgdGhpczoKCSAgKiogKGctaXItY29tcGlsZXI6MTI0NTgpOiBFUlJPUiAqKjogQ2F1Z2h0IE5VTEwgbm9kZSwgcGFyZW50PWVtcHR5CgkgIHdpdGggb2xkZXIgZy1pIHZlcnNpb25zIHN1Y2ggYXMgMS4zMi4xLgoKMjAxNC0wOC0xMyAxNDoxMjowMCArMDIwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cGhpbG5AaWdhbGlhLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBkZXN0cm95IHNpZ25hbCB3YXRjaCBmcm9tIHRoZSBjb250ZXh0IGl0IHdhcyBtYXBwZWQgdG8KCSAgRG9uJ3QgcmVseSBvbiBnX3NvdXJjZV9yZW1vdmUoKSBiZWNhdXNlIGl0IG9wZXJhdGVzIG9uIHRoZSBtYWluCgkgIGNvbnRleHQuIElmIGEgc2lnbmFsIHdhdGNoIHdhcyBhZGRlZCB0byBhIG5ldyB0aHJlYWQtZGVmYXVsdCBjb250ZXh0CgkgIGdfc291cmNlX3JlbW92ZSgpIHdvdWxkIGhhdmUgbm8gZWZmZWN0LiBTbyBzaW1wbHkgdXNlCgkgIGdfc291cmNlX2Rlc3Ryb3koKSB0byBhdm9pZCB0aGlzIHByb2JsZW0uCgkgIEFkZGl0aW9uYWxseSB0aGUgc291cmNlX2lkIHdhcyByZW1vdmVkIGZyb20gR3N0QnVzUHJpdmF0ZSBiZWNhdXNlIGl0CgkgIHdhcyByZWR1bmRhbnQgd2l0aCB0aGUgc2lnbmFsIHdhdGNoIEdTb3VyY2UgYWxzbyBzdG9yZWQgaW4gdGhhdAoJICBzdHJ1Y3R1cmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQ3MTYKCjIwMTQtMDgtMDcgMTI6MTg6MDQgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBOb3QgcG9zdCBCVUZGRVJJTkcgbWVzc2FnZSBpZiBvbmUgb2YgdGhlIHNpbmdsZXF1ZXVlIGRvZXNuJ3QgbmVlZCBpdAoJICBJbWFnaW5lIHRoZSBmb2xsb3dpbmcgJ3BpcGVsaW5lJwoJICAtLS0tLS0tLS0tLS0tLQoJICBwMS98ICdmdWxscXVldWUnICB8LS0tICdsYWdneScgZG93bnN0cmVhbQoJICAtLS0tLS0tLS0gIC8gfCAgICAgICAgICAgICAgfAoJICAtfCBkZW11eGVyIHwgICB8IG11bHRpcXVldWUgICB8CgkgIC0tLS0tLS0tLSAgXCB8ICAgICAgICAgICAgICB8CgkgIHAyXHwgJ2VtcHR5cXVldWUnIHwtLS0gJ2Zhc3QnIGRvd25zdHJlYW0KCSAgLS0tLS0tLS0tLS0tLS0KCSAgSW4gdGhlIGNhc2UgZG93bnN0cmVhbSBvZiBvbmUgc2luZ2xlIHF1ZXVlIChmdWxscXVldWUpIGhhcyAoYSBsb3Qgb2YpIGxhdGVuY3kKCSAgKGZvciBleGFtcGxlIGZvciByZXZlcnNlIHBsYXliYWNrIHdpdGggdmlkZW8pLCB3ZSBjYW4gZW5kIHVwIGhhdmluZyB0aGUgb3RoZXIKCSAgU2luZ2xlUXVldWUgKGVtcHR5cXVldWUpIGVtcHRpZWQsIGJlZm9yZSB0aGF0IGZ1bGxxdWV1ZSBnZXRzCgkgIHVuYmxvY2tlZC4gSW4gdGhlIG1lYW50aW1lLCB0aGUgZGVtdXhlciB0cmllcyB0byBwdXNoIG9uIGZ1bGxxdWV1ZSwgYW5kCgkgIGlzIGJsb2NraW5nIHRoZXJlLgoJICBJbiB0aGF0IGNhc2UgdGhlIGN1cnJlbnQgY29kZSB3aWxsIHBvc3QgYSBCVUZGRVJJTkcgbWVzc2FnZSBvbiB0aGUgYnVzIHdoZW4KCSAgZW1wdHlxdWV1ZSBnZXRzIGVtcHRpZWQsIHRoYXQgbGVhZHMgdG8gdGhlIGFwcGxpY2F0aW9uIHNldHRpbmcgdGhlIHBpcGVsaW5lIHN0YXRlIHRvCgkgIFBBVVNFRC4gU28gbm93IHdlIGVuZCB1cCBpbiBhIHNpdHVhdGlvbiB3aGVyZSAnbGFnZ3kgZG93bnN0cmVhbScgaXMKCSAgcHJlcm9sbGVkIGFuZCB3aWxsIG5vdCB1bmJsb2NrIGFueW1vcmUgYmVjYXVzZSB0aGUgcGlwZWxpbmUgaXMgc2V0IHRvCgkgIFBBVVNFRCwgdGhlIGZ1bGxlcXVldWUgZG9lcyBub3QgaGF2ZSBhIGNoYW5jZSB0byBiZSBlbXB0aWVkIGFuZAoJICB0aGUgZW1wdHlxdWV1ZSBjYW4gbm90IGdldCBmaWxsZWQgYW55bW9yZSBzbyBubyBtb3JlIEJVRkVSUklORyBtZXNzYWdlCgkgIHdpbGwgYmUgcG9zdGVkIGFuZCB0aGUgcGlwZWxpbmUgaXMgc3R1Y2tlZCBpbiBQQVVTRUQgZm9yIHRoZSBldGVybml0eS4KCSAgTWFraW5nIHN1cmUgdGhhdCB3ZSBkbyBub3QgdHJ5IHRvICJidWZmZXIiIGlmIG9uZSBvZiB0aGUgc2luZ2xlIHF1ZXVlCgkgIGRvZXMgbm90IG5lZWQgYnVmZmVyaW5nLCBwcmV2ZW50cyB0aGlzIHNpdHV0YXRpb24gZnJvbSBoYXBwZW5pbmcgdGhvdWdoIGl0IGxldHMgdGhlCgkgIG9wb3J0dW5pdHkgZm9yIGJ1ZmZlcmluZyBpbiBhbGwgb3RoZXIgY2FzZXMuCgkgIFRoYXQgaW1wbGVtZW50cyBhIG5ldyBsb2dpYyB3aGVyZSB3ZSBuZWVkIGFsbCBzaW5nbGVxdWV1ZSB0byBuZWVkCgkgIGJ1ZmZlcmluZyBmb3IgdGhlIG11bHRpcXVldWUgdG8gYWN0dWFsbHkgc3RhdGUgYnVmZmVyaW5nIGlzIG5lZWRlZCwKCSAgdGFraW5nIHRoZSBtYXhpbXVtIGJ1ZmZlcmluZyBvZiB0aGUgc2luZ2xlIHF1ZXVlIGFzIHRoZSByZWZlcmVuY2UgcG9pbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQ0MTIKCjIwMTQtMDgtMTMgMTM6MDE6MjMgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogT25seSBoYW5kbGUgZmxvdyByZXR1cm5zIDwgRU9TIGFzIGVycm9ycywgbm90IGUuZy4gZmx1c2hpbmcKCjIwMTQtMDgtMTMgMTI6NDA6MzcgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogVXNlIGFsbG93LW5vbmUgaW5zdGVhZCBvZiBudWxsYWJsZSB1bnRpbCB3ZSBkZXBlbmQgb24gYSBuZXcgZW5vdWdoIEdJIHZlcnNpb24KCjIwMTQtMDgtMTMgMTI6Mzk6NDcgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogZ3N0X2Jpbl9uZXcoKSBjYW4gYWNjZXB0IE5VTEwgYXMgbmFtZQoKMjAxNC0wOC0xMyAxMjozNzowOCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IENsYXJpZnkgZG9jcyBhYm91dCBnc3RfZWxlbWVudF9nZXRfcmVxdWVzdF9wYWQoKSBhbmQgcmVtb3ZlIGRlcHJlY2F0aW9uIHBhcnQKCSAgVGhpcyBmdW5jdGlvbiBpcyBub3QgcmVhbGx5IHBhZCBvciBzbG93IGZvciB0aGUgY29tbW9uIGNhc2Ugb2YgcmVxdWVzdGluZyBhCgkgIHBhZCB3aXRoIHRoZSBuYW1lIG9mIHRoZSB0ZW1wbGF0ZS4gSXQgaXMgb25seSBzbG93ZXIgaWYgeW91IHRvIG5hbWUgeW91ciBwYWRzCgkgIGRpcmVjdGx5IGluc3RlYWQgb2YgbGV0dGluZyB0aGUgZWxlbWVudCBoYW5kbGUgaXQuCgkgIEFsc28gdGhlcmUncyBubyByZWFzb24gdG8gZGVwcmVjYXRlIGl0IGluIGZhdm9yIG9mIGEgbW9yZSBjb21wbGljYXRlZCBmdW5jdGlvbgoJICBmb3IgdGhlIGNvbW1vbiBjYXNlLgoKMjAxNC0wOC0xMyAxMjoyMDo1MSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogUG9zdCBlcnJvcnMgaWYgd2UgcmVjZWl2ZSBFT1MgYWZ0ZXIgZG93bnN0cmVhbSByZXBvcnRlZCBhbiBlcnJvcgoJICBUaGVyZSB3aWxsIGJlIG5vIGZ1cnRoZXIgZGF0YSBmbG93IHRoYXQgd291bGQgYWxsb3cgdXMgdG8gcHJvcGFnYXRlIHRoZQoJICBlcnJvciB1cHN0cmVhbSwgY2F1c2luZyBub2JvZHkgYXQgYWxsIHRvIHBvc3QgYW4gZXJyb3IgbWVzc2FnZS4KCjIwMTQtMDgtMTMgMTI6MTU6MDMgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBQb3N0IGVycm9ycyB3aGVuIHJlY2VpdmluZyBFT1MgYWZ0ZXIgZG93bnN0cmVhbSByZXR1cm5lZCBhbiBlcnJvcgoJICBUaGVyZSBtaWdodCBiZSBubyBmdXJ0aGVyIGRhdGEgZmxvdyB0aGF0IHdvdWxkIGFsbG93IHVzIHRvIHByb3BhZ2F0ZSB0aGUKCSAgZXJyb3IgdXBzdHJlYW0sIGNhdXNpbmcgbm9ib2R5IHRvIHBvc3QgYW4gZXJyb3IgYXQgYWxsLgoKMjAxNC0wOC0xMyAxMjoxMDozOSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBQb3N0IGVycm9ycyBvdXJzZWx2ZXMgaWYgdGhleSBhcmUgcmVjZWl2ZWQgYWZ0ZXIgRU9TCgkgIEFmdGVyIEVPUyB0aGVyZSB3aWxsIGJlIG5vIGZ1cnRoZXIgYnVmZmVyIHdoaWNoIGNvdWxkIHByb3BhZ2F0ZSB0aGUKCSAgZXJyb3IgdXBzdHJlYW0sIHNvIG5vdGhpbmcgaXMgZ29pbmcgdG8gcG9zdCBhbiBlcnJvciBtZXNzYWdlIGFuZAoJICB0aGUgcGlwZWxpbmUganVzdCBpZGxlcyBhcm91bmQuCgoyMDE0LTA4LTEyIDIwOjAzOjA2ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuQGFjY29zdGVkLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZG9jczogVHJpdmlhbCBwYWQgZG9jdW1lbnRhdGlvbiBmaXgKCSAgUHJlc3VtYWJseSBhIGNvcHktcGFzdG8uCgoyMDE0LTA4LTA4IDA5OjU0OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2NvbmNhdC5jOgoJICBjb25jYXQ6IEFkZCB1bml0IHRlc3RzIGZvciBjb25jYXQgZWxlbWVudAoKMjAxNC0wOC0wOCAwOToxMzo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJICBjb25jYXQ6IEFkZCBkb2N1bWVudGF0aW9uIGFuZCBpbnRlZ3JhdGUgaW50byBkb2N1bWVudGF0aW9uIGJ1aWxkCgoyMDE0LTA4LTA3IDE0OjQyOjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICBjb25jYXQ6IEFkZCBuZXcgZWxlbWVudCB0aGF0IGNvbmNhdGVuYXRlcyBtdWx0aXBsZSBzdHJlYW1zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQ0NzAKCjIwMTQtMDgtMDkgMTA6NTc6NTYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIHRlc3RzOiBjYXBzOiBhZGQgY2hlY2sgZm9yIGNhcHMgd2l0aCBmZWF0dXJlcyBpbnRlcnNlY3Rpb24KCSAgQ2hlY2tzIHRoYXQgYSBjYXBzIHdpdGhvdXQgZmVhdHVyZXMgZG9lc24ndCBpbnRlcnNlY3Qgd2l0aAoJICBvbmUgdGhhdCBoYXMgZmVhdHVyZXMKCjIwMTQtMDgtMDcgMTQ6NTQ6MzcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci90ZXh0LWNvbG9yLWV4YW1wbGUuYzoKCSAgZXhhbXBsZXM6IGNvbnRyb2xsZXI6IGZpeCB0eXBvIGluIGNvbW1lbnRzCgoyMDE0LTA4LTA2IDEzOjU4OjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkgIGJ5dGVyZWFkZXI6IHVzZSB1bmNoZWNrZWQgaW5saW5lIHZhcmlhbnQgZm9yIGdldF9yZW1haW5pbmcgaW4gbW9yZSBwbGFjZXMKCSAgV2UndmUgYWxyZWFkeSBkb25lIHRoZSBnX3JldHVybl8qX2lmX2ZhaWwgKHJlYWRlciAhPSBOVUxMKQoJICBkYW5jZSBpbiB0aG9zZSBwbGFjZXMsIHNvIG5vIG5lZWQgdG8gZG8gaXQgYWdhaW4uCgoyMDE0LTA4LTA2IDE0OjQzOjA4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBHaG9zdHBhZHMgY2FuIGJlIHJlcXVlc3QgcGFkcyB0b28gYnV0IGNoZWNrIGlmIHRoZSBwYWQgaGFzIGEgdGVtcGxhdGUKCSAgT3RoZXJ3aXNlIHdlIGRlcmVmZXJlbmNlIE5VTEwgaW4gc29tZSBjYXNlcyBhbmQgY3Jhc2guCgoyMDE0LTA4LTA2IDEyOjM0OjQyICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1wcm9ncmFtcy54bWw6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9sYXVuY2gvbXAzcGFyc2VsYXVuY2guYzoKCSAgdGVzdHM6IEFkZCBtaXNzaW5nIHVucmVmcyBvZiBvYmplY3RzIGFmdGVyIHVzZQoJICBVbnJlZmZpbmcgdGhlIG9iamVjdHMgcmV0dXJuZWQgYnkgZ3N0X2Jpbl9nZXRfYnlfbmFtZSgpIGFuZAoJICBnc3RfcGlwZWxpbmVfZ2V0X3VzZSgpIHdlcmUgbWlzc2luZyBpbiBzZXZlcmFsIHRlc3RzLCBzbyBhZGQgdGhlc2UuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQzNDUKCjIwMTQtMDgtMDYgMTI6NTU6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IEZpeCB1bml0aXRpYWxpemVkIHZhcmlhYmxlIGNvbXBpbGVyIHdhcm5pbmcKCjIwMTQtMDctMTMgMTU6MzE6MDggKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB0ZXN0czogQWRkIHRlc3QgdmVyaWZ5aW5nIGdzdF9lbGVtZW50X2xpbmtfcGFkc19mdWxsKCkKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzExOQoKMjAxNC0wNy0xMyAxNToyODozMiArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBVbnJlZi9yZWxlYXNlIHBhZHMgaW4gZXJyb3IgY2FzZXMgd2hlbiBsaW5raW5nIHBhZHMKCSAgUHJldmlvdXNseSBnc3RfZWxlbWVudF9saW5rX3BhZHNfZnVsbCgpIGZvcmdvdCB0byB1bnJlZmVyZW5jZSBvciByZWxlYXNlCgkgIHJlcXVlc3QgcGFkcyBpbiBzZXZlcmFsIGVycm9yIGNhc2VzLiBBbHNvIGNvbW1lbnRzIHdlcmUgYWRkZWQgbWVudGlvbmluZwoJICB3aHkgcmVsZWFzaW5nIGlzIG5vdCBuZWNlc3NhcnkgaW4gc29tZSBwbGFjZXMuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMxMTkKCjIwMTQtMDgtMDEgMTc6Mjc6MzkgLTAzMDAgIFRpYWdvIENlc2FyIEthdGNpcGlzIDx0aWFnby5rYXRjaXBpc0BkaWdpdHJvLmNvbS5icj4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGdzdGNoZWNrOiBhZGQgZG9jcyBmb3IgZ3N0X2NoZWNrX3NldHVwX3NyY19wYWRfYnlfbmFtZSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQxNDIKCjIwMTQtMDctMzEgMTg6MzI6MDMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogTWFrZWZpbGUuYW06CgkqIGNvbW1vbjoKCSAgTWFrZWZpbGU6IEFkZCB1c2FnZSBvZiBidWlsZC1jaGVja3Mgc3RlcAoJICBBbGxvd3MgYnVpbGRpbmcgY2hlY2tzIHdpdGhvdXQgcnVubmluZyB0aGVtCgoyMDE0LTA3LTMwIDE1OjQ2OjIyICswMzAwICBNb2hhbW1lZCBTYW1lZXIgPG1zYW1lZXJAZm9vbGFiLm9yZz4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IEFkZCBtaXNzaW5nIGVycm9yIGNoZWNraW5nIHRvIGRlZmF1bHRfYWxsb2NfYnVmZmVyKCkKCSAgZGVmYXVsdF9hbGxvY19idWZmZXIoKSBjYWxscyBnc3RfYnVmZmVyX25ld19hbGxvY2F0ZSgpIGJ1dCBkb2VzIG5vdCBjaGVjayBmb3IKCSAgZmFpbGVkIGFsbG9jYXRpb24uCgkgIFRoaXMgcGF0Y2ggbWFrZXMgZGVmYXVsdF9hbGxvY19idWZmZXIoKSByZXR1cm4gYW4gZXJyb3IgKEdTVF9GTE9XX0VSUk9SKSBpZgoJICBidWZmZXIgYWxsb2NhdGlvbiBmYWlscy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzk3NAoKMjAxNC0wNy0yOSAxNDoyMTozMyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQG9zZy5zaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGF2b2lkIHVzaW5nIGluZmluaXRlIGJ1ZmZlcnMgbGltaXQgaWYgZmluaXRlIGlzIHJlcXVlc3RlZAoJICBJZiB0aGUgY3VycmVudCBtYXgtYnVmZmVycyBsaW1pdCBpdCBpbmZpbml0ZSBhbmQgYSBmaW5pdGUgdmFsdWUgaXMKCSAgcmVxdWVzdGVkLCBzd2l0Y2ggdG8gdGhlIE1BWCAocmVxdWVzdGVkLCBjdXJyZW50LXZhbHVlKSB0byBzZXQgc29tZQoJICBsaW1pdCBidXQgbm90IGJlbG93IHdoYXQgd2Uga25vdyB0aGF0IHdlJ3ZlIG5lZWRlZCBzbyBmYXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzM2MzcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzgzNwoKMjAxNC0wNy0yNCAyMjowMjo1OCArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IFVucmVmIHJlZmVyZW5jZSB0byBlbmNsb3NpbmcgYmlucwoJICBQcmV2aW91c2x5IGFsbCByZWZlcmVuY2UgdG8gZW5jbG9zaW5nIGJpbnMgb2YgYW4gZWxlbWVudCB3ZXJlIGxlYWtlZAoJICB3aGVuIGRvaW5nIGRlbGF5aW5nIHNldHRpbmcgYSBwcm9wZXJ0eS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzY5NwoKMjAxNC0wNy0yNyAwMjozNzowOCArMDAwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IFN1cHBvcnQgU0lHSU5UIChDdHJsK0MpIG9uIFczMgoJICBXMzIgaGFzIG5vIFNJR0lOVCwgYnV0IGl0IGRvZXMgaGF2ZSBTZXRDb25zb2xlQ3RybEhhbmRsZXIoKSwgd2hpY2ggc2V0cyB1cAoJICBhIGhhbmRsZXIgZm9yIEN0cmwrQy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzgxNAoKMjAxNC0wNy0yNyAwMzowNjoxNiArMDAwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBQcmV2ZW50IGZhbHNlLW5lZ2F0aXZlIGZyb20gV0FLRV9FVkVOVCgpIG9uIFczMgoJICBTZXRFdmVudCgpIHNlZW1zIHRvIG5vdCBjYWxsIFNldExhc3RFcnJvcigwKSBpbnRlcm5hbGx5LCBzbyBjaGVja2luZyBsYXN0CgkgIGVycm9yIGFmdGVyIGNhbGxpbmcgU2V0RXZlbnQoKSBtYXkgcmV0dXJuIHRoZSBlcnJvciBmcm9tIGFuIGVhcmxpZXIgVzMyIEFQSQoJICBjYWxsLiBGaXggdGhpcyBieSBjYWxsaW5nIFNldGxhc3RFcnJvcigwKSBleHBsaWNpdGx5LgoJICBDdXJyZW50bHkgV0FLRV9FVkVOVCgpIGNvZGUgaXMgY3JhbXBlZCBpbnRvIGEgbWFjcm8gYW5kIGRvZXNuJ3QgbG9vayB0byBiZQoJICBlbnRpcmVseSBjb3JyZWN0LiBQYXJ0aWN1bGFybHksIGl0IGRvZXMgbm90IGNoZWNrIHRoZSByZXR1cm4gdmFsdWUgb2YKCSAgU2V0RXZlbnQoKSwgb25seSB0aGUgdGhyZWFkLWxvY2FsIFczMiBlcnJvciB2YWx1ZS4gSXQgaXMgbGlrZWx5IHRoYXQgU2V0RXZlbnQoKQoJICBhY3R1YWxseSBqdXN0IHJldHVybnMgbm9uLXplcm8gdmFsdWUsIGJ1dCB0aGUgY29kZSBtaXN0YWtlbmx5IHRoaW5rcyB0aGF0IHRoZQoJICBjYWxsIGhhcyBmYWlsZWQsIGJlY2F1c2UgR2V0TGFzdEVycm9yKCkgc2VlbXMgdG8gaW5kaWNhdGUgc28uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzM4MDUKCjIwMTQtMDctMjYgMTQ6NDI6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Lmg6CgkgIGdzdDogaW5jbHVkZSBhdG9taWNxdWV1ZS5oIGFnYWluIGluIGdzdC5oCgkgIEl0J3MgYSBwdWJsaWMgaGVhZGVyIG9mIGdzdHJlYW1lciBjb3JlLCBzbyAjaW5jbHVkZSA8Z3N0L2dzdC5oPgoJICBzaG91bGQgbWFrZSB0aGUgQVBJIGF2YWlsYWJsZS4KCjIwMTQtMDctMjUgMTE6NDU6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZGVsZW1lbnQ6IHJlbW92ZSBwcm90b3R5cGUgZm9yIGZ1bmN0aW9uIHRoYXQgbm8gbG9uZ2VyIGV4aXN0cwoKMjAxNC0wNy0yNCAxNDozOToxMSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQG9zZy5zaXNhLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBieXRlcmVhZGVyOiBhZGQgZ3N0X2J5dGVfcmVhZGVyX21hc2tlZF9zY2FuX3VpbnQzMl9wZWVrCgkgIEFkZHMgZ3N0X2J5dGVfcmVhZGVyX21hc2tlZF9zY2FuX3VpbnQzMl9wZWVrIGp1c3QgbGlrZQoJICBHc3RBZGFwdGVyIGhhcyBhIF9wZWVrIGFuZCBub24gX3BlZWsgdmVyc2lvbgoJICBVcGdyYWRlZCB0ZXN0cyB0byBjaGVjayB0aGF0IHRoZSByZXR1cm5lZCB2YWx1ZSBpcyBjb3JyZWN0IGluIHRoZQoJICBfcGVlayB2ZXJzaW9uCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX21hc2tlZF9zY2FuX3VpbnQzMl9wZWVrCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjgzNTYKCjIwMTQtMDYtMjYgMTQ6MDk6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBwcmUtYWxsb2NhdGUgYnVmZmVyIGFycmF5IGluIG9uZSBnbyB3aXRoIHRoZSBidWZmZXIgbGlzdAoJICBXZSBjYW4gbm93IGNyZWF0ZSBhbmQgZnJlZSBhIGJ1ZmZlciBsaXN0IHdpdGggb25lIHNsaWNlIGFsbG9jL2ZyZWUKCSAgY2FsbCBpbiBtb3N0IGNhc2VzLCBpbnN0ZWFkIG9mIG9uZSBzbGljZSBhbGxvYy9mcmVlIGZvciB0aGUgbGlzdCwKCSAgb25lIHNsaWNlIGFsbG9jL2ZyZWUgZm9yIHRoZSBHQXJyYXksIGFuZCBvbmUgbWFsbG9jL2ZyZWUgZm9yIHRoZQoJICBHQXJyYXkgYXJyYXkuIEluIHByYWN0aWNlIHdlIGtub3cgdGhlIG1heCBzaXplIG9mIG91ciBidWZmZXIgbGlzdAoJICBmcm9tIHRoZSBzdGFydCwgc28gY2FuIGF2b2lkIHJlYWxsb2NzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyMjg0CgoyMDE0LTA3LTIzIDIxOjI3OjQ4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIHByaXZhdGU6IGFsbG93IGludGVybmFsIGFjY2VzcyB0byB0aGUgZGVidWcgYmFzZS10aW1lCgkgIE1vdmluZyB0aGUgZXh0ZXJuIHRvIHRoZSBoZWFkIGxldHMgdXMgYWNjZXNzIHRoaXMgZnJvbSBvdGhlciBwYXJ0cyBhcyB3ZWxsLiBUaGlzCgkgIGlzIG5lZWVkIGluIHRoZSB0cmFjZXIgYnJhbmNoLgoKMjAxNC0wNy0yMyAwMDoxNToxNyArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bkBhY2Nvc3RlZC5uZXQ+CgoJKiBzY3JpcHRzL2dpdC11cGRhdGUuc2g6CgkgIHNjcmlwdHM6IFVzZSBnaXQgcHVsbCAtLXJlYmFzZQoJICBObyBwb2ludCBpbnRyb2R1Y2luZyByZWR1bmRhbnQgbWVyZ2UgY29tbWl0cy4KCjIwMTQtMDctMjEgMTI6NDE6MDggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWdsaXN0LmM6CgkgIFJldmVydCAidGVzdHM6IHRhZ2xpc3Q6IGFkZCBiYXNpYyB0ZXN0IGZvciB0YWdsaXN0cyBzZXJpYWxpemF0aW9uIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDg1ZDIzZDE5YjdkZTQwNTQxZDYzYjBiYzc2ZDhiNjQ2YzMyMWFmMjYuCgkgIFRoZXJlIHdhcyBhbHJlYWR5IGEgZ3N0dGFnLmMgdGVzdHMgZmlsZSwgdGhpcyB0ZXN0IGhhcyBiZWVuIG1lcmdlZAoJICBpbiBpdCBpbiB0aGUgcHJldmlvdXMgY29tbWl0CgoyMDE0LTA3LTIxIDEyOjQwOjQ3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSAgdGVzdHM6IHRhZzogYWRkIHRoZSBlbXB0eSB0YWdsaXN0IHNlcmlhbGl6YXRpb24gdGVzdAoJICBBZGRzIHRoZSB0ZXN0IHRvIHRoZSBhcHByb3ByaWF0ZSBhbmQgYWxyZWFkeSBleGlzdGluZyBmaWxlLgoKMjAxNC0wNy0xNCAxODo0Njo1NCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGVzdHM6IHRhZ2xpc3Q6IGFkZCBiYXNpYyB0ZXN0IGZvciB0YWdsaXN0cyBzZXJpYWxpemF0aW9uCgkgIE1ha2Ugc3VyZSBpdCB3b3JrcyB3aXRoIGVtcHR5IHRhZ2xpc3RzCgoyMDE0LTA3LTE0IDE4OjI1OjUwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgdGVzdHM6IGdzdHN0cnVjdHVyZTogc2VyaWFsaXphdGlvbiBvZiB0YWcgZXZlbnQgc3RydWN0dXJlCgkgIEFkZHMgYSB0ZXN0IHRoYXQgY2hlY2tzIHRoYXQgdGhlIHNlcmlhbGl6YXRpb24gb2YgYSB0YWcgZXZlbnQgc3RydWN0dXJlCgkgIHdvcmtzIHdpdGhvdXQgcHJvYmxlbXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzEzMQoKMjAxNC0wNy0xNCAxODoyMzo0MyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IGFkZCBHc3RUYWdMaXN0IGNvbXBhcmUgZnVuY3Rpb24KCSAgV2hlbiBzZXJpYWxpemluZyBHc3RTdHJ1Y3R1cmVzIGZyb20gZXZlbnRzIGluIEdEUCBpdCB3aWxsIGFkZCBhIHRhZ2xpc3QKCSAgYXMgYSBHc3RTdHJ1Y3R1cmUgZmllbGQsIGhhdmluZyB0aGUgY29tcGFyZSBmdW5jdGlvbiBhbGxvd3MgY29tcGFyaXNvbiBvZgoJICBHc3RTdHJ1Y3R1cmVzIHRvIGNoZWNrIGlmIHRoZSBzZXJpYWxpemVkL2Rlc2VyaWFsaXplZCB2ZXJzaW9uIG1hdGNoZXMgdGhlCgkgIG9yaWdpbmFsIG9uZSwgYW1vbmcgb3RoZXIgY2FzZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMxMzEKCjIwMTQtMDctMDkgMTU6NDg6MTAgKzAyMDAgIFNyaW1hbnRhIFBhbmRhIDxzcmltYW50YUBheGlzLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogRml4IGZvciByYWN5IEVPUyBldmVudCBoYW5kbGluZwoJICBXaGVuIGVvcyBldmVudHMgYXJlIGZvcndhcmRlZCBzaW11bHRhbmVvdWx5IGZyb20gdHdvIHNpbmtwYWRzIG9uCgkgIGZ1bm5lbCwgaXQgZG9lc25vdCBmb3J3YXJkIHRoZSBlb3MgdG8gc291cmNlcGFkLiBUaGUgcmVhc29uIGlzCgkgIHN0aWNreSBldmVudHMgYXJlIHN0b3JlZCBhZnRlciB0aGUgZXZlbnQgY2FsbGJhY2tzIGFyZSByZXR1cm5lZC4KCSAgVGhlcmVmb3JlIHdoaWxlIG9uZSBpcyBhYm91dCB0byBzdG9yZSB0aGUgc3RpY2t5IGV2ZW50cyBvbiB0aGUgaXRzCgkgIHNpbmtwYWQsIG90aGVyIHNpbmtwYWQgc3RhcnRzIGNoZWNraW5nIGZvciB0aGUgZW9zIGV2ZW50cyBvbiBhbGwgb3RoZXIKCSAgc2lua3BhZHMgYW5kIGFzc3VtZXMgZW9zIGlzIG5vdCBwcmVzZW50IHlldC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMjg1MQoKMjAxNC0wNy0xNyAxNjowNTowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogQWRkIHVuaXQgdGVzdCBmb3IgcmVzZXR0aW5nIG9mIHRoZSBzdGFydCB0aW1lCgkgIEFsc28gY2hlY2sgaWYgdGhpcyBwcm9wZXJseSBhZmZlY3RzIGJhc2VzaW5rIGVsZW1lbnRzIHRvIG5vdAoJICByZXBvcnQgdGhlIG9sZCBzdGFydCB0aW1lIGJ1dCB0aGUgcmVhbCBjdXJyZW50IHBvc2l0aW9uIHdoZW4KCSAgc2V0dGluZyB0byBQQVVTRUQgYWdhaW4uCgoyMDE0LTA3LTE1IDE4OjE5OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiBSZXNldCB0aGUgc3RhcnQgdGltZSB3aGVuIGdvaW5nIGZyb20gUEFVU0VEIHRvIFJFQURZIHRvbwoKMjAxNC0wNy0xNSAxNzoxOToxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogUmVzZXQgc3RhcnQgdGltZSBpbiBSRUFEWS0+UEFVU0VEIGJlZm9yZSBjaGFpbmluZyB1cAoJICBPdGhlcndpc2UgYmluIHdpbGwgY2hhbmdlIHRoZSBzdGF0ZSBvZiB0aGUgY2hpbGQgZWxlbWVudHMgd2l0aG91dAoJICBkaXN0cmlidXRpbmcgdGhlIG5ldyBzdGFydCB0aW1lLgoKMjAxNC0wNi0yOCAxNzo1ODoyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHNfcHJpdmF0ZS5jOgoJICBlbGVtZW50czogaW1wcm92ZSBidWZmZXIgZmxhZ3MgdG8gc3RyaW5nIHV0aWxpdHkgZnVuY3Rpb24KCSAgQXZvaWQgcmVsb2NhdGlvbnMgYW5kIHJlZmFjdG9yIHNvIHRoYXQgd2UgZG9uJ3QgY2FsY3VsYXRlCgkgIHRoZSBmaXhlZCBhbmQga25vd24gYXQgY29tcGlsZSB0aW1lIG1heGltdW0gc3RyaW5nIHNpemUKCSAgZXZlcnkgdGltZS4gQWxzbyBza2lwIHRoZSBtaW5pIG9iamVjdCBmbGFncyB3aGljaCB3ZSBhcmUKCSAgbm90IGdvaW5nIHRvIHByaW50IGFueXdheS4KCjIwMTQtMDctMTkgMTg6MDQ6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuNC4wID09PQoKMjAxNC0wNy0xOSAxNjo0Njo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjQuMAoKMjAxNC0wNy0xOSAxNjoyMToyMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTQtMDctMTkgMTI6MTY6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9kYS5wbzoKCSogcG8vc3YucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE0LTA3LTE3IDE1OjUzOjUzICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFJldHVybiBGTE9XX0ZMVVNISU5HIHdoZW4gcHVzaGluZyBhIGZyYW1lIG9uIGEgcGFkIHRoYXQgaGFzIGJlZW4gZmx1c2hlZAoJICBXaGVuIGdvaW5nIHRvIFJFQURZLCBpdCBpcyBwb3NzaWJsZSB0aGF0IHdlIGFyZSBzdGlsbCBwdXNpbmcgYSBmcmFtZSBidXQgdGhhdAoJICBvdXIgc3JjcGFkIGhhcyBhbHJlYWR5IGJlZW4gc2V0IHRvIGZsdXNoaW5nLiBJbiB0aGF0IGNhc2Ugd2Ugc2hvdWxkIG5vdAoJICBwb3N0IGFueSBlcnJvciBvbiB0aGUgYnVzIGJ1dCBpbnN0ZWFkIGNsZWFubHkgcmV0dXJuIEZMT1dfRkxVU0hJTkcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMzMjAKCjIwMTQtMDctMTcgMDc6MDc6MzYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmRlbGVtZW50OiBQcm9wYWdhdGUgaW5wdXQgYnVmZmVyIFBUUyBhbmQgRFRTCgkgIFRoZSBpbml0aWFsIGJ1ZmZlcnMgKHRoYXQgd2VyZSB1c2VkIGZvciB0aW1lc3RhbXBpbmcpIG1pZ2h0IGhhdmUgUFRTCgkgIGFuZCBEVFMgc2V0LiBJbiBvcmRlciB0byBmb3J3YXJkIHRob3NlIHByb3Blcmx5LCBnZXQgdGhlIGluaXRpYWwKCSAgUFRTL0RUUyBmcm9tIHRoZSBhZGFwdGVyIGFuZCBzZXQgdGhlbSBvbiB0aGUgcmVjb25zdHJ1Y3RlZCBvdXRwdXQKCSAgYnVmZmVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMjkxCgoyMDE0LTA3LTEyIDE3OjAxOjIzICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBVbnJlZiBwYWQgdGVtcGxhdGUgYWZ0ZXIgdXNlCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMxMjEKCjIwMTQtMDctMTQgMTg6MTA6NDUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGluaXQgdGFnbGlzdCBndHlwZSB0byB1c2UgaXQgaW4gZ3N0dmFsdWUKCSAgT3RoZXJ3aXNlIGl0IHdpbGwgaGF2ZSBhIDAgdmFsdWUgYW5kIEdzdFRhZ0xpc3Qgd29uJ3QgYmUgZm91bmQKCSAgZm9yIEdzdFZhbHVlIGZ1bmN0aW9ucyAoc2VyaWFsaXphdGlvbi9kZXNlcmlhbGl6YXRpb24pCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMxMzEKCj09PSByZWxlYXNlIDEuMy45MSA9PT0KCjIwMTQtMDctMTEgMTA6NDY6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4zLjkxCgoyMDE0LTA3LTExIDEwOjQxOjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNC0wNy0xMSAwODo1MTowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2RhLnBvOgoJKiBwby92aS5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTQtMDctMDUgMTg6Mjk6MjkgKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RkZXZpY2UuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmM6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlcmZhY3RvcnkuYzoKCSogZ3N0L2dzdHRvYy5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5oOgoJICBkb2NzOiBGaXggZG9jdW1lbnRhdGlvbiB0eXBvcyBhbmQgaW5jb25zaXN0ZW5jaWVzCgkgICogR3N0R2xvYmFsRGV2aWNlTW9uaXRvciB3YXMgcmVuYW1lZCB0byBHc3REZXZpY2VNb25pdG9yCgkgICogRXhwYW5kIEdTVF9NRVNTQUdFX0RFVklDRSB0byB0aGUgZnVsbCBlbnVtIHZhbHVlIG5hbWVzCgkgICogQ29ycmVjdCB0aGUgaW5jb3JyZWN0IHJlZmVyZW5jZXMgdG8gdGhlIEdzdERldmljZVByb3ZpZGVyIGludGVyZmFjZXMKCSAgKiBEZXNjcmliZSBjYXBzIGFyZ3VtZW50cyBmb3IgZ3N0Y2hlY2sgaW50ZXJmYWNlCgkgICogQWRkIG1pc3NpbmcgZG9jcyBmb3IgR3N0TmV0QWRkcmVzc01ldGEgYW5kIGl0cyBhZGQgZnVuY3Rpb24KCSAgKiBBZGQgZG9jcyBmb3IgdG9jIGhlbHBlciBtYWNyb3MKCSAgKiBBdm9pZCByZWZlcmluZyB0byBHc3RWYWx1ZUxpc3QgdHlwZSBhcyBkb25lIGVsc2V3aGVyZQoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyNzg2CgoyMDE0LTA3LTA1IDE3OjEzOjIxICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiBDbGVhbnVwIGludGVyZmFjZSByZWZlcmVuY2VzIGluIGRvY3MKCSAgKiBEZWxldGUgcmVmZXJlbmNlcyB0byByZW1vdmVkIGludGVyZmFjZXMKCSAgKiBBZGQgbWlzc2luZyBkb2N1bWVudGF0aW9uIHNlY3Rpb25zCgkgICogRml4IGR1cGxpY2F0ZSBpbnRlcmZhY2UgcmVmZXJlbmNlcyBmb3IgR3N0RGV2aWNlCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzI3ODYKCjIwMTQtMDctMDggMTE6MTc6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBkb2NzOiBUaGVyZSBpcyBubyBkZWNvZGViaW4yIGFueW1vcmUsIGRvbid0IHByZXRlbmQgb3RoZXJ3aXNlCgoyMDE0LTA3LTA3IDE2OjE0OjMyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgZmRzcmM6IGZpeCBlcnJvciBzZXR0aW5nIHdoZW4gdXJpIGlzIGludmFsaWQKCSAgRWxlbWVudHMgc2hvdWxkIGFsd2F5cyBzZXQgdGhlIEdFcnJvcgoKMjAxNC0wNy0wNiAxMjoxMzowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGxpYnM6IGdzdGNoZWNrOiBjaGVjayB0aGF0IG11dGV4IGlzIGxvY2tlZCBiZWZvcmUgZ19jb25kX3dhaXQqKCkgaXMgY2FsbGVkCgkgIFNhbml0eSBjaGVjayB0byBjYXRjaCBwcm9ibGVtcyBpbiB1bml0IHRlc3QuCgoyMDE0LTA3LTA2IDEyOjEyOjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgbGliczogZ3N0Y2hlY2s6IGluaXQgYW5kIGNsZWFyIGdsb2JhbCBtdXRleCBhbmQgY29uZCB2YXJpYWJsZXMKCjIwMTQtMDctMDYgMTI6MDk6MzEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cG9sbC5jOgoJICB0ZXN0czogZml4IGxvY2tpbmcgaW4gZ3N0cG9sbCB1bml0IHRlc3QKCSAgVGhlIG11dGV4IG5lZWRzIHRvIGJlIGxvY2tlZCB3aGVuIGdfY29uZF93YWl0KigpIGlzCgkgIGNhbGxlZC4KCjIwMTQtMDctMDUgMTY6MjQ6MTggKzAxMDAgIE1hdHRoaWV1IEJvdXJvbiA8bWF0dGhpZXUuYm91cm9uQGNvbGxhYm9yYS5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgdmlkZW8gYW5kIGJhc2UgbGlicmFyeSBwYXRocyBmcm9tIC1iYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMjc3MAoKMjAxNC0wNy0wNCAxOTo0MDoyOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiBzdXBwcmVzcyBHTGliIHdhcm5pbmdzIHdoZW4gZ3N0LWluc3BlY3RpbmcgZGVwcmVjYXRlZCBwcm9wZXJ0aWVzCgkgIEdMaWIgaW4gZ2l0IHdpbGwgc3BldyBhIGdfd2FybmluZygpIHdoZW4gYSBwcm9wZXJ0eSBtYXJrZWQgYXMKCSAgZGVwcmVjYXRlZCB2aWEgcGFyYW0gc3BlYyBmbGFncyBpcyBhY2Nlc3NlZC4gU3VwcHJlc3MgdGhpcyBieQoJICBzZXR0aW5nIHRoZSBhcHByb3ByaWF0ZSBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCjIwMTQtMDctMDMgMTA6MTE6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBtZXNzYWdlOiBXb3JrIGFyb3VuZCBnLWkvcHlnb2JqZWN0L2dqcyBidWcgd2l0aCB+MCBpbiBlbnVtcwoJICBHU1RfTUVTU0FHRV9BTlkgd2FzIGNvbnNpZGVyZWQgYSBsb25nIGJ5IHB5Z29iamVjdCBhbmQgZ2pzLCBhbmQgdGh1cwoJICBjb3VsZG4ndCBiZSB1c2VkIGluIGdzdF9idXNfcG9sbCgpIGFuZCBzaW1pbGFyIEFQSXMgYXMgdGhleSBleHBlY3QgYW4KCSAgaW50LXR5cGVkIGVudW0uCgkgIEp1c3QgdXNlIDB4ZmZmZmZmZmYgaW5zdGVhZCBmb3Igbm93LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyNjMzCgoyMDE0LTA3LTAyIDA4OjQxOjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgdGVzdHM6IGRvbid0IHVzZSBwb3N0LUdMaWIgMi4zMiBBUEkgaW4gYnVmZmVybGlzdCB0ZXN0CgkgIGdfcHRyX2FycmF5X2luc2VydCgpIGlzIEdMaWIgPj0gMi40MAoKMjAxNC0wNy0wMSAxMjoyMjo1NiArMDIwMCAgR8O2cmFuIErDtm5zc29uIDxnb3JhbmpuQGF4aXMuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IERvbid0IHVubG9jayB3aGlsZSBpdGVyYXRpbmcgb3ZlciBhbGwgc3RpY2t5IGV2ZW50cyBmb3IgcmVtb3ZhbAoJICBPdGhlcndpc2Ugd2UgbWlnaHQgZW5kIHVwIGdldHRpbmcgdGhlIGV2ZW50IHJlbW92ZWQgZnJvbSBlbHNld2hlcmUKCSAgYXQgdGhlIHNhbWUgdGltZSB3aGlsZSB3ZSdyZSB1bmxvY2tlZCBmb3IgZ19vYmplY3Rfbm90aWZ5KCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzI1NTYKCjIwMTQtMDctMDEgMTk6MTc6MTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBQcm94eSB0aGUgYWNjZXB0LWNhcHMgcXVlcnkKCSAgV2UgYWx3YXlzIHdvcmsgaW4gcGFzc3Rocm91Z2ggbW9kZSBzbyB0aGVyZSdzIG5vIHBvaW50IGluIGRvaW5nCgkgIHNvbWV0aGluZyBtb3JlIGNsZXZlciBpbiBiYXNldHJhbnNmb3JtLiBBbHNvIHRoZSBiYXNldHJhbnNmb3JtCgkgIGNvZGUgbGVhZHMgdG8gcHJvYmxlbXMgd2l0aCBpbmNvbXBsZXRlIGNhcHMgYW5kIGRvd25zdHJlYW0KCSAgZWxlbWVudHMgdGhhdCB1c2UgR1NUX1BBRF9GTEFHX0FDQ0VQVF9JTlRFUlNFQ1QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzI1NTkKCjIwMTQtMDctMDEgMTE6MjE6NTMgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogcmVzZXQgUW9TIG9uIHNlZ21lbnQgZXZlbnQKCSAgVGhpcyBhdm9pZHMgc3B1cmlvdXMgd2FybmluZ3MgYWJvdXQgc2xvdyBtYWNoaW5lIHdoZW4gdXBzdHJlYW0KCSAgc2VuZHMgbmV3IHNlZ21lbnRzIHdpdGhvdXQgZmx1c2hpbmcuCgoyMDE0LTA2LTMwIDIzOjM5OjE4IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RkZXZpY2UuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmM6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlcmZhY3RvcnkuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJICBpbnRyb3NwZWN0aW9uOiBBc3NvcnRlZCBtaW5vciBpbnRyb3NwZWN0aW9uIGFuZCBkb2N1bWVudGF0aW9uIGZpeGVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzI1MzQKCjIwMTQtMDYtMzAgMDg6NTk6MTggKzAwMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSAgZGV2aWNlbW9uaXRvcjogU3RvcCB1c2luZyBnX2NsZWFyX3BvaW50ZXIoKQoJICBXZSBkb250J3Qgd2FudCB0byBkZXBlbmQgb24gR0xpYiAyLjM0IGZvciBub3cuCgoyMDE0LTA2LTI5IDE5OjE2OjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9zcGFyc2VmaWxlLmM6CgkgIHNwYXJzZWZpbGU6IEluaXRpYWxpemUgbWVtb3J5IGluIHVuaXQgdGVzdCB0byBtYWtlIHZhbGdyaW5kIGhhcHB5CgkgIFdlIHdlcmUgd3JpdGluZyB1bml0aWFsaXplZCBzdGFjayBtZW1vcnkgdG8gdGhlIGZpbGUuCgoyMDE0LTA2LTI4IDA5OjM1OjIxIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5jOgoJICBkYXRhdXJpc3JjOiBmaXggbGVhayBhcyBnc3RfYnVmZmVyX3JlcGxhY2UgYWRkcyBpdHMgb3duIHJlZgoJICBTbyB1bnJlZiB0aGUgYnVmZmVyIGFmdGVyIHRoYXQgb3RoZXJ3aXNlIGl0IGxlYWtzCgo9PT0gcmVsZWFzZSAxLjMuOTAgPT09CgoyMDE0LTA2LTI4IDEwOjQ1OjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuMy45MAoKMjAxNC0wNi0yOCAxMDo0MTo0OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTQtMDYtMjcgMTA6NDQ6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGV2aWNlLmM6CgkgIGRldmljZW1vbml0b3I6IGRvbid0IGZhaWwgd2hlbiBzdGFydGVkIHdpdGhvdXQgYW55IGZpbHRlcnMKCSAgSnVzdCBzaG93IGFsbCBkZXZpY2VzIHRoZW4uCgoyMDE0LTA2LTI3IDEwOjQ0OjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyZmFjdG9yeS5jOgoJICBkZXZpY2Vwcm92aWRlcmZhY3Rvcnk6IGhhbmRsZSBOVUxMIGNsYXNzZXMgYXJndW1lbnQgYW5kIG1hdGNoIGFueQoKMjAxNC0wNi0yNiAyMTowMDo0MCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRldmljZS5jOgoJICBkZXZpY2U6IEFkZCB1bml0IHRlc3RzCgoyMDE0LTA2LTI2IDE3OjIyOjI1IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmM6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlcmZhY3RvcnkuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgZGV2aWNlbW9uaXRvcjogSW1wcm92ZSBkb2N1bWVudGF0aW9uCgoyMDE0LTA2LTI2IDE3OjEzOjEyIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuaDoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmM6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlcmZhY3RvcnkuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyZmFjdG9yeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGV2aWNlbW9uaXRvcjogTWFrZSBpdCBwb3NzaWJsZSB0byBhZGQgbXVsdGlwbGUgZmlsdGVycwoJICBFYWNoIGZpbHRlciB3aWxsIGluY2x1ZGUgYSBHc3RDYXBzIGFuZCBhIHNldCBvZiBjbGFzc2VzIHRvIG1hdGNoCgoyMDE0LTA2LTI2IDE2OjMxOjUxIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGRldmljZS5jOgoJICBkZXZpY2U6IEFkZCBwcmUtY29uZGl0aW9ucwoKMjAxNC0wNi0yNiAxNTowODo0NiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5oOgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgR3N0RGV2aWNlTW9uaXRvcjogUmVuYW1lIGZyb20gR3N0R2xvYmFsRGV2aWNlTW9uaXRvcgoKMjAxNC0wNi0yNiAxNDoyODowOSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGRldmljZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvcmZhY3RvcnkuaDoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmM6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5oOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXJmYWN0b3J5LmM6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlcmZhY3RvcnkuaDoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmg6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBEZXZpY2VQcm92aWRlcjogUmVuYW1lIGZyb20gRGV2aWNlTW9uaXRvcgoKMjAxNC0wNi0yNiAxOTozMTozMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkgIGRhdGFxdWV1ZTogSGlkZSBmcm9tIGJpbmRpbmdzCgkgIE90aGVyIGxhbmd1YWdlcyBoYXZlIHRoZWlyIG93biBkYXRhIHN0cnVjdHVyZXMgdGhhdCBhcmUgbW9yZSBjb252ZW5pZW50IHRvCgkgIHVzZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTMwMwoKMjAxNC0wNi0yNiAxOTozMDo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuaDoKCSAgcXVldWVhcnJheTogSGlkZSBmcm9tIGJpbmRpbmdzCgkgIE90aGVyIGxhbmd1YWdlcyBoYXZlIHRoZWlyIG93biBkYXRhIHN0cnVjdHVyZXMgdGhhdCBhcmUgbW9yZSBjb252ZW5pZW50IHRvIHVzZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTM1MAoKMjAxNC0wNS0yOCAxMDoxNDo0NSArMDEwMCAgUGhpbGlwIFdpdGhuYWxsIDxwaGlsaXAud2l0aG5hbGxAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogQWRkIG1pc3NpbmcgKG51bGxhYmxlKSBhbm5vdGF0aW9ucwoJICBnc3RfbWluaV9vYmplY3RfcmVwbGFjZSgpIGNhbiB0YWtlIE5VTEwgbWluaS1vYmplY3RzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwODczCgoyMDE0LTA2LTI2IDE5OjAyOjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogQXBwbGljYXRpb24gYW5kIGVsZW1lbnQgbWVzc2FnZXMgc2hvdWxkIG5vdCBoYXZlIE5VTEwgc3RydWN0dXJlcwoJICBJdCBkb2VzIG5vdCBtYWtlIHNlbnNlIGZvciB0aGVtLgoKMjAxNC0wNi0xMSAxNjoxOTowMSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgaW50cm9zcGVjdGlvbjogYWRkIHNvbWUgbWlzc2luZyBhbGxvdy1ub25lIGFubm90YXRpb25zIHRvIGluIHBhcmFtcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwOTU3CgoyMDE0LTA2LTExIDE2OjA2OjE5IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBpbnRyb3NwZWN0aW9uOiBhZGQgbnVsbGFiaWxpdHkgYW5ub3RhdGlvbnMgdG8gb3V0IGFuZCBpbm91dCBwYXJhbXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDk1NwoKMjAxNC0wNi0xMSAxNToyMTozNCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzYW1wbGUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGludHJvc3BlY3Rpb246IGFkZCBtaXNzaW5nIChudWxsYWJsZSkgYW5ub3RhdGlvbnMgdG8gcmV0dXJuIHZhbHVlcwoJICBTdXBwb3J0IGZvciAobnVsbGFibGUpIHdhcyBhZGRlZCB0byBHLUkgYXQgdGhlIHNhbWUgdGltZSBhcyBudWxsYWJsZQoJICByZXR1cm4gdmFsdWVzLiAgUHJldmlvdXMgdmVyc2lvbnMgb2YgRy1JIHdpbGwgbm90IG1hcmsgcmV0dXJuIHZhbHVlcyBhcwoJICBudWxsYWJsZSwgZXZlbiB3aGVuIGFuIChhbGxvdy1ub25lKSBhbm5vdGF0aW9uIGlzIHByZXNlbnQsIHNvIGl0IGlzCgkgIG5vdCBuZWNlc3NhcnkgdG8gYWRkIChhbGxvdy1ub25lKSBhbm5vdGF0aW9ucyBmb3IgY29tcGF0aWJpbGl0eSB3aXRoCgkgIG9sZGVyIHZlcnNpb25zIG9mIEctSS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDk1NwoKMjAxNC0wNi0xMSAxNzoxNTozOSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIGJhc2U6IGFzc29ydGVkIGludHJvc3BlY3Rpb24gZml4ZXMgYW5kIGFkZGl0aW9ucwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxNTQyCgoyMDE0LTA2LTExIDE3OjEyOjIwIC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIGJhc2U6IGFkZCAobnVsbGFibGUpIGFubm90YXRpb25zIHRvIHJldHVybiB2YWx1ZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTU0MgoKMjAxNC0wNi0yNiAxNDowODowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkgIHRlc3RzOiBhZGQgYW5vdGhlciBidWZmZXIgbGlzdCB0ZXN0IGNhc2UKCjIwMTQtMDYtMjYgMTM6MjQ6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJICB0ZXN0czogcG9ydCBhbmQgcmUtZW5hYmxlIGJ1ZmZlciBsaXN0IHRlc3RzCgkgIEFuZCByZW1vdmUgc29tZSB3aGljaCBkb24ndCBhcHBseSBhbnkgbW9yZS4KCjIwMTQtMDYtMjYgMTE6NTg6MDQgKzAzMDAgIEdlb3JnZSBLaWFnaWFkYWtpcyA8Z2VvcmdlLmtpYWdpYWRha2lzQGNvbGxhYm9yYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICB0ZXN0czogZW5oYW5jZSB0aGUgZ3N0Y2FwcyB0ZXN0X2ZlYXR1cmVzIHRvIGFsc28gdGVzdCBnc3RfY2Fwc19zZXRfZmVhdHVyZXMoKQoJICBDb21wbGltZW50cyBteSBwcmV2aW91cyBwYXRjaCBmb3IgZ3N0X2NhcHNfc2V0X2ZlYXR1cmVzLCB3aGljaCB3b3VsZAoJICBwcmV2aW91c2x5IGFzc2VydCBhbmQgbGVhayB0aGUgb2xkIEdzdENhcHNGZWF0dXJlcyBpZiB0aGUgY2FwcyBhbHJlYWR5CgkgIGhhZCBhIEdzdENhcHNGZWF0dXJlcyBhbmQgeW91IHdlcmUgdHJ5aW5nIHRvIHJlcGxhY2UgaXQgd2l0aCBhIG5ldyBvbmUuCgoyMDE0LTA2LTI2IDExOjE2OjM0ICswMzAwICBHZW9yZ2UgS2lhZ2lhZGFraXMgPGdlb3JnZS5raWFnaWFkYWtpc0Bjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogdW5zZXQgdGhlIHBhcmVudCByZWZjb3VudCBvZiB0aGUgb2xkIGZlYXR1cmVzIGJlZm9yZSBmcmVlaW5nIHRoZW0gaW4gZ3N0X2NhcHNfc2V0X2ZlYXR1cmVzKCkKCSAgT3RoZXJ3aXNlIGdzdF9jYXBzX2ZlYXR1cmVzX2ZyZWUoKSBhc3NlcnRzIGFuZCB0aGUgZmVhdHVyZXMgc3RydWN0dXJlIGlzIGxlYWtlZAoKMjAxNC0wNi0xNiAxOTozMDowNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGF2b2lkIHJldHVybmluZyBfT0sgZm9yIF9OT1RfTElOS0VECgkgIFdoZW4gdGhlIHBhcnNlciByZWNlaXZlcyBub24tYWxpZ25lZCBwYWNrZXRzIGl0IGNhbiBwdXNoIGEgYnVmZmVyCgkgIGFuZCBnZXQgYSBub3QtbGlua2VkIHJldHVybiB3aGlsZSBzdGlsbCBsZWF2aW5nIHNvbWUgZGF0YSBzdGlsbCB0bwoJICBiZSBwYXJzZWQuIFRoaXMgcmVtYWluaW5nIGRhdGEgd2lsbCBub3QgZm9ybSBhIGNvbXBsZXRlIGZyYW1lIGFuZAoJICB0aGUgc3ViY2xhc3MgbGlrZWx5IHJldHVybnMgX09LIGFuZCBiYXNlcGFyc2Ugd291bGQgdGFrZSB0aGF0CgkgIGFzIHRoZSByZXR1cm4sIHdoaWxlIGl0IHRoZSBlbGVtZW50IGlzIGFjdHVhbGx5IG5vdC1saW5rZWQuCgkgIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBieSBzdG9yaW5nIHRoZSBsYXN0IGZsb3ctcmV0dXJuIGZyb20gYSBwdXNoCgkgIGFuZCB1c2luZyB0aGF0IGlmIGEgcGFyc2luZyBvcGVyYXRpb24gZG9lc24ndCByZXN1bHQgaW4gZGF0YSBiZWluZwoJICBmbHVzaGVkIG9yIHNraXBwZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzE0NzQKCjIwMTQtMDYtMjUgMTE6NDA6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzX3ByaXZhdGUuYzoKCSAgZWxlbWVudHM6IGZpeCBjb3B5cmlnaHQgYW5kIHJlbW92ZSBndGstZG9jIGNodW5rCgkgIFRyaXZpYWwgYXMgaXQgbWF5IGJlLCB0aGlzIGNvZGUgd2FzIG1vc3RseSBjb3BpZWQgZnJvbQoJICBzb21ld2hlcmUgZWxzZS4gVGhlIGd0ay1kb2MgY2h1bmsgaXMgbm90IG5lZWRlZCwgc2luY2UKCSAgaXQncyBub3QgcHVibGljIEFQSS4KCjIwMTQtMDYtMDIgMjI6MDc6NTIgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogSWdub3JlIHNlZWsgZXJyb3Igb24gbm9uLXNlZWthYmxlIGZpbGVzCgkgIFRoaXMgbWFrZSBpdCB3b3JrcyB3aXRoIEZJRk9zLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxMTc2CgoyMDE0LTA2LTIyIDE5OjM2OjE0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjMuMyA9PT0KCjIwMTQtMDYtMjIgMTg6MDc6NDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4zLjMKCjIwMTQtMDYtMjIgMTc6MTU6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE0LTA2LTIyIDE0OjIzOjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9zci5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE0LTA2LTIyIDEyOjUyOjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgdGVzdHM6IGFkZCB1bml0IHRlc3QgZm9yIGdzdF9jYXBzX2lzX2FueSgpIGFuZCBfaXNfZW1wdHkoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy8vc2hvd19idWcuY2dpP2lkPTczMTcwNAoKMjAxNC0wNi0yMiAxMjo1MDo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGdzdF9jYXBzX2lzX2FueSgpIHNob3VsZCByZXR1cm4gVFJVRSBvciBGQUxTRQoJICBOb3Qgc29tZSBmbGFnIHZhbHVlIGluc3RlYWQgb2YgVFJVRS4gRml4ZXMgY29kZSBsaWtlCgkgIGdzdF9jYXBzX2lzX2FueSgpID09IFRSVUUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnLy9zaG93X2J1Zy5jZ2k/aWQ9NzMxNzA0CgoyMDE0LTA2LTAxIDE2OjU2OjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGRldmljZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZXZpY2U6IHJlbmFtZSAia2xhc3MiIGFuZCBnZXRfa2xhc3MoKSB0byAiZGV2aWNlLWNsYXNzIiBhbmQgX2dldF9kZXZpY2VfY2xhc3MoKQoJICBUaGVyZSdzIHNvbWUgcHJlY2VkZW50IGluIEdzdEVsZW1lbnRGYWN0b3J5LCBidXQgYQoJICAia2xhc3MiIHByb3BlcnR5IGp1c3Qgc2VlbXMgd2VpcmQuCgoyMDE0LTA2LTIwIDE4OjM0OjQ0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzbmVnby5jOgoJICBiZW5jaG1hcmtzOiBjYXBzbmVnbzogYWRkIC0tbG9vcHMgY29tbWFuZCBsaW5lIG9wdGlvbgoJICBBbmQgZGVmYXVsdCB0byA1MCBsb29wcy4KCjIwMTQtMDYtMjAgMTc6MTQ6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvLmM6CgkgIGJlbmNobWFyazogY2Fwc25lZ286IHVzZSBHT3B0aW9uQ29udGV4dCBmb3Igb3B0aW9uIHBhcnNpbmcKCjIwMTQtMDYtMTkgMTI6MTA6MjMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdGVzdHM6IGZpeCBjb21waWxlciB3YXJuaW5ncyBpbiBnc3R2YWx1ZSB0ZXN0cwoJICBDYWxsaW5nIEdTVF9WQUxVRV9IT0xEU18qKCZ2KSBub3cgcmVzdWx0cyBpbiBhIGNvbXBpbGVyCgkgIHdhcm5pbmcgYWJvdXQgdmFsdWUhPU5VTEwgYWx3YXlzIGJlaW5nIGZhbHNlLCBzbyBjaGVjawoJICB0eXBlIGRpcmVjdGx5IGluIHRob3NlIGNhc2VzLgoKMjAxNC0wNi0xNyAyMjo0NTo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgdmFsdWU6IHNpbXBsaWZ5IEdTVF9WQUxVRV9IT0xEUyBmb3Igb3VyIGJveGVkIGFuZCBmdW5kYW1lbnRhbCB0eXBlcwoJICBCb3hlZCB0eXBlcyBjYW4ndCBiZSBkZXJpdmVkIGZyb20sIGFuZCB3ZSBkb24ndCBzdXBwb3J0CgkgIGRlcml2aW5nIGZyb20gb3VyIHNwZWNpYWwgZnVuZGFtZW50YWwgdHlwZXMgKHRoZSBjb2RlCgkgIGNoZWNrcyBmb3IgR1R5cGUgZXF1YWxpdHkgaW4gbW9zdCBwbGFjZXMuCgoyMDE0LTA2LTIwIDE2OjU1OjA2IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGRldmljZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlLmg6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmg6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yZmFjdG9yeS5oOgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBHc3REZXZpY2U6IERvY3VtZW50IEdzdERldmljZSBhbmQgcmVsYXRlZCBjbGFzc2VzCgoyMDE0LTA2LTE2IDEzOjQ3OjU1ICswMjAwICBTcmltYW50YSBQYW5kYSA8c3JpbWFudGEucGFuZGFAYXhpcy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSAgRml4IGZ1bm5lbCBFT1MgaGFuZGxpbmcgYW5kIHdyb25nIHVuaXR0ZXN0CgkgIFdoZW4gbm8gZGF0YSBpcyBjb21pbmcgZnJvbSBzaW5rcGFkcyBhbmQgZW9zIGV2ZW50cwoJICBhcnJpdmVkIGF0IG9uZSBvZiB0aGUgc2lua3BhZCwgZnVubmVsIGZvcndhcmRzIHRoZSBFT1MKCSAgZXZlbnQgdG8gZG93bnN0cmVhbS4gSXQgZm9yd2FyZHMgdGhlIEVPUyBiZWNhdXNlIGxhc3RzaW5rIHBhZAoJICBpcyBOVUxMLiBBbHNvIHRoZSB1bml0IHRlc3RjYXNlIG9mIHRoZSBmdW5uZWwgaXMgbm90IGNoZWNraW5nCgkgIHRoZSBjb3JyZWN0IGJlaGF2aW9yIGFzIGl0IHNob3VsZC4gVGhlIHVuaXQgdGVzdCBjYXNlIHNob3VsZAoJICBmYWlsIGlmIG9uZSBvZiB0aGUgc2luayBwYWQgaGFzIGFscmVhZHkgRU9TIHByZXNlbnQgb24gaXQgYW5kCgkgIHdlIGFyZSB0cnlpbmcgdG8gcHVzaCBvbmUgbW9yZSBFT1MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzE3MTYKCjIwMTQtMDYtMTkgMDg6MDk6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IG9wdGltaXNlIGNoZWNrcyBmb3IgbGlzdHMKCSAgT3VyIGZ1bmRhbWVudGFsIHR5cGVzIGFyZSBub24tZGVyaXZhYmxlLCBzbyB3ZSBjYW4KCSAganVzdCBjaGVjayBmb3IgZXF1YWxpdHkuIEFsc28gYXZvaWQgZG9pbmcgdGhlIHNhbWUKCSAgY2hlY2sgbXVsdGlwbGUgdGltZXMgaW4gYSBjb3VwbGUgb2YgcGxhY2VzLgoKMjAxNC0wNi0xOSAwODowNjozMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogdXNlIGdfYXNzZXJ0KCkgaW4gaW50ZXJuYWwgZnVuY3Rpb24gZm9yIGFscmVhZHktY2hlY2tlZCB0aGluZ3MKCSAgU28gdGhlc2UgZ2V0IGNvbXBpbGVkIG91dCBmb3IgcmVsZWFzZXMuCgoyMDE0LTA2LTE5IDA4OjA1OjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBhZGQgaW50ZXJuYWwgX2Nhbl9jb21wYXJlX3VuY2hlY2tlZCgpCgoyMDE0LTA2LTE5IDA4OjAzOjM3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBhZGQgaW50ZXJuYWwgX2xpc3RfY29uY2F0KCkgdGhhdCB0YWtlcyBvd25lcnNoaXAgb2YgaW5wdXQgdmFsdWVzCgkgIEF2b2lkcyB1bm5lY2Vzc2FyeSBjb3BpZXMuCgoyMDE0LTA2LTE4IDE5OjA2OjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IHNpbXBsaWZ5IHZhbHVlIHR5cGUgY2hlY2tzIGluIGdldHRlcnMKCSAgSnVzdCBjaGVjayBmb3IgR1R5cGUgZXF1YWxpdHkgaW4gY29tbW9uIGNhc2VzLgoKMjAxNC0wNi0xOSAwOToyOToxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogQWRkIGEgRklYTUUgMi4wIGZvciBhIGZyYWN0aW9uIHJhbmdlcyBvcHRpbWl6YXRpb24KCSAgQ3VycmVudGx5IHdlIGxlYWsgdGhlIGludGVybmFsIHJlcHJlc2VudGF0aW9uIG9mIHRoZW0gYXMgdHdvIEdWYWx1ZXMgdGhhdAoJICBjb250YWluIGEgZnJhY3Rpb24uIFdpdGhvdXQgdGhpcyB3ZSBjb3VsZCBzdG9yZSBmcmFjdGlvbiByYW5nZXMgYXMKCSAgZGF0YVswXSA9IChtaW5fbiA8PCAzMikgfCAobWluX2QpCgkgIGRhdGFbMV0gPSAobWF4X24gPDwgMzIpIHwgKG1heF9kKQoJICBhbmQgd291bGRuJ3QgcmVxdWlyZSBhbiBhZGRpdGlvbmFsIGFsbG9jYXRpb24gcGVyIHJhbmdlLgoKMjAxNC0wNi0xOSAwOToyMzo1NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IE1ha2Ugc3VyZSB0byBjYXN0IGludCByYW5nZSB2YWx1ZXMgdG8gZ3VpbnRzIGJlZm9yZSBzdG9yaW5nIHRoZW0KCSAgT3RoZXJ3aXNlIG5lZ2F0aXZlIHZhbHVlcyB3aWxsIHNldHMgYWxsIG9mIHRoZSA2NCBiaXRzIGR1ZSB0byB0d28ncwoJICBjb21wbGVtZW50J3MgZGVmaW5pdGlvbiBvZiBuZWdhdGl2ZSB2YWx1ZXMuCgkgIEFsc28gYWRkIGEgdGVzdCBmb3IgbmVnYXRpdmUgaW50IHJhbmdlcy4KCjIwMTQtMDYtMTkgMDc6NTc6MTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSBleHBvcnRzCgoyMDE0LTA2LTE5IDA5OjA1OjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBTdG9yZSBpbnRlZ2VyIHJhbmdlcyBkaXJlY3RseSBpbiBhIEdWYWx1ZSB3aXRob3V0IGFkZGl0aW9uYWwgYWxsb2NhdGlvbgoJICBNaWNybyBvcHRpbWl6YXRpb24gdG8gc2F2ZSBzb21lIGFsbG9jYXRpb25zLiBOZXh0IHN0ZXAgdG8gZG8gdGhpcwoJICB3aXRoIGZyYWN0aW9uIHJhbmdlcyB0b28uCgoyMDE0LTA2LTE5IDA4OjQzOjAyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICBnc3RfcHJpdmF0ZTogRml4IGR1cGxpY2F0ZSBkZWZpbml0aW9uCgoyMDE0LTA2LTE5IDA4OjA1OjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmg6CgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkgIGdzdDogU3RvcmUgbW9yZSBiYXNpYyB0eXBlIEdUeXBlcyBpbiB2YXJpYWJsZXMKCSAgTWljcm8gb3B0aW1pemF0aW9uIHRvIGNoYW5nZSBhIGZ1bmN0aW9uIGNhbGwgdG8gYSB2YXJpYWJsZSBhY2Nlc3MKCSAgZm9yIGFsbCBvdXIgYmFzaWMgdHlwZXMuCgoyMDE0LTA2LTE5IDA4OjA0OjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJICB2YWx1ZTogU3RvcmUgb3VyIGZ1bmRhbWVudGFsIHR5cGUgR1R5cGVzIGluIHZhcmlhYmxlcwoJICBNaWNybyBvcHRpbWl6YXRpb24gdG8gY2hhbmdlIGEgZnVuY3Rpb24gY2FsbCB0byBhIHZhcmlhYmxlIGFjY2VzcwoJICBmb3IgYWxsIG91ciBiYXNpYyB0eXBlcy4KCjIwMTQtMDYtMTcgMDc6MzE6NDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBTcGVlZCB1cCBnc3RfdmFsdWVfaW50ZXJzZWN0L19zdWJ0cmFjdAoJICBCb3RoIGdzdF92YWx1ZV9pbnRlcnNlY3QgYW5kIGdzdF92YWx1ZV9zdWJ0cmFjdCB3aWxsIGNhbGwKCSAgZ3N0X3ZhbHVlX2NvbXBhcmUgaWYgb25lIG9mIHRoZWlyIGFyZ3VtZW50cyBpc24ndCBhIGxpc3QuCgkgIGdzdF92YWx1ZV9jb21wYXJlIHdpbGwgdGhlbiByZS1kbyBhIGNoZWNrIHRvIHNlZSBpZiBvbmUgb2YKCSAgdGhlIGFyZ3VtZW50cyBpcyBhIGxpc3QgKGZvciB0aGUgc3BlY2lhbCBjYXNlIG9mIGNvbXBhcmluZyBhIHVuaXRhcnkKCSAgdmFsdWUgd2l0aCBhIGxpc3Qgb2YgbGVuZ3RoIDEpLgoJICBUaGUgcHJvYmxlbSBpcyB0aGF0IHRoZSB2YXJpb3VzIEdfVkFMVUVfSE9MRFMgcmVwcmVzZW50IGFuIGV4cGVuc2l2ZQoJICBhbW91bnQgb2YgY2FsbGluZyBnc3RfdmFsdWVfY29tcGFyZSAoYWxtb3N0IGhhbGYgb2YgaXQpIHRvIHNlZSBpZgoJICB0aGUgcHJvdmlkZWQgYXJndW1lbnRzIGFyZSBsaXN0LiBUaGVzZSBjaGVja3MgY2FuIGJlIGRvbmUgd2l0aG91dAoJICB3aGVuIHdlIGtub3cgdGhhdCB0aGUgYXJndW1lbnRzIGFyZW4ndCBsaXN0cy4KCSAgKiBDcmVhdGUgYSBuZXcgIm5vbGlzdCIgZ3N0X3ZhbHVlX2NvbXBhcmUgd2hpY2ggYXZvaWRzIHRoYXQgc3BlY2lhbAoJICBjYXNlIGNvbXBhcmlzaW9uCgkgIEJlbmNobWFya3M6CgkgIHZhbGdyaW5kL2NhbGxncmluZDogYXZlcmFnZSBzcGVlZHVwIGluIGluc3RydWN0aW9uIGNhbGxzIGZvcgoJICBnc3RfdmFsdWVfaW50ZXJzZWN0IGFuZCBnc3RfdmFsdWVfc3VidHJhY3QgaXMgYXJvdW5kIDU2JSAoTWFrZXMgNjMlCgkgIG9mIHRoZSBjYWxscyBpdCB1c2VkIHRvIHRha2UgcHJldmlvdXNseSkKCSAgdGVzdHMvYmVuY2htYXJrcy9jYXBzbmVnbzogV2l0aCBkZWZhdWx0IHNldHRpbmdzIChkZXB0aCA0LCBjaGlsZHJlbiAzCgkgIDYwNyBlbGVtZW50cyksIHRpbWUgdGFrZW4gZm9yIHRyYW5zaXRpb24gZnJvbSBSRUFEWSB0byBQQVVTRUQ6CgkgIEJlZm9yZSA6IDAwLjM5MTUxOTE1MwoJICBBZnRlciAgOiAwMC4yMjAzOTc0OTIKCSAgNTYlIG9mIHRoZSB0aW1lIHByZXZpb3VzbHkgdXNlZCwgKzc3JSBzcGVlZHVwCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzE3NTYKCjIwMTQtMDYtMTcgMTQ6Mzk6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJICB0ZXN0czogcmVtb3ZlIHNvbWUgY3J1ZnQgZnJvbSB0aGUgYnVmZmVybGlzdCB0ZXN0CgkgIEJ1ZmZlcnMgbm8gbG9uZ2VyIGNhcnJ5IGNhcHMsIGFuZCBidWZmZXJsaXN0cyBkb24ndCBoYXZlCgkgIGdyb3VwcyB3aGVyZSBidWZmZXJzIG1heSBuZWVkIHRvIGJlIG1lcmdlZCBpbnRvIG9uZSBhbnkgbW9yZS4KCjIwMTQtMDYtMTYgMjA6MzA6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJICB0ZXN0czogYWRkIHRlc3QgZm9yIGdzdF9idWZmZXJfbGlzdF9yZW1vdmUoKQoKMjAxNC0wNi0xNiAyMDoyOTo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IGZpeCBidWZmZXIgbGVhayBpbiBfcmVtb3ZlKCkKCjIwMTQtMDYtMTYgMDk6MTg6NDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5jOgoJICBmbG93Y29tYmluZXI6IGZpeCBnLWkgdHJhbnNmZXIgYW5ub3RhdGlvbnMKCjIwMTQtMDYtMTYgMDg6NDE6NDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuYzoKCSAgZmxvd2NvbWJpbmVyOiBGaXhlZCBHQm94ZWRDb3B5RnVuYwoJICBJJ2xsIGp1c3QgcXVvdGUgdGhlIG1vc3QgaW50ZXJlc3RpbmcgbWFuIGluIHRoZSB3b3JsZDoKCSAgIkkgZG9uJ3QgdXN1YWxseSBwdXNoIGNvbW1pdHMsIGJ1dCB3aGVuIEkgZG8gSSBkb24ndCBjb21waWxlIGl0CgkgIGZpcnN0IgoKMjAxNC0wNi0xNCAxNjozMDo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmg6CgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmM6CgkgIGRldmljZW1vbml0b3I6IHNvbWUgZG9jcyBhZGRpdGlvbnMgYW5kIGZpeGVzCgoyMDE0LTA2LTE0IDE2OjI4OjQ4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICB3aW4zMjogYWRkIGV4cG9ydHMgZm9yIG5ldyBnZXRfdHlwZSgpIGZ1bmN0aW9uCgoyMDE0LTA2LTE0IDExOjMxOjQ0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuYzoKCSAgZmxvd2NvbWJpbmVyOiBrZWVwIGEgcmVmIHRvIHRoZSBwYWRzIHdlJ3JlIHVzaW5nCgkgIE5lZWRlZCBmb3IgdXNlIHZpYSB0aGUgYm94ZWQgdHlwZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTM1NQoKMjAxNC0wNi0xNCAxMDo1NDo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmg6CgkgIGZsb3djb21iaW5lcjogYWRkIGJveGVkIHR5cGUgZm9yIGJpbmRpbmdzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzEzNTUKCjIwMTQtMDYtMTEgMTY6Mjg6NTEgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogZ3N0L2dzdGRldmljZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvcmZhY3RvcnkuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGludHJvc3BlY3Rpb246IG1pbm9yIGFubm90YXRpb24gYWRkaXRpb25zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzE1NDEKCjIwMTQtMDYtMTEgMTk6MDg6MDQgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBpbnRyb3NwZWN0aW9uOiBpbmNsdWRlIGdzdHZlcnNpb24uaCBpbiBHSVIgZ2VuZXJhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAzMDIxCgoyMDE0LTA2LTEwIDEwOjIzOjEzIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJICBieXRlcmVhZGVyOiBVc2UgY29uY2lzdGFudCBkZXJlZmVuY2UgbWV0aG9kCgkgIFRoaXMgaXMgbWlub3Igc3R5bGUgZml4IHRvIG5vdCBtaXggKnZhciBhbmQgdmFyW05dLgoKMjAxNC0wNi0xMCAwOTozNTozOCAtMDQwMCAgU3VuZ2hvIEJhZSA8YmF2ZXIuYmFlQGxnZS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSAgYnl0ZXJlYWRlcjogVXNlIHBvaW50ZXIgaW5zdGVhZCBvZiBpbmRleCBhY2Nlc3MKCSAgQ3VycmVudGx5IHRoZSBzY2FuIHVzZXMgQm95ZXItbW9vcmUgbWV0aG9kIGFuZCBpdHMgcGVyZm9ybWFuY2UgaXMgZ29vZC4KCSAgYnV0LCBpdCBjYW4gYmUgb3B0aW1pemVkIGZyb20gYW4gaW1wbGVtZW50YXRpb24gb2Ygdmlldy4KCSAgVGhlIG9yaWdpbmFsIHNjYW4gY29kZSBpcyBpbXBsZW1lbnRlZCBieSBieXRlIGFycmF5IGFuZCBpbmRleC1iYXNlZCBhY2Nlc3MuCgkgIEluIF9zY2FuX2Zvcl9zdGFydF9jb2RlKCksIHRoZSBpbmRleCBpcyBpbmNyZWFzaW5nIGZyb20gc3RhcnQgdG8gZW5kIGFuZCB0aGUKCSAgYmFzZSBhZGRyZXNzIG9mIHRoZSBieXRlIGFycmF5IGlzIHJlZmVycmVkIHRvIGFzIHJldHVybiB2YWx1ZS4KCSAgSW4gdGhlIGNhc2UsIGluZGV4LWJhc2VkIGFjY2VzcyBjYW4gYmUgcmVwbGFjZWQgYnkgcG9pbnRlciBhY2Nlc3MsIHdoaWNoCgkgIGltcHJvdmUgdGhlIHBlcmZvcm1hbmNlIGJ5IHJlbW92aW5nIGluZGV4LXJlbGF0ZWQgb3BlcmF0aW9ucy4KCSAgSXRzIHBlcmZvcm1hY2UgaXMgZW5oYW5jZWQgYnkgYXBwcm94aW1hdGVseSA4JSBvbiBhcm0tYmFzZWQgZW1iZWRkZWQgZGV2aWNlcy4KCSAgQWx0aG91Z2ggaXQgc2VlbXMgdHJpdmlhbCwgaXQgY2FuIGFmZmVjdCB0aGUgb3ZlcmFsbCBwZXJmb3JtYW5jZSBiZWNhdXNlIHRoZQoJICBfc2Nhbl9mb3Jfc3RhcnRfY29kZSgpIGZ1bmN0aW9uIGlzIHZlcnkgb2Z0ZW4gY2FsbGVkIHdoZW4gSC4yNjQvSC4yNjUgdmlkZW8gaXMKCSAgcGxheWVkLgoJICBJbiBhZGRpdGlvbiwgdGhlIHRlY2huaXF1ZSBjYW4gYXBwbHkgZm9yIGFsbCBhcmNoaXRlY3R1cmVzIGFuZCBpdCBpcyBnb29kIGluCgkgIHZpZXcgb2YgcmVhZGFiaWxpdHkgYW5kIG1haW50YWluYWJpbGl0eS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTQ0MgoKMjAxNC0wNi0wNyAxMDoxMzo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmg6CgkgIGdsb2JhbGRldmljZW1vbml0b3I6IHByZXR0aWZ5IGhlYWRlcgoKMjAxNC0wNi0wNyAwOTo0Njo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvcXVldWVhcnJheS5jOgoJICB0ZXN0czogYWRkIHVuaXQgdGVzdCBmb3IgcXVldWVhcnJheSBleHBhbnNpb24gZnJvbSAxCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzEzNDkKCjIwMTQtMDYtMDYgMTY6MzY6MDAgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkgIHF1ZXVlYXJyYXk6IGZpeCBleHBhbmRpbmcgc2l6ZSBvZiBxdWV1ZSBmcm9tIDEKCSAgV2l0aG91dCB3ZSB3b3VsZCBub3QgYWN0dWFsbHkgZXhwYW5kIGFuZCBhY2Nlc3MKCSAgbWVtb3J5IGJleW9uZCB0aGUgYWxsb2NhdGVkIHJlZ2lvbiBmb3IgdGhlIGFycmF5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxMzQ5CgoyMDE0LTA2LTA1IDE2OjU1OjE1IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkgIGRhdGFxdWV1ZTogY2xlYXIgdXAgZG9jdW1lbnRhdGlvbiBvZiBnc3RfZGF0YV9xdWV1ZV9uZXcKCSAgVGhlIGdwb2ludGVyIGFyZ3VtZW50IGlzIHBhc3NlZCB0byBhbGwgdGhyZWUgY2FsbGJhY2tzLCBub3QganVzdCBvbmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzEzMDIKCjIwMTQtMDUtMzAgMDA6MTc6MDYgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yZmFjdG9yeS5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5jOgoJICBpbnRyb3NwZWN0aW9uOiBmaXggc29tZSBtaW5vciBhbm5vdGF0aW9uIGJ1Z3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDk4MgoKMjAxNC0wNi0wNSAxMjozODoyMCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkgIGJhc2U6IHVzZSBjb3JyZWN0IHN5bnRheCBpbiBkb2N1bWVudGF0aW9uIG1vcmUgY29uc2lzdGVudGx5CgkgIFByZXZpb3VzbHksIG1hbnkgY29uc3RhbnRzIHdlcmUgcHJlZml4ZWQgd2l0aCAjIG9yIHVucHJlZml4ZWQsCgkgIHNvbWUgZnVuY3Rpb25zIGFuZCBtYWNyb3Mgd2VyZSBwcmVmaXhlZCB3aXRoICMgaW5zdGVhZCBvZiBzdWZmaXhlZAoJICB3aXRoICgpLCBldGMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzEyOTMKCjIwMTQtMDUtMDcgMTg6MjY6MzggKzA4MDAgIHpob3VtaW5nIDx6bWFmb3hAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBQYXNzIHJhdGUgb2YgaW5wdXQgc2VnbWVudCB0byBvdXRwdXQgc2VnbWVudAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI5NzAxCgoyMDE0LTA0LTA3IDE0OjQ5OjU5ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHNfcHJpdmF0ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzX3ByaXZhdGUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBnc3RidWZmZXI6IGZhY3RvciB0aHJlZSBmbGFncy10by1zdHJpbmcgbG9vcHMKCjIwMTQtMDYtMDMgMjM6NDI6NDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBtYWtlIHByaW50aW5nIGRhdGV0aW1lcyB3b3JrIHdpdGggR1NUX1BUUl9GT1JNQVQKCjIwMTQtMDYtMDMgMjM6Mzg6MjggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgZGF0ZXRpbWU6IGNoYW5nZSBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiB0byBtaW5pIG9iamVjdAoJICBBbmQgbW92ZSB0eXBlIHN0dWZmIGZyb20gR3N0VmFsdWUgdG8gR3N0RGF0ZVRpbWUuCgoyMDE0LTA2LTAzIDIyOjE5OjMzICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSAgZG93bmxvYWRidWZmZXI6IGZpeCB1bmluaXRpYWxpemVkIHZhcmlhYmxlCgoyMDE0LTA2LTAzIDIyOjEyOjEzICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJICBkb3dubG9hZGJ1ZmZlcjogaW1wcm92ZSBzdGFydC9zdG9wIGluIGJ1ZmZlcmluZyBxdWVyeQoJICBUaGUgc3RhcnQgYW5kIHN0b3Agc2hvdWxkIHJlcHJlc2VudCB0aGUgY3VycmVudGx5IGRvd25sb2FkaW5nIHJlZ2lvbi4KCSAgVGhlIGVzdGltYXRlZC10b3RhbCBzaG91bGQgcmVwcmVzZW50IHRoZSByZW1haW5pbmcgdGltZSB0byBkb3dubG9hZAoJICB0aGUgY3VycmVudGx5IGRvd25sb2FkaW5nIHJlZ2lvbi4gVGhpcyBtYWtlcyBpdCBhIGxvdCBtb3JlIHVzZWZ1bAoJICBmb3IgYXBwbGljYXRpb25zIGJlY2F1c2UgdGhleSBjYW4gdGhlbiB1c2UgdGhvc2UgdmFsdWVzIHRvIHVwZGF0ZQoJICB0aGUgZmlsbCByZWdpb24gYW5kIHVzZSB0aGUgZXN0aW1hdGVkIHRpbWUgdG8gZGVsYXkgcGxheWJhY2suCgkgIFVwZGF0ZSB0aGUgZG9jcyB3aXRoIHRoaXMgY2xhcmlmaWNhdGlvbi4KCjIwMTQtMDQtMDcgMTQ6MzU6MDQgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogYWRkIHN0YXRpYyBhbmQgY29uc3Qgd2hlcmUgYXBwcm9wcmlhdGUKCjIwMTQtMDQtMDcgMTQ6MzE6MTcgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogZml4IHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cKCSAgQ292ZXJpdHkgMTAzNzE1NQoKMjAxNC0wNi0wMyAxNDo0OTo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkgIGRvd25sb2FkYnVmZmVyOiByZXNldCByZWFkIGFuZCB3cml0ZSBwb3NpdGlvbnMKCSAgUmVzZXQgdGhlIHJlYWQgYW5kIHdyaXRlIHBvc2l0aW9ucyByaWdodCBhZnRlciB3ZSBvcGVuIHRoZSBmaWxlIG9yIGZsdXNoCgkgIGl0LiBXZSBhcmUgYWxzbyBpbiB0aGUgYnVmZmVyaW5nIHN0YXRlIHdpdGggMCBwZXJjZW50IGJ1ZmZlcmVkIHdoZW4gd2UKCSAgc3RhcnQuCgoyMDE0LTA2LTAzIDE0OjQ3OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGZpcnN0IGhhbmRsZSBhbGwgbWluaW9iamVjdHMsIHRoZW4gR09iamVjdHMKCSAgRmlyc3QgaGFuZGxlIGFsbCBtaW5pb2JqZWN0cyBiZWZvcmUgd2UgYXR0ZW1wdCB0byBkZXJlZmVyZW5jZSB0aGUgZmlyc3QKCSAgZmllbGQgcG9pbnRlciBhbmQgbG9vayBhdCB0aGUgR1R5cGUuIFdpdGggdGhlIHJlY2VudCBnbGliIGNoYW5nZSB0bwoJICBzcGVlZCB1cCBHX0lTX09CSkVDVCwgdGhpcyBjYXVzZXMgY3Jhc2hlcyBvbiBtaW5pb2JqZWN0cyBvdGhlcndpc2UuCgoyMDE0LTA2LTAzIDE0OjQ2OjExICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IEdzdERhdGVUaW1lIGRvZXMgbm90IGhhdmUgYSBHVHlwZSBhcyBmaXJzdCBmaWVsZAoJICBHc3REYXRlVGltZSBkb2VzIG5vdCBoYXZlIHRoZSBHVHlwZSBhcyB0aGUgZmlyc3QgZmllbGQgc28gd2UgY2FuJ3QgdXNlCgkgIGl0IHRvIGRldGVjdCBpdHMgdHlwZS4KCjIwMTQtMDYtMDMgMTQ6NDU6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogdXNlIG1hY3JvcyB0byBjaGVjayB0eXBlcwoJICBVc2UgdGhlIG1hY3JvcyB0byBjaGVjayB0aGUgdHlwZSBvZiBvYmplY3RzIGluc3RlYWQgb2YgZGlyZWN0bHkgcG9raW5nCgkgIGF0IHRoZSBmaXJzdCBmaWVsZC4KCjIwMTQtMDYtMDEgMjM6NTE6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5jOgoJICBnbG9iYWxkZXZpY2Vtb25pdG9yOiBjb25uZWN0IHN5bmMtbWVzc2FnZSBzaWduYWwgb24gdGhlIHJpZ2h0IG9iamVjdAoJICBGaXhlcyBjcml0aWNhbHMgYXQgcnVudGltZSBhbmQgbWFrZXMgc3R1ZmYgYWN0dWFsbHkgd29yay4KCjIwMTQtMDUtMzEgMTc6MzU6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogS2VlcCBzdGlsbCBtZWFuaW5nZnVsbCBwZW5kaW5nIGV2ZW50cyBvbiBGTFVTSF9TVE9QCgkgIE9ubHkgRU9TIGFuZCBzZWdtZW50IHNob3VsZCBiZSBkZWxldGVkIGluIHRoYXQgY2FzZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTg2OAoKMjAxNC0wNS0zMCAwOToxMzoxMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIFJldmVydCAibWluaW9iamVjdDogQWRkIG1pc3NpbmcgKG51bGxhYmxlKSBhbm5vdGF0aW9ucyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA5NjM2MWU5YjVjNWQwMGRjNzcxMmZmM2E5YWNmYmUxMGRmN2NkOWZlLgoJICBUaGlzIHdhcyBub3Qgc3VwcG9zZWQgdG8gYmUgcHVzaGVkIHlldCEKCjIwMTQtMDUtMzAgMDk6MTI6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiBJdCdzIHBvb2wsIG5vdCBwb28uLi4gZXZlbiB3aGVuIHRhbGtpbmcgYWJvdXQgZmx1c2hpbmcKCjIwMTQtMDUtMjggMTA6MTQ6NDUgKzAxMDAgIFBoaWxpcCBXaXRobmFsbCA8cGhpbGlwLndpdGhuYWxsQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IEFkZCBtaXNzaW5nIChudWxsYWJsZSkgYW5ub3RhdGlvbnMKCSAgZ3N0X21pbmlfb2JqZWN0X3JlcGxhY2UoKSBjYW4gdGFrZSBOVUxMIG1pbmktb2JqZWN0cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDg3MwoKMjAxNC0wNS0zMCAwMTo0MjoxNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIHRlc3RzOiBtdWx0aXF1ZXVlOiBmaXggbGVha3MKCjIwMTQtMDUtMjkgMTQ6NTQ6MzQgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRldmljZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvcmZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0cGFyc2UuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzYW1wbGUuYzoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZG9jczogY29udmVydCBOVUxMLCBUUlVFLCBhbmQgRkFMU0UgdG8gJU5VTEwsICVUUlVFLCBhbmQgJUZBTFNFCgkgIFRoaXMgc2hvdWxkIGhlbHAgaW1wcm92ZSBkb2N1bWVudGF0aW9uIGdlbmVyYXRlZCBmb3IKCSAgbGFuZ3VhZ2VzIG90aGVyIHRoYW4gQy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDk2MQoKMjAxNC0wNS0zMCAwMDoxMzozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZG9jczogZml4IHR5cGUgaW4gR3N0T2JqZWN0IGRvY3MKCjIwMTQtMDUtMjkgMTU6MDQ6NDUgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogZml4IGdzdF9idWZmZXJfcG9vbF9oYXNfb3B0aW9uKCkgZG9jdW1lbnRhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwOTYyCgoyMDE0LTA1LTI5IDE0OjA3OjE1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IHNldCBwYWRzIG5lZWQtcGFyZW50IGZsYWcgdG8gZmFsc2Ugd2hlbiByZW1vdmluZwoJICBXaGVuIGEgcGFkIGlzIGFkZGVkIHRoZSBuZWVkLXBhcmVudCBmbGFnIGlzIHNldCB0byB0cnVlLCBzbyB3aGVuCgkgIHRoZXkgYXJlIHJlbW92ZWQgdGhlIGZsYWcgc2hvdWxkIGJlIHNldCBiYWNrIHRvIGZhbHNlCgkgIFRoaXMgd2FzIHByZXZlbnRpbmcgR3N0UGFkcyB0byBiZSByZXVzZWQgaW4gZWxlbWVudHMgKHJlbW92ZWQgYW5kCgkgIGxhdGVyIHJlLWFkZGVkKS4gQSB1bml0IHRlc3RzIHdhcyBhZGRlZCB0byB2ZXJpZnkgdGhhdCB0aGlzIGlzCgkgIHdvcmtpbmcgbm93LgoJICBUaGUgdXNlIGNhc2UgaXMgdHNkZW11eCB0aGF0IGhhcyBhIHByb2dyYW0tbnVtYmVyIHByb3BlcnR5IGFuZAoJICBhbGxvd3MgdGhlIHVzZXIgdG8gc3dpdGNoIHByb2dyYW1zLiBJbiBvcmRlciB0byBkbyB0aGF0IHRzZGVtdXgKCSAgd2lsbCByZW1vdmUgdGhlIHBhZHMgb2YgdGhlIGN1cnJlbnQgcHJvZ3JhbSBhbmQgYWRkIGZyb20gdGhlIG5ldwoJICBvbmVzLiBUaGUgcmVtb3ZlZCBwYWRzIGFyZSBrZXB0IGluIHRoZSBkZW11eGVyIGZvciBsYXRlciBpZiB0aGUKCSAgdXNlciBzZWxlY3RzIHRoZSBvbGQgcHJvZ3JhbSBhZ2Fpbi4KCjIwMTQtMDUtMjcgMDg6MDk6MzYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHBvc3QgYnVmZmVyaW5nIG1lc3NhZ2Ugd2hlbiBxdWV1ZXMgZmx1c2gKCSAgVGhlIGJ1ZmZlcmluZyBzdGF0dXMgZ29lcyBiYWNrIHRvIDAsIHNvIGluZm9ybSB0aGUgYXBwbGljYXRpb24gYWJvdXQgaXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNjQyMwoKMjAxNC0wNS0yOSAxNDozOTozNiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiAuZ2l0aWdub3JlOgoJICBnaXRpZ25vcmU6IElnbm9yZSBWSU0gc3dhcCBmaWxlcwoKMjAxNC0wNS0yNyAxMzozNjoyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IHR3byBtaW5vciBkb2NzIGZpeGVzCgoyMDE0LTA1LTI3IDEwOjA5OjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuaDoKCSAgZmxvd2NvbWJpbmVyOiBiZWF1dGlmeSBoZWFkZXJzIGEgbGl0dGxlCgoyMDE0LTA1LTI3IDEwOjA1OjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuaDoKCSAgZG9jczogYWRkIEdzdEZsb3dDb21iaW5lcgoKMjAxNC0wNS0yNyAwOTo1NToyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvYmFzZS5oOgoJICBiYXNlOiBpbmNsdWRlIGZsb3djb21iaW5lciBoZWFkZXIgZnJvbSBiYXNlLmgKCjIwMTQtMDUtMjYgMTI6MzE6MzMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svbGlicy9mbG93Y29tYmluZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBmbG93Y29tYmluZXI6IGFkZCBHc3RGbG93Q29tYmluZXIKCSAgQWRkcyBhIHV0aWxpdHkgc3RydWN0IHRoYXQgaXMgY2FwYWJsZSBvZiBzdG9yaW5nIGFuZCBhZ2dyZWdhdGluZyBmbG93IHJldHVybnMKCSAgYXNzb2NpYXRlZCB3aXRoIHBhZHMuCgkgIFRoaXMgd2F5IGFsbCBkZW11eGVycyB3aWxsIGhhdmUgYSBzdGFuZGFyZCBmdW5jdGlvbiB0byB1c2UgYW5kIGhhdmUgdGhlCgkgIHNhbWUgZXhwZWN0ZWQgcmVzdWx0cy4KCSAgSW5jbHVkZXMgdGVzdHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDkyMjQKCjIwMTQtMDUtMjMgMTM6MjU6MzUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogc3RvcmUgbGFzdCBmbG93IHJldHVybiBhbmQgcHJvdmlkZSBhY2Vzc29yIGZ1bmN0aW9uCgkgIFN0b3JlcyB0aGUgbGFzdCByZXN1bHQgb2YgYSBnc3RfcGFkX3B1c2ggb3IgYSBwdWxsIG9uIHRoZSBHc3RQYWQgYW5kIHByb3ZpZGVzCgkgIGEgZ2V0dGVyIGFuZCBhIG1hY3JvIHRvIGFjY2VzcyB0aGlzIGZpZWxkLgoJICBXaGVuZXZlciB0aGUgcGFkIGlzIGluYWN0aXZlIGl0IGlzIHNldCB0byBGTFVTSElORwoJICBBUEk6IGdzdF9wYWRfZ2V0X2xhc3RfZmxvd19yZXR1cm4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTIyNAoKMjAxNC0wNS0yMyAxNToyNjo1OSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcnBvb2w6IEFkZCBtZXRob2QgYW5kIHZpcnR1YWxzIHRvIHNldCBmbHVzaGluZyBzdGF0ZQoJICBDdXJyZW50bHkgdGhlcmUgaXMgbm8gb3RoZXIgd2F5IHRvIHVubG9jayBhIGJ1ZmZlciBwb29sIG90aGVyIHRoZW4KCSAgc3RvcHBpbmcgaXQuIFRoaXMgbWF5IGhhdmUgdGhlIGVmZmVjdCBvZiBmcmVlaW5nIGFsbCB0aGUgYnVmZmVycywKCSAgd2hpY2ggaXMgdG9vIGhlYXZ5IGZvciBhIHNlZWsuIFRoaXMgcGF0Y2ggYWRkIGEgbWV0aG9kIHRvIGVudGVyIGFuZAoJICBsZWF2ZSBmbHVzaGluZyBzdGF0ZS4gQXMgYSBjb252ZW5pZW5jZSwgZmx1c2hfc3RhcnQvZmx1c2hfc3RvcAoJICB2aXJ0dWFsIGFyZSBhZGRlZCBzbyBwb29sIGltcGxlbWVudGF0aW9uIGNhbiBhbHNvIHVuYmxvY2sgdGhlaXIgb3duCgkgIGludGVybmFsIHBvbGwgYXRvbWljYWxseSB3aXRoIHRoZSByZXN0IG9mIHRoZSBwb29sLiAgVGhpcyBpcyBmdWxseQoJICBiYWNrd2FyZCBjb21wYXRpYmxlIHdpdGggZG9pbmcgc3RvcC9zdGFydCB0byBhY3R1YWxseSBmbHVzaCB0aGUgcG9vbAoJICAoYXMgYmVpbmcgZG9uZSBpbiBHc3RCYXNlU3JjKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzYxMQoKMjAxNC0wNS0yNiAxNDoyMzoxMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBQYXNzdGhyb3VnaCBBTExPQ0FUSU9OIHF1ZXJpZXMgaW4gcGFzc3Rocm91Z2ggbW9kZSBldmVuIGlmIHdlIGhhZCBubyBjYXBzIHlldAoJICBPciBpZiB0aGUgZWxlbWVudCBkb2VzIG5vdCBjYXJlIGFib3V0IGNhcHMgYXQgYWxsLgoJICBBbHNvIHJlbW92ZSBhbiBhc3NpZ25lZCBidXQgdW51c2VkIGxvY2FsIHZhcmlhYmxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwMjY4CgoyMDE0LTA1LTI1IDE2OjEwOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZQoKMjAxNC0wNS0yNSAxNjo1Nzo1OSArMDIwMCAgUGlvdHIgRHLEhWcgPHBpb3RyZHJhZ0BnbWFpbC5jb20+CgoJKiBwby9QT1RGSUxFUy5pbjoKCSAgcG86IHVwZGF0ZSBQT1RGSUxFUwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwNzE4CgoyMDE0LTA1LTIxIDEzOjIzOjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjMuMiA9PT0KCjIwMTQtMDUtMjEgMTM6MDY6MzQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjMuMgoKMjAxNC0wNS0yMSAxMTozOTo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTQtMDUtMjEgMTA6NTA6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBSRUFETUU6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMjExZmE1ZiB0byAxZjVkM2MzCgoyMDE0LTA1LTE5IDExOjA1OjEyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBBZGQgc29tZSBwb3NpdGl2ZSB0ZXN0Y2FzZSBmb3Igc3RyaW5nIGRlc2VyaWFsaXphdGlvbgoKMjAxNC0wNS0xOCAxMDo0OTo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIFJFQURNRToKCSogZG9jcy9mYXEvZ2V0dGluZy54bWw6CgkgIGRvY3M6IHJlbW92ZSByZWZlcmVuY2UgdG8gTWFuZHJha2UgYW5kIHBhY2thZ2VzIHdlIG5vIGxvbmdlciBwcm92aWRlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzAzMTIKCjIwMTQtMDUtMTUgMTY6NDE6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1jYXBzLnR4dDoKCSAgZG9jczogZml4IHR5cG8KCjIwMTQtMDUtMTQgMTM6NDA6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogZml4IGNvbXBpbGVyIHdhcm5pbmcgb24gd2luZG93cwoJICBnc3RwbHVnaW5sb2FkZXIuYzo1ODQ6MTogZXJyb3I6IGxhYmVsICdiZWFjaCcgZGVmaW5lZCBidXQgbm90IHVzZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDEyNQoKMjAxNC0wNS0xMyAxOTo1MTozNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzcGFyc2VmaWxlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3BhcnNlZmlsZS5oOgoJICBlbGVtZW50czogZG9uJ3QgZGVwZW5kIG9uIGxpYmdpbyBqdXN0IGZvciBnX2lvX2Vycm9yX2Zyb21fZXJybm8oKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI5OTQ5CgoyMDE0LTA1LTEzIDE5OjMwOjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNwYXJzZWZpbGUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzcGFyc2VmaWxlLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3BhcnNlZmlsZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHNwYXJzZWZpbGU6IGtlZXAgaXQgcHJpdmF0ZSBhcyBoZWxwZXIgQVBJIGZvciBkb3dubG9hZGJ1ZmZlcgoJICBUaGVyZSdzIG5vIGV4cGVjdGF0aW9uIHRoYXQgYW55IG90aGVyIGVsZW1lbnQgb3IgYXBwbGljYXRpb25zCgkgIG1pZ2h0IHdhbnQgdG8gdXNlIHRoaXMgaGVscGVyIEFQSSBhbnkgdGltZSBzb29uLCBzbyBrZWVwIGl0CgkgIHByaXZhdGUgZm9yIHRoZSB0aW1lIGJlaW5nLiBUaGVyZSB3ZXJlIG9wZW4gcXVlc3Rpb25zIHJlZ2FyZGluZwoJICBwb3J0YWJpbGl0eSBhbmQgYmluZGluZy1mcmllbmRsaW5lc3MgdG9vLgoJICBUaGlzIGFsc28gcmVtb3ZlcyB0aGUgZ2lvIGRlcGVuZGVuY3kgb2YgLWJhc2UgYWdhaW4uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjk5NTEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTk0OQoKMjAxNC0wNS0xMyAxOToxNDowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSAgZG9jczogcGljayB1cCBHc3RCYXNlUGFyc2UgaGllcmFyY2h5IGFuZCBwcm9wZXJ0aWVzCgoyMDE0LTA1LTEzIDE5OjEwOjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogZXhwb3NlIEdzdFB1c2hTcmNDbGFzcyBpbiBkb2N1bWVudGF0aW9uCgkgIE1pZ2h0IGNvbWUgaW4gaGFuZHkgaW4gY2FzZSBzb21lb25lIHdhbnRzIHRvIGRlcml2ZSBmcm9tIGl0LgoKMjAxNC0wNS0xMiAxNzowMzo0NiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBEb24ndCBsZWFrIHBsdWdpbmxvYWRlciBpbiBlcnJvciBjYXNlcwoJICBDSUQgIzEyMTIxNTQKCjIwMTQtMDUtMTIgMTY6NTk6MjkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBEb24ndCBsZWFrIGZlYXR1cmVzIG9uIGVycm9yIGNhc2VzCgkgIElmIHdlIGZhaWwgdG8gcGFyc2UgZmllbGRzLCB3ZSB3b3VsZCBlbmQgdXAgbGVha2luZyB0aGUgZmVhdHVyZXMgd2UKCSAgcGFyc2VkIGp1c3QgYmVmb3JlCgkgIENJRCAjMTIxMjE1MgoKMjAxNC0wNS0wOSAxNDoyODo1OSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IENvcnJlY3RseSByZXNldCBjb25maWd1cmF0aW9uCgkgIFdoZW4gcG9vbCBjYW4ndCB3ZSB1c2UsIGFuZCB3ZSBmYWxsIGJhY2sgdG8gZGVmYXVsdCBwb29sLCB3ZSBuZWVkIHRvCgkgIGNvcnJlY3RseSByZXNldCB0aGF0IHBvb2wgY29uZmlndXJhdGlvbi4KCjIwMTQtMDUtMDkgMTQ6NDY6NTkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIG5ldHRpbWVwcm92aWRlcjogVXNlIG5vbi1mcmVlZCB2YXJpYWJsZQoJICBhZGRyZXNzIGlzIG9ubHkgdXNlZCB0ZW1wb3JhcmlseS4gVXNlIHRoZSBwcm9wZXIgdmFyaWFibGUgaW5zdGVhZC4KCSAgQ0lEICMxMjEyMTg5CgoyMDE0LTA1LTA4IDE3OjMzOjM3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgdGVzdHM6IG11bHRpcXVldWU6IHRlc3QgdG8gY2hlY2sgcXVldWUgb3ZlcnJ1biB3aXRoIHB0cz1ub25lCgkgIENoZWNrcyBpZiBidWZmZXJzIHdpdGggcHRzPW5vbmUgY2FuIGJyZWFrIHRoZSBxdWV1ZSB0aW1lIHNpemUgbGltaXQKCSAgYW5kIGFsbG93IG1vcmUgYnVmZmVycyB0aGFuIGV4cGVjdGVkCgoyMDE0LTA1LTA4IDE0OjQ4OjAwIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkgIGRvd25sb2FkYnVmZmVyOiBGaXggMzJiaXQgYnVpbGQKCSAgZm9ybWF0ICclbGxpJyBleHBlY3RzIGFyZ3VtZW50IG9mIHR5cGUgJ2xvbmcgbG9uZyBpbnQnLCBidXQgYXJndW1lbnQgOCBoYXMgdHlwZSAnZ3NpemUnCgoyMDE0LTA1LTA4IDE0OjEyOjE2IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgcG9vbC1uZWdvOiBDb3JyZWN0bHkgcmVzZXQgdGhlIGNvbmZpZ3VyYXRpb24KCSAgV2hlbiBwb29sIGNhbm5vdCBiZSB1c2VkLCBjb3JyZWN0bHkgcmVzZXQgdGhlIGNvbmZpZ3VyYXRpb24gYmVmb3JlCgkgIGNvbmZpZ3VyYXRpb24gYSBkZWZhdWx0IHBvb2wuCgoyMDE0LTA0LTE1IDE0OjE3OjAwIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIHBvb2wtbmVnbzogUmV0cnkgc2V0dGluZyBjb25maWd1cmF0aW9uIHdpdGggbW9kaWZpZWQgY29uZmlnCgkgIEJ1ZmZlciBwb29sIHNldF9jb25maWcoKSBtYXkgcmV0dXJuIEZBTFNFIGlmIHJlcXVlc3RlZCBjb25maWd1cmF0aW9uIG5lZWRlZAoJICBzbWFsbCBjaGFuZ2VzLiBSZWdldCB0aGUgY29uZmlnIGFuZCB0cnkgc2V0dGluZyBpdCBhZ2FpbiAodmFsaWRhdGluZyB0aGUKCSAgY2hhbmdlcyBmaXJzdCkuIFRoaXMgZW5zdXJlIHdlIGhhdmUgYSBjb25maWd1cmVkIHBvb2wgaWYgcG9zc2libGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc5MTYKCjIwMTQtMDUtMDggMTI6NDc6NDMgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJwb29sLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJwb29sOiBBZGQgYW4gaGVscGVyIHRvIHZhbGlkYXRlIGNvbmZpZwoJICBXaGVuIHdlIGNhbGwgZ3N0X2J1ZmZlcl9wb29sX3NldF9jb25maWcoKSB0aGUgcG9vbCBtYXkgcmV0dXJuIEZBTFNFIGFuZAoJICBzbGlnaHRseSBjaGFuZ2UgdGhlIHBhcmFtZXRlcnMuIFRoaXMgaGVscGVyIGlzIHVzZWZ1bCB0byBkbyB0aGUgbWluaWFsIHJlcXVpcmVkCgkgIHZhbGlkYXRpb24gYmVmb3JlIGFjY2VwdGluZyB0aGUgbW9kaWZpZWQgY29uZmlndXJhdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzkxNgoKMjAxNC0wNC0wOCAxOToyNzo1NSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogVXBkYXRlIHRoZSBjb25maWd1cmUgZXZlbiBpZiBzZXRfY29uZmlnKCkgcmV0dXJuZWQgZmFsc2UKCSAgQWNjb3JkaW5nIHRvIHRoZSBkb2N1bWVudGF0aW9uLCB3aGVuIHNldF9jb25maWcoKSByZXR1cm4gZmFsc2UsIGl0IHNob3VsZCBiZQoJICBwb3NzaWJsZSB0byByZWFkIHRoZSBtb2RpZmllZCB2ZXJzaW9uIG9mIHRoZSBjb25maWcuIFRoaXMgcGF0Y2ggZml4ZXMgdGhlCgkgIGltcGxlbWVudGF0aW9uIHNvIGl0IGlzIG5vdyBhY2NvcmRpbmcgdG8gdGhlIGRvY3VtZW50YXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc5MTYKCjIwMTQtMDUtMDYgMTU6MzU6MTQgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogQWRkIHN1cHBvcnQgZm9yIHJlY29uZmlndXJpbmcgYSBwb29sCgkgIElmIGEgcG9vbCBjb25maWcgaXMgYmVpbmcgY29uZmlndXJlZCBhZ2FpbiwgY2hlY2sgaWYgdGhlIGNvbmZpZ3VyYXRpb24gaGF2ZSBjaGFuZ2VkLgoJICBJZiBub3QsIHNraXAgdGhhdCBzdGVwLiBGaW5hbGx5LCBpZiB0aGUgcG9vbCBpcyBhY3RpdmUsIHRyeSBkZWFjdGl2YXRpbmcgaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjgyNjgKCjIwMTQtMDUtMDYgMTY6NTk6MzQgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogQWRkIHN1cHBvcnQgZm9yIEdzdEFsbG9jYXRpb25QYXJhbXMgY29tcGFyaXNpb24KCSAgVGhpcyBpcyB1c2VmdWwgdG8gY29tcGFyZSBidWZmZXIgcG9vbCBjb25maWd1YXJhdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyODI2OAoKMjAxNC0wNS0wNiAxNjo0Njo1NSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBBZGQgc3VwcG9ydCBmb3IgR09iamVjdCBjb21wYXJpc2luZyBpbiBzdHJ1Y3R1cmVzCgkgIFRoaXMgaXMgdXNlZnVsIHRvIGFsbG93IGNvbXBhcmluZyBwb29sIGNvbmZpZ3VyYXRpb24gd2hlcmUgYSBHc3RBbGxvY2F0b3IKCSAgaXMgc2V0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4MjY4CgoyMDE0LTA1LTA4IDE3OjUwOjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IGZpeCBjYXNlIHdoZXJlIGdzdF9wbHVnaW5fbG9hZF9maWxlKCkgZGlkbid0IHNldCB0aGUgZXJyb3Igb24gZmFpbHVyZQoKMjAxNC0wNS0wOCAxNjozMDo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0c3BhcnNlZmlsZS5jOgoJICBzcGFyc2VmaWxlOiBhZGQgc29tZSBTaW5jZSBtYXJrZXJzIHRvIGRvY3MKCjIwMTQtMDUtMDggMTY6MjU6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHNwYXJzZWZpbGUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RzcGFyc2VmaWxlLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSAgc3BhcnNlZmlsZTogc3ByaW5rbGUgR19CRUdJTl9ERUNMUyAvIEdfRU5EX0RFQ0xTCgkgIGZvciBjKyssIGFuZCByZW1vdmUgb3V0ZGF0ZWQgY29tbWVudCwgYW5kIGFkZAoJICBuZXcgdW5pdCB0ZXN0IHRvIC5naXRpZ25vcmUuCgoyMDE0LTA1LTA4IDE2OjQ5OjUzICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSAgZG93bmxvYWRidWZmZXI6IHNtYWxsIGNsZWFudXBzCgoyMDE0LTA1LTA4IDE0OjUxOjEyICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkgIGRvd25sb2FkYnVmZmVyOiB1cGRhdGUgZG9jcwoKMjAxNC0wNS0wOCAxNDo1MDo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgZGVmCgoyMDE0LTAyLTIxIDE2OjMyOjUyICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0c3BhcnNlZmlsZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHNwYXJzZWZpbGUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3BhcnNlZmlsZS5jOgoJICBBZGQgbmV3IGRvd25sb2FkYnVmZmVyIGVsZW1lbnQKCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODAxODMKCjIwMTQtMDUtMDIgMTc6NDI6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBwYWRzOiB1cGRhdGUgZG9jcyBmb3IgcmVxdWVzdCBwYWRzCgkgIFdlIHdvdWxkIGxpa2UgdG8gZW5jb3VyYWdlIHRoZSB1c2Ugb2YgZ3N0X2VsZW1lbnRfcmVxdWVzdF9wYWQoKQoKMjAxNC0wNS0wMiAxNzowMjozNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmM6CgkgIGNoZWNrOiB1c2UgX2V4aXQoKSBpbnN0ZWFkIG9mIGV4aXQoKSBpbiBmYWlsX3VubGVzcygpIHNvIHdlIGV4aXQgaW1tZWRpYXRlbHkKCSAgZXhpdCgpIHdpbGwgY2FsbCBhdGV4aXQgaGFuZGxlcnMsIHdoaWNoIG1heSB0cnkgdG8KCSAgY2xlYW4gdXAgdGhpbmdzIG9yIHdhaXQgZm9yIHRoaW5ncyB0byBnZXQgY2xlYW5lZCB1cCwKCSAgd2hpY2ggd2UgZG9uJ3Qgd2FudCBvciBuZWVkLiBXZSBqdXN0IHdhbnQgdG8gc3RvcAoJICBhbmQgbGV0IHRoZSBwYXJlbnQga25vdyBhYm91dCB0aGUgZmFpbHVyZSBhcyBxdWlja2x5CgkgIGFzIHBvc3NpYmxlIGluIGNhc2UgZm9yaygpIGlzIHVzZWQuCgkgIEZpeGVzIHRpbWVvdXRzIG9uIGFzc2VydCBmYWlsdXJlcyBpbiBjaGVja3Mgd2hlcmUKCSAgYW4gZXhpdCBoYW5kbGVyIHdhaXRzIGZvciB0aGluZ3MgdG8gc3RvcCwgYnV0IHRoZXkKCSAgZG9uJ3Qgc3RvcCBiZWNhdXNlIHRoZXkgaGF2ZW4ndCBiZWVuIHNodXQgZG93biwKCSAgYW5kIHRoZXkgaGF2ZW4ndCBiZWVuIHNodXQgZG93biBiZWNhdXNlIHRoZXJlJ3Mgbm8KCSAgc2ltcGxlIHdheSB0byBkbyBzbyBvbiBmYWlsdXJlcy4KCSAgaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wL2NoZWNrL3BhdGNoZXMvNTAvCgoyMDE0LTA1LTA0IDE0OjUyOjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBpbml0IGZsYWcgbWFzayBtb3JlIGNvcnJlY3RseQoKMjAxNC0wNS0wNCAxMzozMjo0NiArMDAwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogZ19tZW1tb3ZlKCkgaXMgZGVwcmVjYXRlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEyODExCgoyMDE0LTA1LTAzIDIwOjQ4OjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjMuMSA9PT0KCjIwMTQtMDUtMDMgMTc6NDE6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuMy4xCgoyMDE0LTA1LTAzIDE3OjM0OjA4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNC0wNS0wMyAxNzoyMDo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE0LTA1LTAzIDEyOjE0OjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgZG9jczogYWRkIG5ldyBkZXZpY2UgcHJvYmluZyBBUEkgdG8gZG9jcyB0YWJsZSBvZiBjb250ZW50cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI5NDQwCgoyMDE0LTA1LTAyIDIyOjIyOjAzIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvYzogQWRkIEdzdERldmljZSogdG8gZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI5NDQwCgoyMDE0LTA1LTAzIDEwOjE0OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBiY2IxNTE4IHRvIDIxMWZhNWYKCjIwMTQtMDUtMDEgMTA6Mzc6MTggLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogQWx3YXlzIHJlbmRlciBwcmVwYXJlZCBidWZmZXIKCSAgQ3VycmVudGx5LCBpZiBwcmVwYXJlKCkgdGFrZXMgdG9vIG11Y2ggdGltZSwgd2Ugc2tpcCB0aGUgY2FsbCB0byByZW5kZXIoKS4KCSAgVGhlIHNpZGUgZWZmZWN0IG9mIHRoaXMsIGlzIHRoYXQgd2UgZW5kdXAgc3RhcnZpbmcgdGhlIHJlbmRlcigpLiBUaGUgc29sdXRpb24KCSAgaW4gdGhpcyBwYXRjaCBpcyB0byBhbHdheXMgcmVuZGVyIGZyYW1lcyB0aGF0IGFyZSBvbiB0aW1lIGJlZm9yZSBwcmVwYXJlKCkgaXMKCSAgZXhlY3V0ZWQuIFRoaXMgd2lsbCBtYXhpbWl6ZSB0aGUgbnVtYmVyIG9mIGZyYW1lcyB3ZSBkaXNwbGF5IGFuZCBzbW9vdGhseQoJICBkZWdyYWRlIHRoZSByZW5kZXJpbmcgcGVyZm9ybWFuY2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjkzMzUKCjIwMTQtMDUtMDEgMTQ6NTI6MjQgLTA0MDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNAZGViZXRoZW5jb3VydC5jb20+CgoJKiBzY3JpcHRzL2dpdC12ZXJzaW9uLnNoOgoJICBzY3JpcHRzL2dpdC12ZXJzaW9uLnNoOiBhZGQgbW9yZSBtb2R1bGVzCgkgIEFkZCBtb3JlIGdpdCByZXBvc2l0b3JpZXMgdG8gY2hlY2sgKHNvIGdpdC12ZXJzaW9uLnNoIGlzIGNvbnNpc3RlbnQgd2l0aAoJICBnc3QtdW5pbnN0YWxsZWQpIGFuZCBkaXNwbGF5IHRoZSBkYXRlIG9mIHRoZSBsYXN0IGNvbW1pdCwgd2hpY2ggaXMgbW9yZSB2YWx1YWJsZQoJICBpbmZvcm1hdGlvbiB0aGFuIHRoZSBsYXN0IGNvbW1pdCdzIGhhc2guCgoyMDE0LTA1LTAxIDE4OjQyOjQ3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IEFsd2F5cyBmaXJzdCBwb3N0IHRoZSBzdGF0ZS1jaGFuZ2VkIG1lc3NhZ2UgZm9yIFBBVVNFRC0+UkVBRFkgYmVmb3JlIHBvc3RpbmcgYW55IHBlbmRpbmcgRU9TIG1lc3NhZ2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzk0OQoKMjAxNC0wNC0xNyAyMToxMDo1NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IEFkZCB0ZXN0IGZvciBjaGVja2luZyB0aGF0IEVPUyBhbHdheXMgY29tZXMgYWZ0ZXIgdGhlIHN0YXRlIGNoYW5nZSB0byBQTEFZSU5HCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc5NDkKCjIwMTQtMDQtMTUgMTU6NTU6MjUgKzAyMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogZml4IGxvZyBtZXNzYWdlIG9mIGJ1ZmZlciBwb2ludGVyCgoyMDE0LTA0LTMwIDE4OjIwOjI4IC0wNDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzQGRlYmV0aGVuY291cnQuY29tPgoKCSogc2NyaXB0cy9naXQtdmVyc2lvbi5zaDoKCSAgc2NyaXB0cy9naXQtdmVyc2lvbi5zaDogcmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKMjAxNC0wNC0zMCAxMDo0NzoxOSAtMDQwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc0BkZWJldGhlbmNvdXJ0LmNvbT4KCgkqIHNjcmlwdHMvZ2l0LXZlcnNpb24uc2g6CgkgIHNjcmlwdHMvZ2l0LXZlcnNpb24uc2g6IGZpeCBtaXN0YWtlbiBjb21tZW50cwoKMjAxNC0wNC0yOCAxMzowMjoxMSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogYXZvaWQgc2lnbmFsaW5nIG92ZXJydW4gb24gdGhlIGZpcnN0IHNlZ21lbnQKCSAgV2hlbiB0aGUgZmlyc3Qgc2VnbWVudCBoYXMgcG9zaXRpb24gIT0gMCBhbmQgcG9zaXRpb24gPiBtYXgtc2l6ZS10aW1lCgkgIGl0IHdpbGwgaW1tZWRpYXRlbGx5IGNhdXNlIHRoZSBtdWx0aXF1ZXVlIHRvIHNpZ25hbCBvdmVycnVuLgoJICBUaGlzIGNhbiBoYXBwZW4gZWFzaWx5IHdpdGggYWRhcHRpdmUgc3RyZWFtcyB3aGVuIHN3aXRjaGluZyBiaXRyYXRlcwoJICBhbmQgc3RhcnRpbmcgYSBuZXcgZ3JvdXAuIFRoZSBzZWdtZW50IGZvciB0aGlzIG5ldyBncm91cCB3aWxsIGhhdmUKCSAgYSBwb3NpdGlvbiB0aGF0IGlzIG11Y2ggZ3JlYXRlciB0aGFuIDAgYW5kIHdpbGwgbGVhZCB0byB0aGlzIGlzc3VlLgoJICBUaGlzIGlzIHBhcnRpY3VsYXJseSBoYXJtZnVsIHdoZW4gdGhlIGFkYXB0aXZlIHN0cmVhbSB1c2VzIG1wZWd0cwoJICB0aGF0IGRvZXNuJ3QgZW1pdCBuby1tb3JlLXBhZHMgYW5kIGl0IG1pZ2h0IGhhcHBlbiB0aGF0IG9ubHkgb25lCgkgIG9mIHRoZSBzdHJlYW0gcGFkcyB3YXMgYWRkZWQgd2hlbiB0aGUgbXVsdGlxdWV1ZSBvdmVycnVucyBhbmQgZ2V0cwoJICB0aGUgZ3JvdXAgcmVhZHkgZm9yIGV4cG9zaW5nLiBTbyB0aGUgdXNlciB3aWxsIG9ubHkgZ2V0IGF1ZGlvIG9yCgkgIHZpZGVvLgoJICBUaGUgc29sdXRpb24gaXMgdG8gZmFsbGJhY2sgdG8gdGhlIHNpbmsgc2VnbWVudCB3aGlsZSB0aGUgc291cmNlIHBhZAoJICBoYXMgbm8gc2VnbWVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTEyNAoKMjAxNC0wNC0yOCAxMDoxNDo1MCArMDIwMCAgWGF2aSBBcnRpZ2FzIDx4YXJ0aWdhc0BmbHVlbmRvLmNvbT4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgZG9jczogZW5oYW5jZW1lbnRzIHRvIHBvcnRpbmcgZ3VpZGUgZG9jdW1lbnRhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3NzU0CgoyMDE0LTA0LTI4IDA5OjQzOjMyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBxdWVyeTogQWRkIGJvb2xlYW4gdG8gVVJJIHF1ZXJ5IHRvIHNwZWNpZnkgaWYgYSByZWRpcmVjdCBpcyBwZXJtYW5lbnQgb3Igbm90CgoyMDE0LTA0LTI1IDA3OjM4OjAwICswMDAwICBTcmltYW50YSBQYW5kYSA8cGFuZGFfc3JpbWFudGFAeWFob28uY28uaW4+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IENoZWNrIGlmIHRoZSBsYXN0IHBhZCB3YXMgc2V0CgkgIElmIG5vIGRhdGEgaXMgY29taW5nIGJ1dCBvbmx5IEVPUyBpcyBzZW50IGZyb20gYWxsIG9mIHRoZSBzaW5rcGFkLCBpdCBpcyBub3QKCSAgZm9yd2FyZGluZyB0aGUgRU9TLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3OTQ1CgoyMDE0LTA0LTI2IDE3OjAyOjE4ICswMTAwICBGZWxpcGUgT3J0aXogPGZhb3J0aXpjQGdtYWlsLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYWQuaDoKCSAgZG9jczogYWRkIGRvY3MgZm9yIHZhcmlvdXMgR3N0UGFkIG1hY3JvcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIzNjUyCgoyMDE0LTA0LTI2IDIzOjEyOjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhZC5oOgoJICBSZXZlcnQgImRvY3M6IGFkZCBkb2NzIGZvciB2YXJpb3VzIEdzdFBhZCBtYWNyb3MiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZDE3NDM4ZDVmZDMyMWRhZWM0YWRiZWIyOGE4ZmI1ZDVlMDcyOThkYy4KCSAgVGhpcyBjb21taXQgZmVhdHVyZWQgdGhlIHdyb25nIGF1dGhvciwgc29ycnkuCgoyMDE0LTA0LTI2IDIxOjIxOjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9SRUFETUU6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGRvY3M6IHJlbW92ZSBvdXRkYXRlZCBhbmQgcG9pbnRsZXNzICdMYXN0IHJldmlld2VkJyBsaW5lcyBmcm9tIGRvY3MKCSAgVGhleSBhcmUgdmVyeSBjb25mdXNpbmcgZm9yIHBlb3BsZSwgYW5kIG1vcmUgb2Z0ZW4gdGhhbiBub3QKCSAgYWxzbyBqdXN0IG5vdCB2ZXJ5IGFjY3VyYXRlLiBTZWVpbmcgJ2xhc3QgcmV2aWV3ZWQ6IDIwMDUnIGluCgkgIHlvdXIgZG9jcyBpcyBub3QgdmVyeSBjb25maWRlbmNlLWluc3BpcmluZy4gTGV0J3MganVzdCByZW1vdmUKCSAgdGhvc2UgY29tbWVudHMuCgoyMDE0LTAzLTI2IDE1OjU2OjA4IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcjogT25seSBzZXQgVEFHX01FTU9SWSBpZiB0aGUgbWVtb3J5IGhhcyBiZWVuIHJlcGxhY2VkCgkgIEN1cnJlbnRseSB3ZSBzZXQgVEFHX01FTU9SWSBhcyBzb29uIGEgcmVzaXplIGNoYW5nZXMgdGhlIHNpemUgb2Ygb25lCgkgIG9mIHRoZSBtZW1vcnkuIFRoaXMgaGFzIHRoZSBzaWRlIGVmZmVjdCB0aGF0IGJ1ZmZlciBwb29sIGNhbm5vdCBrbm93IGlmCgkgIHRoZSBtZW1vcnkgaGF2ZSBzaW1wbHkgYmVlbiByZXNpemVkLCBvciBpZiB0aGUgbWVtb3J5cyBoYXMgYmVlbiByZXBsYWNlZC4KCSAgVGhpcyBtYWtlIGl0IGhhcmQgdG8gYWN0dWFsbHkgaW1wbGVtZW50IF9yZXNldCgpLiBJbnN0ZWFkLCBvbmx5IHNldCB0aGUKCSAgVEFHX01FTU9SWSBpZiBvbmUgb3IgbW9yZSBtZW1vcnkgaGFzIGJlZW4gcmVwbGFjZWQsIGFuZCBkbyBhIGxpZ2h0CgkgIHNhbml0eSBjaGVjayBvZiB0aGUgc2l6ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzEwOQoKMjAxNC0wNC0yNiAxNzowMjoxOCArMDEwMCAgU2hvd2F5YiBaYWhkYSA8c2hvd2F5Yi56YWhkYUBheGlzLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYWQuaDoKCSAgZG9jczogYWRkIGRvY3MgZm9yIHZhcmlvdXMgR3N0UGFkIG1hY3JvcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIzNjUyCgoyMDE0LTA0LTI1IDE1OjM4OjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IFdoZW4gZ29pbmcgdG8gUkVBRFkgbWFrZSBzdXJlIHRvIGFsd2F5cyBkZWFjdGl2YXRlIHBhZHMKCSAgV2UgbWlnaHQgbm90IGhhdmUgcmVhY2hlZCBQQVVTRUQgeWV0IGJlY2F1c2Ugb2YgYW4gYXN5bmMgZXJyb3IsCgkgIGJ1dCBub25ldGhlbGVzcyB3ZSB3YW50IHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBwYWRzIGFyZSBhbHdheXMKCSAgZGVhY3RpdmF0ZWQgaW4gUkVBRFkgc3RhdGUuCgoyMDE0LTA0LTIyIDE4OjIzOjE1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IERvbid0IGxlZnQtc2hpZnQgaW50byB0aGUgc2lnbiBiaXQsIHRoZSByZXN1bHQgaXMgdW5kZWZpbmVkCgoyMDE0LTA0LTIyIDE4OjE2OjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBVc2UgYW4gdW5zaWduZWQgNjQgYml0IGludGVnZXIgYXMgYSBtYXNrCgkgIFdlIHNoaWZ0IHRoZSBtYXNrIHRvIHRoZSByaWdodCBsYXRlciBhbmQgc2hpZnRpbmcgdGhlIHJlc3VsdAoJICBvZiBzaGlmdGluZyBvdmVyIHRoZSBzaWduIGJpdCBpcyB1bmRlZmluZWQuCgoyMDE0LTA0LTIwIDExOjU5OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IE1ha2Ugc3VyZSB0byBhbHdheXMgaG9sZCB0aGUgTElWRV9MT0NLIHdoZW4gZ29pbmcgdG8gdGhlIGZsdXNoaW5nIGxhYmVsCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjg1OTYKCjIwMTQtMDQtMTEgMTk6NTI6MDIgKzAyMDAgIFNyaW1hbnRhIFBhbmRhIDxzcmltYW50YUBheGlzLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJICBmdW5uZWw6IEhhbmRsZSBlbmQgb2Ygc3RyZWFtIGV2ZW50IG9uIHNpbmsgcGFkCgkgIEhhbmRsZSBlbmQgb2Ygc3RyZWFtIGV2ZW50cyBvbiBzaW5rIHBhZC4gQ2hlY2sgYWxsIHRoZSBzaW5rIHBhZAoJICBoYXMgcmVjZWl2ZWQgZW9zIGJlZm9yZSBmb3J3YXJkaW5nIHRvIHNvdXJjZSBwYWQuCgkgIEZpeGVzIDogaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzk0NQoKMjAxNC0wNC0wNSAxMTozNzo1MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IFByZXZlbnQgZGl2aXNpb24gb3IgbW9kdWxvIGJ5IHplcm8KCSAgVGhlIHN0ZXAgY2FuIGVuZCB1cCBiZWluZyB6ZXJvIGlmIHRoZSB1bmRlcmx5aW5nIHZhbHVlIGlzbid0IGEgdmFsaWQKCSAgcmFuZ2UgR1ZhbHVlLgoJICBJbiB0aG9zZSBjYXNlcywgcmV0dXJuIEZBTFNFLgoJICBXZSBkb24ndCB1c2UgZ19yZXR1cm4qX2lmX2ZhaWwgc2luY2UgaXQgd2lsbCBhbHJlYWR5IGhhdmUgYmVlbiB0cmlnZ2VyZWQKCSAgYnkgdGhlIGFib3ZlLW1lbnRpb25uZWQgX2dldF9zdGVwKCkgZnVuY3Rpb25zLgoJICBDSUQgIzEwMzcxMzIKCjIwMTQtMDQtMDkgMTY6NDQ6MDcgKzAyMDAgIEFudG9pbmUgSmFjb3V0b3QgPGFqYWNvdXRvdEBnbm9tZS5vcmc+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGxpYnM6IGctaXItc2Nhbm5lcjogZG8gbm90IGhhcmRjb2RlIGxpYnRvb2wgcGF0aAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI2NTcxCgoyMDE0LTA0LTE2IDE5OjQ5OjU2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeS9idWZmZXI6IEluaXRpYWxpc2UgR3N0TWFwSW5mbyB0byB6ZXJvZXMgaWYgbWFwcGluZyBmYWlscwoJICBUaGlzIHNob3VsZCBhbGxvdyBmb3IgbW9yZSBtZWFuaW5nZnVsIGVycm9ycy4gRGVyZWZlcmVuY2luZyBOVUxMCgkgIGlzIG1vcmUgdXNlZnVsIGluZm9ybWF0aW9uIHRoYW4gZGVyZWZlcmVuY2luZyBhIHJhbmRvbSBhZGRyZXNzCgkgIGhhcHBlbmVkIHRvIGJlIG9uIHRoZSBzdGFjay4KCjIwMTQtMDQtMTYgMTc6NDk6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIHByZXNldDogVW5yZWYgcmV0dXJuIHZhbHVlIG9mIGdzdF9jaGlsZF9wcm94eV9nZXRfY2hpbGRfYnlfaW5kZXgoKSBpbnN0ZWFkIG9mIGxlYWtpbmcgaXQKCjIwMTQtMDQtMTYgMTc6NDg6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIHByZXNldDogQXV0b21hdGljIGNvZGUgc3R5bGUgZml4ZXMKCjIwMTQtMDQtMTYgMTU6MTc6MDQgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBmaXggZXZlbnQvcHJlcm9sbCBkZWFkbG9jayBkaWZmZXJlbnRseQoJICBUaGUgcWxvY2sgaXMgcmVsZWFzZWQgYmV0d2VlbiBwb3BwaW5nIGEgYnVmZmVyIGZyb20gdGhlIHF1ZXVlCgkgIGFuZCBwdXNoaW5nIGl0LiBXaGVuIHRoaXMgYnVmZmVyIGNhdXNlcyB0aGUgc2luayB0byB3YWl0IGluCgkgIHByZXJvbGwsIHRoaXMgbGV0cyBhIHF1ZXJ5IHNlZSB0aGF0IHRoZSBxdWV1ZSBpcyBlbXB0eSwgYW5kCgkgIHB1c2ggdGhlIHF1ZXJ5IHRoZW4gd2FpdCBmb3IgaXQgdG8gYmUgc2VydmljZWQuIEhvd2V2ZXIsIHRoaXMKCSAgd2lsbCBub3QgYmUgZG9uZSB0aWxsIGFmdGVyIHBlcm9sbCwgYW5kIHRoaXMgd2lsbCB0aHVzIGJsb2NrLgoJICBJZiB1cHN0cmVhbSB3YXMgd2FpdGluZyBvbiBidWZmZXJpbmcgdG8gcmVhY2ggMTAwJSBiZWZvcmUKCSAgc3dpdGNoaW5nIHRvIFBMQVlJTkcsIGEgZGVhZGxvY2sgd291bGQgZW5zdWUuCgkgIFRoaXMgaGFkIGJlZW4gZml4ZWQgcmVjZW50bHkgYnkgZmFpbGluZyBxdWVyaWVzIHdoZW4gdGhlCgkgIHF1ZXVlMiB3YXMgYnVmZmVyaW5nLCBidXQgdGhpcyBoYXBwZW5zIHRvIGJyZWFrIHNvbWUgb3RoZXIKCSAgY2FzZSAocGxheWJpbiBvbiBhIGxvY2FsIGh0dHAgc2VydmVyIGFuZCBtYXRyb3NrYSksIHdoaWxlCgkgIHRoaXMgcGF0Y2ggd29ya3MgZm9yIGJvdGguCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4MzQ1CgoyMDE0LTA0LTE2IDA3OjU5OjI3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBjaGVjazogRml4IGV4cG9ydGVkIHN5bWJvbCBuYW1lCgkgIGl0J3MgX3RlbXBsYXRlIGFuZCBub3QgX3RlbXBsCgoyMDE0LTA0LTE1IDIxOjE2OjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEFkZCBtaXNzaW5nIHNwYWNlIGluIGRlYnVnIG91dHB1dAoKMjAxNC0wNC0xNSAxMjo1ODo1OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogQWRkIG5ldyBBUEkgdG8gc2V0IHVwIHBhZHMgZnJvbSBub24tc3RhdGljIHBhZCB0ZW1wbGF0ZXMKCjIwMTQtMDQtMTQgMjE6MzU6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBGaXggbWVtb3J5IGxlYWsgaW4gdW5pdCB0ZXN0CgoyMDE0LTA0LTEyIDE1OjIyOjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suaDoKCSogdGVzdHMvY2hlY2svbGlicy9nc3R0ZXN0Y2xvY2suYzoKCSAgdGVzdGNsb2NrOiByZXBsYWNlIG5ld2x5LWFkZGVkIEdzdFRlc3RDbG9ja0lETGlzdCBzdHJ1Y3R1cmUgd2l0aCBhIHNpbXBsZSBHTGlzdAoJICBLZWVwIGl0IHNpbXBsZS4gTGlrZWx5IGFsc28gbWFrZXMgdGhpbmdzIGVhc2llciBmb3IgYmluZGluZ3MsCgkgIGFuZCBlZmZpY2llbmN5IGNsZWFybHkgaGFzIG5vdCBiZWVuIGEgY29uc2lkZXJhdGlvbiBnaXZlbiBob3cKCSAgdGhlIGV4aXN0aW5nIGNvZGUgaGFuZGxlZCB0aGVzZSBsaXN0cy4KCjIwMTQtMDQtMTIgMTQ6MzA6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmg6CgkgIGRvY3M6IHRlc3RjbG9jazogZml4IHVwIFNpbmNlIG1hcmtlcnMKCjIwMTQtMDQtMTIgMDA6Mjg6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5oOgoJICB0ZXN0Y2xvY2s6IGFkZCBiYWNrIGdzdF90ZXN0X2Nsb2NrX3dhaXRfZm9yX3BlbmRpbmdfaWRfY291bnQoKQoJICAuLiBidXQgZGVwcmVjYXRlIGl0LiBBQkkgc3RhYmlsaXR5IGFuZCBhbGwgdGhhdC4KCSAgSXQncyBhIGRhbmdlcm91cyBhbmQgcmFjeSBmdW5jdGlvbiB0byB1c2UuCgoyMDE0LTAzLTIzIDE1OjA4OjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkgIHRlc3RjbG9jazogcmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoJICBGaXhlcyBjb21waWxlciB3YXJuaW5nLgoKMjAxMy0xMi0xNiAxMDowMTozNyArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suaDoKCSogdGVzdHMvY2hlY2svbGlicy9nc3R0ZXN0Y2xvY2suYzoKCSAgdGVzdGNsb2NrOiBhZGQgc3VwcG9ydCBmb3Igd2FpdGluZyBhbmQgcmVsZWFzaW5nIG11bHRpcGxlIEdzdENsb2NrSURzCgkgIEluIG9yZGVyIHRvIGJlIGRldGVybWluaXN0aWMsIG11bHRpcGxlIHdhaXRpbmcgR3N0Q2xvY2tJRHMgbmVlZHMgdG8gYmUKCSAgcmVsZWFzZWQgYXQgdGhlIHNhbWUgdGltZSwgb3IgZWxzZSBvbmUgY2FuIGdldCBpbnRvIHRoZSBzaXR1YXRpb24gdGhhdAoJICB0aGUgb25lIGJlaW5nIHJlbGVhc2VkIGZpcnN0IGNhbiBhZGQgaXRzZWxmIGJhY2sgYWdhaW4gYmVmb3JlIHRoZSBuZXh0CgkgIG9uZSB3YWl0aW5nIGlzIHJlbGVhc2VkLgoJICBUZXN0IGFkZGVkIGZvciBuZXcgQVBJIGFuZCBvbGQgdGVzdHMgcmV3cml0dGVuIHRvIGNvbXBseS4KCjIwMTQtMDQtMDEgMTU6Mzg6NTQgKzAyMDAgIExpbnVzIFN2ZW5zc29uIDxsaW51c3NuQGF4aXMuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IGFjY2VzcyB1bm93bmVkIGFuZCBwb3NzaWJseSBhbHJlYWR5IGZyZWVkIGV2ZW50CgkgIERvbid0IHByaW50IHRoZSBuYW1lIG9mIHRoZSBldmVudCB3aGVuIG93bmVyc2hpcCBpcyBnaXZlbiBhd2F5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3NDg0CgoyMDE0LTA0LTEyIDA3OjEzOjAyICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGluc3BlY3Q6IHByaW50IHN0cnVjdHVyZSB2YWx1ZXMgb2YgcHJvcGVydGllcwoKMjAxNC0wNC0xMSAyMjozODoyNSArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IEhvbGQgcGFkIG9iamVjdCBsb2NrIHdoZW4gY2hhbmdpbmcgdGFncwoJICBBdm9pZCBzcHVyaW91cyBjcmFzaGVzIHdoZW4gdGFncyBhcmUgcmV0cmlldmVkIGp1c3QgYXMKCSAgbmV3IG9uZXMgYXJyaXZlLgoKMjAxNC0wNC0xMSAxMzo0NToyMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZ3N0YnVmZmVyOiBGaXggcmFuZ2UgaXRlcmF0aW9uCgkgIFdlIHdhbnQgdG8gaXRlcmF0ZSBvdmVyIGl0ZW1zIGlkeCB0byBpZHggKyBsZW5ndGgKCSAgV2UgdXNlIHRoZSBsZW4gdmFyaWFibGUgYXMgdGhlIGNvcnJlY3RlZCBudW1iZXIgb2YgbWVtb3J5IHRvIGl0ZXJhdGUKCSAgYW5kIHRoZW4gcHJvcGVybHkgZ28gb3ZlciBhbGwgaXRlbXMuCgkgIEZpeGVzIHRoZSBpc3N1ZSB3aGVyZSBzcGVjaWZ5aW5nIGFueSBpZHggZGlmZmVyZW50IGZyb20gMCBoYWQgbm8gZWZmZWN0CgkgIFNwb3R0ZWQgYnkgY2xhbmcgc3RhdGljIGFuYWx5emVyCgoyMDE0LTA0LTA5IDE3OjAxOjAxICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBlcnJvciBvdXQgd2hlbiB0cnlpbmcgdG8gZml4YXRlIGEgZnJhY3Rpb24gbmVhciBhbiBpbnZhbGlkIHRhcmdldAoKMjAxNC0wNC0wNCAxNzoyODoyMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogVXBkYXRlIHJ1bm5pbmcgdGltZSBpbiBRb1MgYmFzZWQgb24gdGhlIHBhZCBvZmZzZXRzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI2OTcKCjIwMTQtMDQtMDQgMTc6MTU6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogQXBwbHkgcGFkIG9mZnNldHMgb24gYWxsIGV2ZW50cywgbm90IGp1c3Qgc2VnbWVudCBldmVudHMKCjIwMTQtMDQtMDQgMTc6MDY6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBldmVudDogQWRkIHJ1bm5pbmctdGltZS1vZmZzZXQgZmllbGQgdG8gYWxsIGV2ZW50cwoJICBFdmVudHMgcGFzc2luZyB0aHJvdWdoICNHc3RQYWRzIHRoYXQgaGF2ZSBhIHJ1bm5pbmcgdGltZQoJICBvZmZzZXQgc2V0IHZpYSBnc3RfcGFkX3NldF9vZmZzZXQoKSB3aWxsIGdldCB0aGVpciBvZmZzZXQKCSAgYWRqdXN0ZWQgYWNjb3JkaW5nIHRvIHRoZSBwYWQncyBvZmZzZXQuCgkgIElmIHRoZSBldmVudCBjb250YWlucyBhbnkgaW5mb3JtYXRpb24gdGhhdCByZWxhdGVkIHRvIHRoZQoJICBydW5uaW5nIHRpbWUsIHRoaXMgaW5mb3JtYXRpb24gd2lsbCBuZWVkIHRvIGJlIHVwZGF0ZWQKCSAgYmVmb3JlIHVzYWdlIHdpdGggdGhpcyBvZmZzZXQuCgoyMDE0LTA0LTA5IDE2OjQwOjI3ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogYXZvaWQgZGl2aWRpbmcgYnkgemVybyB3aGVuIG11bHRpcGx5aW5nIHkveiBieSAwL3gKCSAgVGhlIGdjZCBvZiAwL3ggaXMgMCwgYW5kIHRoaXMgaXMgdGhlbiB1c2VkIGFzIGEgZGVub21pbmF0b3IuCgoyMDE0LTA0LTA5IDE2OjAxOjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBBbmQgYWN0dWFsbHkgcnVuIHRoZSBvdGhlciB0ZXN0cyBhZ2FpbgoKMjAxNC0wNC0wOSAxNTo1NzozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBXYWtlIHVwIHRoZSBxdWV1ZXMgaWYgbGltaXRzIGFyZSBjaGFuZ2luZyBpbiBhIHdheSB0aGF0IHdvdWxkIHVuYmxvY2sgdGhlIHF1ZXVlCgoyMDE0LTA0LTA5IDE1OjQyOjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBBZGQgdGVzdCBmb3IgY2hlY2tpbmcgaWYgcGFkcyBhcmUgd2FrZWQgdXAgd2hlbiBsaW1pdHMgYXJlIGNoYW5nZWQKCjIwMTQtMDQtMDkgMTA6MTU6MzMgKzAyMDAgIEpvc2UgQW50b25pbyBTYW50b3MgQ2FkZW5hcyA8c2FudG9zY2FkZW5hc0BnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCBtZW1vcnkgbGVhawoJICBRdWV1ZWQgZnJhbWVzIHdlcmUgbm90IHJlbGVhc2VkIGFmdGVyIGJlaW5nIHB1c2hlZCwgdGhpcwoJICBjYXVzZWQgYSBsZWFrIG9mIHRoZSBHc3RCYXNlUGFyc2VGcmFtZSBzdHJ1Y3R1cmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc4ODMKCjIwMTQtMDQtMDcgMTc6NDk6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHVzZSBnX3N0cmVycm9yKCkgaW5zdGVhZCBvZiBzdHJlcnJvcigpCgkgIE5lZWQgVVRGLTggZW5jb2RpbmcuCgoyMDE0LTA0LTA3IDE3OjQ3OjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6CgkgIFJldmVydCAiY2hlY2s6IG9ubHkgY2FsbCBzZXRwZ2lkIG9uIHZhbGlkIGNoaWxkIFBJRHMiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYjkzMTNhZmM3NWI2OGQ5ODZlNDczYjc2YjU1NTQzNDU2ODU3OTEyYi4KCSAgVGhpcyBzaG91bGQgYmUgZml4ZWQgaW4gdXBzdHJlYW0gbGliY2hlY2sgaW5zdGVhZC4gV2Ugd2FudAoJICB0byBrZWVwIGRpZmYgb2Ygb3VyIGxvY2FsIGNvcHkgdG8gdXBzdHJlYW0gbGliY2hlY2sKCSAgdG8gYSBtaW5pbXVtLgoKMjAxNC0wNC0wNyAxNzozMzozNCArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHdhcm4gaWYgd2UgY2FuJ3QgcmVtb3ZlIG91ciB0ZW1wb3JhcnkgZmlsZQoJICBJdCdzIG5vdCBmYXRhbCB0aG91Z2gsIHNvIGRvIG5vdCBlcnJvciBvdXQuCgkgIENvdmVyaXR5IDEwMzcxMjEKCjIwMTQtMDQtMDcgMTU6Mzg6MDkgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6CgkgIGNoZWNrOiBvbmx5IGNhbGwgc2V0cGdpZCBvbiB2YWxpZCBjaGlsZCBQSURzCgkgIENvdmVyaXR5IDIwNjE4NgoKMjAxNC0wNC0wNyAxNTozODoxNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBubyBuZWVkIGZvciBhIHRyYW5zbGF0ZWQgbWVzc2FnZSBmb3IgaW1wb3NzaWJsZSBlcnJvciBjYXNlcwoJICBUaGUgbWVzc2FnZSBpcyB0b28gdGVjaG5pY2FsIGFueXdheSwgdGhlIGRlZmF1bHQgbWVzc2FnZSB3b3JrcwoJICBqdXN0IGZpbmUgaGVyZSBhcyB3ZWxsLgoKMjAxNC0wNC0wNyAxNToxODozMiArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogY2F0Y2ggZmFpbHVyZSB0byBzZWVrIGJhY2sgdG8gemVybyBhZnRlciBzZWVrIHRlc3QKCSAgVGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuIHRoZW9yZXRpY2FsbHksIGJ1dCBzaW5jZSBhIHRyYW5zaWVudAoJICBmYWlsdXJlIHdvdWxkIGdldCB1cyB0byBzaWxlbnRseSByZWFkIHdyb25nIGRhdGEsIGl0J3Mgd29ydGgKCSAgZXJyb3Jpbmcgb3V0LiBBbmQgaXQgc2lsZW5jZSB0aGlzOgoJICBDb3Zlcml0eSAyMDYwMzQKCjIwMTQtMDQtMDcgMTE6MzY6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIHBhcnNlOiBEb24ndCBkaXN0IHRoZSBiaXNvbiBhbmQgZmxleCBnZW5lcmF0ZWQgaGVhZGVycwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3MjUzCgoyMDE0LTA0LTA2IDExOjIzOjM0ICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBIYW5kbGUgY2FwcyBmaWVsZCB2YWx1ZXMgYmVpbmcgTlVMTAoJICBHU1RfREVCVUdfQklOX1RPX0RPVF9GSUxFKCkgd291bGQgY2F1c2UgYSBzZWdmYXVsdCB3aGVuZXZlciBpdCBlbmNvdW50ZXJlZCBhbgoJICBlbGVtZW50J3MgY2FwcyB0aGF0IGhhZCBhIGZpZWxkIHZhbHVlIGJlaW5nIE5VTEwuIFN1Y2ggZmllbGRzIGFyZSBzdWNjZXNzZnVsbHkKCSAgaGFuZGxlZCBlLmcuIGJ5IEdTVF8qX09CSkVDVCgpLCBhbmQgd2l0aCB0aGlzIHBhdGNoIHNvIGRvZXMKCSAgR1NUX0RFQlVHX0JJTl9UT19ET1RfRklMRSgpLiBFdmVuIGlmIHN0cmluZyBmaWVsZHMgd2l0aCBhIE5VTEwgdmFsdWUgYXJlCgkgIG5vdCBzdXBwb3NlZCB0byBiZSB2YWxpZCBpbiBjYXBzLCBzdWNoIGNhcHMgY2FuIGJlIGNyZWF0ZWQuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc3MDEKCjIwMTQtMDQtMDUgMTE6NDQ6MDEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBSZW1vdmUgYWx3YXlzLXRydWUtY2hlY2tzCgkgIGEgZ3NpemUgaXMgZ3VhcmFudGVlZCB0byBiZSBwb3NpdGl2ZSBvbiBhbGwgc3lzdGVtcyBzaW5jZSBpdCdzIGFuCgkgIHVuc2lnbmVkIHZhbHVlLgoJICBDSUQgIzEwMzcxNDcKCjIwMTQtMDQtMDUgMTE6NDQ6MDEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IFJlbW92ZSBhbHdheXMtdHJ1ZS1jaGVja3MKCSAgYSBnc2l6ZSBpcyBndWFyYW50ZWVkIHRvIGJlIHBvc2l0aXZlIG9uIGFsbCBzeXN0ZW1zIHNpbmNlIGl0J3MgYW4KCSAgdW5zaWduZWQgdmFsdWUuCgkgIENJRCAjMTAzNzE0NQoJICBDSUQgIzEwMzcxNDYKCjIwMTQtMDQtMDUgMTE6Mzc6NTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBQcmV2ZW50IGRpdmlzaW9uIG9yIG1vZHVsbyBieSB6ZXJvCgkgIFRoZSBzdGVwIGNhbiBlbmQgdXAgYmVpbmcgemVybyBpZiB0aGUgdW5kZXJseWluZyB2YWx1ZSBpc24ndCBhIHZhbGlkCgkgIHJhbmdlIEdWYWx1ZS4KCSAgSW4gdGhvc2UgY2FzZXMsIHJldHVybiBGQUxTRS4KCSAgV2UgZG9uJ3QgdXNlIGdfcmV0dXJuKl9pZl9mYWlsIHNpbmNlIGl0IHdpbGwgYWxyZWFkeSBoYXZlIGJlZW4gdHJpZ2dlcmVkCgkgIGJ5IHRoZSBhYm92ZS1tZW50aW9ubmVkIF9nZXRfc3RlcCgpIGZ1bmN0aW9ucy4KCSAgU3BvdHRlZCBieSBDb3Zlcml0eS4KCjIwMTQtMDMtMjUgMTI6MjM6MzIgKzAxMDAgIEhhYWtvbiBTcG9yc2hlaW0gPGhhYWtvbkBwZXhpcC5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IEZpeCBjb21wYXJpc29uIG9mIGludC9pbnQ2NCByYW5nZQoJICBDaGVja2luZyBzdGVwIHRocmVlIHRpbWVzIHNlZW1zIHVubmVjZXNzYXJ5LgoJICBBIHNpbWlsYXIgYnVnIHdhcyBmaXhlZCBmb3IgZG91YmxlIHJhbmdlIGluCgkgIGNvbW1pdCAzZWE2YjA0YzEwYjEwZmRlOWQ2MjE5MDA2OGYyNzRiOTQwZWRlZjA3CgoyMDE0LTA0LTAzIDE4OjE3OjAzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBmaXggYnVpbGQgd2l0aCBkZWJ1ZyBjYWNoZWQgYnVmZmVycyBlbmFibGVkCgkgIGdzdGlucHV0c2VsZWN0b3IuYzo4MTg6NTogZXJyb3I6IGZvcm1hdCBub3QgYSBzdHJpbmcgbGl0ZXJhbAoJICBhbmQgbm8gZm9ybWF0IGFyZ3VtZW50cyBbLVdlcnJvcj1mb3JtYXQtc2VjdXJpdHldCgoyMDE0LTA0LTAzIDIwOjMxOjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBNYWtlIHN1cmUgdG8gc2V0IHRoZSBESVNDT05UIGZsYWcgb24gdGhlIGZpcnN0IGJ1ZmZlciBvZiBlYWNoIEdPUCBpbiByZXZlcnNlIHBsYXliYWNrIG1vZGUKCjIwMTQtMDQtMDMgMTM6MjA6MTEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHJlbW92aW5nIGR1cGxpY2F0ZWQgaW5uZXIgaWYKCSAgVGhlIGlubmVyIGlmIHJlcGxpY2F0ZXMgdGhlIHNhbWUgY29kZSBvZiB0aGUgb3V0ZXIgYW5kIGlzIHVzZWxlc3MKCSAgYXMgZmxhZ19zZWdtZW50IHdpbGwgYWx3YXlzIGJlIHRydWUuCgkgIEZvdW5kIGJ5IGNvdmVyaXR5LgoKMjAxNC0wNC0wMyAwNzozNjowMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGdzdC1sYXVuY2guMTogUGxheWJpbjIgaXMgZGVhZCwgbG9uZyBsaXZlIHBsYXliaW4KCSAgTG9va3MgbGlrZSB0aGF0IHdhcyB0aGUgbGFzdCByZW1haW5pbmcgbWVudGlvbiBpbiBjb3JlIC4uLgoKMjAxNC0wNC0wMiAyMzo1MjoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBBZGQgbWlzc2luZyBcbiBpbiBvdXRwdXQKCjIwMTQtMDQtMDEgMTU6MzU6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgc2NyaXB0czogZ3N0LXVuaW5zdGFsbGVkOiBnc3QtcGx1Z2lucy1nbCBsaWJzIGdvdCBtZXJnZWQgaW50byAtYmFkCgoyMDE0LTAzLTI5IDEwOjE4OjM0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEluY2x1ZGUgZXZlbnQgdHlwZSBpbiBkZWJ1ZyBvdXRwdXQgd2hlbiBkZWxheWluZyBhIHN0aWNreSBldmVudCBiZWNhdXNlIG9mIG5vdC1saW5rZWQKCjIwMTQtMDMtMjkgMTA6MTY6MTIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCBzcGxpdHRpbmcgYW5kIHJldmVyc2luZyBvZiBHT1BzIGluIHJldmVyc2UgcGxheWJhY2sgbW9kZQoJICBXZSBpdGVyYXRlIHRoZSBjdXJyZW50IGRpc2NvbnQgZ3JvdXAgYmFja3dhcmRzIGFuZCBwdXNoIGVhY2ggR09QIGZvcndhcmRzLAoJICBzdGFydGluZyBmcm9tIHRoZSBsYXN0IG9uZS4gSG93ZXZlciBpZiB0aGUgZmlyc3QgYnVmZmVyIGluIHRoZSBjdXJyZW50CgkgIGRpc2NvbnQgZ3JvdXAgaXMgYSBrZXlmcmFtZSwgd2Ugd2lsbCBrZWVwIGl0IGFyb3VuZCB1bnRpbCBuZXh0IHRpbWUsCgkgIHdoaWNoIGlzIGZhciBmcm9tIGlkZWFsLiBKdXN0IHB1c2ggaXQuCgoyMDE0LTAzLTI1IDEyOjM4OjA3ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgbGF1bmNoOiBwbGFjZSB0aGUgZGVlcC1ub3RpZnkgb24gdGhlIHJpZ2h0IHBpcGVsaW5lCgkgIElmIHRoZSB0b3BsZXZlbCBiaW4gaXMgbm90IG5vdCBhIHBpcGVsaW5lLCB3ZSBwbGFjZSB0aGUgYmluIGluIGEKCSAgcGlwZWxpbmUuIEFsc28gbWFrZSBzdXJlIHRoYXQgd2UgY29ubmVjdCB0byB0aGUgZGVlcC1ub3RpZnkgb2YgdGhpcyBuZXcKCSAgcGlwZWxpbmUgYmVjYXVzZSB3ZSB3aWxsIGdfc2lnbmFsX2hhbmRsZXJfZGlzY29ubmVjdCgpIGZyb20gaXQgbGF0ZXIuCgoyMDE0LTAzLTI0IDE2OjM0OjI3ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGNvcHkgbGFzdF9zYW1wbGUgb24gRFJBSU4KCSAgTWFrZSBzdXJlIHdlIGRvbid0IGhvbGQgYSByZWYgdG8gYSBidWZmZXIgZnJvbSBiZWZvcmUgdGhlIERSQUlOIHF1ZXJ5IGJ5CgkgIG1ha2luZyBhIGNvcHkgb2YgdGhlIGxhc3RfYnVmZmVyLgoKMjAxNC0wMy0yNCAxNjoxMTozMCArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZG9uJ3QgY2xlYXIgVEFHIG9uIE5VTEwgYnVmZmVyCgkgIFdoZW4gdGhlIGJ1ZmZlciBmYWlscyB0byBjb3B5LCBkb24ndCBjbGVhciB0aGUgVEFHIG9uIHRoZSBOVUxMIHBvaW50ZXIuCgoyMDE0LTAzLTIwIDA2OjE0OjMzIC0wNDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IGV2ZW50L3ByZXJvbGwgZGVhZGxvY2sKCSAgVGhlIHFsb2NrIGlzIHJlbGVhc2VkIGJldHdlZW4gcG9wcGluZyBhIGJ1ZmZlciBmcm9tIHRoZSBxdWV1ZQoJICBhbmQgcHVzaGluZyBpdC4gV2hlbiB0aGlzIGJ1ZmZlciBjYXVzZXMgdGhlIHNpbmsgdG8gd2FpdCBpbgoJICBwcmVyb2xsLCB0aGlzIGxldHMgYSBxdWVyeSBzZWUgdGhhdCB0aGUgcXVldWUgaXMgZW1wdHksIGFuZAoJICBwdXNoIHRoZSBxdWVyeSB0aGVuIHdhaXQgZm9yIGl0IHRvIGJlIHNlcnZpY2VkLiBIb3dldmVyLCB0aGlzCgkgIHdpbGwgbm90IGJlIGRvbmUgdGlsbCBhZnRlciBwZXJvbGwsIGFuZCB0aGlzIHdpbGwgdGh1cyBibG9jay4KCSAgSWYgdXBzdHJlYW0gd2FzIHdhaXRpbmcgb24gYnVmZmVyaW5nIHRvIHJlYWNoIDEwMCUgYmVmb3JlCgkgIHN3aXRjaGluZyB0byBQTEFZSU5HLCBhIGRlYWRsb2NrIHdvdWxkIGVuc3VlLgoJICBXZSBmaXggaXQgYnkgcmVmdXNpbmcgdGhlIHF1ZXJ5IHdoZW4gYnVmZmVyaW5nLCBhcyBwZXIgV2ltJ3MKCSAgcmVjb21tZW5kYXRpb24gb24gSVJDLgoKMjAxNC0wMy0yMyAxMjo1Mzo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgdGVzdHM6IG1ha2UgbmV0Y2xpZW50Y2xvY2sgdGVzdCBmYXN0ZXIgYW5kIGxlc3MgZmxha3kKCjIwMTQtMDMtMjEgMTI6MTY6NTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGluaXQgbmV3IGZsYWcgdHlwZXMgdG8gcGFzcyBtYWtlIGNoZWNrCgoyMDE0LTAzLTE5IDA5OjMzOjUzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBVcGRhdGUgYnVmZmVyaW5nIHN0YXR1cyBhbmQgbWF5YmUgcG9zdCBidWZmZXJpbmcgbWVzc2FnZSByaWdodCB3aGVuIGVuYWJsaW5nIGJ1ZmZlcmluZwoKMjAxNC0wMy0xOSAwOTozMjo0NSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBVcGRhdGUgYnVmZmVyaW5nIHN0YXR1cyBhbmQgbWF5YmUgcG9zdCBidWZmZXJpbmcgbWVzc2FnZSByaWdodCB3aGVuIGVuYWJsaW5nIGJ1ZmZlcmluZwoKMjAxNC0wMy0xOCAxODoxMjoxNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkgIGZha2VzaW5rOiBVcGRhdGUgcG9zaXRpb25zIHdlJ3JlIGNoZWNraW5nIGZvciBhZnRlciBhIHN0YXRlIGlzIGxvc3QKCjIwMTQtMDMtMTggMTg6MTE6MTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBVcGRhdGUgc3RhcnQgdGltZSB3aGVuIHdlIGxvc2Ugb3VyIHN0YXRlCgkgIE90aGVyd2lzZSB3ZSByZXBvcnQgbm90IHRoZSBjb3JyZWN0IHBvc2l0aW9uIHdoaWxlIHRoZSBzdGF0ZSBpcyBsb3N0LgoKMjAxNC0wMy0xOCAxNjo0Nzo0MiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IERvbid0IGNsaXAgdGhlIHJlcG9ydGVkIHBvc2l0aW9uIGluIFBBVVNFRCB0byBhZnRlciB0aGUgbGFzdCBidWZmZXIgZW5kIHRpbWVzdGFtcAoJICBPdGhlcndpc2Ugd2UganVtcCBmb3J3YXJkIHdoZW4gcGF1c2luZywgYW5kIGdvIGJhY2t3YXJkcyBhIGJpdCBhZ2FpbgoJICB3aGVuIHJlc3VtaW5nIHBsYXliYWNrLgoKMjAxNC0wMy0xNyAxMDowNTozMSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIGV4cG9ydHMgZm9yIEdzdFRvYyBsb29wCgoyMDE0LTAzLTE3IDEwOjA1OjE4ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgZXhwb3J0IGZvciBnc3QqZGV2aWNlIHN5bWJvbHMKCjIwMTQtMDMtMTcgMDk6NTE6NDUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmM6CgkgIGRldmljZW1vbml0b3I6IFVzZSBsb2NhbCBpbmNsdWRlcyBhbmQgdXNlIGdzdF9wcml2YXRlIGJlZm9yZSBhbnl0aGluZwoJICBTaG91bGQgZml4IGJ1aWxkIGlzc3VlcyBvbiBCU0QKCjIwMTQtMDMtMTYgMjA6NTA6NTMgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWlucGVjdDogUHJpbnQgZGV2aWNlIG1vbml0b3IKCjIwMTQtMDMtMTYgMTU6NTY6NTkgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSogZ3N0L2dzdGRldmljZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlLmg6CgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmM6CgkgIGRldmljZTogQWRkICJrbGFzcyIgdG8gR3N0RGV2aWNlcwoKMjAxNC0wMy0xNiAxODowMjo1NiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvcmZhY3RvcnkuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3JmYWN0b3J5Lmg6CgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmg6CgkgIGRldmljZW1vbml0b3I6IE1ha2UgY2xhc3NlcyBpbnRvIHB1cmUgc3RyaW5ncwoJICBJbnN0ZWFkIG9mIGhhdmluZyBzdHJpbmdzICYgZmxhZ3MsIG1ha2UgdGhlbSBqdXN0IHN0cmluZ3MKCjIwMTQtMDMtMTcgMDY6Mjk6MjcgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkgIEZpeCBleHRlbmRlZCBtZXNzYWdlIGhhbmRsaW5nIHdpdGggZ3N0X2J1c19wb3BfdGltZWRfZmlsdGVyZWQoKQoJICBNYWtlIHN1cmUgZXh0ZW5kZWQgbWVzc2FnZSB0eXBlcyBkb24ndCBnZXQgYWNjaWRlbnRhbGx5IG1hdGNoZWQKCSAgd2hlbiBub3QgYXNrZWQgZm9yIGluIHRoZSBtYXNrCgoyMDE0LTAzLTE3IDA1OjI0OjEyICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgZ3N0YmluOiBBdm9pZCBwb2ludGxlc3Mgb2JqZWN0IGxvY2sgZm9yd2FyZGluZyBtZXNzYWdlcy4KCSAgRXZlcnkgaW5zdGFuY2Ugb2YgY2FsbGluZyBiaW5fZG9fbWVzc2FnZV9mb3J3YXJkKCkgZmlyc3QgdG9vayB0aGUKCSAgb2JqZWN0IGxvY2ssIHNvIHRoYXQgYmluX2RvX21lc3NhZ2VfZm9yd2FyZCgpIGNvdWxkIGRyb3AgaXQgYW5kCgkgIHRoZW4gcmVjbGFpbS4gSW5zdGVhZCwgb25seSB0YWtlIHRoZSBvYmplY3QgbG9jayBhZnRlcndhcmQgd2hlcmUKCSAgbmVlZGVkLgoKMjAxNC0wMi0xOSAwMjoyNzozNiArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWR1cG9uY2hlbGxlMUBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBXaGVuIHNlZWsgZmx1c2hlZCwgaW1tZWRpYXRlbHkgc2V0IGVvc3BhZHMgdG8gMAoJICBUaGlzIHByZXZlbnRzIHNpdHVhdGlvbnMgd2hlcmUgYSBmaXJzdCBicmFuY2ggd291bGQgZ2V0IHNlZWtlZCBhbmQKCSAgcmVjZWl2ZSBhIGJ1ZmZlciBiZWZvcmUgYWxsIGJyYW5jaGVzIGdvdCBzZWVrZWQsIGFuZCB0aHVzIGNvbGxlY3RlZAoJICB3b3VsZCBnZXQgY2FsbGVkIGJhc2VkIG9uIEVPUyBmcm9tIHRoZSBwcmV2aW91cyBzZWdtZW50LgoJICBBcyBhIGNvbnNlcXVlbmNlLCBkdXJpbmcgdGhlIHByb2Nlc3Mgb2Ygc2Vla2luZywgZG9uJ3QgZGVjcmVhc2UKCSAgdGhlIGVvc3BhZHMgbnVtYmVyIHdoZW4gYSBGTFVTSF9TVE9QIGlzIHJlY2VpdmVkLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI0NTcxCgoyMDE0LTAzLTE2IDE3OjQ3OjA2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogVW5yZWYgcGVlciBwYWQKCjIwMTQtMDItMTYgMjA6MzU6MDkgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1kdXBvbmNoZWxsZTFAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogRm9yd2FyZCBzZWVrIGV2ZW50cyB0byB0aGUgcGVlciBkaXJlY3RseQoJICBUYWtlbiBmcm9tIHRoZSBhZGRlciBzZWVrIGhhbmRsaW5nIGNvZGUuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjY0NjEKCjIwMTQtMDEtMDIgMjI6MzA6MTEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRvYy50eHQ6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJICB0b2M6IGV4cGFuZCBHc3RUb2NFbnRyeSB3aXRoIGxvb3AgZmllbGRzCgkgIEFkZCBsb29wX3R5cGUgYW5kIHJlcGVhdF9jb3VudCBmaWVsZHMgdG8gR3N0VG9jRW50cnkgcGx1cyBzZXR0ZXJzIGFuZCBnZXR0ZXJzLgoJICBUaGlzIGFsbG93cyB0byByZXByZXNlbnQgZWRpdC1saXN0cyBpbiBhIHRvYyBhcyB3ZWxsIGFzIGxvb3BzIGluIGluc3RydWVtbnRzICh3YXYsIHhpKS4KCSAgQVBJOiBnc3RfdG9jX2VudHJ5X3NldF9sb29wCgkgIEFQSTogZ3N0X3RvY19lbnRyeV9nZXRfbG9vcAoKMjAxNC0wMy0xNiAxNToxOTo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmM6CgkgIGdsb2JhbGRldmljZW1vbml0b3I6IHVwZGF0ZSBmb3IgbmV3IG1lc3NhZ2UgQVBJCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg0MDIKCjIwMTMtMDEtMDggMjE6MzA6NDQgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdsb2JhbGRldmljZW1vbml0b3I6IEFkZCBkZXZpY2UgbW9uaXRvciBhZ2dyZWdhdG9yCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg0MDIKCjIwMTQtMDMtMTYgMTQ6MDg6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkgIHRlc3RzOiBhZGQgdGVzdCBmb3IgZXh0ZW5kZWQgbWVzc2FnZSB0eXBlcyBhbmQgZ3N0X2J1c190aW1lZF9wb3BfZmlsdGVyZWQKCjIwMTQtMDMtMTYgMTQ6MDg6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVzc2FnZSwgYnVzOiBkbyBleHRlbmRlZCBtZXNzYWdlIHR5cGVzIHNsaWdodGx5IGRpZmZlcmVudGx5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg0MDIKCjIwMTQtMDMtMTYgMTQ6MDc6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogZml4IGluZGVudGF0aW9uCgoyMDEyLTEwLTE2IDEyOjI3OjA0IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkqIGdzdC9nc3RkZXZpY2UuaDoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuaDoKCSogZ3N0L2dzdGRldmljZW1vbml0b3JmYWN0b3J5LmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yZmFjdG9yeS5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGV2aWNlbW9uaXRvcjogQWRkIEdzdERldmljZU1vbml0b3IgYW5kIHJlbGF0ZWQKCSAgQWxzbyBhZGQgR3N0RGV2aWNlIGFuZCBHc3REZXZpY2VNb25pdG9yRmFjdG9yeQoJICBBbmQgYWRkIGNvZGUgdG8gdGhlIHJlZ2lzdHJ5IHRvIHNhdmUgdGhlbQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4NDAyCgoyMDEzLTA4LTE0IDE1OjU2OjExIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIG1lc3NhZ2U6IEFkZCBHU1RfTUVTU0FHRV9FWFRFTkRFRAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4NDAyCgoyMDE0LTAzLTE2IDExOjA1OjU2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHBhZDogYWN0dWFsbHkgcmV0dXJuIGRhdGEucmV0CgkgIFRoZSByZXR1cm4gdmFsdWUgZnJvbSBnc3RfcGFkX2ZvcndhcmQoKSBpcyB0aGUgYWdncmVnYXRlZCByZXR1cm4gdmFsdWUgZnJvbSB0aGUgY2FsbGJhY2sgYW5kIHRoZSBjYWxsYmFjayByZXR1cm5zIEZBTFNFIHRvIGNvbnRpbnVlIGl0ZXJhdGluZy4KCjIwMTQtMDMtMTUgMTU6NTQ6MzMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgcGFkOiBmb3J3YXJkIHJldHVybiB2YWx1ZSBmcm9tIGdzdF9wYWRfZm9yd2FyZAoJICBJbnN0ZWFkIG9mIGlnbm9yaW5nIHRoZSByZXR1cm4gdmFsdWUgYW5kIGFsd2F5cyByZXR1cm4gVFJVRSBwYXNzIHRoZSBhbHJlYWR5IGFncmVnYXRlZCByZXN1bHQgYmFjay4KCjIwMTQtMDMtMTUgMTM6NTc6MTkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBmaXggbWFrZS1jaGVjayBieSBydW5uaW5nICdtYWtlIHVwZGF0ZS1leHBvcnRzJwoKMjAxNC0wMy0xNCAxMzozMjoxNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIHRlc3RzOiBtdWx0aXF1ZXVlOiBmaXggZW9zIGNvdW50IG9uIHRlc3QgZm9yIG5vdC1saW5rZWQgY2FzZQoJICBGcm9tIHRoZSB0ZXN0IGNhc2U6CgkgIC8qIFRoaXMgdGVzdCBjcmVhdGVzIGEgbXVsdGlxdWV1ZSB3aXRoIDIgc3RyZWFtcy4gT25lIHJlY2VpdmVzCgkgICogYSBjb25zdGFudCBmbG93IG9mIGJ1ZmZlcnMsIHRoZSBvdGhlciBvbmx5IGdldHMgb25lIGJ1ZmZlciwgYW5kIHRoZW4KCSAgKiBuZXctc2VnbWVudCBldmVudHMsIGFuZCByZXR1cm5zIG5vdC1saW5rZWQuIFRoZSBtdWx0aXF1ZXVlIHNob3VsZCBub3QgZmlsbC4KCSAgKi8KCSAgSWYgb25lIG9mIHRoZSBxdWV1ZXMgZ29lcyBFT1MgYW5kIHRoZSBvdGhlciByZXR1cm5zIE5PVF9MSU5LRUQgdGhlIHN0cmVhbQoJICBjYW4gYmUgY29uc2lkZXJlcmVkIEVPUyBhcyBhIE5PVF9MSU5LRUQgbWVhbnMgdGhhdCBvbmUgb2YgdGhlIGJyYW5jaGVzIGhhcyBubwoJICBzaW5rIGRvd25zdHJlYW0gdGhhdCB3aWxsIGJsb2NrIHRoZSBFT1MgbWVzc2FnZSBwb3N0aW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI1OTE3CgoyMDE0LTAzLTAxIDIzOjE4OjQ0ICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYWRhcHRlcjogQWRhcHQgZ3N0X2FkYXB0ZXJfY29weSgpIGZvciBiaW5kaW5ncwoJICBUaGlzIGlzIGRvbmUgYnkgaW50cm9kdWNpbmcgYSBuZXcgZ3N0X2FkYXB0ZXJfY29weV9ieXRlcygpIGNhbGwgdGhhdAoJICByZXR1cm5zIGEgR0J5dGVzIHN0cnVjdHVyZS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNTQ3NgoKMjAxNC0wMy0xNCAxODo0MDozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBkb2NzOiBmaXggbXVsdGlxdWV1ZSBkb2NzIGZvciBuZXcgdGVtcGxhdGUgbmFtZXMgZm9vXyVkIC0+IGZvb18ldQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI2MzU4CgoyMDE0LTAzLTExIDIxOjU1OjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkgIGRvY3M6IHVwZGF0ZSBwbHVnaW4gZG9jcwoKMjAxNC0wMy0xMSAyMTo0NDozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBzaW1wbGlmeSBnc3RfcGFkX2xpbmtfZ2V0X25hbWUoKSBhbmQgZml4IFNpbmNlIG1hcmtlcgoJICBIYXMgYWRkZWQgYmVuZWZpdCB0aGF0IGNvbXBpbGVyIG1pZ2h0IHdhcm4gaWYgbW9yZSB2YWx1ZXMKCSAgYXJlIGFkZGVkIHRvIHRoZSBlbnVtLgoKMjAxNC0wMy0xMSAyMTo0NjoxNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogYWRkIGRlYnVnIGhlbHBlciBmb3IgR3N0UGFkTGlua1JldHVybiBuYW1lcwoJICBBZGQgYSBoZWxwZXIgbGlrZSBnc3RfZmxvd19nZXRfbmFtZSgpIGZvciBHc3RQYWRMaW5rUmV0dXJuLiBVc2UgdGhpcyBpbiBjb3JlLgoJICBBUEk6IGdzdF9wYWRfbGlua19nZXRfbmFtZSgpCgoyMDE0LTAzLTExIDIxOjEyOjE1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiB1c2Ugc3RvcmVfc3RpY2t5IGV2ZW50cyBhZGQgYWRkIG1vcmUgbG9nZ2luZwoJICBVc2UgdGhlIHBhZCBhcyBvYmplY3QgZm9yIGxvZ2dpbmcgdG8gZ2V0IG1vcmUgY29udGV4dC4gVXNlCgkgIGdzdF9wYWRfc3RvcmVfc3RpY2t5X2V2ZW50KCkgaW5zdGVhZCBvZiBzZW5kaW5nIHRoZSBldmVudC4gVGhpcyBhdm9pZHMgYSB3YXJuaW5nCgkgIGFzIGhlcmUgdGhlIHBhZCBpcyBub3QgeWV0IGxpbmtlZCBhbmQgd2UgYWN0dWFsbHkgZG9uJ3Qgd2FudCB0byBzZW5kIGFueXdheS4KCjIwMTQtMDMtMTAgMTA6MDA6MjggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBpZiBidWZmZXJpbmcgaXMgZGlzYWJsZWQgd2hpbGUgYnVmZmVyaW5nLCBwb3N0IDEwMCUgbWVzc2FnZQoJICBBdm9pZHMgc3RhbGwgd2FpdGluZyBmb3IgYnVmZmVyaW5nIHRvIHJlYWNoIDEwMCUKCjIwMTQtMDMtMTAgMDk6NDk6MDkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiByZW1vdmUgdW51c2VkIHZhcmlhYmxlCgkgIGJ1ZmZlcmluZ19pdGVyYXRpb24gd2FzIG5ldmVyIHVzZWQKCjIwMTQtMDMtMTAgMDk6NDk6MDcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTogcXVldWUyOiBwcmVzZXJ2ZSBsYXN0IGZsb3cgcmVzdWx0IHdoZW4gcHVzaGluZyBldmVudHMKCSAgQXZvaWRzIG1pc3Rha2VubHkgcmV0dXJuaW5nIF9PSyB3aGVuIGRvd25zdHJlYW0gaXMgc3RpbGwKCSAgX05PVF9MSU5LRUQgb24gc3Vic2VxdWVudCByZWNlaXZlZCBwYWQgcHVzaGVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjU5MTcKCjIwMTQtMDMtMTAgMDk6NDk6MDUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGlmIGJ1ZmZlcmluZyBpcyBkaXNhYmxlZCB3aGlsZSBidWZmZXJpbmcsIHBvc3QgMTAwJSBtZXNzYWdlCgkgIEF2b2lkcyBzdGFsbCB3YWl0aW5nIGZvciBidWZmZXJpbmcgdG8gcmVhY2ggMTAwJQoKMjAxNC0wMy0xMCAwOTo0ODo1OCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogZG8gbm90IHJlc2V0IGxhc3QgcHVzaCByZXN1bHQgd2hlbiBwdXNoaW5nIGV2ZW50cwoJICBVc2UgdGhlIGxhc3QgcmVzdWx0IGFzIGEgZGVmYXVsdCB3aGVuIHB1c2hpbmcgYSBpdGVtIGZyb20gYSBzaW5nbGUgcXVldWUsCgkgIG90aGVyd2lzZSB0aGUgc3RhdHVzIGdldHMgcmVzZXQgdG8gX09LIHdoZW4gcHVzaGluZyBldmVudHMuCgkgIFRoaXMgY2F1c2VzIHByb2JsZW1zIHdoZW4gbWlzdGFrZW5seSBhY3RpdmF0aW5nIGEgbm90LWxpbmtlZCBzdHJlYW0KCSAgdGhhdCBpcyBiZWluZyBpZ25vcmVkIHVwc3RyZWFtIGFzIGl0IGlzIG5vdCBiZWluZyB1c2VkIChhZGFwdGl2ZQoJICBzY2VuYXJpb3MpLCBpdCB3aWxsIG1ha2UgdGhlIG11bHRpcXVldWUgcG9zdCBhIGJ1ZmZlcmluZyBtZXNzYWdlCgkgIG9uIGEgcGFkIHRoYXQgd29uJ3QgcmVjZWl2ZSBidWZmZXJzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjU5MTcKCjIwMTQtMDMtMDcgMjA6NDM6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVyOiBpbnZlcnQgbWVhbmluZyBvZiBHU1RfQlVGRkVSX0ZMQUdfVEFHX01FTU9SWQoJICBJdCdzIG5pY2VyIHRvIG9ubHkgaGF2ZSBpdCBzZXQgd2hlbiBzb21ldGhpbmcgbm90ZXdvcnRoeQoJICBoYXBwZW5lZCBhbmQgb3RoZXJ3aXNlIHVuc2V0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI1ODYyCgoyMDE0LTAzLTA2IDIyOjUxOjU3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBnc3RfcGFkX2FkZF9wcm9iZSgpIHJldHVybiB2YWx1ZSBkb2NzCgkgIEFsc28gZml4IGNvbW1lbnQgdHlwb3MgYW5kIGFkZCBtb3JlIGRldGFpbCBpbiB0aGUgbG9ncy4KCjIwMTQtMDMtMDYgMjA6NDA6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGZha2VzaW5rLCBpZGVudGl0eSwgZmFrZXNyYzogZml4IGRlYnVnIHByaW50aW5nIGlmIFRBR19NRU1PUlkgYnVmZmVyIGZsYWcKCSAgVGhlIElOX0NBUFMgZmxhZyBkb2VzIG5vdCBleGlzdCBhbnkgbW9yZS4KCjIwMTQtMDMtMDYgMTM6MDE6NDAgKzAyMDAgIEdlb3JnZSBLaWFnaWFkYWtpcyA8Z2VvcmdlLmtpYWdpYWRha2lzQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IHVzZSBnc3RfcGFkX2dldF9wZWVyIHRvIGFjcXVpcmUgYSByZWZlcmVuY2UgdG8gdGhlIHRhcmdldCBwYWQKCSAgVGhpcyBlbnN1cmVzIHRoYXQgdGhlIGxvY2sgb2YgdGhlIGludGVybmFsIHBhZCBpcyBoZWxkIHdoaWxlIHJlZmVyZW5jaW5nCgkgIGl0J3MgcGVlciAoPSB0aGUgdGFyZ2V0IHBhZCksIHdoaWNoIGVuc3VyZXMgdGhhdCB0aGUgcGVlciBpcyBub3QKCSAgZ29pbmcgdG8gYmUgdW5saW5rZWQvZGVzdHJveWVkIGluIHRoZSBtZWFudGltZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNTgwOQoKMjAxNC0wMy0wNiAxMjo0MDoyMyArMDIwMCAgR2VvcmdlIEtpYWdpYWRha2lzIDxnZW9yZ2Uua2lhZ2lhZGFraXNAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogaG9sZCBhIHJlZmVyZW5jZSB0byB0aGUgdGFyZ2V0IHBhZCB3aGlsZSB1bmxpbmtpbmcgaXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNTgwOQoKMjAxNC0wMy0wMiAwNTowODoyNCArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogLmdpdGlnbm9yZToKCSAgLmdpdGlnbm9yZTogSWdub3JlIGdjb3YgaW50ZXJtZWRpYXRlIGZpbGVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjU0NzgKCjIwMTQtMDMtMDIgMTc6NTU6NDUgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGRvY3M6IEZpeCB0eXBvcyBhbmQgcmVtb3ZlIHVua25vd24gYW5ub3RhdGlvbnMKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNTUxNwoKMjAxNC0wMi0yOCAyMDo1MzozOCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkgIGRvY3M6IHVzZSB0aGUgbmV3IG1hcmtkb3duIGZvciBvcmRlcmVkIGxpc3QuCgkgIFRoaXMgd2FzIHBsYWluIHRleHQgdGhhdCBoYWQgYWxsIGxpc3QgaXRlbXMgb25lIGFmdGVyIHRoZSBvdGhlciAoaW5jbHVkaW5nIGEKCSAgcmVwZWF0ZWQgbnVtYmVyKS4gTm93IGl0IHdpbGwgYXRsZWFzdCBsb29rIGdvb2Qgd2hlbiBwcm9jZXNzZWQgd2l0aCBndGstZG9jCgkgIDEuMjAuCgoyMDE0LTAyLTI4IDA5OjM0OjE5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmZTE2NzJlIHRvIGJjYjE1MTgKCjIwMTQtMDItMjcgMjI6MjY6MzAgLTAzMDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHIudmVyZGVqb0BzaXNhLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBkb2NzOiBmaXggcHJvYmxlbXMgaW50cm9kdWNlZCBieSBjMDY4YjIyNWZlZjVhOWJmMAoJICAtIEZpeCBmYWlsaW5nIGJ1aWxkCgkgIC0gRHJvcCBhZGRlZCB0cmFpbGluZyB3aGl0ZXNwYWNlCgoyMDE0LTAyLTI3IDE4OjI3OjM3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGFkZCByZXR1cm4gdmFsdWVzIHRvIGdfcmV0dXJuX2lmX2ZhaWwKCSAgRkl4ZXMgcHJldmlvdXMgY29tbWl0LgoKMjAxNC0wMi0yNyAxODowNjo1NiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSAgZG9jczogY29udmVydCB0aGUgZXhhbXBsZXMgdG8gdXNlIGd0ay1kb2MgbWFya3VwLCBpbnN0ZWFkIG9mIGRvY2Jvb2sKCSAgVGhlIGd0ay1kb2MgbWFya3VwIGlzIGxlc3MgaW50cnVzaXZlIGFuZCBiZXR0ZXIgaGFuZGxlZCB3aGVuIGNyZWF0aW5nIGRvY3MgZm9yCgkgIGxhbmd1YWdlIGJpbmRpbmdzLiBUaGUgdGl0bGVzICh3aGVyZSB1c2VkKSB3aGVyZSBub3QgYWRkaW5nIG11Y2guCgoyMDE0LTAyLTI3IDE2OjQ2OjExICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkb2NzOiBhZGQgc29tZSBtb3JlIG5ldyBBUEkgZG8gZG9jcwoKMjAxNC0wMi0yNyAxNjo0MDozNCArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBvbmx5IHJlbGVhc2UgYnVmZmVycyB3aXRoIHdyaXRhYmxlIG1lbW9yeQoJICBDaGVjayBpZiB0aGUgbWVtb3J5IGlzIHdyaXRhYmxlIGJlZm9yZSByZWxlYXNpbmcgdGhlIGJ1ZmZlciBpbnRvIHRoZQoJICBwb29sIGFnYWluLgoJICBBZGQgdW5pdCB0ZXN0IGZvciB0aGlzIHNjZW5hcmlvLgoKMjAxNC0wMi0yNyAxNjozOTo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBhZGQgZnVuY3Rpb24gdG8gY2hlY2sgd3JpdGFiaWxpdHkgb2YgbWVtb3J5CgkgIENoZWNrIGlmIG1lbW9yeSBpcyB3cml0YWJsZSBpbiBhIGJ1ZmZlciBhbmQgdGh1cyBpcyBleGNsdXNpdmVseSBvd25lZCBieQoJICB0aGlzIGJ1ZmZlci4KCjIwMTQtMDItMjcgMTU6MTQ6NTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogVXNlIFRBR19NRU1PUlkgdG8gY2hlY2sgbWVtb3J5IGJlZm9yZSByZWxlYXNpbmcKCSAgVGFnIGFsbG9jYXRlZCBidWZmZXJzIHdpdGggVEFHX01FTU9SWS4gV2hlbiB0aGV5IGFyZSByZWxlYXNlZCBsYXRlciwKCSAgb25seSBhZGQgdGhlbSBiYWNrIHRvIHRoZSBwb29sIGlmIHRoZSB0YWcgaXMgc3RpbGwgdGhlcmUgYW5kIHRoZSBtZW1vcnkKCSAgaGFzIG5vdCBiZWVuIGNoYW5nZWQsIG90aGVyd2lzZSB0aHJvdyB0aGUgYnVmZmVyIGF3YXkuCgkgIEFkZCB1bml0IHRlc3QgdG8gY2hlY2sgdmFyaW91cyBzY2VuYXJpb3MuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjQ0ODEKCjIwMTQtMDItMjcgMTQ6MzU6MDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogYWRkIGEgbmV3IGZsYWcgdG8gdHJhY2sgbWVtb3J5IGNoYW5nZXMKCSAgQWRkIGEgZmxhZyB0byBjaGVjayBpZiB0aGUgbWVtb3J5IGNoYW5nZWQgaW4gYSBidWZmZXIuCgoyMDE0LTAyLTI2IDE1OjM2OjQyICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiByZW1vdmUgd3JvbmcgY29tbWVudAoJICBSZWZjb3VudCBhbmQgd3JpdGFiaWxpdHkgYXJlIG5vdCByZWxhdGVkIGZvciBtZW1vcnkgb2JqZWN0cy4KCjIwMTQtMDItMjUgMTc6NDY6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogcmVmYWN0b3IgZnJlZV9idWZmZXIKCSAgTWFrZSBhIGRvX2ZyZWVfYnVmZmVyIG1ldGhvZCB0byBhbHNvIGRlY3JlbWVudHMgdGhlIG51bWJlciBvZiBhbGxvY2F0ZWQKCSAgYnVmZmVycy4gU3RvcCB3aWxsIG5vdyBiZSBzdWNjZXNzZnVsIHdoZW4gYWxsIGJ1ZmZlcnMgYXJlIGZyZWVkLgoKMjAxNC0wMi0yNiAyMjoxMDoyOCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMWEwN2RhOSB0byBmZTE2NzJlCgoyMDE0LTAyLTI2IDIwOjI0OjQxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogYWRkIGEgbGVnZW5kIHRvIHBpcGVsaW5lIGR1bXBzCgkgIFdlIHVzZSBhIGNvdXBsZSBvZiBzeW1ib2xzIHRvIHJlcHJlc2VudCBzdGF0ZXMvZmxhZ3MuIEFkZCBhIHNob3J0IGV4cGxhbmF0aW9uIGZvciB0aGVtLgoKMjAxMy0wNy0zMSAwOToyNjoyNiArMDIwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IFByaW50IGlmIHRoZXJlIGlzIGEgdGFzayBzdGFydGVkIGZyb20gYSBwYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTE4OQoKMjAxNC0wMi0yNSAxNjoxMToyMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBVc2UgZ2V0X3VpbnQ2NCgpIGluIGdzdF9zdHJ1Y3R1cmVfZ2V0X2Nsb2NrX3RpbWUoKQoJICBJdHMgY29kZSBpcyBpZGVudGljYWwuCgoyMDE0LTAyLTI1IDE1OjQxOjQ1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHN0cnVjdHVyZTogQWRkIGdldHRlcnMgZm9yIGludDY0IGFuZCB1aW50NjQgdmFsdWVzCgoyMDE0LTAyLTE5IDIxOjE3OjI3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSAgYmFzZXNyYzogRG8gbm90IHNlbmQgZW9zIHdoZW4gc2Vla2luZyBhZnRlciBsYXN0IGJ1ZmZlcgoJICBJZiBwdXNoaW5nIHRoZSBsYXN0IGJ1ZmZlciB0cmlnZ2VycyBhIHNlZWsgZnJvbSBkb3duc3RyZWFtLCBkbyBub3QKCSAgZ28gaW50byBFT1MgaWYgYSBuZXcgc2VnbWVudCB3YXMgcmVxdWVzdGVkLgoJICBDb250YWlucyB1bml0IHRlc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNDc1NwoKMjAxNC0wMi0yMSAwOTowMzo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IHJlbW92ZSBpbnNhbml0eSBhbmQgdGhlIG9sZCBnc3Qtb3Blbm1heAoKMjAxNC0wMi0yMCAxODo0Nzo0MiArMDEwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBjb2xsYWJvcmEuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogQWRkIHBhdGhzIHRvIGdzdC1kZXZ0b29scy92YWxpZGF0ZQoKMjAxNC0wMi0yMCAxNTozNDozNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBJZiB3ZSBvbmx5IGhhdmUgYSBzaW5nbGUgcGFkLCBkb24ndCBjb25zaWRlciBhbGwgcGFkcyBub3QgbGlua2VkIGFuZCBncm93IHRoZSBxdWV1ZSBpbmRlZmluaXRlbHkKCjIwMTQtMDItMTkgMTA6NTc6MzMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogYWxzbyB1c2UgdGhlIGdsb2Igb24gR1NUX0NIRUNLUyB3aGVuIGZvcmNpbmcgdG8gcnVuIGJyb2tlbiB0ZXN0cwoJICBHU1RfQ0hFQ0tTIGNhbiBiZSBzaW1wbHkgInRlc3QqIiB0byBydW4gcnVuIGFsbCB0ZXN0cyAoaW5jbHVkaW5nIHRob3NlIHRoYXQgYXJlCgkgIG1hcmtlZCBicm9rZW4pLiBVcGRhdGUgdGhlIHNwYXJzZSBjb21tZW50cyBhIGJpdCB0byB0ZWxsIGhvdyB0aGlzIHdvcmtzLgoKMjAxNC0wMi0xOCAxNTo0NjozMiArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGRvbid0IHRydW5jYXRlIHRoZSB0ZW1wIGZpbGUgb24gc2h1dGRvd24KCSAgV2Ugd2FudCB0byBrZWVwIHRoZSBkb3dubG9hZGVkIGZpbGUgdW50cnVuY2F0ZWQgc28gdGhhdCB3ZSBjYW4gdXNlIGl0CgkgIGFnYWluIGxhdGVyLgoJICBGaXhlczogaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNDM3MwoKMjAxNC0wMi0xOCAxNDoyMToyMCArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEZpeCBtZXJnaW5nIG9mIHJhbmdlcwoJICBNYWtlIGEgbWV0aG9kIHRvIGdldCB0aGUgc2Vla2luZyB0aHJlc2hvbGQuIElmIGRhdGEgaXMgZnVydGhlciBhd2F5IGZyb20KCSAgdGhpcyB0aHJlc2hvbGQgd2Ugd2FudCB0byBwZXJmb3JtIGEgc2VlayB1cHN0cmVhbS4KCSAgV2hlbiB0aGUgY3VycmVudCBkb3dubG9hZGVkIHJhbmdlIGNhbiBtZXJnZSB3aXRoIHRoZSBuZXh0IHJhbmdlLAoJICBhY3R1YWxseSBpbmNsdWRlIHRoZSBkYXRhIG9mIHRoZSBuZXh0IHJhbmdlIGludG8gdGhlIGN1cnJlbnQgcmFuZ2UKCSAgaW5zdGVhZCBvZiBkaXNjYXJkaW5nIGl0LiBBbHNvIGRlY2lkZSBpZiB3ZSBzZWVrIHRvIHRoZSB3cml0ZSBwb3NpdGlvbgoJICBvZiB0aGUgbWVyZ2VkIHJhbmdlIG9yIGNvbnRpbnVlIHJlYWRpbmcuCgoyMDE0LTAyLTE4IDExOjQ5OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBpbiBhdXRvbWF0aWNfZW9zIG1vZGUsIGRvbid0IG1vZGlmeSB0aGUgc2l6ZQoJICBEb24ndCBzZXQgdGhlIHNpemUgdG8gLTEgaW4gYXV0b21hdGljX2VvcyBtb2RlICh3aGljaCBhbHNvIHVwZGF0ZXMgdGhlCgkgIGR1cmF0aW9uIHRvIC0xKS4gV2Ugb25seSB3YW50IGF1dG9tYXRpY19lb3MgbW9kZSBpbmZsdWVuY2UgdGhlIG1heHNpemUKCSAgY2FsY3VsYXRpb25zIHdpdGhvdXQgYW55IHNpZGUgZWZmZWN0cy4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNDU2NAoKMjAxNC0wMi0xNyAxMTozNzozMCArMDEwMCAgSmFuIEFsZXhhbmRlciBTdGVmZmVucyAoaGVmdGlnKSA8amFuLnN0ZWZmZW5zQGdtYWlsLmNvbT4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgcHdnOiBVcGRhdGUgcmF3IHByb3BlcnRpZXMKCSAgVXNpbmcgaW5mbyBmcm9tIGdzdC1wbHVnaW5zLWJhc2UvZG9jcy9kZXNpZ24gLgoJICBFbmNvZGVkIHN0cmVhbXMgbWlnaHQgbWFrZSB1c2Ugb2YgdGhlIHJhdyBwcm9wZXJ0aWVzLCBzbyBsaXN0IHRoZW0gYWxsIHVuZGVyIGZvby8qIC4KCSAgRm9yIGZvby9yYXcsIG9ubHkgbm90ZSB3aGljaCBvZiB0aGVzZSBwcm9wZXJ0aWVzIGFyZSBtYW5kYXRvcnkuCgkgIEkgZGlkbid0IHRha2UgYSBjbG9zZXIgbG9vayBhdCB0aGUgcmF3IGZvcm1hdHMgeWV0LiBUaG9zZSBtaWdodCBzdGlsbCBiZSBvdXQtb2YtZGF0ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNDE4NwoKMjAxNC0wMi0xNyAxNzoyODozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHNjcmlwdHMvY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwLnNoOgoJICBzY3JpcHRzOiBjcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXA6IHJlbW92ZSBkZWFkIGh0dHAgbGlua3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNDU2MQoKMjAxNC0wMi0xNSAyMjozNDozMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSAgZG9jczogYWRkIHRoZSBib3hlZCB0eXBlcyB0byB0aGUgLnR5cGVzLmluCgkgIFRoaXMgbWFrZXMgdGhlbSBzaG93IHVwIGluIHRoZSBvYmplY3QgaGllcmFyY2h5LgoKMjAxNC0wMi0xNSAyMToyMjo0NSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBkb2NzOiBndGtkb2MgaXMgbm90IGdvb2QgYXQgcGFyc2luZyBpbmxpbmUgZnVuY3Rpb25zIGluIGhlYWRlcnMKCSAgTWFyayB0aGUgaW5saW5lIGZ1bmN0aW9uLCBzbyB0aGF0IGd0a2RvYyBza2lwcyB0aGVtLiBBdm9pZHMgc29tZSB3YXJuaW5ncyBhYm91dAoJICB1bnBhcnNhYmxlIGRlY2xhcmF0aW9ucy4KCjIwMTQtMDItMTMgMTI6MDc6NTAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYmFzZXNyYzogQWRkIGdzdF9iYXNlX3NyY19zZXRfYXV0b21hdGljX2VvcygpIEFQSQoJICBUaGlzIGRlZmF1bHRzIHRvIFRSVUUgYW5kIGlmIGl0IGlzIHNldCB0byBGQUxTRSBpdCBpcyB0aGUgc3ViY2xhc3NlcwoJICByZXNwb25zaWJpbGl0eSB0byByZXR1cm4gR1NUX0ZMT1dfRU9TIGZyb20gdGhlIGNyZWF0ZSgpIHZtZXRob2Qgb25jZQoJICB0aGUgc3RyZWFtIGlzIGRvbmUuCgoyMDE0LTAyLTExIDE2OjMwOjMxICswMDAwICBXaWxsaWFtIE1hbmxleSA8d2lsbEB3aWxsaWFtbWFubGV5Lm5ldD4KCgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgZG9jczogRml4IGxvY2F0aW9uIG9mIHBsdWdpbnMgYW5kIHJlZ2lzdHJ5IGluIGhvbWUgZGlyZWN0b3JpZXMKCSAgRml4ZXMgb3V0IG9mIGRhdGUgZG9jdW1lbnRhdGlvbiBsZWZ0IG92ZXIgc2luY2UgMC4xMC4gIEluIDEuMCBwbHVnaW5zIGFyZQoJICBzdG9yZWQgaW4gJFhER19EQVRBX0hPTUUgYW5kIHRoZSByZWdpc3RyeSBpbiAkWERHX0NBQ0hFX0hPTUUgY29uZm9ybWFudAoJICB3aXRoIHRoZSBYREcgQmFzZSBEaXJlY3RvcnkgU3BlY2lmaWNhdGlvblsxXS4KCSAgWzFdOiBodHRwOi8vc3RhbmRhcmRzLmZyZWVkZXNrdG9wLm9yZy9iYXNlZGlyLXNwZWMvYmFzZWRpci1zcGVjLWxhdGVzdC5odG1sCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjQxMzIKCjIwMTQtMDItMTEgMTM6Mjc6MjUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgZXJyb3I6IEdTVF9SRVNPVVJDRV9FUlJPUl9OT1RfQVVUSE9SSVpFRCB3aWxsIGJlIGF2YWlsYWJsZSBzaW5jZSAxLjIuNAoKMjAxNC0wMi0xMSAxMzowOToxMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgZXJyb3I6IEFkZCBSRVNPVVJDRV9OT1RfQVVUSE9SSVpFRCBlcnJvcgoJICBUaGlzIGFsbG93cyB0byBkaXN0aW5ndWlzaCBub3JtYWwgcmVhZCBmYWlsdXJlcyBmcm9tIHJlYWQgZmFpbHVyZXMKCSAgd2hlcmUgd2UgbWlzcyBhdXRob3JpemF0aW9uLgoKMjAxNC0wMi0xMCAxNzowOTo1OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBGaXggeWV0IGFub3RoZXIgY29tcGlsZXIgd2FybmluZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI0MDQ1CgoyMDE0LTAyLTEwIDA4OjAwOjM2ICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSAgZG9jczogYWRkIG1pc3Npbmcgc2VxbnVtIGZpbGUgZm9yIGRpc3RyaWJ1dGlvbgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIzOTk3CgoyMDE0LTAyLTA5IDE2OjUzOjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgIGRvY3M6IGRvY3VtZW50IEdTVF9UQUdfKkVOQ09ESU5HIGVudmlyb25tZW50IHZhcmlhYmxlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxODUwCgoyMDE0LTAyLTA5IDE2OjQ3OjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9NYWtlZmlsZS5hbToKCSAgZG9jczogZW5hYmxlIHBhcmFsbGVsIGJ1aWxkIG9mIHN1YmRpcmVjdG9yaWVzCgkgIFdlIGNhbiBidWlsZCBndGsgZG9jcywgQURNLCBQV0cgYW5kIEZBUSBpbiBwYXJhbGxlbC4KCjIwMTQtMDItMDkgMTY6Mzg6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogYWRkIHN1cHBvcnQgZm9yIGJsYWNrbGlzdGluZyBjaGVja3MgdmlhIEdTVF9DSEVDS1NfSUdOT1JFCgoyMDE0LTAyLTA5IDAwOjI1OjE0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlcGFyc2UuYzoKCSAgdGVzdHM6IGZpeCBsZWFrIGluIGJhc2VwYXJzZSB0ZXN0CgkgIE9yIHJhdGhlciBtYWtlIGl0IG5vdCBzaG93IHVwIGFueSBtb3JlIGJ5IG1vdmluZwoJICBpdCBmcm9tICdkZWZpbml0ZWx5IGxvc3QnIGludG8gJ3Bvc3NpYmx5IGxvc3QnLgoKMjAxNC0wMi0wOCAyMzozOTowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICB0ZXN0czogZml4IGxlYWsgaW4gc3lzdGVtY2xvY2sgdGVzdAoKMjAxNC0wMi0wOCAxNjo0Mjo1NSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBNYWtlIGNsYW5nIGhhcHB5IHdpdGggb3VyIGdfdnByaW50ZigpIHdyYXBwZXIKCjIwMTQtMDItMDYgMTQ6MTg6MzEgKzA4MDAgIENodW4td2VpIEZhbiA8ZmFuY2h1bndlaUBzcmMuZ25vbWUub3JnPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHdpbmRvd3M6IE1ha2UgR1N0cmVhbWVyIGluc3RhbGxhdGlvbiByZWxvY2F0YWJsZQoJICBVc2UgdGhlIHRlY2huaXF1ZSB0aGF0IGlzIG5vdyBkb25lIGluIEdUSysgc28gdGhhdCB0aGUgcGx1Z2lucyBkbyBub3QgaGF2ZQoJICB0byBiZSBpbnN0YWxsZWQgaW4gYzpcZ3N0cmVhbWVyXGxpYlw8ZGVidWc+XGdzdHJlYW1lci0kKEdTVEFwaVZlcnNpb24pLAoJICBidXQgY2FuIGJlIGluc3RhbGxlZCBpbgoJICA8cGFyZW50X2ZvbGRlcl9vZl9nc3RyZWFtZXJfbWFpbl9kbGw+XGxpYlw8ZGVidWc+XGdzdHJlYW1lci0kKEdTVEFwaVZlcnNpb24pLAoJICBvciBhcyBwZXIgZ193aW4zMl9nZXRfcGFja2FnZV9pbnN0YWxsYXRpb25fZGlyZWN0b3J5X29mX21vZHVsZSgpIGFsbG93cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTExNQoKMjAxMy0xMC0zMCAxNzowMjozNSAtMDUwMCAgQnJlbmRhbiBMb25nIDxiLmxvbmdAY2FibGVsYWJzLmNvbT4KCgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGdzdDogY2xlYXIgZmxvYXRpbmcgcmVmZXJlbmNlcyBmb3IgR3N0VGFzaywgR3N0VGFza1Bvb2wgYW5kIEdzdENvbGxlY3RQYWRzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTAzNDIKCjIwMTMtMTAtMzAgMTc6MDI6MDIgLTA1MDAgIEJyZW5kYW4gTG9uZyA8Yi5sb25nQGNhYmxlbGFicy5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGRvY3M6IGdzdF9wYWRfbmV3X2Zyb21fKl90ZW1wbGF0ZSBhbmQgZ3N0X2J1ZmZlcl9wb29sX25ldyBjb25zdHJ1Y3RvcnMgcmV0dXJuIGZsb2F0aW5nIHJlZmVyZW5jZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDM0MgoKMjAxNC0wMi0wNSAxMDoxMTo0MyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2NhcHNmaWx0ZXIuYzoKCSAgY2hlY2s6IFJlbW92ZSBhIG1pbm9yIGxlYWsgaW4gdW5pdCB0ZXN0CgkgIE1ha2VzIHZhbGdyaW5kIGhhcHB5CgoyMDE0LTAyLTA0IDIyOjIzOjA2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogRml4IGJ1aWxkIGJ5IHVzaW5nIHRoZSBjb3JyZWN0IEMgZmlsZSBuYW1lCgoyMDE0LTAyLTA0IDIxOjM2OjE4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogQ2xlYW4gdXAgY29kZSBhIGJpdCB0byBiZSBzdWl0YWJsZSBmb3IgdGhlIGRvY3MKCjIwMTQtMDEtMDMgMDc6MjU6MzcgLTA4MDAgIFRvZGQgQWd1bG5pY2sgPHRvZGRAYWd1bG5pY2suY29tPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogUmVwbGFjZSBtYW51YWwncyBlZmZlY3Rzd2l0Y2guYyB3aXRoIG5ld2VyIHRlc3QtZWZmZWN0LXN3aXRjaC5jCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjExMDAKCjIwMTQtMDEtMjkgMTQ6Mzk6MTkgKzAwMDAgIE1hdHRoaWV1IEJvdXJvbiA8bWF0dGhpZXUuYm91cm9uQGNvbGxhYm9yYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICB0ZXN0czogYWRkIGNhcHMgZmVhdHVyZXMgdW5pdCB0ZXN0cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIzMjM2CgoyMDE0LTAyLTA0IDE4OjQyOjAyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogV2hlbiBnZXR0aW5nIGNhcHNmZWF0dXJlcyBhbmQgbm9uZSBhcmUgdGhlcmUsIHN0b3JlIHN5c21lbSBjYXBzZmVhdHVyZXMKCSAgLi4uIGluc3RlYWQgb2YgcmV0dXJuaW5nIGEgcmVmZXJlbmNlIHRvIGEgZ2xvYmFsIGluc3RhbmNlLiBUaGUgY2FsbGVyIG1pZ2h0CgkgIHdhbnQgdG8gY2hhbmdlIHRoZSBnbG9iYWwgaW5zdGFuY2Ugb3RoZXJ3aXNlLCB3aGljaCBjYXVzZXMgZnVubnkgZWZmZWN0cyBsaWtlCgkgIGFsbCBnbG9iYWwgaW5zdGFuY2VzIGJlaW5nIGNoYW5nZWQgYW5kIGF0IHRoZSBzYW1lIHRpbWUgbm90aGluZyBpbiB0aGUgY2FwcwoJICBiZWluZyBjaGFuZ2VkLgoJICBBcyB0aGUgY2FwcyBtaWdodCBiZSBpbW11dGFibGUgd2hpbGUgd2UgZG8gdGhpcyB3ZSBoYXZlIHRvIGRvIHNvbWUgbWFnaWMKCSAgd2l0aCBhdG9taWMgb3BlcmF0aW9ucy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMzIzNgoKMjAxNC0wMi0wNCAxODowMzo0NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IERvbid0IGdldCB1cyBzeXNtZW0gY2Fwc2ZlYXR1cmVzIGlmIHdlIGp1c3QgY2hlY2sgZm9yIGZpeGVkIGNhcHMKCjIwMTQtMDItMDQgMTc6NDg6NTQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkgIGNhcHNmZWF0dXJlczogTWFrZSBzdXJlIHRoYXQgdGhlIHN0YXRpYyBBTlkvRU1QVFkgY2Fwc2ZlYXR1cmVzIGFyZSBuZXZlciBtdXRhYmxlCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIzMjM2CgoyMDE0LTAxLTMxIDA5OjE0OjQxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBkb2NzOiBmaXggbW9yZSBndGstZG9jIHdhcm5pbmdzCgoyMDE0LTAxLTMxIDA4OjM1OjQxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RhbGxvY2F0b3IuaDoKCSAgZG9jczogdW5oaWRlIGRvY3MgZm9yIGFsbG9jYXRvcgoJICBVbmhpbmRlIHRoZSBjbGFzcyBkb2NzLiBUZWNoIGd0ay1kb2MgYWJvdXQgR1NUX0VYUE9SVFMuCgoyMDE0LTAxLTMxIDA4OjA4OjM3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogbW9yZSB0ZXN0cyBhbmQgc21hbGwgZG9jIGZpeGVzCgoyMDE0LTAxLTMwIDIxOjI0OjIxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSAgdG9vbHM6IFN1cHBvcnQgbm9uLUFTQ0lJIHRhZ3MKCSAgQnkgY2FsbGluZyBzZXRsb2NhbGUoKSB0byBnZXQgdXMgbXVsdGktYnl0ZS9VVEYtOCBzdXBwb3J0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIzMTY0CgoyMDE0LTAxLTMwIDAzOjIyOjU2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IHJlc3BlY3QgdGhlICduZWdvdGlhdGlvbi1tb2RlJyBwcm9wZXJ0eQoJICBJZiB0aGUgc2VnbWVudCBldmVudCBpcyBhbGxvd2VkIHRvIGJlIHB1c2hlZCB0byBhbGwgcGFkcyBpdAoJICB3aWxsIGxlYWQgdG8gYW4gYXNzZXJ0aW9uIG9mICdzdGlja3kgZXZlbnQgbWlzb3JkZXJpbmc6CgkgIHNlZ21lbnQgcmVjZWl2ZWQgYmVmb3JlIGNhcHMnIGluIGNhc2UgdGhlIHBhZC1uZWdvdGlhdGlvbi1tb2RlCgkgIGlzIHNldCB0byAnYWN0aXZlJyBvciAnbm9uZScuCgkgIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBieSBtYWtpbmcgYWxsIHN0aWNreSBldmVudHMgZm9sbG93IHRoZQoJICBwcm9wZXJ0eSBsaWtlIHRoZSBjYXBzIGV2ZW50IHRvIHByZXZlbnQgbWlzb3JkZXJpbmcgd2FybmluZ3MuCgkgIFdoZW4gYSBuZXcgcGFkIGlzIGFjdGl2YXRlZCB0aGUgY3VycmVudCBzdGlja3kgZXZlbnRzIG9uIHRoZQoJICBzaW5rcGFkIGFyZSBmb3J3YXJkZWQgdG8gaXQgaW4gdGhlIHByb3BlciBvcmRlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMzI2NgoKMjAxNC0wMS0zMCAxMjo1NDoyMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9vbHN0cmVzcy5jOgoJICBwb29sc3RyZXNzOiBwcmludCBzcGVlZHVwCgoyMDE0LTAxLTMwIDEyOjQyOjAyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogbWlzYyBjbGVhbnVwcwoJICBSZXZpZXcgdGhlIGRvY3VtZW50YXRpb24sIGNvbW1lbnRzIGFuZCBsb2dnaW5nLiBTZXQgdGhlIGluaXRpYWwgc2l6ZSB0byAxNiBhcwoJICB0aGUgc2l6ZSBpcyByb3VuZGVkIHVwIHRvIHRoZSBuZXh0IHBvd2VyIG9mIHR3byBhbnl3YXkuCgoyMDE0LTAxLTMwIDA4OjExOjEyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBhZGQgYSBuZXcgdGVzdHN1aXRlIG9yIHRoZSBwb29sCgkgIFN0YXJ0IHdpdGggc29tZSBiYXNpYyB0ZXN0cy4KCjIwMTQtMDEtMzAgMTI6MjY6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogYXZvaWQgZXhjZXNzaXZlIEdzdFBvbGwgYWN0aXZpdHkKCSAgS2VlcCBhbiBleHRyYSB3cml0ZSByZWYgb24gdGhlIGNvbnRyb2wgc29ja2V0LiBUaGlzIGVuc3VyZXMgdGhhdCB3ZQoJICBhdm9pZCBhIHJlYWQvd3JpdGUgb24gdGhlIHNvY2tldCB3aGVuIGdvaW5nIGZyb20gbm9uLWVtcHR5LT5lbXB0eS0+bm90LWVtcHR5LgoJICBXZSByZW1vdmUgdGhlIHdyaXRlIHJlZiBvbmx5IHdoZW4gd2UgYWN0dWFsbHkgYXJlIGVtcHR5IGFuZCB3ZSBuZWVkIHRvCgkgIHdhaXQgZm9yIGZsdXNoaW5nIG9yIGEgbmV3IGJ1ZmZlci4KCSAgVGhpcyBtYWtlcyB0aGUgYnVmZmVycG9vbCBiZW5jaG1hcmsgYWJvdXQgMzAlIGZhc3RlciB0aGFuIHRoZSBwdXJlCgkgIG1hbGxvYyBpbXBsZW1lbnRhdGlvbi4KCjIwMTQtMDEtMzAgMTI6MjU6MzMgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogaW1wcm92ZSBkZWJ1ZwoJICBBZGQgb2JqZWN0IHBvaW50ZXIgaW4gZGVidWcgbGluZXMuCgoyMDE0LTAxLTMwIDEwOjQzOjM2ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBkNDhiZWQzIHRvIDFhMDdkYTkKCjIwMTQtMDEtMjkgMjI6NDY6NDggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRvYy50eHQ6CgkgIHBhcnQtdG9jOiBlbXBoYXNpemUgdGhhdCB0aGUgbGF0ZXIgY2hhcHRlcnMgYXJlIGRlc2lnbiBkcmFmdCBpZGVhcwoKMjAxNC0wMS0yOSAyMDoyMDo1NiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdG9jLnR4dDoKCSAgcGFydC10b2M6IGFkZCBmb3JtYXQgc3BlY2lmaWMgaW5mb3JtYXRpb24KCjIwMTQtMDEtMjkgMTg6MjE6MzQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvb2xzdHJlc3MuYzoKCSAgcG9vbHN0cmVzczogY29kZSBjbGVhbnVwcwoJICBBZGQgYSBmZXcgY29tbWVudHMuIFRlbGwgaW4gdGhlIHJlc3VsdHMsIHdoaWNoIG51bWJlciBhcmUgZnJvbSB3aGljaCB0ZXN0LgoKMjAxNC0wMS0yOSAxMzoyMDoxOSArMDEwMCAgTmljb2xhIE11cmlubyA8bmljb2xhLm11cmlub0BnbWFpbC5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiB1c2UgcHJpbnQgYXMgZnVuY3Rpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMzIyOQoKMjAxNC0wMS0yOCAxMTo1ODo1MyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jYXBzZmlsdGVyLmM6CgkgIHRlc3RzOiBjYXBzZmlsdGVyOiBhZGQgdGVzdCBmb3IgcGVuZGluZ19ldmVudHMgcHVzaGluZwoJICBtYWtlIHN1cmUgdGhhdCBwZW5kaW5nIGV2ZW50cyBhcmUgcHVzaGVkIHdoZW4gY2FwcyBhcmUgYWxyZWFkeQoJICBzZXQgd2hlbiBhIGJ1ZmZlciBpcyByZWNlaXZlZAoKMjAxNC0wMS0yOCAxMToxMjo1NiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogZG8gbm90IGZvcmdldCB0byBwdXNoIHBlbmRpbmcgZXZlbnRzCgkgIFB1c2ggcGVuZGluZyBldmVudHMgYmVmb3JlIGJ1ZmZlcnMgaWYgY2FwcyBpcyBhbHJlYWR5CgkgIHNldAoKMjAxNC0wMS0yNCAxOToxOTowOCArMDEwMCAgQXJuYXVkIFZyYWMgPGF2cmFjQGZyZWVib3guZnI+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogZG8gbm90IHJlZHVjZSBzaW5nbGUgcXVldWUgYmVsb3cgY3VycmVudCBsZXZlbAoJICBXaGVuIHRoZSBzaW5nbGUgcXVldWUgc2l6ZSB3YXMganVzdCBidW1wZWQgYnkgMSB0byBhbGxvdyBtb3JlIGJ1ZmZlcnMgdG8KCSAgYmUgYWRkZWQsIHRoZSBidWZmZXJzIGxpbWl0IGNvdWxkIGJlIHJlZHVjZWQgdG8gdGhlIGN1cnJlbnQgbGV2ZWwgd2hlbgoJICBzZXR0aW5nIHRoZSBtYXgtc2l6ZS1idWZmZXJzIHByb3BlcnR5LiBUaGlzIHdvdWxkIHJlc3VsdCBpbiBhIHN0YWxsCgkgIHNpbmNlIHRoZSBxdWV1ZSB3b3VsZCBub3QgZ3JvdyBhbnltb3JlIGF0IHRoaXMgcG9pbnQuCgkgIFByZXZlbnQgdGhpcyBieSBub3QgcmVkdWNpbmcgYSBzaW5nbGUgcXVldWUgc2l6ZSBiZWxvdyB0aGUgY3VycmVudAoJICBudW1iZXIgb2YgYnVmZmVycyArIDEuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTI1OTcKCjIwMTQtMDEtMjQgMTM6MjA6NDkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGRvIG5vdCBmb3JnZXQgdG8gY2xlYXIgdGhlIGZvcmNlZF9lb3MgZmxhZwoJICBvdGhlcndpc2UgaXQgd2lsbCBhbHdheXMgdXNlIHRoZSBzZXFudW0gb2YgdGhlIGV2ZW50CgkgIHNlbnQgYnkgdGhlIGFwcGxpY2F0aW9uCgoyMDE0LTAxLTIzIDE1OjUyOjUxIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSAgYmFzZXNyYzogcHJlc2VydmUgc2VxbnVtIG9mIGVvcyBldmVudHMgc2VudCBieSB0aGUgdXNlcgoJICBTdG9yZSB0aGUgZW9zIGV2ZW50IHNlcW51bSBhbmQgdXNlIGl0IHdoZW4gY3JlYXRpbmcgdGhlCgkgIG5ldyBlb3MgZXZlbnQgdG8gYmUgcHVzaGVkIGRvd25zdHJlYW0uIFRvIGtub3cgaWYgdGhlIGVvcwoJICB3YXMgY2F1c2VkIGJ5IHRoZSBlb3MgZXZlbnRzIHJlY2VpdmVkIG9uIHNlbmRfZXZlbnQsIGEKCSAgJ2ZvcmNlZF9lb3MnIGZsYWcgaXMgdXNlZCB0byB1c2UgdGhlIGNvcnJlY3Qgc2VxbnVtIG9uCgkgIHRoZSBldmVudCBwdXNoZWQgZG93bnN0cmVhbS4KCSAgVXNlZnVsIGlmIHRoZSBhcHBsaWNhdGlvbiB3YW50cyB0byBjaGVjayBpZiB0aGUgRU9TIG1lc3NhZ2UKCSAgd2FzIGdlbmVyYXRlZCBmcm9tIGl0cyBvd24gcHVzaGVkIEVPUyBvciBmcm9tIGFub3RoZXIgc291cmNlCgkgIChzdHJlYW0gcmVhbGx5IGZpbmlzaGVkKS4KCSAgQWxzbyBhZGRzIGEgdGVzdCBmb3IgdGhpcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIyNzkxCgoyMDE0LTAxLTIzIDE1OjM0OjI3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc2VxbnVtcy50eHQ6CgkgIGRvY3M6IGRlc2lnbjogYWRkIHBhcnQtc2VxbnVtcwoJICBIb3BlZnVsbHkgY2xhcmlmaWVzIGhvdyBzZXFudW1zIHNob3VsZCBiZSB1c2VkIGFuZCBjb3BpZWQgZnJvbQoJICBldmVudHMgdG8gZXZlbnRzL21lc3NhZ2VzIHdoZW4gdGhvc2UgYXJlIGhhbmRsZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI3OTEKCjIwMTQtMDEtMjQgMDk6Mjg6MDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogQnJlYWsgdGhlIGxvb3AgaW1tZWRpYXRlbHkgaWYgd2UgZm91bmQgYW4gZW1wdHkgcXVldWUKCSAgTm8gbmVlZCB0byBjb250aW51ZSBsb29raW5nIGF0IGFsbCB0aGUgb3RoZXJzCgoyMDE0LTAxLTIzIDE1OjQ3OjIzICswMTAwICBQZXIgeCBKb2hhbnNzb24gPHBlcnhqb2hAYXhpcy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogQWxsb3cgZ3Jvd2luZyBhIHF1ZXVlIGlmIGFsbCBvdGhlciBxdWV1ZXMgYXJlIG5vdCBsaW5rZWQKCSAgSW4gdGhlIGNhc2Ugd2hlcmUgb25lIHNpbmdsZXF1ZXVlIGlzIGZ1bGwgYW5kIGFsbCBvdGhlciBhcmUgbm90IGxpbmtlZCwgdGhlCgkgIGdyb3dpbmcgb2YgdGhlIGZ1bGwgcXVldWUgZG9lcyBub3Qgd29yayBjb3JyZWN0bHkuIFRoZSByZXN1bHQgZGVwZW5kcyBvbiBpZgoJICB0aGUgZnVsbCBxdWV1ZSBpcyBsYXN0IGluIHRoZSBxdWV1ZSBsaXN0IG9yIG5vdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMjg5MQoKMjAxNC0wMS0yMiAxMToxMDowMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBNaW5vciBjb2RlIGNsZWFudXAKCSAgIWNoZWNrX3N0aWNreSgpPT1HU1RfRkxPV19PSyBpcyBhIGJpdCBjb25mdXNpbmcsIGNvbXBhcmVkIHRvCgkgIGNoZWNrX3N0aWNreSgpIT1HU1RfRkxPV19PSy4KCjIwMTQtMDEtMjAgMTU6MjY6NTQgKzAxMDAgIEZhYmlhbiBLaXJzY2ggPGRlckZha2lyQHdlYi5kZT4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgcGFyc2U6IEFkZGl0aW9uYWwgdGVzdHMgZm9yIHBhcnNlcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwMDM0CgoyMDE0LTAxLTE4IDE0OjQ4OjM1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBQcm9wZXJseSBjb3B5IG11dGV4ZXMgYXJvdW5kIHdoZW4gY3JlYXRpbmcgYSBjb3B5IG9mIGEgZmlsdGVyIGl0ZXJhdG9yCgoyMDE0LTAxLTE4IDE0OjM0OjQ1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBBZGQgdW5pdCB0ZXN0cyBmb3IgZmlsdGVyaW5nLCByZWN1cnNpdmUgZmlsdGVyaW5nIGFuZCBsb2NraW5nCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTExMzgKCjIwMTQtMDEtMTggMTQ6NDM6MjAgKzAxMDAgIFN0ZXdhcnQgQnJvZGllIDxzdGV3YXJ0QGVoLm9yZz4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogUHJlc2VydmUgdGhlIG1hc3RlciBsb2NrIHdoZW4gY3JlYXRpbmcgcmVjdXJzaXZlIGl0ZXJhdG9yIGZpbHRlcnMgd2l0aCB0aGUgc2FtZSBsb2NrCgkgIFRoaXMgd2F5IHdlIG1ha2Ugc3VyZSB0aGF0IGEpIHRoZSBsb2NrIGlzIGFsd2F5cyB0YWtlbiB3aGVuIGNoZWNraW5nCgkgIHRoZSBjb29raWUgYW5kIGNhbGxpbmcgdGhlIGl0ZXJhdG9yJ3MgbmV4dCBmdW5jdGlvbnMgYW5kIGIpIGl0IGlzCgkgIG5vdCB0YWtlbiB3aGlsZSBjYWxsaW5nIGFueSBvZiB0aGUgaXRlcmF0b3IgZmlsdGVyIGZ1bmN0aW9ucy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMTEzOAoKMjAxNC0wMS0xNyAyMjo1MzowMSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IHN0aWNreSBldmVudCBsZWFrIGFmdGVyIHN0aWNreV9ldmVudHNfZm9yZWFjaAoJICBldmVudHNfZm9yZWFjaCBhZGRzIGFuIGV4dHJhIHJlZiB3aGVuIGdpdmluZyB0aGUgZXZlbnQgdG8gdGhlCgkgIHVzZXIgZnVuY3Rpb24uIEluIGNhc2UgaXQgd2FzIHVucmVmZWQgYnkgdGhlIHVzZXIsIHRoaXMgZXh0cmEgcmVmCgkgIGRpc2FwcGVhcmVkLCBidXQgZXZlbnRzX2ZvcmVhY2ggc3RpbGwgc2hvdWxkIHVucmVmIGFnYWluIHRvCgkgIGxvc2UgaXRzIG93biByZWYgYmVmb3JlIHJlbW92aW5nIHRoZSBldmVudCBmcm9tIHRoZSBhcnJheS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMjQ2NwoKMjAxNC0wMS0xNiAyMDoxMTowMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogbW92ZSBzb21lIGVudi12YXIgY2hlY2tzIGZyb20gZ3N0IHRvIGdzdGluZm8gYXMgd2VsbAoJICBXZSB3ZXJlIGRvaW5nIHNvbWUgbG9nIHJlbGF0ZWQgaW5pdGlhbGlzYXRpb24gaW4gZ3N0LmMgYWZ0ZXIgY2FsbGluZwoJICBfcHJpdl9nc3RfZGVidWdfaW5pdCgpLiBKdXN0IG1vdmUgaXQgdGhlcmUgZm9yIGNvbnNpc3RlbmN5LgoKMjAxNC0wMS0xNiAxODoxNjozNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBPbmx5IHNldCBjYXBzIG9uIHRoZSBzcmNwYWQgaWYgaXQncyBhY3RpdmF0ZWQgaW4gcHVzaCBtb2RlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjIyODkKCjIwMTQtMDEtMTYgMTI6Mjg6NDcgKzAxMDAgIEZhYmlhbiBLaXJzY2ggPGRlckZha2lyQHdlYi5kZT4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBTb21lIG1pbm9yIGZpeGVzCgkgIEZpeCBkZXN0cnVjdG9yIHNlZ2ZhdWx0aW5nCgkgIEV4cGVjdCAwIGdyYW1tYXItYW1iaWd1aXRpZXMKCSAgRml4IG9yZGVyIG9mIGJpbi1wcm9wZXJ0aWVzIGFzc2lnbm1lbnQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDAzNAoKMjAxNC0wMS0xNSAxOToyODowMSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogcmVtb3ZpbmcgZHVwbGljYXRlIGZpZWxkIHBvc2l0aW9uCgkgIEl0IGlzIGFscmVhZHkgc3RvcmVkIGluc2lkZSB0aGUgR3N0U2VnbWVudCBzdHJ1Y3QgYW5kCgkgIHdhcyBvbmx5IGR1cGxpY2F0aW5nIGluZm9ybWF0aW9uLiBBbHNvIHJlbW92ZWQgc29tZQoJICB3ZWlyZCBwb3NpdG9uIGlmL2Vsc2UgdGhhdCB3b3VsZCBwb3NzaWJseSBjaGFuZ2UgdGhlCgkgIHNlZ21lbnQgdGhhdCB3YXMgZ29pbmcgdG8gYmUgcHVzaGVkIGRvd25zdHJlYW0KCjIwMTQtMDEtMTUgMDA6MTI6MjYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHByZXZlbnQgYnVmZmVyaW5nIGZvcmV2ZXIgd2l0aCBwbGF5YmluCgkgIFdoZW4gcHJlcm9sbGluZy9idWZmZXJpbmcsIG11bHRpcXVldWUgaGFzIGl0cyBidWZmZXJzIGxpbWl0IHNldAoJICB0byAwLCB0aGlzIG1lYW5zIGl0IGNhbiB0YWtlIGFuIGluZmluaXRlIGFtb3VudCBvZiBidWZmZXJzLgoJICBXaGVuIHByZXJvbGxpbmcvYnVmZmVyaW5nIGZpbmlzaGVzLCBpdHMgbGltaXQgaXMgc2V0IGJhY2sgdG8gNSwgYnV0CgkgIG9ubHkgaWYgdGhlIGN1cnJlbnQgbGV2ZWwgaXMgbG93ZXIgdGhhbiA1LiBJdCBzaG91bGQgKGFsbW9zdCkgbmV2ZXIgYmUKCSAgYW5kIHRoaXMgd2lsbCBjYXVzZSBwcmVyb2xsaW5nL2J1ZmZlcmluZyB0byBuZWVkIHRvIHdhaXQgdG8gcmVhY2ggdGhlCgkgIGhhcmQgYnl0ZXMgYW5kIHRpbWUgbGltaXRzLCB3aGljaCBhcmUgbXVjaCBoaWdoZXIuCgkgIFRoaXMgY2FuIGxlYWQgdG8gYSB2ZXJ5IGxvbmcgc3RhcnR1cCB0aW1lLiBUaGlzIHBhdGNoIGZpeGVzIHRoaXMKCSAgYnkgc2V0dGluZyB0aGUgc2luZ2xlIHF1ZXVlcyB0byB0aGUgbWF4KGN1cnJlbnQsIG5ld192YWx1ZSkgaW5zdGVhZAoJICBvZiBzaW1wbHkgaWdub3JpbmcgdGhlIG5ldyB2YWx1ZSBhbmQgbGV0dGluZyBpdCBhcyBpbmZpbml0ZSgwKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEyNTk3CgoyMDE0LTAxLTE1IDExOjEyOjA4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogZ3N0X3NlZ21lbnRfb2Zmc2V0X3J1bm5pbmdfdGltZSgpIHdpbGwgYmUgYXZhaWxhYmxlIGluIDEuMi4zCgoyMDE0LTAxLTE0IDE2OjE1OjIxIC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2M6IFVwZGF0ZSBzZWN0aW9ucyB3aXRoIHRoZSBuZXcgcm91bmRpbmcgbWFjcm9zCgoyMDE0LTAxLTE0IDE2OjE1OjAyIC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbDogQWRkIEdTVF9ST1VORF9VUF9OIGFuZCBHU1RfUk9VTkRfRE9XTl9OCgkgIFRoZXNlIGFyZSBnZW5lcmljIHJvdW5kaW5nIG1hY3JvIHRoYXQgd29ya3MgZm9yIGFueSBwb3dlciBvZiB0d28uCgoyMDE0LTAxLTE0IDE2OjQ3OjM4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkgIHRlZTogQWRkIHVuaXQgdGVzdCBmb3IgcmVxdWVzdGluZyBwYWQgbmFtZXMKCjIwMTQtMDEtMTQgMTY6NDU6NTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJICB0ZWU6IE1ha2Ugc3VyZSB0byBnaXZlIHBhZHMgdGhlIG5hbWUgdGhhdCB3YXMgcmVxdWVzdGVkCgkgIEFsc28gY2hlY2sgZm9yIHVuaXF1ZW5lc3MgYW5kIG1ha2Ugc3VyZSB3ZSBjcmVhdGUgYSBuZXcKCSAgcGFkIGluZGV4IHByb3Blcmx5IGlmIHNvbWUgd2VyZSByZXF1ZXN0ZWQgd2l0aCBuYW1lcyBidXQKCSAgdGhlIG5ldyBvbmUgaXMgbm90LgoKMjAxNC0wMS0xNCAxNTo1MjoyNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBNYWtlIHN1cmUgdG8gY3JlYXRlIGFuZCBsaW5rIGNoYWlucyBpbiB0aGUgb3JkZXIgYXMgd3JpdHRlbgoJICBNYWtlIHRoaXMgd29yayBhZ2FpbjoKCSAgYXVkaW90ZXN0c3JjICEgdGVlIG5hbWU9dCAgdC5zcmNfMCAhIHF1ZXVlICEgZmFrZXNpbmsgIHQuc3JjXzEgISBxdWV1ZSAhIGZha2VzaW5rCgkgIGFuZCB0aGlzIGZhaWwgYWdhaW46CgkgIGF1ZGlvdGVzdHNyYyAhIHRlZSBuYW1lPXQgIHQuc3JjXzEgISBxdWV1ZSAhIGZha2VzaW5rICB0LnNyY18wICEgcXVldWUgISBmYWtlc2luawoJICBhcyB0ZWUganVzdCBjb3VudHMgaXRzZWxmIGFuZCBkb2VzIG5vdCBjYXJlIGFib3V0IHRoZSBwYWQgbmFtZXMgd2UgcmVxdWVzdAoJICBmcm9tIGl0LgoKMjAxNC0wMS0xNCAxMzo0NTozNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBSZW1vdmUgc29tZSBDOTktc3R5bGUgY29tbWVudHMKCjIwMTQtMDEtMTQgMTM6NDQ6MTEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcGFyc2UvdHlwZXMuaDoKCSAgcGFyc2U6IFVzZSBHU2xpY2UgZm9yIGFsbG9jYXRpbmcgYW5kIGZyZWVpbmcgbGlua3MgYW5kIGNoYWlucwoKMjAxNC0wMS0xNCAxMzo0MjoyMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9wYXJzZS90eXBlcy5oOgoJICBwYXJzZTogQWRkIGNvbW1lbnQgYWJvdXQgd2h5IHdlIGRpc2FibGUgdGhlICJ0cmFjaW5nIgoJICBJdCBkaWQgbm90IHByaW50IGFueXRoaW5nIHVzZWZ1bCBiZWZvcmUgYW55d2F5LCBldmVyeXRoaW5nCgkgIHdhcyBjb21tZW50ZWQgb3V0LgoJICBBbHNvIHJlbW92ZSBzb21lIHVubmVlZGVkIHN0cnVjdCBtZW1iZXJzLgoKMjAxNC0wMS0xNCAxMzozNjoyNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgcGFyc2UtbGF1bmNoOiBBZGQgc29tZSBtb3JlIGZhaWxpbmcgcGlwZWxpbmVzCgkgIEFsc28gY29udmVydCBzb21lIGNvbW1lbnRzIGFib3V0IHZhbGdyaW5kIHdhcm5pbmdzIHRvCgkgIEZJWE1FIGNvbW1lbnRzLiBUaGVzZSB3ZXJlIGxlYWtpbmcgc2luY2Ugc29tZSB0aW1lIGFscmVhZHkuCgoyMDE0LTAxLTEwIDIxOjEwOjE3ICswMTAwICBGYWJpYW4gS2lyc2NoIDxkZXJGYWtpckB3ZWIuZGU+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJKiBnc3QvcGFyc2UvcGFyc2UubDoKCSogZ3N0L3BhcnNlL3R5cGVzLmg6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgcGFyc2U6IFJlZmFjdG9yIGdyYW1tYXIsIG1ha2UgaXQgbW9yZSBjb25zaXN0ZW50IGFuZCBmaXggY29uZmxpY3RzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTAwMzQKCjIwMTQtMDEtMTMgMjA6NDg6MzIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkgIGRvY3M6IGVuc3VyZSBHc3RCdWZmZXJQb29scyBzaG93cyB1cCBhcyB3aXRoIEdPYmplY3QgZmVhdHVyZXMKCSAgR3N0QnVmZmVyUG9vbCBpcyBhIEdzdE9iamVjdCwgYWRkIHRoZSBfZ2V0X3R5cGUgZnVuY3Rpb24gdG8gdGhlIHR5cGVzIGZpbGUuCgoyMDE0LTAxLTEzIDA4OjM3OjM3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXBhcnNlLmM6CgkgIHRlc3RzOiBiYXNlcGFyc2U6IGFkZCB0ZXN0IGZvciByZXZlcnNlIHBsYXliYWNrIG9uIHBhc3N0aHJvdWdoCgkgIEJhc2VwYXJzZSBzdG9yZXMgYnVmZmVycyBmb3IgcmV2ZXJzZSBwbGF5YmFjayB0byBwdXNoIG9uIHRoZSBuZXh0CgkgIERJU0NPTlQsIHRoZSBpc3N1ZSB3YXMgdGhhdCBpdCB3b3VsZG4ndCBldmVyIGNoZWNrIGZvciBhIGRpc2NvbnQKCSAgb24gcGFzc3Rocm91Z2ggbW9kZSBhcyBpdCBza2lwcyBhbGwgcmVhbCBwYXJzaW5nLiBUaGlzIHRlc3QKCSAgd2FzIGNyZWF0ZSB0byB2ZXJpZnkgdGhpcyBpc3N1ZSBhbmQgcHJldmVudCBpdCBmcm9tIGhhcHBlbmluZyBhZ2FpbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxOTQxCgoyMDE0LTAxLTExIDEwOjQ5OjE3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXBhcnNlLmM6CgkgIHRlc3RzOiBiYXNlcGFyc2U6IGFkZCBiYXNpYyB0ZXN0IGZvciBiYXNlcGFyc2UKCSAgSnVzdCBhIHNtYWxsIHRlc3QgdG8gY2hlY2sgdGhhdCBiYXNpYyBwbGF5YmFjayB3b3JrcwoKMjAxNC0wMS0xMCAwOToxMDowNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGRvIG5vdCBhY2N1bXVsYXRlIGJ1ZmZlcnMgb24gcGFzc3Rocm91Z2ggbW9kZQoJICBJZiBvbiBwYXNzdGhyb3VnaCBkdXJpbmcgcmV2ZXJzZSBwbGF5YmFjaywgZG8gbm90IGFjY3VtdWxhdGUgYnVmZmVycyBhcwoJICBiYXNlcGFyc2Ugd2lsbCBuZXZlciBjaGVjayBmb3IgRElTQ09OVCBmbGFnIHRvIHB1c2ggdGhvc2UgYnVmZmVycy4KCSAgU28ganVzdCBwdXNoIGJ1ZmZlcnMgZG93bnN0cmVhbSBhcyBpZiBpdCB3YXMgZm9yd2FyZCBwbGF5YmFjay4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMTk0MQoKMjAxNC0wMS0wNiAyMTo0NzoyMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBkb24ndCBjb25mdXNlIEdTVF9QQURfTU9ERV9OT05FIGFuZCBQVUxMCgkgIFVzZSBhIHN3aXRjaC1jYXNlIHRvIGV4cGxpY2l0bHkgaGFuZGxlIGFsbCBwYWQtbW9kZXMuIFRoaXMgd2F5IHdlIGRvbid0IGxvZyBhbiBlcnJvciB3aGVuIHRoZSBwYWQgaXMgbm90IHlldCBhY3RpdmF0ZWQuCgoyMDE0LTAxLTA5IDA3OjU2OjU1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IGFkZCBGSVhNRSBhbmQgZG9jcyBmb3IgdGhlIGRpc2FibGVkIG5vdGlmeSBvbiBwYXJlbnQKCSAgV2UgaGF2ZW4ndCBmb3VuZCBhIHdheSB0byByZS1lbmFibGUgZW1pdHRpbmcgbm90aWZ5IGFuZCBkZWVwLW5vdGlmeSBmb3IgcGFyZW50CgkgIGNoYW5nZXMuIEFkZCBhIEZJWE1FLTIuMCBhbmQgYSBkb2MgYmxvYiBvbiB0aGUgcHJvcGVydHkuIFNlZSAjNjkzMjgxLgoKMjAxNC0wMS0wOCAxNjoyODo1NCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGRvIG5vdCBpZ25vcmUgVElNRSBzZWdtZW50cwoJICBUSU1FIHNlZ21lbnRzIGFyZSBiZWluZyBpZ25vcmVkIGFuZCBhIHN0YW5kYXJkIGluaXRpYWxpemVkCgkgIHNlZ21lbnQgaXMgdXNlZCBpbnN0ZWFkLiBUaGlzIGNhdXNlcyBpc3N1ZXMgYXMgbm90IHByb3Blcmx5IGRldGVjdGluZwoJICByZXZlcnNlIHBsYXliYWNrIG9yIG5vdCBjbGlwaW5nIG91dHB1dCBiYXNlZCBvbiB0aGUgc2VnbWVudC4KCSAgVGhpcyBzZWVtcyB0byBiZSBhIHJlZ3Jlc3Npb24gZnJvbSBvbmUgb2YgdGhlIEdzdFNlZ21lbnQvR3N0RXZlbnQKCSAgcmVkZXNpZ25zIG9uIHRoZSAwLjEwIC0+IDEuMCB0cmFuc2l0aW9uCgoyMDE0LTAxLTA4IDE1OjQ3OjEwICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIHRlc3RzOiBpbXByb3ZlIGNoZWNrLCBhbHNvIGNoZWNrIHN0cmVhbS10aW1lCgoyMDE0LTAxLTA4IDE1OjMxOjI4ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIHRlc3RzOiBhZGQgdW5pdCB0ZXN0IGZvciBzZWdtZW50IF9vZmZzZXRfcnVubmluZ190aW1lKCkKCSAgQWRkIGEgdW5pdCB0ZXN0IHRvIGNoZWNrIHRoYXQgcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIG9mZnNldHMgYXJlIGFwcGxpZWQKCSAgY29ycmVjdGx5IGluIHZhcmlvdXMgY2FzZXMuCgoyMDE0LTAxLTA4IDE1OjIzOjAwICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IHRha2Ugb2Zmc2V0IGludG8gYWNjb3VudCBpbiBfdG9fcG9zaXRpb24oKQoJICBUYWtlIHRoZSBvZmZzZXQgaW50byBhY2NvdW50IHdoZW4gY29udmVydGluZyBiZXR3ZWVuIHJ1bm5pbmctdGltZSBhbmQKCSAgc2VnbWVudCBwb3NpdGlvbnMuCgoyMDE0LTAxLTA4IDE0OjU3OjA0ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiB1c2UgbmV3IHNlZ21lbnQgb2Zmc2V0IG1ldGhvZCB0byBhcHBseSB0aGUgb2Zmc2V0CgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjE0MjIKCjIwMTQtMDEtMDggMTQ6NTQ6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHNlZ21lbnQ6IGFkZCBtZXRob2QgdG8gb2Zmc2V0IHRoZSBzZWdtZW50IHJ1bm5pbmctdGltZQoJICBBZGQgYSBtZXRob2QgdGhhdCBjYW4gYXBwbHkgYW4gb2Zmc2V0IHRvIHRoZSBjYWxjdWxhdGVkIHJ1bm5pbmctdGltZSBvZgoJICBhIHNlZ21lbnQuCgoyMDE0LTAxLTA4IDE0OjUyOjA0ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IHRha2Ugb2Zmc2V0IGludG8gYWNjb3VudCBmb3IgZXhwZWN0ZWQgc2VnbWVudCBwb3NpdGlvbgoJICBUaGUgZmlydCB2YWxpZCBzZWdtZW50IHBvc2l0aW9uIGlzIHN0YXJ0ICsgb2Zmc2V0LgoJICBBbHNvIGFkZCBzb21lIG1vcmUgZGVidWcgYW5kIGEgRklYTUUKCjIwMTQtMDEtMDggMTQ6NTA6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogZGVidWcgc2VnbWVudCBvZmZzZXQgZmllbGQgYXMgd2VsbAoKMjAxNC0wMS0wOCAwOTo1MzowOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBBbGxvdyBncm93aW5nIGEgcXVldWUgaWYgYWxsIG90aGVyIHF1ZXVlcyBhcmUgbm90IGxpbmtlZAoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxOTg5MwoKMjAxNC0wMS0wNyAxNjoxODozNyArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogZG9uJ3QgdHJ5IHRvIHNlZWsgdG8gLTEgb2Zmc2V0CgkgIFRoZSBvZmZzZXQgY2FuIGJlIC0xIHdoZW4gd2UgYXJlIGNvbmZpZ3VyZWQgaW4gVElNRSBmb3JtYXQuIEluc3RlYWQgb2YKCSAgZmFpbGluZyB0aGUgc2VlayBhbmQgZXJyb3JpbmcsIGRvIHdoYXQgYW5kIG9mZnNldCBvZiAtMSBpcyBzdXBwb3NlZCB0bwoJICBkbyBhbmQgc2ltcGx5IHJlYWQgZnJvbSB0aGUgY3VycmVudCBvZmZzZXQuCgoyMDE0LTAxLTA2IDIxOjA0OjMyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGRlbW90ZSBlcnJvciB0byB3YXJuaW5nCgkgIFRoaXMgaXMgbm90IGFuIGVycm9yLiBBIHN1YmNsYXNzIHJldHVybmluZyBGQUxTRSBmb3IgaXNfc2Vla2FibGUoKSBpcyBvbmUgd2F5IG9mCgkgIHNheWluZyB0aGF0IHdlIGNhbid0IG9wZXJhdGUgaW4gcHVsbCBtb2RlLgoKMjAxNC0wMS0wMyAxMTo0NzoyMyArMDgwMCAgWWFucGluZ1poYW5nIDx6aGFuZ3lhbnBpbmcyMTBAMTYzLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBGaXggaGFuZ2luZyBpZiBzaHV0IGRvd24gd2hpbGUgaGFuZGxpbmcgYSBzZXJpYWxpemVkIHF1ZXJ5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjEyNTMKCjIwMTQtMDEtMDIgMTY6MjI6MzcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZW1vdmUgcGVuZGluZ19zZWdtZW50IGFzIGl0IHdhcyBiZWluZyBtaXN1c2VkCgkgIEl0IHdhc24ndCByZXF1aXJlZCwgaW5zdGVhZCBiYXNlcGFyc2Ugd2FzIHVzaW5nIGl0IHRvIGNoZWNrIHRoZSBtZWRpYQoJICBjYXBzIHRvIGlkZW50aWZ5IGlmIGl0IHdhcyBoYW5kbGluZyBhdWRpbyBvciB2aWRlby4KCSAgVGhlIHBlbmRpbmdfc2VnbWVudCB3YXMgcmVtb3ZlZCBhbmQgYSBjaGVja2VkX21lZGlhIGJvb2xlYW4KCSAgcmVwbGFjZWQgaXQgZm9yIGEgbW9yZSBhY2N1cmF0ZSBuYW1pbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjEzNTAKCjIwMTQtMDEtMDIgMTM6NDM6NTQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwdXNoIHBlbmRpbmcgZXZlbnRzIGJlZm9yZSBHQVAgZXZlbnQKCSAgQSBHQVAgZXZlbnQgaXMgaGFuZGxlZCBhcyBhbiBlbXB0eSBidWZmZXIgYnkgc2lua3MgYW5kIHRoZXkgZXhwZWN0CgkgIHRvIHJlY2VpdmUgc3RhcnQgdXAgZXZlbnRzIGJlZm9yZSBHQVAgZXZlbnRzIChsaWtlIGEgc2VnbWVudCkuCgkgIFRoaXMgaXMgaW1wb3J0YW50IHNwZWNpYWxseSBpZiB0aGVyZSBpcyBhIEdBUCBhdCB0aGUgYmVnaW5uaW5nIG9mCgkgIGEgc3RyZWFtIChiZWZvcmUgYW55IGJ1ZmZlcnMpIHNvIHRoYXQgdGhlIHNlZ21lbnQgZXZlbnQgY2FuIGJlCgkgIHB1c2hlZCBkb3duc3RyZWFtIGJlZm9yZSB0aGUgR0FQCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjEzNTAKCjIwMTQtMDEtMDIgMTM6NDE6MjUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZWZhY3RvciBwZW5kaW5nIGV2ZW50cyBwdXNoaW5nCgkgIFJlZmFjdG9yIGNvZGUgcmVwZWF0ZWQgMyB0aW1lcyB0byBhIGNvbW1vbiBmdW5jdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxMzUwCgoyMDE0LTAxLTAyIDIwOjE3OjU4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC10b2MudHh0OgoJICBkZXNpZ24vcGFydC10b2MudHh0OiB1cGRhdGUgZGVzaWduIGRvY3MKCjIwMTQtMDEtMDIgMTM6MzQ6NTIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogQWRkIHVuaXQgdGVzdCBmb3IgYWRkaW5nL3JlbW92aW5nIGJsb2NraW5nIHByb2JlcyB3aGlsZSBhIHBhZCBpcyBibG9ja2VkCgkgIEFuZCBtYWtlIHN1cmUgdGhhdCB0aGVzZSBuZXcgcHJvYmVzIGFyZSBhY3R1YWxseSBjYWxsZWQgaWYgdGhleSBzaG91bGQKCSAgaW5zdGVhZCBvZiBzaWxlbnRseSBibG9ja2luZyB0aGUgcGFkIGZvcmV2ZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjEyODkKCjIwMTQtMDEtMDIgMTM6MzM6MjAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogQ2hlY2sgaWYgbmV3IHByb2JlcyBuZWVkIHRvIGJlIGNhbGxlZCB3aGVuIGFkZGluZy9yZW1vdmluZyBzb21lCgkgIFRoaXMgYWxsb3dzIGJsb2NraW5nIGEgcGFkLCBhZGQgYSBuZXcgYmxvY2tpbmcgcHJvYmUsIHJlbW92aW5nCgkgIHRoZSBmaXJzdCBwcm9iZSBhbmQgdGhlbiBoYXZpbmcgdGhlIHNlY29uZCBwcm9iZSBjYWxsZWQuIFdoaWNoCgkgIGNvdWxkIHRoZW4gZGVjaWRlIHRoYXQgZGF0YS1mbG93IHNob3VsZCBhY3R1YWxseSBjb250aW51ZQoJICBpbnN0ZWFkIG9mIGJsb2NraW5nIG5vdy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMTI4OQoKMjAxNC0wMS0wMiAxMToxMzoyNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkgIHRlZTogUmVtb3ZlIGR5biBsb2NrCgkgIEl0IHdhcyB1c2VkIGZvciBwYWQtYWxsb2MgaW4gMC4xMCBidXQgY3VycmVudGx5IGlzIGNvbXBsZXRlbHkgdW51c2VkCgkgIGFuZCBub3QgbmVjZXNzYXJ5LiBBbGwgcGFkIGFjY2VzcyBpcyBwcm90ZWN0ZWQgYnkgdGhlIHRlZSBvYmplY3QgbG9jawoJICBhbmQga2VlcGluZyBhbm90aGVyIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBwYWQuCgoyMDE0LTAxLTAyIDExOjA5OjU5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBLZWVwIGFub3RoZXIgcmVmIHRvIG91ciBvbmUgYW5kIG9ubHkgc3JjcGFkIGFyb3VuZCB3aGlsZSBwdXNoaW5nCgkgIEEgcGFkIHByb2JlIG9uIHRoYXQgcGFkIG1pZ2h0IG90aGVyd2lzZSBqdXN0IHJlbGVhc2UgdGhlIHBhZCwgZHJvcAoJICB0aGUgbGFzdCByZWZlcmVuY2UgYW5kIGNhdXNlIGdyZWF0IG1pc2VyeS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMTMwMAoKMjAxMy0xMi0zMCAxOTowMzoyMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBLZWVwIGFuIGV4dHJhIHJlZiBvZiB0aGUgcGFkIHdoZW4gY2FsbGluZyBhbiBJRExFIHByb2JlIGltbWVkaWF0ZWx5CgkgIFRoZSBjYWxsYmFjayBtaWdodCBkZXN0cm95IHRoZSBwYWQuCgoyMDEzLTEyLTMwIDE4OjQ0OjI0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IE9ubHkgY2FsbCBJRExFIHByb2JlcyBpZiB3ZSBhcmUgYWN0dWFsbHkgaWRsZQoJICBBbHNvIG9ubHkgY2hlY2sgdGhlIGRhdGEgdHlwZXMgZm9yIG5vbi1JRExFIHByb2Jlcy4gV2hlbiB3ZQoJICBhcmUgaWRsZSwgd2UgaGF2ZSBubyBkYXRhIHR5cGUgb2J2aW91c2x5LgoJICBQcmV2aW91c2x5IHdlIHdlcmUgY2FsbGluZyBJRExFIHByb2JlcyBkdXJpbmcgZGF0YSBmbG93IHdoZW5ldmVyCgkgIGEgbm9uLWJsb2NraW5nIHByb2JlIHdvdWxkIGJlIGNhbGxlZC4gVGhlIHBhZCB3YXMgdXN1YWxseSBub3QgaWRsZQoJICBhdCB0aGF0IHRpbWUuCgoyMDEzLTEyLTMwIDE2OjEwOjA4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBuZXR0aW1lcHJvdmlkZXI6IHJlbW92ZSB1bm5lY2Vzc2FyeSBOVUxMIGNoZWNrCgkgIEVycm9yIGlzIG5ldmVyIE5VTEwgd2hlbiB3ZSBicmVhayBvdXQgb2YgdGhlIGxvb3AuCgkgIENPVkVSSVRZIENJRCAxMDM3MTUxCgoyMDEzLTEyLTMwIDE2OjA1OjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBSZXZlcnQgIm5ldHRpbWVwcm92aWRlcjogUmVtb3ZlIGRlYWQgY29kZSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA5NjQ5Y2Q0Y2ExOWE3NWQwMzE5MTE3YTc3YTc2MDllNGI4Yzk2NTMzLgoJICBUaGlzIGlzIG5vdCByaWdodCwgYW5kIGl0J3MgYWxzbyBub3Qgd2hhdCBjb3Zlcml0eQoJICBpcyBjb21wbGFpbmluZyBhYm91dC4KCjIwMTMtMTItMzAgMTY6NDc6MzIgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBSZW1vdmUgdW5uZWVkZWQgY2hlY2tzCgkgIGl0ZW0gaXMgZ3VhcmFudGVlZCB0byBiZSBub24tbnVsbC4KCSAgQ09WRVJJVFkgQ0lEIDEwMzcxNTIKCSAgQ09WRVJJVFkgQ0lEIDEwMzcxNTMKCjIwMTMtMTItMzAgMTY6MzQ6MDggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIG5ldHRpbWVwcm92aWRlcjogUmVtb3ZlIGRlYWQgY29kZQoJICBlcnIgaXMgYWx3YXlzIE5VTEwgYnkgdGhlIHBvaW50IHdlIHJlYWNoIHRoaXMgbGluZQoJICBDT1ZFUklUWSBDSUQgMTAzNzE1MQoKMjAxMy0xMi0zMCAxNDo0NzoxOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IGZpeCBzaW5jZSBtYXJrZXIgYWdhaW4gKDEuMyAtPiAxLjQpCgkgIFNpbmNlIG1hcmtlcnMgc2hvdWxkIHBvaW50IHRvIHRoZSBhcHByb3ByaWF0ZSBzdGFibGUgdmVyc2lvbi4KCjIwMTMtMTItMzAgMTQ6NDA6NDAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBmaXggc2luY2UtbWFya2VyIGluIGRvY3MgKHdlJ3JlIGluIDEuMy5YKQoKMjAxMy0xMi0zMCAxNDoyMjozNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IGFkZCBhIHRhZyBmb3IgbWlkaSBiYXNlIG5vdGUgbnVtYmVycwoJICBBdWRpbyBmaWxlcyBjb250YWluaW5nIHNhbXBsZWQgaW5zdHJ1bWVudHMgY2FuIGhhdmUgbWV0YWRhdGEgZGVzY3JpYmluZyB0aGUgbm90ZQoJICB0aGF0IHdhcyBwbGF5ZWQgb24gdGhlIGluc3RydW1lbnQuCgoyMDEzLTEyLTMwIDEwOjAxOjM5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IERvbid0IGlnbm9yZSBwcm9iZSBjYWxsYmFjayByZXR1cm4gdmFsdWUgd2hlbiBpbW1lZGlhdGVseSBjYWxsaW5nIElETEUgcHJvYmUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMTA5NgoKMjAxMy0xMi0yOSAxNDowNjo1NSArMDAwMCAgUGVkcm8gQ8O0cnRlLVJlYWwgPHBlZHJvQHBlZHJvY3IubmV0PgoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJICBzY3JpcHRzOiBnaXQtdXBkYXRlLnNoOiBmaXggZm9yIG5vbi1tYXN0ZXIgYnJhbmNoZXMKCSAgUHVsbCBmcm9tIHRyYWNraW5nIGJyYW5jaCBpbnN0ZWFkIG9mIG9yaWdpbi9tYXN0ZXIsIHNvCgkgIHRoYXQgdGhpcyB3b3JrcyB3aXRoIGUuZy4gMS4yIGFzIHdlbGwuCgoyMDEzLTEyLTI3IDEyOjU1OjAyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJKiBnc3QvcGFyc2UvcGFyc2UubDoKCSAgcGFyc2U6IFVzZSBHTGliIG1hbGxvYy9mcmVlL3JlYWxsb2MgZnVuY3Rpb25zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjAxMDAKCjIwMTMtMTItMjYgMTI6MTY6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBzY3JpcHRzL2NyZWF0ZS11bmluc3RhbGxlZC1zZXR1cC5zaDoKCSAgc2NyaXB0czogY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwOiByZS11c2UgZXhpc3RpbmcgbWFzdGVyIGJyYW5jaCBpZiBpdCBleGlzdHMKCSAgV2hlbiBjcmVhdGluZyBzZXBhcmF0ZSBjaGVja291dCBmb3Igbm9uLW1hc3RlciBicmFuY2hlcy4KCjIwMTMtMTItMjYgMTE6Mzk6MjcgKzAxMDAgIEVyaWsgQW5kcmVzZW4gPGVyaWtAdm9udGFlbmUuZGU+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgZG9jczogZml4IG1lbW9yeSBsZWFrIG9mIGFwcHNpbmsgZXhhbXBsZSBpbiBtYW51YWwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMTA3NgoKMjAxMy0xMi0yMiAyMjozMzoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZGJlZGFhMCB0byBkNDhiZWQzCgoyMDEzLTEyLTIyIDIyOjA0OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSBmb3Igc3RyaW5nIGNoYW5nZXMKCjIwMTMtMTItMjIgMjE6NTY6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwby9NYWtldmFyczoKCSAgcG86IHNldCBnZXR0ZXh0IGRvbWFpbiBpbiBNYWtldmFycyBzbyB3ZSBkb24ndCBoYXZlIHRvIHBhdGNoIHRoZSBnZW5lcmF0ZWQgTWFrZWZpbGUuaW4uaW4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTQ1NQoKMjAxMy0xMi0yMCAxNDo0MTowNiArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IEFkZCByb3VuZCBkb3duIDEyOCBtYWNybyBmb3IgY29tcGxldGVuZXNzCgoyMDEzLTExLTEzIDE3OjA2OjIzIC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IEFkZCByb3VuZCB1cCAxMjggbWFjcm8KCjIwMTMtMTItMjAgMTQ6MzA6MjIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IFNldHRpbmcgdGhlIFBST1hZX0NBUFMgZmxhZyBvbiB0aGUgc3JjcGFkIGRvZXMgbm90IG1ha2UgbXVjaCBzZW5zZQoJICBmdW5uZWwgb3V0cHV0cyB3aGF0ZXZlciBvbmUgb2YgdGhlIHVwc3RyZWFtcyBjdXJyZW50bHkgb3V0cHV0cywgYSBjYXBzCgkgIHF1ZXJ5IHRvIGEgcmFuZG9tIHVwc3RyZWFtIGRvZXMgbm90IGdpdmUgdGhlIHJpZ2h0IGFuc3dlciBoZXJlLgoKMjAxMy0xMi0yMCAxMTozNzo1MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogUHJveHkgQ0FQUyBhbmQgQUxMT0NBVElPTiBxdWVyaWVzCgoyMDEzLTExLTE4IDEwOjQ2OjAwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBwb3N0IDEwMCUgYnVmZmVyaW5nIGlmIHNpbmdsZSBxdWV1ZSBpcyBub3QgbGlua2VkCgkgIFRoaXMgbWFrZXMgYnVmZmVyaW5nIHN0b3AgaW4gY2FzZSBhIHN0cmVhbSBzd2l0Y2ggaGFwcGVucy4gVGhpcyBpcwoJICBpbXBvcnRhbnQgZm9yIGFkYXB0aXZlIHN0cmVhbXMgdGhhdCBjYW4gZGlzYWJsZSBub3QtbGlua2VkIHN0cmVhbXMKCSAgdG8gYXZvaWQgY29uc3VtaW5nIHRoZSBuZXR3b3JrIGJhbmR3aWR0aC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxOTU3NQoKMjAxMy0xMi0xOCAwNToxOTo0NiAtMDUwMCAgV2lsbGlhbSBKb24gTWNDYW5uIDx3aWxsaWFtLmpvbi5tY2Nhbm5AZ21haWwuY29tPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOgoJICBkb2NzOiBmaXggcHJvamVjdCBsaW5rcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIwNjY1CgoyMDEzLTEyLTEwIDE1OjUzOjU0ICswMTAwICBEYXZpZCBTdmVuc3NvbiBGb3JzIDxkYXZpZHNmQGF4aXMuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHVzZSBzZWdtZW50IHN0YXJ0IGlmIERUUyBmb3IgZmlyc3QgYnVmZmVyIGlzIHVuc2V0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjAxOTkKCjIwMTMtMTItMTIgMTc6MTc6NDAgKzAwMDAgIE1hdHRoaWV1IEJvdXJvbiA8bWF0dGhpZXUuYm91cm9uQGNvbGxhYm9yYS5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgZ3N0cmVhbWVyLXZhYXBpIHBhdGhzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjAzMzcKCjIwMTMtMTItMTQgMjE6MjA6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9saWJzL2JpdHJlYWRlci1ub2lubGluZS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXItbm9pbmxpbmUuYzoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRld3JpdGVyLW5vaW5saW5lLmM6CgkgIHRlc3RzOiBhZGQgdW5pdCB0ZXN0IGZvciBiaXRyZWFkZXIsIGJ5dGVyZWFkZXIgYW5kIGJ5dGV3cml0ZXIgd2l0aCBubyBpbmxpbmluZyB1c2VkCgoyMDEzLTEyLTE0IDE4OjM4OjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkgIGJ5dGVyZWFkZXI6IGFkZCBpbmxpbmUgdmFyaWFudCBvZiBnc3RfYnl0ZV9yZWFkZXJfaW5pdCgpCgoyMDEzLTEyLTE0IDE4OjMxOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkgIGRvY3M6IGZpeCBkb2NzIGZvciBnc3RfcXVldWVfYXJyYXlfcGVla19oZWFkKCkKCjIwMTMtMTItMTQgMTk6MDg6MzUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogRG9uJ3QgZGVmaW5lIHl5c2Nhbl90IHR3aWNlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjAzMTYKCjIwMTMtMTItMTMgMjI6NTE6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSAgZG9jczogbW92aW5nIHBsdWdpbnM6IG1pbm9yIDAuMTAgLT4gMS4wIGZpeAoJICBTcG90dGVkIGJ5IEpheSBGZW5sYXNvbgoKMjAxMy0xMi0xMSAxNDo0MjozNCArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlOiBkb24ndCBpZ25vcmUgZXZlbnQgcmV0dXJuIHZhbHVlCgkgIFBhc3MgdGhlIGV2ZW50IHJldHVybiB2YWx1ZSB1cHN0cmVhbS4KCSAgUmVtb3ZlIHN0cmFuZ2UgZ290byBjb25zdHJ1Y3QuCgoyMDEzLTEyLTEwIDE4OjMwOjAzIC0wNTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogSGFuZGxlIHRhZ2xpc3QgY29weSBmYWlsdXJlCgkgIElmIHdlIGNvdWxkbid0IGNvcHkgdGhlIHRhZ3MsIGp1c3QgcmV0dXJuIGluc3RlYWQgb2YgdHJ5aW5nIHRvIHVzZSBib2d1cwoJICB2YWx1ZXMuCgoyMDEzLTEyLTEwIDE4OjI1OjIyIC0wNTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBJbmRleCBmZWF0dXJlcyBhcmUgbm8gbW9yZQoJICBTbyByZW1vdmUgY29kZSB0aGF0IHdpbGwgbmV2ZXIgYmUgdXNlZAoKMjAxMy0xMi0xMCAxNzo1MzoyNCAtMDUwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBGaXggY29tcGFyaXNpb24gb2YgZG91YmxlIHJhbmdlCgkgIENoZWNraW5nIHR3aWNlIHRoZSBsb3dlciBib3VuZCBpcyBncmVhdCAoeW91IG5ldmVyIGtub3csIGl0IG1pZ2h0IGNoYW5nZQoJICBiZXR3ZWVuIHRoZSB0d28gY2FsbHMgYnkgc29tZW9uZSB1c2luZyBlbWFjcyBidXR0ZXJmbHktbW9kZSksIGJ1dCBpdCdzIGEgYml0CgkgIG1vcmUgdXNlZnVsIHRvIGNoZWNrIHRoZSBoaWdoZXIgYm91bmQgYXJlIGFsc28gaWRlbnRpY2FsLgoJICBEZXRlY3RlZCBieSBDb3Zlcml0eQoKMjAxMy0xMi0xMCAxNzowOTowNyAtMDUwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IEZpeCBvdXQtb2YtYm91bmRzIGRldGVjdGlvbgoJICBXZSB3YW50IHRvIGFib3J0IGlmIHdlIGhpZ2hlciB0aGFuIHRoZSBtYXhpbXVtICpPUiogbG93ZXIgdGhhbiB0aGUgbWluaW11bQoJICBhY2NlcHRlZCB2YWx1ZS4KCSAgRGV0ZWN0ZWQgYnkgQ292ZXJpdHkuCgoyMDEzLTEyLTA3IDE5OjA0OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSAgdGVzdHM6IGFkZCB1bml0IHRlc3QgZm9yIHJlZ2lzdGVyaW5nIHRoZSBzYW1lIGNhdGVnb3J5IHR3aWNlCgoyMDEzLTEyLTA3IDE5OjMyOjU4ICswMTAwICBWw61jdG9yIE1hbnVlbCBKw6FxdWV6IExlYWwgPHZqYXF1ZXpAaWdhbGlhLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHJldHVybiBleGlzdGluZyBjYXRlZ29yeSBpZiBhIGRlYnVnIGNhdGVnb3J5IGlzIHJlZ2lzdGVyZWQgdHdpY2UKCSAgSWYgYSBjYXRlZ29yeSB3aXRoIHRoZSBzYW1lIG5hbWUgaXMgZm91bmQgd2hlbiBjcmVhdGluZyBhIG5ldwoJICBvbmUsIHRoZSBmb3VuZCBjYXRlZ29yeSBpcyByZXR1cm5lZCBpbnN0ZWFkIG9mIGFuIGludmFsaWQgcG9pbnRlci4KCSAgRml4ZXMgaXNzdWUgd2l0aCBnc3QtdmFhcGkgKHdoaWNoIHVzZXMgYW4gaW50ZXJuYWwgY29weSBvZiB0aGUKCSAgY29kZWMgcGFyc2VycykgY2F1c2VkIGJ5IGNvbW1pdCBjY2JhOTEzMC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMDAzNgoKMjAxMy0xMi0wNyAxNTozODoxOSArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2dyZXNzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1idWZmZXJpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1jbG9ja3MueG1sOgoJKiBkb2NzL21hbnVhbC9vdXRsaW5lLnR4dDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtY2xvY2sueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVycm9yLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1ldGEuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHBhcnNlLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDoKCSAgZG9jczogRml4IHR5cG9zIGluIGZ1bmN0aW9uL29iamVjdCBkZXNjcmlwdGlvbnMKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMDAyOQoKMjAxMy0xMi0wNyAxNTo0MDozMiArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgRml4IHNvbWUgdHlwb3MgaW4gY29kZSBjb21tZW50cyBhbmQgZGVidWcgbWVzc2FnZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMDAyOQoKMjAxMy0xMi0wNiAyMDo1MDoxOSArMDAwMCAgU3Rld2FydCBCcm9kaWUgPHN0ZXdhcnRAZWgub3JnPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBkb2NzOiBjbGFyaWZ5IGVuY29kaW5nIG9mIHN0cmluZ3MgaW4gR3N0U3RydWN0dXJlcyBhbmQgdGFnbGlzdHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTI2MgoKMjAxMy0wNy0wMiAyMDoyNzo1OSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBTZXQgZm9ybWF0IHRvIFRJTUUgaWYgZG8tdGltZXN0YW1wIGlzIFRSVUUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjg0MgoKMjAxMy0xMi0wNSAwMDoyNjoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IGdzdC1sYXVuY2g6IGRvbid0IHRyeSB0byByZW1vdmUgYWxyZWFkeS1yZW1vdmVkIEdTb3VyY2UgZnJvbSBtYWluIGxvb3AKCSAgSXQncyBjb25zaWRlcmVkIGEgcHJvZ3JhbW1pbmcgZXJyb3IgaW4gcmVjZW50IEdMaWIgdmVyc2lvbnMgbm93LgoJICBXZSBtYXkgYWxyZWFkeSBoYXZlIHJlbW92ZWQgdGhlIHNvdXJjZSBieSByZXR1cm5pbmcgRkFMU0UgZnJvbQoJICB0aGUgY2FsbGJhY2sgaWYgaXQgd2FzIGZpcmVkLiBGaXhlcyB3YXJuaW5nIHdpdGggbmV3ZXIgR0xpYnMKCSAgd2hlbiBpbnRlcnJ1cHRpbmcgYSBwaXBlbGluZSB3aXRoIENvbnRyb2wtQy4KCjIwMTMtMTItMDQgMTc6MzU6MTggLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBNYWtlIHN1cmUgdGhlIHNhbWUgY2F0ZWdvcnkgaXMgbm90IGFkZGVkIHR3aWNlCgoyMDEzLTEyLTA0IDE3OjM1OjAyIC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogUHJvdGVjdCBfX2NhdGVnb3JpZXMgbGlzdCBpbiBnZXRfY2F0ZWdvcnkgd2l0aCBsb2NrIHRvbwoKMjAxMy0xMi0wNCAwMDoxMDozNiArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZG9jcy9NYWtlZmlsZS5hbToKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgIGRvY3M6IGFkZCBtaXNzaW5nIGZpbGVzIGZvciBkaXN0cmlidXRpb24KCSAgKiBhZGQgc29tZSBkb2N1bWVudGF0aW9uIGZpbGVzIGluIGRvY3MvZGVzaWduCgkgICogYWRkIGRvY3MvbGlzdC11bGluay54c2wgc28gY2hlY2sgaW4gZG9jcy9tYW51YWwgd29ya3MKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxOTgxNAoKMjAxMy0xMi0wMyAyMTo0NjoxOSArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgQUNDRVBUX0lOVEVSQ0VQVCBmbGFnCgkgIE1ha2UgYSBuZXcgZmxhZyBvbiB0aGUgcGFkIHRoYXQgdHdlYWtzIHRoZSBkZWZhdWx0IGJlaGF2aW91ciBvZiB0aGUKCSAgYWNjZXB0LWNhcHMgZnVuY3Rpb24uIEJ5IGRlZmF1bHQgaXQgd2lsbCBjaGVjayBmb3IgYSBzdWJzZXQgb2YgdGhlCgkgIHF1ZXJ5LWNhcHMgcmVzdWx0IGJ1dCB0aGlzIGlzIG5vdCBhbHdheXMgZGVzaXJhYmxlLiBUaGUgcXVlcnktY2FwcwoJICByZXN1bHQgY29udGFpbnMgYWxsIHRoZSBjb25zdHJhaW50cyB0byBtYWtlIGEgZ29vZCBjYXBzIGRlY2lzaW9uCgkgIHVwc3RyZWFtIGJ1dCBzb21ldGltZXMsIGxpa2UgZm9yIHBhcnNlcnMsIG5vdCBhbGwgdGhlIGNvbnN0cmFpbmVkIGNhcHMKCSAgZmllbGRzIGFyZSBrbm93biB1cHN0cmVhbSBhbmQgdGhlbiBhIHN1YnNldCBjaGVjayB3b3VsZCBmYWlsLiBTd2l0Y2hpbmcKCSAgdG8gYW4gaW50ZXJzZWN0aW9uIG1ha2VzIHRoaXMgd29yayBhZ2Fpbi4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDUwMjQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NzQwMQoKMjAxMy0xMi0wMiAyMjoyMjozNiAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBXYWtlIHVwIG9uIHJlY29uZmlndXJlIGV2ZW50CgkgIEFmdGVyIHBhdGNoIGJkYTQwNmM0LCB0aGUgc3RhdGUgb2YgdGhlIHNpbmdsZXF1ZXVlIHdhcyBzZXQgdG8gT0ssIGJ1dCBub3RoaW5nCgkgIHdvdWxkIHRoZW4gd2FrZSB1cCB0aGUgdGhyZWFkLCBhcyB0aGUgb3RoZXIgd2FrZXVwIGZ1bmN0aW9ucyBvbmx5IGxvb2sgYXQKCSAgc2luZ2xlcXVldWVzIHRoYXQgYXJlIG1hcmtlZCBhcyBoYXZpbmcgcmVjZWl2ZWQgYXMgbm90LWxpbmtlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwODIwMAoKMjAxMy0xMS0zMCAxMjoxNTozNyArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5oOgoJICBkb2NzOiBhZGQgbWlzc2luZyBkb2NzLCBmaXhpbmcgZG9jIGVycm9ycwoJICAqIGFkZCBtYW55IG1pc3NpbmcgZGVjbGFyYXRpb25zIHRvIHNlY3Rpb25zCgkgICogR3N0Q29udHJvbGxlciBoYXMgYmVlbiByZW1vdmVkLCB1cGRhdGUgZG9jcwoJICAqIHNraXAgR3N0SW5kZXggd2hlbiBnZW5lcmF0aW5nIGRvY3VtZW50YXRpb24KCSAgKiByZXBocmFzZSBzbyBndGtkb2MgZG9lc24ndCBpbWFnaW5lIHJldHVybiB2YWx1ZQoJICAqIGFkZCBtaXNzaW5nIGFyZ3VtZW50IGRlc2NyaXB0aW9uIGZvciBnc3RfY29udGV4dF9uZXcoKQoJICAqIGRvY3VtZW50IEdzdE91dHB1dFNlbGVjdG9yUGFkTmVnb3RpYXRpb25Nb2RlIGFuZCBtb3ZlIHRvIGhlYWRlci1maWxlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTk2MTQKCjIwMTMtMTEtMzAgMTQ6NTI6NDAgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSAgZG9jczogY29zbWV0aWMgY2hhbmdlcyBpbiByZWZlcmVuY2VzL2RlY3JpcHRpb25zCgkgICogZml4IHR5cG8gR3N0QnVmZmVyRmxhZyAtPiBHc3RCdWZmZXJGbGFncwoJICAqIGZpeCB0eXBvIEdzdEZlYXR1cmVzIC0+IEdzdENhcHNGZWF0dXJlcwoJICAqIGZpeCB0eXBvIEdzdEFsbG9jYXRvclBhcmFtcyAtPiBHc3RBbGxvY2F0aW9uUGFyYW1zCgkgICogZml4IHR5cG8gR3N0Q29udHJsU291cmNlcyAtPiBHc3RDb250cm9sU291cmNlCgkgICogZG8gbm90IHJlZmVyIHRvIGdzdGNoZWNrIGFzIGFuIG9iamVjdAoJICAqIG1ha2UgcmVmZXJlbmNlcyBndGtfaW5pdCgpIGFuZCB0Y2FzZV9zZXRfdGltZW91dCgpIG5vdCBiZSByZWZlcmVuY2VzCgkgICogZ3N0X2VsZW1lbnRfZ2V0X3BhZCgpIHJlbmFtZWQgZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQoKQoJICAqIGdzdF9jbG9ja19pZF93YWl0X2FzeW5jX2Z1bGwoKSByZW5hbWVkIGdzdF9jbG9ja19pZF93YWl0X2FzeW5jKCkKCSAgKiBfZHJvcF9lbGVtZW50KCkgaXMgcmVhbGx5IGdzdF9xdWV1ZV9hcnJheV9kcm9wX2VsZW1lbnQoKQoJICAqIGdzdF9wYWRfYWNjZXB0X2NhcHMoKSB3YXMgcmVtb3ZlZCwgZG8gbm90IHJlZmVyIHRvIGl0CgkgICogc2VwYXJhdGUgR1NUX01FVEFfVEFHX01FTU9SWV9TVFIgZGVjbGFyYXRpb24gZnJvbSBkZXNjcmlwdGlvbgoJICAqIGRvIG5vdCBkZXNjcmliZSByZW1vdmVkIGdzdF9jb2xsZWN0X3BhZHNfY29sbGVjdCgpCgkgICogY29ycmVjdGx5IGxpbmsgdG8gR3N0RWxlbWVudENsYXNzJyB2aXJ0dWFsIHNldF9jb250ZXh0KCkKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxOTYxNAoKMjAxMy0xMS0yOSAxNDowMDozNSAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgcGFyc2U6IE1hbnVhbGx5IGluc2VydCBwcml2X2dzdF9wYXJzZV95eWdldC9zZXRfY29sdW1uIHByb3RvdHlwZXMgZm9yIG9sZGVyIGZsZXgKCSAgT2xkZXIgdmVyc2lvbnMgb2YgZmxleCAoYmVmb3JlIDIuNS4zNikgZG9uJ3QgYWRkIHRoZSBwcm90b3R5cGUsIHNvIGl0IG11c3QKCSAgYmUgYWRkZWQgbWFudWFsbHkuIFdlIGNhbid0IGNoZWNrIGJ5IHRoZSB2ZXJzaW9uIG51bWJlciwgYmVjYXVzZSBEZWJpYW4vVWJ1bnR1CgkgIHBhdGNoZWQgaXQgaW50byB0aGVpciAyLjUuMzUgYXQgc29tZSBwb2ludC4KCjIwMTMtMTEtMTkgMTE6NDE6NTQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHBhZDogZHJvcCBhc3NlcnRpb24gb24gZ3N0X3BhZF9wZWVyX3F1ZXJ5X3Bvc2l0aW9uCgkgIEl0IGlzIGEgJ2JvdGgnIHF1ZXJ5LCBzbyBpdCBjYW4gYmUgc2VudCBib3RoIHdheXMKCjIwMTMtMTEtMTggMTg6MTE6NTYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGhhbmRsZSBnYXAgZXZlbnRzCgkgIFVzZSBnYXAgZXZlbnRzIHRvIGFkdmFuY2UgdGhlIHNlbGVjdG9yJ3MgcGFkIHBvc2l0aW9uLgoJICBUaGlzIGlzIHJlbGV2YW50IHRvIGtlZXAgc3luY19zdHJlYW1zIG1vZGUgd29ya2luZyB3aGVuIG9uZSBvZiB0aGUKCSAgc3RyZWFtcyBkb2Vzbid0IGhhdmUgZGF0YSBhbGwgdGhlIHRpbWUuCgoyMDEzLTExLTI5IDE3OjAyOjQxICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBSZXZlcnQgImdob3N0cGFkOiBjb3B5IHN0aWNreSBldmVudHMgdG8gU1JDIGdob3N0cGFkcyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA4MTYyYTU4M2E0ZGQ2ODU4MmJmMTg2ZTJlNDdhOGYwZDY4ZmExOTgwLgoJICBBdXRvbWF0aWNhbGx5IGNvcHlpbmcgdGhlIHN0aWNreSBldmVudHMgbWFrZXMgaXQgaW1wb3NzaWJsZSBmb3IgYXBwcwoJICBhbmQgZWxlbWVudHMgdG8gZmlsdGVyIHRoZSBldmVudHMgd2l0aCBldmVudCBwcm9iZXMuIFRoaXMgY2F1c2VzCgkgIHJlZ3Jlc3Npb25zIChTZWUgIzcxOTQzNykuIFRoZSBiZXN0IG9wdGlvbiBpcyB0byBsZXQgdGhlIGFwcC9lbGVtZW50CgkgIGNvcHkgYW5kIGZpbHRlciB0aGUgZXZlbnRzIHRoZW1zZWx2ZXMgYWZ0ZXIgdGhlIGdob3N0cGFkIHRhcmdldCBpcwoJICBzZXQuCgoyMDEzLTExLTE5IDE1OjAzOjM1ICswMTAwICBGYWJpYW4gS2lyc2NoIDxkZXJGYWtpckB3ZWIuZGU+CgoJKiBnc3QvcGFyc2UvLmdpdGlnbm9yZToKCSogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogZml4IHNlZ2ZhdWx0aW5nIHByb3RvdHlwZS1taXNtYXRjaAoJICBOb3cgWVlERUJVRyBpcyBhbHdheXMgc2V0LCBzbyBjaGVjayBpdCdzIHZhbHVlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTI2NzkKCjIwMTMtMTEtMjcgMTg6MzI6MjIgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsb2NrOiBGaXggZG9jc3RyaW5nIGZvciByb3VuZC10cmlwLWxpbWl0IGFuZCB1bmluaXQgYWNjZXNzIHdhcm5pbmcuCgkgIEZpeCBhIHR5cG8gaW4gYSBkb2Mgc3RyaW5nIC0gdGhlIHByb3BlcnR5IGlzIHJvdW5kLXRyaXAtbGltaXQsIG5vdAoJICByb3VuZHRyaXAtbGltaXQuCgkgIFJlbW92ZSBhIGJvZ3VzIEdTVF9XQVJOSU5HIHRoYXQgY2FuIHByaW50IGFuIHVuaW5pdGlhbGlzZWQgdmFyaWFibGUKCSAgYW5kIGlzIHJlZHVuZGFudCBhbnl3YXkuCgoyMDEzLTExLTI2IDExOjU2OjQ2ICswMTAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xvY2s6IEFkZCByb3VuZC10cmlwLWxpbWl0IHBhcmFtZXRlcgoJICBTb21ldGltZXMsIHBhY2tldHMgbWlnaHQgdGFrZSBhIHZlcnkgbG9uZyB0aW1lIHRvIHJldHVybi4gU3VjaCBwYWNrZXRzCgkgIHVzdWFsbHkgYXJlIHdheSB0b28gbGF0ZSBhbmQgZGVzdGFiaWxpemUgdGhlIHJlZ3Jlc3Npb24gd2l0aCB0aGVpcgoJICBvYnNvbGV0ZSBkYXRhLiBPbiBXaS1GaSwgcm91bmQtdHJpcHMgb2Ygb3ZlciA3IHNlY29uZHMgaGF2ZSBiZWVuIG9ic2VydmVkLgoJICBJZiB0aGUgbGltaXQgaXMgc2V0IHRvIGEgbm9uemVybyB2YWx1ZSwgcGFja2V0cyB3aXRoIGEgcm91bmQtdHJpcCBwZXJpb2QKCSAgbGFyZ2VyIHRoYW4gdGhlIGxpbWl0IGFyZSBpZ25vcmVkLgoJICBTaWduZWQtb2ZmLWJ5OiBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTIzODUKCjIwMTMtMTEtMjUgMTk6MDQ6MzggLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IEZpeCBnaSBhbm5vdGF0aW9ucyBvZiBnc3Rfc3RydWN0dXJlX25ld19jdXN0b20oKQoKMjAxMy0xMS0yNiAwMjo0Mzo1NCArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xvY2s6IEZpeCBDOTkgY29tbWVudAoKMjAxMy0xMS0yNiAwMjoxNzozNiArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xvY2s6IEltcGxlbWVudCByb2xsaW5nLWF2ZXJhZ2UgZmlsdGVyIG9uIG9ic2VydmF0aW9ucy4KCSAgS2VlcCBhIHJvbGxpbmcgYXZlcmFnZSBvZiB0aGUgcm91bmQgdHJpcCB0aW1lIGZvciBuZXR3b3JrIGNsb2NrCgkgIG9ic2VydmF0aW9ucywgZmF2b3VyaW5nIHNob3J0ZXIgcm91bmQgdHJpcHMgYXMgYmVpbmcgbW9yZSBhY2N1cmF0ZS4KCSAgRG9uJ3QgcGFzcyBhbnkgY2xvY2sgb2JzZXJ2YXRpb24gdG8gdGhlIGNsb2NrIHNsYXZpbmcgaWYgaXQgaGFzIGEKCSAgcm91bmQtdHJpcCB0aW1lIGdyZWF0ZXIgdGhhbiAyIHRpbWVzIHRoZSBhdmVyYWdlLgoJICBBY3R1YWwgc2hpZnRzIGluIHRoZSBuZXR3b3JrIHRvcG9sb2d5IHdpbGwgYmUgbm90aWNlZCBhZnRlciBzb21lCgkgIHRpbWUsIGFzIHRoZSByb2xsaW5nIGF2ZXJhZ2UgaW5jb3Jwb3JhdGVzIHRoZSBuZXcgcm91bmQgdHJpcCB0aW1lcy4KCjIwMTMtMTEtMjUgMjA6MzM6NDIgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogQWRkIGRlYnVnIGludG8gZ3N0X2Jhc2Vfc2lua19kZWZhdWx0X3F1ZXJ5KCkgZm9yIGFjY2VwdF9jYXBzCgoyMDEzLTExLTE0IDE1OjMyOjU5ICswMTAwICBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsbkBpZ2FsaWEuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBleGl0IHdpdGggYW4gZXJyb3IgY29kZSB3aGVuIGFuIGVycm9yIG9jY3VyZWQKCSAgSWYgdGhlIHBpcGVsaW5lIGZhaWxlZCB0byBwcmUtcm9sbCBvciB0aGUgdXNlciBpbnRlcnJ1cHRlZCB0aGUKCSAgZXhlY3V0aW9uIHRoZW4gc2V0IHRoZSBleGl0IGNvZGUgdG8gYSBwb3NpdGl2ZSB2YWx1ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMjMwMAoKMjAxMy0xMS0yMiAwMTozNToxOCArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHV0aWxzOiBFc2NhcGUgc3RyZWFtIGlkIGZvcm1hdCBpbiBjb21tZW50cwoJICBUaGVzZSBtdXN0IGJlIGVzY2FwZWQgZm9yIGd0ay1kb2MgdG8gcGFyc2UgdGhlIGNvbW1lbnRzIHdpdGhvdXQgd2FybmluZ3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTQ5ODkKCjIwMTMtMTEtMjEgMTU6MDQ6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3R1cmkuYzoKCSAgZ3N0OiBnX21lbW1vdmUoKSBpcyBkZXByZWNhdGVkCgkgIEp1c3QgdXNlIHBsYWluIG1lbW1vdmUoKSwgZ19tZW1tb3ZlKCkgaXMgZGVwcmVjYXRlZCBpbgoJICByZWNlbnQgR0xpYiB2ZXJzaW9ucy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMjgxMQoKMjAxMy0xMS0yMSAxNDoxMzoxNiArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IGNvcHkgc3RpY2t5IGV2ZW50cyB0byBTUkMgZ2hvc3RwYWRzCgkgIFVwZGF0ZSB0aGUgc3RpY2t5IGV2ZW50cyBvbiBTUkMgZ2hvc3RwYWRzIHdoZW4gcmV0YXJnZXRpbmcuIFRoaXMgZW5zdXJlcwoJICB0aGF0IHRoZSBnaG9zdHBhZCBoYXMgdGhlIGV4ZWN0IHNhbWUgc3RpY2t5IGV2ZW50cyBhcyB0aGUgdGFyZ2V0IHBhZC4gV2UKCSAgZG9uJ3Qgd2FudCB0byBkbyB0aGlzIGZvciBTSU5LIGdob3N0cGFkcywgdGhleSBnb3QgdGhlIGV2ZW50cyBmcm9tCgkgIGRvd25zdHJlYW0gYW5kIHdlIGRvbid0IHdhbnQgdG8gb3ZlcndyaXRlIHRoZW0gd2l0aCB0aGUgdGFyZ2V0IHBhZAoJICBldmVudHMuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDc2MjEKCjIwMTMtMTEtMjEgMTI6Mjg6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IG1vdmUgZGVidWcgZnVuY3Rpb24gY2xvc2VyIHRvIHRoZSBlbnVtIGl0IGRlYnVncwoKMjAxMy0xMS0xOCAyMTozOTo1NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBjaGVjayByZWFkL3dyaXRlIGJlZm9yZSBjbG9zZWQKCSAgZmlyc3QgdHJ5IHRvIHJlYWQgb3Igd3JpdGUgb24gdGhlIHNvY2tldCBiZWZvcmUgY2hlY2tpbmcgdGhlIGNsb3NlZCBzdGF0ZS4gVGhpcwoJICBtYWtlcyBzdXJlIHdlIGhhbmRsZSBhbGwgZGF0YSBvbiB0aGUgc29ja2V0IGJlZm9yZSBlcnJvcmluZyBvdXQuCgoyMDEzLTExLTE4IDIxOjM3OjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogaW1wcm92ZSBkZWJ1ZwoJICBTbyB0aGF0IHdlIGNhbiBzZWUgdGhlIHJldHVybiB2YWx1ZXMgb2YgZnVuY3Rpb25zIGluIHRoZSBsb2cuCgoyMDEzLTExLTE4IDE1OjI4OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJICB0ZXN0czogZml4IEdzdEJ1cyB1bml0IHRlc3Qgd2l0aCBsYXRlc3QgR0xpYgoJICBnX3NvdXJjZV9yZW1vdmUoKSB3b3JrcyBvbiB0aGUgZGVmYXVsdCBtYWluIGNvbnRleHQsIGFuZAoJICB3ZSdyZSBkb2luZyB0aGluZ3Mgd2l0aCBhIGN1c3RvbSBjb250ZXh0LiBGaXhlcyB3YXJuaW5nCgkgIHdpdGggbmV3ZXIgR0xpYiB2ZXJzaW9ucy4KCjIwMTMtMTEtMTYgMTI6MjQ6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJICBkb2NzOiBjb3NtZXRpYyBzaW5jZSBtYXJrZXIgZml4ZXMKCjIwMTMtMTEtMTYgMTU6MTc6NTcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZW5zdXJlIHRvIHByZXNlcnZlIHVwc3RyZWFtIHRpbWVzdGFtcHMKCSAgLi4uIHJhdGhlciB0aGFuIGhhdmUgc3ViY2xhc3MgY29taW5nIHVwIHdpdGggYW4gaW50ZXJuYWxseSBwYXJzZWQgb25lLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3MjMwCgoyMDEzLTExLTE1IDA3OjMyOjQ4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IFJlc3luYyBpdGVyYXRvciBpZiBuZWNlc3NhcnkKCjIwMTMtMTEtMTMgMTk6NTU6NDEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgdmFsdWU6IExpc3RzIHdpdGggYWxsIGVxdWFsIGVsZW1lbnRzIGFyZSBlcXVhbCB0byBhIHNpbmdsZSB2YWx1ZQoJICBPdGhlcndpc2UgY2FwcyBjb250YWluaW5nIGY9e1gsIFh9IGFyZSBub3QgY29tcGF0aWJsZSB3aXRoIGY9WAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5MjUzCgoyMDEzLTExLTExIDE2OjQ3OjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBhZGQgU2luY2UgbWFya2VycyBmb3IgbmV3IEFQSQoKMjAxMy0xMS0xMSAxNzoyOTo0OCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFJlYWxseSB1cGRhdGUgdGhlIGRlZiBmaWxlcwoKMjAxMy0xMS0xMSAxNzowMjozNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgZGVmIGZpbGVzCgoyMDEzLTExLTExIDE2OjUwOjEzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogQWxzbyBleHBvcnQgTERfTElCUkFSWV9QQVRIIGZvciBnc3QtcGx1Z2lucy1nbAoKMjAxMy0xMS0wNSAxMjoyMjo1MSArMDAwMCAgTWF0dGhpZXUgQm91cm9uIDxtYXR0aGlldS5ib3Vyb25AY29sbGFib3JhLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGV4cG9ydCBnc3QtcGx1Z2lucy1nbCBEWUxEX0xJQlJBUllfUEFUSAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzExNDg4CgoyMDEzLTExLTA2IDE4OjQ2OjE5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogQWx3YXlzIHNlbmQgU0VFSyBldmVudHMgdG8gYWxsIHBhZHMsIGV2ZW4gaWYgb25lIGZhaWxzCgoyMDEzLTExLTA2IDE4OjQxOjEwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIGNvbGxlY3RwYWRzOiBVcGRhdGUgZG9jdW1lbnRhdGlvbiBmb3IgZmx1c2hpbmcgc2VlayBoYW5kbGluZwoKMjAxMy0xMS0wNiAxODowNToyMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IERvbid0IGxlYWsgc2VlayBldmVudHMKCjIwMTMtMDktMTYgMDk6NTU6NTggKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIGNvbGxlY3RwYWRzOiBpbXBsZW1lbnQgZmx1c2hpbmcgc2VlayBzdXBwb3J0CgkgIEltcGxlbWVudCBjb21tb24gZmx1c2hpbmcgc2VlayBsb2dpYyBpbiBHc3RDb2xsZWN0UGFkcy4gQWRkIG5ldwoJICBBUEkgc28gdGhhdCBlbGVtZW50cyBjYW4gb3B0LWluIHRvIHVzaW5nIHRoZSBuZXcgbG9naWMKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc3JjX2V2ZW50X2RlZmF1bHQpIGFuZCBjYW4gZXh0ZW5kIGl0CgkgIChnc3RfY29sbGVjdF9wYWRzX3NldF9mbHVzaF9mdW5jdGlvbikgdG8gZmx1c2ggYW55IGludGVybmFsCgkgIHN0YXRlLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNjc3OSBhbmQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNjQ0MSBmb3IgdGhlCgkgIGJhY2tncm91bmQgZGlzY3Vzc2lvbi4KCSAgQVBJOiBnc3RfY29sbGVjdF9wYWRzX3NldF9mbHVzaF9mdW5jdGlvbigpCgkgIEFQSTogZ3N0X2NvbGxlY3RfcGFkc19zcmNfZXZlbnRfZGVmYXVsdCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDg0MTYKCjIwMTMtMDktMTYgMDg6MzU6MzcgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICB0ZXN0czogY29sbGVjdHBhZHM6IGFkZCBmbHVzaGluZyBzZWVrIHRlc3RzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDg0MTYKCjIwMTMtMDktMTYgMDg6MzE6NDcgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICB0ZXN0czogY29sbGVjdHBhZHM6IHR3ZWFrIHN0dWIgX2NvbGxlY3QgdG8gcHVzaCBhbGwgYnVmZmVycwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA4NDE2CgoyMDEzLTA5LTE2IDA4OjI2OjI1ICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSAgdGVzdHM6IGNvbGxlY3RwYWRzOiB1cGRhdGUgbXkgZW1haWwgYWRkcmVzcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA4NDE2CgoyMDEzLTExLTExIDEzOjI3OjI3ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IERvbid0IHVzZSBnc3RfYnVmZmVyX2dldF9zaXplKCkgd2hlbiBwb3NzaWJsZQoJICBNYWtlcyBxc3RfcXVldWVfbG9ja2VkX2RlcXVldWUgMjAlIGZhc3RlcgoKMjAxMy0xMS0xMSAxMjoyNToxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzeXN0ZW1jbG9jazogQWRkIGdzdF9zeXN0ZW1fY2xvY2tfc2V0X2RlZmF1bHQKCSAgVXNlZCBmb3Igc2V0dGluZyB0aGUgZGVmYXVsdCBzeXN0ZW0gY2xvY2sgdGhhdCBpcyBvYnRhaW5lZCB0aHJvdWdoCgkgIGdzdF9zeXN0ZW1fY2xvY2tfb2J0YWluKCksIHdoaWNoIGlzIHNvbWV0aW1lcyBuZWVkZWQgZm9yIHVuaXQKCSAgdGVzdGluZy4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMTI2OQoKMjAxMy0xMS0wNCAxODo1NzoxOCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJICB0eXBlZmluZDogdXNlIGdfZ2V0X3ByZ25hbWUoKSBmb3IgZXJyb3IgbWVzc2FnZQoKMjAxMy0xMS0wNiAxMDoxNTo1OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IHByb3h5IGNhcHMgYW5kIGFsbG9jYXRpb24KCSAgUHJveHkgdGhlIGNhcHMgcXVlcmllcyBvbiB0aGUgc3JjcGFkIGFzIHdlbGwuCgkgIFByb3h5IHRoZSBhbGxvY2F0aW9uIHF1ZXJ5IG9uIHRoZSBzaW5rcGFkLgoKMjAxMy0xMS0wNSAxMToxNzoyNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gODY1YWEyMCB0byBkYmVkYWEwCgoyMDEzLTExLTA0IDEzOjU2OjM3IC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0BzaXNhLnNhbXN1bmcuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IFJlbW92ZSBzb21lIGRlYWQgY29kZQoKMjAxMy0xMS0wNCAxMTo0ODo0NyArMDEwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogZXhwbGljaXRseSBjYXN0IHRvIEdzdExvY2tGbGFncyB0byBhdm9pZCBjb21waWxlciB3YXJuaW5ncwoKMjAxMy0xMS0wMiAxNTozNjoxOSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogcmVzdXJyZWN0IHNhbml0aXppbmcgc3RhcnQgYW5kIHN0b3AgZm9yIHNlZWtpbmcKCjIwMTMtMTEtMDIgMTU6NDI6MDcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBtaW5kIGJvZ2dsaW5nIHdyYXAgd2hlbiBjb21wYXJpbmcgb2Zmc2V0cwoKMjAxMy0xMS0wMiAxNTozODoxMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB0cnkgZmlyc3QgZnJhbWUgcHRzIGFuZCBkdHMgZm9yIGEgdmFsaWQgc3RhcnQgdGltZXN0YW1wCgoyMDEzLTExLTAyIDE1OjM3OjMwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHByaW50IHByb3BlciB2YXJpYWJsZSBpbiBkZWJ1ZyBzdGF0ZW1lbnQKCjIwMTMtMTEtMDEgMTY6MzU6NTkgKzAwMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBwYXJzZTogTWFrZSB0aGUgRkFUQUxfRVJST1JTIGZsYWcgYWxzbyB3b3JrIHdpdGhvdXQgYSBHRXJyb3IKCSAgQWxzbyBhZGQgYSB1bml0IHRlc3RzCgoyMDEzLTEwLTIzIDE1OjU2OjIwICswMTAwICBNYXR0aGlldSBCb3Vyb24gPG1hdHRoaWV1LmJvdXJvbkBjb2xsYWJvcmEuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBmaXggcG90ZW50aWFsIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgd2FybmluZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwNzU4CgoyMDEzLTEwLTMxIDE2OjE2OjQ4IC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0BzaXNhLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1NVC1yZWZjb3VudGluZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC10cmFuc2Zvcm0udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZnJhbWVzdGVwLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvYmVzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1yZWxhdGlvbnMudHh0OgoJICBkb2NzOiBmaXggY29tbW9uIHR5cG9zIGVtaXRlZC9lYWNob3RoZXIvLi4uCgoyMDEzLTEwLTMwIDIxOjUzOjM2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsczogQWRkIHNvbWUgYXR0cmlidXRlcyBhbmQgcmVvcmdhbml6ZSBjb2RlIHRvIGZpeCBjb21waWxlciB3YXJuaW5ncwoJICBnc3R1dGlscy5jOjM2NTk6NDE6IGVycm9yOiBmb3JtYXQgc3RyaW5nIGlzIG5vdCBhIHN0cmluZyBsaXRlcmFsCgkgIFstV2Vycm9yLC1XZm9ybWF0LW5vbmxpdGVyYWxdCgkgIGdjaGFyICpleHBhbmRlZCA9IGdfc3RyZHVwX3ZwcmludGYgKHN0cmVhbV9pZCwgdmFyX2FyZ3MpOwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwNjIxCgoyMDEzLTEwLTI1IDE0OjU2OjE2ICswMjAwICBBbnRvbmlvIE9zcGl0ZSA8b3NwaXRlQHN0dWRlbnRpLnVuaW5hLml0PgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJICBwd2c6IHJlbmFtZSB0aGUgInNhbXBsZXJhdGUiIHZhcmlhYmxlIHRvIG1ha2UgZXhhbXBsZSBjb2RlIGNvbXBpbGFibGUKCSAgSW4gb25lIG9mIHRoZSBleGFtcGxlcyBhYm91dCBnc3RfbXlfZmlsdGVyX3NldGNhcHMoKSB0aGVyZSBpcyBhIHZhcmlhYmxlCgkgIGRlY2xhcmVkIGFzICJyYXRlIiwgYnV0IHRoZW4gdGhlIG5hbWUgInNhbXBsZXJhdGUiIGlzIHVzZWQgd2hlbiBzZXR0aW5nCgkgIHRoZSBjYXBzLgoJICBVc2UgdGhlIG5hbWUgInJhdGUiIGV2ZXJ5d2hlcmUgaW4gZ3N0X215X2ZpbHRlcl9zZXRjYXBzKCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTA4NzYKCjIwMTMtMTAtMjkgMTg6MDk6MzIgKzAxMDAgIEZhYmlhbiBLaXJzY2ggPGRlckZha2lyQHdlYi5kZT4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkgIGRvYzogZml4IGZvcndhcmQgcmVmZXJlbmNlIGFib3V0IGdob3N0IHBhZHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMTA4OQoKMjAxMy0xMC0yOCAxMjo1NToxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1jYXBzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1jb250ZXh0LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkgIGRvY3M6IGRlc2lnbjogZml4IHNvbWUgZml4ZXMKCjIwMTMtMTAtMjYgMDk6NDg6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2ZhcS9kZXZlbG9waW5nLnhtbDoKCSAgZG9jczogZmxlc2ggb3V0IGdzdC11bmluc3RhbGxlZCBlbnRyeSBpbiBmYXEgc29tZSBtb3JlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDk5MTYKCjIwMTMtMTAtMTYgMTU6MDA6NDEgKzAyMDAgIEZhYmlhbiBLaXJzY2ggPGRlckZha2lyQHdlYi5kZT4KCgkqIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOgoJICBkb2NzOiBGQVEgdXBkYXRlIHRvIG1lbnRpb24gY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwLnNoCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDk5MTYKCjIwMTMtMTAtMjUgMjE6Mjk6MDEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnk6IHNtYWxsIGNsZWFudXBzIGFuZCB1c2Ugb2JqZWN0IGxvZyB2YXJpYW50cyBtb3JlCgoyMDEzLTEwLTI1IDIxOjI4OjMwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkgIHByaXZhdGU6IHJlbW92ZSBsZWZ0LW92ZXIgY29tbWVudAoJICBUaGUgY2FwcyBhcmUgc2F2ZWQgaW4gdGhlIHJlZ2lzdHJ5LgoKMjAxMy0xMC0yNSAxODo1MTo1MyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeTogdXNlIGdfc2xpY2VfZnJlZSBmb3Igc2xpY2UgbWVtb3J5CgkgIEF2b2lkIG1lbW9yeSBsaXN0IGNvcnJ1cHRpb24sIGJ1dCBnX2ZyZWUnaW5nIHNsaWNlIG1lbW9yeS4KCjIwMTMtMTAtMjMgMTg6MTY6NTQgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSAgZGVzaWduOiBmbGVzaCBvdXQgdGhlIHRyYWNpbmcgZGVzaWduIGEgbGl0dGxlIG1vcmUKCjIwMTMtMTAtMjUgMTE6MDI6MTkgLTA0MDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNAZGViZXRoZW5jb3VydC5jb20+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGRvY3M6IGZpeCB0eXBvcyBpbiBnc3RvYmplY3QKCjIwMTMtMTAtMjEgMTg6MDE6MjEgLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHIudmVyZGVqb0BwYXJ0bmVyLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXRhLnR4dDoKCSAgZG9jczogR3JhbSBhbmQgbml0IGZpeGVzIGZvciBwYXJ0LW1ldGEudHh0CgoyMDEzLTEwLTE0IDIyOjAzOjUwIC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyLnZlcmRlam9AcGFydG5lci5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zb3VyY2UudHh0OgoJICBkb2NzOiBHcmFtIGFuZCBuaXQgZml4ZXMgZm9yIHBhcnQtZWxlbWVudC1zb3VyY2UudHh0CgoyMDEzLTEwLTE0IDIxOjU0OjMxIC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyLnZlcmRlam9AcGFydG5lci5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDoKCSAgZG9jczogR3JhbSBhbmQgbml0IGZpeGVzIGZvciBwYXJ0LXNpbmsudHh0CgoyMDEzLTEwLTE0IDE4OjQzOjQwIC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyLnZlcmRlam9AcGFydG5lci5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY29udmVudGlvbnMudHh0OgoJICBkb2NzOiBHcmFtIGFuZCBuaXQgZml4ZXMgZm9yIHBhcnQtY29udmVudGlvbnMudHh0CgoyMDEzLTEwLTE0IDE4OjM0OjA2IC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyLnZlcmRlam9AcGFydG5lci5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY29udHJvbGxlci50eHQ6CgkgIGRvY3M6IEdyYW0gYW5kIG5pdCBmaXhlcyBmb3IgcGFydC1jb250cm9sbGVyLnR4dAoKMjAxMy0xMC0xNCAxODoyNDoxOCAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8ci52ZXJkZWpvQHBhcnRuZXIuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnRleHQudHh0OgoJICBkb2NzOiBHcmFtIGFuZCBuaXQgZml4ZXMgZm9yIHBhcnQtY29udGV4dC50eHQKCjIwMTMtMTAtMTQgMTg6MTM6MzUgLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHIudmVyZGVqb0BwYXJ0bmVyLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJICBkb2NzOiBHcmFtIGFuZCBuaXQgZml4ZXMgZm9yIHBhcnQtY2xvY2tzLnR4dAoKMjAxMy0xMC0xNCAxODowNTo0MyAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8ci52ZXJkZWpvQHBhcnRuZXIuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNhcHMudHh0OgoJICBkb2NzOiBHcmFtIGFuZCBuaXQgZml4ZXMgZm9yIHBhcnQtY2Fwcy50eHQKCjIwMTMtMTAtMTQgMTc6NDQ6MjcgLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHIudmVyZGVqb0BwYXJ0bmVyLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXIudHh0OgoJICBkb2NzOiBHcmFtIGFuZCBuaXQgZml4ZXMgZm9yIHBhcnQtYnVmZmVyLnR4dAoKMjAxMy0xMC0xNCAxNzoyOToxOSAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8ci52ZXJkZWpvQHBhcnRuZXIuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcnBvb2wudHh0OgoJICBkb2NzOiBHcmFtIGFuZCBuaXQgZml4ZXMgZm9yIHBhcnQtYnVmZmVycG9vbC50eHQKCjIwMTMtMTAtMTQgMDU6Mzk6MTkgLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHIudmVyZGVqb0BwYXJ0bmVyLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJICBkb2NzOiBHcmFtIGFuZCBuaXQgZml4ZXMgZm9yIHBhcnQtYnVmZmVyaW5nLnR4dAoKMjAxMy0xMC0xMyAyMToxNjo0NyAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8ci52ZXJkZWpvQHBhcnRuZXIuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSAgZG9jczogR3JhbSBhbmQgbml0IGZpeGVzIGZvciBwYXJ0LW1lc3NhZ2VzLnR4dAoKMjAxMy0xMC0xMyAyMDo0Mjo0MCAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8ci52ZXJkZWpvQHBhcnRuZXIuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lbW9yeS50eHQ6CgkgIGRvY3M6IEdyYW0gYW5kIG5pdCBmaXhlcyBmb3IgcGFydC1tZW1vcnkudHh0CgoyMDEzLTEwLTE4IDA4OjU4OjA1ICswMTAwICBQaGlsaXAgV2l0aG5hbGwgPHBoaWxpcC53aXRobmFsbEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkgIG5ldDogQ29uc3RpZnkgYSBwYXJhbWV0ZXIgdG8gZ3N0X25ldF9jbGllbnRfY2xvY2tfbmV3KCkKCSAgRXZlbiB0aG91Z2ggdGhpcyBwYXJhbWV0ZXIgaXMgbm90IHVzZWQsIGl0IHNob3VsZCBiZSBjb25zdCB0byBmaXQgaW4gd2l0aCB0aGUKCSAgY29kaW5nIHN0YW5kYXJkcyBmb3Igb3RoZXIgc2ltaWxhciBwYXJhbWV0ZXJzLiBDbGllbnQgY29kZSBhbHJlYWR5IHBhc3NlcyBpbgoJICBjb25zdCBzdHJpbmdzIHVuZGVyIHRoZSBleHBlY3RhdGlvbiB0aGF0IHRoZXkgd29u4oCZdCBiZSBtb2RpZmllZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDQ0MgoKMjAxMy0xMC0xNSAxMTo0NDowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIGRhdGV0aW1lOiBNYWtlIHN1cmUgdG8gaW5jbHVkZSBnc3RfcHJpdmF0ZS5oIGJlZm9yZSBnbGliLWNvbXBhdC1wcml2YXRlLmgKCSAgV2UgbmVlZCB0byBkZWZpbmUgdGhlIEdMaWIgbG9nIGRvbWFpbiBiZWZvcmUgaW5jbHVkaW5nIGdsaWIuaCwgd2hpY2ggaXMKCSAgaW5jbHVkZWQgYnkgZ2xpYi1jb21wYXQtcHJpdmF0ZS5oLgoKMjAxMy0xMC0xNCAxODowNzoxNyAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogQWRkIGdzdF9wYWRfc3RvcmVfc3RpY2t5X2V2ZW50IHRvIHNlY3Rpb25zLnR4dAoJICBTbyBpdCBhcHBlYXJzIGluIHRoZSBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbgoKMjAxMy0wOS0yOSAxNzozNToxMSArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSAgdGVzdHMvZmlsZXNyYzogU2V0IGxvY2F0aW9uIGluIHdyb25nIHN0YXRlCgkgIEFsc28gcmVtb3ZlIGluY29ycmVjdCBjb21tZW50IGFib3V0IGNvZGUgcG9zc2libHkgbm90IGJlaW5nIHJlYWNoYWJsZQoJICB0aGF0IGlzIG5vdyBleGVyY2lzZWQgYnkgdGhlIGZpbGVzcmMgdW5pdCB0ZXN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5ODMxCgoyMDEzLTEwLTEyIDE2OjE2OjA5ICsxMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBwYXJzZTogRml4IHRyYW5zZmVyIGFubm90YXRpb25zIGZvciBwYXJzZV9sYXVuY2ggZnVuY3Rpb25zLgoJICBnc3RfcGFyc2VfbGF1bmNodiwgZ3N0X3BhcnNlX2xhdW5jaHZfZnVsbCBhbmQgZ3N0X3BhcnNlX2xhdW5jaF9mdWxsCgkgIGFsbCByZXR1cm4gZmxvYXRpbmcgcmVmcywgdGhlIHNhbWUgYXMgZ3N0X3BhcnNlX2xhdW5jaCwgd2hpY2gganVzdAoJICBjYWxscyBnc3RfcGFyc2VfbGF1bmNoX2Z1bGwgaW50ZXJuYWxseSBhbnl3YXkuCgkgIEFkZCBhIHVuaXQgdGVzdCBhc3NlcnRpb24gdG8gY2hlY2sgaXQncyB0cnVlLgoJICBTcG90dGVkIGJ5IG5lbWVxdSBvbiBJUkMuCgoyMDEzLTEwLTEwIDA4OjMwOjI3IC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyLnZlcmRlam9AcGFydG5lci5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkqIGdzdC9nc3QuYzoKCSogdGVzdHMvbWlzYy90ZXN0LWdzdHJlYW1lci1jb21wbGV0aW9uLnNoOgoJICBjb3JlOiBGaXggbWF4IERFQlVHX0xFVkVMIGluY29uZ3J1ZW5jZSBvbiA1IHZzIDkKCSAgSW4gdGhlIGRvY3MgYW5kIHRoZSBhdXRvY29tcGxldGlvbiBsb2dpYyB0aGUgbWF4aW11bQoJICB2YWx1ZSBqdW1wZWQgaW5jb25ncnVlbnRseSBiZXR3ZWVuIDUgYW5kIDkuCgoyMDEzLTEwLTEwIDEzOjE5OjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBTa2lwIHRlc3Rfc3Vic2V0X2R1cGxpY2F0aW9uIHVudGlsIHRoZSBidWcgaXMgZml4ZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTI1MwoKMjAxMy0xMC0xMCAxMjo1Njo1NCArMDIwMCAgRmFiaWFuIEtpcnNjaCA8ZGVyRmFraXJAd2ViLmRlPgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJKiBkb2NzL21hbnVhbC9pbnRyby1tb3RpdmF0aW9uLnhtbDoKCSogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSAgZG9jczogRml4IHNvbWUgcmVmZXJlbmNlIFVSSXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTgwNAoKMjAxMy0xMC0wMiAxMzowMzo1NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogQWRkIGEgdGVzdGNhc2UgZm9yIHN1YnNldCBjaGVja3Mgb24gbGlzdHMgd2l0aCBkdXBsaWNhdGVkIGl0ZW1zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDkyNTMKCjIwMTMtMTAtMDkgMTU6MzY6NDggLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IENhbGwgdGhlIGNvbGxlY3RlZCBmdW5jdGlvbiB3aGlsZSBpdCByZXR1cm5zIEZMT1dfT0sKCSAgVGhpcyBhbGxvd3MgdXMgdG8gbWFrZSBzdXJlIHRoZSBlbGVtZW50cyBpcyBFT1MgYW5kIGRvZXMgbm90IGhhdmUKCSAgcmVtYWluaW5nIGJ1ZmZlcnMgdG8gYmUgZHJhaW5lZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTYzNwoKMjAxMy0xMC0wNSAxMDowODozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgZG9jczogZml4IGZ1bmN0aW9uIG5hbWUgaW4gcW9zIGRlc2lnbiBkb2NzCgoyMDEzLTEwLTAyIDEyOjMwOjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICB0ZXN0czogdXNlIHRjYXNlX3NraXBfYnJva2VuX3Rlc3QoKSB0byBza2lwIGJyb2tlbiBtdWx0aXF1ZXVlIHRlc3QKCSAgU28gdGhhdCB3ZSBnZXQgYSB3YXJuaW5nIGluIHRoZSBvdXRwdXQgdGhhdCByZW1pbmRzIHVzIHRoYXQKCSAgc29tZXRoaW5nIG5lZWRzIHRvIGJlIGZpeGVkLgoKMjAxMy0xMC0wMiAxMToyNDowMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIGNoZWNrOiBEaXNhYmxlIG11bHRpcXVldWUgdGVzdF9vdXRwdXRfb3JkZXIgY2hlY2sKCSAgVGhlIGNoZWNrIGl0c2VsZiBpcyByYWN5LgoJICAoQ0tfRk9SSz1ubyBHU1RfQ0hFQ0s9dGVzdF9vdXRwdXRfb3JkZXIgbWFrZSBlbGVtZW50cy9tdWx0aXF1ZXVlLmZvcmV2ZXIpLgoJICBUaGUgcHJvYmxlbSBpcyBpbmRlZWQgdGhlIHRlc3QgYW5kIG5vdCB0aGUgYWN0dWFsIGVsZW1lbnQgYmVoYXZpb3VyLgoJICBUaGUgb2JqZWN0cyB0byBwdXNoIGFyZSBiZWluZyBwdWxsZWQgb3V0IG9mIHRoZSBzaW5nbGUgaW50ZXJuYWwgcXVldWVzIGluIHRoZQoJICByaWdodCBvcmRlciBhbmQgYXQgdGhlIHJpZ2h0IHRpbWUuLi4KCSAgQnV0IGJldHdlZW46CgkgICogdGhlIG1vbWVudCB0aGUgZ2xvYmFsIG11bHRpcXVldWUgbG9jayBpcyByZWxlYXNlZCAod2hpY2ggd2FzIHVzZWQgdG8gZGV0ZWN0CgkgIGlmIHdlIHNob3VsZCBwb3AgYW5kIHB1c2ggZG93bnN0cmVhbSB0aGUgbmV4dCBidWZmZXIpCgkgICogYW5kIHRoZSBtb21lbnQgaXQgaXMgcmVjZWl2ZWQgYnkgdGhlIHNvdXJjZSBwYWQgKHdoaWNoIGRvZXMgdGhlIGNoZWNrKQoJICA9PiBhbm90aGVyIHNpbmdsZSBxdWV1ZSAobGlrZSB0aGUgdW5saW5rZWQgcGFkKSBtaWdodCBwb3AgYW5kIHB1c2ggYSBidWZmZXIKCSAgZG93bnN0cmVhbQoJICBXaGF0IHNob3VsZCB3ZSBkbyA/IFB1dHRpbmcgYSBiaWdnZXIgbWFyZ2luIG9mIGVycm9yIChzYXkgNSBidWZmZXJzKSBkb2Vzbid0CgkgIGhlbHAsIGl0J2xsIGV2ZW50dWFsbHkgZmFpbC4KCSAgSSBjYW4ndCBzZWUgaG93IHdlIGNhbiBkZXRlY3QgdGhpcyByZWxpYWJseS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwODY2MQoKMjAxMy0wOS0yNSAxOTowNjo1NSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHBhcnRuZXIuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGZpeCBjYXBzIHNlcmlhbGl6YXRpb24gd2hlbiB0aGVyZSBhcmUgY2FwcyBpbnNpZGUgY2FwcwoJICBXcmFwIGNhcHMgc3RyaW5ncyBzbyB0aGF0IGl0IGNhbiBoYW5kbGUgc2VyaWFsaXphdGlvbiBhbmQgZGVzZXJpYWxpemF0aW9uCgkgIG9mIGNhcHMgaW5zaWRlIGNhcHMuIE90aGVyd2lzZSB0aGUgdmFsdWVzIGZyb20gdGhlIGludGVybmFsIGNhcHMgYXJlIHBhcnNlZAoJICBhcyBpZiB0aGV5IHdlcmUgZnJvbSB0aGUgdXBwZXIgb25lCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDg3NzIKCjIwMTMtMDktMjggMDg6NDA6NDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogQ2hlY2sgZXJyb3JzIG9uIHRoZSBwcm9wZXIgZmQKCSAgTW9zdCBsaWtlbHkgYSBjb3B5LXBhc3RlIGVycm9yIGZyb20gdGhlIGJsb2NrIGJlZm9yZS4KCSAgSWYgd2UncmUgZ29pbmcgdG8gY2hlY2sgZm9yIGVycm9yL2Nsb3NlZCBvbiB0aGUgd3JpdGUgZmQuLi4gZG8gaXQKCSAgb24gdGhlIHdyaXRlIGZkCgoyMDEzLTA5LTI2IDE0OjA5OjAyIC0wNjAwICBCcmVuZGFuIExvbmcgPGIubG9uZ0BjYWJsZWxhYnMuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGRvY3M6IGZpeCBzcGVsbGluZyBvZiAiZ2VuZXJpYyIgaW4gR3N0QmFzZVNyYydzIGRvY3VtZW50YXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDg4NzAKCjIwMTMtMDktMjYgMTE6MzI6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogb25seSBjaGVjayBldmVudCBvcmRlciB3aGVuIHNvbWV0aGluZyBjaGFuZ2VkCgkgIENoZWNrIHRoZSBldmVudCBvcmRlciBpbiBkYXRhZmxvdyBvbmx5IHdoZW4gc29tZXRoaW5nIGNoYW5nZWQgaW5zdGVhZAoJICBvZiBmb3IgZWFjaCBidWZmZXIuCgoyMDEzLTA5LTI0IDE4OjI4OjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogUkVBRE1FOgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDZiMDNiYTcgdG8gODY1YWEyMAoKMjAxMy0wOS0yNCAxNTowNToxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IEFjdHVhbGx5IHVzZSAxLjMuMC4xIGFzIHZlcnNpb24gdG8gbWFrZSBjb25maWd1cmUgaGFwcHkKCjIwMTMtMDktMjQgMTU6MDA6MTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS4yLjAgPT09CgoyMDEzLTA5LTI0IDE0OjA3OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4yLjAKCjIwMTMtMDktMjQgMTQ6MDY6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTMtMDktMjQgMTM6MTA6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250ZXh0LmM6CgkgIGNvbnRleHQ6IEFkZCB0ZXN0IGZvciB0aGUgY29udGV4dCBjYWNoaW5nIGluIEdzdEJpbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA4NjY4CgoyMDEzLTA5LTI0IDEyOjQ3OjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSAgUmV2ZXJ0ICJQb3RlbnRpYWwgR3N0Q29udGV4dCByZWdyZXNzaW9uIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGU2NTgzNzk1MzRlYjRhOTBiNjU0ZDkwZjFkMGJkZjg2ZjM3YzZlMzEuCgkgIFRoaXMgdGVzdCBjb21taXQgc2hvdWxkJ3ZlIG5ldmVyIGJlZW4gcHVzaGVkLiBPb3BzLgoKMjAxMy0wOS0yNCAxMjo0Njo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IE1ha2Ugc3VyZSB0byBjYWNoZSBjb250ZXh0IHR5cGVzIHRoYXQgd2UgZGlkIG5vdCBzdG9yZSB5ZXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwODY2OAoKMjAxMy0wOS0yNCAxMDoyOTowNiArMDEwMCAgQWxleCBBc2hsZXkgPGJ1Z3ppbGxhQGFzaGxleS1mYW1pbHkubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkgIFBvdGVudGlhbCBHc3RDb250ZXh0IHJlZ3Jlc3Npb24KCSAgU2luY2UgdGhlIHJlZmFjdG9yaW5nIG9mIEdzdENvbnRleHQgKGNvbW1pdHMKCSAgcWM5ZmEyNzcxYjUwOGU5YWFlZWNjNzAwZTY2ZTk1ODE5MDQ3NmYsCgkgIGE3ZjVkYzhiOGFmODM3ZjAxNzgyZDE1NzIzNzk5NDhmZjYyZGFhYjcsCgkgIDY5MDMyNmY5MDZkYzgyZTQxZWE1OGI4MWNkYjJlM2U4OGI3NTQsCgkgIGQzNjdkYzFiMGQ0ZWNiMzdmNGQyNzI2N2UwM2Q3YmYwYzZjMDZhNiwgYW5kCgkgIDgyZDE1OGFlZDNmMmU4NTQ1ZTFlN2QzNTA4NTA4NWZmNThmMTgpIEkgYW0gbm8gbG9uZ2VyIGFibGUgdG8gZ2V0CgkgIGEgc2hhcmVkIGNvbnRleHQgZm9yIGFuIGVsZW1lbnQgdGhhdCBpcyB1c2VkIHR3aWNlIGluIGEgcGlwZWxpbmUuCgkgIEkgdXNlZCB0aGUgZG9jdW1lbnRhdGlvbiBhbmQgZWdsZ2xlc3NpbmsgYXMgbXkgcmVmZXJlbmNlIGZvcgoJICBpbXBsZW1lbnRpbmcgdGhlIEdzdENvbnRleHQgbG9naWMuCgkgIEFzIHRoZSBjb2RlIHdhcyB0aWVkIHRvIGEgaGFyZHdhcmUgZGVjb2RlciwgSSBoYXZlIHBvcnRlZCB0aGUKCSAgR3N0Q29udGV4dCBjb2RlIHRvIGZha2VzaW5rIHRvIHNob3cgdGhlIHByb2JsZW0uIFVzaW5nIHRoZSBvbGQKCSAgQVBJIGEgc2luZ2xlIEV4YW1wbGVNZ3IgaW5zdGFuY2UgaXMgY3JlYXRlZCwgYnV0IHVzaW5nIHRoZSBuZXcKCSAgQVBJIGVhY2ggZWxlbWVudCBpcyBjcmVhdGluZyBpdHMgb3duIGluc3RhbmNlLgoKMjAxMy0wOS0yNCAxMDo0MjowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogTWFrZSBzdXJlIHRoYXQgdGhlIG9iamVjdCBsb2NrIGlzIGFsd2F5cyB0YWtlbiB3aGVuIGFjY2Vzc2luZyB0aGUgcHJpdmF0ZSBwYWQgbGlzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA4NjM2CgoyMDEzLTA5LTE3IDIzOjIzOjM0ICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQGVwaXRlY2guZXU+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBVc2UgcHJpdmF0ZSBwYWQgbGlzdCBpbiBzZXRfZmx1c2hpbmdfdW5sb2NrZWQKCSAgcGFkcy0+ZGF0YSBpcyB0aGUgcHVibGljIGxpc3QuIEl0IGlzIGR5bmFtaWNhbGx5IHJlYnVpbHQgYXQgZWFjaCBjYWxsIHRvCgkgIGNoZWNrX2NvbGxlY3RlZCwgaW4gY2hlY2tfcGFkcyB0byBiZSBzcGVjaWZpYy4gV2hlbiB5b3UgYWRkIGEgcGFkIGFuZAoJICBjb2xsZWN0cGFkcyBoYXZlIGJlZW4gc3RhcnRlZCwgaXQgaXMgbm90IGFkZGVkIHRvIHRoZSBwdWJsaWMgbGlzdC4KCSAgVGh1cyB0aGVyZSBleGlzdHMgYSBwb3NzaWJsZSByYWNlIHdoZXJlIDoKCSAgMSkgWW91IHdvdWxkIGFkZCBhIHBhZCB0byBjb2xsZWN0cGFkcyB3aGlsZSBydW5uaW5nLgoJICAyKSBZb3Ugc2V0IGNvbGxlY3RwYWRzIHRvIGZsdXNoaW5nIGJlZm9yZSBjaGVja19jb2xsZWN0ZWQgaGFzIGJlZW4gY2FsbGVkIGFnYWluCgkgIC0+IHRoZSBwYWQgaXMgbm90IHNldCB0byBmbHVzaGluZwoJICAzKSB0aGUgcGFkIHN0YXJ0cyBwdXNoaW5nIGRhdGEgYXMgZG93bnN0cmVhbSBtaWdodCBub3QgYmUgcHJlcGFyZWQsIGluIHRoZSBjYXNlCgkgIG9mIGFkZGVyIGl0IHRoZW4gcmV0dXJucyBGTE9XX0ZMVVNISU5HLgoJICA0KSBlbGVtZW50cyBsaWtlIGRlbXV4ZXJzLCB3aGVuIHRoZXkgZ2V0IGEgRkxPV19GTFVTSElORywgc3RvcCB0aGVpciB0YXNrcywKCSAgbmV2ZXIgdG8gYmUgc2VlbiBhZ2Fpbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwODYzNgoKMjAxMy0wOS0yMyAxMTo0NzoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdHRlc3RjbG9jay5jOgoJICB0ZXN0czogaGFuZGxlIHVuc2NoZWR1bGVkIGVudHJpZXMgY29ycmVjdGx5CgkgIE1ha2UgdGhlIHRlc3RjbG9jayByZXR1cm4gR1NUX0NMT0NLX1VOU0NIRURVTEVEIHdoZW4gYW4gdW5zY2hlZHVsZWQgZW50cnkgaXMKCSAgdXNlZCBmb3IgZ3N0X2Nsb2NrX3dhaXQoKSBvciBnc3RfY2xvY2tfd2FpdF9hc3luYygpLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA4NjA1CgoyMDEzLTA5LTIyIDExOjA5OjM2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogQWxsb3cgc3BlY2lmeWluZyB0aGUgY2hlY2tvdXQgZGlyZWN0b3J5IGJ5IGVudiB2YXJpYWJsZQoJICBGb3Igc29tZSByYXJlIGNhc2VzLCBvbmUgbWlnaHQgbm90IGJlIGFibGUgdG8gdXNlIHRoZSBoYXJkY29kZWQgJEhPTUUvZ3N0CgkgIGxvY2F0aW9uIHlldCB3b3VsZCBzdGlsbCB3YW50IHRvIHVzZSB0aGUgZ3N0LXVuaW5zdGFsbGVkIHNjcmlwdCBhcy1pcyAod2hpY2gKCSAgaGFzIHRoZSBiZW5lZml0IG9mIGJlaW5nIGNvbnN0YW50bHkgdXBkYXRlZCkuCgkgIEZvciB0aGVzZSBjYXNlcywgdGhlIGNoZWNrb3V0IGRpcmVjdG9yeSBjYW4gYmUgc3BlY2lmaWVkIHdpdGggdGhlCgkgIEdTVF9VTklOU1RBTExFRF9ST09UIGVudmlyb25tZW50IHZhcmlhYmxlLgoJICBFeDoKCSAgZXhwb3J0IEdTVF9VTklOU1RBTExFRF9ST09UPSRIT01FL3NvbWV3aGVyZS93aXRoL2NoZWNrb3V0cwoJICBBbmQgdGhlbiBqdXN0IGNhbGwgZ3N0LXVuaW5zdGFsbGVkIGRpcmVjdGx5OgoJICAkR1NUX1VOSU5TVEFMTEVEX1JPT1QvZ3N0cmVhbWVyL2dzdC11bmluc3RhbGxlZAoKMjAxMy0wOS0yMCAxNjoxNjoyNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGI2MTM2NjEgdG8gNmIwM2JhNwoKMjAxMy0wOS0xOSAxODo0MjozMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNzRhNjg1NyB0byBiNjEzNjYxCgoyMDEzLTA5LTE5IDE3OjM0OjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAxMmFmMTA1IHRvIDc0YTY4NTcKCjIwMTMtMDktMTkgMTc6MTI6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSAgY2hlY2s6IHRlc3RjbG9jazogZml4IGZ1bmN0aW9uIGd1YXJkcwoJICBTaG91bGQgYmUgZ19yZXR1cm5fKigpIG5vdCBnX2Fzc2VydCgpLCBldmVuIGlmIGl0J3MgZm9yIHRlc3RzIG9ubHkuCgoyMDEzLTA5LTE5IDE2OjQzOjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkgIGNoZWNrOiB0ZXN0Y2xvY2s6IGRvbid0IHB1dCBjb2RlIHdpdGggc2lkZS1lZmZlY3RzIGluIGdfYXNzZXJ0KCkKCSAgRml4ZXMgdW5pdCB0ZXN0IGZhaWx1cmVzIHdoZW4gLURHX0RJU0FCTEVfQVNTRVJUIGlzIHVzZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDY1NTEKCjIwMTMtMDktMTkgMTI6MDc6NTYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSAgZ3N0Y29udGV4dDogRml4IHJldHVybiB2YWx1ZXMgc29tZSBtb3JlCgkgIFJldHVybiB2YWx1ZSBpcyBhIGJvb2xlYW4gbm90IGEgcG9pbnRlcgoKMjAxMy0wOS0xOSAxMTo0OToyNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSAgY29udGV4dDogRml4IHJldHVybiB2YWx1ZXMgZm9yIGdzdF9jb250ZXh0X2hhc19jb250ZXh0X3R5cGUoKSBpbiBhc3NlcnRpb25zCgoyMDEzLTA5LTE5IDExOjM0OjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuMS45MCA9PT0KCjIwMTMtMDktMTkgMTA6NDg6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuMS45MAoKMjAxMy0wOS0xOSAxMDowNTo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMy0wOS0xOSAwOTo0OTo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNvbnRleHQ6IEFkZCBjb252ZW5pZW5jZSBmdW5jdGlvbiBnc3RfY29udGV4dF9oYXNfY29udGV4dF90eXBlKCkKCjIwMTMtMDktMTkgMDk6NDI6MTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDEzLTA5LTE4IDIzOjA3OjMxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBJbXBsZW1lbnQgZ2V0dGluZyB0aGUgbmFtZSBvZiB0aGUgY29udGV4dCBtZXNzYWdlIHR5cGVzCgoyMDEzLTA5LTE3IDIxOjM2OjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRleHQuYzoKCSAgY29udGV4dDogRml4IHVuaXQgdGVzdCBmb3IgR3N0Q29udGV4dCBjaGFuZ2VzCgoyMDEzLTA5LTE3IDE0OjM0OjQ3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IFVwZGF0ZSBmb3IgR3N0Q29udGV4dCBjaGFuZ2VzCgoyMDEzLTA5LTE3IDE0OjI5OjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY29udGV4dDogVXBkYXRlIGRvY3MKCjIwMTMtMDktMTcgMTQ6MjU6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBJbXBsZW1lbnQgY29udGV4dCBjYWNoaW5nIGFuZCBwcm9wYWdhdGlvbiBhZ2FpbgoKMjAxMy0wOS0xNyAxMzo1MDowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIG1lc3NhZ2UvcXVlcnk6IFNpbXBsaWZ5IENPTlRFWFQgbWVzc2FnZXMvcXVlcmllcyB0byBvbmx5IGNvbnRhaW4gYSBzaW5nbGUgdHlwZQoKMjAxMy0wOS0xNyAxMzozMzozMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZG9jcy9kZXNpZ24vcGFydC1jb250ZXh0LnR4dDoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSAgY29udGV4dDogVXBkYXRlIGRvY3VtZW50YXRpb24KCjIwMTMtMDktMTcgMTM6Mjg6NDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkgIGNvbnRleHQ6IENoYW5nZSBHc3RDb250ZXh0IHRvIGNvbnRhaW4gb25seSBhIHNpbmdsZSBjb250ZXh0CgkgIEl0IHdhcyB1bmludHVpdGl2ZSB0aGF0IEdzdENvbnRleHQgd2FzIGFjdHVhbGx5IGEgbGlzdCBvZiBkaWZmZXJlbnQKCSAgY29udGV4dHMuIEdzdENvbnRleHQgbm93IGlzIG9ubHkgYSB0eXBlIHN0cmluZyBhbmQgYSBzdHJ1Y3R1cmUgdG8KCSAgY29udGFpbiB0aGUgYWN0dWFsIGNvbnRleHQuCgoyMDEzLTA5LTE3IDEzOjEyOjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGVsZW1lbnQ6IFJlbW92ZSBHc3RDb250ZXh0IGNhY2hpbmcKCjIwMTMtMDktMTcgMTM6MTA6NTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkgIGNvbnRleHQ6IEFkZCBwZXJzaXN0ZW50IHF1YWxpZmllciBmb3IgYSBjb250ZXh0CgkgIE5vbi1wZXJzaXN0ZW50IGNvbnRleHRzIGFyZSByZW1vdmVkIHdoZW4gZWxlbWVudHMgZ28gYmFjawoJICB0byBOVUxMIHN0YXRlLCBwZXJzaXN0ZW50IGNvbnRleHRzIGFyZSBub3QuIEFwcGxpY2F0aW9ucwoJICBtb3N0IGxpa2VseSB3YW50IHRvIHNldCBwZXJzaXN0ZW50IGNvbnRleHRzLgoKMjAxMy0wOS0xNyAxMzoxMDoxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIHF1ZXJ5OiBNYWtlIENPTlRFWFQgcXVlcnkgdXBzdHJlYW0gYW5kIGRvd25zdHJlYW0KCjIwMTMtMDktMTcgMTM6MDk6MzQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBldmVudDogUmVtb3ZlIENPTlRFWFQgZG93bnN0cmVhbSBldmVudAoJICBUaGlzIGlzIGdvaW5nIHRvIGJlIGltcGxlbWVudGVkIHdpdGggYW4gdXBzdHJlYW0gcXVlcnkgaW5zdGVhZAoJICBmb3IgY29uc2lzdGVuY3kgYW5kIHNpbXBsaWNpdHkuCgoyMDEzLTA5LTEzIDE0OjQxOjQ1ICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXNoZ0BheGlzLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBTdG9wIGFsbCB1bnVzZWQgdGhyZWFkcyBpbiBHVGhyZWFkUG9vbCBpbiBnc3RfZGVpbml0KCkKCSAgU2luY2UgdGhlIGRlZmF1bHQgbnVtYmVyIG9mIG1heCB1bnVzZWQgdGhyZWFkcyBpbiBHVGhyZWFkUG9vbCBoYXMgYmVlbgoJICBjaGFuZ2VkIGZyb20gMCB0byAyIGl0IG5lZWRzIHRvIGJlIHNldCB0byAwIHRvIHN0b3AgYWxsIHRocmVhZHMgb3IKCSAgdmFsZ3JpbmQgd2lsbCByZXBvcnQgdGhlbSBhcyBtZW1vcnkgbGVha3MuCgoyMDEzLTA5LTEwIDE2OjM5OjMwICswMTAwICBSaWNvIFR6c2NoaWNoaG9seiA8cmljb3R6QHQtb25saW5lLmRlPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJICBjb250cm9sYmluZGluZ3M6IGZpeCBwc3BlYyByZWxheGF0aW9uIGZvciBjb250cm9sIHNvdXJjZSBwcm9wZXJ0aWVzCgkgIFRoZSBjaGFuZ2Ugc2hvdWxkIGhhdmUgYmVlbiBmcm9tIFBBUkFNX0NPTlNUUlVDVF9PTkxZIHRvCgkgIFBBUkFNX0NPTlNUUlVDVCwgb3RoZXJ3aXNlIGJpbmRpbmdzIGFyZSBhZmZlY3RlZCwgc2luY2UKCSAgdGhleSBsb29rIGZvciB0aGUgQ09OU1RSVUNUIGZsYWcuCgkgIFNlZSBlYzU1MzYzZAoKMjAxMy0wOS0xMCAxMDoxNTowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBPbmx5IHVwZGF0ZSBjdXJyZW50IGxldmVsIGlmIHdlIGFscmVhZHkgZG93bmxvYWRlZCBhIHJhbmdlCgkgIE90aGVyd2lzZSBxdWV1ZS0+bGV2ZWwgaXMgTlVMTCBhbmQgZGVyZWZlcmVuY2luZyB0aGF0IGlzIG5vdCBhIGdvb2QKCSAgaWRlYSBpbiBnZW5lcmFsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3NjQ4CgoyMDEzLTA5LTA5IDE1OjQwOjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0bWV0YS5oOgoJICBtZXRhOiBEZXByZWNhdGUgR1NUX01FVEFfVEFHX01FTU9SWQoJICBUaGUgR1F1YXJrcyBhcmUgbm90IGV4cG9ydGVkIGJ5IGFueSBwdWJsaWMgQVBJCgoyMDEzLTA4LTIyIDAwOjAyOjI4ICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQGVwaXRlY2guZXU+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWV0YTogQWRkIGEgI2RlZmluZSBmb3IgbWVtb3J5IG1ldGFkYXRhCgoyMDEzLTA4LTIyIDAwOjAxOjQ0ICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQGVwaXRlY2guZXU+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogaW1wbGVtZW50IGEgZGVmYXVsdCB0cmFuc2Zvcm1fbWV0YS4gSWYgYSBtZXRhZGF0YSBoYXMgbm8gZGVwZW5kZW5jeSBhcyBzaG93biBieSB0aGUgdGFncywgY29weSBpdC4KCjIwMTMtMDgtMjIgMjE6MzI6MzYgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAZXBpdGVjaC5ldT4KCgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkgIG1ldGE6IEFQSTogQWRkIGdzdF9tZXRhX2FwaV90eXBlX2dldF90YWdzKCkgdG8gZ2V0IGFsbCBtZXRhIHRhZ3MuCgoyMDEzLTA5LTA5IDE0OjIxOjU2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jYXBzZmlsdGVyLmM6CgkgIHRlc3RzL2NhcHNmaWx0ZXI6IEZpeCBtZW1vcnkgbGVhayBhbmQgY29tcGFyZSBjYXBzIGRpcmVjdGx5IGluc3RlYWQgb2Ygc3RyY21wKCkKCjIwMTMtMDktMDYgMjM6MDM6NTQgKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJuQGF4aXMuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY2Fwc2ZpbHRlci5jOgoJICB0ZXN0cy9jYXBzZmlsdGVyOiBUZXN0IGNhcHMtcmVsYXRlZCBxdWVyaWVzIGFuZCBwcm9wZXJ0eQoKMjAxMy0wOS0wNiAxNTowOTo0NiAtMDMwMCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhIDxnbnNAZ25vbWUub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgVXBkYXRlIHRoZSBidWZmZXJpbmcgc3RhdGUgYmVmb3JlIHN0YWxsaW5nIGZvciBtb3JlIGRhdGEKCSAgSW4gc29tZSBjYXNlcyB0aGUgd2FpdCBmb3IgbW9yZSBkYXRhIHdhcyBoYXBwZW5pbmcgd2l0aG91dCB1cGRhdGluZwoJICB0aGUgYnVmZmVyaW5nIHN0YXRlLCBtZWFuaW5nIHRoZSBBUEkgdXNlciB3b3VsZCBub3QgYmUgYWJsZSB0byBub3RpY2UKCSAgaXQgc2hvdWxkIHBhdXNlIHRoZSBwaXBlbGluZSBhbmQgdXBkYXRlIFVJIHRvIGluZGljYXRlIHRoYXQgaXMgdGhlCgkgIGNhc2UsIHRoZSB2aWRlbyB3b3VsZCBsaWtlbHkgc3R1dHRlciBpbnN0ZWFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3NjQ4CgoyMDEzLTA5LTA0IDE1OjI4OjEwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcHJlc2VydmUgc2VxbnVtIG9uIHNlZ21lbnRzIGFmdGVyIHNlZWtzCgkgIFRoZSBzZXFudW0gb2YgdGhlIHNlZ21lbnQgYWZ0ZXIgYSBzZWVrIHNob3VsZCBiZSB0aGUgc2FtZSBvZgoJICB0aGUgc2VlayBldmVudC4gRG93bnN0cmVhbSBlbGVtZW50cyBtaWdodCByZWx5IG9uIHNlcW51bXMgdG8KCSAgaWRlbnRpZnkgZXZlbnRzIHJlbGF0ZWQgdG8gYSBzZWVrLgoJICBUaGlzIGlzIHBhcnRpY3VsYXJseSBpbXBvcnRhbnQgd2hlbiBhIGRlbXV4ZXIgbWFwcyBhIFRJTUUgc2VlawoJICBpbnRvIGEgQllURVMgc2VlayBmb3IgdXBzdHJlYW0gYW5kIGl0IG5lZWRzIHRvIGlkZW50aWZ5IHRoZQoJICBjb3JyZXNwb25kaW5nIHNlZ21lbnQgZXZlbnQgYW5kIG1hcCBpdCBiYWNrIGludG8gVElNRSB0byBwdXNoCgkgIGRvd25zdHJlYW0sIHBvc3NpYmx5IHVzaW5nIHRoZSB2YWx1ZXMgZnJvbSB0aGUgb3JpZ2luYWwgc2VlawoJICBldmVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzUzMAoKMjAxMy0wOS0wNSAxNDoxNDo0MiArMDIwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVybWVyYWxpQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IERvbid0IHVucmVmIE5VTEwgR3N0Q29sbGVjdERhdGEKCSAgSWYgYSBwYWQgaXMgcmVtb3ZlZCB3aGlsZSBhIGNvbGxlY3RwYWRzIGVsZW1lbnQgKHNheSBhZGRlcikgaXMgaW4gYSBjaGFpbgoJICBmdW5jdGlvbiB3YWl0aW5nIHRvIGJlIGNvbGxlY3RlZCwgdGhlcmUgaXMgYSBwb3NzaWJpbGl0eSB0aGF0IGFuIHVucmVmIGhhcHBlbnMKCSAgb24gYSBOVUxMIHBvaW50ZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDc1MzYKCjIwMTMtMDktMDQgMTc6MTE6MjAgKzAyMDAgIENocmlzdGlhbiBGcmVkcmlrIEthbGFnZXIgU2NoYWxsZXIgPHVyYWV1c0BsaW51eHJpc2luZy5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgUmVtb3ZlIFB5WE1MIGZyb20gc3BlYyBmaWxlLCBpdCBpcyBub3QgbG9uZ2VyIG5lZWRlZAoKMjAxMy0wOS0wNCAxNDo0MDo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IEFkZCBtaXNzaW5nIGJyZWFrIGFmdGVyIGhhbmRsaW5nIHRoZSBHQVAgZXZlbnQKCSAgVGhhbmtzIHRvIEVkd2FyZCBIZXJ2ZXkgZm9yIG5vdGljaW5nLgoKMjAxMy0wOS0wNCAwOToxODo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHNjcmlwdHMvZ3N0LXBsb3QtdGltZWxpbmUucHk6CgkqIHRvb2xzL01ha2VmaWxlLmFtOgoJICB0b29sczogbW92ZSBnc3QtcGxvdC10aW1lbGluZS5weSBpbnRvIHNjcmlwdHMgZGlyZWN0b3J5CgkgIFNvIGl0J3Mgbm90IGluIFBBVEggaW4gYW4gdW5pbnN0YWxsZWQgc2V0dXAgKHRod2FydGluZwoJICBnc3QtcGxheSBhdXRvY29tcGxldGlvbikuCgoyMDEzLTA5LTAzIDIzOjU5OjA1ICswMjAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IERvbid0IHJlZHVjZSBzaW5nbGUgcXVldWUgdmlzaWJsZSBzaXplIGJlbG93IGl0cyBjdXJyZW50IGxldmVsCgkgIElmIHRoZSBtdWx0aXF1ZXVlIGhhcyBhdXRvbWF0aWNhbGx5IGdyb3duIGNoYW5jZXMgYXJlIGdvb2QgdGhhdAoJICB3ZSB3aWxsIGNhdXNlIHRoZSBwaXBlbGluZSB0byBzdGFydmUgaWYgdGhlIG1heGltdW0gbGV2ZWwgaXMgcmVkdWNlZAoJICBiZWxvdyB0aGF0IGF1dG9tYXRpY2FsbHkgZ3Jvd24gc2l6ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzE1NgoKMjAxMy0wOS0wMiAxMzo1Mzo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogRG9uJ3QgYWRqdXN0IHNlZ21lbnQtPnN0YXJ0IHRvIHRoZSBjdXJyZW50IHRpbWUgd2hlbiBzd2l0Y2hpbmcgcGFkcwoJICBUaGlzIGRvZXMgbm90IG1ha2UgYW55IHNlbnNlIGF0IGFsbCBhbmQgYnJlYWtzIHRpbWVzdGFtcC0+cnVubmluZ190aW1lCgkgIGNhbGN1bGF0aW9ucyBpbiB1bnByZWRpY3RhYmxlIHdheXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDcxMzAKCjIwMTMtMDgtMjkgMjM6MTg6MzEgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAZXBpdGVjaC5ldT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBEZWxldGUgbGluayBkaXJlY3RseSBpbiBwZW5kaW5nX2V2ZW50cy4KCSAgV2hlbiByZW1vdmluZyBhIHNlZ21lbnQgZXZlbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDcwODgKCjIwMTMtMDgtMjkgMTE6MDc6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBkZW1vdGUgbG9nIG1lc3NhZ2UsIGRvbid0IHNwYW0gSU5GTyBsZXZlbCB3aGVuIGhhbmRsaW5nIGJ1ZmZlciBsaXN0cwoKMjAxMy0wOC0yOCAxMzoyNjoyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjEuNCA9PT0KCjIwMTMtMDgtMjggMTI6MzY6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuMS40CgoyMDEzLTA4LTI4IDEyOjM2OjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDEzLTA4LTI4IDEyOjMwOjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMy0wOC0yNyAwOTozMToyMiArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGZpbGVzaW5rOiBwbGVhc2UgZ2NjIChhdm9pZCBhIHdhcm5fdW51c2VkX3Jlc3VsdCB3YXJuaW5nKQoKMjAxMy0wOC0yNyAwNzo1MTozNSArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkgIGZpbGVzaW5rOiBmbHVzaCAoZGlzY2FyZCBkYXRhKSBvbiBGTFVTSF9TVE9QCgkgIFJlc2V0IHRoZSB3cml0ZSBwb3NpdGlvbiB0byAwIGFuZCB0cnVuY2F0ZSB0aGUgZmlsZSBvbiBGTFVTSF9TVE9QLgoKMjAxMy0wOC0yNyAwNzowNToxMSArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJICB0ZXN0czogZmlsZXNpbms6IHNtYWxsIHJlZmFjdG9yaW5nCgoyMDEzLTA4LTI2IDEzOjE5OjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogZ3N0LWxhdW5jaDogZG9uJ3QgcHJpbnQgcHJvcGVydGllcyBiZWluZyByZXNldCB3aGVuIHNodXR0aW5nIGRvd24KCSAgSXQncyBqdXN0IG5vaXNlLgoKMjAxMy0wOC0yMiAxOTowMTozMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogRG9uJ3QgcHVzaCBvdXQgaWRlbnRpY2FsIGNhcHMKCSAgVGhpcyBhdm9pZHMgdHJpZ2dlcmluZyBwbGVudHkgb2YgZXh0cmEgY29kZS9tZXRob2RzL292ZXJoZWFkIGRvd25zdHJlYW0gd2hlbgoJICB3ZSBjYW4ganVzdCBxdWlja2x5IGNoZWNrIHdoZW5ldmVyIHdlIHdhbnQgdG8gc2V0IGNhcHMgd2hldGhlciB0aGV5IGFyZQoJICBpZGVudGljYWwgb3Igbm90CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDY2MDAKCjIwMTMtMDgtMjEgMTI6MjE6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkgIGRvY3M6IGZsZXNoIG91dCBnc3Rfc2FtcGxlX2dldF9idWZmZXIoKSBhIGxpdHRsZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA2NDc4CgoyMDEzLTA4LTIwIDIzOjU5OjI5IC0wNzAwICBLZXJyaWNrIFN0YWxleSA8a2Vycmlja0BrZXJyaWNrc3RhbGV5LmNvbT4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBtYWtlIGdyYW1tYXIueSB3b3JrIHdpdGggQmlzb24gMwoJICBZWUxFWF9QQVJBTSBpcyBubyBsb25nZXIgc3VwcG9ydGVkIGluIEJpc29uIDMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDY0NjIKCjIwMTMtMDgtMjAgMTc6MTU6NDEgKzA5MDAgIFdvbmNodWwgTGVlIDxjaHVsMDgxMkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0c2FtcGxlLmg6CgkgIHNhbXBsZTogQWRkIGdzdF9zYW1wbGVfY29weSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDY0NTQKCjIwMTMtMDgtMTkgMTQ6NTU6MjIgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBGaXggZ3N0X2J1ZmZlcl9tZW1jbXAoKSB3aGVyZSB0aGUgYnVmZmVyIGlzIHNtYWxsZXIgdGhhbiBzaXplCgkgIEFsc28gYWRkIHVuaXQgdGVzdHMgZm9yIGdzdF9idWZmZXJfbWVtY21wCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDYxNjIKCjIwMTMtMDgtMjAgMTc6MDY6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZG9jczogZmxlc2ggb3V0IGdzdF9lbGVtZW50X3F1ZXJ5X3tkdXJhdGlvbixwb3NpdGlvbn0gZG9jcyBhIGJpdAoKMjAxMy0wOC0xNCAxNjoxODo1OSArMDEwMCAgTWF0dGhpZXUgQm91cm9uIDxtYXR0aGlldS5ib3Vyb25AY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IGhhbmRsZSBwdWJsaXNoZXIgYW5kIGludGVycHJldGVkLWJ5IHRhZ3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTk5OQoKMjAxMy0wOC0yMCAxMzo1ODoyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IERvbid0IGNhbGwgbWVtY3B5KCkgd2l0aCBOVUxMIHNyYyBhbmQgMCBsZW5ndGgKCjIwMTMtMDgtMjAgMTA6MTY6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IFByb3Blcmx5IHVubG9jayB0aGUgc2lua3BhZCBzdHJlYW1pbmcgdGhyZWFkIHdoZW4gZGVhY3RpdmF0aW5nIHRoZSBwYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTgzNQoKMjAxMy0wOC0yMCAxMDoxNjowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBQcm9wZXJseSB1bmxvY2sgdGhlIHNpbmtwYWQgc3RyZWFtaW5nIHRocmVhZCB3aGVuIGRlYWN0aXZhdGluZyB0aGUgcGFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDYzNjAKCjIwMTMtMDgtMTkgMTY6Mzg6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBDbGVhbiB1cCBhZnRlciB0aGUgc3RyZWFtaW5nIHRocmVhZCBoYXMgc3RvcHBlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1ODM1CgoyMDEzLTA4LTE5IDE2OjM4OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IENsZWFuIHVwIGFmdGVyIHRoZSBzdHJlYW1pbmcgdGhyZWFkIGhhcyBzdG9wcGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU4MzUKCjIwMTMtMDgtMTkgMTY6Mzg6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IENsZWFuIHVwIGFmdGVyIHRoZSBzdHJlYW1pbmcgdGhyZWFkIGhhcyBzdG9wcGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU4MzUKCjIwMTMtMDctMDEgMTQ6MDQ6NDYgLTA2MDAgIEJyZW5kYW4gTG9uZyA8Yi5sb25nQGNhYmxlbGFicy5jb20+CgoJKiBnc3QvZ3N0cGFyc2UuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBBZGQgR1NUX0ZMQUdfTk9fU0lOR0xFX0VMRU1FTlRfQklOUwoJICBUaGlzIG1ha2VzIGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbigpIHJldHVybiBhbiBlbGVtZW50IGluc3RlYWQgb2YKCSAgYSBiaW4gaWYgdGhlcmUncyBvbmx5IG9uZSBlbGVtZW50LiBBbHNvIGNoYW5nZWQgZ3N0cGFyc2UuYyB0byB1c2UgdGhpcywKCSAgc28gZ3N0LWxhdW5jaCB3b24ndCBjcmVhdGUgc3VwZXJmbHVvdXMgYmlucy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMzQwNQoKMjAxMy0wOC0xNiAyMDozNjo1MyArMDIwMCAgQXJuYXVkIFZyYWMgPGF2cmFjQGZyZWVib3guZnI+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IHJldHVybiBOVUxMIHdoZW4gcGFyc2luZyB1cmkgcmVkaXJlY3Rpb24gdGhhdCB3YXMgbm90IHNldAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA2MTYwCgoyMDEzLTA4LTE4IDExOjQ4OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogVXBkYXRlIHNpbmNlIG1hcmtlciBmb3IgZ3N0X2J1ZmZlcl9leHRyYWN0X2R1cCgpIHRvIDEuMC4xMAoKMjAxMy0wOC0xNiAxNjo0NTo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZG9uJ3QgY3Jhc2ggb24gRU9TIGlmIHF1ZXVlIGlzIGVtcHR5CgkgIEZpeGVzIHNwdXJpb3VzIGNyYXNoIGluIHRlc3Rfc2ltcGxlX3NodXRkb3duX3doaWxlX3J1bm5pbmcKCSAgdW5pdCB0ZXN0LgoKMjAxMy0wOC0xNiAxNjoyODoxMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZG9uJ3QgY2hhbmdlIGdsb2JhbCBidWZmZXJpbmcgc3RhdGUgZnJvbSB3aXRoaW4gcXVlcnkgaGFuZGxlcgoJICBXaGVuIGEgYnVmZmVyaW5nIHF1ZXJ5IGlzIGhhbmRsZWQgaXQgdXNlcyB0aGUgZ2V0X2J1ZmZlcmluZ19wZXJjZW50KCkKCSAgZnVuY3Rpb24gdG8gZ2V0IHNvbWUgc3RhdGl0aWNzLiBVbmZvcnR1bmF0ZWx5IHRoaXMgZnVuY3Rpb24gYWxzbwoJICBjYWxjdWxhdGVzIHdoZXRoZXIgdGhlIHF1ZXVlIHNob3VsZCBiZSBidWZmZXJpbmcgYW5kIGFkYXB0cyB0aGUKCSAgZ2xvYmFsIHF1ZXVlMiBzdGF0ZSBpbiBjYXNlIG9mIHN0YXRlIHRyYW5zaXRpb25zIGZyb20vdG8gYnVmZmVyaW5nCgkgIChpbmNsdWRpbmcgd2hldGhlciBhIGJ1ZmZlcmluZyBtZXNzYWdlIHdhcyBwb3N0ZWQgb24gdGhlIGJ1cyEpLgoJICBUaGlzIG1lYW5zIHRoYXQgdGhlcmUgaXMgYSByYWNlIHdoaWNoIGNhbiBjYXVzZSBidWZmZXJpbmcgbWVzc2FnZXMKCSAgdG8gbmV2ZXIgcG9zdGVkIGlmIHRoZSBnbG9iYWwgc3RhdGUgY2hhbmdlcyBoYXBwZW4gYXMgYSByZXN1bHQgb2YgYWEKCSAgcXVlcnkgaW5zdGVhZCBvZiByZXN1bHRpbmcgZnJvbSBieXRlcyBmbG93aW5nIGluL291dC4KCSAgU3BvdHRlZCBieSBTam9lcmQgU2ltb25zLgoJICBDaGFuZ2UgdG8gb25seSBxdWVyeSBzdGF0ZSBpbiBnZXRfYnVmZmVyaW5nX3BlcmNlbnQoKSBhbmQgdXBkYXRlCgkgIHN0YXRlIG9ubHkgaW4gdXBkYXRlX2J1ZmZlcmluZygpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1MzMyCgoyMDEzLTA4LTE2IDEyOjU0OjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiB1cGRhdGUgYnVmZmVyaW5nIHdoZW4gY2hhbmdpbmcgY2FwYWNpdHkKCSAgV2hlbiB0aGUgY2FwYWNpdHkgb2YgdGhlIHF1ZXVlIGNoYW5nZXMsIG1ha2Ugc3VyZSB3ZSBwb3N0IGFuIHVwZGF0ZWQgYnVmZmVyaW5nCgkgIG1lc3NhZ2UgYmVjYXVzZSB3ZSBtaWdodCBzdWRkZW5seSBoYXZlIGNvbXBsZXRlZCB0aGUgYnVmZmVyaW5nIHN0YWdlLgoKMjAxMy0wOC0xNSAxNTozNTowOCArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzaGdAYXhpcy5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIEZyZWUgdGhyZWFkIHBvb2xzIGluIGdzdF9kZWluaXQoKQoKMjAxMy0wOC0xNiAxMTowMzozMCArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzaGdAYXhpcy5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogQ2FsbCBnc3RfZGVpbml0KCkgYXQgZXhpdCBvZiBhbGwgcHJvY2Vzc2VzCgoyMDEzLTA4LTE0IDIxOjQxOjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGNsb2NrOiBzaW1wbGlmeSBpbnRlcm5hbCBnc3RfY2xvY2tfcmV0dXJuX2dldF9uYW1lKCkgaGVscGVyCgoyMDEzLTA4LTE0IDE3OjQ0OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGltcHJvdmUgZmx1c2gtc3RhcnQgaGFuZGxpbmcKCSAgVXNlIGN1c3RvbSBjb2RlIHRvIGltcGxlbWVudCBmbHVzaC1zdG9wLCB3ZSBjYW4ndCByZXVzZSB0aGUgc2V0X2ZsdXNoaW5nIGNvZGUKCSAgYmVjYXVzZSB3ZSBjYW4ndCB0b3VjaCB0aGUgbGl2ZV9wbGF5aW5nIGZsYWcgYW5kIHdlIG5lZWQgdG8gc2lnbmFsIHRoZQoJICBzdHJlYW1pbmcgdGhyZWFkLgoKMjAxMy0wOC0xNCAxNzoxNDoxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBzdG9wIGZsdXNoaW5nIGluIGZsdXNoLXN0b3AKCjIwMTMtMDgtMTQgMTY6NTg6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaGFuZGxlIGZsdXNoIGJldHRlcgoJICBVbmxvY2sgdGhlIHN0cmVhbWluZyB0aHJlYWQgd2hlbiBmbHVzaGluZyBzbyB0aGF0IHdlIGNhbgoJICBpbnNlcnQgdGhlIGZsdXNoLXN0b3AgY29ycmVjdGx5LgoKMjAxMy0wOC0xNCAxNTo0Njo1NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiAuZ2l0aWdub3JlOgoJICAuZ2l0aWdub3JlOiBpZ25vcmUgLmRpcnN0YW1wCgoyMDEzLTA4LTE0IDA3OjIxOjA2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBjaGVjazogRG9uJ3QgdXNlIG5vZGlzdCBoZWFkZXJzIG9uIGdpciBzY2FubmVyCgkgIEp1c3QgY3JlYXRlcyBub2lzZSBhbmQgYm9ndXMgc3ltYm9scwoKMjAxMy0wOC0wNyAxODoyMDowMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkgIGdzdDogbWlub3IgZG9jc3RyaW5nIGZpeHVwcyB0byBtYWtlIGctaSBoYXBweQoJICBub3RlOiB0aGUgI2lmbmRlZiBtb3ZlIGlzIGFjdHVhbGx5IGEgbW92ZSBvZiB0aGUgIlNFQ1RJT04iIGRvY3N0cmluZwoKMjAxMy0wOC0xMyAxNzoxNDo1MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiAuZ2l0aWdub3JlOgoJICAuZ2l0aWdub3JlOiBJZ25vcmUgZmlsZXMgZnJvbSBhdXRvbWFrZSB0ZXN0LWRyaXZlcgoKMjAxMy0wOC0wNyAxODoyNDo0MCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEFkZCBhIHByb3BlcnR5IHRvIGRpc2FibGUgcGFzc3Rocm91Z2gKCSAgSW4gc29tZSBzcGVjaWZpYyBjYXNlcyAobGlrZSB0cmFuc211eGluZykgd2Ugd2FudCB0byBmb3JjZSB0aGUgZWxlbWVudAoJICB0byBhY3R1YWxseSBwYXJzZSBhbGwgaW5jb21pbmcgZGF0YSBldmVuIGlmIHRoZSBlbGVtZW50IGRlZW1zIGl0IGlzIG5vdAoJICBuZWNlc3NhcnkuCgkgIFRoaXMgcHJvcGVydHkgc2ltcGx5IGlnbm9yZXMgcmVxdWVzdHMgZnJvbSB0aGUgZWxlbWVudCB0byBlbmFibGUgcGFzc3Rocm91Z2gKCSAgbW9kZSB3aGljaCByZXN1bHRzIGluIHByb2Nlc3NpbmcgYWx3YXlzIGJlaW5nIGVuYWJsZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU2MjEKCjIwMTMtMDgtMDcgMjE6MjY6MDEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZGF0YXF1ZXVlOiBhZGQgZ3N0X2RhdGFfcXVldWVfcHVzaF9mb3JjZQoJICBBZGRzIGEgdmFyaWFudCBvZiB0aGUgX3B1c2ggZnVuY3Rpb24gdGhhdCBkb2Vzbid0IGNoZWNrIHRoZSBxdWV1ZSBsaW1pdHMKCSAgYmVmb3JlIGFkZGluZyB0aGUgbmV3IGl0ZW0uIEl0IGlzIHVzZWZ1bCB3aGVuIHB1c2hpbmcgYW4gZWxlbWVudCB0byB0aGUKCSAgcXVldWUgc2hvdWxkbid0IGxvY2sgdGhlIHRocmVhZC4KCSAgT25lIHBhcnRpY3VsYXIgc2NlbmFyaW8gaXMgd2hlbiB0aGUgcXVldWUgaXMgdXNlZCB0byBzZXJpYWxpemUgYnVmZmVycwoJICBhbmQgZXZlbnRzIHRoYXQgYXJlIGdvaW5nIHRvIGJlIHB1c2hlZCBmcm9tIGFub3RoZXIgdGhyZWFkLiBUaGUKCSAgZGF0YXF1ZXVlIHNob3VsZCBoYXZlIGEgbGltaXQgb24gdGhlIGFtb3VudCBvZiBidWZmZXJzIHRvIGJlIHN0b3JlZCB0bwoJICBhdm9pZCBsYXJnZSBtZW1vcnkgY29uc3VtcHRpb24sIGJ1dCBldmVudHMgY2FuIGJlIGNvbnNpZGVyZWQgdG8gaGF2ZQoJICBuZWdsaWdpYmxlIGltcGFjdCBvbiBtZW1vcnkgY29tcGFyZWQgdG8gYnVmZmVycy4gU28gaXQgaXMgdXNlZnVsIHRvIGJlCgkgIHVzZWQgdG8gcHVzaCBpdGVtcyBpbnRvIHRoZSBxdWV1ZSB0aGF0IGNvbnRhaW4gZXZlbnRzLCBldmVuIHRob3VnaCB0aGUKCSAgcXVldWUgaXMgYWxyZWFkeSBmdWxsLCBpdCBzaG91bGRuJ3QgbWF0dGVyIGluc2VydGluZyBhbiBpdGVtIHRoYXQgaGFzCgkgIG5vIHNpZ25pZmljYXRpdmUgc2l6ZS4KCSAgVGhpcyBzY2VuYXJpbyBoYXBwZW5zIG9uIGFkYXB0aXZlIGVsZW1lbnRzIChkYXNoZGVtdXggLyBtc3NkZW11eCkgYXMKCSAgdGhlcmUgaXMgYSBzaW5nbGUgZG93bmxvYWQgdGhyZWFkIGZldGNoaW5nIGJ1ZmZlcnMgYW5kIHB1dHRpbmcgaW50byB0aGUKCSAgZGF0YXF1ZXVlcyBmb3IgdGhlIHN0cmVhbXMuIFRoaXMgc2FtZSBkb3dubG9hZCB0aHJlYWQgY2FuIGFscyBnZW5lcmF0ZQoJICBldmVudHMgaW4gc29tZSBzaXR1YXRpb25zIGFzIGNhcHMgY2hhbmdlcywgZW9zIG9yIGEgaW50ZXJuYWwgY29udHJvbAoJICBldmVudHMuIFRoZXJlIGNhbiBiZSBhIGRlYWRsb2NrIGF0IHByZXJvbGwgaWYgdGhlIGZpcnN0IGJ1ZmZlciBmZXRjaGVkCgkgIGlzIGxhcmdlIGVub3VnaCB0byBmaWxsIHRoZSBkYXRhcXVldWUgYW5kIHRoZSBkb3dubG9hZCB0aHJlYWQgYW5kIHRoZQoJICBuZXh0IGl0ZXJhdGlvbiBvZiB0aGUgZG93bmxvYWQgdGhyZWFkIGRlY2lkZXMgdG8gcHVzaCBhbiBldmVudCB0byB0aGlzCgkgIHNhbWUgZGF0YXF1ZXVlIGJlZm9yZSBmZXRjaGluZyBidWZmZXJzIHRvIG90aGVyIHN0cmVhbXMsIGlmIHRoaXMgcHVzaAoJICBsb2NrcywgdGhlIHBpcGVsaW5lIHdpbGwgYmUgc3R1Y2sgaW4gcHJlcm9sbCBhcyBubyBtb3JlIGJ1ZmZlcnMgd2lsbCBiZQoJICBkb3dubG9hZGVkLgoJICBUaGVyZSBpcyBhIHNvbWV3aGF0IGNvbW1vbiBwcmFjdGljZSBpbiBkYXNoIHN0cmVhbXMgdG8gaGF2ZSBhIHNpbmdsZQoJICB2ZXJ5IGxhcmdlIGJ1ZmZlciBmb3IgYXVkaW8gYW5kIG9uZSBmb3IgdmlkZW8sIHNvIHRoaXMgd2lsbCBhbHdheXMKCSAgaGFwcGVuIGFzIHRoZSBkb3dubG9hZCB0aHJlYWQgd2lsbCBoYXZlIHRvIHB1c2ggYW4gRU9TIHJpZ2h0IGFmdGVyCgkgIGZldGNoaW5nIHRoZSBmaXJzdCBidWZmZXIgZm9yIGFueSBzdHJlYW0uCgkgIEFQSTogZ3N0X2RhdGFfcXVldWVfcHVzaF9mb3JjZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1Njk0CgoyMDEzLTA4LTEzIDEzOjA2OjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkgIHN5c21lbTogT25seSBjb3B5IHRoZSByZXF1ZXN0ZWQgcGFydCBvZiBtZW1vcnkgaW5zdGVhZCBvZiB0aGUgY29tcGxldGUgc291cmNlIG1lbW9yeQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1Njc4CgoyMDEzLTA4LTEzIDEyOjExOjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBxdWVyeTogYWRkIFNpbmNlIG1hcmtlcnMgZm9yIG5ldyBBUEkgYW5kIGFkZCB0byBleHBvcnRzIGZpbGUKCjIwMTMtMDctMjMgMTY6MjU6MjcgKzAyMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8eWxhdHV5YUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGZpeCBhbm5vdGF0aW9uIGZvciBnc3RfcXVlcnlfcGFyc2VfdXJpCgoyMDEzLTA0LTE5IDEyOjE0OjU0ICswMjAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPHlsYXR1eWFAZ21haWwuY29tPgoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIHF1ZXJ5OiBhZGQgbmV3IHJlZGlyZWN0aW9uIHVyaSB0aGUgVVJJIHF1ZXJ5CgoyMDEzLTA4LTEyIDA5OjI1OjM0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGFkZCBzb21lIG1pc3NpbmcgJ3RyYW5zZmVyIG5vbmUnIGdpIGFubm90YXRpb25zCgkgIFRoZSBjdXJyZW50IGRvY3VtZW50YXRpb24gaXMgY29udHJvdmVyc2UsIHdoaWxlIGl0IHN0YXRlcyB0aGF0IHRoZQoJICByZXR1cm5lZCB2YWx1ZSBpcyB2YWxpZCBvbmx5IHdoaWxlIHRoZSBxdWVyeSBpcyBpcyB2YWxpZCwgd2hpY2ggcHJlc3VtZXMKCSAgYSAndHJhbnNmZXIgbm9uZScgcG9saWN5LiBCdXQgdGhlIHRvb2x0aXAgZm9yIHRoZSAnb3V0JyBhbm5vdGF0aW9uCgkgIHN0YXRlcyB0aGUgZGVmYXVsdCBpcyAndHJhbnNmZXItZnVsbCcuCgkgIEFkZCB0aGUgbWlzc2luZyAndHJhbnNmZXIgbm9uZScgYW5ub3RhdGlvbnMgdG8gZml4IHRoaXMuCgoyMDEzLTA4LTA4IDEyOjA4OjMxICswMjAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSAgYnl0ZXJlYWRlcjogQWNjZWxlcmF0ZSBNUEVHL0gyNjQgc3RhcnQgY29kZSBzY2FubmluZwoJICBBY2NlbGVyYXRlIE1QRUcvSDI2NCBzdGFydCBjb2RlIHNjYW5uaW5nIHVzaW5nIEJveWVyLU1vb3IgYmFkIGNoYXJhY3RlcgoJICBoZXVyaXN0aWMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDIzNTcKCjIwMTMtMDgtMTAgMTE6MzE6MjMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGlwZWxpbmU6IGctaTogYWxsb3cgY2xvY2sgdG8gYmUgTlVMTCBpbiBnc3RfcGlwZWxpbmVfdXNlX2Nsb2NrKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTc1MQoKMjAxMy0wOC0wNyAxNDoxNzoyOCAtMDMwMCAgQWRyaWFuIFBhcmRpbmkgPHB1YmxpY29AdGFuZ29wYXJkby5jb20uYXI+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGNvbnRyb2xsZXI6IGZpeGVzIGludCBvdmVyZmxvdyB3aXRoIHByb3BlcnRpZXMgdGhhdCBzcGFuICstSU5UX01BWAoJICBXaGVuIHRoZSByYW5nZSBmb3IgYSBwcm9wZXJ0eSBpcyBkZWZpbmVkIGFzIC1JTlRfTUFYLTEgLi4gSU5UX01BWCwgbGlrZQoJICB0aGUgeHBvcyBpbiBhIHZpZGVvbWl4ZXIgdGhlIGZvbGxvd2luZyBleHByZXNzaW9uIGluIHRoZSBtYWNybwoJICBkZWZpbml0aW9ucyBvZiBjb252ZXJ0X2dfdmFsdWVfdG9fIyN0eXBlIChhbmQgdGhlIGVxdWl2YWxlbnQgaW4KCSAgY29udmVydF92YWx1ZV90b18jI3R5cGUpCgkgIHYgPSBwc3BlYy0+bWluaW11bSArIChnIyN0eXBlKSBST1VORElOR19PUCAoKHBzcGVjLT5tYXhpbXVtIC0gcHNwZWMtPm1pbmltdW0pICogcyk7CgkgIGFyZSBjb252ZXJ0ZWQgdG86CgkgIHYgPSAtMjE0NzQ4MzY0OCArIChnIyN0eXBlKSBST1VORElOR19PUCAoKDIxNDc0ODM2NDcgLSAtMjE0NzQ4MzY0OCkgKiBzKTsKCSAgKDIxNDc0ODM2NDcgLSAtMjE0NzQ4MzY0OCkgb3ZlcmZsb3dzIHRvIC0xIGFuZCB0aGUgbmV0IHJlc3VsdCBpczoKCSAgdiA9IC0yMTQ3NDgzNjQ4ICsgKGcjI3R5cGUpIFJPVU5ESU5HX09QICgtMSAqIHMpOwoJICBzbyB2IG9ubHkgdGFrZXMgdGhlIHZhbHVlcyAtMjE0NzQ4MzY0OCBmb3IgcyA9PSAwIGFuZCAyMTQ3NDgzNjQ3CgkgIGZvciBzID09IDEuCgkgIFJld3JpdGluZyB0aGUgZXhwcmVzc2lvbiBhcyBtaW5pbXVtKigxLXMpICsgbWF4aW11bSpzIGdpdmVzIHRoZSBjb3JyZWN0CgkgIHJlc3VsdCBpbiB0aGlzIGNhc2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnLy9zaG93X2J1Zy5jZ2k/aWQ9NzA1NjMwCgoyMDEzLTA4LTAyIDEzOjMxOjU5ICswMjAwICBMdWJvc3ogU2FybmVja2kgPGx1Ym9zekBnbWFpbC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIGJ1aWxkOiBhZGQgc3ViZGlyLW9iamVjdHMgdG8gQU1fSU5JVF9BVVRPTUFLRQoJICBGaXhlcyB3YXJuaW5ncyB3aXRoIGF1dG9tYWtlIDEuMTQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTM1MAoKMjAxMy0wOC0wMiAxNjoyMTo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJICBkZXNpZ246IGZpeCB0eXBvCgoyMDEzLTA3LTI5IDE1OjQ4OjMyICswMjAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRml4IGJhY2t3YXJkcyBzZWVrcyBpbnRvIHVuZG93bG9hZGVkIHJhbmdlcwoJICBXaGVuIGluIGRvd25sb2FkIGJ1ZmZlcmluZyBtb2RlIHF1ZXVlMiBkaWRuJ3QgY2hlY2sgaWYgYSByYW5nZSBvZmZzZXQgaXMKCSAgaW4gYSB1bmRvd25sb2FkZWQgcmFuZ2UgYmVmb3JlIHRoZSBjdXJyZW50bHkgaW4tcHJvZ3Jlc3MgcmFuZ2UuIENhdXNpbmcKCSAgc2Vla3MgdG8gYW4gZWFybGllciBvZmZzZXQgdG8sIHdlbGwsIHRha2UgYSB3aGlsZS4KCjIwMTMtMDctMzAgMTk6Mjc6MjMgKzAyMDAgIEtqYXJ0YW4gTWFyYWFzIDxrbWFyYWFzQGdub21lLm9yZz4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSAgZG9jczogc29tZSBzbWFsbCBndGstZG9jIG1hcmt1cCBmaXhlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1MTU2CgoyMDEzLTA3LTMwIDE5OjI3OjIzICswMjAwICBLamFydGFuIE1hcmFhcyA8a21hcmFhc0Bnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogcmVnaXN0ZXIgbmV3IGNvbG9yIG1vZGUgZW51bSwgZml4aW5nICdtYWtlIGNoZWNrJwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1MTU2CgoyMDEzLTA0LTE2IDE5OjA0OjQ4ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgdHlwZWZpbmRoZWxwZXI6IEF2b2lkIHVzaW5nIGJ1ZmZlcl9nZXRfc2l6ZSBpbiB0aWdodCBsb29wcwoJICBDYWxsaW5nIGdzdF9idWZmZXJfZ2V0X3NpemUgcmVwcmVzZW50ZWQgMi8zIG9mIHRoZSBjb3N0IG9mIGhlbHBlcl9maW5kX3BlZWsKCSAgd2hpY2ggd2FzIGNhbGxlZCB3aGVuZXZlciBhIHR5cGVmaW5kZnVuY3Rpb24gd2FudGVkIHRvIHBlZWsgYXQgZGF0YS4KCSAgV2UgYWxyZWFkeSBrbm93IHRoZSBzaXplIChmcm9tIHRoZSBHc3RNYXBJbmZvKSwgc28ganVzdCB1c2UgdGhhdC4KCjIwMTMtMDctMjkgMTk6Mzg6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwby9MSU5HVUFTOgoJKiBwby9iZy5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbHQucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3YucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEzLTA3LTI5IDE5OjEzOjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29tbW9uOgoJICBjb21tb246IHJldmVydCBhY2NpZGVudGFsIHJlLXdpbmRpbmcgb2YgY29tbW9uIHN1Ym1vZHVsZQoKMjAxMy0wNy0yNiAxNjoxNToyNCArMDIwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IENsYXJpZnkgdGhlIGVzdGltYXRlZC10b3RhbCBkb2N1bWVudGF0aW9uCgkgIFR3ZWFrIHRoZSBkb2N1bWVudGF0aW9uIHNsaWdodGx5IHRvIGNsYXJpZnkgdGhhdCB0aGUgZXN0aW1hdGVkLXRvdGFsIGluCgkgIGEgYSBCdWZmZXJpbmcgcXVlcnkgdGhlIHRvdGFsIHJlbWFpbmluZyB0aW1lIG9mIGEgZG93bmxvYWQsIG5vdCB0aGUKCSAgdG90YWwgdGltZSBmb3IgdGhlIGNvbXBsZXRlIGRvd25sb2FkLiBBbHNvIGluZGljYXRlIHRoZSB1bml0IHVzZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDQ5MzQKCjIwMTMtMDctMjYgMTU6MDg6MTMgKzAyMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZC5zaW1vbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBGb3J3YXJkIHRoZSBzY2hlZHVsZSBxdWVyeSB1cHN0cmVhbQoJICBXaGVuIGFza2VkIGFib3V0IHRoZSBzY2hlZHVsaW5nIGZsYWdzIGZpcnN0IGNoZWNrIHdpdGggdXBzdHJlYW0gYW5kCgkgIHNpbXBseSBhZGQgdGhlIF9TRUVLQUJMRSBmbGFnIHdoZW4gdXNpbmcgYSB0ZW1wb3JhcnkgZmlsZSBhcyBzdG9yYWdlLgoJICBUaGlzIGVuYWJsZXMgdGhlIGZvcndhcmRpbmcgb2YgX1NFUVVFTlRJQUwgYW5kIF9CQU5EV0lEVEhfTElNSVRFRCBmcm9tCgkgIHNvdXJjZXMgaWYgbmVlZGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA0OTI3CgoyMDEzLTA3LTI5IDE0OjQ3OjE1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuMS4zID09PQoKMjAxMy0wNy0yOSAxMzozNDo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuMS4zCgoyMDEzLTA3LTI5IDEzOjMwOjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTMtMDctMjkgMTI6MTA6NDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2U6IEZpeCBoYW5kbGluZyBvZiBTRUdNRU5UIHF1ZXJ5CgkgIFRoZSB2YWx1ZXMgc2hvdWxkIGJlIGluIHN0cmVhbS10aW1lLCBhbmQgc3RhcnQvc3RvcCBzaG91bGQgbm90CgkgIGJlIHN3YXBwZWQgZm9yIG5lZ2F0aXZlIHJhdGVzLgoKMjAxMy0wNy0yOSAxMTowNTowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IE9ubHkgYWR2YW5jZSBvZmZzZXQgYnkgdGhlIG51bWJlciBvZiBieXRlcyB3ZSBhY3R1YWxseSByZWFkCgkgIFRoZXJlIG1pZ2h0IGJlIGEgc2hvcnQgcmVhZCBhdCBFT1MuCgoyMDEzLTA3LTI5IDEwOjQ4OjMwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEltcGxlbWVudCBTRUdNRU5UIHF1ZXJ5CgoyMDEzLTA3LTI2IDE4OjM2OjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGZpeCBTaW5jZTogbWFya2VyIGZvciBuZXcgZ3N0X2J1ZmZlcl9leHRyYWN0X2R1cCgpCgoyMDEzLTA3LTI2IDEyOjE5OjMyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGNsb2NrOiBkZWJ1ZyB0aGUgY2xvY2sgcmV0dXJuIHZhbHVlcwoKMjAxMy0wNy0yNSAxMjoyMDoxNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggc2VxbnVtIGhhbmRsaW5nIGZvciBzZWVrcwoJICBVc2UgdGhlIHNhbWUgc2VxbnVtIGFzIHRoZSBzZWVrIGZvciBmbHVzaGVzL3NlZ21lbnRzIHRoYXQgYXJlCgkgIGNhdXNlZCBieSB0aGUgc2Vlay4gQWxzbyBkbyB0aGUgc2FtZSBmb3Igc2VnbWVudCBldmVudHMKCSAgRml4ZXMgIzY3NjI0MgoKMjAxMy0wNy0yNCAxMDoyOTozMCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBwYXJzZSBkZWJ1ZyBsZXZlbHMgPiA5CgoyMDEzLTA3LTI0IDE2OjU3OjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IEZpeCBjb3B5JnBhc3RlIG1pc3Rha2VzIGluIHRoZSBiaXRtYXNrIGZ1bmN0aW9uIGRvY3MKCjIwMTMtMDctMjQgMTE6MjE6MjcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IERvbid0IHNoYWRvdyB2YXJpYWJsZXMgdGhhdCBhcmUgc2V0IGluc2lkZSBvdXIgc2NvcGUgYW5kIHRoZW4gdXNlZCBvdXRzaWRlIG91ciBzY29wZQoJICBGaXhlcyB1bmluaXRpYWxpemVkIHVzZSBvZiB0aGVzZSB2YXJpYWJsZXMuCgoyMDEzLTA3LTI0IDEwOjMwOjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2FybS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2hwcGEuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4NncuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGMzMi5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzY0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3Rfc3BhcmMuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSAgdGVzdHM6IFJlbW92ZSBvdGhlciBpbnRlcmZhY2Ugc3RydWN0cyBmcm9tIHRoZSBBQkkgdGVzdHMgdG9vCgoyMDEwLTEwLTE1IDEzOjE2OjU5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfYXJtLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaHBwYS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2dy5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzMyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjNjQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9zcGFyYy5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJICB0ZXN0czogUmVtb3ZlIEdzdFRhZ1NldHRlciBmcm9tIEFCSSBjaGVja3MKCSAgSW50ZXJmYWNlcyBjYW4gaGF2ZSBuZXcgbWVtYmVycyBhZGRlZCB3aXRob3V0IGJyZWFraW5nIEFCSSwgc28KCSAgcmVtb3ZlIGl0IGZyb20gdGhlIGNoZWNrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIzNzk5CgoyMDEzLTA3LTIzIDE1OjM5OjUzIC0wNDAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wcmludC5jOgoJICBsaWJjaGVjazogRXNjYXBlIHN0cmluZ3MgaW4gdGhlIGdlbmVyYXRlZCB4bWwgZmlsZXMKCSAgVGhpcyBpcyBjb3B5IHBhc3RlZCBmcm9tIHVwc3RyZWFtIGxpYmNoZWNrCgoyMDEzLTA3LTIzIDE4OjUzOjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBQcmludCBzb21lIGRlYnVnIG91dHB1dCBpZiBhIHN0cmVhbS1zdGFydCBldmVudCB3aXRob3V0IGdyb3VwLWlkIGFycml2ZXMKCSAgSWRlYWxseSBhbGwgZWxlbWVudHMgd291bGQgaW1wbGVtZW50IGhhbmRsaW5nIG9mIHRoYXQgdG8gZ2V0IHByb3BlcgoJICBzdHJlYW0tc3RhcnQgbWVzc2FnZSBoYW5kbGluZyBhbmQgb3RoZXIgdGhpbmdzLgoKMjAxMy0wNy0yMiAxODowMzowMSArMDIwMCAgQXJuYXVkIFZyYWMgPGF2cmFjQGZyZWVib3guZnI+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IEZpeCBtaXNzaW5nIHBhZCBhY3RpdmF0aW9uIG5vdGlmaWNhdGlvbgoJICBBIG5ldyBhY3RpdmUgcGFkIG1pZ2h0IG5vdCBiZSBub3RpZmllZCBpbiBzb21lIGNhc2VzLCB3aGljaCByZXN1bHRzCgkgIGluIHRoZSBjdXJyZW50IHRyYWNrIG51bWJlciBub3QgYmVpbmcgc2V0IGluIHBsYXliaW4uCgkgIFRoZSBhY3RpdmUtcGFkIG5vdGlmaWNhdGlvbiBpcyBvbmx5IHNlbnQgaW4gdGhlIGNoYWluIGFuZCBzaW5rX2V2ZW50CgkgIGZ1bmN0aW9ucywgYW5kIG9ubHkgd2hlbiB0aGUgYnVmZmVyIG9yIGV2ZW50IHRoYXQgdHJpZ2dlcmVkIHRoZSBhY3RpdmUKCSAgcGFkIHNlbGVjdGlvbiBpcyBmcm9tIHRoZSBuZXdseSBhY3RpdmF0ZWQgcGFkLiBTbyBpbiB0aGUgb3RoZXIgY2FzZQoJICB0aGUgbm90aWZpY2F0aW9uIHdpbGwgbmV2ZXIgYmUgc2VudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNDY5MQoKMjAxMy0wNy0yMiAxNzoyNTo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGhhbmRsZSBkZXNlcmlhbGlzYXRpb24gb2Ygbm9uZXhpc3RhbnQgZW51bSB2YWx1ZSBtb3JlIGdyYWNlZnVsbHkKCjIwMTMtMDctMjIgMTQ6MTI6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSAgaW5wdXRzZWxlY3RvcjogRG9uJ3QgcHVzaCBuZXcgc3RyZWFtLXN0YXJ0IGV2ZW50cyBvbiBzdHJlYW0gY2hhbmdlIHVubGVzcyB0aGV5IGFsbCBoYXZlIGdyb3VwIGlkcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA0NDA4CgoyMDEzLTA3LTIyIDEyOjA2OjI5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogVXNlIG5ldyBncm91cC1pZCBpbiBzdHJlYW0tc3RhcnQgZXZlbnQKCjIwMTMtMDctMjIgMTI6MDY6MDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2U6IFVzZSBuZXcgZ3JvdXAtaWQgZmllbGQgaW4gc3RyZWFtLXN0YXJ0IGV2ZW50IGFuZCBtZXNzYWdlCgoyMDEzLTA3LTIyIDExOjQyOjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogVXNlIHRoZSBuZXcgZ3JvdXAtaWQgZmllbGQgb2YgdGhlIHN0cmVhbS1zdGFydCBtZXNzYWdlIGZvciBzdHJlYW0tc3RhcnQgbWVzc2FnZSBhZ2dyZWdhdGlvbgoJICBJZiBhbGwgc3RyZWFtLXN0YXJ0IG1lc3NhZ2VzIGhhZCBhIGdyb3VwIGlkIChmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkpLAoJICB3ZSBvbmx5IGNvbnNpZGVyIGEgc3RyZWFtIHN0YXJ0ZWQgaWYgYWxsIGhhZCB0aGUgc2FtZSBncm91cCBpZC4KCSAgSW4gMi4wIHdlIHNob3VsZCBtYWtlIHRoZSBncm91cCBpZCBtYW5kYXRvcnkuCgoyMDEzLTA3LTIyIDExOjQxOjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0OiBBZGQgbmV3IGdyb3VwLWlkIGZpZWxkIHRvIHRoZSBzdHJlYW0tc3RhcnQgZXZlbnQKCSAgQWxsIHN0cmVhbXMgdGhhdCBoYXZlIHRoZSBzYW1lIGdyb3VwIGlkIGFyZSBzdXBwb3NlZCB0byBiZSBwbGF5ZWQKCSAgdG9nZXRoZXIsIGkuZS4gYWxsIHN0cmVhbXMgaW5zaWRlIGEgY29udGFpbmVyIGZpbGUgc2hvdWxkIGhhdmUgdGhlCgkgIHNhbWUgZ3JvdXAgaWQgYnV0IGRpZmZlcmVudCBzdHJlYW0gaWRzLiBUaGUgZ3JvdXAgaWQgc2hvdWxkIGNoYW5nZQoJICBlYWNoIHRpbWUgdGhlIHN0cmVhbSBpcyBzdGFydGVkLCByZXN1bHRpbmcgaW4gZGlmZmVyZW50IGdyb3VwIGlkcwoJICBlYWNoIHRpbWUgYSBmaWxlIGlzIHBsYXllZCBmb3IgZXhhbXBsZS4KCjIwMTMtMDctMTggMjM6Mjk6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb21tb246CgkgIGNvbW1vbjogcmV2ZXJ0IGFjY2lkZW50YWwgY2hhbmdlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCjIwMTMtMDctMTggMTQ6Mzk6NDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIGdzdDogQWRkIHNvbWUgbW9yZSBTaW5jZTogMS4yCgoyMDEzLTA3LTE4IDE0OjM0OjMxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBBZGQgc29tZSBTaW5jZTogMS4yCgoyMDEzLTA3LTE4IDE1OjEwOjEwICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGNvbW1vbjoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJKiB0b29scy9nc3QtcGxvdC10aW1lbGluZS5weToKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGluZm86IEFkZCBkZWJ1ZyBjb2xvciBtb2RlIG9wdGlvbgoJICBUaGlzIGFsbG93cyB0byBleHBsaWNpdGVseSBzZXQgdGhlIGRlYnVnIG91dHB1dCBjb2xvcgoJICBtb2RlIHRvIFVOSVggb24gZXZlcnkgcGxhdGZvcm0sIGVuYWJsZSBpdCAodXNlIHBsYXRmb3JtCgkgIGRlZmF1bHQgY29sb3IgbW9kZSkgb3IgZW5hYmxlIGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc0MzIwCgoyMDEyLTA0LTE4IDE0OjM1OjMyICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IEZpeCBibGFjayBhbmQgdW5kZXJsaW5lIGNvbG9yaW5nIG9uIFczMgoJICBGaXhlcyAjNjc0MzIwCgoyMDEyLTA0LTE4IDE0OjEyOjE2ICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IEN1dCBkb3duIHNyYyBmaWxlIG5hbWVzIGZvciBNaW5HVyB0b28KCSAgRml4ZXMgIzY3NDMyMAoKMjAxMy0wNy0xNiAxNzo0Nzo0NSArMDIwMCAgTmljb2xhIE11cmlubyA8bmljb2xhLm11cmlub0BnbWFpbC5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBGaXggZ3N0LXBsdWdpbnMtZ2wgaW4gdW5pbnN0YWxsZWQgc2V0dXAKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMzQ5OQoKMjAxMy0wNy0xNiAxNTozNTowOCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgYWRhcHRlcjogVGFrZSBhY2NvdW50IG9mIHRoZSBza2lwIGluIGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyX2Zhc3QoKQoJICBJbmNsdWRlIHJlZ3Jlc3Npb24gdGVzdAoKMjAxMy0wNy0xNSAxNTo0MTo0NCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYWRhcHRlcjogQWRkIGZ1bmN0aW9uIHRvIHJldHVybiBidWZmZXIgY29tcG9zZWQgb2YgbXVsdGlwbGUgbWVtb3JpZXMKCSAgQVBJOiBnc3RfYWRhcHRlcl90YWtlX2Zhc3QoKQoKMjAxMy0wNy0xNiAxNjoyNDozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBEb24ndCBhc3NlcnQgaWYgbm8gY29udGV4dCBpcyBzZXQgaW4gdGhlIHF1ZXJ5CgoyMDEzLTA3LTE2IDE0OjQ3OjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy8uZ2l0aWdub3JlOgoJICBiZW5jaG1hcmtzOiBpZ25vcmUgbmV3IGJlbmNobWFyayBiaW5hcnkKCjIwMTMtMDctMTYgMTQ6NDY6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIHF1ZXJ5OiBzcHJpbmtsZSBzb21lIFNpbmNlIDEuMiBtYXJrZXJzIGluIGRvY3MKCjIwMTMtMDctMTYgMTQ6NDQ6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIHRpbWVwcm92aWRlcjogZy1pOiBhbGxvdyBOb25lIGFzIGFkZHJlc3MgZm9yIGdzdF9uZXRfdGltZV9wcm92aWRlcl9uZXcoKQoKMjAxMy0wNy0xNiAxNTozNDo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogUmV0dXJuIGFuIGVtcHR5IEdzdENvbnRleHQgaWYgbm9uZSB3YXMgc2V0IHlldAoKMjAxMy0wNy0xNiAxNToxNjoxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcXVlcnk6IEFkZCBnc3RfcXVlcnlfaGFzX2NvbnRleHRfdHlwZSgpCgoyMDEzLTA3LTE2IDExOjM2OjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogb25seSBibG9jayBzZXJpYWxpemVkIHF1ZXJ5IHdoZW4gaXQncyBzYWZlCgkgIFdlIG11c3QgYmUgY2VydGFpbiB0aGF0IHdlIGRvbid0IGNhdXNlIGEgZGVhZGxvY2sgd2hlbiBibG9ja2luZyB0aGUgc2VyaWFsaXplZAoJICBxdWVyaWVzLiBPbmUgc3VjaCBkZWFkbG9jayBjYW4gaGFwcGVuIHdoZW4gd2UgYXJlIGJ1ZmZlcmluZyBhbmQgZG93bnN0cmVhbSBpcwoJICBibG9ja2VkIGluIHByZXJvbGwgYW5kIGEgc2VyaWFsaXplZCBxdWVyeSBhcnJpdmVzLiBEb3duc3RyZWFtIHdpbGwgbm90IHVuYmxvY2sKCSAgKGFuZCBhbGxvdyBvdXIgcXVlcnkgdG8gZXhlY3V0ZSkgdW50aWwgd2UgY29tcGxldGUgYnVmZmVyaW5nIGFuZCBidWZmZXJpbmcgd2lsbAoJICBub3QgY29tcGxldGUgdW50aWwgd2UgY2FuIGFuc3dlciB0aGUgcXVlcnkuLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyODQwCgoyMDEzLTA3LTE1IDExOjM2OjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogQSBuZXdseSBhY3RpdmF0ZWQgcGFkIHNob3VsZCBiZSBtYXJrZWQgYXMgbmVlZGluZyByZWNvbmZpZ3VyYXRpb24KCjIwMTMtMDctMTUgMTE6MzI6NTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgUmV2ZXJ0ICJwYWQ6IERvbid0IGNvbnNpZGVyIGZsdXNoaW5nIHBhZHMgYXMgbmVlZGluZyByZWNvbmZpZ3VyYXRpb24iCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOTQ4YTlkMmYyYjcyOGY1ZmI2MGJlNDVkNDdhODE4Y2ViZWI2MGM3ZC4KCSAgVGhpcyBpcyByYWN5IGFuZCB0cnlpbmcgdG8gcmVjb25maWd1cmUgYW5kIGZhaWwgaXMgc3RpbGwgYmV0dGVyCgkgIHRoYW4gbm90IHRyeWluZyB0byByZWNvbmZpZ3VyZSBhdCBhbGwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDQxMDAKCjIwMTMtMDctMTUgMTE6MzI6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBMZWF2ZSB0aGUgbG9vcCBmdW5jdGlvbiBmYXN0ZXIgaWYgd2UncmUgZmx1c2hpbmcKCSAgRXNwZWNpYWxseSBkb24ndCBldmVuIHRyeSB0byBzZW5kIHN0cmVhbS1zdGFydCBldmVudCBvciB0cnkKCSAgdG8gbmVnb3RpYXRlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA0MTAwCgoyMDEzLTA3LTEyIDEwOjA4OjI2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogRGVhY3RpdmF0ZSBhbmQgcmVtb3ZlIHBhZCB3aXRob3V0IHRoZSBpbnB1dHNlbGVjdG9yIGxvY2sKCSAgT3RoZXJ3aXNlIHdlIG1pZ2h0IGdldCBkZWFkbG9ja3MgY2F1c2VkIGJ5IGxvY2sgb3JkZXIgaW52ZXJzaW9uOgoJICBEdXJpbmcgdGhlIGNoYWluIGZ1bmN0aW9uIHRoZSBzdHJlYW0gbG9jayBpcyBmaXJzdCBsb2NrZWQgYW5kIHRoZW4gdGhlCgkgIGlucHV0c2VsZWN0b3IgbG9jay4gRHVyaW5nIHBhZCByZWxlYXNlIHdlIGZpcnN0IGxvY2tlZCB0aGUgaW5wdXRzZWxlY3RvcgoJICBsb2NrIGFuZCB0aGVuIGRlYWN0aXZhdGluZyB0aGUgcGFkIHdvdWxkIGxvY2sgdGhlIHN0cmVhbSBsb2NrLgoJICBUaGVyZSdzIG5vIHJlYXNvbiB3aHkgdGhlIGlucHV0c2VsZWN0b3IgbG9jayBzaG91bGQgYmUgcmVxdWlyZWQgd2hpbGUKCSAgZGVhY3RpdmF0aW5nIGFuZCByZW1vdmluZyB0aGUgcGFkLCBpdCdzIG9ubHkgbmVlZGVkIGJlZm9yZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNDAwMgoKMjAxMy0wNy0xMSAxNjo1NzowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjEuMiA9PT0KCjIwMTMtMDctMTEgMTU6MTI6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjEuMgoKMjAxMy0wNy0xMSAxNToxMToyNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDEzLTA3LTEwIDE1OjUyOjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogQWx3YXlzIGZvcndhcmQgY2xvY2stbG9zdCBtZXNzYWdlIGlmIHdlJ3JlIG5vdCBhIHRvcC1sZXZlbCBiaW4KCSAgVGhpcyBtYWtlcyBzdXJlIHRoYXQgbm8gYmluIG1pc3NlcyB0aGUgY2xvY2stbG9zdCBtZXNzYWdlcywgaW5kZXBlbmRlbnQKCSAgb2YgdGhlIHN0YXRlLCBhbmQgY291bGQgcmV0dXJuIGFuIG9sZCwgbm9uLXdvcmtpbmcgY2xvY2sgZnJvbQoJICBnc3RfYmluX3Byb3ZpZGVfY2xvY2tfZnVuYygpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxOTk3CgoyMDEzLTA3LTEwIDE0OjMwOjMxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogS2VlcCBwcmV2aW91cyBhY3RpdmUgc2lua3BhZCBhcm91bmQgdW50aWwgd2UncmUgZG9uZSB3aXRoIGl0CgkgIE90aGVyd2lzZSB3ZSdsbCBzZW5kIGEgbmV3IHNlZ21lbnQgZXZlbnQgZG93bnN0cmVhbSBmb3IgZWFjaCBidWZmZXIuCgoyMDEzLTA3LTA4IDE1OjI2OjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSAgYWxsb2NhdG9yOiBmaXggdHlwZSBvZiBnc3RfbWVtb3J5X2FsaWdubWVudCB0byBtYXRjaCBkZWNsYXJhdGlvbgoJICBGaXhlcyBjb21waWxlciB3YXJuaW5ncyBzdWNoIGFzCgkgIGdzdGFsbG9jYXRvci5jOjYxOjg6IGVycm9yOiBjb25mbGljdGluZyB0eXBlcyBmb3IgJ2dzdF9tZW1vcnlfYWxpZ25tZW50JwoJICAuLi9nc3QvZ3N0YWxsb2NhdG9yLmg6NTI6MTg6IG5vdGU6IHByZXZpb3VzIGRlY2xhcmF0aW9uIG9mICdnc3RfbWVtb3J5X2FsaWdubWVudCcgd2FzIGhlcmUKCjIwMTMtMDctMDUgMjE6MzY6MjcgKzAyMDAgIFBpb3RyIERyxIVnIDxwaW90cmRyYWdAZ21haWwuY29tPgoKCSogcG8vUE9URklMRVMuaW46CgkgIHBvOiB1cGRhdGUgUE9URklMRVMuaW4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMzY4MgoKMjAxMy0wNy0wNCAyMDozOToyNiAtMDQwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IERvIG5vdCBsb2NrIGEgbXV0ZXggdGhhdCBkb2VzIG5vdCBleGlzdAoJICBUaGUgR1NUX0xJVkVfTE9DSyBpcyBvbiBHc3RCYXNlU3JjLCBub3Qgb24gaXRzIHNvdXJjZSBwYWQuCgoyMDEzLTA3LTAzIDIxOjIzOjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZXNldCBQVFMgYWZ0ZXIgc2VlawoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyNzc4CgoyMDEzLTA3LTAzIDEzOjAzOjQ5IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJICBBZGQgZmV3IG1pc3NpbmcgYWxsb3ctbm9uZSBhbm5vdGF0aW9uCgoyMDEzLTA3LTAzIDA5OjI3OjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIG5ldyAtYmFkIG1wZWd0cyBsaWIKCSAgQW5kIHJlbW92ZSBzaWduYWxwcm9jZXNzb3IvdmlkZW8gbGlicyBmcm9tIC1iYWQgd2hpY2ggaGF2ZSBnb25lCgkgIGF3YXkgb3Igd2VyZSBtZXJnZWQgaW50byAtYmFzZS4KCjIwMTMtMDctMDEgMjA6MzU6MjEgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSAgZnVubmVsOiBSZS1wdXNoIGFsbCBzdGlja3kgZXZlbnRzIHdoZW4gYnVmZmVycyBjb21lIGZyb20gYSBkaWZmZXJlbnQgcGFkCgkgIERvbid0IHNwZWNpYWwgY2FzZSBzZWdtZW50L2NhcHMsIGp1c3QgcHVzaCBhbGwgc3RpY2t5IGV2ZW50cyB3aGVuIHRoZXkgYXJlCgkgIHJlY2VpdmVkIG9uIHRoZSBjdXJyZW50bHkgYWN0aXZlIHBhZCBvciB3aGVuIHRoZSBhY3RpdmUgcGFkIGNoYW5nZXMuCgoyMDEzLTA3LTAxIDIwOjIxOjEwIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBVc2UgZGVmYXVsdCBwYWQgZnVuY3Rpb24gZm9yIHVwc3RyZWFtIGV2ZW50L3F1ZXJpZXMKCSAgVGhlIGRlZmF1bHQgZnVuY3Rpb25zIGluIDEueCBhbHJlYWR5IGRvIHRoZSByaWdodCB0aGluZwoKMjAxMy0wNy0wMSAyMDoxODo1OCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJICB0ZXN0czogUmVtb3ZlIGZ1bm5lbCBwYWRfYWxsb2MgdGVzdAoKMjAxMy0wNy0wMSAyMDowNzowMyAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBDaGFuZ2Ugc3RyZWFtX2lkIHBhcmFtZXRlciBuYW1lIHRvIG1hdGNoIEd0a0RvYwoKMjAxMy0wNy0wMSAxMToxMDowMCArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzaGdAYXhpcy5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkgIGNoZWNrOiBBZGRlZCBnc3RfY2hlY2tfc2V0dXBfZXZlbnRzX3dpdGhfc3RyZWFtX2lkKCkKCSAgQWRkZWQgYSBuZXcgZnVuY3Rpb24gZ3N0X2NoZWNrX3NldHVwX2V2ZW50c193aXRoX3N0cmVhbV9pZCgpLCBzaW5jZQoJICBnc3RfY2hlY2tfc2V0dXBfZXZlbnRzKCkgZG9lcyBub3Qgd29yayB3aXRoIG11bHRpcGxlIHBhZHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDMzNzcKCjIwMTMtMDYtMzAgMTg6Mzk6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBEb24ndCBjb25zaWRlciBmbHVzaGluZyBwYWRzIGFzIG5lZWRpbmcgcmVjb25maWd1cmF0aW9uCgkgIFJlbmVnb3RpYXRpb24gYW5kIHJlY29uZmlndXJhdGlvbiB3aWxsIGZhaWwgYmVjYXVzZSBhbGwgcXVlcmllcwoJICBhbmQgZXZlbnRzIHdvbid0IGJlIGFjY2VwdGVkIGJ5IHRoZSBwYWQgaWYgaXQncyBmbHVzaGluZy4gSW4gdGhlCgkgIGJlc3QgY2FzZSB0aGlzIGp1c3QgY2F1c2VzIHVubmVlZGVkIHdvcmsgYW5kIHNwdXJpb3VzIHdhcm5pbmdzIGluCgkgIHRoZSBkZWJ1ZyBsb2dzLCBpbiB0aGUgd29yc3QgY2FzZSBpdCBjYXVzZXMgZWxlbWVudHMgdG8gZmFpbCBjb21wbGV0ZWx5LgoKMjAxMy0wNi0yNCAyMzoyNTo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogb25seSBibG9jayBzZXJpYWxpemVkIHF1ZXJ5IHdoZW4gaXQncyBzYWZlCgkgIFdlIG11c3QgYmUgY2VydGFpbiB0aGF0IHdlIGRvbid0IGNhdXNlIGEgZGVhZGxvY2sgd2hlbiBibG9ja2luZyB0aGUgc2VyaWFsaXplZAoJICBxdWVyaWVzLiBPbmUgc3VjaCBkZWFkbG9jayBjYW4gaGFwcGVuIHdoZW4gd2UgYXJlIGJ1ZmZlcmluZyBhbmQgZG93bnN0cmVhbSBpcwoJICBibG9ja2VkIGluIHByZXJvbGwgYW5kIGEgc2VyaWFsaXplZCBxdWVyeSBhcnJpdmVzLiBEb3duc3RyZWFtIHdpbGwgbm90IHVuYmxvY2sKCSAgKGFuZCBhbGxvdyBvdXIgcXVlcnkgdG8gZXhlY3V0ZSkgdW50aWwgd2UgY29tcGxldGUgYnVmZmVyaW5nIGFuZCBidWZmZXJpbmcgd2lsbAoJICBub3QgY29tcGxldGUgdW50aWwgd2UgY2FuIGFuc3dlciB0aGUgcXVlcnkuLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyODQwCgoyMDEzLTA2LTE5IDEyOjMwOjQ3ICswMjAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBBZGQgYSBmaWx0ZXIgdG8gdGhlIGNhcHNfcXVlcnkgZG9uZSBieSBhY2NlcHRjYXBzCgkgIFVzZSB0aGUgY2FwcyB0aGF0IHRoZSBwYWQgaXMgYXNrZWQgdG8gYWNjZXB0IGFzIGZpbHRlciBmb3IgdGhlIHF1ZXJ5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI2MzIKCjIwMTMtMDYtMTkgMTI6MTk6MDIgKzAyMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZC5zaW1vbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IG9wdGltaXplIGRlZmF1bHQgYWNjZXB0Y2FwcyBpbXBsZW1lbnRhdGlvbgoJICBQYXNzIHRoZSBmaXhlZCBjYXBzIHdlJ3JlIGFza2VkIHRvIGFjY2VwdCBhcyBhIGZpbHRlciBmb3IgdGhlIGNhcHMKCSAgcXVlcnksIHNvIHdlIGRvbid0IGdldCBhIGZ1bGx5LWV4cGFuZGVkIHNldCBvZiBjYXBzIGJhY2sgKHdoaWNoIHdlIGRvbid0CgkgIG5lZWQgYW5kIGNhbiB0YWtlIGEgbG90IG9mIHRpbWUgZm9yIGludGVyc2VjdGlvbikuCgkgIFRoaXMgcmVkdWNlcyB0aGUgdGltZSBmb3IgY2FtZXJhYmluIHRvIHByb2R1Y2UgYSBzZWNvbmQgZnJhbWUgb24gYQoJICBsb2dpdGVjaCBDOTEwIGNhbWVyYSBmcm9tIGFyb3VuZCA1MiBzZWNvbmRzIHRvIGEgYml0IGxlc3MgdGhlbiAxNgoJICBzZWNvbmRzIG9uIG15IHN5c3RlbS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjYzMgoKMjAxMy0wNi0xOSAwOToxOTo1MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBBdm9pZCBjb21iaW5hdG9yaWFsIGV4cGxvc2lvbiB3aGVuIG1lcmdpbmcgdGFncwoJICBXaGVuIGFwcGVuZGluZy9wcmVwZW5kaW5nIHRhZ3MsIGF2b2lkIHJlLWNyZWF0aW5nIChhbmQgY29weWluZykgbGlzdHMgaWYgd2UgYWxyZWFkeQoJICBoYXZlIG9uZSBhbmQgaW5zdGVhZCBqdXN0IGFwcGVuZC9wcmVwZW5kIHRoZSBHVmFsdWUgdG8gdGhlIGxpc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI1NDUKCjIwMTMtMDYtMTkgMTA6NTM6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IERvbid0IGhvbGQgdGhlIHF1ZXVlIG11dGV4IHdoaWxlIGRvaW5nIHNlcmlhbGl6ZWQgcXVlcmllcyBkb3duc3RyZWFtCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI1MjAKCjIwMTMtMDYtMTkgMTA6NDU6NDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBBZGQgdW5pdCB0ZXN0IGZvciBtYXBfcmFuZ2UoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyNjE3CgoyMDEzLTA2LTE5IDA4OjM2OjIyICswMjAwICBQYXVsIEhFTlJZUyA8dmlzZWNoZWxsZUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogRml4IHdyb25nIHNpemUvaW5kZXggaGFuZGxpbmcgd2hlbiBtZXJnaW5nIG1lbW9yeQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyNjE3CgoyMDEzLTA2LTE4IDExOjM5OjU1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9saXN0LXVsaW5rLnhzbDoKCSAgZG9jczogYWRkIG1pc3NpbmcgZmlsZSBmb3IgZG9jLWxpbmsgY2hlY2sKCjIwMTMtMDYtMTcgMTE6MTI6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvb2xzdHJlc3MuYzoKCSAgdGVzdHM6IGFkZCBzdHJlc3MgdGVzdCBmb3IgYnVmZmVycyBhbmQgcG9vbHMKCjIwMTMtMDYtMTcgMTA6MjU6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBjYWxsIHN0YXRlIGNoYW5nZSBpbiBhbGwgY2FzZXMKCSAgV2hlbiB3ZSBhc3luY2hyb25vdXNseSBnbyBmcm9tIFJFQURZIHRvIFBMQVlJTkcsIGFsc28gY2FsbCB0aGUKCSAgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIHNvIHRoYXQgc3ViY2xhc3NlcyBjYW4gdXBkYXRlIHRoZWlyIHN0YXRlIGZvciBQTEFZSU5HLgoJICBCZWNhdXNlIHRoZSBQUkVST0xMIGxvY2sgaXMgbm90IHJlY3Vyc2l2ZSwgd2UgY2FuJ3QgbWFrZSB0aGlzIHdpdGhvdXQKCSAgcmFjZXMgYW5kIHdlIG11c3QgYXNzdW1lIGZvciBub3cgdGhhdCB0aGUgc3ViY2xhc3MgY2FuIGhhbmRsZSBjb25jdXJyZW50IGNhbGxzCgkgIHRvIFBBVVNFRC0+UExBWUlORyBhbmQgUExBWUlORy0+UEFVU0VELiBXZSBjYW4gbWFrZSB0aGlzIGFzc3VtcHRpb24gYmVjYXVzZSBub3QKCSAgbWFueSBlbGVtZW50cyBhY3R1YWxseSBkbyBzb21ldGhpbmcgaW4gdGhvc2Ugc3RhdGUgY2hhbmdlcyBhbmQgdGhlIG9uZXMgdGhhdAoJICBkaWQgd291bGQgYmUgYnJva2VuIGV2ZW4gbW9yZSB3aXRob3V0IHRoaXMgY2hhbmdlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyMjgyCgoyMDEzLTA2LTE2IDE1OjA3OjM1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9mYXEvZGVwZW5kZW5jaWVzLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkqIGRvY3MvbWFudWFsL2ludHJvLW1vdGl2YXRpb24ueG1sOgoJICBkb2NzOiBmaXggc29tZSBleHRlcm5hbCBsaW5rcwoKMjAxMy0wNi0xNiAxNDo0NTowOCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbWFudWFscy5tYWs6CgkgIGRvY3M6IGNoZWNrIGZvciBicm9rZW4gbGlua3MgaW4gZG9jcwoJICBUaGUgY2hlY2sgaXMgZG9uZSB1c2luZyBjdXJsIChpZiBhdmFpbGFibGUpLiBJdCBsaXN0cyB0aGUgY3VybCBleGl0IGNvZGUgKyBodHRwCgkgIHN0YXR1cyBjb2RlIChmb3IgdGhvc2UgPiAzOTkpIHRvZ2V0aGVyIHdpdGggdGhlIHVzZSBvZiB0aGUgdXJsIGluIHRoZSBjb2RlLiBUaGUKCSAgY2hlY2sgaXMgbm90IGZhdGFsLgoKMjAxMy0wNi0xNiAxMzowNToyMSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkqIGRvY3MvcHdnL2ludHJvLXByZWZhY2UueG1sOgoJICBkb2NzOiBjaGFuZ2UgaHR0cHMgdG8gaHR0cCB1cmxzCgkgIFRoYW5rIHlvdSBicm93c2VyIGZvciBuZWVkbGVzc2x5IGNoYW5naW5nIHRvIGh0dHBzIGZvciBzdGF0aWMgZG9jIHBhZ2VzLgoKMjAxMy0wNi0xNiAxMTo0MTo1MiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtaW5pdC54bWw6CgkqIGRvY3MvcHdnL2ludHJvLXByZWZhY2UueG1sOgoJICBkb2NzOiB1cGRhdGUgbGlua3MgdG8gZGV2ZWxvcGVyLmdub21lLm9yZwoJICBUaGUgVVJMIGxheW91dCBoYXMgY2hhbmdlZC4gRml4IHRoZSBsaW5rcyBhbmQgY29tbWVudCBvdXQgb25lIHBhcmFncmFwaCB3aGVyZQoJICB0aGUgZG9jIGlzIGdvbmUuCgkgIEZpeGVzICM3MDIxMzUKCjIwMTMtMDYtMTQgMTM6MDU6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc3RydWN0dXJlOiBBZGQgZ3N0X3N0cnVjdHVyZV9uZXdfZnJvbV9zdHJpbmcoKQoJICBDb252ZW5pZW5jZSBBUEkgZm9yIGJpbmRpbmdzLCBnc3Rfc3RydWN0dXJlX2Zyb21fc3RyaW5nKCkgcmV0dXJucwoJICBhIHR1cGxlIChzdHJ1Y3R1cmUsIGVuZF9wdHIpIGluIGJpbmRpbmdzIGFuZCBpcyB1bmludHVpdGl2ZSB0byB1c2UKCSAgYmVjYXVzZSBvZiB0aGF0LgoKMjAxMy0wNi0xMyAwODozNjoyMyArMDIwMCAgSGFucyBkZSBHb2VkZSA8aGRlZ29lZGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBEb24ndCBpbnRlcmNlcHQgLS1oZWxwIGluIGdzdF9pbml0KCkKCSAgQmVmb3JlIHRoaXMgcGF0Y2ggZ3N0X2luaXQgd291bGQgaW50ZXJjZXB0IC0taGVscCwgY2F1c2luZyBmb3IgZXhhbXBsZQoJICBjaGVlc2UncyAtLWhlbHAgdG8gbG9vayBsaWtlIHRoaXM6CgkgIFtoYW5zQHNoYWxlbSBjaGVlc2VdJCBjaGVlc2UgLS1oZWxwCgkgIFVzYWdlOgoJICBjaGVlc2UgW09QVElPTi4uLl0gLSBHU3RyZWFtZXIgaW5pdGlhbGl6YXRpb24KCSAgSGVscCBPcHRpb25zOgoJICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgICAgICAgICAgU2hvdyBoZWxwIG9wdGlvbnMKCSAgLS1oZWxwLWFsbCAgICAgICAgICAgICAgICAgICAgICAgIFNob3cgYWxsIGhlbHAgb3B0aW9ucwoJICAtLWhlbHAtZ3N0ICAgICAgICAgICAgICAgICAgICAgICAgU2hvdyBHU3RyZWFtZXIgT3B0aW9ucwoJICBnc3RfaW5pdCBpcyB0aGUgb25seSBnZm9vX2luaXQgZnVuY3Rpb24gd2hpY2ggZG9lcyB0aGlzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyMDg5CgoyMDEzLTA2LTEyIDA5OjQ1OjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIHVyaWRvd25sb2FkZXIgbGliIGluIC1iYWQgdG8gc2VhcmNoIHBhdGhzCgkgIEV2ZW4gaWYgaXQgbWlnaHQgbm90IGJlIGFyb3VuZCBmb3IgbG9uZy4KCjIwMTMtMDYtMTEgMTA6MjU6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogUmVtb3ZlIHVucmVmIHRoYXQgc2hvdWxkIG5vdCBiZSB0aGVyZQoJICBXZSBrZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBjb250ZXh0IGFyb3VuZCBhbGwgdGhlIHRpbWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDE5ODUKCjIwMTMtMDYtMDkgMTc6MjA6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogSW1wcm92ZSBHc3RDb250ZXh0IGhhbmRsaW5nCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDA5NjcKCjIwMTMtMDYtMDcgMTM6MDc6MzcgKzAyMDAgIEtpbSBMYW0gPGtpbUByZWRnaWFudHNvZnR3YXJlLmNvbT4KCgkqIHdpbjMyL3ZzMTAvYmFzZS9iYXNlLnZjeHByb2o6CgkgIHdpbjMyOiBEb24ndCBpbmNsdWRlIGdzdGNvbGxlY3RwYWRzLmMgdHdpY2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMTYwMwoKMjAxMy0wNS0zMSAwOTozOTo1NSAtMDYwMCAgQnJlbmRhbiBMb25nIDxiLmxvbmdAY2FibGVsYWJzLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3Rvcjogc2VuZCBub3RpZnk6OmFjdGl2ZSBzaWduYWwgZm9yIGlucHV0LXNlbGVjdG9yIHBhZHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDEzMTkKCjIwMTMtMDYtMDYgMTY6NDY6MTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IE9ubHkgZm9yY2UtdXBkYXRlIHRoZSBkdXJhdGlvbiBmb3IgZHluYW1pYyBzb3VyY2VzIHdoZW4gZG9pbmcgdGhlIERVUkFUSU9OIHF1ZXJ5CgkgIERvaW5nIGl0IGFmdGVyIGV2ZXJ5IHNpbmdsZSBjcmVhdGUoKSBpcyBub3QgdmVyeSBlZmZpY2llbnQgYW5kIG5vdCBuZWNlc3NhcnkuCgkgIEVzcGVjaWFsbHkgb24gbmV0d29yayBmaWxlIHN5c3RlbXMgZnN0YXQoKSBpcyBub3QgY2FjaGVkIGFuZCBjYXVzZXMgbmV0d29yawoJICB0cmFmZmljLCBtYWtpbmcgdGhlIHNvdXJjZSBwb3NzaWJseSB1bnVzYWJsZSBzbG93LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUyMDM3CgoyMDEzLTA2LTA1IDE4OjM2OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS4xLjEgPT09CgoyMDEzLTA2LTA1IDE3OjU4OjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4xLjEKCjIwMTMtMDYtMDUgMTY6MDY6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDEzLTA2LTA1IDE1OjE0OjE0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDA5OGMwZDcgdG8gMDFhN2E0NgoKMjAxMy0wNi0wNSAxMTowMjo1MCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3R2YWx1ZTogQWRkIF9hcHBlbmRfYW5kX3Rha2VfdmFsdWUoKSBwdWJsaWMgdmFyaWFudHMKCSAgQVBJOiBnc3RfdmFsdWVfYXJyYXlfYXBwZW5kX2FuZF90YWtlX3ZhbHVlCgkgIEFQSTogZ3N0X3ZhbHVlX2xpc3RfYXBwZW5kX2FuZF90YWtlX3ZhbHVlCgkgIFdlIHdlcmUgYWxyZWFkeSB1c2luZyB0aGlzIGludGVybmFsbHksIHRoaXMgbWFrZXMgaXQgcHVibGljIGZvciBjb2RlCgkgIHdoaWNoIGZyZXF1ZW50bHkgYXBwZW5kcyB2YWx1ZXMgd2hpY2ggYXJlIGV4cGVuc2l2ZSB0byBjb3B5IChsaWtlCgkgIHN0cnVjdHVyZXMsIGFycmF5cywgY2FwcywgLi4uKS4KCSAgQXZvaWRzIGNvcGllcyBvZiB0aGUgdmFsdWVzIGZvciB1c2Vycy4gVGhlIHBhc3NlZCBHVmFsdWUgd2lsbCBhbHNvCgkgIGJlIDAtbWVtc2V0J2VkIGZvciByZS11c2UuCgkgIE5ldyB1c2VycyBjYW4gcmVwbGFjZSB0aGlzIGtpbmQgb2YgY29kZToKCSAgZ3N0X3ZhbHVlXypfYXBwZW5kX3ZhbHVlKG15Y29udGFpbmVyLCAmbXl2YWx1ZSk7CgkgIGdfdmFsdWVfdW5zZXQoJm15dmFsdWUpOwoJICBieToKCSAgZ3N0X3ZhbHVlXypfYXBwZW5kX2FuZF90YWtlX3ZhbHVlKG15Y29udGFpbmVyLCAmbXl2YWx1ZSk7CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDE2MzIKCjIwMTMtMDUtMjkgMTc6MjA6MzQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBnc3RidWZmZXI6IFVzZSBpbnRlcm5hbCBmdW5jdGlvbiBmb3IgYnVmZmVyX25ld193cmFwcGVkCgkgIFNoYXZlcyB+MTAlIGluc3RydWN0aW9uIGNhbGxzIGZyb20gdGhlIHRvdGFsIGNvc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMTYzMwoKMjAxMy0wNS0zMCAyMjo1Nzo0OSAtMDYwMCAgQnJlbmRhbiBMb25nIDxzZWxmQGJyZW5kYW5sb25nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3RvcjogcmV0dXJuIEZBTFNFIGZvciAiYWN0aXZlIiBwcm9wZXJ0eSBpZiBzZWxlY3RvciBpcyBOVUxMCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDEzMjMKCjIwMTMtMDYtMDEgMTQ6MDA6MjIgKzAxMDAgIEFuZHJ6ZWogQmllbmllayA8YW5keWhlbHBAZ21haWwuY29tPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtdGhyZWFkcy54bWw6CgkgIG1hbnVhbDogdXBkYXRlIGVsZW1lbnRzIHRvIG1hdGNoIHRoZSByZXN0IG9mICJCb29zdCBwcmlvcml0eSBvZiBhIHRocmVhZCIgc2VjdGlvbgoKMjAxMy0wNi0wMSAxMzo1NTo1MCArMDEwMCAgQW5kcnplaiBCaWVuaWVrIDxhbmR5aGVscEBnbWFpbC5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiBmaXggY29tbWVudCBpbiBlZmZlY3Rzd2l0Y2ggZXhhbXBsZQoKMjAxMy0wNi0wMSAxMzo0OToxOCArMDEwMCAgQW5kcnplaiBCaWVuaWVrIDxhbmR5aGVscEBnbWFpbC5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiBmaXggYSB0eXBvIGluICJJbnNlcnRpbmcgZGF0YSB3aXRoIGFwcHNyYyIgc2VjdGlvbgoKMjAxMy0wNi0wMSAxMzoyMjoyMiArMDEwMCAgQW5kcnplaiBCaWVuaWVrIDxhbmR5aGVscEBnbWFpbC5jb20+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtcW9zLnhtbDoKCSogZG9jcy9wd2cvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSAgcHdnOiBmaXggYSBmZXcgdHlwb3MKCjIwMTMtMDUtMzEgMjM6Mzc6MDcgKzAxMDAgIEFuZHJ6ZWogQmllbmllayA8YW5keWhlbHBAZ21haWwuY29tPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtYWxsb2NhdGlvbi54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgZG9jczogcmVtb3ZlIGRvdWJsZSAidGhlIgoKMjAxMy0wNS0yOCAyMzozNDo1NCArMDEwMCAgS3J6eXN6dG9mIEtvbm9wa28gPGtyenlzenRvZi5rb25vcGtvQGdtYWlsLmNvbT4KCgkqIHNjcmlwdHMvZ2l0LXVwZGF0ZS5zaDoKCSAgc2NyaXB0czogaW1wcm92ZSBnaXQtdXBkYXRlLnNoIHN0YXR1cyBtZXNzYWdlCgkgIEJ5IGRlZmF1bHQgd2hlbiB0aGUgc2NyaXB0IGlzIGFib3V0IHRvIGV4aXQgKG5vcm1hbGx5IG9yIGR1ZSB0byBhbiBlcnJvciksCgkgIGl0IGNoZWNrcyB3aGV0aGVyICRFUlJPUl9MT0cgZmlsZSBleGlzdHMuICBJZiB0aGUgbG9nIGZpbGUgZXhpc3RzLCB0aGUKCSAgc2NyaXB0IHByaW50cyBhICJGYWlsdXJlczogIiBtZXNzYWdlIHByZWZpeCBhbmQgZHVtcHMgdGhlIGxvZyBmaWxlIHRvIHRoZQoJICBvdXRwdXQuCgkgIEFwcGFyZW50bHkgdGhlIGxvZyBmaWxlIGlzIGFsd2F5cyBjcmVhdGVkIGFuZCBpZiB0aGUgdXBkYXRlL2J1aWxkIGlzCgkgIHN1Y2Nlc3NmdWwsIHRoZSBzY3JpcHQgZmluaXNoZXMgd2l0aCBhIGJpdCBtaXNsZWFkaW5nICJGYWlsdXJlczogIiBtZXNzYWdlLgoJICBBbiBpbXByb3ZlbWVudCBwcm92aWRlZCB3aXRoIHRoaXMgY2hhbmdlIGxldHMgdGhlIGxvZyBmaWxlIHRvIGJlIGNyZWF0ZWQgYXMKCSAgbmVlZGVkLCBpLmUuIGlmIHRoZXJlJ3MgYW4gZXJyb3IgbWVzc2FnZSB0byBiZSBwcmludGVkLiAgSWYgdGhlIGZpbGUKCSAgZG9lc24ndCBleGlzdHMsIHRoZSBzY3JpcHQgcHJpbnRzIGEgIlVwZGF0ZSBkb25lIiBtZXNzYWdlIHdoaWNoIGNsZWFybHkKCSAgaW5kaWNhdGVzIHN1Y2Nlc3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDExNzcKCjIwMTMtMDUtMzAgMDc6MDM6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkgIGNoZWNrOiBmaXggcG9zaXRpb24gdW5pdCB0ZXN0CgoyMDEzLTA1LTMwIDA2OjUxOjI0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogaW1wcm92ZSBwb3NpdGlvbiByZXBvcnRpbmcgd2l0aG91dCBjbG9jawoJICBXaGVuIG5vIGJhc2UgdGltZSBvciB3aGVuIHN5bmMgaXMgZGlzYWJsZWQsIHVzZSB0aGUgc2FtZSBsb2dpYyBhcwoJICBpbiBwYXVzZWQgdG8gcmVwb3J0IHBvc2l0aW9uLiBUaGUgbG9naWMgaW4gUExBWUlORyBhc3N1bWVzIHdlIHVzZSB0aGUKCSAgY2xvY2suCgoyMDEzLTA1LTI5IDExOjM2OjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBGaXggbWVtb3J5IGxlYWsgaW4gdGhlIHVuaXQgdGVzdAoKMjAxMy0wNS0yOCAxMjo0NDoxOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IEFkZCBzdXBwb3J0IGZvciBjaGVja2luZyBzdWJ0aXRsZS9tZXRhZGF0YSBmYWN0b3J5IHR5cGVzCgoyMDEzLTA1LTI4IDEyOjQxOjI3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogQWRkIHN1cHBvcnQgZm9yIGNoZWNraW5nIG9ubHkgdGhlIG1lZGlhIHR5cGUgb2YgYSBmYWN0b3J5CgkgIEFuZCB3aGlsZSBhdCBpdCBhbHNvIGFkZCBNZXRhZGF0YSBhbmQgU3VidGl0bGUgbWVkaWEgdHlwZXMuCgoyMDEzLTA1LTI3IDE2OjM4OjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIChtdWx0aSlxdWV1ZTogRG9uJ3QgYWNjZXNzIHF1ZXJ5IGl0ZW1zIGR1cmluZyBmbHVzaGluZwoKMjAxMy0wNS0yNyAxNjoyMjowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRG9uJ3QgZG8gc2VyaWFsaXplZCBxdWVyaWVzIHdoZW4gd2UncmUgZmx1c2hpbmcKCSAgSnVzdCBpbW1lZGlhdGVseSBmYWlsIHRoZSBxdWVyeSwgb3RoZXJ3aXNlIHdlIHdvdWxkIHdhaXQgZm9yZXZlcgoJICBmb3IgdGhlIHF1ZXJ5IHRvIGJlIGFuc3dlcmVkLgoKMjAxMy0wNS0yNyAxNjowODozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEZpcnN0IHNldCBxdWVyeSByZXN1bHQsIHRoZW4gc2lnbmFsIEdDb25kCgoyMDEzLTA1LTI3IDE1OjU5OjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBxdWV1ZTogRml4IGhhbmRsaW5nIG9mIHNlcmlhbGl6ZWQgcXVlcmllcwoJICBEdXJpbmcgRkxVU0hfU1RBUlQgdGhlIHF1ZXJ5IG5lZWRzIHRvIGJlIHVuYmxvY2tlZCBhbHJlYWR5LCBvdGhlcndpc2UKCSAgaXQgY2FuIGxlYWQgdG8gZGVhZGxvY2tzIGlmIHRoZSBGTFVTSF9TVEFSVCBpcyB0aGUgcmVzdWx0IG9mIHNvbWV0aGluZwoJICBkb25lIGZyb20gdGhlIHN0cmVhbWluZyB0aHJlYWQgb2YgdGhlIHNyY3BhZCAodGhlIHF1ZXVlIHdpbGwgbmV2ZXIgYmUKCSAgZW1wdGllZCEpLgoKMjAxMy0wNS0yNyAxNTo0MToxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFVuYmxvY2sgYW55IHdhaXRpbmcgc2VyaWFsaXplIHF1ZXJpZXMgb24gRkxVU0hfU1RBUlQKCSAgRml4ZXMgc29tZSBkZWFkbG9ja3MgZHVyaW5nIGZsdXNoaW5nLgoJICBBbmQgc3RvcmUgcXVldWUgaXRlbXMgZGlmZmVyZW50bHkgdG8gbm90IGFjY2lkZW50aWFsbHkgcmVhZAoJICBhbHJlYWR5IHVucmVmZmVkIHF1ZXJpZXMgd2hlbiBmbHVzaGluZy4gUXVlcmllcyBhcmUgb3duZWQgYnkKCSAgdXBzdHJlYW0gYW5kIG5vdCB1cy4KCjIwMTMtMDUtMjcgMTM6MDE6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlL3F1ZXVlMi9tdWx0aXF1ZXVlOiBXaGVuIGZsdXNoaW5nLCBtYWtlIHN1cmUgdG8gbm90IGxvc2UgYW55IHN0aWNreSBldmVudHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODgyNAoKMjAxMy0wNS0yNyAxMjo0MDo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFN0b3JlIHN0aWNreSBldmVudHMgZXZlbiBpZiB0aGUgcGFkIGlzIGZsdXNoaW5nCgkgIEJ1dCBkbyB0aGlzIG9ubHkgZm9yIGV2ZW50cyB0aGF0IGFyZSBub3QgZHJvcHBlZCBieSBmbHVzaGluZywKCSAgaS5lLiBkbyBpdCBvbmx5IGZvciBldmVyeXRoaW5nIGV4Y2VwdCBTRUdNRU5UIGFuZCBFT1MuCgkgIFdpdGhvdXQgdGhpcyB3ZSBtaWdodCBkcm9wIGEgQ0FQUyBldmVudCBpZiBmbHVzaGluZyBoYXBwZW5zCgkgIGF0IGFuIHVuZm9ydHVuYXRlIHRpbWUgYW5kIG5vYm9keSBpcyByZXNlbmRpbmcgdGhlIENBUFMgZXZlbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDA4MDYKCjIwMTMtMDUtMjUgMjI6MDM6NTMgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogRG9uJ3QgcmVhZCBzdGlja3kgZmxhZyBmcm9tIHVucmVmZWQgZXZlbnQKCjIwMTMtMDUtMjQgMjM6Mjg6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IGZpeCBwcm9wZXJ0eSBkZXNjcmlwdGlvbiBmb3Igbm93LXVudXNlZCAiYWxsb2MtcGFkIiBwcm9wZXJ0eQoJICBTaG91bGQgcHJvYmFibHkgcHJveHkgQUxMT0NBVElPTiBxdWVyaWVzIG9uIHRoYXQgdGhvdWdoLCBpZiBzZXQuCgkgIEJ1dCB3aGF0IGVsc2U/IENBUFMgYW5kIEFDQ0VQVF9DQVBTIHRvbz8KCjIwMTMtMDUtMjQgMjM6MDE6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogcmVtb3ZlIDAuMTAtaXNtIGZyb20gZG9jcwoJICBnc3RfYnVmZmVyX3BhZF9hbGxvYygpIG5ldmVyIGV4aXN0ZWQsIGFuZCBnc3RfcGFkX2FsbG9jX2J1ZmZlcigpCgkgIGRvZXNuJ3QgZXhpc3QgYW55IG1vcmUgZWl0aGVyLCBzbyBkb24ndCBtZW50aW9uIGl0IGluIHRoZSBkb2NzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk0NzE0CgoyMDEzLTA1LTI0IDE5OjIyOjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IEFkZCBzdXBwb3J0IGZvciBzZXJpYWxpemVkIHF1ZXJpZXMgaWYgdXNpbmcgYSBtZW1vcnkgcXVldWUKCjIwMTMtMDUtMjQgMTg6NDc6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IFNldCB0aGUgbGFzdCBzZXJpYWxpemVkIHF1ZXJ5IHJlc3VsdCB0byBGQUxTRSB3aGVuIGZsdXNoaW5nCgoyMDEzLTA1LTI0IDE4OjQyOjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogSW5pdGlhbGl6ZSBhbGwgR3N0TXVsdGlRdWV1ZUl0ZW0gZmllbGRzIGluIGJvdGggY29kZSBwYXRocwoKMjAxMy0wNS0yNCAxODozODo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IERvbid0IGFjY2VzcyB0aGUgcXVlcnkgYWZ0ZXIgc2lnbmFsbGluZyB0aGUgd2FpdGluZyB0aHJlYWQKCSAgSXQgbWlnaHQndmUgZnJlZSdkIHRoZSBxdWVyeSBhbHJlYWR5LgoKMjAxMy0wNS0yNCAxODozMDo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IE1ha2Ugc3VyZSB0byBhbHdheXMgc2lnbmFsIGFueSBwb3NzaWJsZSBwZW5kaW5nIHNlcmlhbGl6ZWQgcXVlcmllcwoJICBBbmQgZG9uJ3QgdW5yZWYgdGhlbSB3aGVuIGZsdXNoaW5nIHRoZSBxdWV1ZSwgdGhleSdyZSBvd25lZCBieSB0aGUgY2FsbGVyIQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAwMzQyCgoyMDEzLTA1LTI0IDE0OjM3OjE5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogUmV0dXJuIEdTVF9GTE9XX0VSUk9SIGlmIHRoZSBhbGxvY2F0b3IgZGlkIG5vdCBhbGxvdyB0byBhbGxvY2F0ZSBhIGJ1ZmZlcgoKMjAxMy0wNS0yNCAxNjoyNDoxMCArMDkwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDoKCSAgZG9jczogUmVtb3ZlIG1lbnRpb24gb2YgZ2NvbmYqIGVsZW1lbnRzCgkgIEluc3RlYWQgcmVjb21tZW5kIHB1bHNlc3JjL3NpbmsgZm9yIGF1ZGlvLCB0aGVyZSBpcyBub3RoaW5nIEdOT01FCgkgIHNwZWNpZmljIGZvciB2aWRlby4KCjIwMTMtMDUtMTUgMTM6MjI6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IEhhbmRsZSB0aGUgZm9yY2UtY2FwcyBwcm9wZXJ0eSBtb3JlIHNpbWlsYXIgdG8gYWxsIHR5cGVmaW5kaW5nIGNvZGUgZmxvdwoJICBUaGlzIG1ha2VzIHN1cmUgdGhhdCBldmVudHMgaGFwcGVuIGluIG9yZGVyIGFuZCBzaW1wbGlmaWVzIHRoZSBjb2RlIGEgYml0LgoKMjAxMy0wNS0xNSAxMToyMTo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogRml4IGV2ZW50IGhhbmRsaW5nIGluIGdzdF9jaGVja19lbGVtZW50X3B1c2hfYnVmZmVyX2xpc3QoKQoKMjAxMy0wNS0xNSAxMDo1MTowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDVlZGNkODUgdG8gMDk4YzBkNwoKMjAxMy0wNS0xMCAxNjowMzozNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogT25seSBjaGVjayBpZiB3ZSBnZXQgYnVmZmVycyBiZWZvcmUgc3RyZWFtLXN0YXJ0L3NlZ21lbnQgaWYgY29tcGlsaW5nIHdpdGhvdXQgR19ESVNBQkxFX0FTU0VSVAoJICBJbiByZWxlYXNlcyB0aGlzIGlzIHNldCB1c3VhbGx5LgoKMjAxMy0wNS0wOSAxNzoxNzoxNCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBBZGQgaGVscGVyIHRoYXQgc2VuZHMgaW5pdGlhbCBldmVudHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMDAzMwoKMjAxMy0wNS0wOSAxNzoyMjoxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgY29tcGlsZXIgd2FybmluZwoKMjAxMy0wNS0wOSAxNzoyMToxMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogTWFrZSBzdXJlIHBlbmRpbmcsIG9sZGVyIHN0aWNreSBldmVudHMgYXJlIHNlbnQgZG93bnN0cmVhbSBpbiBkeW5hbWljIGxpbmtpbmcgc2NlbmFyaW9zCgkgIElmIGEgcGFkIGJsb2NrIHdhcyB0cmlnZ2VyZWQgZnJvbSBzZW5kaW5nIGEgc3RpY2t5IGV2ZW50IGRvd25zdHJlYW0sIGl0CgkgIGNvdWxkIGhhcHBlbiB0aGF0IHRoZSBwYWQgYmxvY2sgaXMgcmVsaW5raW5nIHBhZHMsIHdoaWNoIHRoZW4gcmVxdWlyZXMKCSAgdG8gcmVzZW5kIHByZXZpb3VzIHN0aWNreSBldmVudHMuCgoyMDEzLTA1LTA5IDEzOjMyOjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkgIHRlc3RzOiBGaXggZXZlbnQgb3JkZXIgd2FybmluZ3MgYW5kIGRhdGFmbG93IGJlZm9yZSBzdHJlYW0tc3RhcnQvc2VnbWVudCBldmVudAoKMjAxMy0wNS0wOSAxMzozMTozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJICBiYXNldHJhbnNmb3JtOiBQcm9wZXJseSBwb3J0IHVuaXQgdGVzdCB0byBhY3R1YWxseSB1c2UgY2FwcyBhbmQgY2hlY2sgcmVzdWx0cwoKMjAxMy0wNS0wOSAxMjo1MDoyMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBTdG9yZSBzdGlja3kgZXZlbnRzIG9uIHRoZSBzcmNwYWQgaWYgd2UncmUgZHJvcHBpbmcgdGhlbSBiZWNhdXNlIG9mIGxlYWtpbmcKCjIwMTMtMDUtMDkgMTI6Mjc6MTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogQWx3YXlzIGZvcndhcmQgc3RpY2t5IGV2ZW50cyB0byBhbGwgcGFkcwoKMjAxMy0wNS0wOSAxMjoxNTo0OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogRm9yd2FyZCBhbGwgc3RpY2t5IGV2ZW50cywgaW5jbHVkaW5nIHN0cmVhbS1zdGFydAoKMjAxMy0wNS0wOSAxMTowNTo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogV2FybiBpZiBkYXRhIGZsb3cgaGFwcGVucyBiZWZvcmUgc3RyZWFtLXN0YXJ0IG9yIHNlZ21lbnQgZXZlbnQKCjIwMTMtMDUtMDkgMTA6NTk6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IE9ubHkgbGV0IGdzdF9wYWRfc3RpY2t5X2V2ZW50c19mb3JlYWNoKCkgaXRlcmF0ZSBvdmVyIGV4aXN0aW5nIGV2ZW50cwoKMjAxMy0wNS0wOSAxMDoyOToxMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogSWYgd2UgcHVzaCBzdGlja3kgZXZlbnRzIGJlY2F1c2Ugb2YgYW5vdGhlciBzdGlja3kgZXZlbnQsIG9ubHkgcHVzaCB0aG9zZSB0aGF0IGNvbWUgYmVmb3JlIHRoZSBuZXcgZXZlbnQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5OTkzNwoKMjAxMy0wNS0wOSAwOTo1MDo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogQWRkIG1vcmUgZGVidWcgb3V0cHV0IGFuZCBmb3J3YXJkIGNhcHMgZXZlbnRzIGltbWVkaWF0ZWx5IHRvbwoKMjAxMy0wNS0wOSAwOTo0MjozMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogTm8gc3RpY2t5IGV2ZW50cyBtdXN0IGFycml2ZSBhZnRlciBFT1MKCjIwMTMtMDUtMDkgMDk6Mzg6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IEZpeCB0eXBvIGluIGxhc3QgY29tbWl0CgoyMDEzLTA1LTA4IDE5OjQ0OjA5IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBJbXByb3ZlIHdhcm5pbmcgbWVzc2FnZSBuYW1pbmcgZXZlbnRzIHR5cGUgbmFtZQoJICBXaXRoIHRoaXMgcGF0Y2gsIG1lc3NhZ2Ugc2hvdWxkIGxvb2sgbGlrZSDCqFN0aWNreSBldmVudCBtaXNvcmRlcmluZywgZ290CgkgICdjYXBzJyBiZWZvcmUgJ3N0cmVhbS1zdGFydCfCqCBtYWtpbmcgaXQgZmFzdGVyIHRvIGRlYnVnLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4MTg4CgoyMDEzLTA1LTA4IDE4OjE5OjQ4IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBPbmx5IGluZm9yY2UgU1RSRUFNX1NUQVJULCBDQVBTIGFuZCBTRUdNRU5UIG9yZGVyaW5nCgkgIFByZXZpb3VzIHBhdGNoIHdhcyBpbmZvcmNpbmcgYSBjb21wbGV0ZSBvcmRlcmluZyBvZiB0aGUgc3RpY2t5IGV2ZW50cywgd2hpbGUKCSAgaW4gZmFjdCwgb25seSBTVFJFQU1fU1RBUlQsIENBUFMgYW5kIFNFR01FTlQgZXZlbnRzIG5lZWQgcHJvcGVyIG9yZGVyaW5nLgoJICBTZWU6IGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODgxODgKCjIwMTMtMDUtMDkgMDk6MzI6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5oOgoJICBjYXBzZmlsdGVyOiBTZW5kIGFsbCBldmVudHMgdGhhdCBzaG91bGQgaGFwcGVuIGFmdGVyIENBUFMgYWZ0ZXIgdGhlIENBUFMgZXZlbnQKCjIwMTMtMDUtMDggMjE6NDU6MDggLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5oOgoJICBjYXBzZmlsdGVyOiBTZW5kIGNhcHMgYmVmb3JlIHNlZ21lbnQKCSAgSW4gdGhlIGNhc2UgdGhlIHNvdXJjZSBoYXMgbm8gY2FwcywgY2FwcyBtdXN0IGJlIHNlbnQgYmVmb3JlIHNlZ21lbnQuIFRoaXMKCSAgZml4ZXMgZmV3IHVuaXQgdGVzdHMgdGhhdCB3aGVyZSBmYWlsaW5nIGR1ZSB0byB0aGUgbmV3IG1pc29yZGVyaW5nIHdhcm5pbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTk5NjgKCjIwMTMtMDUtMDcgMjE6NTM6MzcgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IERldGVjdCwgZml4IGFuZCB3YXJuIHdoZW4gc3RpY2t5IGV2ZW50cyBhcmUgaW4gd3Jvbmcgb3JkZXIKCSAgV2UgY2FuIHByZXZlbnQgYnVnZ3kgZWxlbWVudCBmcm9tIGNhdXNpbmcgb3RoZXIgZWxlbWVudHMgdG8gZmFpbCBvciBjcmFzaAoJICBieSBzb3J0aW5nIHN0aWNreSBldmVudCBhdCBpbnNlcnRpb24uIEluIHRoaXMgY2FzZSwgd2UgYWxzbyB3YXJuIGFzIHRoaXMKCSAgaXMgbm90IHN1cHBvc2VkIHRvIGhhcHBlbi4KCSAgU2VlOiBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4MTg4CgoyMDEzLTA1LTA4IDEwOjI2OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICB0ZXN0czogYWRkIHNvbWUgYmFzaWMgY2hlY2tzIGZvciBnc3RfYnVmZmVyX2ZpbGwoKQoKMjAxMy0wNS0wOCAxMDoyNTozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBhbGxvdyBjYWxsaW5nIF9maWxsKCkgd2l0aCBhIE5VTEwgZGF0YSBwb2ludGVyIGlmIHNpemUgaXMgMCBieXRlcwoKMjAxMy0wNS0wNyAxNjo0NjozMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogQWRkIEZJWE1FIGNvbW1lbnQgZm9yIHVudXNlZCBhc3NpZ25tZW50IHJlc3VsdHMKCjIwMTMtMDUtMDcgMTU6MTg6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1tZXRhZGF0YS54bWw6CgkgIGRvY3M6IGZpeCB0eXBvIGluIG1ldGFkYXRhIHNlY3Rpb24gaW4gYXBwIGRldiBtYW51YWwKCSAgVGhlcmUncyBubyBnX3RhZ19saXN0X2dldF94eXooKS4KCjIwMTMtMDUtMDcgMTQ6NDc6MDkgKzAzMDAgIFNyZWVyZW5qIEJhbGFjaGFuZHJhbiA8c3JlZXJlbmouYmFsYWNoYW5kcmFuQGludGVsLmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogRml4IHRoZSBmdW5jdGlvbiBzaWduYXR1cmUgYW5kIGEgbWlub3IgdHlwbyBmaXgKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5OTgyNwoKMjAxMy0wNS0wNiAxODo0Nzo0NCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFNlbmQgc3RyZWFtLXN0YXJ0IGJlZm9yZSBhbnl0aGluZyBlbHNlCgkgIFRvIGRvIHNvLCBzZW5kIHN0cmVhbS1zdGFydCB3aGVuIHRoZSBzdHJlYW1pbmcgdGhyZWFkIGdvZXMgdXAgZm9yIHRoZSBmaXJzdAoJICB0aW1lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk5NzY3CgoyMDEyLTEyLTI2IDExOjU0OjUxICswMDAwICBEYXZpZCBSb3RobGlzYmVyZ2VyIDxkYXZpZEByb3RobGlzLm5ldD4KCgkqIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOgoJICB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjogQWxsb3cgMS4wIGFuZCAwLjEwIHNjcmlwdHMgaW5zdGFsbGVkIHNpbXVsdGFuZW91c2x5CgkgIEFzIGxvbmcgYXMgdGhlIHNjcmlwdHMnIGZpbGVuYW1lcyBhcmUgZGlmZmVyZW50LCBhbmQgdGhlIF9nc3RfaW5zcGVjdAoJICBhbmQgX2dzdF9sYXVuY2ggZnVuY3Rpb25zIGFyZSBuYW1lZCBkaWZmZXJlbnRseSwgdGhlIGNvbXBsZXRpb24gc2NyaXB0cwoJICBmb3IgR1N0cmVhbWVyIDEuMCBhbmQgMC4xMCBjYW4gYmUgaW5zdGFsbGVkIHNpZGUtYnktc2lkZSBpbgoJICAvZXRjL2Jhc2hfY29tcGxldGlvbi5kLgoJICBPbiBteSAwLjEwIGJyYW5jaOKAoCB0aGUgY29tcGxldGlvbiBzY3JpcHQgaXMgcmVuYW1lZCB0bwoJICAiZ3N0cmVhbWVyLWNvbXBsZXRpb24tMC4xMCIgYW5kIHRoZSBmdW5jdGlvbnMgYXJlIHJlbmFtZWQgdG8KCSAgIl9nc3RfaW5zcGVjdF8wXzEwIiBhbmQgIl9nc3RfbGF1bmNoXzBfMTAiLiBUaGUgcmVtYWluaW5nIGhlbHBlcgoJICBmdW5jdGlvbnMgc2hvdWxkIHJlbWFpbiBpZGVudGljYWwgKHRoZSBjb21tYW5kLWxpbmUgaW50ZXJmYWNlIHRvCgkgIGdzdC1pbnNwZWN0IGhhc24ndCBjaGFuZ2VkLCBub3IgaGFzIHRoZSBmb3JtYXQgb2YgdGhlIGdzdC1sYXVuY2gKCSAgcGlwZWxpbmUpLCBzbyBpdCBkb2Vzbid0IG1hdHRlciBpZiB0aGUgMS4wIHNjcmlwdCBvdmVycmlkZXMgdGhlIDAuMTAKCSAgc2NyaXB0J3MgZGVmaW5pdGlvbnMuCgkgIE5vdGUgdGhhdCBJIGRvbid0IGV4cGVjdCB0aGVyZSB0byBiZSBhbm90aGVyIEdTdHJlYW1lciAwLjEwIHJlbGVhc2UsIHNvCgkgIHRoZSAwLjEwIGNvbXBsZXRpb24gc2NyaXB0IHdpbGwgcHJvYmFibHkgbmV2ZXIgYmUgb2ZmaWNpYWxseSByZWxlYXNlZDsKCSAgYnV0IGl0IGlzIHN0aWxsIHdvcnRod2hpbGUgYWxsb3dpbmcgYm90aCBzY3JpcHRzIHRvIGJlIGluc3RhbGxlZAoJICBhbG9uZ3NpZGUgZWFjaCBvdGhlciwgZm9yIHRob3NlIHdobyBpbnN0YWxsIHRoZSAwLjEwIGNvbXBsZXRpb24gc2NyaXB0CgkgIG1hbnVhbGx5LgoJICBGaXhlczogIzY5MDUxNQoJICDigKAgaHR0cHM6Ly9naXRodWIuY29tL2Ryb3RobGlzL2dzdHJlYW1lci9ibG9iL2Jhc2gtY29tcGxldGlvbi0wLjEwL3Rvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uLTAuMTAKCjIwMTItMTItMjEgMTg6MTM6NTMgKzAwMDAgIERhdmlkIFJvdGhsaXNiZXJnZXIgPGRhdmlkQHJvdGhsaXMubmV0PgoKCSogdGVzdHMvbWlzYy90ZXN0LWdzdHJlYW1lci1jb21wbGV0aW9uLnNoOgoJKiB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjoKCSAgdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246IENvbXBsZXRlIG9wdGlvbiAmIHByb3BlcnR5IHZhbHVlcyBvbiBiYXNoIDMuMgoJICBCYXNoIDMncyBjb21wbGV0aW9uIGRvZXNuJ3Qgc3BsaXQgd29yZHMgYnkgY2hhcmFjdGVycyBpbgoJICBDT01QX1dPUkRCUkVBS1MuIEluIHBhcnRpY3VsYXIgaXQgZG9lc24ndCBzcGxpdCBhdCAiPSIgc2lnbnMuIE5vdwoJICBfZ3N0X2xhdW5jaF9wYXJzZSBoYW5kbGVzIGJvdGggYmFzaCAzIGFuZCA0IGZvcm1hdCBvZiBDT01QX1dPUkRTLgoJICBOb3RlIHRoYXQgIiR7Y3VyJSU9Kn0iIG1lYW5zIGN1cidzIHZhbHVlIHdpdGggdGhlIGxvbmdlc3QgcG9zc2libGUgbWF0Y2gKCSAgb2YgIj0qIiBkZWxldGVkIGZyb20gdGhlIGVuZDsgIiR7Y3VyIyo9fSIgbWVhbnMgY3VyJ3MgdmFsdWUgd2l0aCB0aGUKCSAgc2hvcnRlc3QgcG9zc2libGUgbWF0Y2ggb2YgIio9IiBkZWxldGVkIGZyb20gdGhlIGJlZ2lubmluZy4gU2VlCgkgIGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9iYXNoL21hbnVhbC9odG1sX25vZGUvU2hlbGwtUGFyYW1ldGVyLUV4cGFuc2lvbi5odG1sCgkgIFJlZ2FyZGxlc3Mgb2YgdGhlIHZlcnNpb24gb2YgYmFzaCBydW5uaW5nIHRoZSB1bml0IHRlc3RzLCBJIGNhbiB0ZXN0IGZvcgoJICBib3RoIGJlaGF2aW91cnMgYmVjYXVzZSB0aGUgdW5pdCB0ZXN0IHBvcHVsYXRlcyBDT01QX1dPUkRTIG1hbnVhbGx5LiBTbwoJICB0aGlzIHRlc3RzIHRoZSBiYXNoIDMgYmVoYXZpb3VyOgoJICB0ZXN0X2dzdF9pbnNwZWN0X2NvbXBsZXRpb24gLS1nc3QtZGVidWctbGV2ZWw9NAoJICBhbmQgdGhpcyB0ZXN0cyB0aGUgYmFzaCA0IGJlaGF2aW91cjoKCSAgdGVzdF9nc3RfaW5zcGVjdF9jb21wbGV0aW9uIC0tZ3N0LWRlYnVnLWxldmVsID0gNAoKMjAxMi0xMi0yMSAwODo1NjoyNiArMDAwMCAgRGF2aWQgUm90aGxpc2JlcmdlciA8ZGF2aWRAcm90aGxpcy5uZXQ+CgoJKiB0ZXN0cy9taXNjL3Rlc3QtZ3N0cmVhbWVyLWNvbXBsZXRpb24uc2g6CgkqIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOgoJICB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjogQmFzaCAzLjIgY29tcGF0aWJpbGl0eSBmaXhlcwoJICBDb21wYXRpYmxlIHdpdGggYmFzaCAzLjI7IGRvZXNuJ3QgcmVxdWlyZSB0aGUgYmFzaC1jb21wbGV0aW9uIHBhY2thZ2UgYXQKCSAgYWxsICh0aG91Z2ggdGhlIGVhc2llc3Qgd2F5IHRvIGluc3RhbGwgdGhpcyBzY3JpcHQgaXMgc3RpbGwgdG8gaW5zdGFsbAoJICBiYXNoLWNvbXBsZXRpb24sIGFuZCB0aGVuIGRyb3AgdGhpcyBzY3JpcHQgaW50byAvZXRjL2Jhc2hfY29tcGxldGlvbi5kKS4KCSAgTm90ZSB0aGF0IGJhc2ggMyBkb2Vzbid0IGJyZWFrIENPTVBfV09SRFMgYWNjb3JkaW5nIHRvIGNoYXJhY3RlcnMgaW4KCSAgQ09NUF9XT1JEQlJFQUtTLCBzbyAicHJvcGVydHk9dmFsIiBsb29rcyBsaWtlIGEgc2luZ2xlIHdvcmQsIHNvIHRoaXMKCSAgd29uJ3QgY29tcGxldGUgcHJvcGVydHkgdmFsdWVzIChvbiBiYXNoIDMpLiBTaW1pbGFybHksCgkgICItLWdzdC1kZWJ1Zy1sZXZlbD08VEFCPiIgd29uJ3QgY29tcGxldGUgcHJvcGVybHkgKG9uIGJhc2ggMyksIGJ1dAoJICAiLS1nc3QtZGVidWctbGV2ZWwgPFRBQj4iIHdpbGwuCgkgIEZvciB0aGF0IHJlYXNvbiwgSSBub3cgb2ZmZXIgIi0tZ3N0LWRlYnVnLWxldmVsIiBldGMgYXMgY29tcGxldGlvbnMKCSAgaW5zdGVhZCBvZiAiLS1nc3QtZGVidWctbGV2ZWw9Ii4KCSAgRnVuY3Rpb25zICJfaW5pdF9jb21wbGV0aW9uIiBhbmQgIl9wYXJzZV9oZWxwIiB3ZXJlIHByb3ZpZGVkIGJ5IHRoZQoJICBiYXNoLWNvbXBsZXRpb24gcGFja2FnZSA+PSAyLjA7IG5vdyBJIHJvbGwgbXkgb3duIGVxdWl2YWxlbnQgb2YKCSAgIl9wYXJzZV9oZWxwIiwgYW5kIGluc3RlYWQgb2YgIl9pbml0X2NvbXBsZXRpb24iIEkgdXNlCgkgICJfZ2V0X2NvbXBfd29yZHNfYnlfcmVmIiB3aGljaCBpcyBhdmFpbGFibGUgZnJvbSBiYXNoLWNvbXBsZXRpb24gMS4yCgkgIG9ud2FyZHMuIElmIHRoZSBiYXNoLWNvbXBsZXRpb24gcGFja2FnZSBpc24ndCBhdmFpbGFibGUgYXQgYWxsIEkgdXNlCgkgIGJhc2gncyByYXcgZmFjaWxpdGllcywgYXQgdGhlIGV4cGVuc2Ugb2Ygbm90IGNvbXBsZXRpbmcgcHJvcGVybHkgd2hlbgoJICB0aGUgY3Vyc29yIGlzIGluIHRoZSBtaWRkbGUgb2YgYSB3b3JkLgoJICBUaGUgYnVpbHRpbiAiY29tcG9wdCIgZG9lc24ndCBleGlzdCBpbiBiYXNoIDM7IHRob3NlIHVzZXJzIHdpbGwganVzdAoJICBoYXZlIHRvIGxpdmUgd2l0aCB0aGUgaW5jb252ZW5pZW5jZSBvZiAicHJvcGVydHk9IiBjb21wbGV0aW5nIHRvCgkgICJwcm9wZXJ0eT0gIiB3aXRoIGEgdHJhaWxpbmcgc3BhY2UuIFByb3BlcnR5IHZhbHVlcyBhcmVuJ3QgY29tcGxldGVkCgkgIHByb3Blcmx5IGFueXdheSBvbiBiYXNoIDMgKHNlZSBhYm92ZSkuCgkgICJbWyAtdiB2YXIgXV0iIHRvIHRlc3Qgd2hldGhlciBhIHZhcmlhYmxlIGlzIHNldCwgYWxzbyBkb2Vzbid0IGV4aXN0IGluCgkgIGJhc2ggMy4gTmVpdGhlciBkb2VzICI7OyYiIHRvIGZhbGwgdGhyb3VnaCBpbiBhICJjYXNlIiBzdGF0ZW1lbnQuCgkgIEluIHRoZSB1bml0IHRlc3RzOgoJICAqIE9uIG15IHN5c3RlbSAoT1MgWCksICIjIS9iaW4vYmFzaCIgaXMgYmFzaCAzLjIsIHdoZXJlYXMKCSAgIiMhL3Vzci9iaW4vZW52IGJhc2giIGlzIHRoZSA0LjIgdmVyc2lvbiBJIGJ1aWx0IG15c2VsZi4KCSAgKiBJIGhhdmUgdG8gaW5pdGlhbGlzZSBhcnJheSB2YXJpYWJsZXMgbGlrZSAiZXhwZWN0ZWQ9KCkiLCBvciBiYXNoIDMKCSAgdHJlYXRzICIrPSIgYXMgYXBwZW5kaW5nIHRvIGFuIGFycmF5IGFscmVhZHkgcG9wdWxhdGVkIHdpdGggb25lIGVtcHR5CgkgIHN0cmluZy4KCjIwMTItMTItMTkgMTA6NDY6NTAgKzAwMDAgIERhdmlkIFJvdGhsaXNiZXJnZXIgPGRhdmlkQHJvdGhsaXMubmV0PgoKCSAgdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246IFN1cHBvcnQgZ3N0LWluc3BlY3QsIGFuZCBnc3QtbGF1bmNoIGVsZW1lbnQgcHJvcGVydGllcwoJICBDb21wbGV0ZXMgb3B0aW9ucyBsaWtlICItLWdzdC1kZWJ1Zy1sZXZlbCIgYW5kIHRoZSB2YWx1ZXMgb2Ygc29tZSBvZgoJICB0aG9zZSBvcHRpb25zOyBjb21wbGV0ZXMgZ3N0LWxhdW5jaCBwaXBlbGluZSBlbGVtZW50IG5hbWVzLCBwcm9wZXJ0eQoJICBuYW1lcywgYW5kIGV2ZW4gcHJvcGVydHkgdmFsdWVzIChmb3IgZW51bSBvciBib29sZWFuIHByb3BlcnRpZXMgb25seSkuCgkgIERvZXNuJ3QgY29tcGxldGUgYWxsIGNhcHMgc3BlY2lmaWNhdGlvbnMsIG5vciBlbGVtZW50IG5hbWVzIHNwZWNpZmllZAoJICBlYXJsaWVyIGluIHRoZSBwaXBlbGluZSB3aXRoICJuYW1lPS4uLiIuCgkgIFRoZSBHU3RyZWFtZXIgdmVyc2lvbiBudW1iZXIgaXMgaGFyZC1jb2RlZCBpbnRvIHRoZSBjb21wbGV0aW9uIHNjcmlwdDoKCSAgVGhpcyBwYXRjaCBpcyBvZmYgdGhlIG1hc3RlciBicmFuY2ggYW5kIGhhcyB0aGUgdmVyc2lvbiBoYXJkLWNvZGVkIGFzCgkgICIxLjAiOyBpdCBuZWVkcyB0byBiZSB1cGRhdGVkIGlmIGJhY2twb3J0ZWQgdG8gdGhlIDAuMTAgYnJhbmNoLiBZb3UKCSAgY291bGQgYWx3YXlzIGNyZWF0ZSBhICJnc3RyZWFtZXItY29tcGxldGlvbi5pbiIgdGhhdCBoYXMgdGhlIGFwcHJvcHJpYXRlCgkgIHZlcnNpb24gaW5zZXJ0ZWQgYnkgImNvbmZpZ3VyZSIsIGJ1dCBJJ2QgcmF0aGVyIG5vdCBkbyB0aGF0LiBUaGUKCSAgaGFyZC1jb2RlZCB2ZXJzaW9uIGlzIGNvbnNpc3RlbnQgd2l0aCB0aGUgcHJldmlvdXMgaW1wbGVtZW50YXRpb24gb2YKCSAgZ3N0cmVhbWVyLWNvbXBsZXRpb24sIHdoaWNoIGhhZCB0aGUgcmVnaXN0cnkgcGF0aCBoYXJkLWNvZGVkIGFzCgkgIH4vLmdzdHJlYW1lci0xLjAvcmVnaXN0cnkueG1sLgoJICBOb3RlIHRoYXQgR1N0cmVhbWVyIDAuMTAgaW5zdGFsbHMgImdzdC1pbnNwZWN0IiBhbmQgImdzdC1pbnNwZWN0LTAuMTAiLgoJICAiZ3N0LWluc3BlY3QgLS1oZWxwIiBvbmx5IHByaW50cyA0IGZsYWdzICgtLWhlbHAsIC0tcHJpbnQsIC0tZ3N0LW1tLAoJICBnc3QtbGlzdC1tbSkgd2hlcmVhcyAiZ3N0LWluc3BlY3QtMC4xMCAtLWhlbHAtYWxsIiBwcmludHMgdGhlIGZ1bGwgbGlzdAoJICBvZiBmbGFncy4gVGhlIHNhbWUgYXBwbGllcyB0byAiZ3N0LWxhdW5jaCIgYW5kICJnc3QtbGF1bmNoLTAuMTAiLgoJICBHU3RyZWFtZXIgMS4wIG9ubHkgaW5zdGFsbHMgImdzdC1pbnNwZWN0LTEuMCIsIG5vdCAiZ3N0LWluc3BlY3QiLgoJICBSZXF1aXJlcyBiYXNoIDQ7IG9ubHkgdGVzdGVkIHdpdGggYmFzaCA0LjIuIFJlcXVpcmVzICJiYXNoLWNvbXBsZXRpb24iCgkgICh3aGljaCB5b3UgaW5zdGFsbCB3aXRoIHlvdXIgc3lzdGVtJ3MgcGFja2FnZSBtYW5hZ2VyKS4KCSAgUHV0IHRoaXMgaW4gL2V0Yy9iYXNoX2NvbXBsZXRpb24uZC8gb3IgaW4gYHBrZy1jb25maWcKCSAgLS12YXJpYWJsZT1jb21wYXRkaXIgYmFzaC1jb21wbGV0aW9uYCwgd2hlcmUgaXQgd2lsbCBiZSBsb2FkZWQgYXQgdGhlCgkgIGJlZ2lubmluZyBvZiBldmVyeSBuZXcgdGVybWluYWwgc2Vzc2lvbjsKCSAgb3IgaW4gYHBnay1jb25maWcgLS12YXJpYWJsZT1jb21wbGV0aW9uc2RpciBiYXNoLWNvbXBsZXRpb25gLCByZW5hbWVkIHRvCgkgIG1hdGNoIHRoZSBuYW1lIG9mIHRoZSBjb21tYW5kIGl0IGNvbXBsZXRlcyAoZS5nLiAiZ3N0LWxhdW5jaC0xLjAiLCB3aXRoCgkgIGFuIGFkZGl0aW9uYWwgc3ltbGluayBuYW1lZCAiZ3N0LWluc3BlY3QtMS4wIiksIHdoZXJlIGl0IHdpbGwgYmUKCSAgYXV0b2xvYWRlZCB3aGVuIG5lZWRlZC4KCSAgdGVzdC1nc3RyZWFtZXItY29tcGxldGlvbi5zaCBpcyAoZm9yIG5vdykgaW4gdGVzdHMvbWlzYyAtLSBpdCBtaWdodCBiZQoJICB3b3J0aCBjcmVhdGluZyAidGVzdHMvY2hlY2svdG9vbHMiLCB3aXRoIGFsbCB0aGUgbmVjZXNzYXJ5IGF1dG9tYWtlCgkgIGJvaWxlcnBsYXRlLCBhbmQgbW92aW5nIHRlc3QtZ3N0cmVhbWVyLWNvbXBsZXRpb24uc2ggdGhlcmUsIGFuZCBoYXZlIGl0CgkgIHJ1biBhdXRvbWF0aWNhbGx5IHdpdGggIm1ha2UgY2hlY2siLgoJICBJRiBZT1UnUkUgTkVXIFRPIEJBU0ggQ09NUExFVElPTiBTQ1JJUFRTCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgImNvbXBsZXRlIC1GIF9nc3RfbGF1bmNoIGdzdC1sYXVuY2gtMS4wIiBtZWFucyB0aGF0IGJhc2ggd2lsbCBydW4gdGhlCgkgIGZ1bmN0aW9uICJfZ3N0X2xhdW5jaCIgdG8gZ2VuZXJhdGUgcG9zc2libGUgY29tcGxldGlvbnMgZm9yIHRoZSBjb21tYW5kCgkgICJnc3QtbGF1bmNoLTEuMCIuCgkgICJfZ3N0X2xhdW5jaCIgbXVzdCByZXR1cm4gdGhlIHBvc3NpYmxlIGNvbXBsZXRpb25zIGluIHRoZSBhcnJheSB2YXJpYWJsZQoJICBDT01QUkVQTFkuIChOb3RlIG9uIGJhc2ggc3ludGF4OiAiVj0oYSBiIGMpIiBhc3NpZ25zIHRocmVlIGVsZW1lbnRzIHRvCgkgIHRoZSBhcnJheSAiViIpLgoJICAiY29tcGdlbiIgcHJpbnRzIGEgbGlzdCBvZiBwb3NzaWJsZSBjb21wbGV0aW9ucyB0byBzdGFuZGFyZCBvdXRwdXQuIFRyeQoJICBpdDoKCSAgY29tcGdlbiAtVyAiYWJjMSBhYmMyIGRlZiIgLS0gImEiCgkgIGNvbXBnZW4gLWYgLS0gIi8iCgkgIFRoZSBsYXN0IGFyZ3VtZW50IGlzIHRoZSB3b3JkIGN1cnJlbnRseSBiZWluZyBjb21wbGV0ZWQ7IGNvbXBnZW4gdXNlcyBpdAoJICB0byBmaWx0ZXIgb3V0IHRoZSBub24tbWF0Y2hpbmcgY29tcGxldGlvbnMuIFdlIHB1dCAiLS0iIGZpcnN0LCBpbiBjYXNlCgkgIHRoZSB3b3JkIGN1cnJlbnRseSBiZWluZyBjb21wbGV0ZWQgc3RhcnRzIHdpdGggIi0iIG9yICItLSIsIHNvIHRoYXQgaXQKCSAgaXNuJ3QgdHJlYXRlZCBhcyBhIGZsYWcgdG8gY29tcGdlbi4KCSAgRm9yIHRoZSBkb2N1bWVudGF0aW9uIG9mIENPTVBfV09SRFMsIENPTVBfQ1dPUkQsIGV0YyBzZWUKCSAgaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2Jhc2gvbWFudWFsL2h0bWxfbm9kZS9CYXNoLVZhcmlhYmxlcy5odG1sI2luZGV4LUNPTVBfMDA1ZkNXT1JELTE4MAoJICBTZWUgYWxzbzoKCSAgKiBodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvYmFzaC9tYW51YWwvaHRtbF9ub2RlL1Byb2dyYW1tYWJsZS1Db21wbGV0aW9uLmh0bWwKCSAgKiBodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvYmFzaC9tYW51YWwvaHRtbF9ub2RlL1Byb2dyYW1tYWJsZS1Db21wbGV0aW9uLUJ1aWx0aW5zLmh0bWwKCSAgVGhlIGJhc2gtY29tcGxldGlvbiBwYWNrYWdlIHByb3ZpZGVzIHRoZSBoZWxwZXIgZnVuY3Rpb24KCSAgIl9pbml0X2NvbXBsZXRpb24iIHdoaWNoIHBvcHVsYXRlcyB2YXJpYWJsZXMgImN1ciIsICJwcmV2IiwgYW5kICJ3b3JkcyIuCgkgIFNlZQoJICBodHRwOi8vYW5vbnNjbS5kZWJpYW4ub3JnL2dpdHdlYi8/cD1iYXNoLWNvbXBsZXRpb24vYmFzaC1jb21wbGV0aW9uLmdpdDthPWJsb2I7Zj1iYXNoX2NvbXBsZXRpb247aD04NzA4MTFiNDtoYj1IRUFEI2w2MzQKCSAgTm90ZSB0aGF0IGJ5IGRlZmF1bHQsIGJhc2ggYXBwZW5kcyBhIHNwYWNlIHRvIHRoZSBjb21wbGV0ZWQgd29yZC4gV2hlbgoJICB0aGUgY29tcGxldGlvbiBpcyAicHJvcGVydHk9IiB3ZSBkb24ndCB3YW50IGEgdHJhaWxpbmcgc3BhY2U7IGNhbGxpbmcKCSAgImNvbXBvcHQgLW8gbm9zcGFjZSIgbW9kaWZpZXMgdGhlIGN1cnJlbnRseS1leGVjdXRpbmcgY29tcGxldGlvbgoJICBhY2NvcmRpbmdseS4gU2VlCgkgIGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9iYXNoL21hbnVhbC9odG1sX25vZGUvUHJvZ3JhbW1hYmxlLUNvbXBsZXRpb24tQnVpbHRpbnMuaHRtbCNpbmRleC1jb21wb3B0CgoyMDEyLTExLTEzIDE2OjM2OjQ2ICswMDAwICBEYXZpZCBSb3RobGlzYmVyZ2VyIDxkYXZpZEByb3RobGlzLm5ldD4KCgkqIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOgoJICB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjogVXBkYXRlZCB0byB3b3JrIHdpdGggdGhlIGJpbmFyeSByZWdpc3RyeQoJICBUaGUgb3JpZ2luYWwgcmVnaXN0cnkgd2FzIGluIHhtbCBmb3JtYXQgKH4vLmdzdHJlYW1lci0qL3JlZ2lzdHJ5LnhtbCkuIEEKCSAgYmluYXJ5IHJlZ2lzdHJ5IGZvcm1hdCB3YXMgYWRkZWQgaW4gMjAwNyAoY29tbWl0IGViZjBjOWQzKSBhbmQgbWFkZSB0aGUKCSAgZGVmYXVsdCBpbiAyMDA4IChjb21taXQgM2YzOWZkN2UpLiBJbiAwLjEwIHlvdSBjb3VsZCBzdGlsbCBjaG9vc2UgYXQKCSAgImNvbmZpZ3VyZSIgdGltZSB0byB1c2UgdGhlIHhtbCByZWdpc3RyeSBpbnN0ZWFkOyBpbiAxLjAgdGhlIGJpbmFyeQoJICByZWdpc3RyeSBpcyB5b3VyIG9ubHkgY2hvaWNlLgoJICBUaGlzIGNoYW5nZSB0byBnc3RyZWFtZXItY29tcGxldGlvbiBzaG91bGQgd29yayB3aXRoIGVpdGhlciBmb3JtYXQKCSAgYmVjYXVzZSBpdCBwYXJzZXMgdGhlIG91dHB1dCBvZiAiZ3N0LWluc3BlY3QiIGluc3RlYWQgb2YgcmVhZGluZyB0aGUKCSAgcmVnaXN0cnkgZmlsZSBkaXJlY3RseS4KCSAgTm90ZSB0aGF0IF9nc3RfbGF1bmNoIG5vIGxvbmdlciBuZWVkcyBhbiBleHBsaWNpdCAicmV0dXJuIDAiIGJlY2F1c2UsCgkgIHVubGlrZSB0aGUgcHJldmlvdXMgZ3JlcCBjb21tYW5kLCBjb21wZ2VuIGFsd2F5cyByZXR1cm5zIDAgKHVubGVzcyBhCgkgIGdlbnVpbmUgZXJyb3Igb2NjdXJzKS4KCSAgSnVzdCBsaWtlIHRoZSBwcmV2aW91cyBpbXBsZW1lbnRhdGlvbiBieSBEYXZpZCBTY2hsZWVmLCB0aGlzICJvbmx5CgkgIGNvbXBsZXRlcyBuYW1lcyBvZiBmZWF0dXJlcywgYnV0IHRoYXQncyA5MCUgb2Ygd2hhdCBJIHdhbnQgaXQgZm9yLiIKCjIwMTMtMDQtMjkgMjE6MTE6MzYgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIHBvcnRpbmctdG8tMS4wLnR4dDogbml0IGNsYXJpZmljYXRpb24KCSAgSXQgaXMgdGhlIHByb2Nlc3MgY29udGV4dCB0aGF0IG1hdHRlcnMuCgoyMDEzLTA0LTI5IDEzOjIwOjExICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBBbHdheXMgbGVhdmUgVFlQRUZJTkQgbW9kZSB3aGVuIHdlJ3JlIHN0b3BwaW5nIHR5cGVmaW5kaW5nCgoyMDEzLTA0LTI5IDEzOjAzOjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBTaW1wbGlmeSBjb2RlCgkgIFRoaXMgaXMgb25seSBjYWxsZWQgd2hlbiBpbiBUWVBFRklORCBtb2RlLgoKMjAxMy0wNC0yOSAxMjo1ODowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogUHVzaCBwZW5kaW5nIGV2ZW50cyBpbmRlcGVuZGVudCBvZiB0aGUgZXhpc3RlbmNlIG9mIGEgZG93bnN0cmVhbSBjaGFpbiBmdW5jdGlvbiBhbmQgcGVlcgoJICBEb3duc3RyZWFtIG1pZ2h0IGNyZWF0ZSBhIHBlZXIgb25seSBhcyByZXN1bHQgb2YgdGhlIGV2ZW50cyBpbiB0aGVvcnkuCgoyMDEzLTA0LTI5IDEyOjU2OjU0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBPbmx5IHB1c2ggQ0FQUyBldmVudCBvbmNlIGlmIHdlIGdldCBvbmUgZnJvbSB1cHN0cmVhbQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyNzg0CgoyMDEzLTA0LTI5IDEyOjU0OjI3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBTdG9wIHR5cGVmaW5kaW5nIGlmIHdlIGdldCBhIENBUFMgZXZlbnQgZnJvbSB1cHN0cmVhbQoKMjAxMy0wNC0yOSAxMjo1Mjo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogSW1wcm92ZSBoYW5kbGluZyBvZiBHQVAgZXZlbnRzCgkgIFRoZXJlJ3Mgc3RpbGwgcm9vbSBmb3IgaW1wcm92ZW1lbnQgdGhvdWdoLgoKMjAxMy0wNC0yOSAxMjo0ODoyOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogRm9yd2FyZCBldmVudHMgdGhhdCBzaG91bGQgaGFwcGVuIGJlZm9yZSB0aGUgY2FwcyBldmVudCBkaXJlY3RseQoJICBUaGVyZSdzIG5vIHBvaW50IGluIHN0b3JpbmcgdGhlbSBhbmQgc2VuZGluZyB0aGVtIGxhdGVyLCBhbmQgZG9pbmcgc28gd291bGQKCSAgbGF0ZXIgcmVxdWlyZSB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIGV2ZW50cyB0aGF0IHNob3VsZCBjb21lIGJlZm9yZSBjYXBzIGFuZAoJICBhZnRlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5Mjc4NAoKMjAxMy0wNC0yOSAxMjo0ODoxMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogT25seSBwdXNoIHBlbmRpbmcgYnVmZmVycyBhbmQgZXZlbnRzIGlmIHdlIGhhdmUgY2FwcwoKMjAxMy0wNC0yOSAxMjozOToyMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogUmVtb3ZlIGNvZGUgdGhhdCB3b3VsZCBjYXVzZSBjYXBzIHRvIGJlIHNlbnQgdHdpY2UKCSAgV2hlbmV2ZXIgd2Ugc2V0IHR5cGVmaW5kLT5jYXBzIHdlIHdpbGwgYWxzbyBzZW5kIGEgY2FwcyBldmVudCBkb3duc3RyZWFtLgoKMjAxMy0wNC0yNyAyMDozMzowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWFsbG9jYXRpb24ueG1sOgoJICBwd2c6IGltcHJvdmUgYWxsb2NhdGlvbiBkb2NzCgoyMDEzLTA0LTI3IDExOjQ2OjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IHNldCBDS19USU1FT1VUX01VTFRJUExJRVIgb24gQVJNCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTU1OTkKCjIwMTMtMDQtMjcgMDA6MDU6NDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJICB0eXBlZmluZDogZml4IGNhcHMgbGVhayB3aGVuIHVzZWQgaW4gY29ubmVjdGlvbiB3aXRoIHVyaWRlY29kZWJpbiBhbmQgcGxheWJpbgoJICBEb24ndCBsZWFrIGZvcmNlZCBzaW5rIGNhcHMuCgoyMDEzLTA0LTIyIDE4OjA4OjQzIC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IEZpeCBlbGVtZW50LXR5cGUgYW5ub3RhdGlvbnMKCjIwMTMtMDQtMjUgMTY6Mzg6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFRyeSB0byBub3QgcHVzaCByZWFkLW9ubHkgYnVmZmVycwoJICBXZSBzaG91bGQgb25seSBpbmNyZWFzZSB0aGUgcmVmY291bnQgYmVmb3JlIHB1c2hpbmcgaWYgd2UncmUKCSAgcmVhbGx5IGdvaW5nIHRvIHVzZSB0aGUgYnVmZmVyIGFmdGVyd2FyZHMuCgoyMDEzLTA0LTI1IDA3OjE1OjM5ICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IGFkZCBjaGVjayBmb3IgRkxVU0ggcGFkIHByb2JlcwoKMjAxMy0wNC0yNCAwODo0MDozMiArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogcnVuIHByb2JlcyBmb3IgRkxVU0ggZXZlbnRzIHNlbnQgd2l0aCBnc3RfcGFkX3NlbmRfZXZlbnQKCSAgTW92ZSBwcm9iZSBoYW5kbGluZyBpbiBnc3RfcGFkX3NlbmRfZXZlbnRfdW5jaGVja2VkIHNvIHRoYXQgcHJvYmVzIGFyZSBydW4gZm9yCgkgIEZMVVNIIGV2ZW50cyB0b28uCgoyMDEzLTA0LTI0IDE1OjU4OjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIG5ldGNsb2NrOiBBZGQgc3VwcG9ydCBmb3IgSVB2NgoKMjAxMy0wNC0yNCAxMjozMDowNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIHBvcnRpbmctdG8tMS4wLnR4dDogYWRkIHRyb3VibGVzaG9vdGluZyBzZWN0aW9uCgkgIEFkZCBub3RlIGFib3V0ICJjYW5ub3QgcmVnaXN0ZXIgZXhpc3RpbmcgdHlwZSBgR3N0T2JqZWN0JyIgd2FybmluZy4KCjIwMTMtMDQtMjMgMTE6NDc6NTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBPbmx5IGluZmVyIFRTIGlmIFBUUyBpbnRlcnBvbGF0aW9uIGlzIGVuYWJsZWQKCSAgT3RoZXJ3aXNlIHRoaXMgaXMgYnJlYWtpbmcgdGltZXN0YW1wcyBvZiBmb3JtYXRzIHRoYXQKCSAgbmVlZCByZW9yZGVyaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk3NjYyCgoyMDEzLTA0LTIzIDExOjE3OjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG5vdGlmeSBjYXBzIHByb3BlcnR5IG9uIE5VTEwgYXMgd2VsbAoJICBBbHNvIG5vdGlmeSB0aGUgY2FwcyBwcm9wZXJ0eSB3aGVuIGl0IGNoYW5nZXMgdG8gTlVMTAoKMjAxMy0wNC0yMyAxMToxNjoxNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBjbGFyaWZ5IGxvY2tpbmcKCjIwMTMtMDQtMjIgMjM6NTA6MTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBNQUlOVEFJTkVSUzoKCSogUkVBRE1FOgoJKiBSRUFETUUuc3RhdGljLWxpbmtpbmc6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gM2NiM2QzYyB0byA1ZWRjZDg1CgoyMDEzLTA0LTE5IDE1OjAxOjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnRleHQudHh0OgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJICBwYXJ0LWNvbnRleHQ6IFdyaXRlIHNvbWUgZGVzaWduIGRvY3VtZW50YXRpb24gYWJvdXQgR3N0Q29udGV4dAoKMjAxMy0wNC0xOSAxMzoyMTozNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNhcHMudHh0OgoJICBwYXJ0LWNhcHM6IEFkZCBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGNhcHMgZmVhdHVyZXMsIGNhcHMgc2VtYW50aWNzIGFuZCBob3cgdG8gdXNlIHRoZW0KCjIwMTMtMDQtMTkgMTE6MjM6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1jYXBzLnR4dDoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJICBjYXBzZmVhdHVyZXM6IEFkZCBkb2N1bWVudGF0aW9uIGFib3V0IEFOWSBHc3RDYXBzRmVhdHVyZXMKCjIwMTMtMDQtMTkgMTA6MjQ6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogRG9uJ3Qgc2V0IGxhc3RfcmVuZGVyX3RpbWUgaWYgd2UncmUgY2hlY2tpbmcgZm9yIGEgbGF0ZSBidWZmZXIgYmVmb3JlIDo6cHJlcGFyZSgpCgkgIFRoaXMgbWFrZXMgc3VyZSB0aGF0IGF0IGxlYXN0IG9uZSBidWZmZXIgcGVyIHNlY29uZCBpcyByZW5kZXJlZCBpZiBidWZmZXJzCgkgIGFyZSBkcm9wcGVkIGJlZm9yZSA6OnByZXBhcmUuIFdpdGhvdXQgdGhpcyBjaGFuZ2UsIGF0IGxlYXN0IG9uZSBidWZmZXIgcGVyCgkgIHNlY29uZCB3b3VsZG4ndCBiZSB0b28gbGF0ZSBiZWZvcmUgOjpwcmVwYXJlIGFueW1vcmUgYnV0IHdvdWxkIGJlIGRyb3BwZWQKCSAgYmVmb3JlIDo6cmVuZGVyIGJlY2F1c2Ugb2YgbGFzdF9yZW5kZXJfdGltZSBiZWluZyBzZXQgYmVmb3JlIDo6cHJlcGFyZQoJICBhbHJlYWR5LgoKMjAxMy0wMi0wOCAwMzo1Nzo0NCAtMDIwMCAgQW5kcmUgTW9yZWlyYSBNYWdhbGhhZXMgKGFuZHJ1bmtvKSA8YW5kcmUubWFnYWxoYWVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogQWRkIGNvbXBhcmUgZnVuY3Rpb24gZm9yIGNhcHMKCjIwMTMtMDEtMTUgMTY6NTc6MjAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZGF0YXF1ZXVlOiBhZGQgZ3N0X2RhdGFfcXVldWVfcGVlawoJICBUaGlzIGZ1bmN0aW9uIHdvcmtzIGp1c3QgbGlrZSBnc3RfZGF0YV9xdWV1ZV9wb3AsIGJ1dCBpdCBkb2Vzbid0CgkgIHJlbW92ZSB0aGUgb2JqZWN0IGZyb20gdGhlIHF1ZXVlLgoJICBVc2VmdWwgd2hlbiBpbnNwZWN0aW5nIG11bHRpcGxlIEdzdERhdGFRdWV1ZXMgdG8gZGVjaWRlIGZyb20gd2hpY2gKCSAgdG8gcG9wIHRoZSBlbGVtZW50IGZyb20uCgkgIEFkZDogZ3N0X2RhdGFfcXVldWVfcGVlawoKMjAxMy0wNC0xOCAxMDoxNDowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJICB0ZXN0czogaWdub3JlIG5ldyB0ZXN0IGJpbmFyeQoKMjAxMy0wNC0xOCAxMDoxMzozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IHVwZGF0ZSBmb3IgbGF0ZXN0IGNvbnRleHQgQVBJIGNoYW5nZXMKCjIwMTMtMDQtMTggMTA6MTc6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRleHQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNvbnRleHQ6IEFkZCBnc3RfY29udGV4dF93cml0YWJsZV9zdHJ1Y3R1cmUoKSBhbmQgbGV0IGdldF9zdHJ1Y3R1cmUoKSByZXR1cm4gY29uc3QgYWdhaW4KCjIwMTMtMDQtMTggMDA6NDQ6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1wYXJzZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJICBwcmludGY6IGZpeCBoYW5kbGluZyBvZiBvbGQgcHJpbnRmIGV4dGVuc2lvbiBzcGVjaWZpZXJzIGZvciBBQkkgY29tcGF0aWJpbGl0eQoJICBGaXhlcyBhYm9ydCB3aGVuIHRoZSBvbGQgc3BlY2lmaWVycyBhcmUgdXNlZC4gRml4IHVwIHRoZSBjb252ZXJzaW9uCgkgIHNwZWNpZmllciwgaXQgd291bGQgZ2V0IG92ZXJ3cml0dGVuIHdpdGggJ2MnIGJlbG93IHRvIHRoZSBleHRlbnNpb24KCSAgZm9ybWF0IGNoYXIsIHdoaWNoIHRoZW4gbGF0ZXIgaXMgdW5oYW5kbGVkLCBsZWFkaW5nIHRvIHRoZSBhYm9ydC4KCSAgQWxzbyBmaXggdXAgYW5kIGVuYWJsZSB1bml0IHRlc3QgZm9yIHRoaXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Byb2Nlc3NfYnVnLmNnaQoKMjAxMy0wNC0xOCAwMDoyODowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkgIHRlc3RzOiBhZGQgdW5pdCB0ZXN0IGZvciBvbGQgcHJpbnRmIGV4dGVuc2lvbiBzcGVjaWZpZXJzCgkgIFRvIG1ha2Ugc3VyZSB3ZSBtYWludGFpbiBiaW5hcnkgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBvbGQKCSAgc3BlY2lmaWVycy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5ODI0MgoKMjAxMy0wNC0xOCAwMDoxOToyMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBydW4gc2tpcHBlZCB0ZXN0cyBpZiBleHBsaWNpdGx5IHJlcXVlc3RlZCB2aWEgR1NUX0NIRUNLUwoJICBJZiBhIHRlc3QgdGhhdCdzIGRpc2FibGVkIHdpdGggdGNhc2Vfc2tpcF9icm9rZW5fdGVzdCgpIGlzIGxpc3RlZAoJICBpbiB0aGUgR1NUX0NIRUNLUyBlbnZpcm9ubWVudCB2YXJpYWJsZSwgcnVuIGl0IGFueXdheS4KCjIwMTMtMDQtMTcgMTM6NDc6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBBZGQgR3N0Q29udGV4dCBzdXBwb3J0CgkgIGdzdC1sYXVuY2ggd2lsbCBjb2xsZWN0IGFsbCB0aGUgY29udGV4dHMgZnJvbSB0aGUgcGlwZWxpbmUgZWxlbWVudHMKCSAgYW5kIHVwZGF0ZSB0aGUgb3ZlcmFsbCBwaXBlbGluZSBjb250ZXh0IHdpdGggaXQuCgoyMDEzLTA0LTE3IDEyOjQ0OjI5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udGV4dC5jOgoJICBjb250ZXh0OiBBZGQgdW5pdCB0ZXN0IGZvciBHc3RDb250ZXh0CgoyMDEzLTA0LTE3IDEyOjE3OjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkgIGNvbnRleHQ6IFJldHVybiBhIG5vbi1jb25zdCBHc3RTdHJ1Y3R1cmUgdG8gbWFrZSBjb2RlIHNpbXBsZXIgYW5kIHVwZGF0ZSBkb2NzCgoyMDEzLTAzLTI5IDE0OjU2OjU3ICswMTAwICBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsbkBpZ2FsaWEuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zY2hlZHVsaW5nLnR4dDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSAgcXVlcnk6IG5ldyBfQkFORFdJRFRIX0xJTUlURUQgZmxhZwoJICBTb3VyY2UgZWxlbWVudHMgd2l0aCBsaW1pdGVkIGJhbmR3aWR0aCBjYXBhYmlsaXRpZXMgYW5kIHN1cHBvcnRpbmcKCSAgYnVmZmVyaW5nIGZvciBkb3duc3RyZWFtIGVsZW1lbnRzIHNob3VsZCBzZXQgdGhpcyBmbGFnIHdoZW4gYW5zd2VyaW5nCgkgIGEgc2NoZWR1bGluZyBxdWVyeS4gVGhpcyBpcyB1c2VmdWwgZm9yIHRoZSBvbi1kaXNrIGJ1ZmZlcmluZyBzY2VuYXJpbwoJICBvZiB1cmlkZWNvZGViaW4gdG8gYXZvaWQgY2hlY2tpbmcgdGhlIFVSSSBwcm90b2NvbCBhZ2FpbnN0IGEgbGlzdCBvZgoJICBoYXJkY29kZWQgcHJvdG9jb2xzLgoJICBCdWcgNjkzNDg0CgoyMDEzLTA0LTE2IDA5OjU1OjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBkb2NzOiBmaXggbWlzc2luZyBmbGFjZGVjIGluIHBvcnRpbmctdG8tMS4wIHBpcGVsaW5lIGV4YW1wbGUKCjIwMTMtMDQtMTYgMDk6MDM6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIGRvY3M6IGFkZCBub3RlIGFib3V0IGRlY29kZXJzIGFuZCBwYXJzZXJzIHRvIHBvcnRpbmctdG8tMS4wIGRvYwoKMjAxMi0xMC0yNCAxMTo1ODozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgZ3N0OiBBZGQgYmV0dGVyIHN1cHBvcnQgZm9yIHN0YXRpYyBwbHVnaW5zCgkgIEFQSTogR1NUX1BMVUdJTl9TVEFUSUNfREVDTEFSRSgpCgkgIEFQSTogR1NUX1BMVUdJTl9TVEFUSUNfUkVHSVNURVIoKQoJICBCYXNlZCBvbiBhIHBhdGNoIGJ5IEjDpXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+LgoJICBUaGlzIG5vdyBhbGxvd3MgR1NUX1BMVUdJTl9ERUZJTkUoKSB0byBjcmVhdGUgYSBzdGF0aWMgcGx1Z2luIGlmCgkgIEdTVF9QTFVHSU5fQlVJTERfU1RBVElDIGlzIGRlZmluZWQuIFRoZSByZXN1bHRpbmcgcGx1Z2luIGNhbiBiZQoJICBzdGF0aWNhbGx5IGxpbmtlZCBvciBkeW5hbWljYWxseSBsaW5rZWQgZHVyaW5nIGNvbXBpbGF0aW9uIGJ1dAoJICBjYW4ndCBiZSBkeW5hbWljYWxseSBsb2FkZWQgZHVyaW5nIHJ1bnRpbWUuCgkgIEFsc28gYWRkcyBHU1RfUExVR0lOX1NUQVRJQ19ERUNMQVJFKCkgYW5kIEdTVF9QTFVHSU5fU1RBVElDX1JFR0lTVEVSKCksCgkgIHdoaWNoIGFsbG93cyB0byByZWdpc3RlciBhIHN0YXRpYyBsaW5rZWQgcGx1Z2luIGVhc2lseS4KCSAgSXQgaXMgc3RpbGwgcmVxdWlyZWQgdG8gbWFudWFsbHkgcmVnaXN0ZXIgZXZlcnkgc2luZ2xlIHN0YXRpY2FsbHkgbGlua2VkCgkgIHBsdWdpbiBmcm9tIGluc2lkZSB0aGUgYXBwbGljYXRpb24gYXMgdGhpcyBjYW4ndCBiZSBhdXRvbWF0ZWQgaW4gYSBwb3J0YWJsZQoJICB3YXkuCgkgIEEgbmV3IGNvbmZpZ3VyZSBwYXJhbWV0ZXIgLS1lbmFibGUtc3RhdGljLXBsdWdpbnMgd2FzIGFkZGVkIHRoYXQgYWxsb3dzCgkgIHRvIGJ1aWxkIGFsbCBwbHVnaW5zIHdlIGJ1aWxkIGhlcmUgYXMgc3RhdGljIHBsdWdpbnMuCgkgIEZpeGVzIGJ1ZyAjNjY3MzA1LgoKMjAxMy0wNC0xMiAxMzo1MDozOSArMTIwMCAgRG91Z2xhcyBCYWduYWxsIDxkb3VnbGFzQHBhcmFkaXNlLm5ldC5uej4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICBtYW51YWw6IFBhdGNoIG1hbnVhbCB0byByZWZlciB0byBwb3J0aW5nIGd1aWRlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTc4NDUKCjIwMTMtMDQtMTMgMTk6NDM6MTAgKzAzMDAgIFNyZWVyZW5qIEJhbGFjaGFuZHJhbiA8c3JlZXJlbmouYmFsYWNoYW5kcmFuQGludGVsLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgIHBsdWdpbmZlYXR1cmU6IEZpeCB0aGUgR3N0UGx1Z2luRmVhdHVyZSBuYW1lIGNvbXBhcmlzb24uCgkgIFRoZSBnc3RfcGx1Z2luX2ZlYXR1cmVfcmFua19jb21wYXJlX2Z1bmMoKSBzaG91bGQgcmV0dXJuCgkgIG5lZ2F0aXZlIHZhbHVlLCBpZiB0aGUgcmFuayBvZiBib3RoIFBsdWdpbkZlYXR1cmVzIGFyZSBlcXVhbCBhbmQKCSAgdGhlIG5hbWUgb2YgZmlyc3QgUGx1Z2luRmVhdHVyZSBjb21lcyBiZWZvcmUgdGhlIHNlY29uZCBvbmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTc5OTAKCjIwMTMtMDQtMTQgMTc6NTQ6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDI3MzY1OTIgdG8gM2NiM2QzYwoKMjAxMy0wNC0xNCAxNzoyNTozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYWVkODdhZSB0byAyNzM2NTkyCgoyMDEzLTA0LTE0IDExOjMzOjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L3ByaW50Zi9wcmludGYuYzoKCSogZ3N0L3ByaW50Zi9wcmludGYuaDoKCSAgcHJpbnRmOiBkaXNhYmxlIHNvbWUgdW51c2VkIHByaW50ZiB2YXJpYW50cwoKMjAxMy0wNC0xNCAxMToyMzoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9wcmludGYvZ3N0LXByaW50Zi5oOgoJICBwcmludGY6IHVzZSBzcHJpbnRmKCkgdG8gd29yayBhcm91bmQgZ2xpYmMgY29tcGxhaW5pbmcgYWJvdXQgJW4gaW4gYSB3cml0YWJsZSBmb3JtYXQgc3RyaW5nCgkgIERvbid0IHVzZSBzbnByaW50ZigpLCBidXQgdXNlIHNwcmludGYgaW5zdGVhZCBhbmQgZG8gb3VyIG93bgoJICBsZW5ndGggY2FsY3VsYXRpb25zLCBiZWNhdXNlIGdsaWJjIG1heSBjb21wbGFpbiBhYm91dCB1cyBwYXNzaW5nCgkgICVuIGluIGEgZm9ybWF0IHN0cmluZyBpZiB0aGUgc3RyaW5nIGlzIGluIHdyaXRhYmxlIG1lbW9yeSwgYW5kCgkgIGhlcmUgdGhlIGZvcm1hdCBzdHJpbmcgaXMgYWx3YXlzIGluIHdyaXRhYmxlIG1lbW9yeSBzaW5jZSB3ZQoJICBjb25zdHJ1Y3QgaXQgb24gdGhlIGZseS4gVGhpcyBoYXBwZW5zIGlmIGdsaWJjIGhhcyBiZWVuIGNvbXBpbGVkCgkgIHdpdGggX0ZPUlRJRllfU09VUkNFPTIsIHdoaWNoIHNlZW1zIHRvIGJlIHRoZSBjYXNlIG9uIHNvbWUKCSAgZGlzdHJvcy9zeXN0ZW1zKS4gT24gdGhlIHVwc2lkZSwgd2Ugbm93IHVzZSB0aGUgc3ByaW50ZiBjb2RlIHBhdGgKCSAgb24gYWxsIHN5c3RlbXMgd2hpY2ggc2hvdWxkIGJlIGJldHRlciBmcm9tIGEgbWFpbnRlbmFuY2UgcG9pbnQKCSAgb2Ygdmlldy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5Nzk3MAoKMjAxMy0wNC0xMyAxMjoxODoyOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwb2xsLmM6CgkgIHRlc3RzOiBza2lwIGFsbCBHc3RQb2xsIHRlc3RzIG9uIFdpbmRvd3MKCSAgQXMgdGhleSBkb24ndCB3b3JrIHRoZXJlLCBhbmQgaXQncyBub24tdHJpdmlhbCB0byBmaXguCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTc2MDkKCjIwMTMtMDQtMTMgMTI6MDA6MTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogb25seSBhZGQgYSAnKicgZm9yIG5vbi0nZ3BvaW50ZXInIHBvaW50ZXJzCgkgIFNwb3R0ZWQgYnkgSm9zZSBBbnRvbmlvIFNhbnRvcyBDYWRlbmEuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTc3OTEKCjIwMTMtMDQtMTIgMTQ6NDg6MjkgKzAyMDAgIEd3ZW5vbGUgQmVhdWNoZXNuZSA8Z3dlbm9sZS5iZWF1Y2hlc25lQGludGVsLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgcGx1Z2luOiBmaXggbmFtZSBleHBhbnNpb24gZm9yIEdTVF9QTFVHSU5fREVGSU5FIG1hY3JvCgkgIE1ha2UgR1NUX1BMVUdJTl9ERUZJTkUgdXNlIEdfU1RSSU5HSUZZKCkgdG8gY29udmVydCB0aGUgbmFtZSBhcmd1bWVudAoJICBpbnRvIGEgbWVhbmluZ2Z1bCBzdHJpbmcuIFRoZSBhZHZhbnRhZ2Ugb2YgdGhpcyBpcyB0aGF0IGBuYW1lJyBjYW4gYmUKCSAgZXhwYW5kZWQgZnJvbSBvdGhlciBtYWNyb3MgZGVmaW5lZCBpbiB0aGUgcGx1Zy1pbiBlbGVtZW50LgoJICBTaWduZWQtb2ZmLWJ5OiBHd2Vub2xlIEJlYXVjaGVzbmUgPGd3ZW5vbGUuYmVhdWNoZXNuZUBpbnRlbC5jb20+CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTc4NzIKCjIwMTMtMDQtMTMgMTE6MzU6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiBhZGQgbmV3IHRyYW5zbGF0YWJsZSBzdHJpbmdzCgoyMDEzLTA0LTEyIDIzOjU4OjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSAgcHJpbnRmOiBkb24ndCBidWlsZCBpZiBkZWJ1Z2dpbmcgc3Vic3lzdGVtIHdhcyBkaXNhYmxlZAoKMjAxMy0wNC0xMCAxMTo1MTozNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L3ByaW50Zi9NYWtlZmlsZS5hbToKCSogZ3N0L3ByaW50Zi9nc3QtcHJpbnRmLmg6CgkgIHByaW50ZjogZGVhbCB3aXRoIHNvbWUgb2YgdGhlIEhBVkVfRk9PIHVzZWQgaW4gdGhlIHByaW50ZiBjb2RlCgkgIFByb2JhYmx5IG5lZWRzIHNvbWUgbW9yZSB3b3JrIGZvciBNU1ZDLgoKMjAxMy0wNC0wOCAxOTo0MjoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcHJpbnRmL1JFQURNRToKCSogZ3N0L3ByaW50Zi92YXNucHJpbnRmLmM6CgkgIHByaW50ZjogZml4IGFsbG9jYSB1c2UgZm9yIHdpbmRvd3Mgd2l0aCBtaW5ndzMyCgkgIERvbid0IHVzZSBqdXN0IEdMSUJfSEFWRV9BTExPQ0FfSCB0byBjaGVjayBpZiBhbGxvY2EgaXMgYXZhaWxhYmxlLAoJICB0aGF0J3MganVzdCBmb3IgdGhlIGhlYWRlci4gR0xpYiBtYXkgZGVmaW5lIGFsbG9jYSBmb3IgdXMgb3RoZXJ3aXNlCgkgIHRvbyBpcnJlc3BlY3RpdmUgb2YgR0xJQl9IQVZFX0FMTE9DQV9ILgoJICBGaXhlcyBjb21waWxlciB3YXJuaW5nIHdpdGggbWluZ3czMjoKCSAgZ3N0L3ByaW50Zi92YXNucHJpbnRmLmM6NzM6MDogd2FybmluZzogImFsbG9jYSIgcmVkZWZpbmVkCgoyMDEzLTA0LTA3IDIwOjExOjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvcHJpbnRmL01ha2VmaWxlLmFtOgoJKiBnc3QvcHJpbnRmL3Zhc25wcmludGYuYzoKCSAgcHJpbnRmOiBlbmFibGUgYW5kIGZpeCBjb21waWxlciB3YXJuaW5ncwoJICBCdXQgc3VwcHJlc3MgLVdmb3JtYXQtbm9ubGl0ZXJhbCB3YXJuaW5ncyBzaW5jZSBzcHJpbnRmCgkgIGlzIHVzZWQgd2l0aCBhIHJ1bnRpbWUtZ2VuZXJhdGVkIGZvcm1hdCBzdHJpbmcgaW4gb3VyCgkgIHZhc25wcmludGYgaW1wbGVtZW50YXRpb24uCgoyMDEzLTA0LTA3IDE4OjIxOjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L3ByaW50Zi9wcmludGYtcGFyc2UuYzoKCSogZ3N0L3ByaW50Zi92YXNucHJpbnRmLmM6CgkqIGdzdC9wcmludGYvdmFzbnByaW50Zi5oOgoJICBwcmludGY6IGZpeCB1cCBkb2RneSB1c2Ugb2YgI2lmIEhBVkVfRk9PIGFuZCAjaWYgIUhBVkVfRk9PCgkgIFNob3VsZCB1c2UgI2lmZGVmIGFuZCAjaWZuZGVmLgoKMjAxMy0wNC0wNyAxNzozNjoyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9wcmludGYvTWFrZWZpbGUuYW06CgkgIHByaW50ZjogbWFyayBpbnRlcm5hbCBmdW5jdGlvbnMgYXMgaW50ZXJuYWwKCjIwMTMtMDQtMDcgMTc6Mjk6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1wYXJzZS5jOgoJICBwcmludGY6IHNraXAgcG9pbnRlciBleHRlbnNpb24gc2lnbmlmaWVyIGNoYXJzIGFmdGVyICVwCgkgIFNvIHRoZXkgZG9uJ3QgZ2V0IHByaW50ZWQgYWZ0ZXIgdGhlIHNlcmlhbGlzZWQgcG9pbnRlciBzdHJpbmcuCgoyMDEzLTA0LTA3IDE3OjIxOjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L3ByaW50Zi92YXNucHJpbnRmLmM6CgkgIHByaW50ZjogZG9uJ3QgbGVhayBzZXJpYWxpc2VkIHBvaW50ZXIgZXh0ZW5zaW9uIHN0cmluZ3MKCjIwMTMtMDQtMDcgMTc6MDI6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1wYXJzZS5jOgoJICBwcmludGY6IGhhbmRsZSBvbGQgR1NUX1BUUl9GT1JNQVQgJVAgYW5kIEdTVF9TRUdNRU5UX0ZPUk1BVCAlUSBkZWZpbmVzIHRvbwoJICBGb3IgYmluYXJ5IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LgoKMjAxMy0wNC0wNyAxNjo0MTo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9wcmludGYvcHJpbnRmLWFyZ3MuYzoKCSogZ3N0L3ByaW50Zi9wcmludGYtYXJncy5oOgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1wYXJzZS5jOgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1wYXJzZS5oOgoJKiBnc3QvcHJpbnRmL3Zhc25wcmludGYuYzoKCSAgcHJpbnRmOiBtYWtlIHByaW50ZiBwYXJzZXIgcmVjb2duaXNlIG91ciBwb2ludGVyIGV4dGVuc2lvbiBmb3JtYXQKCSAgYW5kIGNhbGwgdGhlIGhvb2sgdG8gZ2V0IGEgc3RyaW5nIGZvciB0aGUgcG9pbnRlciBpbnN0ZWFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjEzMDgxCgoyMDEzLTAzLTMwIDE4OjI4OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L3ByaW50Zi9NYWtlZmlsZS5hbToKCSogZ3N0L3ByaW50Zi9SRUFETUU6CgkqIGdzdC9wcmludGYvcHJpbnRmLWV4dGVuc2lvbi5jOgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1leHRlbnNpb24uaDoKCSAgcHJpbnRmOiBhZGQgaW5mcmFzdHJ1Y3R1cmUgZm9yIHBvaW50ZXIgZXh0ZW5zaW9ucyBob29rCgkgIERvZXMgbm90IGRvIGFueXRoaW5nIHlldC4gT24gYSBzaWRlbm90ZSwgd2UgY2FuJ3QganVzdCB1c2UKCSAgJXBcMDAxIG9yIHNvIHRvIHNpZ25hbCB0aGUgZXh0ZW5zaW9uIGJlY2F1c2UgZy1pIGNvbXBsYWlucwoJICBhYm91dCBhbiBpbnZhbGlkIGFzY2lpIGNoYXJhY3RlciB0aGVuLCBzbyBoYXZlIHRvIHJlc29ydCB0bwoJICBzb21ldGhpbmcgbW9yZSBlbGFib3JhdGUsIHN1Y2ggYXMgJXBcYUEgZXRjLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjEzMDgxCgoyMDEzLTAzLTMwIDE3OjIwOjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IHVzZSBuZXcgaW50ZXJuYWwgcHJpbnRmIGZvciBkZWJ1ZyBtZXNzYWdlIHByaW50aW5nCgkgIGFuZCByZW1vdmUgYWxsIHRoZSBwcmludGYgZXh0ZW5zaW9uL3NwZWNpZmllciBzdHVmZiBmb3IKCSAgdGhlIHN5c3RlbSBwcmludGYuIE5leHQgd2UgbmVlZCB0byBhZGQgYmFjayB0aGUgY3VzdG9tCgkgIHNwZWNpZmllcnMgdG8gb3VyIG93biBwcmludGYgaW1wbGVtZW50YXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTMwODEKCjIwMTMtMDMtMzAgMTU6MTM6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L3ByaW50Zi9NYWtlZmlsZS5hbToKCSogZ3N0L3ByaW50Zi9SRUFETUU6CgkqIGdzdC9wcmludGYvYXNucHJpbnRmLmM6CgkqIGdzdC9wcmludGYvZ3N0LXByaW50Zi5oOgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1hcmdzLmM6CgkqIGdzdC9wcmludGYvcHJpbnRmLWFyZ3MuaDoKCSogZ3N0L3ByaW50Zi9wcmludGYtcGFyc2UuYzoKCSogZ3N0L3ByaW50Zi9wcmludGYtcGFyc2UuaDoKCSogZ3N0L3ByaW50Zi9wcmludGYuYzoKCSogZ3N0L3ByaW50Zi9wcmludGYuaDoKCSogZ3N0L3ByaW50Zi92YXNucHJpbnRmLmM6CgkqIGdzdC9wcmludGYvdmFzbnByaW50Zi5oOgoJICBwcmludGY6IGFkZCBvdXIgb3duIHByaW50ZiBpbXBsZW1lbnRhdGlvbiBmb3IgZGVidWcgbG9nZ2luZwoJICBXZSB3aWxsIGFkZCBzdXBwb3J0IGZvciBvdXIgb3duIHByaW50ZiBtb2RpZmllcnMsIHNvIHdlIGNhbgoJICBnZXQgbmljZSBkZWJ1ZyBsb2cgb3V0cHV0IG9uIGFsbCBvcGVyYXRpbmcgc3lzdGVtcyBpcnJlc3BlY3RpdmUKCSAgb2YgdGhlIHNwZWNpZmljIGxpYmMgdmVyc2lvbiB1c2VkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjEzMDgxCgoyMDEzLTA0LTEyIDE2OjEzOjE1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogYXZvaWQgdHJpZ2dlcmluZyBhbiBhc3NlcnRpb24KCSAgV2hlbiBkZXNlcmlhbGl6YXRpb24gb2YgdGhlIHN0cnVjdHVyZSBmYWlscywgcmV0dXJuIGEgTlVMTCB0YWdsaXN0IGluc3RlYWQgb2YKCSAgYXNzZXJ0aW5nLgoKMjAxMy0wNC0xMSAxNDo1NDozMiArMDIwMCAgSm9zZSBBbnRvbmlvIFNhbnRvcyBDYWRlbmFzIDxzYW50b3NjYWRlbmFzQGdtYWlsLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBhZGQgcG9pbnRlciBtYXJrIHRvIHNpZ25hbCBhbmQgYWN0aW9uIHJldHVybiB0eXBlcyB0aGF0IGFyZSBwb2ludGVycwoJICBXaGVuIHRoZSByZXR1cm4gdHlwZSBvZiBhIHNpZ25hbCBvciBhY3Rpb24gaXMgYSBwb2ludGVyLCBpdAoJICBzaG91bGQgaGF2ZSBhbiBhc3RlcmlzayB0byBtYXJrIGl0IGFzIHN1Y2guCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTc3OTEKCjIwMTMtMDQtMTEgMjI6MzI6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIGRvY3M6IGRvY3VtZW50IHR5cGUgY2hhbmdlIG9mIHBsYXliaW4ncyBjb25uZWN0aW9uLXNwZWVkIHByb3BlcnR5IGluIHBvcnRpbmcgZG9jcwoKMjAxMy0wNC0xMSAxNDozMTowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBhZGQgX2dzdF9tYXhfbWVtb3J5KCkgZnVuY3Rpb24KCSAgQWRkIHRoZSBhIGZ1bmN0aW9uIHRvIHF1ZXJ5IHRoZSBtYXhpbXVtIGFtb3VudCBvZiBtZW1vcnkgYmxvY2tzIHRoYXQgY2FuIGJlCgkgIGFkZGVkIHRvIGEgYnVmZmVyLiBBbHNvIGltcHJvdmUgdGhlIGRvY3MgZm9yIF9pbnNlcnRfbWVtb3J5KCkuCgoyMDEzLTA0LTExIDE0OjA0OjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBuZXR0aW1lcHJvdmlkZXI6IG5vdGlmeSBvZiBjaGFuZ2VkIGJvdW5kIGFkZHJlc3MKCSAgTm90aWZ5IHdoZW4gdGhlIGJvdW5kIGFkZHJlc3MgaXMga25vd24sIGp1c3QgbGlrZSB0aGUgcG9ydC4KCjIwMTMtMDQtMTEgMTM6NTU6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGxhdW5jaDogaGFuZGxlIFBST0dSRVNTIG1lc3NhZ2VzCgkgIFdhaXQgZm9yIGFsbCBQUk9HUkVTUyBtZXNzYWdlcyAoaWYgYW55KSB0byBjb21wbGV0ZSBiZWZvcmUgZ29pbmcgdG8gdGhlIFBMQVlJTkcKCSAgc3RhdGUuIFRoaXMgaXMgdGhlIG9ubHkgd2F5IHdlIGNhbiB3YWl0IGZvciBsaXZlIGVsZW1lbnRzIHRvIGNvbXBsZXRlIHRoZWlyCgkgIG9wZXJhdGlvbnMuCgkgIFRoaXMgaXMgaW50ZXJlc3RpbmcgZm9yIGVsZW1lbnRzIGxpa2UgcnRzcHNyYyB0aGF0IGRvIHNvbWUgYXN5bmNocm9ub3VzIG5ldHdvcmsKCSAgcmVxdWVzdHMgYXMgcGFydCBvZiBnb2luZyB0byB0aGUgUEFVU0VEIHN0YXRlLiBJdCBjb3VsZCBiZSBwb3NzaWJsZSB0aGF0IGl0LCBmb3IKCSAgZXhhbXBsZSwgcHJvdmlkZXMgYSBjbG9jayBhbmQgdGhlbiB3ZSB3b3VsZCBsaWtlIHRvIHdhaXQgdW50aWwgaXQgY29tcGxldGVzCgkgIHNvIHRoYXQgd2UgY2FuIHVzZSB0aGUgcHJvdmlkZWQgY2xvY2sgd2hlbiBnb2luZyB0byBQTEFZSU5HLgoKMjAxMy0wNC0xMSAxNTowNTowOCArMTIwMCAgRG91Z2xhcyBCYWduYWxsIDxkb3VnbGFzQHBhcmFkaXNlLm5ldC5uej4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSAgVG9nZ2xlIHVwc3RyZWFtIGFuZCBkb3duc3RyZWFtIGluIFJFQ09ORklHVVJFIHBhcmFncmFwaC4KCjIwMTMtMDQtMTEgMTA6MTE6MjUgKzEyMDAgIERvdWdsYXMgQmFnbmFsbCA8ZG91Z2xhc0BwYXJhZGlzZS5uZXQubno+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIEdzdENvbGxlY3RQYWRzIGRvY3VtZW50YXRpb246IGdzdF9jb2xsZWN0X3BhZHNfcmVhZCBpcyBnb25lLgoKMjAxMy0wNC0xMCAyMToyNDozOCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBmaXggdGhlIHByZWNvbmRpdGlvbiBmb3IgZ3N0X2J1c19kaXNhYmxlX3N5bmNfbWVzc2FnZV9lbWlzc2lvbigpCgkgIFVzZSB0aGUgcmlnaHQgdmFyaWFibGUgYW5kIGludmVydCB0aGUgdGVzdC4gVGhlIHByZWNvbmRpdGlvbiBzaG91bGQgY2F0Y2gKCSAgc29tZW9uZSBjYWxsaW5nIHRvIG9uY2UgdG9vIG9mdGVuLgoKMjAxMy0wNC0wOSAxOTozNzowNiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSAgY2Fwc2ZlYXR1cmVzOiBJbml0IGRlYnVnIGNhdGVnb3J5IGJlZm9yZSBldmVyIHVzaW5nIGl0CgoyMDEzLTA0LTA5IDIwOjU5OjM2ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAwNGM3YTFlIHRvIGFlZDg3YWUKCjIwMTMtMDQtMDMgMjE6MzI6NTQgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZG9jcy9tYW51YWxzLm1hazoKCSAgVXNlIHhsc3Rwcm9jIGluc3RlYWQgb2YgZG9jYm9vazJodG1sCgoyMDEzLTA0LTA5IDEwOjE3OjQ1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBiaW5kIHNvY2tldCBiZWZvcmUgcXVlcnlpbmcgbG9jYWwgYWRkcmVzcwoJICBGYWlscyBvbiB3aW5kb3dzIG90aGVyd2lzZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NzYwOAoKMjAxMy0wNC0wOCAxMzoxNDozNSArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogQWxzbyBjaGVjayBmb3IgY2xvY2tfZ2V0dGltZSBpbiBsaWJwdGhyZWFkCgkgIGxpYndpbnB0aHJlYWRzIHByb3ZpZGVzIFBPU0lYIHRpbWUgQVBJLgoJICBJdCBhbHNvIHByb3ZpZGVzIGxpYnB0aHJlYWQgYWxpYXMgZm9yIGl0c2VsZiwgZm9yIGNvbXBhdGliaWxpdHksIHNvIHRoYXQKCSAgaXMgd2hhdCB3ZSB3aWxsIGxpbmsgd2l0aC4KCSAgRml4ZXMgIzY5NzU1MAoKMjAxMy0wNC0wOCAxNTozMDowNyArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGNsb2NrOiBEbyB1c2UgSEFWRV9DTE9DS19HRVRUSU1FCgkgIEZpeGVzICM2OTc1NDkKCjIwMTMtMDQtMDggMTQ6NDI6MTUgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODZ3Lmg6CgkgIGxpYnNhYmk6IFNwZWNpYWwgc3RydWN0IHNpemUgdmFsdWVzIGZvciBXMzIKCSAgVGhlc2UgYWNjb3VudCBmb3IgYm90aCBwb3NzaWJsZSB0eXBlIHNpemUgbWlzbWF0Y2ggQU5EIC1tbXMtYml0ZmllbGRzCgkgIHBhY2tpbmcuIFNpemVzIGFyZSB0YWtlbiBmcm9tIGFuIGk2ODYtdzY0LW1pbmd3MzItYnVpbHQgR1N0cmVhbWVyLAoJICBnY2MgNC44LjAsIG1pbmd3LXc2NCBzdm4tcjU2ODUuCgkgIEZpeGVzICM2OTc1NTEKCjIwMTMtMDQtMDkgMDk6MjI6MzkgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogZml4IEdzdFBhZCB0ZXN0IG9uIHdpbmRvd3MgYW5kIGluIENLX0ZPUks9bm8gbW9kZQoJICBOZWVkIHRvIGNsZWFyIGJ1ZmZlciBsaXN0cyBhdCB0aGUgZW5kIG9mIGVhY2ggdGVzdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NzYxMAoKMjAxMy0wNC0wNiAxNjowOTo1NCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IEZpeCBzcGFjZSBpbiBmYXVsdCBtZXNzYWdlCgoyMDEzLTA0LTA2IDIyOjEwOjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSAgY2Fwc2ZlYXR1cmVzOiBDb3B5IEFOWSBmbGFnIHdoZW4gY29weWluZyBjYXBzIGZlYXR1cmVzIHRvbwoKMjAxMy0wNC0wNiAyMTo0OToyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBjYXBzOiBIYW5kbGUgQU5ZIGNhcHMgZmVhdHVyZXMgcHJvcGVybHkgaW4gbW9yZSBwbGFjZXMKCjIwMTMtMDQtMDYgMjE6MjE6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogQWRkIHRlc3QgZm9yIG9wZXJhdGlvbnMgb24gY2FwcyB3aXRoIEFOWSBmZWF0dXJlcwoKMjAxMy0wNC0wNiAyMTowOTo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBQcm9wZXJseSBoYW5kbGUgQU5ZIGNhcHMgZmVhdHVyZXMgaW4gY2FwcyBvcGVyYXRpb25zCgoyMDEzLTA0LTA1IDIxOjEwOjQ4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IHVwZGF0ZSBzaWduYWwgZG9jcyBmb3IgZ3N0X2J1c19lbmFibGVfc3luY19tZXNzYWdlX2VtaXNzaW9uKCkKCjIwMTMtMDQtMDUgMTA6MTU6MzcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogaWdub3JlIGVtcHR5IG5vdC1saW5rZWQgcXVldWVzCgkgIFdlIG5lZWQgdG8gaWdub3JlIHRoZSBub3QtbGlua2VkIHF1ZXVlcyBpbiB0aGUgdW5kZXJydW4gYW5kIG92ZXJydW4gY2FsbGJhY2tzCgkgIGJlY2F1c2UgdGhleSBhcmUgZXhwZWN0ZWQgdG8gYmUgZW1wdHkuCgoyMDEzLTA0LTA0IDIzOjEyOjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogZml4IGNhcHMgZmVhdHVyZSBsZWFrCgkgIEZpeGVzIGxlYWtzIGluIDE0IGNvcmUgdW5pdCB0ZXN0cyBpbmNsdWRpbmcKCSAgZ3N0L2dzdGNhcHMuCgoyMDEzLTA0LTA0IDE5OjE2OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHN0YXJ0IHB1c2hpbmcgYWdhaW4gb24gUkVDT05GSUdVUkUKCSAgV2hlbiB3ZSBnb3QgTk9UX0xJTktFRCBiZWZvcmUgYW5kIHdlIHJlY2VpdmUgYSBSRUNPTkZJR1VSRSBldmVudCwgc3RhcnQgcHVzaGluZwoJICBhZ2FpbiBvbiB0aGUgc291cmNlIHBhZC4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzYzMDQKCjIwMTMtMDQtMDQgMTk6MDc6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHN0YXJ0IHB1c2hpbmcgYWdhaW4gb24gUkVDT05GSUdVUkUKCSAgV2hlbiB3ZSBnb3QgTk9UX0xJTktFRCBiZWZvcmUgYW5kIHdlIHJlY2VpdmUgYSBSRUNPTkZJR1VSRSBldmVudCwgc3RhcnQgcHVzaGluZwoJICBhZ2FpbiBvbiB0aGUgc291cmNlIHBhZC4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzYzMDQKCjIwMTMtMDQtMDQgMTk6MDY6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBzdGFydCBwdXNoaW5nIGFnYWluIG9uIFJFQ09ORklHVVJFCgkgIFdoZW4gd2UgZ290IE5PVF9MSU5LRUQgYmVmb3JlIGFuZCB3ZSByZWNlaXZlIGEgUkVDT05GSUdVUkUgZXZlbnQsIHN0YXJ0IHB1c2hpbmcKCSAgYWdhaW4gb24gdGhlIHNvdXJjZSBwYWQuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc2MzA0CgoyMDEzLTA0LTA0IDE3OjU5OjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IHNpbXBsaWZ5IGlzX3N1YnNldCBjaGVjawoJICBJdGVyYXRlIG92ZXIgdGhlIGZpZWxkcyBvZiB0aGUgc3VwZXJzZXQgaW5zdGVhZCBvZiB0aG9zZSBvZiB0aGUgc3Vic2V0LgoJICBUaGlzIHdheSB3ZSBjYW4gY2hlY2sgdGhlIHByZXNlbmNlIG9mIHRoZSBzdWJzZXQgZmllbGQgYW5kIGRvIHRoZSBzdWJzZXQgY2hlY2sKCSAgaW4gb25lIGl0ZXJhdGlvbi4KCjIwMTMtMDQtMDQgMTc6NDY6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiB1cGRhdGUgZG9jcywgaXNfc3Vic2V0KCkgd29ya3Mgbm93CgoyMDEzLTA0LTA0IDE2OjM5OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogZml4IGRvY3MKCjIwMTMtMDQtMDQgMTY6MjA6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogYWRkIGdzdF9wYWRfc3RvcmVfc3RpY2t5X2V2ZW50KCkKCSAgUmV3aXJlIHNvbWUgaW50ZXJuYWwgZnVuY3Rpb25zIGFuZCBleHBvc2UgYSBuZXcKCSAgZ3N0X3BhZF9zdG9yZV9zdGlja3lfZXZlbnQoKSBmdW5jdGlvbi4KCSAgQVBJOiBnc3RfcGFkX3N0b3JlX3N0aWNreV9ldmVudCgpCgoyMDEzLTA0LTA0IDE1OjQ1OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGNsYXJpZnkgZG9jcwoKMjAxMy0wNC0wNCAxNTo0NToxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBpbXByb3ZlIGRlYnVnCgoyMDEzLTA0LTA0IDEwOjE3OjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogZG9uJ3QgV0FSTiwganVzdCBERUJVRwoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk2OTExCgoyMDEzLTAzLTMwIDExOjA2OjU5ICswMDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBGaXggc2Vla2luZyB3aGVuIHBvc2l0aW9uIGlzIHNsaWdodGx5IG91dHNpZGUgdGhlIHNlZ21lbnQKCSAgVmVyeSBvZnRlbiwgd2hlbiB0aGUgZW5kIG9mIGEgc2VnbWVudCBpcyBkZXRlY3RlZCBieSBkZW11eGVyLCB0aGUgcG9zaXRpb24KCSAgaXMgc2xpZ2h0bHkgb3V0c2lkZSB0aGUgc2VnbWVudCBib3VuZGFyaWVzLiBDdXJyZW50bHksIGlmIHRoYXQgaXMgdGhlIGNhc2UKCSAgdGhlIGJhc2Ugd2lsbCBiZSBzZXQgdG8gTk9ORSBpbnN0ZWFkIG9mIG5vcm1hbCBhY2N1bXVsYXRpb24uIFRoaXMgd291bGQKCSAgYnJlYWsgbm9uLWZsdXNoaW5nIHNlZWtzIGluIG9nZ2RlbXV4IGFuZCBtb3N0IGxpa2VseSBvdGhlciBkZW11eGVycy4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5Njg5OQoKMjAxMy0wNC0wMyAxNzoyOTo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUKCjIwMTMtMDQtMDMgMTY6MDI6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogYWRkIHN0cmVhbSBmbGFncwoKMjAxMy0wNC0wMiAxODoxNzowMCAtMDYwMCAgQnJlbmRhbiBMb25nIDxiLmxvbmdAY2FibGVsYWJzLmNvbT4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgcG9ydGluZy10by0xLjAudHh0OiBzdWJ0aXRsZSB0ZXh0IG1lZGlhIHR5cGVzIGNoYW5nZWQgYXMgd2VsbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3MTUzCgoyMDEzLTA0LTAyIDIzOjUxOjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSAgZG9jczogbW9yZSBzaW5jZSBtYXJrZXJzIGFuZCBvdGhlciBkb2NzIGZpeGVzCgoyMDEzLTA0LTAyIDIzOjIxOjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJICBkb2NzOiBhZGQgc2luY2UgbWFya2VycyB0byBjYXBzZmVhdHVyZXMgZG9jcwoKMjAxMy0wNC0wMiAyMzoxODo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHNjcmlwdHMvZ2l0LXVwZGF0ZS5zaDoKCSAgc2NyaXB0czogYWRkIHNvbWUgbW9yZSBtb2R1bGVzIHRvIGdpdC11cGRhdGUuc2gKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NzA1OAoKMjAxMy0wNC0wMiAyMzowNDo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCB1bmluc3RhbGxlZCBvcmMvb3JjLXRlc3QvLmxpYnMgdG8gbGlicmFyeSBwYXRocwoJICBUaGlzIGlzIG5lZWRlZCBieSB0aGUgdW5pdCB0ZXN0cyBpbiBnc3QtcGx1Z2lucy1iYXNlLCAtZ29vZCBldGMuCgkgIFNwb3R0ZWQgYnkgQWxleCBLYXllLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3MDkzCgoyMDEzLTA0LTAyIDIyOjEzOjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkgIGNhcHNmZWF0dXJlczogQWRkIEdTVF9DQVBTX0ZFQVRVUkVTX0FOWQoJICBUaGlzIGlzIGVxdWFsIHRvIGFueSBvdGhlciBjYXBzIGZlYXR1cmVzIGJ1dCByZXN1bHRzIGluIHVuZml4ZWQgY2Fwcy4gSXQKCSAgd291bGQgYmUgdXNlZCBieSBlbGVtZW50cyB0aGF0IG9ubHkgbG9vayBhdCB0aGUgYnVmZmVyIG1ldGFkYXRhIG9yIGFyZQoJICBjdXJyZW50bHkgd29ya2luZyBpbiBwYXNzdGhyb3VnaCBtb2RlLCBhbmQgYXMgc3VjaCBkb24ndCBjYXJlIGFib3V0IGFueQoJICBzcGVjaWZpYyBmZWF0dXJlcy4KCjIwMTMtMDQtMDEgMjI6MTM6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBtaW5vciBjb3NtZXRpYyBjaGFuZ2VzCgkgIExldCdzIG5vdCB1c2UgdWdseSBsZWFkaW5nIHVuZGVyc2NvcmVzIGZvcgoJICBzdGF0aWMgZnVuY3Rpb25zLgoKMjAxMy0wNC0wMSAyMToyMzoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGZpeCBvYmplY3QgcHJpbnRpbmcgb2YgY2FwcyBmZWF0dXJlcyBpbiBkZWJ1ZyBsb2cKCjIwMTMtMDQtMDEgMTY6Mzg6NDMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSAgZHJhZnQtdHJhY2luZzogdXBkYXRlIGRyYWZ0IGRlc2lnbiB3aXRoIHRpbWVyIGlkZWFzCgoyMDEzLTAzLTMwIDE3OjAzOjQ0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogcmVmYWN0b3IgcHJldHR5IHByaW50aW5nIG9iamVjdHMKCSAgRXh0cmFjdCBmb3JtYXR0ZXJzIGludG8gbG9jYWwgZnVuY3Rpb25zLiBDaGFuZ2UgdGhlIHN0cnVjdHVyZSBmaWx0ZXJpbmcgc28gdGhhdAoJICBpdCB3b3JrcyBmb3IgdGFnbGlzdHMgdG9vLgoKMjAxMy0wMy0zMCAxNjozOTozOCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IG1ha2UgcG9zdF9tZXNzYWdlIGFuZCBxdWVyeSBtb3JlIGFsaWtlCgoyMDEzLTA0LTAxIDEwOjIwOjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBQcmludCBjYXBzIGZlYXR1cmVzIHRvbwoKMjAxMy0wNC0wMSAxMDoxOToyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkgIGNhcHNmZWF0dXJlczogRm9yIGNvcHlpbmcgZmVhdHVyZXMgaXQncyBub3QgcmVxdWlyZWQgdG8gaGF2ZSBubyBwYXJlbnQgcmVmY291bnQKCjIwMTMtMDQtMDEgMTA6MTk6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogU2V0IGZlYXR1cmVzJyBwYXJlbnQgcmVmY291bnQgaW4gZ3N0X2NhcHNfc2V0X2ZlYXR1cmVzKCkgdG9vCgoyMDEzLTA0LTAxIDEwOjE4OjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IFNldCBzeXNtZW0gZmVhdHVyZXMgaWYgZXhwbGljaXRlbHkgcmVxdWVzdGVkCgoyMDEzLTAzLTMxIDE5OjA5OjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY2Fwcy50eHQ6CgkgIGRlc2lnbjogQWRkIHRoZSBjYXBzIGZlYXR1cmVzIGFuZCBkZXNjcmliZSBob3cgdGhlIGNhcHMgb3BlcmF0aW9ucyBhY3R1YWxseSB3b3JrCgoyMDEzLTAzLTMwIDE1OjM1OjE5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjYXBzOiBBZGQgbmV3IGRhdGEgdHlwZSBmb3IgaGFuZGxpbmcgY2FwcyBmZWF0dXJlcyB0byB0aGUgY2FwcwoJICBUaGVzZSBhcmUgbWVhbnQgdG8gc3BlY2lmeSBmZWF0dXJlcyBpbiBjYXBzIHRoYXQgYXJlIHJlcXVpcmVkCgkgIGZvciBhIHNwZWNpZmljIHN0cnVjdHVyZSwgZm9yIGV4YW1wbGUgYSBzcGVjaWZpYyBtZW1vcnkgdHlwZQoJICBvciBtZXRhLgoJICBTZW1hbnRpY2FsbHkgdGhleSBjb3VsZCBiZSB0aG91Z2ggb2YgYXMgYW4gZXh0ZW5zaW9uIG9mIHRoZSBtZWRpYQoJICB0eXBlIG5hbWUgb2YgdGhlIHN0cnVjdHVyZXMgYW5kIGFyZSBoYW5kbGVkIGV4YWN0bHkgbGlrZSB0aGF0LgoKMjAxMy0wMy0zMSAxNTozMDoxOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogYWRkIFNFTEVDVCBhbmQgVU5TRUxFQ1Qgc3RyZWFtIGZsYWdzIGZvciBzdHJlYW0tc3RhcnQgZXZlbnQKCSAgU28gZGVtdXhlcnMgY2FuIHNpZ25hbCB3aGljaCBhdWRpby92aWRlby9zdWJ0aXRsZSBzdHJlYW1zIHNob3VsZAoJICBiZSBzZWxlY3RlZCBieSBkZWZhdWx0IGFuZCB3aGljaCBzaG91bGQgbm90IGJlIHNlbGVjdGVkCgkgIGF1dG9tYXRpY2FsbHkuCgkgIEFQSTogR1NUX1NUUkVBTV9GTEFHX1NFTEVDVAoJICBBUEk6IEdTVF9TVFJFQU1fRkxBR19VTlNFTEVDVAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk1OTY4CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTA5MTEKCjIwMTMtMDEtMDYgMjA6Mjc6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZXZlbnQ6IGFkZCBzdHJlYW0gZmxhZ3MgdG8gc3RyZWFtLXN0YXJ0IGV2ZW50CgkgIEFQSTogZ3N0X2V2ZW50X3NldF9zdHJlYW1fZmxhZ3MoKQoJICBBUEk6IGdzdF9ldmVudF9wYXJzZV9zdHJlYW1fZmxhZ3MoKQoJICBBUEk6IEdTVF9TVFJFQU1fRkxBR19OT05FCgkgIEFQSTogR1NUX1NUUkVBTV9GTEFHX1NQQVJTRQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjAwNjQ4CgoyMDEzLTAzLTMxIDExOjI2OjMyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGVsZW1lbnQ6IEFkZCBBUEkgdG8gZ2V0IHRoZSBsYXN0IHNldCBjb250ZXh0IGZyb20gYW4gZWxlbWVudAoJICBFbGVtZW50cyBzaG91bGQgb3ZlcnJpZGUgR3N0RWxlbWVudDo6c2V0X2NvbnRleHQoKSBhbmQgYWxzbyBjYWxsCgkgIGdzdF9lbGVtZW50X3NldF9jb250ZXh0KCkgdG8ga2VlcCB0aGlzIGNvbnRleHQgdXAtdG8tZGF0ZSB3aXRoCgkgIHRoZSB2ZXJ5IGxhdGVzdCBjb250ZXh0IHRoZXkgaW50ZXJuYWxseSB1c2UuCgoyMDEzLTAzLTMwIDE0OjA0OjI4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkgIGRlc2lnbjogYWRkIGluaXRpYWwgdHJhY2luZyBkZXNpZ24gZG9jCgoyMDEzLTAzLTMwIDExOjQ3OjI5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBMZXQgZ3N0X3BhZF9nZXRfYWxsb3dlZF9jYXBzKCkgcGFzcyB0aGUgY2FwcyBvd24gY2FwcyBhcyBmaWx0ZXIKCSAgVGhpcyB3aWxsIHJlZHVjZSB0aGUgbnVtYmVyIG9mIGNhcHMgY3JlYXRlZCBkb3duc3RyZWFtIGFuZCB3ZSBkb24ndAoJICBuZWVkIHRvIGludGVyc2VjdCBpbiB0aGUgdmVyeSBlbmQgd2l0aCB0aGUgcGFkJ3Mgb3duIGNhcHMuCgoyMDEzLTAzLTMwIDEwOjI0OjI3ICswMTAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBmaXhlcyBjb21waWxlciB3YXJuaW5nCgkgIGdzdGJhc2VzaW5rLmM6IEluIGZ1bmN0aW9uICdnc3RfYmFzZV9zaW5rX2NoYWluX3VubG9ja2VkJzoKCSAgZ3N0YmFzZXNpbmsuYzozMjA0OiB3YXJuaW5nOiAncmV0JyBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMgZnVuY3Rpb24KCjIwMTMtMDMtMjkgMTk6MDE6NTkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBjaGlsZHByb3h5OiBmaXggZ2lyIHdhcm5pbmcKCjIwMTMtMDMtMjkgMTg6NDk6MTQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgUmV2ZXJ0ICJwd2c6IEZpeCBleGFtcGxlIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDVkNjRmMjdkODgxMjc0YTQwZjA0NDFiYjhjNWIzODE2ZmRmYzViOWUuCgkgICpzaWdoKgoKMjAxMi0xMS0wNiAwOTo0MTo1OCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICBwd2c6IEZpeCBleGFtcGxlCgoyMDEyLTExLTExIDEzOjUyOjI1ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBSZW1vdmUgU0VHTUVOVCBzdGlja3kgZXZlbnRzIHdoZW4gZmx1c2hpbmcKCSAgV2hlbiBmbHVzaGluZywgaXQgaXMgZXhwZWN0ZWQgdGhhdCB1cHN0cmVhbSB3aWxsIHNlbmQgYSBTRUdNRU5UCgkgIGV2ZW50IGFmdGVyd2FyZHMuCgkgIFRoaXMgYWxzbyBhdm9pZHMgc3RyYXkgU0VHTUVOVCBldmVudHMgZnJvbSBjb21pbmcgdGhyb3VnaCBhZnRlciBhCgkgIGZsdXNoLgoKMjAxMy0wMy0yOCAxNTozNToxMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0OiBBZGQgbmV3IEdzdENvbnRleHQgbWluaW9iamVjdCBmb3Igc2hhcmluZyBjb250ZXh0cyBpbiBhIHBpcGVsaW5lCgoyMDEzLTAzLTI4IDE2OjQyOjUwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuYzoKCSAgYXJnYi1jb250cm9sYmluZGluZzogZml4IG1lc3NlZCB1cCBwcm9wZXJ0eSBzZXR0ZXIKCSAgVGhpcyB3YXMgbWlzYXNzaWduaW5nIHRoZSBjb250cm9sIHNvdXJjZXMuIEl0IHdhcyBhbHNvIGxlYWtpbmcgdGhlIG9sZCB2YWx1ZXMgaWYKCSAgYSBjb250cm9sIHNvdXJjZSB3b3VsZCBiZSByZXBsYWNlZC4KCjIwMTMtMDMtMjcgMTg6MjU6MDggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVzZXQgbmV4dF9wdHMgdXBvbiBTRUdNRU5UIGV2ZW50CgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTE0ODEKCjIwMTMtMDItMjYgMTk6NTg6NDkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogbW9yZSBpbnRlci10aW1lc3RhbXAgdHJhY2tpbmcKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MTQ4MQoKMjAxMy0wMy0yNiAxOToyMjoxOCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IEFkZCBhbm5vdGF0aW9ucyBhbmQgcHlnaSBmcmllbmRseSBleHRyYWN0aW9uIGZ1bmN0aW9uCgkgIEFQSTogZ3N0X2J1ZmZlcl9leHRyYWN0X2R1cAoKMjAxMy0wMy0yNyAxNzowODo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgcG9ydGluZzogaG9wZWZ1bGx5IGNsYXJpZnkgYSBsaXR0bGUKCjIwMTMtMDMtMjUgMTg6MTE6NTQgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIFVwZGF0ZSBkb2NzIGZvciBnc3RfcGFkX2NyZWF0ZV9zdHJlYW1faWRfcHJpbnRmKCkKCSAgVG8gaW5kaWNhdGUgdGhhdCBmb3JtYXQgc3RyaW5ncyBzaG91bGQgYmUgYWxwaGEgc29ydGFibGUuCgoyMDEzLTAzLTI1IDA5OjE2OjA1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IEFkZCB1bml0IHRlc3QgZm9yIEdTVF9DQVBTX3tBTlksTk9ORX0gYW5kIEdTVF9TVEFUSUNfQ0FQU197QU5ZLE5PTkV9CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTY0MzUKCjIwMTMtMDMtMjUgMDk6MTk6MjQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogRml4IGdzdF9zdGF0aWNfY2Fwc19nZXQoR1NUX1NUQVRJQ19DQVBTX05PTkUpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTY0MzUKCjIwMTMtMDMtMjEgMjE6MDA6NTQgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IERvbid0IHNlbmQgZXJyb3IgaWYgbmVnb3RpYXRlIGZhaWxzIGJlY2F1c2Ugd2UgYXJlIGZsdXNoaW5nCgkgIE5lZ290aWF0aW9uIG1heSBiZSBhYm9ydGVkIGJ5IGEgZmx1c2ggZnJvbSBhbm90aGVyIHRocmVhZCB0aGF0IG5lZWQgdG8KCSAgc3RvcCB0aGUgdGFzayAoaS5lLiBzZWVrKS4gQ2hlY2sgdGhhdCBjYXNlIGFuZCBzaWxlbnRseSBwYXVzZSB0aGUgdGFzay4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NjM1NwoKMjAxMy0wMy0yNCAxNzo1MzozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdG9jLnR4dDoKCSogZ3N0L2dzdHRvYy5jOgoJICB0b2M6IHNvbWUgZG9jdW1lbnRhdGlvbiB1cGRhdGVzCgoyMDEzLTAzLTIyIDIwOjAyOjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLXF1ZXJ5Zm4ueG1sOgoJICBkb2NzOiBmaXggdHlwbyBpbiBxdWVyeSBmdW5jdGlvbiBleGFtcGxlIGluIFBsdWdpbiBXcml0ZXIncyBHdWlkZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk2MTQyCgoyMDEzLTAzLTA3IDEyOjExOjMwICswMTAwICBKb25hcyBIb2xtYmVyZyA8am9uYXNoZ0BheGlzLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSAgdGVzdHM6IGZpeCBzcHVyaW91cyBmYWlsdXJlIGluIHRlc3RfY29sbGVjdCBjb2xsZWN0cGFkcyB0ZXN0CgkgIHBvcCgpIGluIGNvbGxlY3RlZCBjYWxsYmFjay4KCSAgVGhlcmUgd2VyZSB0aHJlZSB0aHJlYWRzIGluIHRoZSB0ZXN0IGNhc2VzIHRoYXQgaGFuZ2VkOiB0aGUgdGVzdCB0aHJlYWQgYW5kIHR3bwoJICB0aHJlYWRzIHRoYXQgcHVzaCBidWZmZXJzLiBFYWNoIHRocmVhZCBwdXNoIG9uZSBidWZmZXIgb24gb25lIHBhZC4gVGhlcmUgYXJlCgkgIHR3byBwYWRzIGluIHRoZSBjb2xsZWN0cGFkcyBzbyB0aGUgc2Vjb25kIGJ1ZmZlciB3aWxsIHRyaWdnZXIgdGhlCgkgIGNvbGxlY3QtY2FsbGJhY2suCgkgIFRoaXMgaXMgd2hhdCBoYXBwZW5zIHdoZW4gdGhlIGhhbmcgb2NjdXJzOgoJICBUaGUgZmlyc3QgdGhyZWFkIHB1c2hlcyBhIGJ1ZmZlciBhbmQgaW5pdGlhbGl6ZXMgYSBjb29raWUgdG8gdGhlIHZhbHVlIG9mIGEKCSAgY291bnRlciBpbiB0aGUgY29sbGVjdHBhZHMgb2JqZWN0IGFuZCB3YWl0cyBvbiBhIGNvbmQgZm9yIHRoZSBjb3VudGVyIHRvIGNoYW5nZQoJICBhbmQgZm9yIHNvbWVvbmUgdG8gY29uc3VtZSB0aGUgYnVmZmVyIChpLmUuIF9wb3AoKSBpdCkuCgkgIFRoZSBzZWNvbmQgdGhyZWFkIHB1c2hlcyBhIGJ1ZmZlciBhbmQgY2FsbHMgdGhlIGNvbGxlY3RlZCBjYWxsYmFjaywgd2hpY2gKCSAgc2lnbmFscyB0aGUgY29uZCB0aGF0IHRoZSB0ZXN0IHRocmVhZCBpcyB3YWl0aW5nIGZvci4KCSAgVGhlIHRlc3QgdGhyZWFkIHBvcHMgYm90aCBidWZmZXJzICh3aXRob3V0IGhvbGRpbmcgYW55IGxvY2spLiBFYWNoIGNhbGwgdG8KCSAgX3BvcCgpIGluY3JlYXNlcyB0aGUgY291bnRlciBicm9hZGNhc3RzIHRoZSBjb25kaXRpb24gdGhhdCB0aGUgZmlyc3QgdGhyZWFkIGlzCgkgIG5vdyB3YWl0aW5nIGZvci4gSXQgdGhlbiBqb2lucyBib3RoIHRocmVhZHMgKGhhbmdzKS4KCSAgVGhlIGZpcnN0IHRocmVhZCB3YWtlcyB1cCBhbmQgcmV0dXJucywgc2luY2UgaXRzIGJ1ZmZlciBoYXMgYmVlbiBjb25zdW1lZC4KCSAgVGhlIHNlY29uZCB0aHJlYWQgc3RhcnRzIGV4ZWN1dGluZyBhZ2Fpbi4gV2hlbiB0aGUgY2FsbGJhY2ssIGNhbGxlZCBieSB0aGUKCSAgc2Vjb25kIHRocmVhZCwgaGFzIHJldHVybmVkIGl0IGluaXRpYWxpemVzIGEgY29va2llIHRvIHRoZSB2YWx1ZSBvZiBhIGNvdW50ZXIsCgkgIHdoaWNoIGhhcyBhbHJlYWR5IHByZW1hdHVyZWx5IGJlZW4gaW5jcmVhc2VkIGJ5IHRoZSB0ZXN0IHRocmVhZCB3aGVuIGl0IHBvcHBlZAoJICB0aGUgYnVmZmVycywgYW5kIHdhaXQncyBvbiBhIGNvbmQgZm9yIHRoZSBjb3VudGVyIHRvIGNoYW5nZSBhbmQgZm9yIHNvbWVvbmUgdG8KCSAgY29uc3VtZSB0aGUgYnVmZmVyIChpLmUuIF9wb3AoKSBpdCkuIFNpbmNlIHRoZSBidWZmZXIgaGFzIGFscmVhZHkgYmVlbiBwb3BlZAoJICBhbmQgdGhlIGNvdW50ZXIgaGFzIGFscmVhZHkgYmVlbiBpbmNyZWFzZWQgaXQgd2lsbCBiZSBzdHVjayBmb3JldmVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg1NTU1CgoyMDEzLTAzLTE2IDEyOjA1OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogcmVtb3ZlIGZmbXBlZyBsaWJzIGZyb20gZHluYW1pYyBsaW5rZXIgcGF0aHMKCSAgV2UgbGluayB0aG9zZSBsaWJzIGludG8gdGhlIHBsdWdpbiBzdGF0aWNhbGx5LCBvciB1c2UgZXh0ZXJuYWwKCSAgc3lzdGVtIGxpYnMsIGJ1dCBuZXZlciB0aGUgaW50ZXJuYWwgc25hcHNob3QgZHluYW1pY2FsbHkuCgoyMDEzLTAzLTE2IDEyOjAwOjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIGdzdC1lZGl0aW5nLXNlcnZlcyB0byBHSV9UWVBFTElCX1BBVEgKCSAgU28gcHlnaSBjYW4gZmluZCBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NTkzNwoKMjAxMy0wMy0xMiAxMzo1Mzo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IG1ha2Ugc3VyZSBzbG93IEdTVF9SRUFEX1VJTlQqIHZhcmlhbnRzIGRvbid0IGhhdmUgdW5leHBlY3RlZCBzaWRlIGVmZmVjdHMKCSAgRml4ZXMgdW5pdCB0ZXN0IG9uIHN5c3RlbXMgd2hlcmUgdW5hbGlnbmVkIG1lbW9yeSBhY2Nlc3MgaXMgbm90IHBvc3NpYmxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk1NTk5CgoyMDEzLTAzLTA1IDExOjE0OjQxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBsYXVuY2g6IGRvbid0IGV4aXQgdGhlIGxvb3Agb24gYnVmZmVyaW5nIGluIHBhdXNlZAoJICBXaGVuIHdlIHJlY2VpdmUgYSBidWZmZXJpbmcgbWVzc2FnZSBvZiAxMDAlIGluIHRoZSBwYXVzZWQgc3RhdGUsIHdlIGV4aXQKCSAgdGhlIGV2ZW50X2xvb3AgYW5kIG1vdmUgdG8gdGhlIFBMQVlJTkcgc3RhdGUuIFdoYXQgc2hvdWxkIGhhcHBlbiBpcyB0aGF0CgkgIHdlIHdhaXQgZm9yIGJvdGggQVNZTkMtRE9ORSBhbmQgMTAwJSBidWZmZXJpbmcgYmVmb3JlIGNvbnRpbnVlaW5nLgoKMjAxMy0wMy0wOCAxMzoxNTozMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY29udHJvbGxlci50eHQ6CgkgIGRlc2lnbjogdXBkYXRlIGNvbnRyb2xsZXIgZGVzaWduIGFuZCBhZGQgc29tZSB0aG91Z2hzIGZvciBmdXR1cmUgc3R1ZmYKCjIwMTMtMDMtMDggMDg6MTM6MDYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGRvY3M6IG1lbnRpb24gY2xpcHBpbmcgb2YgdmFsdWVzIGluIGNvbnRyb2wtYmluZGluZyBkb2NzCgoyMDEzLTAzLTA4IDA4OjEwOjIwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogY29kZSBjbGVhbnVwcwoJICBVc2UgYSBwcm9wZXJ0eSBmb3IgYWNjZXNzaW5nIHRoZSBjb250cm9sLXNvdXJjZSBvbiB0aGUgYmluZGluZy4gRHJvcCBiYXNlX2luaXQKCSAgb24gdGhlIHRlc3Qgb2JqZWN0LgoKMjAxMy0wMy0wNyAxMTo0NjozMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGdzdF9xdWVyeV9nZXRfbl9hbGxvY2F0aW9uX3BhcmFtcygpIHJldHVybnMgYSBuZXcgcmVmIHRvIHRoZSBhbGxvY2F0b3IKCjIwMTMtMDMtMDcgMTE6MzU6MDMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogcmVtb3ZlIGEgYm9ndXMgdGVzdAoJICBXZSBwcmV2aW91c2x5IGZvcmdvdCB0byBpbml0aWxpemUgdGhlIGFtcGxpdGRlIHByb3BlcnR5IHRvIHRoZSBkZWZhdWx0IGFuZCB0aHVzIGl0IHdhcyAwLjAuIFRoZXJlZm9yZSBhIGRlZmF1bHQgbGZvIGNvbnRyb2xzb3VyY2UgcmV0dXJuZWQgYSBzZXJpZXMgb2YgMC4wIGFuZCB0aGUgdGVzdCB3YXMgYXNzZXJ0aW5nIG9uIHRoYXQuCgoyMDEzLTAzLTA3IDA5OjE1OjE0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSAgY29udHJvbGJpbmRpbmc6IHJlbGF4IHRoZSBwc3BlYyBmb3IgdGhlIGNvbnRyb2wtc291cmNlCgkgIFdlIGNhbiBjaGFuZ2UgY29udHJvbCBzb3VyY2VzIG9uIGNvbnRyb2xiaW5kaW5ncy4KCjIwMTMtMDMtMDcgMDk6MTI6NTkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgbGZvOiBzZXQgYSBzZW5zaWJsZSBsb3dlciBib3VuZGFyeSBmb3IgdGhlIGZyZXF1ZW5jeQoJICBVc2UgREJMX01JTiwgd2hpY2ggaXMgYSB0aGUgc21hbGxlcyBkb3VibGUgZ3JlYXRlciB0aGFuIHplcm8gdGhhdCBpcyBub3QgaW4KCSAgZGVub3JtYWwgZm9ybWF0LiBUaGlzIGV4cG9zZXMgdGhlIGxpbWl0IGJldHRlciB0aGFuIHRoZSBydW50aW1lIGNoZWNrLgoKMjAxMy0wMy0wNiAyMzo1OToyOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMmRlMjIxYyB0byAwNGM3YTFlCgoyMDEzLTAzLTA2IDE2OjQwOjI3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIGxmb2NvbnRyb2xzb3VyY2U6IGluaXQgdGhlIGFtcGxpdHVkZSB0byB0aGUgZGVmYXVsdCBhbmQgdXBkYXRlIHRoZSBkb2NzCgoyMDEzLTAzLTA1IDExOjMwOjIyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IEFkZCBhbGwgdGhlIGJhc2UvYmFkIGxpYnJhcmllcyBhbmQgcmVtb3ZlIG9ic29sZXRlIG9uZXMKCjIwMTMtMDMtMDMgMTY6MDA6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBmaXggdXNlIG9mIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUKCSAgUnVubmluZyBzdWl0ZShzKTogR3N0QmFzZVNpbmsKCSAgPT0yMjAyMz09IENvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKCSAgPT0yMjAyMz09ICAgIGF0IDB4NTA1RkZDRTogZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyAoZ3N0YmFzZXNpbmsuYzoxOTM2KQoJICA9PTIyMDIzPT0gICAgYnkgMHg1MDY4QzgwOiBnc3RfYmFzZV9zaW5rX2RvX3N5bmMgKGdzdGJhc2VzaW5rLmM6MjM3OSkKCSAgPT0yMjAyMz09ICAgIGJ5IDB4NTA2QkNEMjogZ3N0X2Jhc2Vfc2lua19kZWZhdWx0X3dhaXRfZXZlbnQgKGdzdGJhc2VzaW5rLmM6MjkwMykKCSAgPT0yMjAyMz09ICAgIGJ5IDB4NTA2MzNBNDogZ3N0X2Jhc2Vfc2lua19kZWZhdWx0X2V2ZW50IChnc3RiYXNlc2luay5jOjI5MTgpCgkgID09MjIwMjM9PSAgICBieSAweDZGNUMyMTY6IGdzdF9mYWtlX3NpbmtfZXZlbnQgKGdzdGZha2VzaW5rLmM6MzgzKQoJICA9PTIyMDIzPT0gICAgYnkgMHg1MDVGMTY0OiBnc3RfYmFzZV9zaW5rX2V2ZW50IChnc3RiYXNlc2luay5jOjMxMDgpCgkgID09MjIwMjM9PSAgICBieSAweDUyRkEwOTA6IGdzdF9wYWRfc2VuZF9ldmVudF91bmNoZWNrZWQgKGdzdHBhZC5jOjQ4MjIpCgkgID09MjIwMjM9PSAgICBieSAweDUzMDM3NTY6IGdzdF9wYWRfc2VuZF9ldmVudCAoZ3N0cGFkLmM6NDk4NCkKCSAgPT0yMjAyMz09ICAgIGJ5IDB4NDAxNjVCOiBiYXNlc2lua190ZXN0X2dhcCAoYmFzZXNpbmsuYzoxNDgpCgoyMDEzLTAzLTAzIDEyOjA2OjM2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBGaXggbWVtb3J5IGNvcHlpbmcgbG9naWMgaW4gY29weV9pbnRvKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NTAzNQoKMjAxMy0wMy0wMyAxMToyODozMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnljaHVua3M6IFVzZSBjb3JyZWN0IHByaW50IGZvcm1hdCBzcGVjaWZpZXJzIHRvIGZpeCBjb21waWxlciB3YXJuaW5ncwoKMjAxMy0wMi0yMiAxNDoyMjowMSAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIEZpeCBtaXNzcGVsbGluZ3Mgb2YgJ2NvbnRpbnVvdXMnCgoyMDEzLTAyLTIyIDE0OjU2OjQ5IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IHRha2UgRFRTIGludG8gYWNjb3VudAoJICBJbXBvcnRhbnRseSwgdGhpcyBwYXRjaCBjb252ZXJ0cyBEVFMgdG8gcnVubmluZyB0aW1lLiAgTGVzcyBpbXBvcnRhbnRseSwKCSAgYW5kIHBvc3NpYmx5IGEgcHJvYmxlbSBmb3Igc29tZSBtdXhlcnMsIGlzIHRoYXQgaXQgb3JkZXJzIGJ1ZmZlcnMgYnkKCSAgRFRTIChpZiBpdCBpcyB2YWxpZCwgb3RoZXJ3aXNlIFBUUykuICBUaGlzIGlzIGdlbmVyYWxseSBjb3JyZWN0LCBidXQKCSAgbWlnaHQgYmUgc29tZXdoYXQgc3VycHJpc2luZyB0byBtdXhlcnMuCgkgIEFsc28gbm90ZSB0aGF0IG9uY2UgY29udmVydGVkIHRvIHJ1bm5pbmcgdGltZSwgRFRTIGNhbiBlbmQgdXAgbmVnYXRpdmUuCgoyMDEzLTAyLTI4IDIyOjU5OjQzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkgIG1hbnVhbDogaW1wcm92ZSB0aGUgY29udHJvbGxlciBkb2NzIGEgbGl0dGxlIG1vcmUKCSAgUmV3b3JkIHNvbWUgc2VjdGlvbnMuIEV4cGxhaW4gdmFsdWUgbWFwcGluZ3MgYmV0dGVyLgoKMjAxMy0wMi0yOCAxOTo0MDozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCBnc3QtbGliYXYgdG8gcGtnLWNvbmZpZyBwYXRoCgoyMDEzLTAyLTI3IDIyOjE1OjQ4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgc2Vla2luZzogYWRkIG1vcmUgbG9nZ2luZyBmb3Igc2Vla2luZwoJICBFc3BlY2lhbGx5IGFkZCBsb2dnaW5nIHRvIGVycm9yIGNvZGUgcGF0aHMuCgoyMDEzLTAyLTI3IDEwOjA5OjU2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IEdyYWNlZnVsbHkgaGFuZGxlIGdzdF9tZW1vcnlfY29weSgpIHJldHVybmluZyBOVUxMIHdpdGhvdXQgY3Jhc2hpbmcKCSAgZ3N0X2J1ZmZlcl9jb3B5X2ludG8oKSBhbmQgZ3N0X2J1ZmZlcl9yZXNpemVfcmFuZ2UoKSBjYW4gbm93IGZhaWwuCgoyMDEzLTAyLTI2IDE3OjMzOjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYWxsb2NhdG9yOiBzbWFsbCBpbnRlcm5hbCBjbGVhbnVwcwoJICBSZW5hbWUgU3lzdGVtIG1lbW9yeSBhbGxvY2F0b3IgdG8gR3N0QWxsb2NhdG9yU3lzbWVtIGFuZCB0aGUgbWVtb3J5IHRvCgkgIEdzdE1lbW9yeVN5c3RlbS4KCjIwMTMtMDItMjYgMTU6Mzc6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBhZGQgbWV0aG9kIHRvIGNoZWNrIG1lbW9yeSB0eXBlCgkgIEFkZCBhIG1ldGhvZCB0byBjaGVjayBpZiBhIG1lbW9yeSB3YXMgYWxsb2NhdGVkIGZyb20gYW4gYWxsb2NhdG9yIG9mCgkgIGEgZ2l2ZW4gdHlwZS4KCSAgQVBJOiBnc3RfbWVtb3J5X2lzX3R5cGUoKQoKMjAxMy0wMi0yNiAxNTozNjoxMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGltcHJvdmUgZG9jcyBhIGxpdHRsZQoKMjAxMy0wMi0yNiAxNTozMjoyNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YmluLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkqIGdzdC9nc3RiaW4uYzoKCSAgdXNlIEdTVF9NRVNTQUdFX0RVUkFUSU9OX0NIQU5HRUQgaW4gZG9jcyBhbmQgY29kZQoKMjAxMy0wMi0yNiAxNDo0MDozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBkb24ndCB1bnJlZiBhbGxvY2F0b3IgdG9vIHNvb24KCSAgVW5yZWYgdGhlIGFsbG9jYXRvciAqYWZ0ZXIqIHdlIGhhdmUgZnJlZWQgdGhlIG1lbW9yeS4gV2UgYWxzbyBuZWVkIHRvIGtlZXAKCSAgYSByZWYgdG8gdGhlIGFsbG9jYXRvciBhcm91bmQgYmVjYXVzZSBmb2xsb3dpbmcgdGhlIG5vdyBmcmVlZCBtZW1vcnkgd291bGQKCSAgbGVhZCB0byBjcmFzaGVzLgoKMjAxMy0wMi0yNiAwOTowODo0OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogRml4IGludmVydGVkIGxvZ2ljIGZvciBkZWNpZGluZyBpZiBtZW1vcnkgc2hvdWxkIGJlIHNoYXJlZCBvciBjb3BpZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NDcxNwoKMjAxMy0wMi0yNiAwNzo1MDoxMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgcG9ydGluZzogbWVudGlvbiBzZWdtZW50IGFjY3VtdWxhdGlvbiBpbiB0aGUgcG9ydGluZyBndWlkZQoJICBUaGlzIG5lZWRzIG1vcmUgZGV0YWlsLCBidXQgYXQgbGVhc3QgZ2l2ZXMgcGVvcGxlIGEgaGludCBvbiB0aGUgaXNzdWUuCgoyMDEzLTAyLTI2IDA3OjQ4OjM1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgZG9jczogcy9zdGFydC9kb25lLyBjb3B5J24ncGFzdGUgbWlzdGFrZQoKMjAxMy0wMi0yNSAxMzo1Nzo0MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBxdWVyeTogQWRkIG5ldyBBUEkgdG8gcmVtb3ZlIGFsbG9jYXRpb24gcGFyYW1zIGFuZCBwb29scyBmcm9tIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5CgoyMDEzLTAyLTI1IDEzOjI0OjMzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogRG9jdW1lbnQgdGhhdCB0aGUgZmlyc3QgYWxsb2NhdG9yIGluIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5IHNob3VsZCBhbGxvdyBtYXBwaW5nIHRvIHN5c3RlbSBtZW1vcnkKCjIwMTMtMDItMjQgMDk6MjQ6MjYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IEtlZXAgYSByZWZlcmVuY2UgdG8gdGhlIGFsbG9jYXRvcgoJICBPdGhlcndpc2UgdGhlIGFsbG9jYXRvciBtaWdodCBnZXQgZnJlZWQgd2hpbGUgaXQncyBzdGlsbCB1c2VkCgkgIGJ5IHRoZSBtZW1vcnkKCjIwMTMtMDItMjQgMDk6MzM6MDMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IElmIHNoYXJpbmcgYSBHc3RNZW1vcnkgZmFpbHMsIGZhbGwgYmFjayB0byBjb3B5aW5nIGl0CgoyMDEzLTAyLTIzIDE4OjM2OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBkb2NzOiBwb3J0aW5nLXRvLTEuMC50eHQ6IHNvbWUgZWxlbWVudCBuYW1lcyBoYXZlIGNoYW5nZWQKCjIwMTMtMDItMjMgMDg6MTk6NDggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IEl0J3MgY29udGlndW91cywgbm90IGNvbnRpbm91cwoKMjAxMy0wMi0yMiAxMjo0MTowOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogQWRkIG5ldyBtZW1vcnkgZmxhZyB0byBzcGVjaWZ5IHRoYXQgbWVtb3J5IGNhbid0IGJlIG1hcHBlZAoKMjAxMy0wMi0yMiAwOTowMjoyMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogQWRkIG1lbW9yeSBmbGFnIHRvIG1hcmsgcGh5c2ljYWxseSBjb250aW5vdXMgbWVtb3J5CgoyMDEzLTAyLTE2IDIzOjAyOjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGRvbid0IHBhc3MgTlVMTCBvdXRjYXBzIHRvIHRyYW5zZm9ybV9zaXplIG9uIHNodXRkb3duCgkgIGdzdF9wYWRfZ2V0X2N1cnJlbnRfY2FwcygpIG9uIHRoZSBzb3VyY2UgcGFkIG1pZ2h0IHlpZWxkIE5VTEwgY2FwcwoJICBpZiB3ZSdyZSBiZWluZyBzaHV0IGRvd24gYW5kIHRoZSBzb3VyY2UgcGFkIGhhcyBhbHJlYWR5IGJlZW4KCSAgZGVhY3RpdmF0ZWQgYnkgdGhlIG90aGVyIHRocmVhZCB0aGF0J3MgY2hhbmdpbmcgc3RhdGUuIEp1c3QgYmFpbAoJICBvdXQgaW4gdGhhdCBjYXNlLCBpbnN0ZWFkIG9mIHBhc3NpbmcgTlVMTCBjYXBzIHRvIHRoZSB0cmFuc2Zvcm1fc2l6ZQoJICBmdW5jdGlvbiwgd2hpY2ggaXQgbWlnaHQgbm90IGV4cGVjdC4KCSAgRml4ZXMgc3B1cmlvdXMgd2FybmluZ3MgaW4gYXVkaW9yZXNhbXBsZSBzaHV0ZG93biB1bml0IHRlc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTM5OTYKCjIwMTMtMDItMjEgMTA6MTg6MTQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogQWRkIE9SQwoKMjAxMy0wMi0xOSAxODowMDo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBhdm9pZCB1bmV4cGVjdGVkIHNpZGUtZWZmZWN0cyBvZiBHU1RfV1JJVEVfKiBtYWNyb3MKCSAgTWFrZSBzdXJlIHRoZSBkYXRhIGFyZ3VtZW50IGlzIG9ubHkgZXZhbHVhdGVkIG9uY2UuCgoyMDEzLTAyLTE5IDE3OjM2OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICBjaGVjazogYWRkIHNvbWUgbW9yZSBmYWlsX3VubGVzc18qKCkgbWFjcm9zIGZvciBjb252ZW5pZW5jZQoJICBBUEk6IGZhaWxfdW5sZXNzX2VxdWFsc19pbnRfaGV4CgkgIEFQSTogYXNzZXJ0X2VxdWFsc19pbnRfaGV4CgkgIEFQSTogZmFpbF91bmxlc3NfZXF1YWxzX2ludDY0X2hleAoJICBBUEk6IGFzc2VydF9lcXVhbHNfaW50NjRfaGV4CgkgIEFQSTogZmFpbF91bmxlc3NfZXF1YWxzX3VpbnQ2NF9oZXgKCSAgQVBJOiBhc3NlcnRfZXF1YWxzX3VpbnQ2NF9oZXgKCSAgQVBJOiBmYWlsX3VubGVzc19lcXVhbHNfcG9pbnRlcgoJICBBUEk6IGFzc2VydF9lcXVhbHNfcG9pbnRlcgoKMjAxMy0wMi0xOSAxMjo0MjozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgc2NyaXB0czogYWRkIG5ldyAtYmFzZSBhbGxvY2F0b3JzIGxpYnJhcnkgdG8gZ3N0LXVuaW5zdGFsbGVkIHNlYXJjaCBwYXRocwoKMjAxMy0wMi0xOCAyMDo0NzowNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGFkZCB0d28gbW9yZSB0ZXN0cyB1c2luZyBjb2xsZWN0cGFkcyB3aXRoaW4gYW4gZWxlbWVudAoJICBBZGQgYSBzdGF0aWMgcGx1Z2luIHdpdGggYSBydWRpbWVudGFyeSBlbGVtZW50IHVzaW5nIGNvbGxlY3RwYWRzIGFuZCBkbyBzb21lCgkgIHBpcGVsaW5lIGJhc2VkIHRlc3RzLgoKMjAxMy0wMi0xNyAxMjo1MDowMyAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgZG9jczogRml4IHNvbWUgYW1iaWd1b3VzIHdvcmRpbmcKCjIwMTMtMDItMTcgMTk6NTM6NTUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkgIHRyaWdnZXJjb250cm9sc291cmNlOiBhZGQgbWlzc2luZyBlbmRfaXRlciBjaGVjayBmb3Igc2VxdWVuY2UKCSAgQXZvaWQgYWNjZXNzaW5nIHRoZSBlbmQtaXRlciwgdGhpcyBpcyBhIG1hcmtlciB3aXRob3V0IGEgZGF0YSBmaWVsZC4KCjIwMTMtMDItMTcgMTM6MjA6MjAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBkb2NzOiBsaW5rIHRvIHRoZSBhcHByb3ByaWF0ZSBtZXNzYWdlcyBmcm9tIGdzdF9lbGVtZW50c19zZXRfc3RhdGUoKSBkb2NzCgkgIEZvciBhbiBhc3luYyBzdGF0ZSBjaGFuZ2UgcmV0dXJuIG9uZSB3b3VsZCB3YWl0IGZvciBBU1lOQ19ET05FIG9yIFNUQVRFX0NIQU5HRUQuCgoyMDEzLTAyLTE2IDE0OjIwOjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGFkZCBzaW5jZSBtYXJrZXIgZm9yIG5ldyBDT1BZX0RFRVAgYnVmZmVyIGZsYWcKCjIwMTMtMDItMTYgMTQ6NTk6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBhZGQgb3B0aW9uIHRvIGRlZXAgY29weSBhIGJ1ZmZlcgoJICBBZGQgYSBidWZmZXIgY29weSBmbGFnIHRvIGZvcmNlIGEgbWVtb3J5IGNvcHkgaW4gYWxsIGNhc2VzLgoKMjAxMy0wMi0xNCAxNDowOToxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgUmV2ZXJ0ICJ1dGlsczogVXNlIGdzdF9wYWRfZ2V0X3BhZF90ZW1wbGF0ZSgpIGluIGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZF90ZW1wbGF0ZSgpIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDFhMWE5ZTE0M2ZiMGUxNTVkNzYyN2FhOGU0ODljZDVkMDRiYzA5M2MuCgkgIFRoaXMgYnJlYWtzIHRoZSBwaXBlbGluZXMvdGFnc2NoZWNraW5nIHVuaXQgdGVzdCBmb3Igc29tZSByZWFzb24KCSAgKGZha2VzcmMgISBjYXBzZmlsdGVyICEgcXRtdXggbGlua2luZyBmYWlscyBub3cpLiBJdCBtaWdodCBiZQoJICBhIGJ1ZyBpbiB0aGUgdW5pdCB0ZXN0IG9mIGNvdXJzZSwgYnV0IHNvbWVvbmUgd2lsbCBuZWVkIHRvCgkgIGludmVzdGlnYXRlIHRoaXMuIFJldmVydGluZyBmb3Igbm93LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyNTA4CgoyMDEzLTAyLTE1IDEzOjA4OjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJICBhbGxvY2F0b3I6IGltcHJvdmUgZmFsbGJhY2sgY29weSBmdW5jdGlvbgoJICBPbmx5IHVzZSB0aGUgYWxsb2NhdG9yIG9mIHRoZSBjb3BpZWQgbWVtb3J5IHdoZW4gd2UgY2FuIHVzZSB0aGUgZGVmYXVsdAoJICBfYWxsb2MgZnVuY3Rpb24gb24gaXQuIE90aGVyd2lzZSB3ZSB3aWxsIGhhdmUgdG8gdXNlIHRoZSBkZWZhdWx0CgkgIGFsbG9jYXRvciBmb3IgdGhlIGNvcHkuCgoyMDEzLTAyLTE0IDEzOjU1OjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICBkb2NzOiBmaXggbG9jYXRpb24gaW4gdXNlcidzIGhvbWUgZGlyZWN0b3J5IHdoZXJlIEdTdHJlYW1lciBsb29rcyBmb3IgcGx1Z2lucwoJICBJdCdzIGJhc2VkIG9uIHRoZSB4ZGcgdXNlciBkYXRhIGRpciBub3cgaW4gMS4wLgoKMjAxMy0wMS0yNSAwNjo1MDoyNyAtMDMwMCAgTml2IFNhcmRpIDx4YWlraUBldmlsZ2lnZ2xlLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogVXNlIGdzdF9wYWRfZ2V0X3BhZF90ZW1wbGF0ZSgpIGluIGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZF90ZW1wbGF0ZSgpCgkgIG1vdGl2YXRpb24gY29tZXMgZnJvbTogLyogRklYTUU6IHdoeSBub3QgZ3N0X3BhZF9nZXRfcGFkX3RlbXBsYXRlIChwYWQpOyAqLwoJICB0aGlzIGNvZGUgcGF0aCBpcyBxdWl0ZSBuaWNlciwgd2Ugbm93IG9ubHkgcmV2ZXJ0IHRvIGNyZWF0aW5nIHRoZSB0ZW1wbGF0ZQoJICBpZiBnc3RfcGFkX2dldF9wYWRfdGVtcGxhdGUgZmFpbHMuCgkgIHdpdGggdGhpcyBmb3JrLCB3ZSBnYWluIGEgbm9uLWFsbG9jYXRpb24gb2YgR3N0Q2FwcyAqdGVtcGxjYXBzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI1MDgKCjIwMTMtMDItMTMgMDA6Mjc6MjggKzAwMDAgIEtyenlzenRvZiBLb25vcGtvIDxrcnp5c3p0b2Yua29ub3Brb0BnbWFpbC5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IFVzZSBnX3VuaXhfc2lnbmFsX2FkZCgpIHRvIGhhbmRsZSBrZXlib2FyZCBpbnRlcnJ1cHRpb24KCSAgQ3VycmVudCBpbXBsZW1lbnRhdGlvbiB1c2VzIGEgdHJhZGl0aW9uYWwgc2lnbmFsIGhhbmRsZXIgYW5kIGEgMjUwbXMKCSAgdGltZW91dCBjYWxsYmFjayBpbiB0aGUgZXZlbnQgbG9vcC4gIEFkZGluZyBhIEdTb3VyY2Ugd2l0aAoJICBnX3VuaXhfc2lnbmFsX2FkZCgpIHRvIHRoZSBHTWFpbkxvb3AgaXMgYSBtdWNoIG1vcmUgZWxlZ2FudCBzb2x1dGlvbi4KCSAgVGhlIHNpZ25hbCBoYW5kbGVyIHdpdGggdGhpcyBhcHByb2FjaCBjYW4gc2VuZCBhIG1lc3NhZ2UgdG8gdGhlIGJ1cwoJICBkaXJlY3RseSByYXRoZXIgdGhhbiBzZXQgYSBmbGFnIGFzIGFsbCBkaXNwYXRjaGluZyBpbnRyaWNhY2llcyBhcmUgaGFuZGxlZAoJICBieSBHTGliLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkzNDgxCgoyMDEzLTAyLTE0IDAwOjA3OjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgIGRvY3M6IGZsZXNoIG91ciAnUnVubmluZyBHU3RyZWFtZXInIGJpdHMgYSBiaXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MzYwNwoKMjAxMy0wMi0xMyAyMzoyNzoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgZG9jczogZmxlc2ggb3V0IGdzdC1sYXVuY2gtMS4wIG1hbiBwYWdlIGEgbGl0dGxlCgkgIEZpeCB1cCBkZWZhdWx0IGxvY2F0aW9uIG9mIHRoZSByZWdpc3RyeS4KCSAgTWVudGlvbiBtb3JlIG9wdGlvbnMgZm9yIEdTVF9ERUJVRyAod2lsZGNhcmRzIGFuZAoJICBuYW1lZCBkZWJ1ZyBsZXZlbHMpLgoJICBFeHBsYWluIHdoYXQgdG8gZG8gd2l0aCB0aGUgZG90IGZpbGVzIHRoYXQgY2FuIGJlCgkgIHByb2R1Y2VkIGJ5IHNldHRpbmcgR1NUX0RFQlVHX0RVTVBfRE9UX0RJUi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MzYwNwoKMjAxMi0xMi0yNyAwMDowMzowNiArMDEwMCAgR2VydCBNaWNoYWVsIEt1bHlrIDxna3VseWtAeWFob28uZGU+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1tZXRhZGF0YS54bWw6CgkgIGRvY3M6IGZpeCBhZHZhbmNlZC1tZXRhZGF0YSBjb2RlIGV4YW1wbGUgaW4gbWFudWFsCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTA3NTEKCjIwMTMtMDItMTMgMTY6NTI6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogYWNjZXB0IE5VTEwgZXJyb3IgYXJndW1lbnQgaW4gZ3N0X21lc3NhZ2VfcGFyc2Vfe2Vycm9yLHdhcm5pbmcsaW5mb30KCSAgQW5kIHNpbXBsaWZ5IGNvZGUgYSBiaXQgd2hpbGUgYXQgaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTM3MDQKCjIwMTMtMDItMTMgMTc6MDA6MjMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogUmVtb3ZlIHNldC1zdHlsZSBiaXRtYXNrIGludGVyc2VjdGlvbi91bmlvbi9zdWJ0cmFjdGlvbiBmdW5jdGlvbnMKCSAgU2V0IG9wZXJhdGlvbnMgb24gdGhlIGJpdG1hc2tzIGRvbid0IG1ha2UgbXVjaCBzZW5zZSBhbmQgcmVzdWx0CgkgIGluIGludmFsaWQgY2FwcyB3aGVuIHVzZWQgYXMgYSBjaGFubmVsLW1hc2suIFRoZXkgYXJlIG5vdyBoYW5kbGVkCgkgIGV4YWN0bHkgbGlrZSBpbnRlZ2Vycy4KCSAgVGhpcyBmdW5jdGlvbmFsaXR5IHdhcyBub3QgdXNlZCBhbnl3aGVyZSBleGNlcHQgZm9yIHRlc3RzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkxMzcwCgoyMDEzLTAyLTEzIDExOjE5OjA2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBUaGUgbGF0ZW5jeSBxdWVyeSBzaG91bGQgcmV0dXJuIFRSVUUgYnkgZGVmYXVsdCwgZGlmZmVyZW50IHRvIG90aGVyIHF1ZXJpZXMKCSAgRml4ZXMgdW5pdCB0ZXN0IGZhaWx1cmVzIGNhdXNlZCBieSBmM2QyNjhkZTdmN2ZiMTE2MTc3OGE5YTk1ZTBkNTRkOGM4OWVmNjI2CgoyMDEzLTAyLTEzIDEwOjQ2OjM3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgc3RydWN0dXJlOiBNYWtlIHN1cmUgdGhhdCBzdWJzZXRzIGhhdmUgYWxsIGZpZWxkcyBvZiB0aGUgc3VwZXJzZXQKCSAgInZpZGVvL3gtaDI2NCxwYXJzZWQ9KGJvb2xlYW4pdHJ1ZSIgaXMgbm90IGEgc3VwZXJzZXQgb2YKCSAgInZpZGVvL3gtaDI2NCxzdHJlYW0tZm9ybWF0PShzdHJpbmcpYnl0ZS1zdHJlYW0sYWxpZ25tZW50PShzdHJpbmcpbmFsIgoJICBmb3IgZXhhbXBsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MzM2NQoKMjAxMy0wMi0xMiAxMjozMjoyMyAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHVwZGF0ZSBleHBvcnRzIGZvciBiYXNlcGFyc2UgQVBJIGNoYW5nZXMKCjIwMTMtMDItMTIgMTI6MzE6NDIgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXggZG9jIHR5cG8KCjIwMTMtMDItMTEgMTY6NTE6NDggLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBhZGQgZ3N0X2Jhc2VfcGFyc2Vfc2V0X3RzX2F0X29mZnNldCgpCgkgIFNldHMgdGhlIGJ1ZmZlciB0aW1lc3RhbXBzIGJhc2VkIG9uIGxhc3Qgc2VlbiB0aW1lc3RhbXBzIGF0IGEKCSAgcGFydGljdWxhciBvZmZzZXQgaW50byB0aGUgZnJhbWUuCgkgIEFQSTogZ3N0X2Jhc2VfcGFyc2Vfc2V0X3RzX2F0X29mZnNldCgpCgoyMDEzLTAyLTExIDE2OjQyOjQxIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgYWRhcHRlcjogQWRkIGdzdF9hZGFwdGVyX3ByZXZfW3BkXXRzX2F0X29mZnNldCgpCgkgIE9yaWdpbmFsIHBhdGNoIHdyaXR0ZW4gYnkgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHJkaW8uY29tPi4KCSAgQVBJOiBnc3RfYWRhcHRlcl9wcmV2X3B0c19hdF9vZmZzZXQoKQoJICBBUEk6IGdzdF9hZGFwdGVyX3ByZXZfZHRzX2F0X29mZnNldCgpCgoyMDEzLTAyLTA5IDE4OjE0OjA5ICswMTAwICBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsbkBpZ2FsaWEuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IHF1ZXJ5IHNpbmsgZWxlbWVudHMgYW5kIHNvdXJjZSBwYWRzIG9mIHRoZSBiaW4KCSAgZ3N0X2Jpbl9xdWVyeSgpIG5vdyBmb3J3YXJkcyB0aGUgcXVlcnkgdG8gdGhlIHNvdXJjZSBwYWRzIGFzIHdlbGwgaWYKCSAgbm9uZSBvZiB0aGUgc2lua3Mgb2YgdGhlIGJpbiBzYXRpc2ZpZWQgdGhlIHF1ZXJ5LiBUaGlzIGhlbHBzIGluIHRoZQoJICBjYXNlIG9mIERVUkFUSU9OIHF1ZXJpZXMgZG9uZSBhIGJpbiBjb250YWluaW5nIGEgc291cmNlIGVsZW1lbnQuCgkgIEZpeGVzIGJ1ZyA2Mzg3NDkKCjIwMTMtMDItMDcgMTI6NDc6MDIgKzAxMDAgIEFsZXhhbmRlciBTY2hyYWIgPGFsZXhhc0BheGlzLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBMZXQgZ3N0X2Jpbl9zZW5kX2V2ZW50KCkgc2VuZCBldmVudHMgdG8gZ2hvc3QgcGFkcyBhcyB3ZWxsCgoyMDEzLTAyLTExIDIyOjUyOjI1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBjb21wYXQ6IGtpbGwgbW9yZSB1c2VzIG9mIGdzdF9wYWRfc2V0X2NhcHMoKQoKMjAxMy0wMi0xMiAwMDowODo1MSArMTEwMCAgVGltICdtaXRocm8nIEFuc2VsbCA8bWl0aHJvQG1pdGhpcy5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IEFkZGluZyBvZmZzZXQgdG8gR3N0U2VnbWVudCBzZXJpYWxpemUvZGVzZXJpYWxpemUuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTM1ODcKCjIwMTMtMDItMDkgMTI6MzI6MDIgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogaW1wcm92ZSBQVFMgaW50ZXJwb2xhdGluZwoJICAuLi4gYW5kIHRyYWNraW5nIG9mIERUUy4gIEZpeGVzIGNhc2VzIHdoZXJlIFBUUyBpcyBsb2NrZWQgb24gdG8gdGhlCgkgIERUUyBvZiBhbiBpbmNvbWluZyBidWZmZXIgd2l0aCBubyBQVFMgd2l0aCBpbnZhbGlkIGRhdGEsIGxlYWRpbmcgdG8KCSAgbm8gb3V0Z29pbmcgUFRTIChzaW5jZSBpdCBpcyBub3QgYWxsb3dlZCBzbWFsbGVyIHRoYW4gRFRTKS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MTQ4MQoKMjAxMy0wMi0wOCAyMToyODoxOCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgZG9jczogYWRkIG1vcmUgcG9ydGluZyBkZXRhaWxzCgoyMDEzLTAyLTA4IDIxOjIxOjQ4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJICBjb250cm9sYmluZGluZzogZXJyb3IgaGFuZGxpbmcgZm9yIGJpbmRpbmcgY29udHJvbHNvdXJjZXMgdG8gd3JvbmcgcHJvcGVydGllcwoJICBBZGQgd2FybmluZyBpZiBwcm9wZXJ0eSBpcyBub3Qgc3VpdGFibGUgZm9yIGNvbnRyb2xsaW5nLiBXaGVuIGFkZGluZyBhIGNvbnRyb2wtCgkgIGJpbmRpbmcgY2hlY2sgdGhhdCBwc3BlYyE9TlVMTC4KCjIwMTMtMDItMDcgMTM6MDg6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiByZW1vdmUgb2xkIGRvY3MgYWJvdXQgaXRlcmF0b3JzCgoyMDEzLTAyLTA3IDEyOjUyOjI2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IHJlbW92ZSBvbGQgY29tbWVudAoJICBUaGUgaXRlcmF0b3JzIG5vdyByZXR1cm4gYSBHVmFsdWUgYW5kIG5vdCB0aGUgb2JqZWN0IGRpcmVjdGx5IGFueW1vcmUuCgoyMDEzLTAyLTA3IDEyOjUwOjA4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IHJlc2V0IEdWYWx1ZSBmcm9tIGl0ZXJhdG9yIGFmdGVyIHVzYWdlCgoyMDEzLTAyLTA1IDE3OjE1OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc2luay5jOgoJICB0ZXN0czogYWRkIGJhc2VzaW5rIHRlc3QKCjIwMTMtMDItMDUgMTc6MTk6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBoYW5kbGUgc3luYyBvZiBFT1MgYWZ0ZXIgaXRlbSB3aXRob3V0IGR1cmF0aW9uCgkgIEFmdGVyIGEgYnVmZmVyIG9yIEdBUCB3aXRob3V0IGR1cmF0aW9uLCBhbiBFT1MgZXZlbnQgc2hvdWxkIGJlIHJlbmRlcmVkCgkgIGltbWVkaWF0ZWx5IGluc3RlYWQgb2Ygd2FpdGluZyBmb3IgdGhlIGVuZCBvZiB0aGUgc2VnbWVudC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5Mjg2OAoKMjAxMy0wMi0wMiAxMTo1NTo1MiAtMDgwMCAgTmF0ZSBCb2dkYW5vd2ljeiA8bmF0ZXpiQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBnc3RwaXBlbGluZTogZml4IGZhaWxlZCBhc3NlcnRpb24gY2F1c2VkIGJ5IHNlZWtpbmcgcGlwZWxpbmUgd2l0aCBOVUxMIGNsb2NrCgkgIFVuZGVyIGNlcnRhaW4gR1NUX1NUQVRFX0NIQU5HRURfUEFVU0VEX1RPX1BMQVlJTkcgdHJhbnNpdGlvbnMsIGEgcGlwZWxpbmUgd2l0aAoJICBhIE5VTEwgY2xvY2sgd2lsbCBmYWlsIGFuIGFzc2VydGlvbiBkdWUgdG8gYW4gdW5jaGVja2VkIGNhbGwgdG8gZ3N0X29iamVjdF9yZWYoKS4KCSAgVGhpcyBpcyBmaXhlZCBieSBzaW1wbHkgYWRkaW5nIGEgY2hlY2sgYW5kIG9ubHkgcmVmLWluZyBpZiB0aGUgY2xvY2sgaXMgbm90IE5VTEwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTMwNjUKCjIwMTMtMDItMDUgMTM6NDQ6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIHN0cnVjdHVyZTogY2hhbmdlIGFyZ3VtZW50IG5hbWUgZm9yIGRvY3MKCjIwMTMtMDItMDQgMTA6MzA6MzIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBmaXggb3JkZXIgb2YgY2FwcyBvbiBhbiB1bm5lZ290aWF0ZWQgbGluawoJICBoZWFkbGFiZWwgaXMgdGhlIHNpbmtfcGFkICh3aGVyZSB0aGUgbGluayBwb2ludHMgdG8pIGFuZCBub3QgdGhlIG90aGVyIHdheSBhcm91bmQuCgoyMDEzLTAyLTAxIDIxOjU5OjQxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJICBkb2NzOiB1cGRhdGUgdGhlIGNvbnRyb2xsZXIgZG9jcwoJICBBZGQgdGhlIGNvbnRyb2wgYmluZGluZ3MgdG8gdGhlIGRvY3MuIEFkZCBhIGxpdHRsZSBtb3JlIGRldGFpbC4KCjIwMTMtMDItMDEgMjE6NTc6NDUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIHBvcnRpbmc6IGEgZmV3IHVwZGF0ZXMgZm9yIHRoZSBwb3J0aW5nIGd1aWRlCgoyMDEzLTAxLTMwIDEzOjA2OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkgIGRhdGFxdWV1ZTogY2FuJ3QgcGFzcyBhIEdUeXBlIHRocm91Z2ggR0lOVF9UT19QT0lOVEVSCgkgIFVzZSBHU0laRV9UT19QT0lOVEVSIGluc3RlYWQuIHNpemVvZihHVHlwZSkgbWF5IGJlIGxhcmdlcgoJICB0aGFuIHNpemVvZihndWxvbmcpIGFuZCBzaXplb2YoaW50KSwgc28gdGhlIGNhc3RzIG1heQoJICBjaG9wIG9mZiBzb21lIGJpdHMgZnJvbSB0aGUgR1R5cGUgdmFsdWUgb24gc29tZSBhcmNoaXRlY3R1cmVzLgoKMjAxMy0wMS0yOSAxMjo0MDo1MiArMDEwMCAgQWxleGFuZGVyIFNjaHJhYiA8YWxleGFzQGF4aXMuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgdGVzdHM6IHVuaXQgdGVzdCB0byB0cmlnZ2VyIHRoZSBxdWV1ZS9mbHVzaGluZyByYWNlIGNvbmRpdGlvbiBidWcgZm9yIGFsbG9jYXRpb24gcXVlcmllcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyNjkxCgoyMDEzLTAxLTI4IDExOjA1OjI4ICswMTAwICBBbGV4YW5kZXIgU2NocmFiIDxhbGV4YXNAYXhpcy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiByZW1vdmUgcXVlcnkgZnJvbSBxdWV1ZSBpZiBxdWV1ZSBpcyBmbHVzaGluZwoJICBXaGVuIHF1ZXJ5aW5nIGEgcXVldWUgdGhhdCBpcyBmbHVzaGluZyB3ZSBlbmQgdXAgYWRkaW5nCgkgIGEgcXVlcnkgdG8gdGhlIHF1ZXVlYXJyYXkgd2l0aG91dCB0YWtpbmcgYSByZWZlcmVuY2UgdG8KCSAgdGhhdCBxdWVyeSAoYmVjYXVzZSB0aGUgbm9ybWFsIGZ1bmN0aW9uYWxpdHkgaXMgdG8gYmxvY2sKCSAgdW50aWwgdGhhdCBxdWVyeSBpcyBkb25lIGFuZCBkaXNjYXJkZWQgZnJvbSB0aGUgcXVldWUpLgoJICBUaGlzIGxhdGVyIGNhdXNlcyBwcm9ibGVtIGlmIHRoZSBxdWVyeSBpcyB1bnJlZmZlZCBvdXRzaWRlCgkgIG9mIHRoZSBxdWV1ZSBiZWZvcmUgd2UgZGlzY2FyZCB0aGUgcXVldWUuIFRoZXJlIGlzIGEgY2hlY2sKCSAgdG8gYXZvaWQgdW5yZWZmaW5nIGFueSBsaW5nZXJpbmcgcXVlcnktb2JqZWN0cywgYnV0IHNpbmNlCgkgIHRoZSBxdWVyeSBoYXMgYmVlbiBkZWxldGVkIHRoYXQgY2hlY2sgZmFpbHMuCgkgIFRoaXMgY29tbWl0IGRlcGVuZHMgb24gb3RoZXIgZml4ZXMgZG9uZSB0byBnc3RfcXVldWVfYXJyYXlfZmluZCgpCgkgIGFuZCBnc3RfcXVldWVfYXJyYXlfZHJvcF9lbGVtZW50KCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI2OTEKCjIwMTMtMDEtMzAgMTE6NTU6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkgIHF1ZXVlYXJyYXk6IG1ha2UgX2ZpbmQoKSBmaW5kIHRoZSB2YWx1ZSBpZiBubyBjb21wYXJlIGZ1bmN0aW9uIGlzIHByb3ZpZGVkCgkgIEFsbG93IE5VTEwgYXMgY29tcGFyZSBmdW5jdGlvbiBmb3IgZGlyZWN0IHZhbHVlIGxvb2t1cC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjY5MQoKMjAxMy0wMS0zMCAxMTozNDoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL3F1ZXVlYXJyYXkuYzoKCSAgdGVzdHM6IGNoZWNrIHJldHVybiB2YWx1ZSBvZiBnc3RfcXVldWVfYXJyYXlfZHJvcF9lbGVtZW50KCkgdG9vCgkgIFdhcyBhZGRlZCB3aGVuIHRoZSBBUEkgd2FzIG1hZGUgcHVibGljIGluIGdpdCBtYXN0ZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI2OTEKCjIwMTMtMDEtMjkgMjI6NTQ6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL3F1ZXVlYXJyYXkuYzoKCSAgdGVzdHM6IG9uZSBtb3JlIHRlc3QgZm9yIGdzdF9xdWV1ZV9hcnJheV9kcm9wX2VsZW1lbnQoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyNjkxCgkgIENvbmZsaWN0czoKCSAgdGVzdHMvY2hlY2svbGlicy9xdWV1ZWFycmF5LmMKCjIwMTMtMDEtMjggMTE6MDU6MjggKzAxMDAgIEFsZXhhbmRlciBTY2hyYWIgPGFsZXhhc0BheGlzLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJICBxdWV1ZWFycmF5OiBmaXggZ3N0X3F1ZXVlX2FycmF5X2ZpbmQoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyNjkxCgoyMDEzLTAxLTI4IDExOjA1OjI4ICswMTAwICBBbGV4YW5kZXIgU2NocmFiIDxhbGV4YXNAYXhpcy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSAgcXVldWVhcnJheTogZml4IGdzdF9xdWV1ZV9hcnJheV9kcm9wX2VsZW1lbnQoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyNjkxCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmMKCjIwMTMtMDEtMjkgMTY6NTU6MjMgKzAyMDAgIFNyZWVyZW5qIEJhbGFjaGFuZHJhbiA8c3JlZXJlbmouYmFsYWNoYW5kcmFuQGludGVsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLWRvY3MuaDoKCSAgZG9jczogYWxpZ24gdGhlIGNvbW1lbnRzIGNvcnJlY3RseSB3aXRoIHRoZSBkZWNsYXJhdGlvbiBpbiBiaXRyZWFkZXIgZG9jcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyODA5CgoyMDEzLTAxLTI5IDA5OjQ1OjIzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGhhbmRsZSByZW5lZ290aWF0aW9uIGNvcnJlY3RseQoJICBEb24ndCByZXRyeSB0byBuZWdvdGlhdGUgd2hlbiB3ZSBmYWlsIHRvIG5lZ290aWF0ZSBidXQgaW5zdGVhZCBwcm9kdWNlIGEKCSAgTk9UX05FR09USUFURUQgZXJyb3IuIFdlIG9ubHkgd2FudCB0byByZXRyeSBuZWdvdGlhdGlvbiBpZiB0aGUgcmVzdWx0IGZyb20KCSAgZ3N0X3BhZF9wdXNoKCkgcmV0dXJuZWQgTk9UX05FR09USUFURUQuCgoyMDEzLTAxLTI4IDIwOjQxOjIwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBhOTQyMjkzIHRvIDJkZTIyMWMKCjIwMTMtMDEtMjggMTM6MDU6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3N0cmVhbS1zdGF0dXMuYzoKCSAgZXhhbXBsZTogZml4IEZJWE1FIGluIGV4YW1wbGUKCSAgVXNlIHNldHByaW9yaXR5IHRvIHJhaXNlIHByaW9yaXR5CgoyMDEzLTAxLTI3IDA2OjIwOjUxIC0wODAwICBTaW1vbiBGZWx0bWFuIDxzZmVsdG1hbkBzcmMuZ25vbWUub3JnPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBnLWk6IGFkZCBidWlsdCBlbnVtdHlwZXMgaGVhZGVycyBhbmQgc291cmNlcyB0byBnaXIgY3JlYXRpb24KCSAgQWRkIGdzdGVudW10eXBlcy5oL2MgZm9yIGluY2x1c2lvbiB3aXRoIGctaXItc2Nhbm5lci4gVGhpcyBmaXhlcwoJICBwcm9ibGVtcyB3aGVyZSBpbnRyb3NwZWN0aW9uIGJhc2VkIGJpbmRpbmdzIHRoaW5rIEdzdFN0YXRlIGlzCgkgIHR5cGVsZXNzIGR1ZSB0byB0aGUgR1R5cGUgbm90IGJlaW5nIGluY2x1ZGVkIGFzIGFuIGFubm90YXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTExODUKCjIwMTMtMDEtMjcgMDk6MTg6MDAgKzA1MzAgIEIuUHJhdGhpYmhhIDxwcmF0aGliaGFiQGNkYWMuaW4+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc3RyZXNzLmM6CgkgIHRlc3RzOiB1c2UgZ190aW1lb3V0X2FkZF9zZWNvbmRzIGluIHBpcGVsaW5lIHN0cmVzcyB0ZXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI2MTIKCjIwMTMtMDEtMjQgMTc6NTA6MzEgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiBQdXQgdGhlIHJpZ2h0IHBhdGggZm9yIHRoZSBnc3R0dGVzdGNsb2NrIGluY2x1ZGUgZmlsZQoKMjAxMy0wMS0yNCAxNTo1MDoxNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSAgcHdnOiByZW5hbWUgdmFyaWFibGUKCSAgVGhlIGZpbHRlciB2YXJpYWJsZSB3YXMgdXNlZCB0d2ljZSBmb3IgZGlmZmVyZW50IHRoaW5ncy4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjQzMgoKMjAxMy0wMS0xNyAyMTozNTo0OCAtMDMwMCAgTml2IFNhcmRpIDx4YWlraUBldmlsZ2lnZ2xlLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0X3BhZF9jaGVja19yZWNvbmZpZ3VyZTogb25seSByZW1vdmUgZmxhZyBpZiBzZXQuCgkgIHRoZSBjb2RlIGlmZWQgYSBkZWJ1ZyBzdGF0ZW1lbnQsIHRoYXQgY2FuJ3QgYmUgcmlnaHQuIGFueXdheSwgdGhlIHdheSBpdCBpcywKCSAgd2UgZG9uJ3QgcmVhbGx5IG5lZWQgdGhhdCBicmFuY2gsIGFzIHdlIHNldCB0aGUgZmxhZyB0byB1bnNldCBvbmx5IGlmIHNldAoJICAoYW5kIHRoYXQgY2FuJ3QgZmFpbCkgaGVuY2UgdGhlIGVuZCByZXN1bHQgaXMgYWx3YXlzIHRvIHVuc2V0IHRoZSBmbGFnLgoJICBTaWduZWQtb2ZmLWJ5OiBOaXYgU2FyZGkgPHhhaWtpQGV2aWxnaWdnbGUuY29tPgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkxOTg1CgoyMDEzLTAxLTE3IDIxOjQzOjI1IC0wMzAwICBOaXYgU2FyZGkgPHhhaWtpQGV2aWxnaWdnbGUuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHNldCBORUVEX1JFQ09ORklHVVJFIGZsYWcgaWYgbmVnb3RpYXRlIGZhaWxzCgkgIFdoZW4gbmVnb3RpYXRpb24gZmFpbHMsIG1hcmsgdGhlIHBhZCBhcyBuZWVkaW5nIGEgcmVjb25maWd1cmUgYWdhaW4gc28KCSAgdGhhdCBpdCBnZXRzIHBpY2tlZCB1cCBhZ2FpbiBuZXh0IHRpbWUuCgkgIFNpZ25lZC1vZmYtYnk6IE5pdiBTYXJkaSA8eGFpa2lAZXZpbGdpZ2dsZS5jb20+CgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTE5ODYKCjIwMTMtMDEtMTkgMTI6NTE6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogYWRkIGdzdF9wYWRfZ2V0X3N0cmVhbV9pZCgpIHV0aWxpdHkgZnVuY3Rpb24KCSAgQVBJOiBnc3RfcGFkX2dldF9zdHJlYW1faWQoKQoKMjAxMy0wMS0xOCAxNjowNTowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIHRvb2xzOiBtaW5vciBhZGRpdGlvbiB0byBnc3QtbGF1bmNoLTEuMCBtYW4gcGFnZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyMDE1CgoyMDEzLTAxLTE4IDE2OjAxOjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgdG9vbHM6IHVwZGF0ZSBnc3QtbGF1bmNoLTEuMCBtYW4gcGFnZSBmb3IgbmV3IGRlYnVnIGxldmVscwoJICBUaGVyZSBhcmUgbW9yZSBkZWJ1ZyBsZXZlbHMgdGhlc2UgZGF5cywgbm90IG9ubHkgMC01LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyMDE1CgoyMDEzLTAxLTE3IDAwOjM4OjE0IC0wNjAwICBEYW5pZWwgRMOtYXogPHlvc295QGRhbmllbGRpYXoub3JnPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2FybS5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfYXJtLmg6CgkgIHRlc3RzOiBmaXggQUJJIGNoZWNrIHN0cnVjdCBzaXplcyBmb3IgQVJNCgkgIGFuZCByZS1lbmFibGUgQUJJIGNoZWNrIGZvciBBUk0uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTE4MjgKCjIwMTMtMDEtMTYgMTc6MjQ6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGRvY3M6IGFkZCBhIG5vdGUgdG8gdGhlIGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyKCkgZG9jcyBhYm91dCBidWZmZXIgZmxhZ3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MjExMAoKMjAxMy0wMS0xNiAxMToyOTo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJICB0ZXN0czogZGlzYWJsZSBBQkkgY2hlY2tzIGZvciBhcmNoaXRlY3R1cmVzIHdoZXJlIHRoZSBzdHJ1Y3Qgc2l6ZXMgYXJlIG5vdCB1cC10by1kYXRlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTE4MjgKCjIwMTMtMDEtMTUgMTU6MDM6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAyYTA2OGNlIHRvIGE5NDIyOTMKCjIwMTMtMDEtMTUgMTM6NDc6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBVc2UgR1NUXypfMV8wIGVudmlyb25tZW50IHZhcmlhYmxlcyBldmVyeXdoZXJlCgkgIFRoZSBfMV8wIHN1ZmZpeGVkIGVudmlyb25tZW50IHZhcmlhYmxlcyBvdmVycmlkZSB0aGUKCSAgbm9uLXN1ZmZpeGVkIG9uZXMsIHNvIGlmIHdlJ3JlIGluIGFuIGVudmlyb25tZW50IHRoYXQKCSAgc2V0cyB0aGUgXzFfMCBzdWZmaXhlZCBvbmVzLCBzdWNoIGFzIGpoYnVpbGQsIHdlIG5lZWQKCSAgdG8gc2V0IHRob3NlIHRvIG1ha2Ugc3VyZSBvdXJzIGFjdHVhbGx5IGFsd2F5cyBnZXQKCSAgdXNlZC4KCjIwMTMtMDEtMTUgMTM6NDc6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIGZvciBuZXcgdHJhbnNsYXRlZCBzdHJpbmcKCjIwMTMtMDEtMTUgMDk6NDI6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiBhZGQgYWxsb3ctbm9uZSBhbm5vdGF0aW9uIGZvciBnc3RfcGlwZWxpbmVfbmV3KCkncyBuYW1lIHByb3BlcnR5CgoyMDEzLTAxLTE0IDIwOjAyOjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGRvY3M6IG1pbm9yIEdzdEJhc2VQYXJzZSBkb2NzIGZpeGVzCgkgIEV4cG9zZSBkb2NzIGZvciBnc3RfYmFzZV9wYXJzZV9maW5pc2hfZnJhbWUoKS4KCjIwMTMtMDEtMTQgMTc6MDE6MjIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIHR5cGVmaW5kOiBoYW5kbGUgbWFwIGZhaWx1cmUKCjIwMTMtMDEtMTQgMTc6MDA6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaGFuZGxlIG1hcCBmYWlsdXJlCgoyMDEzLTAxLTE0IDE3OjAwOjIzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGhhbmRsZSBtYXAgZmFpbHVyZQoKMjAxMy0wMS0xMyAxNDo0NTozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogYWRkIHZmdW5jcyB0byBpbnRlcmNlcHQgcXVlcmllcwoJICBVc2VmdWwgZm9yIHZpZGVvIHBhcnNlcyB0aGF0IHdhbnQgdG8gYXR0YWNoIG1hdHRlciBvcgoJICBmaW5kIG91dCBpZiBkb3duc3RyZWFtIHN1cHBvcnRzIGNlcnRhaW4gbWV0YXMuCgkgIEFQSTogR3N0QmFzZVBhcnNlQ2xhc3M6OnNyY19xdWVyeSgpCgkgIEFQSTogR3N0QmFzZVBhcnNlQ2xhc3M6OnNpbmtfcXVlcnkoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkxNDc1CgoyMDEzLTAxLTEyIDIwOjU0OjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggdXAgbmFtZSBvZiBkZWZhdWx0IGV2ZW50IHZmdW5jcwoKMjAxMy0wMS0xMCAxMTozNDoxNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJICBjb250cm9sYmluZGluZzogaGlkZSBvbmUgdW51c2VkIHR5cGVkZWYKCSAgVGhpcyBpcyBub3QgdXNlZCBpbnRlcm5hbGx5LgoKMjAxMy0wMS0xMCAxMTozMzo0MiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJICBkb2NzOiBpbXByb3ZlIGFwaSBkb2NzIGZvciBjb250cm9sc291cmNlIGFuZCAtYmluZGluZwoKMjAxMy0wMS0wNSAxNjozMDowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICB0ZXN0czogZml4IGxlYWsgaW4gZ2hvc3RwYWQgdW5pdCB0ZXN0CgkgIFRoZSBjcmVhdGVkIHBhZCBpcyBuZXZlciB1c2VkIGFuZCBvdmVyd3JpdHRlbiB3aXRoCgkgIGFub3RoZXIgbmV3bHktY3JlYXRlZCBwYWQgYSBmZXcgbGluZXMgYmVsb3cuCgoyMDEzLTAxLTA0IDEyOjI3OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJICBkb2NzOiBtaW5vciBzeXN0ZW1zY2xvY2sgZG9jIGZpeAoKMjAxMy0wMS0wMyAxMDoxNjoxOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBJbml0aWFsaXplIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUKCjIwMTItMTItMzAgMjM6MzU6NDggKzAxMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIGFkYXB0ZXI6IHJldHVybiBnc3NpemUgZnJvbSBnc3RfYWRhcHRlcl9tYXNrZWRfc2Nhbl8qIGZ1bmN0aW9ucwoJICBBcyB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoaXMgZnVuY3Rpb24gaXMgLTEgd2hlbiB0aGUgbWF0Y2ggaXMgbm90IGZvdW5kCgoyMDEzLTAxLTAxIDEwOjIzOjU5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IENoZWNrIGlmIGJ1ZmZlcnMgYXJlIHRvbyBsYXRlIGJlZm9yZSBjYWxsaW5nIHByZXBhcmUvcHJlcGFyZV9saXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTA5MzYKCjIwMTItMTItMzAgMjM6NDg6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogcmVwbGFjZSBkZXByZWNhdGVkIEFNX0NPTkZJR19IRUFERVIgd2l0aCBBQ19DT05GSUdfSEVBREVSUwoJICBBTV9DT05GSUdfSEVBREVSIGhhcyBiZWVuIHJlbW92ZWQgaW4gdGhlIGp1c3QtcmVsZWFzZWQgYXV0b21ha2UgMS4xMzoKCSAgaHR0cHM6Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9hdXRvbWFrZS8yMDEyLTEyL21zZzAwMDM4Lmh0bWwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MDg4MQoKMjAxMi0xMi0yMiAxNjo1MDo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgY2Fwcywgc3RydWN0dXJlLCAgdGFnbGlzdDogbWljcm8tb3B0aW1pc2F0aW9ucwoJICBBdm9pZCBzb21lIHVubmVjZXNzYXJ5IEdWYWx1ZSBjb3B5aW5nIGJ5IG1ha2luZyB1c2Ugb2YKCSAgZ3N0X3N0cnVjdHVyZV9pZF90YWtlX3ZhbHVlKCkgd2hlcmUgcG9zc2libGUuCgoyMDEyLTEyLTIyIDE2OjI5OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBzb21lIG1pY3JvLW9wdGltaXNhdGlvbnMKCSAgQXZvaWQgdW5uZWNlc3NhcnkgdmFsdWUgY29weWluZywgYW5kIHVubmVjZXNzYXJ5IGluaXQvdW5zZXQKCSAgY3ljbGVzIHdoaWNoIGFsbCBnbyB0aHJvdWdoIHRoZSB2YWx1ZSB0YWJsZS4gVGhlcmUncyBhIGJ1bmNoCgkgIG9mIHBsYWNlcyB3aGVyZSB3ZSBjb3B5IGEgdmFsdWUgYW5kIHRoZW4gdW5zZXQgaXQgaW4gdGhlIG5leHQKCSAgbGluZSwgaW5zdGVhZCBvZiBqdXN0IHRha2luZyBvdmVyIHRoZSBzb3VyY2UgdmFsdWUuCgoyMDEyLTEyLTIyIDE2OjUzOjQ3ICswMTAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogc2NyaXB0cy9jcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAuc2g6CgkgIHNjcmlwdHM6IGZpeCBsb2NhdGlvbiBvZiByZXBvc2l0b3J5IHdpdGggc3NoCgoyMDEyLTEyLTIxIDE2OjM2OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YmluLmg6CgkgIGJpbjogYWRkIGZsYWcgdG8gZGlzYWJsZSByZXN5bmMgc3RhdGUgY2hhbmdlCgkgIEFkZCBhIEdTVF9CSU5fRkxBR19OT19SRVNZTkMgdGhhdCBkaXNhYmxlcyBhIHJlc3luYyB3aGVuIGFuIGVsZW1lbnQgaXMgYWRkZWQsCgkgIHJlbW92ZWQgb3IgbGlua2VkIGluIHRoZSBiaW4uIFRoaXMgaXMgaW50ZXJlc3RpbmcgZm9yIGNvbXBsZXggYmlucyB0aGF0CgkgIGR5bmFtaWNhbGx5IGFkZCBlbGVtZW50cyB0byB0aGVtc2VsdmVzIGFuZCB3YW50IHRvIG1hbmFnZSB0aGUgc3RhdGUgb2YgdGhvc2UKCSAgZWxlbWVudHMgd2l0aG91dCBpbnRlcmZlcmVuY2UgZnJvbSByZXN5bmNzLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MDQyMAoKMjAxMi0xMi0yMSAxMDowOTozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSAgZG9jczogdXBkYXRlIHN5bmNocm9uaXphdGlvbiBkb2N1bWVudCBhIGxpdHRsZQoKMjAxMi0xMi0yMCAxNjo0MDowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJICBzeXN0ZW1jbG9jazogYWRkIE9USEVSIGNsb2NrIHR5cGUKCSAgQWRkIGFuIE9USEVSIGNsb2NrIHR5cGUgc28gdGhhdCBzdWJjbGFzc2VzIGFyZSBhYmxlIHRvIG1hcmsgdGhlbXNlbHZlcyBhcwoJICB1c2luZyBzb21lIG90aGVyIGNsb2NrIHNvdXJjZSB0aGFuIHRoZSByZWFsdGltZSBvciBtb25vdG9uaWMgY2xvY2suCgoyMDEyLTEyLTIwIDEzOjMxOjAyICswMTAwICBCcmFua28gU3ViYXNpYyA8YnJhbmtvQGF4aXMuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGNvcnJlY3Qgb3ZlcnJ1biBoYW5kbGluZwoJICBUaGUgY29udHJvbCBvZiB3aGV0ZWhlciBhIFNpbmdsZVF1ZXVlIGlzIGZ1bGwgaXMgbm90IGNvcnJlY3QuCgkgIFJld3JvdGUgc2luZ2xlX3F1ZXVlX292ZXJydW5fY2IoKSBzbyBpdCBjaGVja3MgdGhlIGNvcnJlY3QgdmFyaWFibGVzCgkgIHdoZW4gY2hlY2tpbmcgaWYgdGhlIHF1ZXVlIGhhcyByZWFjaGVkIHRoZSBoYXJkIGxpbWl0cywgYW5kIHRvCgkgIGluY3JlYXNlIHRoZSBtYXggYnVmZmVyIGxpbWl0IG9uY2UgZm9yIGVhY2ggY2FsbC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MDU1NwoKMjAxMi0xMi0yMCAxMTo1OTo1NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogaW1wbGVtZW50IGJ1ZmZlcmluZyBxdWVyeSBmb3IgYWxsIG1vZGVzCgkgIEFsc28gaW1wbGVtZW50IHRoZSBidWZmZXJpbmcgcXVlcnkgZm9yIFNUUkVBTSBtb2RlLgoKMjAxMi0xMi0yMCAxMTozMDoyNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcmVmYWN0b3IgYnVmZmVyaW5nIHBlcmNlbnQgYW5kIHN0YXRzCgkgIE1ha2UgbWV0aG9kcyB0byBnZXQgdGhlIGN1cnJlbnQgYnVmZmVyaW5nIHBlcmNlbnQgYW5kIHRoZSBzdGF0cy4gV2Ugd2lsbCB1c2UKCSAgdGhpcyBpbiB0aGUgcXVlcnkgbGF0ZXIuCgoyMDEyLTEyLTEzIDEzOjQ3OjI5ICswMTAwICBBcm5hdWQgVnJhYyA8YXZyYWNAZnJlZWJveC5mcj4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IGludmFsaWQgb3V0cHV0IHRpbWVzdGFtcHMgaW4gc29tZSBjYXNlcwoKMjAxMi0xMi0xNCAxNToyMjoyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgTkVXU0VHTUVOVCAtPiBTRUdNRU5UCgoyMDEyLTEyLTE0IDE0OjAzOjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5wcmVyZXF1aXNpdGVzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuc2lnbmFsczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgZG9jczogdXBkYXRlIHBsdWdpbiBkb2NzCgkgIFVwZGF0ZSBhcmdzL3NpZ25hbHMgZXRjLgoKMjAxMi0xMi0xNCAxMTowOTozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzYW1wbGUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBhZGQgZGVidWcgY2F0ZWdvcnkKCSAgQWRkaW5nIGEgZGVidWcgY2F0ZWdvcnkgaXMgbmljZXIgdGhhbiBsb2dnaW5nIHRvIHRoZSBkZWZhdWx0IGNhdGVnb3J5CgoyMDEyLTEyLTE0IDExOjA4OjU3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogaW1wcm92ZSBkZWJ1ZwoKMjAxMi0xMi0xMyAxNDo0ODozNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBjYWxsIF9zdG9wIHdoZW4gc3RhcnQgZmFpbGVkCgkgIFdoZW4gd2UgZmFpbGVkIHRvIGNvbXBsZXRlIHRoZSBzdGFydCwgY2FsbCBzdG9wIGFnYWluLiBUaGlzIG1ha2VzIHN1cmUgdGhhdCBhbGwKCSAgc3VjY2Vzc2Z1bGwgY2FsbHMgdG8gX3N0YXJ0IGFyZSBwYWlyZWQgd2l0aCBhIF9zdG9wLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3ODQ1CgoyMDEyLTEyLTEyIDE2OjQ0OjE0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvYmFzZS5oOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svY2hlY2suaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9jb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L25ldC5oOgoJICBsaWJzOiBVc2UgZm9vL2Zvby5oIGFzIHNpbmdsZS1pbmNsdWRlIGhlYWRlciBjb25zaXN0ZW50bHkgZXZlcnl3aGVyZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4Nzg1CgoyMDEyLTEyLTExIDE2OjQ2OjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwYXNzIERUUyBhbmQgUFRTIHRvIGhhbmRsZV9idWZmZXIKCSAgVGhpcyBtYWtlcyBpdCBoYW5kbGUgdGhlIHRpbWVzdGFtcHMgY29ycmVjdGx5IGFuZCBhdm9pZHMgdXNpbmcgYSB3cm9uZyB0aW1lc3RhbXAKCSAgZm9yIHRoZSBvdXRwdXQuCgoyMDEyLTEyLTExIDE2OjQ2OjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBpbXByb3ZlIGRlYnVnCgkgIEFkZCBwdHMgYW5kIGR0cyBpbiBkZWJ1ZyBsb2cKCjIwMTItMTEtMDMgMTY6NTk6MzkgKzAwMDAgIEFuZHJ6ZWogQmllbmllayA8YW5keWhlbHBAZ21haWwuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiByZXBvcnQgZXhlY3V0aW9uIHRpbWUgaW4gR1NUX1RJTUVfRk9STUFUCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc1MjMKCjIwMTItMTItMTAgMTE6NTU6NDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogcHJvdGVjdCBhZ2FpbnN0IE5VTEwgZmlsZW5hbWUgaW4gZGVidWcKCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODk5NDgKCjIwMTItMTItMDYgMDk6NDg6MDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiBjbGFyaWZ5IGRvY3MKCjIwMTItMTItMDUgMTQ6NTY6NDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBmaXggZG9jcwoKMjAxMi0xMi0wNSAxNDoyNDoxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBmaXggMC4xMCBkb2NzIHRvIG1ha2UgbW9yZSBzZW5zZSBpbiAxLjAKCjIwMTItMTItMDUgMTQ6MDM6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogZml4IGRvY3MgZm9yIDEuMAoJICBBZGQgcGFyZW50IHRvIGNoYWluIGZ1bmN0aW9uIHNpZ25hdHVyZSBhbmQgdXNlIGl0LgoKMjAxMi0xMS0zMCAxMDo0MTo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IGFkZCByZXNldC10aW1lIHR5cGUgc3RyaW5nCgoyMDEyLTExLTMwIDEwOjQxOjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IHJlbW92ZSBzb21lIGNhc3RzCgoyMDEyLTExLTI4IDE4OjA4OjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgZG9jczogYWRkIGxpbmsgdG8gcHl0aG9uIHBvcnRpbmcgZG9jIGFuZCBhcHAgZGV2IG1hbnVhbCB0byBwb3J0aW5nLXRvLTEuMC50eHQKCjIwMTItMTEtMjggMTc6MzY6NTUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZS5hYzogVXBkYXRlIGxpYnRvb2wgdmVyc2lvbmluZwoJICBJbiBvcmRlciBmb3IgMS54IGFuZCAxLih4KzEpIHZlcnNpb25zIHRvIG5vdCBpbnZhZGUgb24gZWFjaCBvdGhlcgoJICB3ZSBuZWVkIHRvIGhhdmUgZGlmZmVyZW50IGxpYiB2ZXJzaW9ucy4KCSAgU28gd2UgbmVlZCBhIGNvbnNpc3RlbnQgYW5kIHByZWRpY3RhYmxlIHNjaGVtZToKCSAgbGlicmFyeSB2ZXJzaW9uIG51bWJlciA9IE1JTk9SICogMTAwICsgTUlDUk8KCSAgRXg6CgkgIDEuMC4wID0+IDAgKGR1aCkKCSAgMS4wLjMgPT4gMwoJICAxLjEuMCA9PiAxMDAKCSAgMS4xLjEgPT4gMTAxCgkgIDEuMi4wID0+IDEyMAoJICAxLjEwLjUgPT4gMTAwNQoJICAuLi4uCgoyMDEyLTExLTI2IDE4OjE2OjUyIC0wNTAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzQGRlYmV0aGVuY291cnQuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGFkZCBnc3QtZWRpdGluZy1zZXJ2aWNlcyB0byBQS0dfQ09ORklHX1BBVEgKCjIwMTItMTEtMjYgMDA6NTE6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBjbGVhbiB1cCBzZWN0aW9ucyBmaWxlIGZvciBwYWQgcHJvYmUgZGVmaW5lcyB0aGF0IG1vdmVkIGludG8gZW51bQoKMjAxMi0xMS0yNiAwMDoyMDoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbW1vbjoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLnBjLmluOgoJICBnc3Q6IGRvbid0IHJlcXVpcmUgZ3RocmVhZC0yLjAKCSAgV2UgZG9uJ3QgbmVlZCB0byBsaW5rIHRvIGd0aHJlYWQtMi4wIGFueSBsb25nZXIsIHNpbmNlIGFsbAoJICB0aGUgbm9ybWFsIHRocmVhZC1yZWxhdGVkIHN0dWZmIGlzIGluIEdMaWIgcHJvcGVyLCBhbmQgd2UKCSAgZG9uJ3QgdXNlIGdfdGhyZWFkX2luaXQoKSBhbnkgbW9yZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4OTA0MwoKMjAxMi0xMS0yNSAyMzo0Mjo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSAgZ3N0cmVhbWVyLTEuMC5wYzogbW92ZSBnbW9kdWxlLW5vLWV4cG9ydC0yLjAgZGVwZW5kZW5jeSB0byBSZXF1aXJlcy5wcml2YXRlCgkgIFVzZXJzIG9mIEdTdHJlYW1lciBhcmUgbm90IGdlbmVyYWxseSBleHBlY3RlZCB0byB1c2UgdGhlIEdNb2R1bGUgQVBJCgkgIGRpcmVjdGx5LiBzbyBkb24ndCBmb3JjZSB0aGVtIGFsbCB0byBsaW5rIGFnYWluc3QgaXQuCgkgIFdoaWxlIHdlJ3JlIGF0IGl0LCBubyBuZWVkIHRvIGRlZmluZSB0aGlzIHZpYSBjb25maWd1cmUuYWMgcmVhbGx5LCBqdXN0CgkgIHB1dCB0aGUgZGVwZW5kZW5jaWVzIGRpcmVjdGx5IGludG8gdGhlIC5wYy5pbiBmaWxlLgoKMjAxMi0xMS0yNSAyMzoyNjo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWluaXQueG1sOgoJKiBnc3QvZ3N0LmM6CgkgIGRvY3M6IHJlbW92ZSBhbGwgbWVudGlvbiBvZiBnX3RocmVhZF9pbml0KCkKCSAgSXQncyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgR0xpYiAyLjMyIGFuZCBpc24ndCBuZWVkZWQgYW55CgkgIGxvbmdlci4KCjIwMTItMTEtMjUgMTg6MTE6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJICBkYXRhcXVldWU6IHJlZHVjZSBkZWJ1ZyBsb2cgc3BhbSBhIGJpdAoJICBMb2cgbG9ja2luZy91bmxvY2tpbmcgd2l0aCBUUkFDRSBkZWJ1ZyBsZXZlbC4KCjIwMTItMTEtMjMgMjE6MDk6NDUgKzAxMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBmaXggYW5ub3RhdGlvbiBmb3IgZ3N0X2V2ZW50X3BhcnNlX3N0cmVhbV9zdGFydAoKMjAxMi0xMS0yMyAxMzozNjowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBkb2N1bWVudCBtb3JlIHBhZCBwcm9iZSB2YWx1ZXMKCjIwMTItMTEtMjMgMTM6MzQ6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suaDoKCSAgdGVzdGNsb2NrOiByZW1vdmUgdW5uZWNlc3NhcnkgaW5jbHVkZQoKMjAxMi0xMS0yMyAxMzozMjowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjbG9jay5jOgoJICB0ZXN0czogZml4IGNsb2NrIHVuaXQgdGVzdCBidWlsZCBmYWlsdXJlIGFmdGVyIGhlYWRlciBjaGFuZ2VzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODg3ODUKCjIwMTItMTEtMjMgMTI6NDc6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogZG9uJ3QgdXNlIHBhcmVudGhlc2lzIGZvciBPUmVkIHBhZCBwcm9iZSBmbGFnIGVudW1zCgkgIGdsaWItbWtlbnVtIGRvZXNuJ3QgbGlrZSB0aGVtIGZvciBzb21lIHJlYXNvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODgwNAoKMjAxMi0xMS0yMyAxMDo1ODoyNSArMDEwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBQdXQgYWxsIG9mIHRoZSBwcm9iZSB0eXBlcyBpbiB0aGUgZW51bSBzbyB0aGV5IHdvcmsgd2l0aCBiaW5kaW5ncwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4ODA0CgoyMDEyLTExLTIwIDIzOjEzOjMzIC0wODAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZS5oOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXQuaDoKCSAgbGliczogQWRkIG1pc3Npbmcgc2luZ2xlIGluY2x1ZGUgaGVhZGVycyBhbmQgdXNlIHRoZW0gaW4gR0lScwoKMjAxMi0xMS0yMCAxNjozNDoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0dGVzdGNsb2NrLmM6CgkgIHRlc3RzOiBkb24ndCB1c2UgZGVwcmVjYXRlZCB0aHJlYWQgQVBJCgoyMDEyLTExLTIwIDE2OjE5OjUyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogYWRkIHNvbWUgZGVidWcKCjIwMTItMTEtMjAgMTY6MTk6MTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiByZXNldCBTVEFSVF9USU1FIHdoZW4gbmVlZGVkCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODU4NzAKCjIwMTItMTEtMjAgMTU6Mzc6MTEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIHZhbHVlOiBNYWtlIEctSSBoYXBweSBieSBoaWRpbmcgZ3N0X2dfdGhyZWFkX2dldF90eXBlKCkKCjIwMTItMTEtMjAgMTU6MDc6MzcgKzAxMDAgIENocmlzdGlhbiBGcmVkcmlrIEthbGFnZXIgU2NoYWxsZXIgPHVyYWV1c0BsaW51eHJpc2luLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBSZW1vdmUgeGZpZyBmcm9tIHNwZWMgZmlsZQoKMjAxMi0xMS0yMCAxNTowNjoxNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IFVzZSB0aGUgR0xpYiBHVHlwZSBmb3IgR1RocmVhZCBpZiBjb21waWxpbmcgYWdhaW5zdCBHTGliIDIuMzUuMyBvciBuZXdlcgoKMjAxMi0xMS0yMCAxMjo1NjoxMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogRG9uJ3Qgc2V0IHRoZSBsb2NhbGUgaW4gZ3N0X2luaXQoKQoJICBUaGUgZnVuY3Rpb24gaW5pdF9wcmUoKSBpbiBnc3RyZWFtZXIvZ3N0L2dzdC5jIGNhbGxzIHNldGxvY2FsZShMQ19BTEwsICIiKSwKCSAgd2hpY2ggc2V0cyB0aGUgbG9jYWxlIHRvIHRoZSB2YWx1ZXMgc3BlY2lmaWVkIGluIHRoZSBlbnZpcm9ubWVudC4gIFRoaXMgaXMKCSAgd3JvbmcgZm9yIHR3byByZWFzb25zOgoJICAxLiBJdCBpcyBhYnNvbHV0ZWx5IG5vdCB0aGUgdGFzayBvZiBhIGxpYnJhcnkgdG8gZGVjaWRlIG9uIHRoZSBjb3JyZWN0IGxvY2FsZQoJICBmb3IgYSBwcm9ncmFtLiAgU29tZSBwcm9ncmFtcyBjaGFuZ2UgdGhlIGxvY2FsZSBmb3IgdmFyaW91cyAoZ29vZCBvciBiYWQpCgkgIHJlYXNvbnMsIGFuZCBsaWJyYXJpZXMgc2hvdWxkIHJlc3BlY3QgdGhhdC4gIFByb2dyYW1zIHdoZXJlIEdTdHJlYW1lcidzCgkgIG92ZXJ3cml0aW5nIG9mIHRoZSBsb2NhbGUgY2F1c2VzIGJ1Z3MgaW5jbHVkZSBFbWFjcyBbMSwgMl0sIFN1YmxpbWUgVGV4dCBbM10sCgkgIGFuZCBMdWEgWzRdLgoJICBbMV0gaHR0cDovL2RlYmJ1Z3MuZ251Lm9yZy9jZ2kvYnVncmVwb3J0LmNnaT9idWc9MTIzOTIKCSAgWzJdIGh0dHA6Ly9idWd6aWxsYS5ub3ZlbGwuY29tL3Nob3dfYnVnLmNnaT9pZD03Nzk0MjYKCSAgWzNdIGh0dHA6Ly93d3cuc3VibGltZXRleHQuY29tL2ZvcnVtL3ZpZXd0b3BpYy5waHA/Zj0zJnQ9ODU0MwoJICBbNF0gaHR0cHM6Ly9naXRodWIuY29tL3Bhdm91ay9sZ2kvaXNzdWVzLzE5CgkgIE5vdGUgdGhhdCBzZXR0aW5nIHRoZSBsb2NhbGUgY2FuIGNhdXNlIHByb2JsZW1zIGZvciBwcm9ncmFtcyB0aGF0IGFyZSBub3QgZXZlbgoJICBsaW5rZWQgYWdhaW5zdCBHU3RyZWFtZXIuICBJbiB0aGUgY2FzZSBvZiBFbWFjcywgZm9yIGV4YW1wbGUsIEdTdHJlYW1lciBzZWVtcwoJICB0byBiZSBpbml0aWFsaXplZCB0aHJvdWdoIEdUSyB2aWEgbGliY2FuYmVycmEuCgkgIDIuIFNldHRpbmcgdGhlIGxvY2FsZSBpcyBub3QgdGhyZWFkLXNhZmUsIGFuZCB0aGVyZWZvcmUgc2hvdWxkIG5vdCBiZSBkb25lIGluIGEKCSAgbGlicmFyeS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NTY1MAoKMjAxMi0xMS0xNiAxOTo0MTo0OCArMDEwMCAgQXJuYXVkIFZyYWMgPGF2cmFjQGZyZWVib3guZnI+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZvcndhcmQgc3RyZWFtLXN0YXJ0IGV2ZW50IGluIHB1c2ggbW9kZQoKMjAxMi0xMS0xOSAxMzozODozMCArMDEwMCAgQ2hyaXN0aWFuIEZyZWRyaWsgS2FsYWdlciBTY2hhbGxlciA8dXJhZXVzQGxpbnV4cmlzaW4ub3JnPgoKCSogZG9jcy9SRUFETUU6CgkqIGRvY3MvbWFudWFsL3N0YXRlLWRpYWdyYW0uZmlnOgoJKiBkb2NzL3JhbmRvbS93dGF5L3BsYXllci5maWc6CgkgIFJlbW92ZSB0d28gbGFzdCAuZmlnIGZpbGVzIGZyb20gYnVpbGQsIHRoZXkgYXJlIG5vdyByZXBsYWNlZCB3aXRoIC5zdmcgZmlsZXMuIFRoYXQgc2FpZCBJIGRvbid0IHRoaW5rIGVpdGhlciAuZmlnIGZpbGUgd2FzIHN0aWxsIGJlaW5nIHVzZWQgYW55d2hlcmUuIFdpdGggdGhpcyBjaGFuZ2UgYW5kIHRoZSBvbmUgaW4gY29tbW9uIEdTdHJlYW1lciBubyBsb25nZXIgZGVwZW5kcyBvbiB4ZmlnLgoKMjAxMi0xMS0xOSAxMzoxNjo0OCArMDEwMCAgQ2hyaXN0aWFuIEZyZWRyaWsgS2FsYWdlciBTY2hhbGxlciA8dXJhZXVzQGxpbnV4cmlzaW4ub3JnPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIG9mIHNzaDovL2dpdC5mcmVlZGVza3RvcC5vcmcvZ2l0L2dzdHJlYW1lci9nc3RyZWFtZXIKCjIwMTItMTEtMTkgMTE6MjM6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGI0OTdjNGYgdG8gYTcyZmFlYQoKMjAxMi0xMS0xOSAxMTo0NTowNyArMDEwMCAgQ2hyaXN0aWFuIEZyZWRyaWsgS2FsYWdlciBTY2hhbGxlciA8dXJhZXVzQGxpbnV4cmlzaW4ub3JnPgoKCSogZG9jcy9tYW51YWwvc3RhdGUtZGlhZ3JhbS5zdmc6CgkqIGRvY3MvcmFuZG9tL3d0YXkvcGxheWVyLnN2ZzoKCSAgQWRkIFNWRyB2ZXJzaW9ucyBvZiAuZmlnIGZpbGUKCjIwMTItMTEtMTcgMTA6Mjc6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIGV4YW1wbGVzOiBkb24ndCBjb21waWxlIHRlc3RydHBvb2wgZXhhbXBsZSBpZiBwdGhyZWFkcyBhcmUgbm90IGF2YWlsYWJsZSBsaWtlIG9uIHdpbjMyCgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBpdGFsYXJhYkBnbWFpbC5jb20KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODUxMQoKMjAxMi0xMS0xMyAyMToxMzowMCArMDEwMCAgQXJuYXVkIFZyYWMgPGF2cmFjQGZyZWVib3guZnI+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogZml4IGNsb2NrIGxlYWsgaW4gd2FpdF9ydW5uaW5nX3RpbWUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODQ3NwoKMjAxMi0xMS0xNyAwMDoxMzoxNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3Rjb21wYXQuaDoKCSAgZ3N0Y29tcGF0Lmg6IG1vdmUgbW9yZSBkZXByZWNhdGVkIEFQSSBpbnRvIHRoZSBkZXByZWNhdGVkIHNlY3Rpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NTU5OAoKMjAxMi0xMS0xNCAxMjoyMDo1NCArMDEwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cGhpbG5AaWdhbGlhLmNvbT4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IGRvY3VtZW50YXRpb24gdXBkYXRlCgkgIEdTdGF0aWNSZWNNdXRleCB1c2FnZSBoYXMgYmVlbiByZXBsYWNlZCBieSBHUmVjTXV0ZXgsIHJlZmxlY3QgdGhpcwoJICBjaGFuZ2UgaW4gdGhlIGRvY3VtZW50YXRpb24uCgoyMDEyLTExLTE0IDEwOjU1OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkgIHRlc3RjbG9jazogcG9ydCB0byBuZXcgR0xpYiB0aHJlYWRpbmcgQVBJCgoyMDEyLTExLTEzIDIzOjExOjM0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIHRlc3RzOiBnc3RfYWRhcHRlcl9wcmV2X3RpbWVzdGFtcCAtPiBnc3RfYWRhcHRlcl9wcmV2X3B0cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc1NTk4CgoyMDEyLTExLTEzIDIyOjQyOjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5oOgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkgIHRlc3RjbG9jazogbWlub3IgY2xlYW51cHMsIGFkZCBzaW5jZSBtYXJrZXJzIGZvciBndGstZG9jCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODMwMTIKCjIwMTItMDgtMzAgMDE6NTg6NDEgKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJuQGF4aXMuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suaDoKCSogdGVzdHMvY2hlY2svbGlicy9nc3R0ZXN0Y2xvY2suYzoKCSAgY2hlY2s6IGFsbG93IEdzdFRlc3RDbG9jayB0byBoYW5kbGUgY2xvY2sgbm90aWZpY2F0aW9ucwoJICBBUEk6IGdzdF90ZXN0X2Nsb2NrX3BlZWtfaWRfY291bnQoKQoJICBBUEk6IGdzdF90ZXN0X2Nsb2NrX2hhc19pZCgpCgkgIEFQSTogZ3N0X3Rlc3RfY2xvY2tfcGVla19uZXh0X3BlbmRpbmdfaWQoKQoJICBBUEk6IGdzdF90ZXN0X2Nsb2NrX3dhaXRfZm9yX25leHRfcGVuZGluZ19pZCgpCgkgIEFQSTogZ3N0X3Rlc3RfY2xvY2tfd2FpdF9mb3JfcGVuZGluZ19pZF9jb3VudCgpCgkgIEFQSTogZ3N0X3Rlc3RfY2xvY2tfcHJvY2Vzc19uZXh0X2Nsb2NrX2lkKCkKCSAgQVBJOiBnc3RfdGVzdF9jbG9ja19nZXRfbmV4dF9lbnRyeV90aW1lKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MzAxMgoKMjAxMi0xMS0xMyAyMToyOTowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBjaGVjazogYWRkIGRlcGVuZGVuY3kgb24gZ3N0Y2hlY2sgaGVhZGVyIGZpbGVzIGZvciBleHBvcnRzLnN5bQoJICBTbyBleHBvcnRzLnN5bSBnZXRzIHVwZGF0ZWQgY29ycmVjdGx5LCBhbmQgb3VyIG5ldyBzeW1ib2xzIGdldAoJICBleHBvcnRlZCBjb3JyZWN0bHksIHdoaWNoIG1ha2VzIGctaXItc2Nhbm5lciBtdWNoIGhhcHBpZXIgaW4KCSAgdGVybXMgb2YgbGlua2luZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MzAxMgoKMjAxMi0wOC0yOSAxNjoxMToxMCArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2Vicm5AYXhpcy5jb20+CgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0dGVzdGNsb2NrLmM6CgkgIGNoZWNrOiBhZGQgR3N0VGVzdENsb2NrIGFzIGEgZGV0ZXJtaW5pc3RpYyBjbG9jayBmb3IgdGVzdGluZwoJICBBUEk6IEdzdFRlc3RDbG9jawoJICBBUEk6IGdzdF90ZXN0X2Nsb2NrX25ldygpCgkgIEFQSTogZ3N0X3Rlc3RfY2xvY2tfbmV3X3dpdGhfc3RhcnRfdGltZSgpCgkgIEFQSTogZ3N0X3Rlc3RfY2xvY2tfc2V0X3RpbWUoKQoJICBBUEk6IGdzdF90ZXN0X2Nsb2NrX2FkdmFuY2VfdGltZSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODMwMTIKCjIwMTItMTEtMDkgMjE6MTA6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZml4IGRlYnVnIG1lc3NhZ2UKCjIwMTItMTEtMDggMjA6MjI6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIHN0cnVjdHVyZTogcmUtaW5kZW50IGhlYWRlciBmaWxlCgkgIFRhYnMgdG8gc3BhY2VzLgoKMjAxMi0xMS0xMiAxMTo0MDo1OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHZhbHVlOiBBUEk6IEFkZCBib3hlZCB0eXBlIGZvciBHVGhyZWFkCgoyMDEyLTExLTEyIDEwOjMwOjA4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBGaXggaW5kZW50aW9uIGZvciBwcmludGluZyB0eXBlZmluZGVyIGZlYXR1cmVzCgoyMDEyLTExLTEyIDAxOjQwOjQyICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJybkBheGlzLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGZpeCBjb21waWxlciB3YXJuaW5nIHdoZW4gZGVidWdnaW5nIGRpc2FibGVkCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODgxMzAKCjIwMTItMTEtMTAgMDk6NTA6NDkgKzAxMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogcmVtb3ZlIHVudXNlZCBsYWJlbC4gRml4ZXMgY29tcGlsZXIgd2FybmluZy4KCjIwMTItMTAtMjkgMTI6MDg6MzEgKzAwMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJICBxdWV1ZTogZG9uJ3QgZmFpbCBpbiBfc2lua19ldmVudCBmb3Igc3RpY2t5IGV2ZW50cwoJICBJbXBsZW1lbnQgdGhlIHNhbWUgYmVoYXZpb3VyIGFzIGdzdF9wYWRfcHVzaF9ldmVudCB3aGVuIHB1c2hpbmcgc3RpY2t5IGV2ZW50cwoJICBmYWlscywgdGhhdCBpcyBkb24ndCBmYWlsIGltbWVkaWF0ZWx5IGJ1dCBmYWlsIHdoZW4gZGF0YSBmbG93IHJlc3VtZXMgYW5kIHVwc3RyZWFtCgkgIGNhbiBhZ2dyZWdhdGUgcHJvcGVybHkuCgkgIFRoaXMgZml4ZXMgc2VnbWVudCBzZWVrcyB3aXRoIGRlY29kZWJpbiBhbmQgdW5saW5rZWQgYXVkaW8gb3IgdmlkZW8gYnJhbmNoZXMuCgkgIEZpeGVzOiBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3ODk5CgoyMDEyLTExLTA5IDE2OjUwOjUwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGJhc2VzaW5rOiBhZGQgc2ltcGxlIHJhdGUgY29udHJvbAoJICBBZGQgYSBtYXgtYml0cmF0ZSBwcm9wZXJ0eSB0aGF0IHdpbGwgc2xpZ2h0bHkgZGVsYXkgcmVuZGVyaW5nIG9mIGJ1ZmZlcnMgaWYgaXQKCSAgd291bGQgZXhjZWVkIHRoZSBtYXhpbXVtIGRlZmluZWQgYml0cmF0ZS4gVGhpcyBjYW4gYmUgdXNlZCB0byBkbwoJICByYXRlIGNvbnRyb2wgb24gbmV0d29yayBzaW5rcywgZm9yIGV4YW1wbGUuCgkgIEFQSTogR3N0QmFzZVNpbms6Om1heC1iaXRyYXRlCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19zZXRfbWF4X2JpdHJhdGUoKQoJICBBUEk6IGdzdF9iYXNlX3NpbmtfZ2V0X21heF9iaXRyYXRlKCkKCjIwMTItMTEtMDggMTU6MzM6MDEgKzExMDAgIE1hdHRoZXcgV2F0ZXJzIDx5c3RyZWV0MDBAZ21haWwuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogbG9jayBiZWZvcmUgdW5sb2NrIGluIF9nZXRfY29uZmlnCgkgIEZpeGVzIGRlYWRsb2NrIG9uIFdpbmRvd3MKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4Nzg5NgoKMjAxMi0xMS0wNyAxODoxNToxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogdXBkYXRlIGNvdXJ0ZXN5IG9mIGF1dG91cGRhdGUKCjIwMTItMTEtMDcgMTc6NTk6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBjb21tb246IHVwZGF0ZSBmb3IgQUdfR1NUX1BMVUdJTl9ET0NTIHB5dGhvbiBjaGVja3MKCjIwMTItMTEtMDYgMTg6Mjk6MjggKzAxMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBEb2N1bWVudCBHU1RfREVCVUdfRklMRQoKMjAxMi0xMS0wNiAxNzowMzo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBmaXggYWxpZ25tZW50IG9mIHJhbmssIGV0Yy4KCjIwMTItMTEtMDYgMTY6NTg6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgIGVsZW1lbnRzOiBmaXggbGVhZGluZyBzcGFjZSBpbiBwbHVnaW4gZGVzY3JpcHRpb24gc3RyaW5nCgoyMDEyLTExLTAzIDIwOjM4OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9kYXRhdXJpc3JjLmM6CgkgIEZpeCBGU0YgYWRkcmVzcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3NTIwCgoyMDEyLTExLTAzIDIwOjQ0OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ09QWUlORzoKCSogZG9jcy9yYW5kb20vTElDRU5TRToKCSogZ3N0L2dldHRleHQuaDoKCSogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSogZ3N0L2dsaWItY29tcGF0LmM6CgkqIGdzdC9nbGliLWNvbXBhdC5oOgoJKiBnc3QvZ3N0LWkxOG4tYXBwLmg6CgkqIGdzdC9nc3QtaTE4bi1saWIuaDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkqIGdzdC9nc3RhbGxvY2F0b3IuaDoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmg6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSogZ3N0L2dzdGRlYnVndXRpbHMuaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZWxlbWVudG1ldGFkYXRhLmg6CgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0ZXJyb3IuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3Rmb3JtYXQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkqIGdzdC9nc3RtYWNyb3MuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5oOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHBhcnNlLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5oOgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBnc3QvZ3N0cG9sbC5oOgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3RwcmVzZXQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmg6CgkqIGdzdC9nc3RzYW1wbGUuYzoKCSogZ3N0L2dzdHNhbXBsZS5oOgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5oOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmg6CgkqIGdzdC9nc3R0cmFjZS5jOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuaDoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiBnc3QvZ3N0dmVyc2lvbi5oLmluOgoJKiBnc3QvbWF0aC1jb21wYXQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguaDoKCSogbGlicy9nc3QvYmFzZS9nc3RtZW1pbmRleC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3Lmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suaC5pbjoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfZXJyb3IuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfZXJyb3IuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfaW1wbC5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19saXN0LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xpc3QuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbG9nLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xvZy5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19tc2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbXNnLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcGFjay5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wcmludC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wcmludC5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfc3RyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3N0ci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wbHVnaW4tc2Nhbm5lci5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Lmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmg6CgkqIHNjcmlwdHMvY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwLnNoOgoJKiBzY3JpcHRzL2ZpdmUtYnVncy1hLWRheS5wbDoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwc25lZ28uYzoKCSogdGVzdHMvYmVuY2htYXJrcy9jb21wbGV4aXR5LmM6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGJ1ZmZlcnN0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGNsb2Nrc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9sbHN0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2luaXQuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9tYXNzLWVsZW1lbnRzLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2NhcHNmaWx0ZXIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mZHNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YXRvbWljcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRldGltZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5kZXguYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYXJhbXNwZWNzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwb2xsLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwcmVzZXQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RyZWdpc3RyeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWdzZXR0ZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhc2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iaXRyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXdyaXRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGxpYnNjcHAuY2M6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvcXVldWVhcnJheS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSogdGVzdHMvY2hlY2svbGlicy90eXBlZmluZGhlbHBlci5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvY2xlYW51cC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtZGlzYWJsZWQuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcXVldWUtZXJyb3IuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NlZWsuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3N0cmVzcy5jOgoJKiB0ZXN0cy9jaGVjay90b29scy9nc3RpbnNwZWN0LmM6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS1tZW1vcnkuYzoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LW1lbW9yeS5oOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktdmlkbWVtLmM6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS12aWRtZW0uaDoKCSogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3Rlc3RydHBvb2wuYzoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy90ZXN0cnRwb29sLmg6CgkqIHRlc3RzL2V4YW1wbGVzL3R5cGVmaW5kL3R5cGVmaW5kLmM6CgkqIHRlc3RzL21pc2MvbmV0d29yay1jbG9jay11dGlscy5zY206CgkqIHRlc3RzL21pc2MvbmV0d29yay1jbG9jay5zY206CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6CgkqIHRvb2xzL3Rvb2xzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgRml4IEZTRiBhZGRyZXNzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc1MjAKCjIwMTItMTAtMzEgMTk6MzM6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIHF1ZXVlOiBhZGQgImZsdXNoLW9uLWVvcyIgcHJvcGVydHkKCSAgSW4gZmx1c2gtb24tZW9zPXRydWUgbW9kZSBhbnkgZGF0YSByZW1haW5pbmcgaW4gdGhlIHF1ZXVlIGlzCgkgIGRpc2NhcmRlZCB3aGVuIGFuIEVPUyBldmVudCBpcyByZWNlaXZlZCwgYW5kIHRoZSBFT1MgcGFzc2VkCgkgIGRvd25zdHJlYW0gYXMgc29vbiBhcyBwb3NzaWJsZSAoaW5zdGVhZCBvZiB3YWl0aW5nIGZvciBhbGwKCSAgYnVmZmVycyBpbiB0aGUgcXVldWUgdG8gZ2V0IHByb2Nlc3NlZCBieSBkb3duc3RyZWFtIGZpcnN0KS4KCSAgTWF5IG9yIG1heSBub3QgYmUgdXNlZnVsIGluIGNhcHR1cmUvZW5jb2Rpbmcgc2NlbmFyaW9zLgoKMjAxMi0xMC0zMSAxODozMjozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbW1vbjoKCSAgY29tbW9uOiB1cGRhdGUgZm9yIHB5dGhvbiBkZXRlY3Rpb24KCSAgRml4ZXMgZG9jcyBidWlsZC4KCjIwMTItMTAtMzEgMTc6Mzc6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBsZXQgQUdfR1NUX1BMVUdJTl9ET0NTIGNoZWNrIGZvciBweXRob24KCSAgQW5kIHVwZGF0ZSBjb21tb24gZm9yIG1vdmUgZnJvbSBBU19QQVRIX1BZVEhPTiB0byBBTV9QQVRIX1BZVEhPTiwKCSAgd2hpY2ggYXMgYSBzaWRlLWVmZmVjdCBzaG91bGQgcGljayB1cCBuZXdlciBweXRob24gdmVyc2lvbnMgYXMgd2VsbC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTU2MzkwMwoKMjAxMi0xMC0zMCAxMDowNDo0NCArMTEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogQ2xhcmlmeSBkb2NzIGFib3V0IHRoZSBidWZmZXIgaGFuZGxlciBjYWxsYmFjay4KCSAgQ2xhcmlmeSB0aGF0IHRoZSBjYWxsYmFjayBvd25zIGEgcmVmIG9uIGEgcGFzc2VkIGJ1ZmZlci4KCjIwMTItMTAtMzAgMTA6MDQ6MTQgKzExMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBBZGQgRU9TIHN0YXR1cyB0byBkZWJ1ZyBvdXRwdXQgYWJvdXQgZmlsbGVkL3VuZmlsbGVkCgoyMDEyLTEwLTIyIDAwOjMxOjA5ICsxMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkgIGNoZWNrOiBBZGQgYSBzaW1wbGUgdGVzdCBmb3IgdGhlIENvbGxlY3RQYWRzIGJ1ZmZlciBjb2xsZWN0IGNhbGxiYWNrCgoyMDEyLTEwLTI5IDEzOjI2OjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGctaTogZml4ICJjYW4ndCByZXNvbHZlIGxpYnJhcmllcyB0byBzaGFyZWQgbGlicmFyaWVzOiBnc3RjaGVjay0xLjAiIGJ1aWxkIGVycm9yCgkgIFJldmVydCAtLWxpYnJhcnk9bGliZm9vLTEuMC5sYSAtPiAtLWxpYnJhcnk9Zm9vLTEuMCBjaGFuZ2UgbWFkZQoJICBpbiBwcmV2aW91cyBjb21taXQuIFR1cm5zIG91dCB0aGF0IHdhcyB3cm9uZywgZGVzcGl0ZSB3aGF0IHRoZQoJICBtYW4gcGFnZSBzYXlzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjAzNzEwCgoyMDEyLTEwLTI5IDExOjMwOjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHBhZDogZG93bmdyYWRlICdjcmVhdGluZyByYW5kb20gc3RyZWFtLWlkJyBkZWJ1ZyBsb2cgbWVzc2FnZQoJICBObyBuZWVkIGZvciBpdCB0byBiZSBhIHdhcm5pbmcuCgoyMDEyLTA2LTEzIDEzOjAyOjQ4ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHJldmVudCBleGNlc3NpdmVseSBoaWdoIG1lbW9yeSB1c2FnZSB3aXRoIGxvbmcgc3RyZWFtcwoJICBMYXJnZSBzdHJlYW1zIHdvdWxkIGluZGV4IG9uZSBmcmFtZSBldmVyeSBzZWNvbmQsIHdoaWNoIGNhbiBnZXQgcXVpdGUKCSAgbGFyZ2Ugd2l0aCBtdWx0aS1ob3VyIHN0cmVhbXMsIHNvIGFkZCBhbiBhZGRpdGlvbmFsIGJ5dGUtYmFzZWQKCSAgbWluaW11bSBkaXN0YW5jZSBhcyB3ZWxsLCB3aGljaCB3aWxsIGtpY2sgaW4gZm9yIGxvbmcgc3RyZWFtcwoJICBhbmQgbWFrZSBzdXJlIHdlIG5ldmVyIGhhdmUgbW9yZSB0aGFuIGEgY291cGxlIG9mIHRob3VzYW5kIGluZGV4CgkgIGVudHJpZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjYwNTMKCjIwMTItMTAtMjggMTc6MTc6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBsaWJzOiBnLWk6IGF2b2lkIG11bHRpcGxlIGxpYnJhcmllcyBpbiB0aGUgc2hhcmVkLWxpYnJhcnkgdGFnCgkgIFVzaW5nIG11bHRpcGxlIGxpYnJhcmllcyBjYXVzZXMgcHJvYmxlbXMgZm9yIHRoZSBDIyBiaW5kaW5ncyBhbmQKCSAgd2lsbCBmb3Igc2ltaWxpYXIgbGFuZ3VhZ2VzIHN1Y2ggYXMgSmF2YSB3aGVuIHRoZXJlIGFyZSBiaW5kaW5ncwoJICBmb3IgdGhlbS4KCSAgQWxzbyBjaGFuZ2UgLS1saWJyYXJ5PWxpYmdzdGZvby1YLmxhIHRvIC0tbGlicmFyeT1nc3Rmb28tWCBhcwoJICB0aGUgbWFuIHBhZ2Ugc3VnZ2VzdHMgaXQgc2hvdWxkIGJlIGRvbmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzkzMTUKCjIwMTItMTAtMjggMTU6NTM6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGx1Z2luZmVhdHVyZTogYWRkIGdzdF9wbHVnaW5fZmVhdHVyZV9nZXRfcGx1Z2luX25hbWUoKQoJICBBUEk6IGdzdF9wbHVnaW5fZmVhdHVyZV9nZXRfcGx1Z2luX25hbWUoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTcxODMyCgoyMDEyLTEwLTI3IDE0OjQwOjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogYWxsb3cgc2V0dGluZyBvZiBHU1RfREVCVUcgbGV2ZWxzIGJ5IG5hbWUKCSAgZS5nLiBHU1RfREVCVUc9KjpJTkZPLCpzcmM6TE9HCgoyMDEyLTA2LTI5IDEyOjM4OjUyIC0wNDAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogbWFrZSB1cyBvZiB0aGUgbmV3IGdzdF9kZWJ1Z19zZXRfdGhyZXNob2xkX2Zyb21fc3RyaW5nIGZ1bmN0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzkxNTIKCjIwMTItMDYtMjkgMTI6MDU6MzYgLTA0MDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBpbmZvOiBhZGQgYSBmdW5jdGlvbiB0byBzZXQgZGVidWcgdGhyZXNob2xkIGZyb20gYSBHU1RfREVCVUctc3R5bGUgc3RyaW5nCgkgIFVzZSB0aGUgc2FtZSBmb3JtYXQgYXMgd2l0aCB0aGUgR1NUX0RFQlVHIGVudmlyb25tZW50IHZhcmlhYmxlLgoJICBBUEk6IGdzdF9kZWJ1Z19zZXRfdGhyZXNob2xkX2Zyb21fc3RyaW5nKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTE1MgoKMjAxMi0xMC0yNSAxNToyNzoyMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL3F1ZXVlYXJyYXkuYzoKCSAgcXVldWVhcnJheTogRml4IHVuaXQgdGVzdAoKMjAxMi0xMC0yMiAxMDoxMzoyMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5Lmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWVhcnJheS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGRhdGFxdWV1ZS9xdWV1ZWFycmF5OiBNYWtlIHB1YmxpYyBBUEkgYWdhaW4KCSAgVGhlc2UgYXJlIGFjdHVhbGx5IHVzZWQgb3V0c2lkZSBvZiBjb3JlZWxlbWVudHMgbm93YWRheXMuCgkgIEFsc28gaGlkZSBsb3RzIG9mIGludGVybmFscyBhbmQgYWRkIHBhZGRpbmcgYW5kIGRvY3VtZW50YXRpb24uCgoyMDEyLTEwLTI1IDEyOjEwOjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBCYWNrIHRvIGZlYXR1cmUgZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuMC4yID09PQoKMjAxMi0xMC0yNSAwMDowNDo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjAuMgoKMjAxMi0xMC0yNCAxNjoxMzozNCArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIGV4YW1wbGVzOiBsaW5rIHRlc3RydHBvb2wgdG8gcHRocmVhZHMKCSAgRml4ZXMgIzY4Njc4NwoKMjAxMi0xMC0yNCAxMTo0NjowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IEFsbG93IEdTVF9DTE9DS19USU1FX05PTkUgYXMgZHVyYXRpb24gZm9yIEdBUCBldmVudHMKCjIwMTItMTAtMjQgMTE6MTY6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogdXNlIG5ldyBHQ29uZCBmb3IgYXN5bmMgc3RhdGUgY2hhbmdlCgkgIFVzZSBhIG5ldyBHQ29uZCwgcHJvdGVjdGVkIHdpdGggdGhlIG9iamVjdCBsb2NrLCB0byBzaWduYWwgY29tcGxldGlvbgoJICBvZiB0aGUgYXN5bmMgc3RhdGUgY2hhbmdlLiBXZSBjYW4ndCByZXVzZSB0aGUgbGl2ZSBsb2NrIGJlY2F1c2UgdGhhdAoJICBvbmUgY2FuIGJlIGxvY2tlZCB3aGVuIHRoZSBjcmVhdGUgZnVuY3Rpb24gYmxvY2tzLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg2NzIzCgoyMDEyLTEwLTIyIDIwOjI1OjQzICswMjAwICBNaWd1ZWwgQW5nZWwgQ2FicmVyYSBNb3lhIDxtYWRtYWMyNTAxQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSAgYWxsb2NhdG9yOiBmaXggbWVtb3J5IGxlYWsgaW4gX2ZhbGxiYWNrX21lbV9jb3B5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODY2NTgKCjIwMTItMTAtMjIgMjA6MzM6MDYgKzAyMDAgIE1pZ3VlbCBBbmdlbCBDYWJyZXJhIE1veWEgPG1hZG1hYzI1MDFAZ21haWwuY29tPgoKCSogZ3N0L2dzdHByZXNldC5jOgoJICBwcmVzZXQ6IHJlbW92ZSB2YXJpYWJsZSBub3QgcmVhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg2NjU5CgoyMDEyLTEwLTIyIDE1OjA0OjI2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svTWFrZWZpbGUuYW06CgkqIG00L2F4X3B0aHJlYWQubTQ6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvTWFrZWZpbGUuYW06CgkgIGNvbmZpZ3VyZTogUHJvcGVybHkgY2hlY2sgZm9yIHB0aHJlYWQKCSAgVGhlIG9sZCBjaGVjayBmYWlsZWQgb24gQW5kcm9pZCBmb3IgZXhhbXBsZS4KCjIwMTItMTAtMjIgMTA6MjU6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogRG9uJ3QgdXNlIEdTVF9ERUJVRygpIGluIGdzdF9kZWJ1Z19hZGRfbG9nX2Z1bmN0aW9uKCkgYW5kIHJlbGF0ZWQgZnVuY3Rpb25zIHVuY29uZGl0aW9uYWxseQoJICBJZiBHU3RyZWFtZXIgd2FzIG5vdCBpbml0aWFsaXplZCB5ZXQgdGhpcyB3aWxsIGNhdXNlIGdfd2FybmluZ3MoKS4KCjIwMTItMTAtMjAgMTk6NDQ6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIGNvbGxlY3RwYWRzOiBmaXggZy1pIGFubm90YXRpb24gZm9yIEdzdENvbGxlY3RQYWRzQnVmZmVyRnVuY3Rpb24KCSAgV2UgcGFzcyBvd25lcnNoaXAgb2YgdGhlIGJ1ZmZlciB0byB0aGUgZnVuY3Rpb24uCgoyMDEyLTEwLTIwIDEyOjU0OjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkgIGdfdHlwZV9pbml0KCkgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkIGFuZCBkZXByZWNhdGVkIGluIGdsaWIgPj0gMi4zNS4wCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODY0NTYKCjIwMTItMTAtMTkgMTM6MzY6MzMgLTA3MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEByZGlvLmNvbT4KCgkqIGdzdC9nc3RzYW1wbGUuYzoKCSAgR3N0U2FtcGxlOiBmaXggdHlwbyBpbiBHLUkgYW5ub3RhdGlvbnMsIGFsbG93cyBjcmVhdGluZyBHc3RTYW1wbGVzIGZyb20gYmluZGluZ3MuCgoyMDEyLTEwLTE4IDE1OjMxOjE3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IEZpeCBjb21waWxlciB3YXJuaW5nIGFib3V0IGNvbnN0bmVzcwoJICBwYXNzaW5nIGFyZ3VtZW50IDEgb2YgJ2dfbXV0ZXhfbG9jaycgZGlzY2FyZHMgJ2NvbnN0JyBxdWFsaWZpZXIgZnJvbSBwb2ludGVyIHRhcmdldCB0eXBlCgkgIHBhc3NpbmcgYXJndW1lbnQgMSBvZiAnZ19tdXRleF91bmxvY2snIGRpc2NhcmRzICdjb25zdCcgcXVhbGlmaWVyIGZyb20gcG9pbnRlciB0YXJnZXQgdHlwZQoKMjAxMi0xMC0xNyAxNzozNDoyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuYzoKCSAgVXNlIGdzdF9lbGVtZW50X2NsYXNzX3NldF9zdGF0aWNfbWV0YWRhdGEoKQoJICB3aGVyZSBwb3NzaWJsZS4gQXZvaWRzIHNvbWUgc3RyaW5nIGNvcGllcy4gQWxzbyByZS1pbmRlbnQKCSAgc29tZSBzdHVmZi4gQWxzbyBzb21lIGluZGVudCBmaXhlcyBoZXJlIGFuZCB0aGVyZS4KCjIwMTItMTAtMTcgMTY6NDk6MTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgYmluLCBwaXBlbGluZTogdXNlIGdzdF9lbGVtZW50X2NsYXNzX3NldF9zdGF0aWNfbWV0YWRhdGEoKQoJICBTbyB0aGUgc3RyaW5ncyBhcmVuJ3QgY29waWVkLgoKMjAxMi0xMC0xNiAxMjozMTo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OiBBUEk6IEFkZCBHc3RFbGVtZW50Ojpwb3N0X21lc3NhZ2UoKSB2ZnVuYwoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RlbGVtZW50LmgKCjIwMTItMTAtMTYgMTE6NTQ6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1ldmVudHMueG1sOgoJICBwd2c6IGxpbmsgdG8gY2FwcyBhbmQgcW9zIGNoYXB0ZXJzCgoyMDEyLTEwLTE2IDExOjIwOjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctcXVlcnlmbi54bWw6CgkqIGRvY3MvcHdnL3B3Zy54bWw6CgkgIHB3ZzogYWRkIHNlY3Rpb24gYWJvdXQgcXVlcnkgZnVuY3Rpb24KCjIwMTItMTAtMTYgMTE6MTI6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ldmVudGZuLnhtbDoKCSAgcHdnOiBmaXggZXZlbnQgZnVuY3Rpb24KCjIwMTItMTAtMTUgMTk6NTY6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIGNvbGxlY3RwYWRzOiBtaW5vciBkb2NzIGZpeGVzCgoyMDEyLTEwLTE1IDE5OjU1OjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGZpeCBidWZmZXIgbGVhayBpbiBjbGlwX3RpbWUKCjIwMTItMTAtMTUgMTg6NDQ6NTIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogY2FsbCBjbGlwIGZ1bmN0aW9uIHdpdGggdXNlciBkYXRhCgoyMDEyLTEwLTE1IDE0OjA2OjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvcHdnLnhtbDoKCSAgcHdnOiByZW9yZGVyIHNvbWUgY2hhcHRlcnMKCSAgUmVvcmRlciBzb21lIGNoYXB0ZXIgc28gdGhhdCB0aGV5IG1hdGNoIHRoZSBzdGVwcyBkb25lIGluIHRoZQoJICBlbGVtZW50LgoKMjAxMi0xMC0xNSAxMzo1OTo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSAgcHdnOiBzbWFsbCB0d2Vha3MgdG8gbmVnb3RpYXRpb24KCjIwMTItMTAtMTUgMTM6NDQ6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkgIHB3ZzogaW1wcm92ZSBuZWdvdGlhdGlvbiBkb2N1bWVudGF0aW9uIHNvbWUgbW9yZQoKMjAxMi0xMC0xNSAxMjoxMDo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkgIHB3ZzogdXBkYXRlIG5lZ290aWF0aW9uIHBhcnQKCjIwMTItMTAtMTUgMTI6MTA6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBzeW5jaHJvbml6YXRpb24gZG9jcwoKMjAxMi0xMC0xMiAxNjo1ODowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSAgcHdnOiB3b3JrIG9uIHJld3JpdGluZyBjYXBzIG5lZ290aWF0aW9uIGRvY3MKCjIwMTItMTAtMTIgMTY6MDk6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgZGVzaWduOiByZW5hbWUgcGFzc3Rocm91Z2ggbmVnb3RpYXRpb24KCSAgUmVuYW1lIHBhc3N0aHJvdWdoIG5lZ290aWF0aW9uIHRvIHRyYW5zZm9ybSBuZWdvdGlhdGlvbiB0byBhdm9pZAoJICBjb25mdXNpb24gd2l0aCBwYXNzdGhyb3VnaCBvcGVyYXRpb24uCgoyMDEyLTEwLTEyIDEzOjE1OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICBtYW51YWw6IG5vIG1vcmUgbmV3LWRlY29kZWQtcGFkCgoyMDEyLTEwLTEyIDEzOjEzOjMyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNvbXBpbGluZy54bWw6CgkqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgIG1hbnVhbDogbW92ZSBlbWJlZGRpbmcgZWxlbWVudHMgdG8gc2VwYXJhdGUgY2hhcHRlcgoKMjAxMi0xMC0xMiAxMzowMToyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXFvcy54bWw6CgkgIHB3Zzogc21hbGwgZXhhbXBsZSBmb3IgdGhyb3R0bGUKCjIwMTItMTAtMTIgMTI6NTU6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1xb3MueG1sOgoJKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBwd2c6IGFkZCBpbmZvIGFib3V0IFFvUwoKMjAxMi0xMC0xMiAxMjo1NToyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2ludHJvLWJhc2ljcy54bWw6CgkgIHB3ZzogYWRkcyBzb21lIG1vcmUgbGlua3MKCjIwMTItMTAtMTIgMTI6NTU6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIHFvczogbWVzc2FnZXMgYXJlIHBvc3RlZCwgbm90IGRyb3BwZWQKCjIwMTItMTAtMTIgMTA6MzU6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9jb21tdW5pY2F0aW9uLnBuZzoKCSogZG9jcy9tYW51YWwvZGlhZ3JhbXMtZ2VuZXJhbC5zdmc6CgkqIGRvY3MvbWFudWFsL2RpYWdyYW1zLXBpcGVsaW5lcy5zdmc6CgkqIGRvY3MvbWFudWFsL2dzdHJlYW1lci1vdmVydmlldy5wbmc6CgkqIGRvY3MvbWFudWFsL21pbWUtd29ybGQucG5nOgoJKiBkb2NzL21hbnVhbC90aHJlYWQtYnVmZmVyaW5nLnBuZzoKCSAgbWFudWFsOiB1cGRhdGUgZ3JhcGhpY3MKCjIwMTItMTAtMTEgMTc6MTA6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1idWZmZXJpbmcueG1sOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtYW51YWw6IGFkZCBleGFtcGxlIG9mIG5vLXJlYnVmZmVyIGJ1ZmZlcmluZyBzdHJhdGVneQoKMjAxMi0xMC0xMSAxNzoxMDowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJKiBkb2NzL21hbnVhbC9pbnRyby1nc3RyZWFtZXIueG1sOgoJICBtYW51YWw6IHNtYWxsIHR3ZWFrcwoKMjAxMi0xMC0xMSAxNzowOToyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogYnVmZmVyaW5nIHRpbWUgbGVmdCBpcyBpbiBtaWxsaXNlY29uZHMKCjIwMTItMTAtMTEgMTc6MDc6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtYmlucy54bWw6CgkgIG1hbnVhbDogYWRkIHNvbWUgdGV4dCBhYm91dCBiaW4gc3RhdGUgY2hhbmdlIG9yZGVyCgoyMDEyLTEwLTEwIDE2OjQzOjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvaGlnaGxldmVsLXBsYXliYWNrLnhtbDoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtYW51YWw6IHRhbGsgYWJvdXQgcGxheXNpbmsKCSAgVGFsayBhYm91dCBwbGF5c2luayBhbmQgZ2l2ZSBhbiBleGFtcGxlIG9mIGl0cyB1c2FnZS4KCjIwMTItMTAtMTAgMTQ6MTE6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9kYXRhdXJpc3JjLmM6CgkgIHJlcGxhY2Ugc29tZSBwbGF5YmluMiAtPiBwbGF5YmluCgoyMDEyLTEwLTEwIDEzOjA4OjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvaGlnaGxldmVsLXBsYXliYWNrLnhtbDoKCSogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtYW51YWw6IGFkZCBzb21ldGhpbmcgYWJvdXQgdXJpZGVjb2RlYmluCgoyMDEyLTEwLTEwIDExOjM1OjAxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGVuc3VyZSBhbGwgdGltZXN0YW1wcyBhcmUgaW4gc2FtZSB0aW1lIGRvbWFpbgoJICAuLi4gYnkgbm90IG9ubHkgcHJvY2Vzc2luZyBpbmNvbWluZyBidWZmZXJzIHRocm91Z2ggYSBjbGlwIGZ1bmN0aW9uLAoJICBidXQgYWxzbyBvdGhlciB0aW1lc3RhbXBzIHN1Y2ggYXMgdGhvc2UgY29taW5nIGZyb20gR0FQIGV2ZW50LgoKMjAxMi0xMC0xMCAxMDozNjozMiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgZG9jczogYWRqdXN0IHNvbWUgcGFyYW1ldGVyIG1pc21hdGNoZXMKCjIwMTItMTAtMTAgMTE6MzQ6MjcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IERvd25ncmFkZSBHU1RfV0FSTklORyB0byBHU1RfSU5GTwoJICBJdCdzIHVzdWFsbHkgbm90IGEgcHJvYmxlbSBpZiBhIHF1ZXJ5IGZhaWxzIGlmIHRoZXJlJ3Mgbm8gcGVlciwKCSAgZXNwZWNpYWxseSBhcyBpdCB3aWxsIGhhcHBlbiBkdXJpbmcgcGFkIGxpbmtpbmcgKGNhcHMgcXVlcnkpCgkgIHF1aXRlIG9mdGVuIGFuZCBzcGFtcyB0aGUgbG9ncy4KCjIwMTItMTAtMDkgMTc6MDY6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtYW51YWw6IHJlbW92ZSBvdXRkYXRlZCBhdXRvcGx1Z2dpbmcgc2VjdGlvbgoJICBSZW1vdmUgYXV0b3BsdWdnaW5nIGNoYXB0ZXIgYW5kIHBvaW50IHRvIGRlY29kZWJpbi9wbGF5YmluIGV4YW1wbGVzLgoKMjAxMi0xMC0wOSAxNjoxMjowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXRocmVhZHMueG1sOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtYW51YWw6IFRhbGsgYWJvdXQgdGhyZWFkaW5nCgkgIFJld29yayB0aGUgdGhyZWFkaW5nIGNoYXB0ZXIuCgkgIFRhbGsgYWJvdXQgc3RyZWFtLXN0YXR1cyBhbmQgZ2l2ZSBzb21lIGV4YW1wbGVzIG9uIGhvdyB0byBjaGFuZ2UKCSAgdGhlIHRocmVhZCBwcmlvcml0aWVzLgoKMjAxMi0xMC0wOSAxNTo1NzoyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtLXN0YXR1cy50eHQ6CgkgIGRlc2lnbjogaW1wcm92ZSBzdHJlYW0tc3RhdHVzIGRvY3VtZW50CgoyMDEyLTEwLTA5IDE1OjMxOjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHJldHJpZXZlIHRoZSByZXN1bHQgZnJvbSBzdGFydF9jb21wbGV0ZQoJICBnc3RfYmFzZV9zcmNfc3RhcnRfY29tcGxldGUoKSBjYW4gZmFpbCB3aGVuIHRoZSB0aHJlYWQgY291bGQgbm90IGJlCgkgIHN0YXJ0ZWQsIGZvciBleGFtcGxlLiBNYWtlIHN1cmUgaXQgY2F1c2VzIHRoZSBzdGF0ZSBjaGFuZ2UgdG8gZmFpbCBieQoJICByZXRyaWV2aW5nIHRoZSByZXN1bHQgZnJvbSBfc3RhcnRfY29tcGxldGUoKS4KCjIwMTItMTAtMDkgMTU6MzE6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaW1wcm92ZSBkZWJ1ZwoKMjAxMi0xMC0wOSAxMDoyNDozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBzbWFsbCBkb2NzIGZpeGVzIGFuZCByZW1vdmUgYSAwLjExIGZpeG1lCgoyMDEyLTEwLTA4IDE2OjQyOjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1idWZmZXJpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJICBtYW51YWw6IHRhbGsgYSBiaXQgYWJvdXQgYnVmZmVyaW5nCgoyMDEyLTEwLTA4IDEzOjIyOjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtY2xvY2tzLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtY2xvY2sueG1sOgoJICBkb2NzOiBpbXByb3ZlIGNsb2NrIGNoYXB0ZXIKCjIwMTItMTAtMDggMTA6Mzk6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtYW51YWw6IGFkZCBleGFtcGxlIGZvciBlZmZlY3Qgc3dpdGNoaW5nCgoyMDEyLTEwLTA4IDA5OjExOjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1wcmVyb2xsLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zcGFyc2VzdHJlYW1zLnR4dDoKCSAgZG9jczogc21hbGwgdXBkYXRlcwoKMjAxMi0xMC0wNyAxNjo0ODoyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgQmFjayB0byBkZXZlbG9wbWVudCAoYnVnLWZpeGluZykKCj09PSByZWxlYXNlIDEuMC4xID09PQoKMjAxMi0xMC0wNyAxMzoxMDozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuMC4xCgoyMDEyLTEwLTA3IDAwOjE1OjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2kzODYuaDoKCSAgdGVzdHM6IHVwZGF0ZSBzdHJ1Y3RfaTM4Ni5oIGZvciBBQkkgY2hlY2tzCgkgIEZpeGVzIG1ha2UgY2hlY2sgb24gMzItYml0IHg4Ni4KCjIwMTItMTAtMDYgMTc6MjY6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzMyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3BwYzMyLmg6CgkgIHRlc3RzOiB1cGRhdGUgc3RydWN0X3BwYzMyLmggZm9yIEFCSSBjaGVja3MKCSAgRml4ZXMgbWFrZSBjaGVjayBvbiAzMi1iaXQgUG93ZXJQQy4KCjIwMTItMTAtMDYgMTQ6NTU6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDZjMGI1MmMgdG8gNmJiNjk1MQoKMjAxMi0xMC0wNiAxMjowODozNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC8uZ2l0aWdub3JlOgoJICBleGFtcGxlczogLmdpdGlnbm9yZSBtb3JlIGJpbmFyaWVzIGZyb20gdGhlIG1hbnVhbAoKMjAxMi0xMC0wNSAxNjowNDo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1wcm9iZXMudHh0OgoJICBkb2NzOiByZW1vdmUgb2Jzb2xldGUgcGFydC1ibG9jayBkb2N1bWVudAoJICBNZXJnZSB0aGUgcGFydC1ibG9jayBkb2N1bWVudCBpbnRvIHBhcnQtcHJvYmVzCgoyMDEyLTEwLTA1IDA5OjQyOjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHJlc2VuZCBkcm9wcGVkIGV2ZW50cwoJICBJZiB3ZSB0cnkgdG8gcHVzaCBzdGlja3kgZXZlbnRzIGJ1dCBhIHByb2JlIGRyb3BwZWQgdGhlbSwgd2UgZG9uJ3QgbWFyawoJICB0aGUgZXZlbnQgYXMgcmVjZWl2ZWQgYW5kIG1hcmsgdGhlIHBhZCBhcyBQRU5ESU5HX0VWRU5UUy4gVGhpcyBlbnN1cmVzCgkgIHRoYXQgd2UgcmVzZW5kIHRoZSBldmVudCB0aGUgbmV4dCB0aW1lLiBGb3IgdGhpcyB3ZSBuZWVkIHRvIGxldCB0aGUKCSAgY3VzdG9tIGZsb3cgcmV0dXJuIGZyb20gdGhlIHByb2JlIHRyaWNrbGUgdXAgdG8KCSAgZ3N0X3BhZF9wdXNoX2V2ZW50X3VuY2hlY2tlZCgpIHNvIHRoYXQgd2UgY2FuIGRpZmZlcmVudGlhdGUgYmV0d2VlbgoJICBPSyBhbmQgRFJPUFBFRCBwcm9iZSByZXR1cm5zLgoKMjAxMi0xMC0wNSAwNzoxNDoxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBzdG9yZSBzdGlja3kgZXZlbnRzIG9uIGZsdXNoaW5nL0VPUyBwYWRzCgkgIERvbid0IHN0b3JlIHN0aWNreSBldmVudHMgb24gZmx1c2hpbmcgb3IgRU9TIHBhZHMuIFRoaXMgd2FzIGRvbmUKCSAgY29ycmVjdGx5IGZvciBzb3VyY2UgcGFkcyBidXQgbm90IGZvciBzaW5rIHBhZHMuCgoyMDEyLTEwLTA0IDExOjI0OjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGRvY3M6IGFkZCBTaW5jZSBtYXJrZXJzIGZvciBuZXcgQVBJIGFuZCBhZGQgaXQgdG8gZG9jcyBhbmQgLmRlZiBmaWxlCgoyMDEyLTEwLTA0IDExOjUwOjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgbWFudWFsOiBhZGQgZHluYW1pYyBjYXBzZmlsdGVyIGV4YW1wbGUKCjIwMTItMTAtMDQgMTE6MTg6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogZG9uJ3QgcHJlZmVyIHBhc3N0aHJvdWdoCgkgIEJhc2V0cmFuc2Zvcm0gc2hvdWxkIG5vdCB0cnkgdG8gbmVnb3RpYXRlIGluIHBhc3N0aHJvdWdoIG1vZGUgYnV0CgkgIHJlc3BlY3QgdGhlIG9yZGVyIG9mIHdoYXQgd2UgcmV0dXJuIGluIHRoZSB0cmFuc2Zvcm1fY2FwcyBtZXRob2QuCgkgIEEgdHlwaWNhbCBjYXNlIGlzIHRoYXQgeW91IHNwZWNpZnkgc29tZSBzcGVjaWZpYyBuZXcgY2FwcyBpbiB0aGUKCSAgY2FwcyBwcm9wZXJ0eSBidXQgYWxzbyBhbGxvdyB0aGUgY3VycmVudCBjYXBzIHRvIHBhc3MuCgoyMDEyLTEwLTA0IDExOjE1OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnM6IGFkZCBhbiBvcHRpb24gdG8gcHJlZmVyIHBhc3N0aHJvdWdoCgkgIEJhc2V0cmFuc2Zvcm0gYXR0ZW1wdHMgdG8gZG8gcGFzc3Rocm91Z2ggbW9kZSByZWdhcmRsZXNzIG9mIHRoZSBvcmRlciBvZgoJICB0aGUgdHJhbnNmb3JtX2NhcHMgbWV0aG9kLiBBZGQgYSBtZXRob2QgdG8gZGlzYWJsZSB0aGlzLgoJICBUaGlzIGlzIG5lZWRlZCBmb3IgZWxlbWVudHMgbGlrZSBjYXBzZmlsdGVyIHRoYXQgd2FudCB0byB0cmFuc2Zvcm0gY2FwcwoJICBiYXNlZCBvbiB0aGUgb3JkZXIgb2YgdGhlIGNhcHMgcHJvcGVydHkuCgoyMDEyLTEwLTA0IDEwOjAxOjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuczogaW1wcm92ZSBzb21lIGNvbW1lbnRzCgoyMDEyLTEwLTAzIDE3OjE3OjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogdGFsayBzb21lIG1vcmUgYWJvdXQgZHluYW1pYyBwaXBlbGluZXMKCjIwMTItMTAtMDMgMTM6NDk6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJICBtZXRhOiBkb24ndCBwdXQgZXNzZW50aWFsIGxvZ2ljIGluIGdfcmV0dXJuX3ZhbF8qCgoyMDEyLTEwLTAzIDEzOjQ1OjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtYWxsb2NhdGlvbi54bWw6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJICBtZXRhOiBkbyBtZXRhZGF0YSByZWdpc3RyYXRpb24gdGhyZWFkc2FmZQoJICBXZSBuZWVkIHRvIHVzZSBnX29uY2UgdG8gcmVnaXN0ZXIgdGhlIG1ldGFkYXRhIGltcGxlbWVudGF0aW9ucwoJICBvbmx5IG9uY2UuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg1MzMyCgoyMDEyLTEwLTAzIDEzOjM1OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuYzoKCSAgbWV0YTogaGFuZGxlIG11bHRpcGxlIGltcGxlbWVudGF0aW9uIHJlZ2lzdHJhdGlvbgoJICBGaXJzdCBjaGVjayB0aGF0IHdlIGNhbiBhY3R1YWxseSByZWdpc3RlciB0aGUgaW1wbGVtZW50YXRpb24gYmVmb3JlCgkgIG1ha2luZyBhIEdzdE1ldGFJbmZvLiBJZiB3ZSBjYW4ndCByZWdpc3RlciB3ZSB3b3VsZCBvdGhlcndpc2UgZW5kCgkgIHVwIHdpdGggYW4gdW5kZWZpbmVkIHR5cGUgYW5kIGFuIGludmFsaWQgR3N0TWV0YUluZm8uCgkgIEl0J3MgcG9zc2libGUgdGhhdCB0eXBlIHJlZ2lzdHJhdGlvbiBmYWlscyBiZWNhdXNlIGFub3RoZXIgbWV0YWRhdGEKCSAgd2l0aCB0aGUgc2FtZSBpbXBsZW1lbnRhdGlvbiBuYW1lIHdhcyBhbHJlYWR5IHJlZ2lzdGVyZWQuCgoyMDEyLTEwLTAzIDEzOjEyOjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogdXNlIENEQVRBIGZvciBjb2RlIGJsb2NrcwoJICB0aGVuIHdlIGRvbid0IGhhdmUgdG8gZXNjYXBlIHNwZWNpYWwgdG9rZW4gYW55bW9yZS4KCjIwMTItMTAtMDMgMTM6MDk6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtYW51YWw6IGFkZCBwYXJ0aWFsIHByZXJvbGwgZXhhbXBsZSB3aXRoIHByb2JlcwoKMjAxMi0xMC0wMyAxMDo1MzoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IGFkZCBtb3JlIHN0dWZmIGFib3V0IHByb2JlcwoKMjAxMi0xMC0wMiAxNzoyMzoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IHN0YXJ0IHRhbGtpbmcgYWJvdXQgZHluYW1pYyBwaXBlbGluZSBjaGFuZ2VzCgoyMDEyLTEwLTAyIDE2OjQ3OjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogbW92ZSBzZWN0aW9uIGFyb3VuZAoKMjAxMi0xMC0wMiAxNjo0NDoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIHB3ZzogYWRkIGFwcHNpbmsgZG9jcwoKMjAxMi0xMC0wMiAxNjoxNToxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIHB3ZzogcmV3aXRlIGRhdGEtYWNjZXNzIGNoYXB0ZXIKCSAgUmV3cml0ZSB0aGUgZGF0YS1hY2Nlc3MgY2hhcHRlciBzbyB0aGF0IHdlIHRhbGsgYWJvdXQgYXBwc3JjIGluc3RlYWQKCSAgb2YgdGhlIGZha2VzcmMgaGFja3MuCgoyMDEyLTEwLTAyIDEzOjIyOjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtbWV0YWRhdGEueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogcG8vUkVBRE1FOgoJKiB0b29scy9nc3QtcGxvdC10aW1lbGluZS5weToKCSAgZG9jczogc29tZSAwLjEwIC0+IDEuMCBjaGFuZ2VzCgoyMDEyLTEwLTAyIDEzOjEyOjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtYWxsb2NhdGlvbi54bWw6CgkgIHB3ZzogYWRkIGFsbG9jYXRpb24gcXVlcnkgZXhhbXBsZQoKMjAxMi0xMC0wMiAxMjo0OToxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWFsbG9jYXRpb24ueG1sOgoJICBwd2c6IGFkZCBidWZmZXJwb29sIGRvY3MKCjIwMTItMTAtMDIgMTE6MzQ6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1wcm9ncmFtcy54bWw6CgkqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWFsbG9jYXRpb24ueG1sOgoJICBwd2c6IGZsZXNoIG91dCBhbGxvY2F0aW9uIGRvY3MKCSAgQWRkIG1vcmUgZXhhbXBsZXMuCgkgIEFkZCBleGFtcGxlIGZvciBpbXBsZW1lbnRpbmcgbmV3IG1ldGFkYXRhLgoJICBBZGQgcHJvZ3JhbXMgdG8gdGhlIGRvY3MgKGFnYWluPyksIGl0IHNlZW1zIHRvIGNvbnRhaW4gdXNlZnVsIGluZm8uCgoyMDEyLTEwLTAxIDE2OjU5OjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvdGl0bGVwYWdlLnhtbDoKCSAgcHdnOiBhZGQgbmV3IGF1dGhvcgoKMjAxMi0xMC0wMSAxNjo1NTo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWFsbG9jYXRpb24ueG1sOgoJICBwd2c6IGFkZCBhbGxvY2F0aW9uIGRvY3MKCjIwMTItMTAtMDEgMTY6NDY6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlci50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVycG9vbC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWV0YS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBkZXNpZ24gZG9jcwoKMjAxMi0xMC0wMSAxMzoyODo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVycG9vbC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWVtb3J5LnR4dDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtYWxsb2NhdGlvbi54bWw6CgkqIGRvY3MvcHdnL3B3Zy54bWw6CgkgIGRvY3M6IG1vcmUgZG9jcyBmaXhlcwoJICBGaXggYWxsb2NhdG9yIGRlc2lnbiBkb2MKCSAgQWRkIGJlZ2lubmluZyBvZiBhbGxvY2F0aW9uIGNoYXB0ZXIgaW4gdGhlIHB3ZwoKMjAxMi0xMC0wMSAxMTo0Nzo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJKiBkb2NzL3B3Zy9vdGhlci1tYW5hZ2VyLnhtbDoKCSogZG9jcy9wd2cvb3RoZXItbnRvb25lLnhtbDoKCSAgcHdnOiBmaW5hbCBjbGVhbnVwcyBmb3IgMS4wCgoyMDEyLTEwLTAxIDExOjI0OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtZXZlbnRzLnhtbDoKCSogZG9jcy9wd2cvb3RoZXItYmFzZS54bWw6CgkgIHB3ZzogZml4IGV2ZW50cyBhbmQgYmFzZSBjbGFzc2VzCgoyMDEyLTEwLTAxIDEwOjQwOjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdGFnZ2luZy54bWw6CgkgIHB3ZzogZml4dXAgdGFnIGRvY3MKCjIwMTItMTAtMDEgMDk6NDg6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1pbnRlcmZhY2VzLnhtbDoKCSAgcHdnOiBwYXRjaCB1cCB0aGUgc2VjdGlvbiBhYm91dCBpbnRlcmZhY2VzCgoyMDEyLTA5LTMwIDA0OjA1OjM2ICsxMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogRml4IHNlYW1sZXNzIHNlZ21lbnQgZnVuY3Rpb24KCSAgVGhlIDNyZCBwYXJhbWV0ZXIgb2YgZ3N0X2Jhc2Vfc3JjX25ld19zZWFtbGVzc19zZWdtZW50IGluCgkgIDAuMTAgaXMgdGhlIHRpbWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBzdGFydCBvZiB0aGUgbmV3IHNlZ21lbnQsCgkgIG5vdCB0aGUgcG9zaXRpb24gaW4gdGhlIG5ldyBzZWdtZW50LiBGaXggdGhlIG5hbWUgb2YgdGhlIHBhcmFtZXRlciwKCSAgdGhlIGRvY3MsIGFuZCB0aGUgaW1wbGVtZW50YXRpb24gdG8gbWF0Y2ggdGhlIG5lZWRzIG9mIHRoZSBvbmx5CgkgIGV4dGFudCBjb25zdW1lcjogRFZEIHBsYXliYWNrLgoKMjAxMi0wOS0yOSAxNDozNTo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgdmFsdWU6IGF2b2lkIGR1cGxpY2F0ZXMgd2hlbiBpbnRlcnNlY3RpbmcgbGlzdHMKCSAgRml4ZXMgbmVnb3RpYXRpb24gdGFraW5nIGEgcmlkaWN1bG91cyBhbW91bnQgb2YKCSAgdGltZSAobXVsdGlwbGUgMTBzIG9mIHNlY29uZHMgb24gYSBjb3JlMikgd2hlbgoJICB0aGVyZSBhcmUgZHVwbGljYXRlIGVudHJpZXMgaW4gbGlzdHMuCgkgIENvdWxkIGhhdmUgYSBuZWdhdGl2ZSBwZXJmb3JtYW5jZSBpbXBhY3Qgb24gb3RoZXIKCSAgc2NlbmFyaW9zIGJlY2F1c2Ugd2Ugbm93IGhhdmUgdG8gaXRlcmF0ZSB0aGUKCSAgZGVzdCBsaXN0IHRvIGF2b2lkIGR1cGxpY2F0ZXMsIGJ1dCB3ZSBkb24ndAoJICBoYXZlIGEgbG90IG9mIGxpc3RzIGFueSBtb3JlIHRoZXNlIGRheXMsIGFuZAoJICB0aGV5IHRlbmQgdG8gYmUgc21hbGwgYW55d2F5LiBUaGUgbmVnYXRpdmVzCgkgIGFyZSBob3BlZnVsbHkgY291bnRlcmVkIGJ5IHRoZSBwb3NpdGl2ZSBlZmZlY3RzCgkgIG9mIHJlZHVjaW5nIHRoZSBsaXN0IGxlbmd0aCBlYXJseSBvbiBpbiB0aGUKCSAgcHJvY2Vzcy4gQW5kIGluIGFueSBjYXNlLCBpdCdzIHRoZSByaWdodCB0aGluZwoJICB0byBkby4KCSAgQmFzZWQgb24gcGF0Y2ggYnkgQW5kcmUgTW9yZWlyYSBNYWdhbGhhZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQ5ODEKCjIwMTItMDktMjkgMDA6Mjc6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICBwd2c6IG1pbm9yIHVwZGF0ZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIxMTIxCgoyMDEyLTA5LTI4IDIzOjUzOjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZGVwZW5kZW5jaWVzLnhtbDoKCSAgZmFxOiBhZGQgbWlzc2luZyA8L3BhcmE+IHRhZwoKMjAxMi0wOS0yOCAxNToxNzoyNyAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWluaW9iamVjdDogQWx3YXlzIHJlamVjdCBXUklURSBsb2NrcyBvbiBSRUFET05MWSBtaW5pb2JqZWN0cwoJICBWZXJpZnkgdGhhdCBtYXBwaW5nIGEgcmVhZC1vbmx5IG1lbW9yeSBhcyByZWFkIGRvZXNudCBtYWtlIGl0IHdyaXRhYmxlCgoyMDEyLTA5LTI4IDIwOjM4OjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9mYXEvZGVwZW5kZW5jaWVzLnhtbDoKCSogZG9jcy9yYW5kb20vYXV0b3Rvb2xzOgoJKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSAgZG9jczogcHVyZ2UgYWxsIG1lbnRpb24gb2YgbGlib2lsLCB1cGRhdGUgRkFRCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzMyODUKCjIwMTItMDktMjggMTY6MDM6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1jbG9jay54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1pbnRlcmZhY2VzLnhtbDoKCSAgcHdnOiB1cGRhdGUgZm9yIDEuMAoJICBSZXdyaXRlIGNsb2NrIHBhcnQuCgkgIHN0YXJ0IG9uIGludGVyZmFjZXMKCjIwMTItMDktMjggMTM6MjU6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1yZXF1ZXN0LnhtbDoKCSAgcHdnOiByZXdvcmsgZHluYW1pYyBwYWRzIGRvY3MKCjIwMTItMDktMjggMTM6MjU6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1zY2hlZHVsaW5nLnhtbDoKCSAgcHdnOiByZXdvcmsgc2NoZWR1bGluZyBkb2NzCgoyMDEyLTA5LTI4IDEzOjI0OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctcHJvcHMueG1sOgoJKiBkb2NzL3B3Zy9vdGhlci1iYXNlLnhtbDoKCSAgcHdnOiByZW1vdmUgc29tZSBHU1RfQk9JTEVSUExBVEUKCjIwMTItMDktMjggMTE6MTg6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWFjdGl2YXRpb24udHh0OgoJICBkb2NzOiB1cGRhdGUgYWN0aXZhdGlvbiBkZXNpZ24gZG9jcwoKMjAxMi0wOS0yOCAxMDo0MTo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGZpeCBhY3RpdmF0ZSBkb2NzCgoyMDEyLTA5LTI4IDEwOjA0OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJICBwd2c6IGZpeCBtb3JlIG5lZ290aWF0aW9uIGZvciAxLjAKCjIwMTItMDktMjcgMTY6NTk6MDQgKzAyMDAgIE9saXZpZXIgQmxpbiA8b2xpdmllci5ibGluQHNvZnRhdGhvbWUuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogZG8gbm90IHJlZ2lzdGVyIHByaW50ZiBleHRlbnNpb24gZm9yICVwCgkgIFRoaXMgaGFwcGVuZWQgd2hlbiBnbGliIHdhcyBub3QgdXNpbmcgc3lzdGVtIHByaW50ZiwgYW5kIGNhdXNlZCB0aGUKCSAgaW50ZXJuYWwgZ3N0cmVhbWVyIHByaW50ZiBleHRlbnNpb25zIHRvIGJlIHVzZWQgZm9yIGFsbCAlcCBwcmludGZzLAoJICBjYXVzaW5nIGNyYXNoZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQ5NzAKCjIwMTItMDktMjcgMTc6MjE6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkgIHB3ZzogZml4IHNvbWUgbmVnb3RpYXRpb24gdG8gMS4wCgoyMDEyLTA5LTI3IDE0OjQyOjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctcHJvcHMueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1zdGF0ZS54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLXRlc3RhcHAueG1sOgoJICBwd2c6IG1vcmUgdXBkYXRlcyBmb3IgMS4wCgoyMDEyLTA5LTI3IDEzOjU3OjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctY2hhaW5mbi54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLWV2ZW50Zm4ueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1wYWRzLnhtbDoKCSogZG9jcy9wd2cvcHdnLnhtbDoKCSAgcHdnOiBtb3JlIHVwZGF0ZXMgZm9yIDEuMAoKMjAxMi0wOS0yNyAxMTo1MzozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgIHB3ZzogdXBkYXRlIGJvaWxlciB0byAxLjAKCjIwMTItMDktMjcgMTE6MDY6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IGFsc28gcmVmIHRoZSBpbnRlcm5hbCBwYWQgZm9yIGFjdGl2YXRlIGZ1bmN0aW9ucwoJICBBbHNvIHRha2UgYSByZWYgdG8gdGhlIGludGVybmFsIHBhZCBpbiB0aGUgYWN0aXZhdGUgZnVuY3Rpb25zCgoyMDEyLTA5LTI0IDE4OjI2OjE2IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIHByb3h5cGFkOiBIb2xkIGEgcmVmZXJlbmNlIHRvIHRoZSBpbnRlcm5hbCBwYWQgd2hpbGUgcHVzaGluZyB0aHJvdWdoIGl0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQ4MDkKCjIwMTItMDktMjUgMTQ6NDQ6NTQgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgdGVzdHM6IFRlc3QgdGhlIGNhc2Ugd2hlcmUgZ2hvc3QgcGFkcyBhcmUgcmVtb3ZlZCB3aGlsZSBzdHJlYW1pbmcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDgwOQoKMjAxMi0wOS0yNyAwOTo0NDowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfYXJtLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2hwcGEuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9wcGMzMi5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9wcGM2NC5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9zcGFyYy5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF94ODZfNjQuaDoKCSAgdGVzdHM6IGVuYWJsZSBsaWJyYXJ5IGFiaSBjaGVja3MKCjIwMTItMDktMjYgMjM6MzI6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBkb2NzOiBmaXggdXAgYmFzZXNyYy9iYXNlc2luayBkb2NzIGZvcm1hdHRpbmcKCjIwMTItMDktMjYgMTc6MDg6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9hcm0uaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9ocHBhLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzMyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjNjQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9zcGFyYy5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJICB0ZXN0czogYWRkIGFiaSBjaGVja3MKCSAgRW5hYmxlIGFiaSBjaGVja3MgYWdhaW4uCgkgIEZpeCBhYmkgc2l6ZXMgZm9yIHg4Nl82NCwgY29weSB0aGUgZmlsZSB0byBvdGhlciBhcmNocy4KCjIwMTItMDktMjYgMTY6MjY6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICB1cGRhdGUgZG9jcyBmb3IgMS4wIEFQSQoKMjAxMi0wOS0yNiAxNDoxNTowMSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHVyaTogdXNlIHByb3BlciAndHJhbnNmZXIgZmxvYXRpbmcnIGFubm90YXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NDA5OQoKMjAxMi0wOS0yNiAxMzoxOToxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIHR5cGVmaW5kOiBzZW5kIFNUUkVBTS1TVEFSVCBldmVudAoJICBTZW5kIGEgU1RSRUFNX1NUQVJUIGV2ZW50IHdoZW4gd2UgYXJlIG9wZXJhdGluZyBpbiBwdWxsIG1vZGUuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQ0MjQKCjIwMTItMDktMjYgMTA6NTU6MjggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgc2VnbWVudDogbWFyayBHc3RTZWdtZW50RmxhZ3MgYXMgZmxhZ3MgcmF0aGVyIHRoYW4gZW51bQoJICAuLi4gd2hpY2ggcmVhbGx5IG1ha2VzIGEgZGlmZmVyZW5jZSB3aGVuIHRyeWluZyB0byBzZXJpYWxpemUKCSAgYSBmbGFncyB2YWx1ZSB3aGljaCBpcyBhIGNvbWJpbmF0aW9uIG9mIGZsYWdzLCB3aGljaCBpcyBoYXJkCgkgIHRvIGRvIGFzIGFuIGVudW0gdHlwZS4KCjIwMTItMDktMjYgMTA6NTQ6MDYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogcmV0aW1lc3RhbXAgYm90aCBwdHMgYW5kIGR0cyB3aGVuIGRvaW5nIHNvCgoyMDEyLTA5LTI2IDE1OjAxOjQyICsxMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IE1vdmUgc29tZSBydW4gb2YgdGhlIG1pbGwgZGVidWcgc3RhdGVtZW50cyB0byBMT0cgbGV2ZWwKCjIwMTItMDktMjYgMTQ6MjM6NTIgKzEwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogT3V0cHV0IHRpbWVzdGFtcHMgYWZ0ZXIgYSBzZWVrLgoJICBSZWluaXRpYWxpc2UgdGhlIERUUyBhZnRlciBhIHNlZWsgc28gYXMgdG8gY29udGludWUKCSAgZ2VuZXJhdGluZyB0aW1lc3RhbXBzIHdoZW4gYmFzZXBhcnNlIGlzIG5vdCBkb3duc3RyZWFtCgkgIG9mIGEgZGVtdXhlci4KCSAgRml4ZXM6ICM2ODQ1MzgKCjIwMTItMDktMjUgMTc6MDY6NDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1wcm9ncmFtcy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1wYWRzLnhtbDoKCSogZG9jcy9wd2cvb3RoZXItbnRvb25lLnhtbDoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJKiB0b29scy9nc3QtdHlwZWZpbmQuMS5pbjoKCSAgZG9jczogdXBkYXRlcwoJICBNSU1FLXR5cGUgLT4gTWVkaWEgdHlwZQoJICBGaXggc29tZSBvbGQgZ3N0LWluc3BlY3Qgb3V0cHV0CgoyMDEyLTA5LTI1IDE2OjUzOjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvaW50cm8tYmFzaWNzLnhtbDoKCSogZG9jcy9wd2cvaW50cm8tcHJlZmFjZS54bWw6CgkgIHB3ZzogdXBkYXRlIGZvciAxLjAgQVBJCgoyMDEyLTA5LTI1IDE1OjExOjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogYWRkIHNlY3Rpb24gZm9yIG1ldGFkYXRhCgoyMDEyLTA5LTI1IDEzOjA5OjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogRmFpbCBpZiBubyB2YWxpZCBlbGVtZW50IGZhY3RvcnkgbWV0YWRhdGEgaXMgc2V0CgoyMDEyLTA5LTI1IDEzOjA5OjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiBGYWlsIGlmIG5vIHZhbGlkIHBsdWdpbiBtZXRhZGF0YSBpcyBzZXQKCjIwMTItMDktMjUgMTU6MDY6NDMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogYWxzbyB0cmFjayBhbmQgc3RvcmUgc2VnbWVudCBpbmZvIGluIHNpbmdsZSBzZWdtZW50IG1vZGUKCjIwMTItMDktMjUgMTQ6NDA6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXRocmVhZHMueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1jaGVja2xpc3QueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtYmlucy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZGF0YS54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOgoJKiBkb2NzL21hbnVhbC9pbnRyby1iYXNpY3MueG1sOgoJKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgbWFudWFsOiBmaXggdXAgdGhlIG1hbnVhbAoJICBNSU1FLXR5cGUgLT4gbWVkaWEgdHlwZXMKCSAgRml4IHVwIHRoZSBtYW51YWwgaW4gdmFyaW91cyBwbGFjZXMgd2l0aCB0aGUgMS4wIHdheSBvZiBkb2luZyB0aGluZ3MKCSAgc3VjaCBhcyBwcm9iZXMsIHN0YXRpYyBlbGVtZW50cywgc2NoZWR1bGluZywgLi4uCgkgIEFkZCBwb3J0aW5nIGZyb20gMC4xMCB0byAxLjAgY2hhcHRlci4KCSAgQWRkIHByb2JlIGV4YW1wbGUgdG8gYnVpbGQuCgkgIFJlbW92ZSBzb21lIGRvY3MgZm9yIHJlbW92ZSBjb21wb25lbnRzIHN1Y2ggYXMgR3N0TWl4ZXIgYW5kCgkgIEdzdFByb3BlcnR5UHJvYmUsIFhNTC4uLgoKMjAxMi0wOS0yNCAxNjo1MDo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2ludHJvLWdzdHJlYW1lci54bWw6CgkgIGRvY3M6IGdzdC1weXRob24gaXMgbm8gbW9yZQoJICBnc3QtcHl0aG9uIGlzIG5vIG1vcmUgYW5kIGdzdC1saWJhdiBpcyBvbmUgb2YgdGhlIG1haW4gbW9kdWxlcyB0aGF0CgkgIHdlIHJlbGVhc2UuCgoyMDEyLTA5LTI0IDE2OjMxOjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBkb2NzOiBmaXggYmFzZXNpbmsgZG9jcwoKMjAxMi0wOS0yNCAxNjoyNTozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2dldHRpbmcueG1sOgoJKiBkb2NzL2ZhcS90cm91Ymxlc2hvb3RpbmcueG1sOgoJKiBkb2NzL2ZhcS91c2luZy54bWw6CgkgIGRvY3M6IHVwZGF0ZSBGQVEKCSAgQ2hhbmdlIHZlcnNpb25zLgoJICBVc2UgdG9vbHMgd2l0aCB2ZXJzaW9uIHByZWZpeC4KCjIwMTItMDktMjUgMTM6MTU6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucyBmb3IgdHlwbyBmaXgKCjIwMTItMDktMjUgMTM6MTQ6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogZml4IHR5cG8gaW4gdHJhbnNsYXRlZCBzdHJpbmcKCSAgU3BvdHRlZCBieSBDaHJpcyBMZW9uYXJkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0NzU1CgoyMDEyLTA5LTI1IDA5OjI3OjU5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgIHBsdWdpbmZlYXR1cmU6IFJlbW92ZSAwLjExLjlYLT4xLjAuMCB2ZXJzaW9uIG1hbmdsaW5nCgoyMDEyLTA5LTI1IDAxOjAyOjAzICswMTAwICBKb3NlcCBUb3JyYSBWYWxsZXMgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogdGVzdHMvYmVuY2htYXJrcy9jb21wbGV4aXR5LmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9sbHN0cmVzcy5jOgoJICBiZW5jaG1hcmtzOiBwcmludGYgZm9ybWF0IGZpeGVzIHRvIG1ha2UgaW50ZWwgY29tcGlsZXIgaGFwcHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTU1MjY1NwoKMjAxMi0wOS0yNSAwMDo1NTo1OSArMDEwMCAgSm9zZXAgVG9ycmEgVmFsbGVzIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogdG9vbHMvdG9vbHMuaDoKCSAgTWFrZSBpbnRlbCBjb21waWxlciBoYXBwaWVyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01NTI2NTcKCjIwMTItMDktMjQgMTY6MzE6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBCYWNrIHRvIGRldmVsb3BtZW50IChidWcgZml4aW5nKQoKPT09IHJlbGVhc2UgMS4wLjAgPT09CgoyMDEyLTA5LTI0IDEyOjE5OjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMS4wLjAKCjIwMTItMDktMjQgMDA6Mzk6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIGRvY3M6IHVwZGF0ZSAwLjExIHJlZmVyZW5jZXMgaW4gcG9ydGluZyBndWlkZQoKMjAxMi0wOS0yNCAwMDozNzoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgZG9jczogcmVuYW1lIHBvcnRpbmctdG8tMC4xMS50eHQgdG8gcG9ydGluZy10by0xLjAudHh0CgoyMDEyLTA5LTIzIDE5OjU2OjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IGZpeCBGSVhNRSBwcmludGluZyBmb3IgdGNhc2Vfc2tpcF9icm9rZW5fdGVzdCgpCgoyMDEyLTA5LTIzIDE3OjMwOjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgZG9jczogdXBkYXRlIHJlbGVhc2UgZG9jCgkgIENyZWF0ZSB0YWdzIGZvciByZWxlYXNlcyB3aXRob3V0IHRoZSB1Z2x5IFJFTEVBU0UtIHByZWZpeC4KCjIwMTItMDktMjMgMTI6NDI6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBkb24ndCBmb3J3YXJkIHJhbmRvbSBzdHJlYW0tc3RhcnQgZXZlbnQKCSAgSXQncyBub3QgcmlnaHQsIGFuZCB3ZSBkb24ndCBrbm93IHdoYXQgZXh0cmEgcHJvcGVydGllcwoJICB0aGF0IGV2ZW50IG1pZ2h0IGhhdmUgc2V0IGluIGZ1dHVyZSAoZS5nLiBzcGFyc2VuZXNzKS4KCSAgVGhpcyBjaGFuZ2UgbWVhbnMgY29sbGVjdHBhZCB1c2VycyBuZWVkIHRvIGNyZWF0ZSB0aGVpcgoJICBvd24gc3RyZWFtLXN0YXJ0IGV2ZW50IG5vdy4gV2UgY291bGQgYWRkIGEgdXRpbGl0eQoJICBmdW5jdGlvbiB0aGF0IGNyZWF0ZXMgYSBzdHJlYW0tc3RhcnQgZXZlbnQgYmFzZWQgb24KCSAgdGhlIGlucHV0IHN0cmVhbS1zdGFydCBldmVudHMuCgoyMDEyLTA5LTIyIDE2OjA3OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA0Zjk2MmY3IHRvIDZjMGI1MmMKCjIwMTItMDktMjEgMjE6MTM6MjcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkgIG1hbnVhbDogdXBkYXRlIGNvbnRyb2xsZXIgZG9jdW1lbnRhdGlvbgoKMjAxMi0wOS0yMSAyMToxMzoxMyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIG9iamVjdDogdXBkYXRlIGNvbnRyb2xsZXIgZG9jdW1lbnRhdGlvbgoKMjAxMi0wOS0xOCAxNToyMjowMyArMDIwMCAgQmFzdGlhbiBXaW5rbGVyIDxidXpAbmV0YnV6Lm9yZz4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgbWFuOiBGaXggc3ludGF4IGZvciB2YWx1ZSBsaXN0cyBpbiBjYXBzIHN0cmluZ3MKCSAgVmFsdWUgbGlzdHMgdXNlIGN1cmx5IGJyYWNrZXRzIGluc3RlYWQgb2YgcGFyZW50aGVzZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDI5MwoKMjAxMi0wOS0yMCAxNDo0ODoxNyAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFJlbW92ZSBwYWQgcHJvYmVzIG9ubHkgb25jZQoJICBBbHNvIGFkZCB0ZXN0IHRvIG1ha2Ugc3VyZSB0aGF0IGlmIGEgcGFkIHByb2JlIGlzIHJlbW92ZWQgd2hpbGUgaXQncwoJICBjYWxsYmFjayBpcyBydW5uaW5nLCB0aGUgY2xlYW51cF9ob29rIGlzbid0IGNhbGxlZCBhZ2FpbiBpZiBpdAoJICByZXR1cm5zIEdTVF9QQURfUFJPQkVfUkVNT1ZFCgoyMDEyLTA5LTE5IDE1OjAxOjQ2IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwYWQ6IEFkZCBmdW5jdGlvbnMgdG8gc2FmZWx5IGFjY2VzcyBHc3RQcm9iZUluZm8gZGF0YSBwb2ludGVyCgkgIFRoaXMgaXMgc28gdGhhdCBpbnRyb3NwZWN0aW9uIGJhc2VkIGJpbmRpbmdzIGNhbiBhY2Nlc3MgaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQ0MDIKCjIwMTItMDktMTkgMjM6MjU6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtYmlucy54bWw6CgkgIGRvY3M6IHJlbW92ZSByZWZlcmVuY2UgdG8gMC44IEdzdEJpbiBBUEkgZnJvbSBtYW51YWwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDA0OAoKMjAxMi0wOS0xOSAxNToxNDozNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiB0cmFuc2Zvcm0gR0FQIGV2ZW50IGluIHNpbmdsZSBzZWdtZW50IG1vZGUKCjIwMTItMDktMTkgMDk6NDQ6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGRvY3M6IGNvbGxlY3RwYWRzIGRvYyBmaXhlcwoKMjAxMi0wOS0xOCAyMTo0OTo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBjaGVjayBhY3F1aXJlIHJlc3VsdCB2YWx1ZQoJICBDaGVjayB0aGUgcmVzdWx0IHZhbHVlIGZyb20gX2J1ZmZlcl9wb29sX2FjcXVpcmUoKSBhbmQgcmV0dXJuIHRoZQoJICB2YWx1ZSB3aGVuIGFsbG9jYXRpb24gZmFpbGVkLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0Mjg1CgoyMDEyLTA5LTE4IDEyOjE0OjM0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBGaXggcmVmY291bnQgYnVnIGJ5IHVucmVmZmluZyB0aGUgY29ycmVjdCB2YXJpYWJsZQoKPT09IHJlbGVhc2UgMC4xMS45OSA9PT0KCjIwMTItMDktMTcgMTc6NTY6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjExLjk5CgoyMDEyLTA5LTE3IDEzOjM1OjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIHdpbjMyL3ZzMTAvQ29tbW9uLnByb3BzOgoJICBSZW1vdmUgR1NUX1VTRV9VTlNUQUJMRV9BUEkgZ3VhcmQgYW5kIGRlZmluZXMKCjIwMTItMDktMTcgMTM6MDk6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBwYWQ6IEFkZCBwYXJlbnQgcGFyYW1ldGVyIHRvIHRoZSBsaW5rIGFuZCB1bmxpbmsgZnVuY3Rpb25zCgkgIEZpeGVzIHBhcnQgb2YgYnVnICM2ODM5OTUuCgoyMDEyLTA5LTE2IDIzOjIwOjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJICBzYW1wbGU6IGFkZCBzZXJpYWxpc2F0aW9uL2Rlc2VyaWFsaXNhdGlvbiBmdW5jdGlvbnMgZm9yIEdzdFNhbXBsZQoJICBTaW5jZSB0aGVzZSB0aGluZ3MgYXJlIGluc2lkZSB0YWdsaXN0cyBub3csIGl0IHdvdWxkIGJlIGdvb2QgdG8gYmUKCSAgYWJsZSB0byBwcmludCB0aGVtIGFuZCBkZXNlcmlhbGlzZSB0aGVtLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxMzIyCgoyMDEyLTA5LTE1IDIxOjU2OjA3ICswMjAwICBDaHJpc3RpYW4gRnJlZHJpayBLYWxhZ2VyIFNjaGFsbGVyIDx1cmFldXNAbGludXhyaXNpbi5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgU3dpdGNoIHRvIEYxOCBuYW1pbmcgb2YgdGhlIHBhY2thZ2UKCjIwMTItMDktMTUgMTg6NDM6MzkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdXNlIGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhIHRvIHJlcGxhY2Ugb2Jzb2xldGUgQVBJCgoyMDEyLTA5LTE0IDE3OjUyOjE0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLW1ldGFkYXRhLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkgIHJlcGxhY2UgZ3N0X3RhZ19saXN0X2ZyZWUgd2l0aCBnc3RfdGFnX2xpc3RfdW5yZWYKCjIwMTItMDktMTQgMTc6MDg6NDkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmM6CgkgIHJlcGxhY2UgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlIHdpdGggZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X21ldGFkYXRhCgoyMDEyLTA5LTE0IDE3OjAwOjIzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwcmVzZXQuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2wtc291cmNlcy5jOgoJICByZXBsYWNlIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSB3aXRoIGdzdF9lbGVtZW50X2NsYXNzX3NldF9tZXRhZGF0YQoKMjAxMi0wOS0wNiAxNjozMjozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnM6IHdoaXRlc3BhY2UgZml4CgoyMDEyLTA5LTE0IDE0OjA4OjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgZG9jczogaW5kZXhlcnMgYXJlIG5vIG1vcmUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDAxOAoKMjAxMi0wOS0xNCAxMzozNDoyNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0ZXBwaW5nL2ZyYW1lc3RlcDEuYzoKCSAgdGVzdHM6IGZpeCBmb3IgYXBwc2luayByZXR1cm4gdmFsdWUgYWRkaXRpb24KCjIwMTItMDktMTQgMDI6NTQ6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTEuOTQgPT09CgoyMDEyLTA5LTE0IDAyOjQ2OjM0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjExLjk0CgoyMDEyLTA5LTE0IDAxOjI4OjQ2ICswMTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IHRyeSB0byBwcmV0dHktcHJpbnQgZXZlbnQgYWZ0ZXIgd2UndmUgZ2l2ZW4gYXdheSBvd25lcnNoaXAKCSAgTWlnaHQgY2F1c2UgY3Jhc2hlcyB3aXRoIGRlYnVnIGxvZ2dpbmcgZW5hYmxlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4Mzk5NgoKMjAxMi0wOS0xNCAwMToxNzo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTItMDktMTQgMDA6MzA6MzcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkgIGdzdGNvbXBhdDogZml4IGJhY2t3YXJkcyBjb21wYXQgbWFjcm8gZm9yIGdzdF9tZXNzYWdlX25ld19kdXJhdGlvbgoJICBOYW1lIGl0IHByb3Blcmx5LCBzbyBpdCwgbGlrZSwgd29ya3MuIENsZWFybHkgbm8gb25lIGFjdHVhbGx5CgkgIHVzZWQgdGhhdC4uCgoyMDEyLTA5LTEzIDEyOjAwOjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJKiBkb2NzL3B3Zy9pbnRyby1iYXNpY3MueG1sOgoJICBkb2NzOiBmaXggZm9ybWF0cyBhIGxpdHRsZQoKMjAxMi0wOS0xMyAxMTozODo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZGVmczogYWRkIG5ldyBiYXNlcGFyc2UgZnVuY3Rpb24KCjIwMTItMDktMTMgMTE6Mzg6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGRvY3M6IGZvdXJjYyBpcyBubyBtb3JlCgoyMDEyLTA5LTEzIDExOjM1OjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1pc3NpbmctcGx1Z2lucy50eHQ6CgkqIGRvY3MvZmFxL3VzaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXByb2dyYW1zLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLXBhZHMueG1sOgoJKiBkb2NzL3B3Zy9vdGhlci1udG9vbmUueG1sOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBkb2NzOiBmaXggc29tZSBkb2NzCgkgIGZyb20gZ2l0IGdyZXAgZm9yIGZmbXBlZ2NvbG9yc3BhY2UgYW5kIHgtcmF3LQoKMjAxMi0wOS0xMyAxMDo0ODowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIHBhcnNlOiBhZGQgbWlzc2luZyBkZWNsYXJhdGlvbgoKMjAxMi0wOS0xMyAxMDoyNDoxNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBpbmRlbnQgZml4CgoyMDEyLTA5LTEyIDIyOjQ0OjM3IC0wNzAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEFkZCBhIG1vZGUvZmxhZyBmb3IgZGlzYWJsaW5nIFBUUyBpbnRlcnBvbGF0aW9uCgkgIFRvIGJlIHVzZWQgYnkgc3ViLWNsYXNzZXMgaW1wbGVtZW50aW5nIHZpZGVvIGZvcm1hdHMgd2l0aCByZW9yZGVyaW5nCgkgIHN1Y2ggYXMgTVBFRy4KCjIwMTItMDktMTAgMTg6Mzg6NTcgLTA3MDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogSGFuZGxlIEdBUCBhbmQgc3RpbGwtZnJhbWUgZXZlbnRzLgoJICBIYWNreSwgYmVjYXVzZSB0aGUgc3RpbGwtZnJhbWUgY29kZSBhbGwgbGl2ZXMgaW4gLWJhc2UsIHdoZXJlIHdlCgkgIGNhbid0IHVzZSBpdCAtIHNvIHRoaXMgaXMgYSBoYWNreSBkdXBsaWNhdGlvbiBvZiAtYmFzZSBjb2RlLiBOb3QKCSAgc3VyZSB3aGljaCB3YXkgdG8gZml4IHRoaXM6IE1vdmUgYmFzZXBhcnNlIHRvIC1iYXNlLCBvciBtb3ZlIHN0aWxsLWZyYW1lCgkgIGV2ZW50cyB0byBjb3JlPwoKMjAxMi0wOS0wNCAxOTozODoyNiAtMDcwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBSZXN0cnVjdHVyZSBldmVudCBoYW5kbGluZwoJICBNYWtlIHRoZSBldmVudCBoYW5kbGluZyBtb3JlIGxpa2Ugd2hhdCB2aWRlb2RlY29kZXIgZG9lcywKCSAgdG8gZW5zdXJlIHRoYXQgYWxsIGV2ZW50cyBhcmUgcGFzc2VkIHRvIGNoaWxkIGNsYXNzZXMgYmVmb3JlIGJlaW5nCgkgIHBsYWNlZCBvbiB0aGUgcGVuZGluZyBxdWV1ZSBvciBwdXNoZWQgb253YXJkLgoKMjAxMi0wOS0wMyAxMDozMDowOCAtMDcwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBTdG9yZSBpbmNvbWluZyBjYWNoZWQgZXZlbnRzIGluIHJldmVyc2Ugb3JkZXIKCSAgUmV2ZXJzZSB0aGUgbGlzdCBqdXN0IGJlZm9yZSBzZW5kaW5nLiBQcmVwZW5kaW5nIGlzIG1vcmUgZWZmaWNpZW50CgkgIHRoYW4gYXBwZW5kaW5nLCBzbyB0aGlzIHNhdmVzIHNvbWUgY3ljbGVzLgoKMjAxMi0wOS0wMiAyMzozMjo1MCAtMDcwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXJzdCBhdHRlbXB0IGF0IGhhbmRsaW5nIGJvdGggRFRTIGFuZCBQVFMKCjIwMTItMDktMTMgMDA6Mzg6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBhZGQgd2FybmluZyB3aGVuIHdlIGdldCBzb21ldGhpbmcgZWxzZSB0aGFuIGEgc2FtcGxlIGZvciBhIHNhbXBsZSB0YWcKCSAgRmFjaWxpdGF0ZSBHc3RCdWZmZXIgLT4gR3N0U2FtcGxlIHRyYW5zaXRpb24gZm9yIHNvbWUgdGFncywKCSAgY291bGQgYmUgaGFyZCB0byBjYXRjaCBvdGhlcndpc2Ugd2hlbiBjcmVhdGluZyB0YWdzLCBzaW5jZQoJICBpdCdsbCBvbmx5IGJlIGFwcGFyZW50IGxhdGVyIHdoZW4gc29tZW9uZSB0cmllcyB0byByZWFkIHRoZQoJICB0YWdzLgoKMjAxMi0wOS0xMiAxNDoxNDozMSArMDIwMCAgQW5kcmVhcyBGcmlzY2ggPGZyYXhpbmFzQG9wZW5kcmVhbWJveC5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IGRvbid0IGNyYXNoIGlmIG5vIGVsZW1lbnQga2xhc3MgaGFzIGJlZW4gc2V0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODM4NjUKCjIwMTItMDktMTIgMjM6MTI6MTQgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBmaXggYSBtaXNwbGFjZWQgJyknCgoyMDEyLTA5LTEyIDIxOjIwOjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGVycm9yLmM6CgkgIGVycm9yOiBkb24ndCB0ZWxsIHBlb3BsZSB0byBmaWxlIGEgYnVnIGZvciBuZWdvdGlhdGlvbiBlcnJvcnMKCjIwMTItMDktMTIgMjA6NTQ6NTAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGNvbGxlY3RwYWRzOiByZW1vdmUgZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkX2Z1bGwKCSAgUmVuYW1lIGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZF9mdWxsKCkgdG8gZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkKCkgYW5kIGZpeCBhbGwKCSAgaW52b2NhdGlvbnMuCgoyMDEyLTA5LTEyIDE3OjE2OjQxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IGZpeCBidWlsZCBvbiBDeWd3aW4KCSAgLi4uIHdoZXJlIF9fZmJ1ZnNpemUgaXMgbm90IGF2YWlsYWJsZQoKMjAxMi0wOS0xMiAxMzowMDoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJICBSZXZlcnQgInRlc3RzOiBmaXggYnVmZmVyIGxlYWsgaW4gcXVldWUyIHVuaXQgdGVzdCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAyMzJmZDI5NTNlYjAwZjY5NGI2NjdlNzc5NjcwNGY1OTc0Y2VhNDUyLgoJICBUaGlzIHdhcyBhbHJlYWR5IGZpeGVkLgoKMjAxMi0wNS0yNCAxMzowODoxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBwb3NzaWJsZSBkYXRhIGNvcnJ1cHRpb24gaW4gcmluZyBidWZmZXIgbW9kZSB3aGVuIHNlZWtpbmcKCSAgRml4IHJhY2UgdGhhdCBjb3VsZCBjYXVzZSBkYXRhIGNvcnJ1cHRpb24gd2hlbiBzZWVraW5nIGluIHJpbmcgYnVmZmVyCgkgIG1vZGUuCgkgIEluIHBlcmZvcm1fc2Vla190b19vZmZzZXQoKSwgY2FsbGVkIGZyb20gdGhlIGRlbXV4ZXIncyBwdWxsX3JhbmdlCgkgIHJlcXVlc3QsIHdlIGRyb3AgdGhlIGxvY2ssIHRlbGwgdXBzdHJlYW0gKHVzdWFsbHkgYSBodHRwIHNvdXJjZSkKCSAgdG8gc2VlayB0byBhIGRpZmZlcmVudCBvZmZzZXQsIHRoZW4gcmUtYWNxdWlyZSB0aGUgbG9jayBiZWZvcmUgd2UKCSAgZG8gdGhpbmdzIHRvIHRoZSByYW5nZXMuIEhvd2V2ZXIsIGJldHdlZW4gdXMgc2VuZGluZyB0aGUgc2VlayBldmVudAoJICBhbmQgcmUtYWNxdWlyaW5nIHRoZSBsb2NrLCB0aGUgc291cmNlIHRocmVhZCBtaWdodCBhbHJlYWR5IGhhdmUgcHVzaGVkCgkgIHNvbWUgZGF0YSBhbmQgbW92ZWQgYWxvbmcgdGhlIHJhbmdlJ3Mgd3JpdGluZ19wb3MgYmV5b25kIHRoZSBzZWVrCgkgIG9mZnNldC4gSW4gdGhhdCBjYXNlIHdlIGRvbid0IHdhbnQgdG8gc2V0IHRoZSB3cml0aW5nIHBvc2l0aW9uIGJhY2sKCSAgdG8gdGhlIHJlcXVlc3RlZCBzZWVrIHBvc2l0aW9uLCBhcyBpdCB3b3VsZCBjYXVzZSBkYXRhIHRvIGJlIHdyaXR0ZW4KCSAgdG8gdGhlIHdyb25nIG9mZnNldCBpbiB0aGUgZmlsZSBvciByaW5nIGJ1ZmZlci4KCSAgUmVwcm9kdWNpYmxlIGRvaW5nIHNlZWstZW11bGF0ZWQgZmFzdC1mb3J3YXJkL2JhY2t3YXJkIG9uIDAwNjY1My4KCSAgQ29uZmxpY3RzOgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jCgoyMDEyLTA1LTI0IDEzOjA2OjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJICB0ZXN0czogZml4IGJ1ZmZlciBsZWFrIGluIHF1ZXVlMiB1bml0IHRlc3QKCjIwMTItMDktMTIgMTI6MjM6MjIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IHJlbW92ZSBnbGliIGRlcHJlY2F0aW9uIGNvbXBhdGliaWxpdHkgdHJpY2tlcnkKCjIwMTItMDktMTIgMTI6MjI6NTMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkgIGNoZWNrOiBwb3J0IHRvIHRoZSBuZXcgR0xpYiB0aHJlYWQgQVBJCgoyMDEyLTA5LTEyIDExOjUyOjI1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSAgdGVzdHM6IHBvcnQgdG8gbmV3IEdMaWIgdGhyZWFkIEFQSQoKMjAxMi0wOS0xMiAxMTo0OTo1NSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGJ1ZmZlcnN0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGNsb2Nrc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9sbHN0cmVzcy5jOgoJICB0ZXN0czogYmVuY2htYXJrczogYWxpZ24gZXJyb3IgbWVzc2FnZSB3aXRoIGNvZGUKCjIwMTItMDktMTEgMTk6NDk6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwYWQ6IGV4cG9zZSBnc3RfcGFkX21vZGVfZ2V0X25hbWUoKSBhbmQgdXNlIGl0IGluIGJhc2VwYXJzZQoKMjAxMi0wOS0xMSAxMzoyMjo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2NyZWF0ZS11bmluc3RhbGxlZC1zZXR1cC5zaDoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIHNjcmlwdHM6IHVwZGF0ZSBmb3IgZ3N0LWZmbXBlZyAtPiBnc3QtbGliYXYKCSAgTm93IHRoYXQgd2UgaGF2ZSBhIGdzdC1saWJhdiBnaXQgcmVwb3NpdG9yeSAoc3ltbGlua2VkIHRvIGdzdC1mZm1wZWcpLgoKMjAxMi0wOS0xMSAxNzoyNzowMyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGFkanVzdCB0ZXN0IGxvZ2ljIGZvciBzY2hlZHVsaW5nIG1vZGUgd2l0aCBmbGFnUwoKMjAxMi0wOS0xMSAxNjozOTozNCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBxdWVyeTogYWRkIGNvbnZlbmllbmNlIEFQSSB0byBxdWVyeSBmb3Igc2NoZWR1bGluZyBtb2RlIGFuZCBmbGFncwoKMjAxMi0wOS0xMSAxNjoyOToxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBldmVudHM6IHJlbW92ZSBTVFJFQU1fQ09ORklHCgkgIFdlIHdvbid0IGJlIGFibGUgdG8gaW1wbGVtZW50IHRoaXMgc28gaXQncyBiZXR0ZXIgdG8gbW92ZSBpdCBvdXQgb2YgdGhlIHdheS4KCjIwMTItMDktMTEgMTY6MDk6MzcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIGNvbGxlY3RwYWRzOiBjbGVhbiB1cCBoZWFkZXIgaW5kZW50YXRpb24KCjIwMTItMDktMTEgMTE6MzQ6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGFsbG93IE5VTEwgc3RyZWFtX2lkIGFsc28gd2hlbiAwIHNyY3BhZHMKCSAgV2UgdXN1YWxseSBmaXJzdCBjcmVhdGUgdGhlIHN0cmVhbV9pZCBmb3IgdGhlIHN0cmVhbV9zdGFydCBldmVudCBhbmQgdGhlbiBhZGQKCSAgdGhlIHBhZCB0byB0aGUgZWxlbWVudC4gVGhpcyBtZWFucyB0aGF0IHRoaXMgZnVuY3Rpb25zIHNob3VsZCB3b3JrIHdoZW4gdGhlcmUKCSAgYXJlIG5vIHBhZHMgb24gdGhlIGVsZW1lbnQgeWV0LgoKMjAxMi0wOS0xMCAyMTozOTozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBiYXNlcGFyc2UsIHR5cGVmaW5kOiBvbmx5IGFjdGl2YXRlIGluIHB1bGwgbW9kZSBpZiB1cHN0cmVhbSBpcyBzZWVrYWJsZQoJICBVcHN0cmVhbSBtaWdodCBzdXBwb3J0IHB1bGwgbW9kZSwgYnV0IG9ubHkgc2VxdWVudGlhbCBwdWxscywKCSAgd2hpY2ggaXNuJ3QgZ29ubmEgZG8gbXVjaCBmb3IgdXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzQ5MjcKCjIwMTItMDktMTAgMjA6MzA6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBwb3J0aW5nLXRvLTAuMTEudHh0OiBzb21lIG1pbm9yIGZpeGVzCgoyMDEyLTA5LTEwIDE2OjUyOjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzYW1wbGUuYzoKCSAgc2FtcGxlOiBmcmVlIGluZm8gc3RydWN0dXJlIHdpdGggc2FtcGxlIGlmIHRoZXJlIGlzIG9uZSBhbmQgZml4IGNvcHkgd2l0aCBOVUxMIGluZm8gc3RydWN0dXJlCgoyMDEyLTA5LTEwIDEyOjIwOjE1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBhZGQgcGFkZGluZyB0byBHc3RNYXBJbmZvCgoyMDEyLTA5LTEwIDEyOjEyOjAyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJICBsaWJzOiBhZGp1c3QgY29tbWVudCBzdHlsZQoKMjAxMi0wOS0xMCAxMjoxMToyMyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0OiByZW1vdmUgc29tZSBkZWZ1bmN0IGNvbW1lbnRlZCBjb2RlCgoyMDEyLTA5LTEwIDEyOjAwOjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogaW1wcm92ZSBwb3J0aW5nIGRvYwoKMjAxMi0wOS0xMCAxMDowODowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL3Rvb2xzL2dzdGluc3BlY3QuYzoKCSAgdGVzdHM6IGRpc2FibGUgZGVwcmVjYXRpb24gd2FybmluZ3MKCSAgZGVmaW5lIEdMSUJfRElTQUJMRV9ERVBSRUNBVElPTl9XQVJOSU5HUyBlYXJsaWVyIHNvIHRoYXQgaXQgaXMgZGVmaW5lZCBiZWZvcmUKCSAgdGhlIGdsaWIgaGVhZGVycyBhcmUgbG9hZGVkIG9yIGVsc2Ugd2UgdHJpcCBvdmVyIHRoZSBHVmFsdWVBcnJheSBkZXByZWNhdGlvbnMgaW4KCSAgZ3N0LWluc3BlY3QuYy4KCjIwMTItMDktMDcgMDE6MDI6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGNvbnRyb2xsZXI6IGZpeCBkaXJlY3QgY29udHJvbCBiaW5kaW5nIGRvdWJsZSAtPiBpbnQgY29udmVyc2lvbgoJICBSb3VuZCBwcm9wZXJseSB0byBuZWFyZXN0IGludGVnZXIuIEZpeGVzIGNvbnRyb2xsZXIKCSAgdW5pdCB0ZXN0IG9uIFBvd2VyUEMgRzQuCgoyMDEyLTA5LTA2IDE1OjA2OjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOgoJICBleGFtcGxlczogZml4IGJ1cy9mZCBsZWFrIGluIGhlbGxvIHdvcmxkIGV4YW1wbGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MzQ3MAoKMjAxMi0wOS0wNSAxOTo1NToxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QtZWxlbWVudC1jaGVjay5tNDoKCSAgZ3N0LWVsZW1lbnQtY2hlY2subTQ6IGZpeCBhY3Rpb24taWYtZm91bmQgYW5kIG5vdC1mb3VuZCBpbnZvY2F0aW9uCgkgIEFyZ3VtZW50cyBnb3Qgc2hpZnRlZCBiYWNrIGJ5IG9uZS4KCjIwMTItMDktMDUgMTU6Mzc6MTMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogaGFuZGxlIEdBUCBldmVudAoKMjAxMi0wOS0wNCAxMjoxMzoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBiYXNlc2luazogd2FpdF9lb3MgLT4gd2FpdF9ldmVudAoJICBGaXggYSBGSVhNRS4gTm93IHdlIGNhbiBhbHNvIHBhc3MgdGhlIEdBUCBldmVudCB0byB0aGUgc3ViY2xhc3MuCgoyMDEyLTA5LTAzIDE4OjQ1OjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgZXhhbXBsZXM6IHVwZGF0ZSBNYWtlZmlsZS5hbSBhbmRyb2lkIGJpdHMgaW4gY29udHJvbGxlciBleGFtcGxlCgkgIFNob3VsZCBmaXggYnVpbGQgZmFpbHVyZSByZXBvcnRlZCBvbiBJUkMuCgoyMDEyLTA4LTMwIDE5OjE1OjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGNoZWNrIHN0aWNreSBldmVudHMgYWxzbyBhZnRlciBwYWQgYmxvY2sKCSAgUmVjaGVjayBmb3Igc3RpY2t5IGV2ZW50cyBhZnRlciBkb2luZyBhIHBhZCBibG9jayBiZWNhdXNlIHRoZSBwYWQgYmxvY2sgY291bGQKCSAgaGF2ZSBjYXVzZWQgYSByZWxpbmsgYW5kIHRoZW4gd2UgbmVlZCB0byByZXNlbmQgdGhlIGV2ZW50cyB0byB0aGUgbmV3bHkgbGlua2VkCgkgIHBhZC4KCSAgRml4ZXMgdGhpbmdzIGxpa2Ugc3dpdGNoaW5nIG9mIHZpc3VhbGlzYXRpb25zLgoKMjAxMi0wOS0wMiAwMjowNDoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdXBkYXRlIGZvciBnc3RfbWVzc2FnZV9uZXdfZHVyYXRpb24gLT4gX2R1cmF0aW9uX2NoYW5nZWQoKQoKMjAxMi0wOS0wMiAwMToxNzo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXNzYWdlOiByZW5hbWUgR1NUX01FU1NBR0VfRFVSQVRJT04gLT4gR1NUX01FU1NBR0VfRFVSQVRJT05fQ0hBTkdFRAoJICBUaGUgZHVyYXRpb24gc2hvdWxkIGJlIHJlLXF1ZXJpZWQgdmlhIGEgcXVlcnkgdXNpbmcgdGhlCgkgIG5vcm1hbCBwYXRoLCB3ZSBkb24ndCB3YW50IGFwcGxpY2F0aW9ucyB0byB1c2UgdGhlIHZhbHVlCgkgIGZyb20gdGhlIG1lc3NhZ2UgaXRzZWxmLCBzaW5jZSBpdCBtaWdodCBubyBtYXRjaCB3aGF0IGEKCSAgZHVyYXRpb24gcXVlcnkgZG9uZSBmcm9tIHRoZSBzaW5rIHVwc3RyZWFtIG1pZ2h0IHlpZWxkLgoJICBBbHNvIGRpc2FibGVzIGR1cmF0aW9uIGNhY2hpbmcgaW4gR3N0QmluLiBJdCBzaG91bGQgYmUKCSAgYWRkZWQgYmFjayBhZ2FpbiBhdCBzb21lIHBvaW50LgoKMjAxMi0wOS0wMSAyMzo1NDoyMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBhZGQgcmVtaW5kZXIgdG8gcmVtb3ZlIEdTVF9VTlNUQUJMRV9BUEkgc3R1ZmYgYmVmb3JlIDEuMC4wCgoyMDEyLTA5LTAxIDE4OjA2OjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogLmdpdGlnbm9yZToKCSogTWFrZWZpbGUuYW06CgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0LWVsZW1lbnQtY2hlY2subTQ6CgkqIGdzdC1lbGVtZW50LWNoZWNrLm00LmluOgoJICBnc3QtZWxlbWVudC1jaGVjay5tNDogcmVuYW1lIEFNX0dTVF9FTEVNRU5UX0NIRUNLIHRvIEdTVF9FTEVNRU5UX0NIRUNLCgkgIEFuZCBhbGxvdyBwYXNzaW5nIG9mIGEgbWluaW11bSB2ZXJzaW9uIChpZiBub3QgbmVlZGVkLCBwYXNzIDEuMCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODI5NjgKCjIwMTItMDktMDEgMTc6NTA6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svdG9vbHMvZ3N0aW5zcGVjdC5jOgoJICB0ZXN0czogYWRkIGNoZWNrIGZvciBnc3QtaW5zcGVjdCAtLWV4aXN0cyBmdW5jdGlvbmFsaXR5CgoyMDEyLTA5LTAxIDE3OjQ3OjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IGFkZCAtLWV4aXN0cyBhbmQgLS1hdGxlYXN0LXZlcnNpb24gb3B0aW9uIHRvIGdzdC1pbnNwZWN0CgkgIEZvciBjaGVja2luZyBpZiBhbiBlbGVtZW50IGV4aXN0cyB3aXRoIGEgZ2l2ZW4gbWluaW11bSB2ZXJzaW9uLgoJICBXaWxsIHVzZSB0aGF0IGluIG91ciBuZXcgR1NUX0VMRU1FTlRfQ0hFQ0sgbTQgbWFjcm8uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODI5NjgKCjIwMTItMDktMDEgMTc6MzI6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgcGx1Z2luZmVhdHVyZTogZGlzYWJsZSB2ZXJzaW9uIG1hbmdsaW5nIGZvciBwb3N0LTEuMC4wIHJlbGVhc2UKCSAgSnVzdCBpbiBjYXNlIHdlIGRvbid0IGdyZXAgZm9yIEZJWE1FIDEuMCBiZWZvcmUgdGhlIHJlbGVhc2UuCgoyMDEyLTA4LTMxIDExOjMxOjQ1IC0wNzAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBNYWtlIEdBUCBldmVudHMgYWN0dWFsbHkgdHJpZ2dlciBwcmVyb2xsCgkgIFNsaWdodGx5IGhhY2t5IGFwcHJvYWNoIG5lZWRpbmcgcmVmaW5lbWVudAoKMjAxMi0wOC0zMSAwNjoyNToyMiAtMDcwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IG1ha2Ugc29tZSBkZWJ1ZyBzdGF0ZW1lbnRzIG1vcmUgdmVyYm9zZQoKMjAxMi0wOC0zMSAwNjoyMzo1MyAtMDcwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBnaG9zdHBhZDogTWFrZSBzb21lIGRlYnVnZ2luZyBtb3JlIHZlcmJvc2UKCSAgQWxzbywgcmVtb3ZlIGFuIHVubmVjZXNzYXJ5ICNpbmNsdWRlIGluIGlucHV0LXNlbGVjdG9yCgoyMDEyLTA4LTI4IDE1OjQ0OjQ4IC0wNzAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBHc3RTZWdtZW50OiBGaXggZG9jIGRlc2NyaXB0aW9uIHN0cmluZyBsYXN0X3N0b3AtPnBvc2l0aW9uCgoyMDEyLTA4LTMwIDE5OjQ3OjU3ICswMTAwICBBcm5hdWQgVnJhYyA8YXZyYWNAZnJlZWJveC5mcj4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBmaXggY2xvY2sgbGVhawoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgyOTk3CgoyMDEyLTA4LTI5IDIyOjU3OjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiBvdXRwdXQgZ3N0LWluc3BlY3QgZXJyb3JzIHRvIHN0ZGVycgoKMjAxMi0wOC0yOCAwNzozOTo1MCArMDIwMCAgQWxiYW4gQnJvd2FleXMgPHByYWhhbEB5YWhvby5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGZpeCBjcmFzaCBzZXJpYWxpc2luZyBhIDAgZmxhZ3MgdmFsdWUgd2hlbiB0aGVyZSdzIG5vIG5hbWUgZm9yIGl0CgkgIEZpeGVzIHNlZ2ZhdWx0IHdoZW4gZG9pbmcgZ3N0LWxhdW5jaC0xLjAgLXYgLW0gY2FtZXJhYmluCgkgIChlbmNvZGViaW4gbm90aWZpZXMgYSAwIHZhbHVlIGZvciBpdHMgImZsYWciIHByb3BlcnR5KS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4Mjk1OAoKMjAxMi0wOC0yNCAyMzoxNDo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBsb2cgcGVyZm9ybWFuY2Ugd2FybmluZyBkZWJ1ZyBtZXNzYWdlIGlmIGdsaWIgZW11bGF0ZXMgYXRvbWljIG9wcwoKMjAxMi0wOC0yMyAxMzo1MToyNyArMDEwMCAgTGlvbmVsIExhbmR3ZXJsaW4gPGxsYW5kd2VybGluQGdtYWlsLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgZ3N0OiB1c2UgY29uZmlndXJlLWRldGVjdGVkIG9yIGV4dGVybmFsbHkgcHJvdmlkZWQgZ2xpYi1ta2VudW1zCgkgIFRvIGVhc2UgY3Jvc3MtY29tcGlsYXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzc2MjAKCjIwMTItMDgtMjIgMTM6Mjk6MzQgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDY2OGFjZWUgdG8gNGY5NjJmNwoKMjAxMi0wOC0yMiAxMzoxNDo1NiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBidW1wIGd0ay1kb2MgcmVxIHRvIDEuMTIgKG1hci0yMDA5KQoJICBUaGlzIGFsbG93cyB1cyB0byBlLmcuIHVuY29uZGl0aW9uYWxseSB1c2UgZ3RrZG9jLXJlYmFzZS4KCjIwMTItMDgtMjEgMTM6MzA6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogYWRkIF9tYWtlX3dyaXRhYmxlCgoyMDEyLTA4LTIxIDAwOjAzOjM3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogbWVudGlvbiBzb21lIG1lZGlhIHR5cGUgY2hhbmdlcyBpbiBwb3J0aW5nLXRvLTAuMTEudHh0IGRvYwoKMjAxMi0wOC0yMCAxMzo1MTowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiBtaW5vciB1cGRhdGUgdG8gcG9ydGluZyBkb2MgZm9yIGNoaWxkIHByb3h5IGxvb2t1cCBtZXRob2QKCSAgQW5kIGEgdHlwbyBmaXguCgoyMDEyLTA4LTIwIDExOjMxOjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJICBhbGxvY2F0b3I6IG1ha2UgYSBjb3B5IHdpdGggdGhlIHNhbWUgYWxpZ25tZW50CgkgIFdoZW4gbWFraW5nIGEgY29weSBvZiB0aGUgbWVtb3J5IGFsbG9jYXRlZCBmcm9tIHRoZSBkZWZhdWx0IG1lbW9yeSBhbGxvY2F0b3IsCgkgIG1ha2Ugc3VyZSB0aGUgbmV3IGNvcHkgaGFzIHRoZSBzYW1lIGFsaWdubWVudCBhcyB0aGUgb3JpZ2luYWwgbWVtb3J5LgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MDc5NgoKMjAxMi0wOC0xOSAxNzo1MTowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbWFrZSBzZWVraW5nIGluIERFRkFVTFQgZm9ybWF0IHdvcmsgaWYgdGhlIHN1YmNsYXNzIGNhbiBjb252ZXJ0IGZvciB1cwoJICBXZSBvbmx5IGRlYWwgaW4gVElNRSBmb3JtYXQgb3Vyc2VsdmVzLCBidXQgaWYgdGhlIHN1YmNsYXNzIGNhbiBoYW5kbGUKCSAgY29udmVydGluZyBvdGhlciBmb3JtYXRzIGludG8gVElNRSBmb3JtYXQsIHdlIGNhbiBzdXBwb3J0IHRoYXQgdG9vLgoJICBGaXhlcyBzZWVraW5nIGluIERFRkFVTFQgKHNhbXBsZSkgZm9ybWF0IHdpdGggZmxhY3BhcnNlLAoJICBhbmQgdGhlIGZsYWNkZWMgdW5pdCB0ZXN0LgoKMjAxMi0wOC0xOCAyMTo0MjoyMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgdG9vbHM6IG1pbm9yIGZpeGVzIHRvIGdzdC1sYXVuY2ggbWFuIHBhZ2UKCjIwMTItMDgtMTcgMTI6MjM6NTAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIHByZXNldDogaW1wbGVtZW50IGNoaWxkX3Byb3h5IHN1cHBvcnQKCSAgRWxlbWVudHMgc3VjaCBhcyB0aGUgR3N0SWlyRXF1YWxpemVyTkJhbmRzIHdvdWxkIHNvIGZhciBub3Qgc3RvcmUgdGhlIHByb3BlcnRpZXMKCSAgb2YgdGhlaXIgY2hpbGRyZW4uIE5vdyB3ZSBhbHNvIGdyYWIgdGhlIHByb3BlcnRpZXMgb2YgY2hpbGQgZWxlbWVudHMgYW5kIHRyeSB0bwoJICByZXN0b3JlIHRoZW0uCgoyMDEyLTA4LTE0IDE4OjQ0OjM4ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBXYWl0IGZvciBvdGhlciBzdHJlYW1zIHRvIGFkdmFuY2Ugb24gdW5zZWxlY3RlZCBwYWRzCgkgIE90aGVyd2lzZSB3ZSBlbmQgdXAgZHJvcHBpbmcgYSBsb3Qgb2YgZGF0YSBpbiB0aGUgY2FzZSB3aGVyZSBkYXRhIHN0YXJ0cwoJICBhcnJpdmluZyBvbiB0aGUgbm9uLXNlbGVjdGVkIHBhZCwgcmVzdWx0aW5nIGluIGJpZyBnYXBzIGluIHN0cmVhbSBzd2l0Y2hpbmcKCjIwMTItMDgtMTQgMTg6NDM6NTQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IE1vcmUgZGVidWcgc3RhdGVtZW50cwoKMjAxMi0wOC0xNCAxODo0MjozMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogRG9uJ3QgZm9yd2FyZCBzdHJlYW0tc3RhcnQgc3RpY2t5IGV2ZW50cwoJICBPbmx5IG9uZSBTVFJFQU1fU1RBUlQgZXZlbnQgc2hvdWxkIGJlIGxldCB0aHJvdWdoLCBlbHNlIGl0IHdpbGwKCSAgY29uZnVzZSBkb3duc3RyZWFtIGVsZW1lbnRzIHRoYXQgdGhpbmsgYSBuZXcgc3RyZWFtIGlzIHN0YXJ0aW5nCgkgIHdoZXJlYXMgaW4gZmFjdCB3ZSBhcmUganVzdCBzd2l0Y2hpbmcgdG8gYSBkaWZmZXJlbnQgaW5wdXQuCgkgIEluIHRoZSBmdXR1cmUgd2UgbWlnaHQgd2FudCB0byBsZXQgdGhlbSB0aHJvdWdoIGJ1dCB3aXRoIHRoZSBzYW1lCgkgIHNlcXVlbmNlIG51bWJlci4KCjIwMTItMDgtMTQgMTU6NDY6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkb2NzOiBBZGQgbmV3IGJhc2VzcmMvYmFzZXRyYW5zZm9ybSBBUEkgdG8gdGhlIGRvY3MKCjIwMTItMDgtMDcgMTc6Mzg6NTMgKzAyMDAgIFbDrWN0b3IgTWFudWVsIErDoXF1ZXogTGVhbCA8dmphcXVlekBpZ2FsaWEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiBnZXR0ZXJzIGZvciBwb29sIGFuZCBhbGxvY2F0b3IKCSAgU29tZXRpbWVzIGEgdHJhbnNmb3JtIGZpbHRlciB3b3VsZCBuZWVkIHRoZSBidWZmZXIgcG9vbCBvciB0aGUgbWVtb3J5CgkgIGFsbG9jYXRvciBuZWdvdGlhdGVkIGJ5IHRoZSBiYXNlIGNsYXNzLCBmb3IgZXhhbXBsZSwgZm9yIHF1ZXJ5aW5nIGRpZmZlcmVudAoJICBwYXJhbWV0ZXJzLCBzdWNoIGFzIGEgYmlnZ2VyIG51bWJlciBvZiBidWZmZXJzIHRvIGFsbG9jYXRlIGJ5IHRoZSBidWZmZXIgcG9vbC4KCSAgVGhpcyBwYXRjaCBleHBvc2UgYSB0d28gZ2V0dGVycyBhY2Nlc3NvcnM6IG9uZSBmb3IgdGhlIGJ1ZmZlciBwb29sIGFuZCB0aGUKCSAgb3RoZXIgZm9yIHRoZSBtZW1vcnkgYWxsb2NhdG9yLgoKMjAxMi0wOC0wNyAxNzozNTo0OCArMDIwMCAgVsOtY3RvciBNYW51ZWwgSsOhcXVleiBMZWFsIDx2amFxdWV6QGlnYWxpYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGJhc2VzcmM6IGdldHRlcnMgZm9yIHBvb2wgYW5kIGFsbG9jYXRvcgoJICBTb21ldGltZXMgdGhlIHNvdXJjZXMgd291bGQgdXNlIHRoZSBidWZmZXIgcG9vbCBvciB0aGUgbWVtb3J5IGFsbG9jYXRvciBmb3IKCSAgc29tZXRoaW5nIGVsc2UgdGhhbiBqdXN0IGFsbG9jYXRpbmcgb3V0cHV0IGJ1ZmZlcnM7IGZvciBleGFtcGxlLCBxdWVyeWluZyBmb3IKCSAgZGlmZmVyZW50IHBhcmFtZXRlcnMsIHN1Y2ggYXMgYSBiaWdnZXIgbnVtYmVyIG9mIGJ1ZmZlcnMgdG8gYWxsb2NhdGUgYnkgdGhlCgkgIHBvb2wuCgkgIFRoaXMgcGF0Y2ggZXhwb3NlIGEgdHdvIGdldHRlcnMgYWNjZXNzb3JzOiBvbmUgZm9yIHRoZSBidWZmZXIgcG9vbCBhbmQgdGhlCgkgIG90aGVyIGZvciB0aGUgbWVtb3J5IGFsbG9jYXRvci4KCjIwMTItMDgtMTQgMDA6Mzk6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICByZWdpc3RyeTogcmVtb3ZlIHNvbWUgdW51c2VkIGFuZCBpbiB0aGVpciBjdXJyZW50IGZvcm0gcG9pbnRsZXNzIEFQSQoJICBOb3Qgc28gdXNlZnVsOiBqdXN0IGFkZHMvcmVhZHMgc3R1ZmYgZnJvbSBhbiBpbnRlcm5hbCBHTGlzdCB3aXRob3V0CgkgIGFjdHVhbGx5IGRvaW5nIGFueXRoaW5nIHdpdGggdGhvc2UgcGF0aHMsIHNvIHJlbW92ZSBmb3Igbm93OgoJICBnc3RfcmVnaXN0cnlfYWRkX3BhdGgKCSAgZ3N0X3JlZ2lzdHJ5X2dldF9wYXRoX2xpc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYwODg0MQoKMjAxMi0wOC0xMiAxMzoyNzowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBmaXggdXAgZm9yIGdzdF9jaGlsZF9wcm94eV9sb29rdXAoKSBvbmx5IHdvcmtpbmcgb24gY2hpbGQgcHJveHkgaW50ZXJmYWNlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxNjgxCgoyMDEyLTA4LTEyIDEzOjI0OjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSAgY2hpbGRwcm94eTogbWFrZSBnc3RfY2hpbGRfcHJveHlfbG9va3VwKCkgYSBwcm9wZXIgR3N0Q2hpbGRQcm94eSBtZXRob2QKCSAgTm8gbG9uZ2VyIGFjY2VwdCBhbnkgb2xkIEdPYmplY3RzLiBUaGlzIG1ha2VzIHRoaW5ncyBuaWNlciBmb3IKCSAgYmluZGluZ3MuIElmIGEgdXRpbGl0eSBmdW5jdGlvbiB0aGF0IGhhbmRsZXMgYm90aCBuaWNlbHkKCSAgaXMgZGVlbWVkIHdvcnRod2hpbGUsIHdlIGNhbiBzdGlsbCBhZGQgb25lIHRvIGdzdHV0aWxzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxNjgxCgoyMDEyLTA4LTEzIDAwOjAxOjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiB3aGVuIHNlcmlhbGlzaW5nIGFycmF5cyBvciBsaXN0cywgaGFuZGxlIHR5cGVzIHdlIGNhbid0IHNlcmlhbGlzZSBtb3JlIGdyYWNlZnVsbHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MTMyMgoKMjAxMi0wOC0xMiAxOTozOTo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJICBjb25zaXN0ZW5jeWNoZWNrZXI6IGFkZCBzb21lIG1vcmUgZGV0YWlscyB0byBmYWlsdXJlIG1lc3NhZ2VzCgkgIE1lbnRpb24gcGFkIHdoZXJlIHRoZSBwcm9ibGVtIG9jY3VyZWQsIGFuZCB0aGUgZXZlbnQgbmFtZS4KCjIwMTItMDgtMTIgMTg6MzY6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICB0ZXN0czogZml4IGNvbGxlY3RwYWRzIHRlc3QKCSAgQWZ0ZXIgYW4gRU9TIHdlIG11c3Qgc2VuZCBhIEZMVVNIX1NUT1AgZXZlbnQgaWYKCSAgd2Ugd2FudCB0byBzZW5kIGRhdGEgYWdhaW4uCgoyMDEyLTA4LTEyIDE4OjMxOjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBmaXggbGVhayBpbiBnc3RfZXZlbnRfcGFyc2Vfc3RyZWFtX3N0YXJ0KCkKCSAgZ3N0X3N0cnVjdHVyZV9pZF9nZXQoKSB3aWxsIG1ha2UgYSBjb3B5IG9mIHRoZSBzdHJpbmcKCSAgZXh0cmFjdGVkLCBidXQgd2UncmUgYXNzaWduaW5nIGl0IHRvIGEgY29uc3QgZ2NoYXIgKi4KCjIwMTItMDgtMTIgMTY6NDA6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgdGVzdHM6IG1ha2UgcGlwZWxpbmUgdGVzdCB2YWxncmluZCBjbGVhbgoKMjAxMi0wOC0xMiAxNjozNzowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgdGVzdHM6IGZpeCBwaXBlbGluZSB1bml0IHRlc3QKCSAgV2hpY2ggd2FzIGRpc2FibGVkIGJlY2F1c2UgaXQgZmFpbGVkLgoKMjAxMi0wOC0xMiAxNTo0ODoyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHNjcmlwdHMvY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwLnNoOgoJICBzY3JpcHRzOiBmaXggdW50ZXJtaW5hdGVkIHF1b3RlZCBzdHJpbmcgaW4gY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwLnNoCgoyMDEyLTA4LTEyIDAwOjEyOjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogbWVudGlvbiBnc3RfdmlkZW9fZm9ybWF0X3BhcnNlX2NhcHMoKSBpbiBwb3J0aW5nIGd1aWRlCgoyMDEyLTA4LTExIDIyOjE5OjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZG9jczogZml4IHVwIGRvY3MgYSBiaXQKCjIwMTItMDgtMTEgMjI6MTg6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBjaGlsZHByb3h5OiBmaXggdXAgZy1pIGFubm90YXRpb24gZm9yIF9sb29rdXAoKSBwYXJhbXNwZWMgcmV0dXJuIHZhbHVlCgkgIE5vIHJlZiBpcyByZXR1cm5lZCBoZXJlLgoKMjAxMi0wOC0xMSAyMjoxNzozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIC5kZWYgZmlsZSBmb3IgbmV3IGJ1ZmZlciBmdW5jdGlvbnMKCjIwMTItMDgtMTAgMjI6NTg6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCByZXZlcnNlIHBsYXliYWNrIHdpdGggdXBzdHJlYW0gZGVtdXhlcnMgdGhhdCBzdXBwb3J0IGl0CgkgIERvbid0IGp1c3QgcmV0dXJuIEZBTFNFIGZvciBzZWVrIGV2ZW50cyB3aXRoIG5lZ2F0aXZlIHJhdGVzIHdoZW4KCSAgb3BlcmF0aW5nIGluIHB1c2ggbW9kZS4gQW4gdXBzdHJlYW0gZGVtdXhlciBtYXkgc3VwcG9ydCB0aGlzIGp1c3QKCSAgZmluZSwgc28gaWYgd2UncmUgbm90IG9wZXJhdGluZyBpbiBwdWxsIG1vZGUgYWx3YXlzIGNoZWNrIHVwc3RyZWFtCgkgIGZpcnN0IGlmIGl0IGNhbiBoYW5kbGUgdGhlIHNlZWsgZXZlbnQuIFRoaXMgZml4ZXMgcmV2ZXJzZSBwbGF5YmFjawoJICB3aGVyZSB0aGUgdXBzdHJlYW0gZGVtdXhlciBzdXBwb3J0cyBpdCAoZS5nLiB3aXRoIHF0ZGVtdXgpLiBUaGUKCSAgc2FtZSBjb2RlIHdvdWxkIHdvcmsgZmluZSBpbiAwLjEwLCBiZWNhdXNlIGJhc2VwYXJzZSB3aWxsIGp1c3QKCSAgY2FsbCB0aGUgZGVmYXVsdCBwYWQgZXZlbnQgaGFuZGxlciBpZiBGQUxTRSB3YXMgcmV0dXJuZWQgZnJvbSB0aGUKCSAgYmFzZXBhcnNlIGV2ZW50IGhhbmRsZXIsIGFuZCB0aGUgcGFkIGV2ZW50IGhhbmRsZXIgd2lsbCBqdXN0CgkgIGZvcndhcmQgaXQgdXBzdHJlYW0uIEluIDAuMTEgdGhlIGJhc2VjbGFzcyBvciBzdWJjbGFzcyBpcwoJICByZXNwb25zaWJsZSBmb3IgY2hhaW5pbmcgdXAgdG8gdGhlIHBhcmVudCBjbGFzcyBvciBmb3J3YXJkaW5nIHRoZQoJICBldmVudCB1cHN0cmVhbSBpbiBhbnkgY2FzZS4KCSAgRGlzYWJsZSByZXZlcnNlIHBsYXliYWNrIGluIHB1bGwgbW9kZSBmb3Igbm93LCB0aGVyZSBzZWVtcyB0bwoJICBiZSBzb21ldGhpbmcgZ29pbmcgd3Jvbmcgd2l0aCB0aGUgc2VnbWVudCBjb25maWd1cmF0aW9uIGluIHRoYXQKCSAgY2FzZS4KCjIwMTItMDgtMDQgMTE6NDg6NTIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBkbyBub3QgZXJyb3Igb24gbm90LW5lZ290aWF0ZWQKCSAgRG9uJ3QgZXJyb3Igb3V0IHRvbyBlYXJseSBhbmQgbGV0IHVwc3RyZWFtIGRlY2lkZSBpZiBpdCBjYW4KCSAgd29ya2Fyb3VuZCBhIG5vdC1uZWdvdGlhdGVkIHByb2JsZW0KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MTE5OAoKMjAxMi0wOC0wNCAxMTo0ODoxMyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHJldHJ5IG9uIG5vdC1uZWdvdGlhdGUgaWYgYSByZWNvbmZpZ3VyZSBpcyBwZW5kaW5nCgkgIEJlZm9yZSBlcnJvcmluZyBvdXQgb24gbm90LW5lZ290aWF0ZWQgcmV0dXJucywgY2hlY2sgaWYgdGhlIHBhZAoJICBoYXMgdGhlIHJlY29uZmlndXJlIGZsYWcgc2V0IGFuZCByZXRyeS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MTE5OAoKMjAxMi0wOC0wNCAxMTo0MjowNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwYWQ6IGFkZCBnc3RfcGFkX25lZWRzX3JlY29uZmlndXJlCgkgIEFkZCBhbiBhbHRlcm5hdGl2ZSB2ZXJzaW9uIG9mIGdzdF9wYWRfY2hlY2tfcmVjb25maWd1cmUgdGhhdCBkb2Vzbid0CgkgIGNsZWFyIHRoZSByZWNvbmZpZ3VyZSBmbGFnLgoJICBVc2VmdWwgZm9yIGluY3JlYXNpbmcgZXJyb3IgcmVzaWxpZW5jZSB3aXRob3V0IGR1cGxpY2F0aW5nIHRoZQoJICByZWNvbmZpZ3VyZSBjb2RlIGluIHBhZCB0YXNrIGZ1bmN0aW9ucy4KCSAgQVBJOiBnc3RfcGFkX25lZWRzX3JlY29uZmlndXJlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODExOTgKCjIwMTItMDctMjkgMTU6NDQ6NDUgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCBHU1RfUEFEX0xJTktfQ0hFQ0tfREVGQVVMVCB0byBHc3RQYWRMaW5rQ2hlY2sKCSAgVGhpcyBhbGxvd3MgaW50cm9zcGVjdGlvbi1iYXNlZCBiaW5kaW5ncyB0byBhY2Nlc3MKCSAgR3N0LlBhZExpbmtDaGVjay5ERUZBVUxUIGluc3RlYWQgb2YKCSAgR3N0LlBBRF9MSU5LX0NIRUNLX0RFRkFVTFQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzgzMDEKCjIwMTItMDctMjkgMTQ6NTc6NDEgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IG1hcmsgZ3N0X2J1ZmZlcl93cmFwcGVkKiBkYXRhIGFzIGFycmF5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzgzMDEKCjIwMTItMDctMjQgMTM6MjY6MDAgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0dG9jLmM6CgkgIGludHJvc3BlY3Rpb246IGZpeCBzb21lIHdhcm5pbmdzIGdlbmVyYXRlZCBieSBnLWlyLXNjYW5uZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzgzMDEKCjIwMTItMDctMzAgMjE6NDY6MTggLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogY29udmVydCBnc3RfYnVmZmVyXyogbWFjcm9zIHRvIGZ1bmN0aW9ucwoJICBHT2JqZWN0IEludHJvc3BlY3Rpb24gZG9lcyBub3Qgc3VwcG9ydCBtYWNyb3MuCgkgIFRoaXMgaXMgbmVlZGVkIGZvciBiaW5kaW5ncy4gV2UgY2FuIHN0aWxsIGFkZCBiYWNrCgkgIG1hY3JvcyBvciBpbmxpbmUgZnVuY3Rpb25zIGFnYWluIGxhdGVyIGlmIHdlIHRoaW5rCgkgIGl0J3Mgd29ydGggaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzgzMDEKCjIwMTItMDgtMTAgMTM6NTA6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBmaXggcHJpbnRmIGZvcm1hdCBpbiBkZWJ1ZyBtZXNzYWdlCgoyMDEyLTA4LTEwIDEyOjIzOjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogZml4IG1heF9idWZmZXJzIGhhbmRsaW5nCgkgIFdoZW4gbWF4X2J1ZmZlcnMgPiAwIGFuZCB0aGUgcG9vbCBpcyBlbXB0eSwgYWN0dWFsbHkgdHJ5IHRvIGFsbG9jYXRlIG1vcmUKCSAgYnVmZmVycyB1cCB0byB0aGUgbWF4X2J1ZmZlcnMgbGltaXQuCgkgIFdlIG5lZWQgdG8gYWRkIGEgY291bnRlciBmb3IgdGhpcyB0byBjb3VudCBob3cgbWFueSBidWZmZXJzIHdlIGFsbG9jYXRlZCBhbmQKCSAgY2hlY2sgdGhpcyBhZ2FpbnN0IHRoZSBtYXhfYnVmZmVycyBsaW1pdC4KCSAgUmVvcmdhbmlzZSBhbmQgY2xlYW4gdXAgc29tZSBjb2RlLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxMTUzCgoyMDEyLTA4LTEwIDA5OjE5OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBzaW1wbGlmeSBieSB1c2luZyBnX3NvY2tldF9jb25kaXRpb25fdGltZWRfd2FpdCgpCgkgIE5vIG5lZWQgdG8gdXNlIGEgY3VzdG9tIG1haW4gY29udGV4dCBhbmQgY3VzdG9tIHRpbWVvdXQgc291cmNlcywKCSAganVzdCB1c2UgZ19zb2NrZXRfY29uZGl0aW9uX3RpbWVkX3dhaXQoKSBpbnN0ZWFkLCB3aGljaCB3YXMgYWRkZWQKCSAgZm9yIGV4YWN0bHkgdGhpcyBjYXNlLgoJICBBbHNvIHNlZW1zIHRvIGhlbHAgd2l0aCB0aGUgdW5pdCB0ZXN0IGRlYWRsb2NraW5nIHdpdGggZ2xpYiAyLjMzLngKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MTU3NQoKMjAxMi0wOC0wOSAxOToxNToyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogZml4IGRvdWJsZSBzdHJpbmcgZXNjYXBpbmcgaW4gZ3N0X29iamVjdF9kZWZhdWx0X2RlZXBfbm90aWZ5KCkKCSAgTWFrZSBvdXRwdXQgb2YgZ3N0LWxhdW5jaCAtdiByZWFkYWJsZSBhZ2Fpbi4KCSAgbGFzdC1tZXNzYWdlID0gImV2ZW50XCBcIFwgXCpcKlwqXCpcKlwqXCpcIFwoZmFrZXNpbmswOnNpbmtcKVwgRVwgXCh0eXBlOlwgdGFnXCBcKDIwNTEwXClcLFwgR3N0VGFnTGlzdC1zdHJlYW1cLFwgdGFnbGlzdFw9XCh0YWdsaXN0XClcInRhZ2xpc3RcXFwsXFxcIHZpZGVvLWNvZGVjXFxcPVxcXChzdHJpbmdcXFwpSDI2NFxcXCxcXFwKCSAgbWluaW11bS1iaXRyYXRlXFxcPVxcXCh1aW50XFxcKTYzNjYxMVxcXCxcXFwgYml0cmF0ZVxcXD1cXFwodWludFxcXCk5ODA3MjlcXFwsXFxcIG1heGltdW0tYml0cmF0ZVxcXD1cXFwodWludFxcXCkxMTE2NzA3XFxcO1wiXDtcKVwgMHgxNWJjNzYwIgoJICB2cy4KCSAgbGFzdC1tZXNzYWdlID0gZXZlbnQgICAqKioqKioqIChmYWtlc2luazA6c2luaykgRSAodHlwZTogdGFnICgyMDUxMCksIEdzdFRhZ0xpc3Qtc3RyZWFtLCB0YWdsaXN0PSh0YWdsaXN0KSJ0YWdsaXN0XCxcIHZpZGVvLWNvZGVjXD1cKHN0cmluZ1wpSDI2NFwsXCBtaW5pbXVtLWJpdHJhdGVcPVwodWludFwpODU2MDM5XCxcIGJpdHJhdGUKCSAgXD1cKHVpbnRcKTEwMTk3NDhcLFwgbWF4aW11bS1iaXRyYXRlXD1cKHVpbnRcKTExMTY3MDdcOyI7KSAweDExMTQ5ZTAKCjIwMTItMDgtMDkgMTY6MTg6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBjaGVjayB3cml0YWJpbGl0eQoJICBmaXggdGhlIHdyaXRhYmlsaXR5IGNoZWNrIGZvciBtaW5pb2JqZWN0cy4gV2Ugc2hvdWxkIGNoZWNrIHRoZSBzaGFyZWQgY291bnRlci4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MTQ1MAoKMjAxMi0wOC0wOCAxNjowODo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkgIGFsbG9jYXRvcjogU2V0IHRoZSBhbGlnbm1lbnQgYXQgdGhlIGNvcnJlY3QgcGxhY2UgaW4gR3N0QWxsb2NhdGlvblBhcmFtcwoKMjAxMi0wOC0wOCAxNjoxODoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMC4xMS45MyA9PT0KCjIwMTItMDgtMDggMTU6MDU6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTEuOTMKCjIwMTItMDgtMDggMTQ6NDk6MjMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICB0ZXN0czogcmVtb3ZlIHNpbGx5IHRlc3RfZmFpbF9hYnN0cmFjdF9uZXcgY2hlY2sKCSAgT3VyIGNoZWNrIHdvdWxkIG1ha2Ugc3VyZSB0aGF0IEdMaWIgc2VnZmF1bHRzIHdoZW4KCSAgc29tZW9uZSB0cmllcyB0byBpbnN0YW50aWF0ZSBhbiBhYnN0cmFjdCB0eXBlLCB3aGljaAoJICBpcyBhbiBleHRyZW1lbHkgdXNlZnVsIHRoaW5nIHRvIGNoZWNrIGZvci4KCSAgSW4gbmV3ZXIgR0xpYnMgdGhpcyBpcyBmaXhlZCBhbmQgd2UgZ2V0IGFuIGFib3J0IHdpdGgKCSAgYSBnX2Vycm9yKCkgbm93IGl0IHNlZW1zLCBzbyBsZXQncyBqdXN0IHJlbW92ZSB0aGlzCgkgIGNoZWNrIGVudGlyZWx5LgoKMjAxMi0wOC0wOCAwOTo1MzoyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0ZXBwaW5nL2ZyYW1lc3RlcDEuYzoKCSAgZXhhbXBsZXM6IGRvbid0IHB1dCB0aGluZ3Mgd2l0aCBzaWRlIGVmZmVjdHMgaW5zaWRlIGdfYXNzZXJ0KCkKCSAgVGhleSB3aWxsIGJlIGRlZmluZWQgYXdheSB0byBOT09QcyBvdGhlcndpc2UgaW4gcmVsZWFzZSBidWlsZHMuCgoyMDEyLTA4LTA4IDA5OjEzOjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgZm9yIHN0cmVhbS1pZCBBUEkgYWRkaXRpb25zCgoyMDEyLTA4LTA4IDAwOjU0OjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IGZpeCBmb3IgbmV3IEdzdENoaWxkUHJveHk6OmNoaWxkLWFkZGVkIHNpZ25hbCBjYWxsYmFjayBzaWduYXR1cmUKCSAgRml4ZXMgY3Jhc2ggd2l0aCBnc3QtbGF1bmNoLTEuMCB1cmlkZWNvZGViaW4gdXJpPS4uLiBzdWJ1cmk9Li4uICEgLi4KCjIwMTItMDgtMDcgMTA6NDY6MTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IEFkZCBhbGxvdy1ub25lIHRvIHRoZSBmdW5jdGlvbiBhcmd1bWVudCBvZiBnc3RfYnVzX3NldF9zeW5jX2hhbmRsZXIoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxMTM5CgoyMDEyLTA4LTA2IDE2OjMzOjU3ICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICBkb2NzOiBNYWtlIHN1cmUgc2Nhbm5lciBnZXRzIHJlcXVpcmVkIGxpYnJhcmllcwoKMjAxMi0wOC0wNiAyMDowODowNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSAgY29uc2lzdGVuY3ljaGVja2VyOiBwcmludCB3aGljaCBldmVudCB3ZSByZWNlaXZlZCBiZWZvcmUgc3RyZWFtLXN0YXJ0CgoyMDEyLTA4LTA2IDIwOjA0OjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBkb24ndCB0cnkgdG8gYW5zd2VyIFVSSSBxdWVyaWVzIHdpdGggTlVMTCBVUklzCgkgIFNob3VsZCBtYWtlIHVuaXQgdGVzdHMgaW4gLWJhc2UgdGhhdCB1c2UgYXBwc3JjIGEgYml0IGhhcHBpZXIuCgoyMDEyLTA3LTI5IDE0OjI1OjM0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgZXZlbnQ6IFVwZGF0ZSBmb3Igc3RyZWFtLXN0YXJ0IGV2ZW50IEFQSSBjaGFuZ2VzCgoyMDEyLTA3LTI4IDA4OjM3OjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIGV2ZW50OiBBZGQgbmV3IHN0cmVhbS1pZCBmaWVsZCB0byB0aGUgc3RyZWFtLXN0YXJ0IGV2ZW50CgkgIFRoaXMgaXMgc3VwcG9zZWQgdG8gYWxsb3cgdW5pcXVlbHkgaWRlbnRpZnlpbmcgYSBzaW5nbGUgc3RyZWFtLgoKMjAxMi0wNy0yNyAxNzo0MTo0MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogVXNlIHRoZSBmaXJzdCBjcmVhdGVkIHBhZCBieSBkZWZhdWx0CgkgIFRoaXMgZ3VhcmFudGVlcyBhIGJpdCBtb3JlIGNvbnNpc3RlbmN5IGluIHdoaWNoIGlucHV0IHN0cmVhbSB3aWxsCgkgIGJlIHNlbGVjdGVkIGJ5IGRlZmF1bHQuIEl0IHdvdWxkIHByZXZpb3VzbHkgYmUgdGhlIGZpcnN0IHBhZCBvbiB3aGljaAoJICBhbiBldmVudC9idWZmZXIvcXVlcnkgd2FzIHJlY2VpdmVkIC4uLiB3aGljaCB3YXMgcmFjeSBhbmQgbm9uLXByZWRpY3RhYmxlLgoKMjAxMi0wNy0yNyAxNzozODozNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBTcGVjaWZ5IHRoZSBvcmRlciBvZiBwYWQgaXRlcmF0b3JzCgkgIFRoZSBvcmRlciBvZiByZXR1cm5lZCBwYWRzIHdhc24ndCBzcGVjaWZpZWQgYmVmb3JlLCBzbyBsZXQncyBzcGVjaWZ5CgkgIGl0IGFuZCB1c2UgYW4gb3JkZXIgd2hpY2ggbWlnaHQgcHJvdmUgdGhlIG1vc3QgdXNlZnVsIDogdGhlIG9yZGVyIGluCgkgIHdoaWNoIHBhZHMgd2VyZSBhZGRlZCB0byB0aGUgZWxlbWVudC4KCSAgSWYgc29tZW9uZSBjaGFuZ2VzIHRoZSBvcmRlciwgbWFrZSBzdXJlIHVzZXJzIG9mIHRob3NlIGl0ZXJhdG9ycyBmcm9tCgkgIG5vdyBvbiBkb24ndCByZWx5IG9uIHRoYXQgb3JkZXIgIQoKMjAxMi0wOC0wNSAxNzoxNjoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBhZGQgdGNhc2Vfc2tpcF9icm9rZW5fdGVzdCgpIGRlZmluZQoJICBTa2lwcyBicm9rZW4gdGVzdHMgYnV0IGxvZ3MgYW4gRVJST1ItbGV2ZWwgbWVzc2FnZSB0bwoJICBkcmF3IGF0dGVudGlvbiB0byB0aGF0IGZhY3QuCgoyMDEyLTA4LTA1IDE3OjEyOjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJICB0ZXN0czogdXBkYXRlIC5naXRpZ25vcmUgZm9yIHF1ZXVlYXJyYXkgdGVzdCBiaW5hcnkKCjIwMTItMDgtMDUgMTc6MTE6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIHRlc3RzOiBmaXggc3B1cmlvdXMgbmV0Y2xpZW50Y2xvY2sgdGVzdCBmYWlsdXJlcwoJICBHaXZlIGNsb2NrcyBhIGJpdCBtb3JlIHRpbWUgdG8gc3luY2hyb25pc2UuCgoyMDEyLTA4LTA1IDE2OjU5OjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgd2luMzI6IHVwZGF0ZSBnZW5lcmF0ZWQgZmlsZXMKCjIwMTItMDgtMDUgMTY6NDE6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IHVzZSBnZW5lcmljIG1hcnNoYWxsZXIgZm9yICJibG9jayIgYWN0aW9uIHNpZ25hbAoKMjAxMi0wOC0wNSAxNjozNzoyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gOTRjY2Y0YyB0byA2NjhhY2VlCgoyMDEyLTA4LTA0IDEzOjM3OjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlciwgZGVmYXVsdG1lbTogYWRkIG9wdGlvbiB0byBwb2lzb24gbWVtb3J5IGJlZm9yZSBmcmVlaW5nIGl0CgkgIE1pZ2h0IGJlIHVzZWZ1bCB0byB0cmFjayBkb3duIGNlcnRhaW4gYnVncy4KCjIwMTItMDgtMDMgMjM6NTQ6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogcmVmL3VucmVmIHRhZ2xpc3Qgc2NvcGUgZW51bSBpbiBnc3RfaW5pdCgpCgkgIEZpeGVzIG1ha2UgY2hlY2sgYW5kIGRpc3RjaGVjawoKMjAxMi0wOC0wMyAwMDowNTo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiB3YXJuIGlmIHBsdWdpbiBuYW1lIHN0YXJ0cyB3aXRoIGEgIgoJICBUaGlzIGNhbiBlYXNpbHkgaGFwcGVuIGFzIHNpZGUtZWZmZWN0IG9mIHRoZSBwbHVnaW4gbmFtZQoJICBpbiBHU1RfUExVR0lOX0RFRklORSBubyBsb25nZXIgYmVpbmcgYSBzdHJpbmcgaW4gMC4xMSwgYnV0CgkgIGEgbmFtZSB0byBHX1NUUklOR0lGWS4KCjIwMTItMDgtMDIgMTM6MTk6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogdXBkYXRlIHBvcnRpbmctdG8tMC4xMSBkb2N1bWVudCB3aXRoIGEgInNvZnQiIEFQSSBjaGFuZ2VzIGNoZWNrbGlzdAoJICBQb2ludCBvdXQgc29tZSBBUEkgY2hhbmdlcyB0aGF0IHRoZSBjb21waWxlciB3b24ndAoJICBiZSBhYmxlIHRvIHdhcm4gYWJvdXQuCgoyMDEyLTA4LTAyIDExOjMzOjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IGZpeCBwcmludGluZyBvZiBwYXJ0aWFsIGRhdGVzIGluIGdzdC1sYXVuY2gKCjIwMTItMDgtMDIgMTE6MTU6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBSZXZlcnQgInRvb2xzOiBwcmludCBUT0Mgc2NvcGUiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZWU2YWI3YzkzNjM4YTY1MTlhY2I5NzY2OTlhNmFkMTQ5ZDUyMGE5NS4KCSAgVGhlIGFwcGxpY2F0aW9uIHdpbGwgcHJvYmFibHkgb25seSBldmVyIHJlY2VpdmUgZ2xvYmFsIFRPQ3MsCgkgIHNvIGRvbid0IHJlYWxseSBuZWVkIHRoaXMuCgoyMDEyLTA4LTAxIDE3OjQ5OjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IHRhZyBsaXN0IHNjb3BlIHN5bWJvbHMKCjIwMTItMDgtMDEgMTE6NTg6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogc2VuZCBzZWdtZW50X2RvbmUgZXZlbnQgaW4gYWRkaXRpb24gdG8gc2VnbWVudF9kb25lIG1lc3NhZ2UKCjIwMTItMDctMzEgMTc6MjU6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBiYXNlc3JjOiBBZGQgZGVmYXVsdCBoYW5kbGVyIGZvciBVUkkgcXVlcnkgaW4gR3N0VVJJSGFuZGxlciBzdWJjbGFzc2VzCgoyMDEyLTA3LTI4IDE3OjMzOjUyICswMjAwICBTam9lcmQgU2ltb25zIDxzam9lcmRAbHVvbi5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5oLmluOgoJICBjaGVjazogdW5icmVhayBmYWlsICNkZWZpbmUKCSAgVGhlIGZhaWwoKSBkZWZpbml0aW9uIHdhcyBjaGFuZ2VkIHRvIG5vdCBmYWlsIHdpdGggbm9uLUdDQyBjb21waWxlcnMsCgkgIHVuZm9ydHVuYXRlbHkgdGhlIGNoYW5nZSB3YXMgaW5jb3JyZWN0IGFuZCBhcHBlbmRlZCB0aGUgZmlyc3QgYXJndW1lbnQKCSAgb2YgZmFpbCB0byB0aGUgZXhwcmVzc2lvbiBzdHJpbmcgaW5zdGVhZCBvZiBtYWtpbmcgaXQgdGhlIG1lc3NhZ2UuCgkgIFRoaXMgY2hhbmdlIGRvZXMgbWVhbiB0aGF0IGZhaWwoKSBub3cgcmVxdWlyZXMgYSBtZXNzYWdlIHRvIGJlIHBhc3NlZAoJICBhbG9uZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MDc1NQoKMjAxMi0wNy0yOSAyMzozNzoxOSArMDIwMCAgSmVucyBHZW9yZyA8bWFpbEBqZW5zZ2Uub3JnPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IFVwZGF0ZSBhbm5vdGF0aW9ucwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwODA1CgoyMDEyLTA3LTI5IDIzOjIwOjA3ICswMjAwICBKZW5zIEdlb3JnIDxtYWlsQGplbnNnZS5vcmc+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IFVwZGF0ZSBhbm5vdGF0aW9uIGZvciBnZXRfY29tcGF0aWJsZV9wYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MDgwNAoKMjAxMi0wNy0yOCAyMToyMzoyNCAtMDQwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJICB1cmk6IEZpeCB3cm9uZyAnYXJyYXkgemVyby10ZXJtaW5hdGVkPTEnIGFubm90YXRpb24gZm9yIHN0cmluZ3MKCjIwMTItMDctMjggMTE6MDI6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRvYy50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBUT0MgZGVzaWduIGRvY3MgYSBsaXR0bGUKCjIwMTItMDctMjggMDk6NDE6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgZXZlbnQ6IG1ha2UgVE9DIGV2ZW50IG11bHRpLXN0aWNreQoJICBXZSBuZWVkIHRvIHNlbmQgdHdvIGtpbmRzIG9mIFRPQ3MgZG93bnN0cmVhbSBhcyBldmVudHMsCgkgIGFuZCBuZWVkIGJvdGggdG8gc3RpY2sgdG8gdGhlIHBhZHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg3NDIKCjIwMTItMDctMjggMDg6MzA6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogcHJpbnQgVE9DIHNjb3BlCgoyMDEyLTA3LTI3IDIzOjU2OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdG9jOiBhZGQgR3N0VG9jU2NvcGUgYW5kIHJlcXVpcmUgaXQgaW4gdGhlIGNvbnN0cnVjdG9yCgkgIFRoaXMgaXMgYmVjYXVzZSB3ZSBuZWVkIHRvIGJlIGFibGUgdG8gc2lnbmFsIGRpZmZlcmVudCBUT0NzCgkgIHRvIGRvd25zdHJlYW0gZWxlbWVudHMgc3VjaCBhcyBtdXhlcnMgYW5kIHRoZSBhcHBsaWNhdGlvbiwKCSAgYW5kIGJlY2F1c2Ugd2UgbmVlZCB0byBzZW5kIGJvdGggdHlwZXMgYXMgZXZlbnRzIChiZWNhdXNlCgkgIHRoZSBzaW5rIHNob3VsZCBwb3N0IHRoZSBUT0MgbWVzc2FnZXMgZm9yIHRoZSBhcHAgaW4gdGhlCgkgIGVuZCwganVzdCBsaWtlIHRhZyBtZXNzYWdlcyBhcmUgbm93IHBvc3RlZCBieSB0aGUgc2lua3MpLAoJICBhbmQgaGVuY2UgbmVlZCB0byBtYWtlIFRPQyBldmVudHMgbXVsdGktc3RpY2t5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4NzQyCgoyMDEyLTA3LTI3IDIzOjU0OjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwLnNoOgoJICBzY3JpcHRzOiBjcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAuc2g6IGNoZWNrIGZvciBiYXNpYyBidWlsZCB0b29scyBhbmQgZGVwcwoJICAuLiBiZWZvcmUgY2hlY2tpbmcgb3V0IHN0dWZmLgoKMjAxMi0wNy0yNyAyMzo1MjoxMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdGFnOiBBZGQgYSBzY29wZSB0byB0YWdsaXN0cwoJICBUaGlzIHNwZWNpZmllcyBpZiBhIGdpdmVuIHRhZ2xpc3QgYXBwbGllcyB0byB0aGUgY29tcGxldGUKCSAgbWVkaXVtIG9yIG9ubHkgdGhpcyBzcGVjaWZpYyBzdHJlYW0uIEJ5IGRlZmF1bHQgYSB0YWdsaXN0CgkgIGhhcyBhIHN0cmVhbSBzY29wZS4KCSAgRml4ZXMgYnVnICM2Nzc2MTkuCgoyMDEyLTA3LTI3IDE3OjA5OjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogYWRkIG9mZnNldCBmaWVsZAoJICBBZGQgYW4gb2Zmc2V0IGZpZWxkIHRoYXQgaXMgdXNlZCB0byB0cmFjayBhdCB3aGF0IHBvc2l0aW9uIHRoZSBzZWdtZW50IHdhcwoJICB1cGRhdGVkLiBUaGlzIGlzIHVzZWQgdG8gc2V0IHRoZSBydW5uaW5nIHRpbWUgdG8gMCB3aGVuIHdlIGRvIGEgZmx1c2hpbmcKCSAgc2VlayB0aGF0IGRvZXNuJ3QgdXBkYXRlIHRoZSBwb3NpdGlvbi4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODAzMDYKCjIwMTItMDctMjcgMTU6MTk6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBVcGRhdGUgZm9yIG5ldyBzZWVraW5nIHZhcmlhYmxlIG5hbWUKCSAgV2hlbiBzZWVraW5nLCB0aGUgc3RhcnQgdmFsdWUgYW5kIHR5cGUgYXJlIG5vdyBjYWxsZWQgc3RhcnQgYW5kIHN0YXJ0X3R5cGUuCgoyMDEyLTA3LTI3IDE0OjUzOjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogc21hbGwgY2xlYW51cAoJICBNb3ZlIHRoZSBjb2RlIHRvIHVwZGF0ZSB0aGUgc2VnbWVudCBhdCB0aGUgZW5kIG9mIHRoZSBmdW5jdGlvbi4KCjIwMTItMDctMjcgMTI6MDU6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIFVwZGF0ZSBkb2NzIGFuZCAuZGVmIGZpbGUgZm9yIHRhZ2xpc3QgQVBJIGNoYW5nZQoKMjAxMi0wNy0yNyAxMzowMjo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IHJlbW92ZSByZWR1bmRhbnQgY2hlY2tzCgkgIFdlIGRvbid0IG5lZWQgdG8gY2hlY2sgdGhlIHNlZ21lbnQgZm9ybWF0IGFueW1vcmUgYmVjYXVzZSB3ZSBhc3NlcnRlZCBvbiB0aGVtCgkgIGJlaW5nIGVxdWFsIGJlZm9yZS4KCjIwMTItMDctMjcgMTI6MjQ6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICB0ZXN0czogaW1wcm92ZSBzZWdtZW50IHRlc3RzCgoyMDEyLTA3LTI3IDEyOjEyOjM3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmg6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS1tZW1vcnkuYzoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LXZpZG1lbS5jOgoJICBhbGxvY2F0b3I6IHJlbW92ZSB1c2VyX2RhdGEgZnJvbSBhbGxvYyB2bWV0aG9kCgkgIFJlbW92ZSB0aGUgdXNlcl9kYXRhIGZyb20gdGhlIGFsbG9jIHZtZXRob2QuIFN1YmNsYXNzZXMgdGhhdCBpbXBsZW1lbnQgYSBuZXcKCSAgYWxsb2MgZnVuY3Rpb24gY2FuIGFsc28gaW1wbGVtZW50IHRoZWlyIG93biB2bWV0aG9kIHRvIHBhc3MgZXh0cmEgYXJndW1lbnRzLiBXZQoJICBjYW4gdGhlbiBhbHNvIHJlcXVpcmUgdGhhdCBjdXN0b20gYWxsb2NhdG9ycyBpbXBsZW1lbnQgYW4gYWxsb2MgZnVuY3Rpb24gc28gdGhhdAoJICBnc3RfYWxsb2NhdG9yX2FsbG9jKCkgYWx3YXlzIHdvcmtzLgoKMjAxMi0wNy0yNyAxMDo0MTo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIHRlc3RzOiByZW1vdmUgc2VnbWVudCBhY2N1bXVsYXRpb24gY2hlY2tzCgkgIFJlbW92ZSB0aGUgY2hlY2tzIGJlY2F1c2UgdGhlcmUgaXMgbm8gbW9yZSBzZWdtZW50IGFjY3VtdWxhdGlvbi4KCjIwMTItMDctMjYgMTY6NDQ6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBtYWtlIEdTVF9UQUdfQVBQTElDQVRJT05fREFUQSBhbHNvIGEgR3N0U2FtcGxlCgkgIFRoYXQgd2F5IGFkZGl0aW9uYWwgbWV0YS1kYXRhIGNhbiBiZSBwYXNzZWQgYWxvbmcgd2l0aCBpdC4KCjIwMTItMDctMjYgMTU6NTE6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkgIHRhZ2xpc3Q6IGdzdF90YWdfbGlzdF9nZXRfYnVmZmVyKigpID0+IGdzdF90YWdfbGlzdF9nZXRfc2FtcGxlKigpCgkgIEltYWdlIHRhZ3MgYW5kIG90aGVyIHRhZ3MgYXJlIG5vdyBvZiBHc3RTYW1wbGUgdHlwZS4KCjIwMTItMDctMjYgMTU6MjY6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IHByaW50IGltYWdlIHRhZ3MgYW5kIG90aGVyIEdzdFNhbXBsZSB0YWdzIHByb3Blcmx5CgkgIFRoZXNlIHRhZ3MgYXJlIG5vdyBvZiB0eXBlIEdzdFNhbXBsZSBub3QgR3N0QnVmZmVyLgoKMjAxMi0wNy0yNCAyMTozODozNSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGNvbGxlY3RwYWRzOiByZW1vdmUgdW5pbXBsZW1lbnRlZCBhcGkKCSAgV2UgY2FuIGFsd2F5cyBhZGQgdGhpcyBiYWNrIGlmIHdlIG5lZWQgaXQuIEZpeGVzIHBhcnRzIG9mICM2NzA4NTIuCgoyMDEyLTA3LTI0IDEzOjQ5OjM2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYWxzbyBhY2NvdW50IGZvciBmcmFtZSBzaXplIHdoZW4gbWVyZWx5IHNjYW5uaW5nIGZvciBmcmFtZQoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwNDk1CgoyMDEyLTA3LTI0IDEzOjQ4OjM5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVtb3ZlIG9ic29sZXRlIGZ1bmN0aW9uIHBhcmFtZXRlcgoKMjAxMi0wNy0yNCAxMjozODoxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiByZXF1aXJlIGJ5dGVzIGJlZm9yZSB0eXBlZmluZGluZwoJICBSZXF1aXJlIHRoYXQgd2UgaGF2ZSBzb21lIGJ5dGVzIGluIHRoZSBhZGFwdGVyIGJlZm9yZSB3ZSBhdHRlbXB0IHRvIHR5cGVmaW5kLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwNDc5CgoyMDEyLTA3LTIzIDE4OjQ5OjEzICswMjAwICBDaHJpc3RpYW4gRnJlZHJpayBLYWxhZ2VyIFNjaGFsbGVyIDx1cmFldXNAbGludXhyaXNpbi5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgdXBkYXRlIHNwZWMgZmlsZSB3aXRoIGxhdGVzdCBjaGFuZ2VzCgoyMDEyLTA3LTIzIDE2OjI3OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSAgYnVmZmVybGlzdDogcGFzcyBpbmRleCBhcyBnaW50IHRvIF9pbnNlcnQKCSAgTWFrZSB0aGUgaWR4IGFyZ3VtZW50IG9mIF9pbnNlcnQoKSBhIGdpbnQgYmVjYXVzZSB3ZSBhbGxvdyAtMSBhcyBhIHZhbHVlLgoJICBJbXByb3ZlIGFubm90YXRpb24uCgoyMDEyLTA3LTIzIDEzOjQwOjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBwbHVnaW5zOiBwcmludCBmbGFncyBiZXR0ZXIKCSAgcHJpbnQgdGhlIGJ1ZmZlciBmbGFncyBhcyBhIGhleCBudW1iZXIgc28gdGhhdCBpdCBiZWNvbWVzIGVhc2llciB0byBzZWUgd2hhdAoJICBmbGFncyBhcmUgc2V0LgoKMjAxMi0wNy0xOCAxNzowMzo0NSArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2Vicm5AYXhpcy5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBnc3Rwb2xsOiBJbXByb3ZlIHdhcm5pbmcgbWVzc2FnZSB3aGVuIHJlLWFkZGluZyBmZCB0byBmZHNldAoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwMTgxCgoyMDEyLTA3LTIzIDA4OjQ0OjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gOThlMzg2ZiB0byA5NGNjZjRjCgoyMDEyLTA3LTIwIDAwOjQ5OjI4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGFkZCBHc3RUYWdMaXN0IHNlcmlhbGlzYXRpb24vZGVzZXJpYWxpc2F0aW9uCgkgIFNvIHdlIGNhbiBzZXJpYWxpc2UvZGVzZXJpYWxpc2UgdGFnbGlzdHMgaW5zaWRlIHN0cnVjdHVyZXMsCgkgIHdoaWNoIHVzZWQgdG8gd29yayBhdXRvbWFnaWNhbGx5IGJlZm9yZSBiZWNhdXNlIEdzdFRhZ0xpc3QKCSAgd2FzIGp1c3QgYSB0eXBlZGVmIHRvIEdzdFN0cnVjdHVyZSAoc2FtZSBmb3IgdGhlIEdUeXBlKSwKCSAgYnV0IG5vdyB0aGF0IGl0J3MgYSBzZXBhcmF0ZSBHVHlwZSB3ZSBuZWVkIHRvIHJlZ2lzdGVyCgkgIGV4cGxpY2l0IGZ1bmN0aW9ucyBmb3IgdGhpcy4KCSAgSGVscHMgd2l0aCBHRFAgc3R1ZmYgaW4gcGlwZWxpbmVzL3N0cmVhbWhlYWRlciB0ZXN0cy4KCjIwMTItMDctMjAgMDk6Mzg6NDcgKzAyMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxuQGlnYWxpYS5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiBVcGRhdGUgLnBvIGZpbGVzCgoyMDEyLTA3LTE5IDEzOjUxOjIzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgdGVzdHM6IGdzdGJ1ZmZlcjogYWRkIHRlc3RzIGZvciBzb21lIG11bGl0cGxlIG1hcCBjb21iaW5hdGlvbnMKCjIwMTItMDctMTkgMTM6MzU6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBmaXggc2hhcmVkbmVzcyBjaGVjawoKMjAxMi0wNy0xOSAxMzoyMDoyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IHJlZnVzZSB3cml0ZSB3aGVuIG9iamVjdCBpcyBzaGFyZWQKCSAgSW4gYWxsIGNhc2VzLCByZWZ1c2UgdG8gd3JpdGUgYW4gb2JqZWN0IHdoZW4gaXQgaXMgc2hhcmVkIGJ5IG1vcmUgdGhhbiBvbmUKCSAgb2JqZWN0IChhbHNvIHdoZW4gdGhlIG9iamVjdCB3YXMgbG9ja2VkIGJlZm9yZSkuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5MTQ1CgoyMDEyLTA3LTE4IDE1OjIxOjMzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgdGVzdHM6IGdzdGJ1ZmZlcjogZXh0ZW5kIGJ1ZmZlciBjb3B5IHRlc3QKCjIwMTItMDctMTkgMTI6NDI6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHNldCBidWZmZXJpbmctbGVmdCB0byAwIG9uIDEwMCUgYnVmZmVyaW5nCgkgIFNldCB0aGUgYnVmZmVyaW5nLWxlZnQgZmllbGQgaW4gdGhlIHF1ZXJ5IHRvIDAgd2hlbiB3ZSBhcmUgY29tcGxldGVseSBidWZmZXJlZC4KCSAgSW1wcm92ZSB0aGUgZGVidWcuCgoyMDEyLTA3LTE5IDEyOjE0OjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggYnVmZmVyaW5nIHF1ZXJ5CgkgIEZpeCB0aGUgYnVmZmVyaW5nIHF1ZXJ5LCBmaWxsIGluIHRoZSByaWdodCBidWZmZXJpbmctbGVmdCBhbmQgZXN0aW1hdGVkLXRvdGFsCgkgIHZhbHVlcy4KCjIwMTItMDctMTkgMTA6NTQ6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCB0aGUgYnVmZmVyaW5nLWxlZnQgaW4gdGhlIGJ1ZmZlcmluZyBtZXNzYWdlCgkgIFRoZSBidWZmZXJpbmctbGVmdCBmaWVsZCBpbiB0aGUgYnVmZmVyaW5nIG1lc3NhZ2Ugc2hvdWxkIGNvbnRhaW4gYSB0aW1lIGVzdGltYXRlCgkgIGluIG1pbGxpc2Vjb25kcyBhYm91dCBmb3IgbG9uZyB0aGUgYnVmZmVyaW5nIGlzIGdvaW5nIHRvIHRha2UuIFdlIGNhbiBjYWxjdWxhdGUKCSAgdGhpcyB2YWx1ZSB3aGVuIHdlIGRvIHJhdGVfZXN0aW1hdGVzLgoKMjAxMi0wNy0xOSAxMDoxNDoxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IGltcHJvdmUgYnVmZmVyaW5nIG1lc3NhZ2UgZGVmYXVsdHMKCSAgUmVtb3ZlIHRoZSBlc3RpbWF0ZWQtdG90YWwgZmllbGQsIHRoaXMgc2hvdWxkIG5vdCBiZSBwYXJ0IG9mIHRoZSBidWZmZXJpbmcKCSAgbWVzc2FnZS4KCSAgU2V0IHRoZSBkZWZhdWx0IHZhbHVlIG9mIGJ1ZmZlcmluZy1sZWZ0IHRvIDAgd2hlbiB0aGUgcGVyY2VudCBpcyAxMDAuCgoyMDEyLTA3LTE4IDE3OjQ0OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBkZWJ1ZyBsaW5lCgkgIFVzZSBRVUVSWV9UWVBFIG9uIHF1ZXJ5IHR5cGVzLgoKMjAxMi0wNy0xOCAxNzozNTo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdob3N0cGFkOiByZW1vdmUgY3VzdG9tIGZ1bmN0aW9uCgkgIFJlbW92ZSBjdXN0b20gcGFkIGZ1bmN0aW9ucywgdGhlIGRlZmF1bHQgb25lcyBhcmUgYmV0dGVyLgoKMjAxMi0wNy0xOCAxNzozMDozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCBQUk9YWV9TQ0hFRFVMSU5HIGZsYWcKCSAgQWRkIGEgZmxhZyB0aGF0IG1ha2VzIHRoZSBkZWZhdWx0IHF1ZXJ5IGhhbmRsZXIgZm9yd2FyZCB0aGUgc2NoZWR1bGluZyBxdWVyeS4KCjIwMTItMDctMTggMTc6MzA6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGZpeCBkb2NzCgoyMDEyLTA3LTE4IDE2OjIwOjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgcGFkOiBpbXByb3ZlIHF1ZXJ5IGNhcHMgZnVuY3Rpb24KCSAgSW4gdGhlIHByb3h5X3F1ZXJ5X2NhcHMgZnVuY3Rpb24sIGFsc28gZmlsdGVyIGFnYWluc3QgdGhlIGZpbHRlciBpbiB0aGUgcXVlcnkuCgkgIFdlIGRvbid0IG5lZWQgdG8gZmlsdGVyIGFnYWluc3QgdGhlIGZpbHRlciBpbiB0aGUgcXVlcnkgYW55bW9yZSBpbiB0aGUgZGVmYXVsdAoJICBjYXBzIHF1ZXJ5IGZ1bmN0aW9uIGJlY2F1c2Ugd2UgYWxyZWFkeSBkaWQgdGhpcyBpbiB0aGUgcHJveHlfcXVlcnlfY2Fwcy4KCjIwMTItMDctMTggMTE6MTc6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWZyYW1lc3RlcC50eHQ6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGhhbmRsZSAtMSBzdGVwIGFtb3VudHMKCSAgRGVmaW5lIGEgMCBhbmQgLTEgc3RlcCBhbW91bnQuIFRoZXkgdXNlZCB0byBhbG1vc3QgZG8gdGhlIHNhbWUgdGhpbmcgYnV0IG5vdywgMAoJICBjYW5jZWxzL3N0b3BzIHRoZSBjdXJyZW50IHN0ZXAgYW5kIC0xIGtlZXBzIG9uIHN0ZXBwaW5nIHVudGlsIHRoZSBlbmQgb2YgdGhlCgkgIHNlZ21lbnQuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5Mzc4CgoyMDEyLTA3LTE4IDEyOjMwOjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogZml4IGdzdF9xdWVyeV9wYXJzZV9udGhfYWxsb2NhdGlvbl9wb29sKCkgYW5ub3RhdGlvbgoJICBJdCByZXR1cm5zIGEgcmVmIHRvIHRoZSBwb29sLgoKMjAxMi0wNy0xNyAxNTo1Mjo1MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgY2hlY2s6IEF2b2lkIGRlYWRsb2NrCgkgIFF1ZXJpZXMgd2lsbCBiZSBzZW50IHdoZW4gcGlwZWxpbmUgZ29lcyBkb3duIHRvIE5VTEwsIHdoaWNoIHdvdWxkCgkgIHJlc3VsdCBpbiB0aGUgcHJvYmUgYmVpbmcgY2FsbGVkIC4uLiBidXQgY2FuJ3QgdGFrZSB0aGUgbG9jay4KCjIwMTItMDctMTcgMTU6NTA6MDkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdzdGdob3N0cGFkOiBGb3J3YXJkIHF1ZXJpZXMgaW4gYm90aCBkaXJlY3Rpb24KCSAgVXNlIHRoZSBwZWVyIG9mIHRoZSBpbnRlcm5hbCBwYWQgdG8gZm9yd2FyZCB0aGVtLCBpbnN0ZWFkIG9mIHRoZQoJICB0YXJnZXQgd2hpY2ggb25seSBleGlzdHMgZm9yIHRoZSBnaG9zdHBhZCAoYW5kIG5vdCB0aGUgaW50ZXJuYWwKCSAgcHJveHkgcGFkKS4KCjIwMTItMDctMTcgMTE6MjA6NDMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogTW9yZSBlbnRyaWVzCgoyMDEyLTA3LTE4IDA5OjE1OjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogYW5zd2VyIFNDSEVEVUxJTkcgcXVlcnkKCSAgSW5zdGVhZCBvZiBsZXR0aW5nIHRoZSBkZWZhdWx0IHF1ZXJ5IGhhbmRsZXIgZmFpbC4KCjIwMTItMDctMTcgMTk6MjA6MjMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBoYW5kbGUgQ0FQUyBldmVudCBhbmQgZHJvcCBpdCBpZiBvcGVyYXRpbmcgaW4gcmluZyBidWZmZXIgbW9kZQoJICBGaXhlcyAiVW5leHBlY3RlZCBldmVudCBvZiBraW5kIGNhcHMgY2FuJ3QgYmUgYWRkZWQgaW4gdGVtcCBmaWxlIgoJICB3YXJuaW5nIHdoZW4gZG9pbmcgZG93bmxvYWQgYnVmZmVyaW5nLgoKMjAxMi0wNy0xNyAxMjo1Nzo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IG1ha2UgX2ZvcmVhY2hfbWV0YSBtb3JlIHBvd2VyZnVsCgkgIE1ha2UgX2ZvcmVhY2hfbWV0YSByZXR1cm4gRkFMU0Ugd2hlbiB0aGUgZm9yZWFjaCBmdW5jdGlvbiByZXR1cm5lZCBGQUxTRS4KCjIwMTItMDctMTcgMTI6NTI6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJICBidWZmZXJsaXN0OiBpbXByb3ZlIGZvcmVhY2ggZnVuY3Rpb24KCSAgTWFrZSB0aGUgZm9yZWFjaCBmdW5jdGlvbiByZXR1cm4gRkFMU0Ugd2hlbiBvbmUgb2YgdGhlIGZ1bmN0aW9uIGNhbGxzIHJldHVybmVkCgkgIEZBTFNFLgoKMjAxMi0wNy0xNyAxMjo1MDoyNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBhZGQgbW9yZSBkZWJ1ZwoKMjAxMi0wNy0xNyAxMjo0MDo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpeCBkZWJ1ZyBzdHJpbmcKCjIwMTItMDctMTcgMDk6NTc6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSogZ3N0L3BhcnNlL3R5cGVzLmg6CgkgIHBhcnNlOiBmaXggc29tZSBkZWJ1ZwoKMjAxMi0wNy0xNyAwOTo0ODowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYXJzZS5jOgoJICBwYXJzZTogb25seSBlc2NhcGUgc3BhY2VzIG91dHNpZGUgb2YgcXVvdGVzCgkgIFdoZW4gd2UgZXNjYXBlIHNwYWNlcyB0byBrZWVwIGFyZ3VtZW50cyB0b2dldGhlciwgb25seSBlc2NhcGUgd2hlbiB0aGUgc3BhY2UgaXMKCSAgb3V0c2lkZSBhICIiIHN0cmluZy4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzMzMTkKCjIwMTItMDctMTcgMDk6NDQ6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSAgUmV2ZXJ0ICJwYXJzZTogZXNjYXBlIFwgd2l0aCBhIFwgYXMgd2VsbCwgc28gdGhhdCB3ZSBkb24ndCBsb3NlIHRoZSBcIHdoZW4gdW5lc2NhcGluZyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBkZDlmZWRiNDFmMWFkYThlMWY4YmQ1MzQ2ZmNjZDNkMDY4ZDU0M2NiLgoJICBUaGlzIGlzIG5vdCB0aGUgcmlnaHQgcGxhY2UgdG8gZXNjYXBlIHRoZSBcLCB3ZSBzaG91bGQgb25seSBlc2NhcGUgdGhlIHNwYWNlcyB0bwoJICBrZWVwIHRoZSBhcmd1bWVudHMgdG9nZXRoZXIgdGhhdCB3ZXJlIHByb3ZpZGVkIGFzIG9uZSBncm91cCAod2l0aCBxdW90ZXMgb24gdGhlCgkgIHNoZWxsKS4KCjIwMTItMDctMTAgMTI6Mjc6MTEgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBzZXQgcmV0dXJuIHR5cGUgb2YgZ3N0X3BhcnNlX2Jpbl8qIHRvIEdzdEJpbiBmb3IgaW50cm9zcGVjdGlvbgoKMjAxMi0wNi0zMCAxMjozMzo0MyAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOgoJICBuZXR0aW1lcGFja2V0OiBhZGQgbWlzc2luZyBhcnJheSBhbm5vdGF0aW9uIHRvIGdzdF9uZXRfdGltZV9wYWNrZXRfbmV3CgoyMDEyLTA2LTI5IDE3OjMzOjQ5IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSAgaW50cm9zcGVjdGlvbjogYWRkIG1pc3NpbmcgYXJyYXkgYW5ub3RhdGlvbiB0byBnc3RfZm9ybWF0c19jb250YWlucwoKMjAxMi0wNy0xNiAyMDo1NDoxNyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBiaW46IGFnZ3JlZ2F0ZSBkdXJhdGlvbnMgbGlrZSBpbiBhZGRlcgoJICBTdG9wIHF1ZXJ5aW5nIHRoZSBkdXJhdGlvbiBvbmNlIGFuIGVsZW1lbnQgcmV0dXJuIHVua25vd24gYW5kIHJldHVybiB1bmtub3duCgkgIGFzIGEgZmluYWwgcmVzdWx0LiBUaGlzIGF2b2lkIGV2ZW50dWFsbHkgY3V0dGluZyBvZmYgYSBzdHJlYW0gdG9vIGVhcmx5LgoJICBBZGQgYSB0ZXN0cyB0byBkb2N1ZW1lbnQgdGhlIGJlaGF2aW9yLgoKMjAxMi0wNy0xNiAwMDoyNDo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJICBkYXRldGltZToganVzdCByZXR1cm4gTlVMTCBvbiBzaG9ydCBpbnB1dCBzdHJpbmdzIGluc3RlYWQgb2YgYSB3YXJuaW5nCgkgIFdlIHdhbnQgdG8gYmUgYWJsZSB0byB1c2UgdGhpcyBmdW5jdGlvbiBvbiByYW5kb20gbm9uLU5VTEwgaW5wdXQsCgkgIHRoaXMgc2hvdWxkIG5vdCByZXN1bHQgaW4gYSBydW50aW1lLWNyaXRpY2FsLgoKMjAxMi0wNy0xNSAxMjo1OTo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IHNlZWthYmlsaXR5IHF1ZXJ5aW5nIHdpdGggZm9ybWF0cyB3aXRoIGhlYWRlcnMgbGlrZSBGTEFDCgkgIE1vdmUgY29kZSB0aGF0IGNoZWNrcyBmb3IgdXBzdHJlYW0gc2Vla2FiaWxpdHkgYW5kIGFsbCB0aGF0IHRvCgkgIHRoZSByaWdodCBwbGFjZSwgb3RoZXJ3aXNlIGl0IHdpbGwgbmV2ZXIgYmUgZG9uZSBmb3IgZm9ybWF0cwoJICB0aGF0IGhhdmUgaGVhZGVycyBzdWNoIGFzIEZMQUMsIGFzIGhhbmRsZV9hbmRfcHVzaCBmcmFtZSB3aWxsCgkgIGJlIGNhbGxlZCB0aGUgZmlyc3QgdGltZSBvbmx5IGFmdGVyIGhlYWRlcnMgaGF2ZSBiZWVuIHByb2Nlc3NlZAoJICAoYW5kIGZyYW1lY291bnQgaXMgPiAwKS4gVGhpcyB0aGVuIG1ha2VzIHVzIHJlcG9ydCB0aGF0IHdlCgkgIGNhbid0IHNlZWssIHdoaWNoIGRpc2FibGVzIHRoZSBzZWVrIGJhciBpbiB0b3RlbS4KCjIwMTItMDctMTQgMjA6MzM6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGFxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGFxdWV1ZS5oOgoJICBwbHVnaW5zOiBlbWJlZCBHc3RBdWV1ZUFycmF5IGluIGRhdGFxdWV1ZSBzdHJ1Y3QgYXMgd2VsbAoKMjAxMi0wNy0xNCAyMDoyODo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgcGx1Z2luczogZG9uJ3QgdXNlIG9uZS10aW1lIGFycmF5IGluIHBsdWdpbl9pbml0CgoyMDEyLTA3LTE0IDIwOjI2OjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIHF1ZXVlOiBlbWJlZCBHc3RRdWV1ZUFycmF5IHN0cnVjdHVyZQoKMjAxMi0wNy0xNCAyMDowMDozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZWFycmF5Lmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuaDoKCSAgcGx1Z2luczogc3ByaW5rbGUgc29tZSBtb3JlIEdfR05VQ19JTlRFUk5BTAoKMjAxMi0wNy0xNCAxOTozODozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWVhcnJheS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlYXJyYXkuaDoKCSAgcGx1Z2luczogYWRkIGluaXQvY2xlYXIgZnVuY3Rpb25zIHRvIEdzdFF1ZXVlQXJyYXkKCjIwMTItMDctMTQgMTk6MjQ6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGFxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWVhcnJheS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlYXJyYXkuaDoKCSogdGVzdHMvY2hlY2svbGlicy9xdWV1ZWFycmF5LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYmFzZTogbWFrZSBHc3RRdWV1ZUFycmF5IHByaXZhdGUgdG8gY29yZWVsZW1lbnRzIGZvciBub3cKCSAgS2VlcCBpdCBwcml2YXRlIHVudGlsIHdlIGhhdmUgYSByZWFzb24gdG8gbWFrZSBpdCBwdWJsaWMuCgoyMDEyLTA3LTE0IDE5OjA4OjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogY2hlY2sgdmFsdWUgdHlwZSBtYXRjaGVzIHRhZyB0eXBlIHdoZW4gYWRkaW5nIHZhbHVlcyB0byBhIHRhZ2xpc3QKCjIwMTItMDctMTQgMTg6NTI6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBtYWtlIHRhZ2xpc3RzIGFuZCBkYXRldGltZSBsb2dnYWJsZSB2aWEgR1NUX1BUUl9GT1JNQVQKCjIwMTItMDctMTMgMTI6MDU6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHNlbmQgc2VlayBldmVudCB1cHN0cmVhbSBmaXJzdAoJICBGaXJzdCB0cnkgdG8gbGV0IHVwc3RyZWFtIGhhbmRsZSB0aGUgc2VlayBldmVudCwgdGhlbiBmYWlsIGlmIHRoZSBldmVudCBpcwoJICBzb21ldGhpbmcgd2UgZG9uJ3QgdW5kZXJzdGFuZC4KCjIwMTItMDctMTMgMDk6NDM6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IHRlc3QgcmFjaW5lc3MKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTUwNgoKMjAxMi0wNy0xMiAxMzoxNzo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBmaXggZ3N0LWZmbXBlZyBwbHVnaW4gcGF0aCBhZ2FpbgoKMjAxMi0wNy0xMiAxMjowOToxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgY2x1dHRlci1nc3QgYW5kIHJlZmluZSBwbHVnaW4gc2VhcmNoIHBhdGhzCgoyMDEyLTA3LTEyIDAwOjM0OjIyICsxMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogTW92ZSBzdGlja3kgZmxhZyBjbGVhcmluZyBjb2RlIHRvIGdzdF9wYWRfYWN0aXZhdGVfbW9kZQoJICBUaGUgZ2hvc3RwYWQgY29kZSBkaXJlY3RseSBhY3RpdmF0ZXMvZGVhY3RpdmF0ZXMgdGhlIGNoaWxkIGNvZGUgYnkKCSAgY2FsbGluZyBnc3RfcGFkX2FjdGl2YXRlX21vZGUsIHJhdGhlciB0aGFuIGdzdF9wYWRfc2V0X2FjdGl2ZSwgc28KCSAgbWFrZSBzdXJlIHRvIGNsZWFyIHRoZSBmbGFncyBpbiBnc3RfcGFkX2FjdGl2YXRlX21vZGUoKSwgd2hpY2ggc2hvdWxkCgkgIGNhdGNoIGFsbCBjYXNlcy4KCjIwMTItMDctMTEgMTI6NDA6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGltcHJvdmUgYW5ub3RhdGlvbgoKMjAxMi0wNy0xMSAxMjozNzowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGhhbmRsZSBzdGVwIGVuZCBjb3JyZWN0bHkKCSAgd2hlbiB3ZSBoYXZlIGEgbmV3IHN0ZXAgZXZlbnQgd2l0aCBhIC0xIGFtb3VudCwgbWFrZSBzdXJlIHRoYXQgd2UgZm9sbG93IHRoZQoJICByZWd1bGFyIGNvZGUgcGF0aCBzbyB0aGF0IHRoZSBzdG9wX2VuZCBoYW5kbGVyIGlzIGNhbGxlZCBhcyB1c3VhbC4gVGhpcyB0YWtlcwoJICBjYXJlIG9mIGZsdXNoaW5nIHRoZSBidWZmZXIgaW4gY2FzZSBvZiBhIGZsdXNoaW5nIHN0ZXAgYW5kIGFsc28gcG9zdHMgYSBzdGVwIGVuZAoJICBtZXNzYWdlLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTM3OAoKMjAxMi0wNy0xMSAxMzoxNDo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZGVmOgoJICB3aW4zMjogRml4IGV4cG9ydGVkIHN5bWJvbHMgbGlzdCBmb3IgcmVhbCBub3cKCjIwMTItMDctMTEgMTE6MjE6MTggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiByZW1vdmUgcmVtb3ZlZCBhcGkgZnJvbSB0aGUgZG9jcy4KCjIwMTItMDctMTEgMTI6NDY6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGVkIGV4cG9ydGVkIHN5bWJvbHMgbGlzdAoKMjAxMi0wNy0xMSAxMjo0NTo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSAgdG9jOiBBZGQgZnVuY3Rpb25zIHRvIHJldHJpZXZlIHRoZSBwYXJlbnQgR3N0VG9jL0dzdFRvY0VudHJ5IG9mIGEgR3N0VG9jRW50cnkKCjIwMTItMDctMTAgMTg6MTU6MjAgKzAzMDAgIEFudG9uIEJlbGthIDxhbnRvbmJlbGthQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R0b2MuYzoKCSAgdG9jOiBGaXggZ3N0X3RvY19maW5kX2VudHJ5KCkKCSAgUmVjdXJzaXZlIHNlYXJjaCBmb3IgdGhlIHJlcXVpcmVkIGVudHJ5LCBpbnN0ZWFkIG9mIHJldHVybmluZyB0aGUKCSAgdG9wLWxldmVsIGVudHJ5IHRoYXQgY29udGFpbnMgYW4gZW50cnkgd2l0aCB0aGUgc2VhcmNoIFVJRC4KCjIwMTItMDctMTEgMTA6MjY6MTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBQdXNoIFNUUkVBTV9TVEFSVCBpbiBwdWxsLW1vZGUKCjIwMTItMDctMTEgMTA6MjQ6NTEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IERlbW90ZSBXQVJOSU5HIHRvIERFQlVHCgkgIEl0IGlzIG5vdCBhbiBpc3N1ZSB0byBnZXQgZmllbGRzIHRoYXQgZG9uJ3QgZXhpc3QsIGNhbGxpbmcgY29kZSBzaG91bGQKCSAgaGFuZGxlIHRoYXQuCgoyMDEyLTA3LTEwIDExOjQ2OjQxICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRlYnVndXRpbHMuaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZXJyb3IuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuaDoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RwYXJzZS5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGdzdC9nc3Rwb2xsLmg6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5oOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuYzoKCSogZ3N0L2dzdHRyYWNlLmg6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiBnc3QvZ3N0dmVyc2lvbi5oLmluOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhcXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmg6CgkgIFJlbW92ZSAwLjEwLXJlbGF0ZWQgZG9jdW1lbnRhdGlvbiBhbmQgIlNpbmNlIiBtYXJrZXJzCgoyMDEyLTA3LTEwIDAwOjM5OjM3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHByb3ZpZGUgZmFsbGJhY2sgaW4gY2FzZSBhIGNyZWF0ZSBmdW5jdGlvbiBkb2Vzbid0IGtub3cgYWJvdXQgcHJvdmlkZWQgYnVmZmVycwoJICBJbiAwLjExIHRoZSBjYWxsZXIgbWF5IHByb3ZpZGUgYSBidWZmZXIgdG8gYmUgZmlsbGVkIGJ5IHRoZSBzb3VyY2UgdG8KCSAgcHVsbF9yYW5nZS9nZXRfcmFuZ2UvY3JlYXRlLCBidXQgaXQncyBlYXN5IHRvIG1pc3MgdGhpcyBuZXcgY2FzZSB3aGVuCgkgIHBvcnRpbmcgY29kZSBmcm9tIDAuMTAuIFByb3ZpZGUgZmFsbGJhY2sgdGhhdCBjb3BpZXMgdGhlIGNyZWF0ZWQgZGF0YQoJICBpbnRvIHRoZSBwcm92aWRlZCBidWZmZXIgZm9yIG5vdy4KCSAgVGhpcyBtYWtlcyBvZ2dkZW11eCBpbiBwdWxsLW1vZGUgd29yayB3aXRoIGRhdGF1cmlzcmMuCgoyMDEyLTA3LTEwIDEwOjMxOjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgcXVlcnk6IGNvcHkgc3RydWN0dXJlIGluIF9hZGRfYWxsb2NhdGlvbl9tZXRhKCkKCSAgTWFrZSBnc3RfcXVlcnlfYWRkX2FsbG9jYXRpb25fbWV0YSgpIHRha2UgYSBjb3B5IG9mIHRoZSBwYXNzZWQgY2FwcyBpbnN0ZWFkIG9mCgkgIHRha2luZyBvd25lcnNoaXAuIFRoaXMgbWFrZXMgaXQgZWFzaWVyIGZvciB0aGUgY2FsbGVyIGluIG1vc3QgY2FzZXMgYmVjYXVzZSBpdAoJICBkb2Vzbid0IGhhdmUgdG8gbWFrZSBhIGNvcHkgYW5kIGRlYWwgd2l0aCBOVUxMIHZhbHVlcy4KCjIwMTItMDctMTAgMTA6MTE6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogYWRkIG5ldyBmbGFncwoKMjAxMi0wNy0wOSAyMzo0Nzo1MyArMDIwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGZpeCBleGNsdXNpdmUgbG9jay91bmxvY2sgcmFjZQoKMjAxMi0wNy0xMCAwMDo1OTo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5jOgoJICBkYXRhdXJpc3JjOiBjb3B5IGludG8gcHJvdmlkZWQgYnVmZmVyIGlmIGEgYnVmZmVyIGlzIHByb3ZpZGVkCgoyMDEyLTA3LTA5IDIxOjUxOjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgYmFzZXNyYywgYmFzZXNpbmssIGJhc2VwYXJzZSwgdHlwZWZpbmQ6IHVzZSBHU1RfU0VHTUVOVF9GTEFHIHdpdGggc2VnbWVudCBmbGFncwoKMjAxMi0wNy0wOSAyMjoxMTozMSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIHNlZ21lbnQ6IGFsc28gY29weSB0aGUgc2VnbWVudCBmbGFnCgkgIEZpeGVzIHNlZ21lbnRlZCBzZWVrcyAoYXMgdGVzdGVkIGUuZy4gaW4gdGhlIGFkZGVyIHRlc3RzIGluIGJhc2UpLgoKMjAxMi0wNy0wOSAyMDo1NTowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGFxdWV1ZS5oOgoJICBwbHVnaW5zOiBzcHJpbmtsZSBHX0dOVUNfSU5URVJOQUwgZm9yIGRhdGFxdWV1ZSBmdW5jdGlvbnMKCSAgQW5kIHJlbW92ZSBwYWRkaW5nLCBzaW5jZSB0aGlzIGlzIG5vdCBwdWJsaWMgQVBJIGFueSBtb3JlLgoKMjAxMi0wNy0wOSAyMDo0ODo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L3BhcnNlL3R5cGVzLmg6CgkgIGdzdDogc3ByaW5rbGUgc29tZSBHX0dOVUNfSU5URVJOQUwgZm9yIGludGVybmFsIGZ1bmN0aW9ucwoKMjAxMi0wNy0wOSAyMDowOTo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2NzZXR0ZXIuYzoKCSAgdGVzdHM6IGZpeCB0b2MgdW5pdCB0ZXN0cwoJICBNZWFudCB0byBjaGVjayBzdWJzdWJlbnRyeSwgbm90IHN1YmVudHJ5LgoKMjAxMi0wNy0wOSAxODo1ODoyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkgIHRlc3RzOiBtaW5vciB0b2MgdGVzdCBjbGVhbi11cAoKMjAxMi0wNy0wOSAxODo1MTozNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2NzZXR0ZXIuYzoKCSAgdGVzdHM6IHR1cm4gdG9jIGNoZWNrIG1hY3JvcyBpbnRvIHByb3BlciBmdW5jdGlvbnMKCSAgU28gd2UgY2FuIHNlZSB0aGUgbGluZSBudW1iZXIgb2YgdGhlIGNoZWNrIHRoYXQgZmFpbHMuCgoyMDEyLTA3LTA5IDIwOjMxOjAwICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIGRlZnMgZmlsZSBmb3IgQVBJIGNoYW5nZXMvYWRkaXRpb24KCjIwMTItMDctMDkgMjA6Mjk6MjkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFyYW1zcGVjcy5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvY2xlYW51cC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJICBjaGVjazogVXBkYXRlIHRlc3RzIGZvciBuZXcgU1RSRUFNX1NUQVJUIG1lc3NhZ2UKCjIwMTItMDctMDkgMjA6Mjg6NTQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBjaGVjazogRW5zdXJlIFNUUkVBTV9TVEFSVCBtZXNzYWdlIGlzIHBvc3RlZAoJICBBIFNUUkVBTV9TVEFSVCBtZXNzYWdlIGlzIHBvc3RlZCBpZiBhbmQgb25seSBpZiBhbGwgc2lua3MgaW4gdGhlCgkgIGJpbi9waXBlbGluZSByZWNlaXZlZCB0aGUgU1RSRUFNX1NUQVJUIGV2ZW50CgoyMDEyLTA3LTA5IDIwOjI4OjIwICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IFBvc3QgYSBTVFJFQU1fU1RBUlQgbWVzc2FnZSB3aGVuIHdlIHNlZSB0aGUgZXZlbnQKCjIwMTItMDctMDkgMjA6Mjc6NDQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBnc3RiaW46IGNvbGxlY3QgYW5kIGFnZ3JlZ2F0ZSBTVFJFQU1fU1RBUlQgbWVzc2FnZXMKCSAgd2hlbiBhbGwgc2lua3MgaGF2ZSBwb3N0ZWQgYSBTVFJFQU1fU1RBUlQsIHRoZSBiaW4gd2lsbCBmb3J3YXJkIGEKCSAgbmV3IFNUUkVBTV9TVEFSVCBtZXNzYWdlIHRvIHRoZSBwYXJlbnQgYmluIG9yIGFwcGxpY2F0aW9uCgoyMDEyLTA3LTA5IDIwOjA4OjE1ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RtZXNzYWdlOiBOZXcgR1NUX01FU1NBR0VfU1RSRUFNX1NUQVJUCgkgIG1lc3NhZ2UgY291bnRlcnBhcnQgdG8gdGhlIEdTVF9FVkVOVF9TVFJFQU1fU1RBUlQgZXZlbnQKCjIwMTItMDctMDkgMTk6NTk6MzMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBjaGVjazogVW5pdCB0ZXN0IGZvciBFT1MgbWVzc2FnZQoJICBNYWtlIHN1cmUgd2UgZ2V0IHRoZSBhZ2dyZWdhdGVkIG1lc3NhZ2UgaWYgYW5kIG9ubHkgaWYgYWxsIHNpbmtzCgkgIHJlY2VpdmVkIGFuIEVPUyBldmVudAoKMjAxMi0wNy0wOSAxOTo1NjoxNSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGFkZCBTVFJFQU1fU1RBUlQgaGFuZGxpbmcKCSAgVXNlIGEgZmxhZyB0byBmb3J3YXJkIHRoZSBmaXJzdCBTVFJFQU1fU1RBUlQKCjIwMTItMDctMDkgMTY6MjA6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1jYXBzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW1zLnR4dDoKCSAgZG9jczogdXBkYXRlIHN0cmVhbSBkb2NzIGZvciBTRUdNRU5UX1NUQVJUIGV2ZW50CgoyMDEyLTA3LTA5IDE2OjQ4OjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogZml4IG1vcmUgZG9jcwoKMjAxMi0wNy0wOSAxNjoyMjowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RhbGxvY2F0b3IuaDoKCSAgZG9jczogZml4IGRvY3MgYSBsaXR0bGUgbW9yZQoKMjAxMi0wNy0wOSAxNjowMjo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmg6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbWVtb3J5X3Rlc3QuYzoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LW1lbW9yeS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktbWVtb3J5Lmg6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS12aWRtZW0uYzoKCSAgbWVtb3J5OiBNYWtlIEdzdEFsbG9jYXRvciBhIEdzdE9iamVjdAoJICBNYWtlIEdzdEFsbG9jYXRvciBhIEdzdE9iamVjdCBpbnN0ZWFkIG9mIGEgR3N0TWluaU9iamVjdCwgbGlrZSBidWZmZXJwb29sLgoJICBNYWtlIGEgbmV3IGdzdGFsbG9jYXRvci5jIGZpbGUuIE1ha2UgYSBHc3RBbGxvY2F0b3Igc3ViY2xhc3MgZm9yIHRoZSBkZWZhdWx0CgkgIGFsbG9jYXRvci4KCjIwMTItMDctMDkgMTM6MjA6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogcmVtb3ZlIHVudXNlZCBtYWNyb3MKCjIwMTItMDctMDkgMTM6MjA6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNsb2NrLmM6CgkgIGNsb2NrOiBtYWtlIGFic3RyYWN0CgkgIE1ha2UgdGhlIEdzdENsb2NrIHR5cGUgYWJzdHJhY3QuCgkgIEZpeCBhIGhvcnJpYmxlIGhhY2sgaW4gdGhlIGNsb2NrIHVuaXQgdGVzdC4KCjIwMTItMDctMDkgMTU6Mzc6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogRml4IGhhbmRsaW5nIG9mIG1pbi10aHJlc2hvbGQgYW5kIHNlcmlhbGl6ZWQgcXVlcmllcwoJICBPbmx5IGNvbnNpZGVyIHRoZSBxdWV1ZSBlbXB0eSBpZiB0aGUgbWluaW11bSB0aHJlc2hvbGRzCgkgIGFyZSBub3QgcmVhY2hlZCBhbmQgZGF0YSBpcyBhdCB0aGUgcXVldWUgaGVhZC4gT3RoZXJ3aXNlCgkgIHdlIHdvdWxkIGJsb2NrIGZvcmV2ZXIgb24gc2VyaWFsaXplZCBxdWVyaWVzLgoJICBUaGlzIGFsc28gbWFrZXMgc2VuZGluZyBvZiBzZXJpYWxpemVkIGV2ZW50cywgbGlrZSBjYXBzLCBoYXBwZW4KCSAgZmFzdGVyIGFuZCBwb3RlbnRpYWxseSBpbXByb3ZlcyBuZWdvdGlhdGlvbiBwZXJmb3JtYW5jZS4KCSAgRml4ZXMgYnVnICM2Nzk0NTguCgoyMDEyLTA3LTA5IDEzOjE1OjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0b2MuYzoKCSAgdG9jOiByZW1vdmUgcGFkZGluZyBub3cgdGhhdCB0aGUgc3RydWN0cyBhcmUgcHJpdmF0ZQoKMjAxMi0wNy0wOSAxMzoxMjoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJICB0b2M6IGFkZCBnc3RfdG9jX2R1bXAoKSBmdW5jdGlvbiBmb3IgZGVidWdnaW5nCgkgIEFQSTogZ3N0X3RvY19kdW1wKCkKCjIwMTItMDctMDMgMDA6MDc6MTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGJ1cywgY2xvY2s6IG1ha2Ugc3VyZSB0aGVzZSBuZXZlciBoYXZlIGEgZmxvYXRpbmcgcmVmCgkgIENsZWFyIHRoZSBpbml0aWFsIGZsb2F0aW5nIHJlZiBpbiB0aGUgaW5pdCBmdW5jdGlvbiBmb3IKCSAgYnVzc2VzIGFuZCBjbG9ja3MuIFRoZXNlIG9iamVjdHMgY2FuIGJlIHNldCBvbiBtdWx0aXBsZQoJICBlbGVtZW50cywgc28gdGhlcmUncyBubyBjbGVhciBwYXJlbnQtY2hpbGQgcmVsYXRpb25zaGlwCgkgIGhlcmUuIElkZWFsbHkgd2UnZCBqdXN0IG5vdCBtYWtlIHRoZW0gZGVyaXZlIGZyb20KCSAgR0luaXRpYWxseVVub3duZWQgYXQgYWxsLCBidXQgc2luY2Ugd2Ugd2FudCB0byBrZWVwCgkgIHVzaW5nIEdzdE9iamVjdCBmZWF0dXJlcyBmb3IgZGVidWdnaW5nLCB3ZSdsbCBqdXN0IGRvCgkgIGl0IGxpa2UgdGhpcy4KCSAgVGhpcyBzaG91bGQgYWxzbyBmaXggc29tZSBwcm9ibGVtcyB3aXRoIGJpbmRpbmdzLCB3aGljaAoJICBzZWVtIHRvIGdldCBjb25mdXNlZCB3aGVuIHRoZXkgZ2V0IGZsb2F0aW5nIHJlZnMgZnJvbQoJICBub24tY29uc3RydWN0b3IgZnVuY3Rpb25zIChvciBmdW5jdGlvbnMgYW5ub3RhdGVkIHRvCgkgIGhhdmUgYSAndHJhbnNmZXIgZnVsbCcgcmV0dXJuIHR5cGUpLiBUaGlzIHdvcmtzIG5vdzoKCSAgZnJvbSBnaS5yZXBvc2l0b3J5IGltcG9ydCBHT2JqZWN0LCBHc3QKCSAgR09iamVjdC50aHJlYWRzX2luaXQoKQoJICBHc3QuaW5pdChOb25lKQoJICBwaXBlbGluZT1Hc3QuUGlwZWxpbmUoKQoJICBidXMgPSBwaXBlbGluZS5nZXRfYnVzKCkKCSAgcGlwZWxpbmUuc2V0X3N0YXRlKEdzdC5TdGF0ZS5OVUxMKQoJICBkZWwgcGlwZWxpbmU7CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzkyODYKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NzIwMgoKMjAxMi0wNy0wOCAyMDoxNTozMyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGluc3BlY3Q6IHN1cHByZXNzIGdsaWIgZGVwcmVjYXRpb25zIHdhcm5pbmdzIGZvciBHX1ZBTFVFX0FSUkFZCgoyMDEyLTA3LTA3IDIzOjEzOjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHRlc3RzOiBhZGQgbW9yZSB0ZXN0cyBmb3IgZGF0ZXRpbWUgdmFsdWUgc2VyaWFsaXNhdGlvbi9kZXNlcmlhbGlzYXRpb24KCSAgRXNwLiBvZiBwYXJ0aWFsIGRhdGV0aW1lcy4KCjIwMTItMDctMDcgMjI6NDY6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogdXNlIGRhdGV0aW1lIHNlcmlhbGlzZS9kZXNlcmlhbGlzZSBmdW5jdGlvbnMgZm9yIGRhdGV0aW1lcwoJICBUaGlzIHJlLXVzZXMgZXhpc3RpbmcgY29kZSBhbmQgbWFrZXMgc3VyZSB3ZSBwcm9wZXJseSBzZXJpYWxpc2UKCSAgYW5kIGRlc2VyaWFsaXNlIGRhdGV0aW1lcyB3aGVyZSBub3QgYWxsIGZpZWxkcyBhcmUgc2V0ICh0aHVzCgkgIGZpeGluZyBzb21lIHdhcm5pbmdzIHdoZW4gc2VyaWFsaXNpbmcgc3VjaCBkYXRldGltZXMpLgoKMjAxMi0wNy0wNyAyMjo0MDoxMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJICBkYXRldGltZTogZG8gb3VyIG93biBzZXJpYWxpc2F0aW9uIHNvIHdlIGNhbiBzZXJpYWxpc2UgbWljcm9zZWNvbmRzIGFzIHdlbGwKCSAgV2Ugc3RpbGwgZG9uJ3QgZG8gdGhhdCBpbiBfdG9faXNvODYwMV9zdHJpbmcoKSB0aG91Z2gsIHNpbmNlCgkgIHRoaXMgd2lsbCBwcm9iYWJseSBtb3N0bHkgYmUgdXNlZCBpbiB0YWdzLCB3aGVyZSBpdCBkb2Vzbid0CgkgIG1hdHRlciBzbyBtdWNoIGFuZCB0aGUgbWljcm9zZWNvbmQgYXJndW1lbnQgbWlnaHQgbm90IGJlCgkgIHdlbGwtcmVjZWl2ZWQgYnkgc29tZSB0YWcgcmVhZGVycy4KCjIwMTItMDctMDcgMTk6NDM6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZGF0ZXRpbWU6IHdoZW4gZGVzZXJpYWxpc2luZyBwYXJzZSBtaWNyb3NlY29uZHMgaWYgYXZhaWxhYmxlCgoyMDEyLTA3LTA3IDE2OjAxOjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIGRhdGV0aW1lOiBmaXggc2Vjb25kIHBhcnNpbmcgZmFpbHVyZSBjYXNlIHdoZW4gZGVzZXJpYWxpc2luZyBkYXRldGltZQoJICBXaGVuIHdlIGZhaWwgdG8gcGFyc2UgdGhlIG51bWJlciBvZiBzZWNvbmRzLCByZXNldCB0aGUgdmFsdWUgdG8gLTEKCSAgaW5zdGVhZCBvZiBwYXNzaW5nIHNvbWUgZXJyb3IgdmFsdWUgYXMgc2Vjb25kcy4gQWxzbywgd2UgY2FuIHN0aWxsCgkgIHRyeSB0byBwYXJzZSB0aW1lem9uZSBpbmZvcm1hdGlvbi4KCjIwMTItMDctMDcgMTU6NDQ6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktbWVtb3J5LmM6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS12aWRtZW0uYzoKCSAgZXhhbXBsZXM6IGZpeCBkZWJ1ZyBsb2cgcHJpbnQgZm9ybWF0cyBpbiBtZW1vcnkgZXhhbXBsZXMKCjIwMTItMDctMDcgMDE6Mzc6NTAgKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJuQGF4aXMuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZ3N0aW5mbzogQWRkIGRlc3Ryb3kgbm90aWZ5IGFyZ3VtZW50cyB0byBkZWJ1ZyBzdHVicwoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5NTM1CgoyMDEyLTA3LTA2IDIwOjM3OjA2ICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJybkBheGlzLmNvbT4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZ3N0c3RydWN0dXJlOiBTZXQgbGNvcHkgc3RyaW5nIGNvbnN0IGV4YWN0bHkgYXMgZ2xpYidzIG1hY3JvCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzk1MzQKCjIwMTItMDctMDYgMTc6MTk6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LW1lbW9yeS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktdmlkbWVtLmM6CgkgIG1lbW9yeTogZXhwb3NlIHRoZSBHc3RBbGxvY2F0aW9uIHN0cnVjdHVyZQoJICBFeHBvc2UgdGhlIEdzdEFsbG9jYXRpb24gc3RydWN0dXJlIGFuZCBwcm92aWRlIGFuIF9pbml0IGZ1bmN0aW9uLiBUaGlzIG1ha2VzIGl0CgkgIGVhc2llciB0byBtYWtlICdzdWJjbGFzc2VzJyBvZiB0aGUgYWxsb2NhdG9yIHRoYXQgY29udGFpbiBtb3JlIGluZm8uCgkgIEl0IGFsc28gYWxsb3dzIHVzIHRvIGV4cG9zZSB0aGUgZmxhZ3Mgb24gdGhlIGFsbG9jYXRvciBtaW5pb2JqZWN0LgoJICBNYWtlIGEgZmxhZyB0byBub3RlIHRoYXQgdGhlIGFsbG9jYXRvciB1c2VzIGEgY3VzdG9tIGFsbG9jIGZ1bmN0aW9uLgoKMjAxMi0wNy0wNiAxMjo0NToyOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogRGVtb3RlIFdBUk5JTkcgdG8gSU5GTwoJICBJdCBpcyBjb21tb24gdG8gdXNlIGdzdF9zdHJ1Y3R1cmVfZ2V0KCkgdG8ga25vdyBpZiBhIGZpZWxkIGlzIHByZXNlbnQKCSAgb3Igbm90LgoKMjAxMi0wNy0wNiAxMTo0MTo1MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogUmVtb3ZlIHVudXNlZCBkZWZpbmUKCjIwMTItMDctMDYgMTE6NDE6MzMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkgIGNoZWNrOiBnc3Rjb250cm9sbGVyLmggZG9lc24ndCBleGlzdCBhbnltb3JlCgoyMDEyLTA3LTA2IDExOjQwOjQ3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJICBjaGVjazogVXNlIGNvbnNpc3RlbmN5Y2hlY2sgb24gYmFzZXNyYwoKMjAxMi0wNy0wNiAxMTozODo1OCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSAgY29uc2lzdGVuY3ljaGVja2VyOiBDaGVjayBmb3IgU1RSRUFNX1NUQVJUIGV2ZW50CgkgIENoZWNrIHRoYXQgaXQgaXMgYWx3YXlzIGJlZm9yZSBhbnkgc2VyaWFsaXplZCBldmVudC4KCjIwMTItMDctMDYgMTA6MTM6MjggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgdHlwZWZpbmRlbGVtZW50OiByZW1vdmUgdW5pbXBsZW1lbnRlZCBtYXhpbXVtIHByb3BlcnR5CgoyMDEyLTA3LTA2IDEwOjA5OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkgIHRlZTogcmVtb3ZlIHVuaW1wbGVtZW50ZWQgaGFzLXNpbmstbG9vcCBwcm9wZXJ0eQoKMjAxMi0wNy0wNiAxMDowNzo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHJlbW92ZSBkZXByZWNhdGVkIHRlbXAtbG9jYXRpb24gdXNlLCBtYWtlIGl0IHJlYWQtb25seQoKMjAxMi0wNy0wNiAwOTo1Nzo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgaWRlbnRpdHk6IHJlbW92ZSBkZXByZWNhdGVkIGNoZWNrLXBlcmZlY3QgcHJvcGVydHkKCSAgUmVwbGFjZWQgYnkgdGhlIG1vcmUgc3BlY2lmaWMgY2hlY2staW1wZXJmZWN0LXt0aW1lc3RhbXAsb2Zmc2V0fQoKMjAxMi0wNy0wNiAxMTo0OTo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBxdWVyeTogdXNlIG1vcmUgZ2VuZXJpYyBzdHJ1Y3R1cmUgZm9yIG1ldGEgcGFyYW1zCgoyMDEyLTA3LTA2IDExOjIyOjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogbWFrZSBmaW5kX2FsbG9jYXRpb25fbWV0YSBtZXRob2QKCSAgTWFrZSBnc3RfcXVlcnlfZmluZF9hbGxvY2F0aW9uX21ldGEoKSB0aGF0IGFsc28gcmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgbWV0YWRhdGEKCSAgYW5kIHJlcGxhY2VzIGdzdF9xdWVyeV9oYXNfYWxsb2NhdGlvbl9tZXRhKCkuCgoyMDEyLTA3LTA2IDExOjAwOjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIHF1ZXJ5OiBhZGQgZmxhZ3MgdG8gYWxsb2NhdGlvbiBxdWVyeQoJICBNYWtlIGl0IHBvc3NpYmxlIHRvIGFkZCBBUEkgc3BlY2lmaWMgZmxhZ3MgdG8gdGhlIEFMTE9DQVRJT04gcXVlcnkuIFRoaXMgbWFrZXMKCSAgaXQgcG9zc2libGUgdG8gYWxzbyBjaGVjayB3aGF0IGtpbmRzIG9mIHN1YmZlYXR1cmVzIG9mIHRoZSBtZXRhZGF0YSBBUEkgYXJlCgkgIHN1cHBvcnRlZC4KCjIwMTItMDctMDYgMDk6MTE6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbWVtb3J5X3Rlc3QuYzoKCSAgdGVzdHM6IHJlbW92ZSB1bnVzZWQgaW5jbHVkZXMKCjIwMTItMDctMDUgMTg6MDc6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9tZW1vcnlfdGVzdC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktbWVtb3J5Lmg6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS12aWRtZW0uYzoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LXZpZG1lbS5oOgoJICBtZW1vcnk6IGFkZCBtb3JlIGV4YW1wbGVzCgkgIEFkZCBhbiBleGFtcGxlIG9mIGEgY3VzdG9tIGFsbG9jYXRvciB3aXRoIGEgY3VzdG9tIEFQSS4KCjIwMTItMDctMDUgMTc6MTE6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbWVtb3J5X3Rlc3QuYzoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LW1lbW9yeS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktbWVtb3J5Lmg6CgkgIG1lbW9yeTogYWRkIGdzdF9tZW1vcnlfaW5pdCgpCgkgIEFkZCBhIG1ldGhvZCB0aGF0IG1lbW9yeSBpbXBsZW1lbnRhdGlvbnMgY2FuIGNhbGwgdG8gaW5pdGlhbGl6ZSB0aGUgc3RhbmRhcmQKCSAgR3N0TWVtb3J5IHN0cnVjdHVyZS4KCSAgTW92ZSB0aGUgcGFyZW50IGhhbmRsaW5nIGluIHRoZSBfZnJlZSBoYW5kbGVyLgoJICBSZWFycmFuZ2Ugc29tZSBpbnRlcm5hbCBmdW5jdGlvbiBwYXJhbWV0ZXJzIHNvIHRoYXQgdGhlIG9yZGVyIGlzIGNvbnNpc3RlbnQuCgkgIEFkZCBtb3JlIG1lbW9yeSBleGFtcGxlcwoKMjAxMi0wNy0wNSAxNjoxNzo1MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGZpeCBzb21lIG1pbmlvYmplY3QgZG9jcwoKMjAxMi0wNy0wNSAxNDoyNToxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9tZW1vcnlfdGVzdC5jOgoJICB0ZXN0czogYWRkIG1lbW9yeSBleGFtcGxlCgoyMDEyLTA3LTA1IDEyOjI1OjQ1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSAgdGVzdHM6IGZpeCB0b2MgdW5pdCB0ZXN0IGJ1aWxkIGJ5IHJlbW92aW5nIHRvYyBxdWVyeSBzdHVmZiB0aGVyZSB0b28KCjIwMTItMDctMDUgMTM6MDM6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBldmVudDogQWRkIGZvcm1hdCBhbmQgcG9zaXRpb24gdG8gdGhlIHNlZ21lbnQtZG9uZSBldmVudAoKMjAxMi0wNy0wNSAxMjo1Mzo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1pbmlvYmplY3QudHh0OgoJICBkb2NzOiB1cGRhdGUgZG9jcwoKMjAxMi0wNy0wNSAxMjoxNzo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIG1pbmlvYmplY3Q6IGluY3JlYXNlIGFtb3VudCBvZiBwb3NzaWJsZSBmbGFncwoKMjAxMi0wNy0wNSAxMjo1Mjo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGV2ZW50OiBJbXBsZW1lbnQgc2VnbWVudC1kb25lIGV2ZW50CgoyMDEyLTA3LTA1IDEyOjM3OjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdG9jLnR4dDoKCSAgcGFydC10b2M6IFJlbW92ZSBzZWN0aW9uIGFib3V0IFRPQyBxdWVyeQoKMjAxMi0wNy0wNSAxMjozNDo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIGV4cG9ydGVkIHN5bWJvbHMgbGlzdAoKMjAxMi0wNy0wNSAxMjozMTo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIHF1ZXJ5OiBSZW1vdmUgdGhlIFRPQyBxdWVyeSwgaXQncyBub3QgdmVyeSB1c2VmdWwgbm93IHRoYXQgd2UgaGF2ZSBzdGlja3kgZXZlbnRzCgoyMDEyLTA3LTAzIDE4OjQ5OjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgcXVhcms6IFJlbW92ZSB1bm5lZWRlZCBxdWFya3MKCjIwMTItMDctMDMgMTg6NDU6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC10b2MudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRvYzogTWFrZSBzdHJ1Y3R1cmVzIG9wYXF1ZSBhbmQgY2xlYW4gdXAgZnVuY3Rpb24gbmFtZXMgYW5kIGZpZWxkcyBhIGJpdAoKMjAxMi0wNy0wNCAxNzowMjowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOmZpeCBkZWJ1ZyBjYXRlZ29yeQoKMjAxMi0wNy0wNCAxNjozODoxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0b2MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWluaW9iamVjdDogYWRkIGxvY2sgZnVuY3Rpb25hbGl0eSB0byBHc3RNaW5pT2JqZWN0CgkgIE1vdmUgdGhlIGxvY2tpbmcgbWV0aG9kcyBmcm9tIEdzdE1lbW9yeSB0byBHc3RNaW5pT2JqZWN0LgoJICBBZGQgYSBtaW5pb2JqZWN0IGZsYWcgdG8gZW5hYmxlIExPQ0tBQkxFIG9iamVjdHMuIExPQ0tBQkxFIG9iamVjdHMgY2FuCgkgIHVzZSB0aGUgbG9jay91bmxvY2sgQVBJIHRvIGNvbnRyb2wgdGhlIGFjY2VzcyB0byB0aGUgb2JqZWN0LgoJICBBZGQgYSBtaW5vYmplY3QgZmxhZyB0aGF0IGFsbG93cyB5b3UgdG8gbG9jayBhbiBvYmplY3QgaW4gcmVhZG9ubHkgbW9kZS4KCSAgTW9kaWZ5IHRoZSBfaXNfd3JpdGFibGUoKSBtZXRob2QgdG8gY2hlY2sgdGhlIHNoYXJlZCBjb3VudGVyIGZvciBMT0NLQUJMRQoJICBvYmplY3RzLiBUaGlzIGFsbG93cyB1cyB0byBjb250cm9sIHdyaXRhYmlsaXR5IHNlcGFyYXRlbHkgZnJvbSB0aGUgcmVmY291bnQgZm9yCgkgIExPQ0tBQkxFIG9iamVjdHMuCgoyMDEyLTA3LTA0IDE2OjA0OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGFkZCBuZXcgbG9ja2luZyBkZWJ1ZyBjYXRlZ29yeQoKMjAxMi0wNy0wNCAxMjoyODo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBmaXggaXNfZXhjbHVzaXZlCgoyMDEyLTA3LTA0IDEyOjAzOjMyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGFkZCBMT0NLX0ZMQUdfUkVBRFdSSVRFIGRlZmluZQoKMjAxMi0wNy0wNCAxMTo0ODozNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWVtb3J5LnR4dDoKCSAgbWVtb3J5OiB1cGRhdGUgZG9jcwoKMjAxMi0wNy0wNCAxMDoxMjo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBzbWFsbCBjbGVhbnVwCgoyMDEyLTA3LTAzIDEzOjUwOjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXBkYXRlIGZvciBuZXcgc3ltYm9scwoKMjAxMi0wNy0wMyAxMzo0Nzo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBGaXggdGhlIE5PX1NIQVJFIGZsYWcgaW4gdGhlIGNvbnN0cnVjdG9yCgkgIFRoZSBOT19TSEFSRSBmbGFnIGRvZXMgbm90IGluZmx1ZW5jZSB0aGUgZXhjbHVzaXZlbmVzcyBvZiB0aGUgYnVmZmVyIGluaXRpYWxseQoJICBidXQgb25seSBpZiBhIF9zaGFyZSBvcGVyYXRpb24gY2FuIGJlIGRvbmUuIE90aGVyd2lzZSwgd2Ugd291bGQgbm90IGJlIGFibGUgdG8KCSAgV1JJVEUgbWFwIGEgYnVmZmVyIG1lbW9yeSBiZWNhdXNlIGl0IHdvdWxkIGhhdmUgYSBzaGFyZSBjb3VudCBvZiBhdCBsZWFzdCAyLgoKMjAxMi0wNy0wMyAxMzo0NzozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBvbmx5IGNoZWNrIHRoZSBsb2NraW5nIHJlZmNvdW50CgoyMDEyLTA3LTAzIDEzOjQ2OjQwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGZpeCByZXNpemUKCSAgQ29ycmVjdGx5IHVwZGF0ZSB0aGUgZXhjbHVzaXZlIGxvY2tzCgoyMDEyLTA3LTAzIDEzOjQ1OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IFVzZSBsb2NrIGZsYWdzIGZvciBtYXAgZmxhZ3MKCSAgV2UgaW1wbGVtZW50IHRoZSBsb2NraW5nIGluIGdzdF9tZW1vcnlfbWFwIHdpdGggdGhlIGxvY2sgZmxhZ3MsIG1ha2UgbWF0Y2hpbmcKCSAgZmxhZ3MgdGhlIHNhbWUgbnVtYmVyIHNvIHRoYXQgd2UgY2FuIHVzZSB0aGUgbWFwIGZsYWdzIGRpcmVjdGx5IGFzIGxvY2sgZmxhZ3MuCgoyMDEyLTA3LTAzIDEyOjE4OjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGxvY2sgbWVtb3J5IEVYQ0xVU0lWRQoJICBsb2NrIHRoZSBtZW1vcnkgdGhhdCB0aGUgYnVmZmVyIHJlZmVyZW5jZXMgYXMgRVhDTFVTSVZFLiBUaGlzIG1ha2VzIHN1cmUgdGhhdAoJICB3aGVuIHdlIHNoYXJlIHRoZSBtZW1vcnkgd2l0aCBvdGhlciBidWZmZXJzIHRoYXQgaXQgYmVjb21lcyB1bndyaXRhYmxlLgoKMjAxMi0wNy0wMyAxMjoxNjoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBjbGVhbnVwIHRoZSBsb2NraW5nIGNvZGUKCSAgY2xlYW51cCBhbmQgZml4IHRoZSBsb2NraW5nIGNvZGUKCjIwMTItMDctMDMgMDk6NDg6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lbW9yeS50eHQ6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGV4cG9zZSB0aGUgaW50ZXJuYWwgbG9ja2luZyBhcGkKCSAgRXhwb3NlIHRoZSBpbnRlcm5hbGx5IHVzZWQgbWV0aG9kcyBmb3IgbG9ja2luZyBhbmQgdW5sb2NraW5nIHRoZSBvYmplY3QuIFBhc3MKCSAgdGhlIGFjY2VzcyBtb2RlIHRvIHRoZSB1bmxvY2sgZnVuY3Rpb24gZm9yIGV4dHJhIGNoZWNrcyBhbmQgYmVjYXVzZSB3ZSBuZWVkIGl0CgkgIGZvciB0aGUgRVhDTFVTSVZFIGxvY2tzLgoJICBNYWtlIHNvbWUgbmV3IGRlZmluZXMgdG8gc3BlY2lmeSB0aGUgZGVzaXJlZCBsb2NraW5nLgoJICBBZGQgYSBuZXcgRVhDTFVTSVZFIGxvY2sgbW9kZSB3aGljaCB3aWxsIGluY3JlbWVudCB0aGUgc2hhcmVkIGNvdW50ZXIuIE9iamVjdHMKCSAgd2l0aCBhIHNoYXJlZCBjb3VudGVyID4gMSB3aWxsIG5vdCBiZSBsb2NrYWJsZSBpbiBXUklURSBtb2RlLgoKMjAxMi0wNi0yOSAxNjozNzowNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIHRlc3RzOiBnc3RidWZmZXI6IGV4dGVuZCBidWZmZXIgY29weSB0ZXN0CgkgIC4uLiB0byBjaGVjayBmb3IgaW5kZXBlbmRlbmNlIG9mIGNvcGllZCBidWZmZXIuCgoyMDEyLTA3LTA0IDE4OjMyOjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogcmVtb3ZlIG91dGRhdGVkIGJpdHMgb2Ygd2FybmluZyBtZXNzYWdlCgkgIEkgdGhpbmsgd2UgY2FuIGJlIHJlYXNvbmFibGUgc3VyZSBwZW9wbGUgYXJlIHVzaW5nIGFuIHVwLXRvLWRhdGUKCSAgZ3N0LXVuaW5zdGFsbGVkIHNjcmlwdCBub3cuCgoyMDEyLTA3LTA0IDE4OjE2OjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIEFkZCB2ZXJzaW9uZWQgdmFyaWFudHMgb2Ygc29tZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMKCSAgSW1wcm92ZSBwYXJhbGxlbCBpbnN0YWxsYWJpbGl0eSBpbiBzZXR1cHMgbGlrZSBqaGJ1aWxkIGJ5CgkgIHByb3ZpZGluZyB2ZXJzaW9uZWQgdmFyaWFudHMgb2Ygc29tZSBlbnZpcm9ubWVudCB2YXJpYWJsZXM6CgkgIEdTVF9SRUdJU1RSWV8xXzAKCSAgR1NUX1BMVUdJTl9QQVRIXzFfMAoJICBHU1RfUExVR0lOX1NZU1RFTV9QQVRIXzFfMAoJICBHU1RfUExVR0lOX1NDQU5ORVJfMV8wCgkgIHdpbGwgbm93IGJlIGNoZWNrZWQgYmVmb3JlIGNoZWNraW5nIHRoZSB1bnZlcnNpb25lZCBvbmVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5NDA3CgoyMDEyLTA3LTA0IDE3OjU1OjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzYW1wbGUuaDoKCSAgZG9jczogZml4IHR5cG8gaW4gR3N0U2FtcGxlIGRvY3MKCjIwMTItMDctMDQgMTc6MzY6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHVyaS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6CgkgIHVyaTogdGhlcmUgYXJlIHZhbGlkIFVSSSBwcm90b2NvbHMgd2l0aCBvbmx5IHR3byBsZXR0ZXJzLCBsaWtlIGZkOi8vCgkgIFdlIGFkZGVkIGEgbWluaW11bSBsZW5ndGggb2YgdGhyZWUgbGV0dGVycyBvcmlnaW5hbGx5IHNvIHdlIHdvdWxkCgkgIGZhaWwgdG8gcmVjb2duaXNlIERPUy9XaW5kb3dzLXN0eWxlIGZpbGVuYW1lcyBhcyB2YWxpZCBVUklzIChhcyB3ZQoJICBzaG91bGQpLiBUd28gc2hvdWxkIGJlIGp1c3QgZmluZSBhcyB3ZWxsLgoKMjAxMC0xMC0xMyAxMzozNjowOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgd2luMzI6IEFQSSBhZGRpdGlvbnMKCjIwMDktMDktMjkgMDk6NTQ6MjQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGFxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGFxdWV1ZS5oOgoJICBkYXRhcXVldWU6IFVzZSBHc3RRdWV1ZUFycmF5CgoyMDA5LTA5LTI4IDE3OjMxOjQ5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIHF1ZXVlOiBVc2UgbmV3IEdzdFF1ZXVlQXJyYXkgZm9yIGxvY2FsIHN0b3JhZ2UuCgkgIE1ha2VzIF9jaGFpbigpIGFuZCBfbG9vcCgpIDI1JSBmYXN0ZXIKCjIwMDktMDktMjkgMDk6MDY6MTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy9xdWV1ZWFycmF5LmM6CgkgIGNoZWNrOiBOZXcgdW5pdCB0ZXN0IGZvciBHc3RRdWV1ZUFycmF5CgoyMDA5LTA5LTI4IDE3OjMwOjA0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGxpYnM6IE5ldyBncm93aW5nLW9ubHkgcXVldWUuCgkgIFRoaXMgaXMgYSBxdWV1ZSB3aGljaCBoYXMgdGhlIHNhbWUgQVBJIGFzIEdRdWV1ZSwgZXhjZXB0IHRoYXQ6CgkgICogSXQgdXNlcyBhbiBhcnJheSwgaW5zdGVhZCBvZiBhIGRvdWJsZWQtbGlua2VkLWxpc3QKCSAgKiBUaGUgYXJyYXkgY2FuIG9ubHkgZ3Jvdy4KCSAgVGhpcyBjb2RlIGlzIG5vdC10aHJlYWRzYWZlLiBJdCBpcyB1cCB0byB0aGUgb3duZXIgdG8gbWFrZSBzdXJlIHRoZQoJICBwcm9wZXIgbG9ja2luZyBpcyB0YWtlbiBiZWZvcmUgY2FsbGluZyB0aGlzIEFQSS4KCjIwMTItMDctMDQgMTY6MTY6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWdtZW50cy50eHQ6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIHNlZ21lbnQ6IG1ha2Ugc3VyZSB3ZSBkb24ndCBoYXZlIHVubWFwcGVkIHNlZWsgZmxhZ3MgbGl0dGVyaW5nIG91dCBzZWdtZW50IGZsYWdzCgkgIE1ha2UgR3N0U2Vla0ZsYWcgdG8gR3N0U2VnbWVudEZsYWcgY29udmVyc2lvbiBleHBsaWNpdCwgYW5kCgkgIHNldCBvbmx5IHRob3NlIHNlZWsgZmxhZ3MgaW4gdGhlIHNlZ21lbnQgZmxhZ3Mgd2hpY2ggYXJlCgkgIG1hcHBlZC4gVGhpcyBtYWtlcyBzdXJlIHdlIGRvbid0IGhhdmUgZXh0cmFuZW91cyBmbGFncwoJICBsaXR0ZXJpbmcgb3VyIHNlZ21lbnQgZmxhZyBmaWVsZCwgd2hpY2ggYWxzbyBmaXhlcyB0aGUKCSAgZGVidWcgcHJpbnRpbmcvc2VyaWFsaXNhdGlvbiBvZiBzZWdtZW50IGV2ZW50cyBpbiB0aGUKCSAgZGVidWcgbG9nLgoKMjAxMi0wNy0wNCAxMDoyNDoxMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IG1pbm9yIHBvcnRpbmctdG8tMC4xMS50eHQgdXBkYXRlCgoyMDEyLTA3LTA0IDEwOjIzOjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIHRlc3RzOiBtYWtlIGNoZWNrcyBmb3IgZnJvbS90b19nX2RhdGVfdGltZSgpIGFjdHVhbGx5IHdvcmsgcHJvcGVybHkKCjIwMTItMDYtMjkgMjE6NTI6NDcgLTA0MDAgIEpvc2h1YSBNLiBEb2UgPGpvc2hAam9zaGRvZS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRldGltZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGF0ZXRpbWU6IGFkZCBjb252ZXJzaW9uIHRvL2Zyb20gR0RhdGVUaW1lCgkgIEV4cG9zZXMgZXhpc3RpbmcgY29uc3RydWN0b3IuCgkgIEFQSTogZ3N0X2RhdGVfdGltZV90b19nX2RhdGVfdGltZSgpCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9uZXdfZnJvbV9nX2RhdGVfdGltZSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzkwODAKCjIwMTItMDctMDQgMDg6NTI6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1dGlsczogcmVtb3ZlIHVudXNlZCBnc3RfcHJpbnRfKiBmdW5jdGlvbnMKCjIwMTItMDctMDMgMjI6MjQ6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZHM6IG5vIG5lZWQgdG8gZGVhY3RpdmF0ZSBwYWRzIHRoYXQgYXJlIGFscmVhZHkgaW4gUEFEX01PREVfTk9ORQoKMjAxMi0wNy0wMyAyMjoyMDo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWRzOiBtYWtlIHBhZCBhY3RpdmF0aW9uIGRlYnVnIGxvZ3MgYSBiaXQgbW9yZSByZWFkYWJsZQoKMjAxMi0wNy0wMyAxOToxNToyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6CgkgIHRlc3RzOiBhZGQgdW5pdCB0ZXN0IGZvciBlbGVtZW50IHJlLXVzZSB1c2luZyBmYWtlc3JjCgoyMDEyLTA3LTAzIDE5OjA0OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBjbGVhciBFT1MgZmxhZyB3aGVuIGRlYWN0aXZhdGluZyBwYWRzIGZpeGluZyBlbGVtZW50IHJlLXVzZQoKMjAxMi0wNy0wMyAxNzoyNToyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBQb3N0IFRPQyBtZXNzYWdlcyBvbiB0aGUgYnVzIGluIHRoZSBzaW5rcywgc2ltaWxhciB0byB0YWdzCgoyMDEyLTA3LTAzIDEyOjM4OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGZpeCB0aGUgX2dldF9tYXBwZWQgZnVuY3Rpb24KCSAgRml4IHRoZSBpbnRlcm5hbCBfZ2V0X21hcHBlZCBmdW5jdGlvbi4gZ3N0X21lbW9yeV9tYWtlX21hcHBlZCgpIHRha2VzIG93bmVyc2hpcAoJICBvZiB0aGUgbWVtb3J5IHNvIHdlIG5lZWQgdG8ga2VlcCBhbiBhZGRpdGlvbmFsIHJlZiB1bnRpbCB3ZSBhcmUgZG9uZS4KCjIwMTItMDctMDMgMTI6MjM6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogYWRkIG1vcmUgZGVidWcgbG9nCgoyMDEyLTA3LTAzIDEwOjAyOjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogVGhlIEdBUCBldmVudCBpcyAocGFydGlhbGx5KSBpbXBsZW1lbnRlZCBub3csIFNUUkVBTV9DT05GSUcgaXNuJ3QKCjIwMTItMDYtMjggMTY6NDI6MDggKzA4MDAgIENodW4td2VpIEZhbiA8ZmFuY2h1bndlaUBzcmMuZ25vbWUub3JnPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJICBjb250cm9sYmluZGluZ3M6IGluY2x1ZGUgZ3N0L21hdGgtY29tcGF0LmggZm9yIGlzbmFuKCkKCSAgRHVlIHRvIHRoZSB1c2FnZSBvZiBpc25hbigpLCB3aGVyZSBhbiBpbXBsZW1lbnRhdGlvbiBpcyBhZGRlZCBpbnRvCgkgIGdzdC9tYXRoLWNvbXBhdC5oLiBGaXhlcyBidWlsZCBvbiBWaXN1YWwgQysrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5MTEyCgoyMDEyLTA2LTI5IDE2OjUyOjMxICswODAwICBDaHVuLXdlaSBGYW4gPGZhbmNodW53ZWlAc3JjLmdub21lLm9yZz4KCgkqIGdzdC9tYXRoLWNvbXBhdC5oOgoJICBtYXRoLWNvbXBhdC5oOiBhZGQgaW1wbGVtZW50YXRpb24gZm9yIGlzbmFuKCkgZm9yIFZpc3VhbCBDKysKCSAgVmlzdWFsIEMrKyBkb2VzIG5vdCBoYXZlIGlzbmFuKCksIHNvIGFkZCBmYWxsYmFjayB0bwoJICBtYXRoLWNvbXBhdC5oIChjb3VsZCB1c2UgX2lzbmFuKCkgaW4gdGhpcyBjYXNlLCBidXQKCSAgdGhpcyBtYWtlcyBpdCB3b3JrIGZvciBhbGwgY2FzZXMgd2hlcmUgaXNuYW4gaXMgbWlzc2luZykuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzkxMTIKCjIwMTItMDYtMjkgMTA6NTY6MzQgKzA4MDAgIENodW4td2VpIEZhbiA8ZmFuY2h1bndlaUBzcmMuZ25vbWUub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgZmRzaW5rLmM6IGZpeCBHX09TX1dJTjMyICNpZmRlZgoJICBQb3N0cG9uZSB0aGUgI2lmZGVmIHRvIGEgcG9pbnQgYWZ0ZXIgZ2xpYi5oICh2aWEgZ3N0ZmRzaW5rLmgpIGlzIGluY2x1ZGVkCgkgIHNvIHRoYXQgdGhlIG5lZWRlZCBkZWZpbmVzIGFuZCBoZWFkZXIgaW5jbHVkZXMgY2FuIGJlIGRvbmUgY29ycmVjdGx5LAoJICBlc3BlY2lhbGx5IG9uIFZpc3VhbCBDKysgYnVpbGRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5MTEyCgoyMDEyLTA1LTI3IDIzOjA5OjQzICswMzAwICBSYWltbyBKw6RydmkgPHJhaW1vLmphcnZpQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRldGltZS5jOgoJICB0ZXN0czogZml4IGJ1aWxkIG9mIGRhdGV0aW1lIHVuaXQgdGVzdCBpbiBXaW5kb3dzCgkgIEFsc28gaW5jbHVkZSBjb25maWcuaCBmb3IgYWxsIHRoZSAjaWZkZWYgSEFWRV9YWVouCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzY5MzUKCjIwMTItMDYtMjkgMTE6MTk6MDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogZG9uJ3QgdXNlIGdfc3RyZHVwX3ZhbHVlX2NvbnRlbnRzKCkKCSAgZ19zdHJkdXBfdmFsdWVfY29udGVudHMoKSBkb2VzIHNvbWUgZXh0cmEgZXNjYXBpbmcsIHByZXZlbnRpbmcgdXMgZnJvbSB1c2luZyB0aGUKCSAgb3V0cHV0IG9uIHRoZSBjb25zb2xlIHRvIGJlIHVzZWQgZGlyZWN0bHkuCgoyMDEyLTA2LTI4IDE0OjQxOjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICBkb2NzOiBleHBhbmQgYSBiaXQgbW9yZSBvbiBHU1RfREVCVUcgZG9jcwoKMjAxMi0wNi0yOCAxMTowMjoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBhZGQgX2FwcGVuZF9yZWdpb24gZnVuY3Rpb24KCSAgTWFrZSBhIGdzdF9idWZmZXJfYXBwZW5kX3JlZ2lvbigpIGZ1bmN0aW9uIHRoYXQgYWxsb3dzIHlvdSB0byBhcHBlbmQgYSBtZW1vcnkKCSAgcmVnaW9uIGZyb20gb25lIGJ1ZmZlciB0byBhbm90aGVyLiBUaGlzIGlzIGEgbW9yZSBnZW5lcmFsIHZlcnNpb24gb2YKCSAgZ3N0X2J1ZmZlcl9hcHBlbmQoKS4KCjIwMTItMDYtMjggMDk6MzY6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaGFuZGxlIERUUyBhbmQgUFRTCgkgIFVzZSBEVFMgYW5kIFBUUyBvZiB0aGUgc3ViY2xhc3MuCgkgIENhbGN1bGF0ZSBQVFMgZnJvbSBEVFMgb24ga2V5ZnJhbWVzLgoKMjAxMi0wNi0yNyAyMzowMToxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRldGltZS5jOgoJICB0ZXN0czogdGVzdCBkYXRldGltZSBkZXNlcmlhbGlzYXRpb24gYSBiaXQgbW9yZQoKMjAxMi0wNi0yNyAyMzowMDowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJICBkYXRldGltZTogaWdub3JlIDAgZGF5cyBvciBtb250aHMgaW4gZGF0ZXMKCSAgSGFuZGxlIDAgbW9udGhzIG9yIGRheXMgY29ycmVjdGx5IGluIGRhdGUgc3RyaW5ncywgc28gdGhhdAoJICAyMDEyLTA2LTAwIGlzIHBhcnNlZCB0aGUgc2FtZSBhcyAyMDEyLTA2LCBmb3IgZXhhbXBsZS4KCjIwMTItMDEtMDEgMTY6Mzg6MDggKzAxMDAgIElkYXIgVG9sbGVmc2VuIDxpdG9sbGVmc0BjaXNjby5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIG00L2NoZWNrLWNoZWNrcy5tNDoKCSAgYnVpbGQ6IE1ha2Ugc3VyZSBBQ19JTkNMVURFU19ERUZBVUxUIGlzIHVzZWQKCSAgV2l0aG91dCB1c2luZyBBQ19JTkNMVURFU19ERUZBVUxUIGV4cGxpY2l0bHksCgkgIGNlcnRhaW4gcGxhdGZvcm1zIHdpbGwgY29tcGxhaW4gdGhhdCB0aGUgaGVhZGVyCgkgIHdhcyBmb3VuZCwgYnV0IG5vdCB1c2FibGUgYnkgdGhlIGNvbXBpbGVyLgoJICBUaGlzIGhhcHBlbnMgZm9yIGluc3RhbmNlIG9uIFNvbGFyaXMgd2hlcmUgY2VydGFpbgoJICBoZWFkZXJzIGFyZSBuZWVkZWQgdG8gcHVsbCBpbiBwcm9wZXIgZGVmaW5lcy4KCSAgQWxzbyB1cGdyYWRlIHRvIG5ld2VyIGF1dG9jb25mIHN5bnRheCBhbmQgdXNlIHByb3BlciBxdW90aW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3MjkzCgoyMDEyLTA2LTI3IDIwOjUyOjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICB0ZXN0czogZml4IGJ1cyBsZWFrIGluIEdzdEJpbiB0ZXN0X3N0YXRlX2NoYW5nZV9za2lwIHRlc3QKCSAgU3RpbGwgbm90IHZhbGdyaW5kIGNsZWFuIHRob3VnaC4KCjIwMTItMDYtMjcgMTk6NTk6MjkgKzAxMDAgIENocmlzdG9waGUgRmVyZ2VhdSA8dGV1ZkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSAgcGFyc2U6IGVzY2FwZSBcIHdpdGggYSBcIGFzIHdlbGwsIHNvIHRoYXQgd2UgZG9uJ3QgbG9zZSB0aGUgXCB3aGVuIHVuZXNjYXBpbmcKCSAgSWYgd2UgaGF2ZSBhIGZpbGUgY2FsbGVkIEZvb1xCYXIub2dnLCB0aGVyZSBpcyBubyB3YXkgdG8gcGFzcwoJICB0aGF0IGZpbGVuYW1lIHByb3Blcmx5IHRvIGZpbGVzcmMgaW4gZ3N0X3BhcnNlX2xhdW5jaCgpLCBzaW5jZQoJICBnc3RfcGFyc2VfdW5lc2NhcGUoKSB3aWxsIGp1c3QgdW5lc2NhcGUgXHggdG8geC4KCSAgTm90IGNoZXJyeS1waWNraW5nIHRoaXMgaW50byAwLjEwIHNpbmNlIHRoZXJlIGFyZSBhcHBhcmVudGx5CgkgIGFwcHMgdGhhdCB3b3JrIGFyb3VuZCB0aGlzIHByb2JsZW0gYW5kIHdoaWNoIHdvdWxkIGJyZWFrIGlmCgkgIHdlIGZpeGVkIGl0IHRoZXJlIHRvby4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3MzMxOQoKMjAxMi0wNi0yNyAxNjozNzo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgZWxlbWVudGZhY3Rvcnk6IGFubm90YXRlIHNvbWUgb2YgdGhlIHR5cGUgZGVmaW5lcyBmb3IgZy1pCgkgIFR5cGUgaXMgbm90IHBpY2tlZCB1cCB5ZXQgdGhvdWdoLCBhbmQgd2Ugc3RpbGwgbmVlZAoJICB0byBhbm5vdGF0ZSB2YWx1ZXMgZm9yIHRoZSAnc2ltcGxlJyBkZWZpbmVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc3OTI1CgoyMDEyLTA2LTI3IDE0OjQ4OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5oOgoJICBjbG9jazogYW5ub3RhdGUgR1NUX0NMT0NLX1RJTUVfTk9ORSB3aXRoIGl0cyB2YWx1ZSBmb3IgZy1pCgkgIFRoZSB2YWx1ZSBub3cgZ2V0cyBwaWNrZWQgdXAsIGJ1dCBpdCBzdGlsbCB0aGlua3MgdGhlIHR5cGUKCSAgaXMgYSAnZ2ludCcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg5MjgKCjIwMTItMDYtMjcgMTM6MTk6MjMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIHRlc3RzOiBhZGQgc29tZSBkYXRldGltZSBzZXJpYWxpc2F0aW9uL2Rlc2VyaWFsaXNhdGlvbiB0ZXN0cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4MDMxCgoyMDEyLTA2LTI3IDEzOjE2OjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGRhdGV0aW1lOiBmaXggY29tcGFyZSBmdW5jdGlvbgoJICBUYWtlIGludG8gYWNjb3VudCB0aGF0IG5vdCBhbGwgZmllbGRzIG1pZ2h0IGJlIHZhbGlkICh0aG91Z2ggdGhleQoJICBhcmUgdmFsaWQgaW4gdGhlIEdEYXRlVGltZSBzdHJ1Y3R1cmUpLiBCdXQgd2Ugc2hvdWxkIGp1c3QgcmV0dXJuCgkgIHVub3JkZXJlZCBpZiB0aGUgc2V0IGZpZWxkcyBkb24ndCBtYXRjaC4gQWxzbywgZG9uJ3QgY2hlY2sKCSAgbWljcm9zZWNvbmRzIHdoZW4gY29tcGFyaW5nIGRhdGV0aW1lcywgc2luY2Ugd2UgZG9uJ3Qgc2VyaWFsaXNlCgkgIHRob3NlIGJ5IGRlZmF1bHQgaWYgdGhleSdyZSBhdmFpbGFibGUuIFRoaXMgZW5zdXJlcyBkYXRlIHRpbWVzIGFyZQoJICBzdGlsbCByZWdhcmRlZCBhcyBlcXVhbCBhZnRlciBzZXJpYWxpc2luZytkZXNlcmlhbGlzaW5nLgoKMjAxMi0wNi0xOCAwODowNjo0OSArMDIwMCAgT2xla3NpaiBSZW1wZWwgPGJ1Zy10cmFja0BmaXNoZXItcHJpdmF0Lm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRhdGV0aW1lOiBhZGQgc2VyaWFsaXNhdGlvbiB0byBhbmQgZGVzZXJpYWxpc2F0aW9uIGZyb20gSVNPIDg2MDEgc3RyaW5ncwoJICBTb21lIHRhZyBwYXJzZXJzIGFuZCB3cml0ZXJzIHVzZSBzYW1lIGRhdGV0aW1lIGZvcm1hdCBiYXNlZCBvbiBJU08gODYwMS4KCSAgV2UgY2FuIHJlZHVjZSBzb21lIGNvZGUgYnkgY3JlYXRpbmcgc29tZSBnZW5lcmFsIGZ1bmN0aW9ucyBmb3IgaXQuCgkgIEFQSTogZ3N0X2RhdGVfdGltZV90b19pc284NjAxX3N0cmluZygpCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9uZXdfZnJvbV9pc284NjAxX3N0cmluZygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzgwMzEKCjIwMTItMDYtMDcgMTE6MzA6NDggKzAxMDAgIExpb25lbCBMYW5kd2VybGluIDxsbGFuZHdlcmxpbkBnbWFpbC5jb20+CgoJKiBNYWtlZmlsZS5hbToKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSAgY29uZmlndXJlOiBhZGQgLS1kaXNhYmxlLXRvb2xzIGFuZCAtLWRpc2FibGUtYmVuY2htYXJrcyBvcHRpb25zCgkgIEFkZCBvcHRpb24gdG8gYXZvaWQgYnVpbGQgYmluYXJpZXMuIFdoZW4gYnVpbGRpbmcgZm9yIHBsYXRmb3JtcyBsaWtlCgkgIGFuZHJvaWQsIHlvdSBtaWdodCB3YW50IHRvIG5vdCBsaW5rIGFueSAiZmluYWwiIGJpbmFyeSwgbW9zdGx5IGJlY2F1c2UKCSAgaXQgcmVxdWlyZXMgc3BlY2lhbCBsaW5rIGZsYWdzIG9yIG90aGVyIHBhcnRzIG9mIGNvZGUgdGhhdCBhcmVuJ3QKCSAgaW4gdGhlIEMgbGlicmFyeS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NzYyMQoKMjAxMi0wNi0yNiAyMDo0MToxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3R0b2MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJICB0b2M6IHB1dCB0b2MgZGlyZWN0bHkgaW50byBldmVudC9tZXNzYWdlL3F1ZXJ5IHN0cnVjdHVyZQoJICBOb3cgdGhhdCBUT0NzIGFyZSByZWZjb3VudGVkIGFuZCBoYXZlIGEgR1R5cGUsIHdlIGNhbiBqdXN0CgkgIHN0dWZmIGEgcmVmIG9mIHRoZSBUT0MgZGlyZWN0bHkgaW50byB0aGUgdmFyaW91cyB0b2MKCSAgZXZlbnQvbWVzc2FnZS9xdWVyeSBzdHJ1Y3R1cmVzIGFuZCBnZXQgcmlkIG9mIGxvdHMgb2YKCSAgY3JhY2t0YXN0aWMgR3N0U3RydWN0dXJlIDwtPiBHc3RUb2Mgc2VyaWFsaXNhdGlvbiBhbmQKCSAgZGVzZXJpYWxpc2F0aW9uIGNvZGUuIFdlIGxvc2Ugc29tZSBUT0Mgc2FuaXR5IGNoZWNraW5nCgkgIGluIHRoZSBwcm9jZXNzLCBidXQgdGhhdCBzaG91bGQgcmVhbGx5IGJlIGRvbmUgd2hlbgoJICBpdCdzIGJlaW5nIGNyZWF0ZWQgYW55d2F5LgoKMjAxMi0wNi0yNiAxODoyMjozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIFJldmVydCAiYnVzOiBza2lwIGdzdF9idXNfY3JlYXRlX3dhdGNoIGFzIEdTb3VyY2UgaXMgbm90IGludHJvc3BlY3RhYmxlIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDkzMGUzNmE4OWJjNWMyYTBmMmU0YWI3YTczYmZhNjMwYzFlMDMzNmEuCgkgIFRoaXMgc2hvdWxkbid0IGhhdmUgYmVlbiBwdXNoZWQsIHNpbmNlIEdTb3VyY2UgaXMgbm93IGhhbmRsZWQKCSAgKGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTc3MjUpCgoyMDExLTA4LTI5IDEzOjU3OjAzIC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBza2lwIGdzdF9idXNfY3JlYXRlX3dhdGNoIGFzIEdTb3VyY2UgaXMgbm90IGludHJvc3BlY3RhYmxlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTc2NDAKCjIwMTItMDYtMjYgMTc6MzU6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogc29tZSBtb3JlIGFkZGl0aW9ucyB0byB0aGUgcG9ydGluZy10by0wLjExIGd1aWRlCgoyMDEyLTA2LTI2IDE3OjI3OjMxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6CgkqIHRvb2xzL3Rvb2xzLmg6CgkgIHRvb2xzOiBtaW5vciBjbGVhbi11cAoJICBHZXQgcmlkIG9mIHN1cGVyZmx1b3VzIGFyZ3VtZW50LgoKMjAxMi0wNi0yNiAxNzowNDowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJKiB0b29scy90b29scy5oOgoJICB0b29sczogcmVtb3ZlIHVzZWxlc3MgZ19zZXRfcHJnbmFtZSgpIHdyYXBwZXIKCjIwMTItMDYtMjYgMTY6NTU6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogcG9pbnQgcGVvcGxlIHRvIHJpZ2h0IGJpbmFyeSB3aGVuIGEgY3Jhc2ggaGFwcGVucwoJICAiZ3N0LWxhdW5jaCIgaXMgdGhlIDAuMTAgd3JhcHBlciBzY3JpcHQsIHVzaW5nIHRoYXQgd2l0aAoJICBnZGIgaXMgbm90IGdvaW5nIHRvIHlpZWxkIGdyZWF0IHJlc3VsdHMuCgoyMDEyLTA2LTI2IDE2OjQyOjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBidW1wIEdMaWIgcmVxdWlyZW1lbnQgdG8gbm93LXJlbGVhc2VkIHN0YWJsZSB2ZXJzaW9uCgoyMDEyLTA2LTI2IDE2OjQyOjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiByZW1vdmUgc29tZSBkZWFkIGNvZGUgZm9yIG9sZCBHTGliIHZlcnNpb25zCgoyMDEyLTA2LTI1IDIzOjE3OjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0b2M6IGFkZCBtb3JlIGVudHJ5IHR5cGVzCgkgIE1ha2UgZW50cnkgdHlwZXMgbGVzcyBhYnN0cmFjdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODc0MgoKMjAxMi0wNi0xNyAxMjo0ODowNCArMTAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgYSBjb3VwbGUgb2Ygbm90ZXMgZm9yIHRoZSAwLjExIHBvcnRpbmcgZ3VpZGUKCjIwMTItMDYtMjYgMDk6NTE6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWluaW9iamVjdDogYWRkIHN0ZWFsX3FkYXRhCgkgIFJld29yayB0aGUgcWRhdGEgY29kZSBhIGxpdHRsZQoKMjAxMi0wNi0yNSAxOTo1Mjo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuYzoKCSogZ3N0L2dzdHRvY3NldHRlci5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0b2NzZXR0ZXI6IGNsZWFuIHVwIGFuZCB1cGRhdGUgQVBJIGZvciByZWZjb3VudGVkIFRPQ3MKCSAgTGV0J3Mga2VlcCBpdCBzaW1wbGUgZm9yIG5vdzoKCSAgZ3N0X3RvY19zZXR0ZXJfcmVzZXRfdG9jKCkgLT4gZ3N0X3RvY19zZXR0ZXJfcmVzZXQoKQoJICBnc3RfdG9jX3NldHRlcl9nZXRfdG9jX2NvcHkoKSAtPiByZW1vdmVkCgkgIGdzdF90b2Nfc2V0dGVyX2dldF90b2MoKSAtPiByZXR1cm5zIGEgcmVmIG5vdwoJICBnc3RfdG9jX3NldHRlcl9nZXRfdG9jX2VudHJ5X2NvcHkoKSAtPiByZW1vdmVkLAoJICB1c2UgVE9DIGZ1bmN0aW9ucyBpbnN0ZWFkCgkgIGdzdF90b2Nfc2V0dGVyX2dldF90b2NfZW50cnkoKSAtPiByZW1vdmVkLAoJICB1c2UgVE9DIGZ1bmN0aW9ucyBpbnN0ZWFkCgkgIGdzdF90b2Nfc2V0dGVyX2FkZF90b2NfZW50cnkoKSAtPiByZW1vdmVkLAoJICB0byBhdm9pZCBwcm9ibGVtcyB3aXRoIChyZWZjb3VudC1kZXBlbmRlbnQpCgkgIHdyaXRhYmlsaXR5IG9mIFRPQzsgdXNlIFRPQyBmdW5jdGlvbnMgaW5zdGVhZAoKMjAxMi0wNi0yNSAwOTozMjo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBpbXByb3ZlIGRvY3MKCSAgTWVudGlvbiB0aGF0IGN1c3RvbSBhbGxvY2F0b3IgZnVuY3Rpb25zIGNhbiBwYXNzIHdoYXRldmVyIHRoZXkgd2FudCB0byB0aGUKCSAgdXNlcl9kYXRhLgoKMjAxMi0wNC0wNiAxODowMDozMyArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgdGFnc2V0dGVyOiB1c2UgR19ERUZJTkVfSU5URVJGQUNFXyogbWFjcm8KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3MzY0MQoKMjAxMi0wNC0wNiAxNzo1OTozNSArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R0b2NzZXR0ZXIuYzoKCSogZ3N0L2dzdHRvY3NldHRlci5oOgoJICB0b2NzZXR0ZXI6IHVzZSBHX0RFRklORV9JTlRFUkZBQ0VfKiBtYWNybwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjczNjQxCgoyMDEyLTA2LTI1IDAwOjEwOjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC10b2MudHh0OgoJICBkb2NzOiB1cGRhdGUgZGVzaWduIGRvY3MgZm9yIFRPQyBBUEkgY2hhbmdlcyB0b28KCjIwMTItMDYtMjQgMjA6MTA6MzQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvY3NldHRlciwgZ3N0LWxhdW5jaCwgdGVzdHM6IHVwZGF0ZSBmb3IgR3N0VG9jIEFQSSBjaGFuZ2VzCgoyMDEyLTA2LTI0IDIwOjA4OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0b2M6IG1ha2UgR3N0VG9jIGFuZCBHc3RUb2NFbnRyeSBtaW5pIG9iamVjdHMKCSAgQmVjYXVzZSB3ZSBjYW4sIGFuZCBpbiBvcmRlciB0byBtYWtlIHRoZW0gcmVmY291bnRlZC4KCjIwMTItMDYtMjMgMjE6NDI6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBmaXggY29uZnVzaW5nIGxvZyBtZXNzYWdlCgoyMDEyLTA2LTIzIDIxOjM1OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBmaXggaW50NjQgLSBpbnQ2NCByYW5nZSBpbnRlcnNlY3Rpb24gb24gYmlnIGVuZGlhbiBzeXN0ZW1zCgkgIFdvcmtzIGJldHRlciBpZiB3ZSB1c2UgdGhlIHZfaW50NjQgZmllbGQgb2YgdGhlIEdWYWx1ZSBpbnN0ZWFkIG9mIHZfaW50LgoKMjAxMi0wNi0yMyAxOTo1NjoxMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RzYW1wbGUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgbWluaW9iamVjdHM6IHBhc3MgY29weSwgZGlzcG9zZSBhbmQgZnJlZSBmdW5jdGlvbiB0byBnc3RfbWluaV9vYmplY3RfaW5pdCgpCgkgIFNvIG1pbmkgb2JqZWN0cyBkb24ndCBoYXZlIHRvIHBva2UgaW50byB0aGUgR3N0TWluaU9iamVjdCBwYXJ0CgkgIG9mIHRoZSBzdHJ1Y3R1cmUuIFNhdmVzIGxpbmVzIG9mIGNvZGUsIGFuZCBzZWVtcyBzbGlnaHRseSBjbGVhbmVyLgoJICBXZSBkb24ndCBoYXZlIHByb3BlciBPTyBoaWVyYXJjaGllcyBvciBtZXRob2RzIGhlcmUgYWZ0ZXIgYWxsLgoKMjAxMi0wNi0yMyAxNzowNTowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IHJlbW92ZSBzb21lIG91dGRhdGVkIEZJWE1FcyBhbmQgY29tbWVudHMKCjIwMTItMDYtMjMgMTc6MDQ6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkgIHNhbXBsZTogc29tZSBtb3JlIGctaSBhbm5vdGF0aW9ucwoKMjAxMi0wNi0yMyAxNjo1OToxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkgIHNhbXBsZTogYWRkIGNvbXBhcmUgZnVuY3Rpb24gZm9yIEdzdFNhbXBsZQoJICBTaG91bGQgbWFrZSBnc3RfdGFnX2xpc3RfaXNfZXF1YWwoKSB3b3JrIHByb3Blcmx5IHdpdGggaW1hZ2UgdGFncy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3MjYzNwoKMjAxMi0wNi0yMyAxNjozMDowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogZml4IGJ1ZmZlciBjb21wYXJlIGZ1bmN0aW9uCgoyMDEyLTA2LTIzIDE0OjQxOjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOgoJICB0ZXN0czogYWRkIHVuaXQgdGVzdCBmb3IgZ3N0X2VsZW1lbnRfbWFrZV9mcm9tX3VyaSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU0NjcKCjIwMTItMDYtMjMgMTQ6NDE6MTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogdXBkYXRlIGZvciBnc3RfZWxlbWVudF9tYWtlX2Zyb21fdXJpKCkgY2hhbmdlCgoyMDEyLTA2LTIzIDE0OjQwOjE3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkgIHVyaTogYWRkIGVycm9yIGFyZ3VtZW50IHRvIGdzdF9lbGVtZW50X21ha2VfZnJvbV91cmkoKQoJICBTbyBjYWxsZXJzIGNhbiBkaWZmZXJlbnRpYXRlIGJldHdlZW4gdGhlcmUgbm90IGJlaW5nIGEKCSAgaGFuZGxlciBmb3IgdGhlIHByb3RvY29sLCBhbmQgdGhlbSBub3QgYWNjZXB0aW5nIHRoZSBVUkkKCSAgZm9yIHNvbWUgcmVhc29uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ1NDY3CgoyMDEyLTA2LTIzIDEyOjM3OjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBhbm5vdGF0ZSBHc3RNYXBJbmZvIGRhdGEgYXMgYXJyYXkgZm9yIGctaQoKMjAxMi0wNi0yMCAxMjo1MzowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiByZW1vdmUgcG9pbnRsZXNzIGdldF9zdGF0ZSgpIGluIGdzdC1sYXVuY2gKCSAgU3RhdGUgY2hhbmdlcyB0byBOVUxMIHN0YXRlIGFyZSBhbHdheXMgc3luYy4KCjIwMTItMDYtMjEgMDE6Mjg6NDMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBhdm9pZCBub3RpZnktdGFncyBob2xkaW5nIGxvY2sKCSAgdW5sb2NrIGJlZm9yZSBpc3N1aW5nIHRoaXMgbm90aWZpY2F0aW9uIHRvIHByZXZlbnQKCSAgZGVhZGxvY2tzIHdoZW4gb3RoZXIgZWxlbWVudHMgcmVhY3RzIHRvIG5ldyB0YWdzLgoJICBGaXhlcyAjNjc4MjIwCgoyMDEyLTA2LTE4IDE2OjU0OjI5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgZ3N0LXAtYmFkIGdzdC1saWJzIHRvIHRoZSBwYXRoCgkgIE1ha2VzIHZpZGVvcGFyc2VycyBhbmQgY2FtZXJhYmlucyBmcm9tIGJhZCB1c2FibGUgZnJvbSBhbiB1bmluc3RhbGxlZAoJICBlbnZpcm9ubWVudCBhdCBvc3gKCjIwMTItMDYtMjAgMTM6Mjg6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBhZGQgZGVzdHJveSBub3RpZnkgdG8gZ3N0X2RlYnVnX2FkZF9sb2dfZnVuY3Rpb24oKQoKMjAxMi0wNi0yMCAxMzoyNzozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBpbXByb3ZlIGludHJvc3BlY3Rpb24gYW5ub3RhdGlvbgoKMjAxMi0wNi0yMCAxMjoyOTozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3J0cG9vbC10ZXN0LmM6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvc3RyZWFtLXN0YXR1cy5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGJ1czogYWRkIEdEZXN0cm95Tm90aWZ5IHRvIHNldF9zeW5jX2hhbmRsZXIoKQoKMjAxMi0wNi0yMCAxMjowNjoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUKCjIwMTItMDYtMjAgMTE6NTk6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkgIHRhc2s6IGFkZCBzZXBhcmF0ZSBtZXRob2RzIHRvIGFkZCBlbnRlci9sZWF2ZSBjYWxsYmFjawoJICBSZW1vdmUgdGhlIHN0cnVjdHVyZSBvZiBjYWxsYmFja3MgYW5kIHJlcGxhY2Ugd2l0aCBzZXBhcmF0ZSBtZXRob2RzIHRvIHJlZ2lzdGVyCgkgIGVhY2ggY2FsbGJhY2suIFRoaXMgaXMgbXVjaCBtb3JlIGJpbmRpbmcgZnJpZW5kbHkuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzc4OTgKCjIwMTItMDYtMjAgMTA6MzE6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogYWRkIEdEZXN0cm95Tm90aWZ5IHRvIF9uZXcKCSAgQWRkIGEgR0Rlc3Ryb3lOb3RpZnkgdG8gdGhlIHVzZXJfZGF0YSB3ZSBwYXNzIHRvIGdzdF90YXNrX25ldygpCgkgIENoYW5nZSBnc3RfcGFkX3N0YXJ0X3Rhc2soKSB0byBhbHNvIHRha2UgdGhlIG5vdGlmeQoKMjAxMi0wNi0yMCAwOTo1ODoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdG1ldGEuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY2xvY2s6IHJlbW92ZSBfZnVsbCB2ZXJzaW9uCgkgIFJlbmFtZSBnc3RfY2xvY2tfaWRfd2FpdF9hc3luY19mdWxsKCkgdG8gZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmMoKQoJICBhbmQgcmVtb3ZlIHRoZSBvbGQgZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmMoKSB2ZXJzaW9uLgoKMjAxMi0wNi0yMCAwOToyMjo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0Lmg6CgkgIG5ldHRpbWVwYWNrZXQ6IG1ha2UgYm94ZWQKCjIwMTItMDYtMTkgMTk6NTU6MzAgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSAgbmV0OiBmaXggc29tZSBhcmd1bWVudCBuYW1lcyBpbiBkb2N1bWVudGF0aW9uCgoyMDEyLTA2LTE5IDE5OjU1OjAyIC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuaDoKCSAgY29udHJvbGxlcjogYXNzb3J0ZWQgbWlub3IgaW50cm9zcGVjdGlvbiBmaXhlcwoKMjAxMi0wNi0xOSAxOTo1Mzo1NCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogYWRkIHNvbWUgbWlzc2luZyBkb2N1bWVudGF0aW9uLCBpbmNsdWRpbmcgYW5ub3RhdGlvbnMKCjIwMTItMDYtMTkgMTg6NDE6MDQgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJICBiYXNlOiBhZGQgc29tZSBtaXNzaW5nIGludHJvc3BlY3Rpb24gYW5ub3RhdGlvbnMKCjIwMTItMDYtMTkgMTc6Mzc6NTkgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkgIHRhc2sgcG9vbDogc2V0IHNjb3BlIG9mIGdzdF90YXNrX3Bvb2xfcHVzaCBjYWxsYmFjayB0byBhc3luYwoKMjAxMi0wNi0xOSAxNzozMzo0NSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkgIGludHJvc3BlY3Rpb246IGFkZCBtaXNzaW5nIHJldHVybiB2YWx1ZSBhbm5vdGF0aW9ucwoKMjAxMi0wNi0xOSAxNjowOToxMCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3R0YXNrLmg6CgkqIGdzdC9nc3R0YXNrcG9vbC5oOgoJKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSAgaW50cm9zcGVjdGlvbjogcmVuYW1lIHNvbWUgImRhdGEiIGFyZ3VtZW50cyB0byAidXNlcl9kYXRhIgoJICBHT2JqZWN0IEludHJvc3BlY3Rpb24gd2lsbCBhdXRvbWF0aWNhbGx5IHRyZWF0ICJ1c2VyX2RhdGEiIGFyZ3VtZW50cwoJICBhcyBjbG9zdXJlIGRhdGEuCgoyMDEyLTA2LTE5IDE2OjA4OjQ2IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9nc3R0b2MuaDoKCSAgdG9jOiBhZGQgc29tZSBtaXNzaW5nIGVsZW1lbnQtdHlwZSBhbm5vdGF0aW9ucwoKMjAxMi0wNi0xOSAxNjowNjo0OSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXIgcG9vbDogcHV0IEdzdEJ1ZmZlclBvb2xBY3F1aXJlUGFyYW1zIHR5cGVkZWYgYmVmb3JlIHN0cnVjdAoJICBXb3JrcyBhcm91bmQgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTU4MTUyNQoKMjAxMi0wNi0xOSAxNjoxNDo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHByZXJvbGwgYW5kIHN5bmMgb24gZ2FwIGV2ZW50cwoKMjAxMi0wNi0xOSAxNjowODowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHJlb3JnYW5pemUgdGhlIGNvZGUgYSBsaXR0bGUKCSAgTW92ZSB0aGUgY29kZSB0byBnZXQgdGhlIHN5bmMgdGltZXMgdG9nZXRoZXIuCgoyMDEyLTA2LTE5IDE0OjMwOjM3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBGaXggZG9jcyB0eXBvCgoyMDEyLTA2LTE5IDE0OjA1OjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGNsb2NrOiBhc3NlcnQgYWJvdXQgdGltZXN0YW1wIG92ZXJmbG93cwoJICBBc3NlcnQgd2hlbiBjb252ZXJ0aW5nIHRvIHRpbWV2YWwgYW5kIHRpbWVzcGVjIGFib3V0IG92ZXJmbG93cy4gVGhpcyBjYW4gaGFwcGVuCgkgIG9uIHBsYXRmb3JtcyB3aXRoIDMyYml0cyBsb25nLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4MTgxCgoyMDEyLTA2LTE5IDEwOjEzOjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHJlbW92ZSBnc3RfcGFkX3NldF9jYXBzCgoyMDEyLTA2LTE5IDEwOjMyOjEwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBPbmx5IHByb3h5IHRoZSBhbGxvY2F0aW9uIHF1ZXJ5IGZvciB0aGUgYWN0aXZlIHBhZCBhbmQgc2VuZCByZWNvbmZpZ3VyZSBldmVudHMgdG8gdGhlIG9sZC9uZXcgcGFkIHdoZW4gc3dpdGNoaW5nIHBhZHMKCjIwMTItMDYtMTggMTY6MTQ6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IG1vdmUgZ3N0X3BhZF9zZXRfY2FwcygpIHRvIGNvbXBhdAoJICBXZSB3YW50IGNvZGUgdG8gZXhwbGljaXRseSBzZW5kIGEgY2FwcyBldmVudCBpbnN0ZWFkLgoKMjAxMi0wNi0xOCAxNjoxMzoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogZml4IHNvbWUgZG9jcwoKMjAxMi0wNi0xOCAxNTo1MjowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IHNtYWxsIGRvYyBmaXgKCjIwMTItMDYtMTggMTU6Mjg6MjAgKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJuQGF4aXMuY29tPgoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGNsb2NrOiBmaXggY29tcGlsZXIgd2FybmluZwoJICBDYXN0IHRvIHRoZSByaWdodCB2YWx1ZSwgaXQgbWlnaHQgaW5kZWVkIG92ZXJmbG93IGJ1dCB3ZSB3YW50IHRoZSBjb21waWxlciB0bwoJICBpZ25vcmUgdGhhdC4KCjIwMTItMDYtMTggMTU6MjI6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBtaW5pb2JqZWN0OiBoaWRlIHFkYXRhIGFycmF5IGxheW91dAoKMjAxMi0wNi0xOCAxNToyMTozMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWV0YS50eHQ6CgkgIGRvY3M6IGNsYXJpZnkgcWRhdGEgd3J0IHRvIG1ldGFkYXRhCgoyMDEyLTA2LTE4IDE1OjIxOjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZSBmb3IgbmV3IGFwaQoKMjAxMi0wNi0xNSAxNjo1Njo0NiAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSAgaW50cm9zcGVjdGlvbjogYXNzb3J0ZWQgaW50cm9zcGVjdGlvbiBhbmQgZG9jdW1lbnRhdGlvbiBmaXhlcyBpbiBiYXNlCgoyMDEyLTA2LTE1IDE4OjM1OjA1IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBhZGQgbWlzc2luZyBlbGVtZW50LXR5cGUgYW5ub3RhdGlvbnMKCjIwMTItMDYtMTUgMTY6MTQ6NDkgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5oOgoJICBhdG9taWMgcXVldWU6IHJlZ2lzdGVyIGFzIGJveGVkIHR5cGUKCjIwMTItMDYtMTUgMTY6NDM6MzAgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgaW50cm9zcGVjdGlvbjogYXNzb3J0ZWQgaW50cm9zcGVjdGlvbiBhbmQgZG9jdW1lbnRhdGlvbiBmaXhlcwoJICBUaGVzZSBjaGFuZ2VzIGFyZSB0byBjbGVhbiB1cCBzeW50YXggaXNzdWVzIHN1Y2ggYXMgbWlzc2luZyBjb2xvbnMsCgkgIG1pc3Npbmcgc3BhY2VzLCBldGMuLCBhbmQgbWlub3IgaXNzdWVzIHN1Y2ggYXMgYXJndW1lbnQgbmFtZXMgaW4KCSAgaGVhZGVycyBub3QgbWF0Y2hpbmcgdGhlIGltcGxlbWVudGF0aW9uIGFuZC9vciBkb2N1bWVudGF0aW9uLgoKMjAxMi0wNi0xNSAxNDo1MDo0OCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuaDoKCSAgdG9jIHNldHRlcjogY2hhbmdlIEdzdFRvY1NldHRlcklGYWNlIHRvIEdzdFRvY1NldHRlckludGVyZmFjZQoJICBXaXRob3V0IHRoaXMgR09iamVjdCBJbnRyb3NwZWN0aW9uIGRvZXMgbm90IHJlY29nbml6ZSB0aGUgY29ubmVjdGlvbgoJICB0byBHc3RUb2NTZXR0ZXIuCgoyMDEyLTA2LTE4IDEyOjE1OjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogdXBkYXRlIGRvY3MgYSBsaXR0bGUKCjIwMTItMDYtMTggMTE6MzY6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBiYXNlc2luazogd2FpdF9lb3MoKSAtPiB3YWl0KCkKCSAgUmVuYW1lIGdzdF9iYXNlX3Npbmtfd2FpdF9lb3MoKSB0byBnc3RfYmFzZV9zaW5rX3dhaXQoKSB0byBhdm9pZCBjb25mdXNpb24gYW5kCgkgIGludHJvc3BlY3Rpb24gcHJvYmxlbXMgd2l0aCB0aGUgOjp3YWl0X2VvcyB2bWV0aG9kLiBBbHNvIHRoaXMgbWV0aG9kIGNhbiBiZSB1c2VkCgkgIHRvIHdhaXQgZm9yIG90aGVyIHRoaW5ncyB0aGFuIEVPUy4gVXBkYXRlIHRoZSBkb2NzIGEgbGl0dGxlLgoKMjAxMi0wNi0xOCAxMDoxMzozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6Y2hlY2sgY2FwcyBhcmd1bWVudAoJICBDYXBzIHNob3VsZCBiZSBOVUxMIG9yIGZpeGVkIHdoZW4gY29uZmlndXJlZCBpbiBhIGJ1ZmZlcnBvb2wKCjIwMTItMDYtMTUgMTc6MDE6MzcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBOVUxMIGlzIG5vdCBhIHZhbGlkIGNhcHMgYW55bW9yZQoKMjAxMi0wNi0xNSAxNTo0ODo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSAgZG9jczogcmV2aWV3IHRoZSBidWZmZXJpbmcgZG9jcwoKMjAxMi0wNi0xNSAxNTozNjo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IHBlcmNlbnQgc2NhbGluZwoJICBVc2UgX3NjYWxlIGZ1bmN0aW9ucyB0byBzY2FsZSB0aGUgcGVyY2VudCB2YWx1ZXMuCgkgIENvcnJlY3RseSBzY2FsZSB0aGUgcGVyY2VudCB2YWx1ZXMgaW4gdGhlIGJ1ZmZlcmluZyByYW5nZXMuCgoyMDEyLTA2LTE1IDE0OjU0OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGF2b2lkIGZsdXNoIHdoZW4gc3RhcnRpbmcKCSAgV2hlbiB3ZSBhcmUgZG9pbmcgdGhlIGluaXRpYWwgc2VlayBpbiBzdGFydHVwLCBhdm9pZCBkb2luZyBhIGZsdXNoCgkgIChhbmQgdW5sb2NrKSBiZWNhdXNlIHdlIGtub3cgdGhhdCB0aGUgdGFzayBpcyBub3Qgc3RhcnRlZCB5ZXQuCgoyMDEyLTA2LTE1IDEyOjU4OjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZQoKMjAxMi0wNi0xNSAxMjo1NToyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgZG9jczogaW1wcm92ZSBBUEkgZG9jcwoKMjAxMi0wNi0xNSAwMDowMDoxMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIGFsbGxvY2F0b3I6IG5vIG5lZWQgdG8gc3RvcmUgc3RydWN0dXJlIHNpemUgaW5zaWRlIHRoZSBzdHJ1Y3R1cmUKCjIwMTItMDYtMTQgMjM6NTQ6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBubyBuZWVkIHRvIHN0b3JlIHRoZSBzaXplIG9mIHRoZSBzdHJ1Y3R1cmUgaW5zaWRlIHRoZSBzdHJ1Y3R1cmUKCjIwMTItMDYtMTQgMjM6NTI6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBubyBuZWVkIHRvIHN0b3JlIHRoZSBzaXplIG9mIHRoZSBzdHJ1Y3R1cmUgaW5zaWRlIHRoZSBzdHJ1Y3R1cmUKCjIwMTItMDYtMTQgMjM6NDk6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogbm8gbmVlZCB0byBzdG9yZSB0aGUgc2l6ZSBvZiB0aGUgc3RydWN0dXJlIGluc2lkZSB0aGUgc3RydWN0dXJlCgoyMDEyLTA2LTE0IDIzOjQ1OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IG5vIG5lZWQgdG8gc3RvcmUgdGhlIHNpemUgb2YgdGhlIGNhcHMgc3RydWN0dXJlIGluc2lkZSB0aGUgc3RydWN0dXJlCgoyMDEyLTA2LTE0IDIzOjQxOjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IG5vIG5lZWQgdG8gc3RvcmUgc2l6ZSBvZiB0aGUgbWVzc2FnZSBzdHJ1Y3R1cmUgaW5zaWRlIHRoZSBzdHJ1Y3R1cmUKCjIwMTItMDYtMTQgMjM6Mzg6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJICBzYW1wbGU6IG5vIG5lZWQgdG8gc3RvcmUgdGhlIHNpemUgb2YgdGhlIHNhbXBsZSBzdHJ1Y3R1cmUgaW5zaWRlIHRoZSBzdHJ1Y3R1cmUKCjIwMTItMDYtMTQgMjM6MzY6MjkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogbm8gbmVlZCB0byBzdG9yZSB0aGUgc2l6ZSBvZiB0aGUgdGFnIGxpc3Qgc3RydWN0dXJlIGluc2lkZSB0aGUgc3RydWN0dXJlCgoyMDEyLTA2LTE1IDExOjI0OjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogZXhwYW5kIGRvY3MgYSBsaXR0bGUKCSAgQWRkIGJsdXJiIGFib3V0IHFkYXRhIGFuZCB3ZWFrIHJlZnMuCgoyMDEyLTA2LTE1IDEwOjQ0OjI0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1pbmlvYmplY3Q6IGFkZCBxZGF0YQoJICBLZWVwIHRyYWNrIG9mIHFkYXRhIGZvciBtaW5pb2JqZWN0cy4gUmV1c2UgdGhlIHdlYWsgcmVmIGFycmF5IGZvciB0aGlzIGJlY2F1c2UKCSAgd2UgY2FuLgoKMjAxMi0wNi0xNSAxMDo1NjoxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGZpeCBlcnJvciBpbiB0aGUgd2VhayByZWYgaGFuZGxpbmcKCSAgV2hlbiAyIHdlYWsgcmVmcyBhcmUgYWRkZWQsIHRoZSBhcnJheSBpcyBub3QgcmVzaXplZCBiaWcgZW5vdWdoLgoJICBTaW1wbGlmeSB0aGUgd2VhayByZWYgaGFuZGxpbmcgY29kZS4KCSAgRnJlZSBtZW1vcnkgd2hlbiB3ZSByZW1vdmUgYWxsIHdlYWsgcmVmcy4KCSAgQWxsb3cgaW5zdGFsbGluZyB0aGUgc2FtZSB3ZWFrIHJlZiBtdWx0aXBsZSB0aW1lcywgbGlrZSBpbiBnb2JqZWN0LgoKMjAxMi0wNi0xNCAxNzoxMToxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RzYW1wbGUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgbWluaW9iamVjdDogcmVtb3ZlIHRoZSBzaXplIGZpZWxkCgkgIFRoZSBzaXplIGZpZWxkIGlzIHVzZWQgYnkgc3ViY2xhc3NlcyB0byBzdG9yZSB0aGUgdG90YWwgYWxsb2NhdGVkIHNpemUgb2YgdGhlCgkgIG1lbW9yeSBmb3IgdGhpcyBtaW5pb2JqZWN0LiBCZWNhdXNlIG1pbmlvYmplY3QgZG9lc24ndCByZWFsbHkgZG8gYW55dGhpbmcgd2l0aAoJICB0aGlzIGZpZWxkIHdlIGNhbiBtb3ZlIGl0IHRvIHRoZSBzdWJjbGFzc2VzLgoKMjAxMi0wNi0xNCAxNjozMDoxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1lbW9yeTogbWFrZSBHc3RNZW1vcnkgYSBtaW5pb2JqZWN0CgoyMDEyLTA2LTE0IDE2OjI3OjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRyYWNlLmM6CgkgIHRyYWNlOiBhbHdheXMgcHJpbnQgbWluaW9iamVjdCByZWZjb3VudAoKMjAxMi0wNi0xNCAxNTo0MDo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBmaXggY29weSBmdW5jdGlvbgoJICBNYWtlIHRoZSBjb3B5IGZ1bmN0aW9uIG1hcCB0byByZWYgYmVjYXVzZSB3ZSBjYW4ndCBzYWZlbHkgY29weSB0aGUgdXNlcl9kYXRhLgoKMjAxMi0wNi0xNCAxNTozMzo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVtb3J5OiBtYWtlIEdzdEFsbG9jYXRvciBhIG1pbmlvYmplY3QKCjIwMTItMDYtMTIgMTM6MjY6MzUgKzAyMDAgIERhdmlkIFN2ZW5zc29uIEZvcnMgPGRhdmlkc2ZAYXhpcy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBnc3RmdW5uZWw6IGF2b2lkIGFjY2VzcyBvZiBmcmVlZCBwYWQKCSAgU2F2ZSB0aGUgdmFsdWUgb2YgdGhlIHBhZCdzIGdvdF9lb3MgaW4gZ3N0X2Z1bm5lbF9yZWxlYXNlX3BhZCwKCSAgYmVmb3JlIGNhbGxpbmcgZ3N0X2VsZW1lbnRfcmVtb3ZlX3BhZC4gVGhpcyBpcyBiZWNhdXNlCgkgIGdzdF9lbGVtZW50X3JlbW92ZV9wYWQgbWF5IGZyZWUgdGhlIHBhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODAxNwoKMjAxMi0wNi0xNCAxNDowNToxNSArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBmaXggcGFkIHRyYW5zZmVyIGFubm90YXRpb24gZnJvbSBub25lIHRvIGZ1bGwKCSAgc2luY2UgdGhlIHBhZCB3aWxsIGJlIHVucmVmZmVkLgoKMjAxMi0wNi0xMyAxMDo1Mjo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBtZXNzYWdlOiBhZGQgdGhlIHJ1bm5pbmctdGltZSB0byB0aGUgYXN5bmMtZG9uZSBtZXNzYWdlCgkgIEFkZCB0aGUgcnVubmluZy10aW1lIG9mIHRoZSBidWZmZXIgdGhhdCBjYXVzZWQgdGhlIGFzeW5jIG9wZXJhdGlvbiB0byBjb21wbGV0ZQoJICB0byB0aGUgYXN5bmMtZG9uZSBtZXNzYWdlLgoJICBVcGRhdGUgYmluIHRvIGhhbmRsZSB0aGUgbmV3IGFzeW5jLWRvbmUgbWVzc2FnZS4KCjIwMTItMDYtMTMgMTA6NTE6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBwaXBlbGluZTogdXNlIHJlc2V0X3RpbWUgbWVzc2FnZSB0byByZXNldCB0aGUgc3RhcnQgdGltZQoJICBVc2UgdGhlIG5ldyBSRVNFVF9USU1FIG1lc3NhZ2UgdG8gcmVzZXQgdGhlIHN0YXJ0LXRpbWUgb2YgdGhlIHBpcGVsaW5lIHRvIHRoZQoJICByZXF1ZXN0ZWQgdGltZS4KCSAgTWFrZSBiYXNlc2luayByZXF1ZXN0IGEgbmV3IHJ1bm5pbmctdGltZSB3aGVuIHRoZSBmbHVzaC1zdG9wIG1lc3NhZ2UgdGVsbHMgaXQgdG8KCSAgaW5zdGVhc2Qgb2Ygd2FpdGluZyBmb3IgcHJlcm9sbC4KCjIwMTItMDYtMTMgMTA6MTY6MjcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXNzYWdlOiBhZGQgYSBuZXcgbWVzc2FnZSB0byByZXNldCB0aW1lCgkgIEFkZCBhIG5ldyBtZXNzYWdlIHRvIHJlc2V0IHRoZSBwaXBlbGluZSBydW5uaW5nX3RpbWUuIEN1cnJlbnRseSByZXNldGluZyB0aGUKCSAgcGlwZWxpbmUgY2FuIG9ubHkgYmUgcmVxdWVzdGVkIGluIHRoZSBhc3luY19kb25lIG1lc3NhZ2Ugd2hpY2ggbWVhbnMgdGhhdCB0aGUKCSAgcGlwZWxpbmUgbmVlZHMgdG8gYmUgcHJlcm9sbGVkLiBJdCBpcyBiZXR0ZXIgdG8gbW92ZSB0aGlzIHRvIGEgc2VwYXJhdGUgbWVzc2FnZS4KCjIwMTItMDYtMTIgMTc6MTE6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogYWx3YXlzIHJlY3Vyc2UgaW50byBiaW5zIHdoZW4gZG9pbmcgc3RhdGUgY2hhbmdlcwoJICBOZXZlciBza2lwIHRoZSBzdGF0ZSBjaGFuZ2Ugb2YgYSBiaW4gYmVjYXVzZSBpdCBuZWVkcyB0byB1cGRhdGUgdGhlIGJhc2UgdGltZSBvZgoJICBpdHMgY2hpbGRyZW4gd2hlbiBuZWVkZWQuCgoyMDEyLTA2LTEzIDAwOjMwOjQ4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBmb3IgbmV3IGRhdGV0aW1lIGFwaQoKMjAxMi0wNi0xMyAwMDoyODowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSAuZGVmIGZpbGUgZm9yIGxhdGVzdCBBUEkKCjIwMTItMDYtMTMgMDA6MjU6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogYWRkIG5ldyBkYXRldGltZSBBUEkKCjIwMTItMDYtMTMgMDA6MjE6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIHRlc3RzOiBhZGQgc29tZSBiYXNpYyB1bml0IHRlc3RzIGZvciBwYXJ0aWFsIGRhdGUgdGltZSBmaWVsZHMKCjIwMTItMDYtMTIgMjM6NTI6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJICBkYXRldGltZTogY2xlYW4tdXBzIGFuZCBuZXcgQVBJIGFkanVzdG1lbnRzCgkgIFJlbW92ZSBjb25zdHJ1Y3RvcnMgd2UgZG9uJ3Qgd2FudDoKCSAgZ3N0X2RhdGVfdGltZV9uZXdfeW1kX2goKSBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8KCSAgc3VwcG9ydCBob3VyLW9ubHkgZm9yIG5vdzsKCSAgZ3N0X2RhdGVfdGltZV9uZXdfeW1kX2htKCkgYmVjYXVzZSB3ZSBkb24ndCB3YW50IHRvCgkgIGFkZCBjb25zdHJ1Y3RvcnMgd2l0aCB0aW1lIGluZm8gd2hlcmUgdGhlIGNhbGxlciBkb2Vzbid0CgkgIGhhdmUgdG8gdGhpbmsgYWJvdXQgd2hhdCB0aW1lem9uZSB0aGUgdGltZSBpcyBpbi4KCSAgTG90cyBvZiBjb21wdWxzaXZlIGNsZWFuLXVwLiBEb2NzIGZpeGVzLiBSZXBsYWNlCgkgIGhhc19taW51dGUoKSBhbmQgaGFzX2hvdXIoKSB3aXRoIGhhc190aW1lKCkuCgoyMDEyLTA2LTEyIDIyOjM1OjQyICswMjAwICBPbGVrc2lqIFJlbXBlbCA8YnVnLXRyYWNrQGZpc2hlci1wcml2YXQubmV0PgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJICBkYXRldGltZTogYWxsb3cgR3N0RGF0ZVRpbWUgd2hlcmUgbm90IGFsbCBmaWVsZHMgYXJlIHNldAoJICBJbiBvcmRlciB0byBkZXNlcmlhbGlzZSBhbmQgcmUtc2VyaWFsaXNlIGRhdGVzIGFuZCBkYXRlIHRpbWVzCgkgIGZyb20gdGFncyBwcm9wZXJseSwgd2UgbmVlZCB0byBiZSBhYmxlIHRvIGV4cHJlc3MgcGFydGlhbAoJICBkYXRlcyAoZS5nLiBZWVlZIG9yIFlZWVktTU0pIGFuZCBkYXRlIHRpbWVzLgoJICBXZSBvbmx5IHN1cHBvcnQgcGFydGlhbCBkYXRlIHRpbWVzIHdoZXJlIGFsbCB0aGUgbW9yZQoJICBzaWduaWZpY2FudCBmaWVsZHMgYWJvdmUgdGhlIGZpcnN0IHVuc2V0IGZpZWxkIGFyZSBzZXQKCSAgKGUuZy4gWVlZWS0wMC1ERCBpcyBub3Qgc3VwcG9ydGVkKS4KCSAgQ2FsbGluZyBfZ2V0X2ZvbygpIHdoZW4gZm9vIGlzIG5vdCBzZXQgaXMgbm90IGFsbG93ZWQKCSAgYW55IG1vcmUsIGNhbGxlcnMgbmVlZCB0byBjaGVjayB3aGljaCBmaWVsZHMgYXJlIHNldAoJICBmaXJzdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3Nzc1NwoKMjAxMi0wNi0xMiAyMjo0NTowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIG1lc3NhZ2U6IGZpeCB1cCBtaW5vciBpbmNvbnNpc3RlbmN5IGluIHN0cnVjdHVyZSBuYW1lIG9mIHN0YXRlLWNoYW5nZWQgbWVzc2FnZQoKMjAxMi0wNi0xMiAxMTo0MjozMCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJICBpbnRyb3NwZWN0aW9uOiBhZGQgc29tZSBtaXNzaW5nIGFubm90YXRpb25zCgoyMDEyLTA2LTEyIDE0OjI0OjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGhhbmRsZSBmbHVzaCBldmVudHMgb24gdGhlIGVsZW1lbnQgYXMgd2VsbAoJICBIYW5kbGUgZmx1c2gtc3RhcnQgYW5kIGZsdXNoLXN0b3Agc2VudCBvbiB0aGUgZWxlbWVudCBhcyB3ZWxsIGFuZCBzZW5kIHRoZW0KCSAgZG93bnN0cmVhbS4gTWFrZSBzdXJlIHRvIHNlbmQgYSBzZWdtZW50IGV2ZW50IGFmdGVyIHRoZSBmbHVzaCBzdG9wLgoKMjAxMi0wNi0xMiAxMTowNTowNSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkgIGNoaWxkcHJveHk6IGFkZCBhIGZldyBtb3JlIGNvbW1lbnRzCgoyMDEyLTA2LTExIDIwOjM0OjAwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSAgY2hpbGRwcm94eTogZml4IHNpZ25hbCBoYW5kbGVyIHNpZ25hdHVyZXMgaW4gY2xhc3MKCSAgV2hlbiBhZGRpbmcgdGhlIG5hbWUgcGFyYW1ldGVyLCB3ZSBmb3Jnb3QgdG8gYWRkIGl0IGhlcmUgdG9vLgoKMjAxMi0wNi0xMSAxMDo1OTo0OSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSAgY2hpbGRwcm94eTogdXNlIEdzdENoaWxkUHJveHkgaW5zdGVhZCBvZiBHT2JqZWN0IG9uIHRoZSBwdWJsaWMgYXBpCgkgIEZpeCB1c2FnZSBhbmQgYWxzbyBjbGVhbnVwIGdzdF9vYmplY3QgYXBpIHVzZSBvbiBnb2JqZWN0cy4KCjIwMTItMDYtMTEgMTU6NDk6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OiByZW1vdmUgdW51c2VkIFVOUEFSRU5USU5HIGZsYWcKCjIwMTItMDYtMTEgMTU6NDE6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogcmVvcmdhbml6ZSBfcmVtb3ZlX2Z1bmMgdG8gYXZvaWQgcmFjZXMKCSAgTWFrZSB0aGUgZ3N0X2Jpbl9yZW1vdmVfZnVuYyBtb3JlIGxpa2UgdGhlIGFkZF9mdW5jLiBDaGVjayBpZiB0aGUgZWxlbWVudCB3ZSB0cnkKCSAgdG8gcmVtb3ZlIGZyb20gdGhlIGJpbiBoYXMgdGhlIGJpbiBhcyB0aGUgcGFyZW50IGFuZCBzZXQgdGhlIHBhcmVudCBmbGFnIHRvIE5VTEwKCSAgaW1tZWRpYXRlbHksIHRoaXMgYWxsb3dzIHVzIHRvIGF2b2lkIGNvbmN1cnJlbnQgcmVtb3ZlIG9wZXJhdGlvbnMgd2l0aG91dCB1c2luZwoJICB0aGUgVU5QQVJFTlRJTkcgZWxlbWVudCBmbGFnLiBBZnRlciB3ZSB1bnBhcmVudGVkIHRoZSBlbGVtZW50IGZyb20gdGhlIGJpbiwgd2UKCSAgdXBkYXRlIHRoZSBiaW4gc3RhdGUgYW5kIHJlbW92ZSB0aGUgZWxlbWVudCBmcm9tIHRoZSBsaXN0LiBGaW5hbGx5IHdlIHVubGluawoJICBhbGwgdGhlIHBhZHMuCgkgIFRoaXMgYXZvaWRzIGEgcmFjZSBjb25kaXRpb24gd2hlcmUgdGhlIGVsZW1lbnQgY291bGQgc3RpbGwgY2xhaW0gdG8gaGF2ZSB0aGUKCSAgYmluIGFzIHRoZSBwYXJlbnQgd2hpbGUgdGhlIGJpbiBkaWRuJ3QgaGF2ZSBhIHBvaW50ZXIgdG8gdGhlIGVsZW1lbnQgYW55bW9yZS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0Nzc1OQoKMjAxMi0wNi0xMCAxMjo0ODowMCAtMDQwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kZWxlbWVudDogT25seSBzZW5kIGNhcHMgd2hlbiBwYWQgaXMgYmVpbmcgYWN0aXZhdGVkCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzc4MTkKCjIwMTItMDYtMTAgMTI6NDE6MTIgLTA0MDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBnc3RlbGVtZW50OiBTdGFydCBvdmVyIGlmIHN1YmNsYXNzIHJlbW92ZWQgdGhlIG5leHQgcGFkIHRvbwoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc3ODE4CgoyMDEyLTA2LTA5IDE4OjA1OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJICBkYXRldGltZTogcmVtb3ZlIGZhbGxiYWNrIGNvZGUgZm9yIG9sZCBHTGlicwoKMjAxMi0wNi0wOSAxNzoxMzowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2NyZWF0ZS11bmluc3RhbGxlZC1zZXR1cC5zaDoKCSAgc2NyaXB0czogYWRkIGNyZWF0ZS11bmluc3RhbGxlZC1zZXR1cCBzY3JpcHQKCSAgTGl0dGxlIHNjcmlwdCB0aGF0IHNldHMgdXAgdGhpbmdzIGluIH4vZ3N0IGFuZCBjbG9uZXMKCSAgdGhlIG1haW4gbW9kdWxlcyBhbmQgcHJpbnRzIHNvbWUgaW5zdHJ1Y3Rpb25zLgoJICBGcm9tIGh0dHA6Ly9nc3RyZWFtZXIuZnJlZWRlc2t0b3Aub3JnL3dpa2kvVW5pbnN0YWxsZWRTZXR1cAoKMjAxMi0wNi0wOCAxNTo0NTozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgZWxlbWVudHM6IFVzZSBnc3RfcGFkX3NldF9jYXBzKCkgYW5kIGRvbid0IGlnbm9yZSBpdHMgcmV0dXJuIHZhbHVlCgoyMDEyLTA2LTA4IDE1OjQxOjE3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBEb24ndCBpZ25vcmUgdGhlIHJldHVybiB2YWx1ZSBvZiBnc3RfcGFkX3NldF9jYXBzKCkgYW5kIGNhbGwgaXQgYWZ0ZXIgdGhlIHZmdW5jCgoyMDEyLTA2LTA4IDE1OjM2OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IFVzZSBnc3RfcGFkX3NldF9jYXBzKCkgaW5zdGVhZCBvZiB0aGUgbWFudWFsIGV2ZW50IGZpZGRsaW5nCgoyMDEyLTA2LTA4IDE1OjMyOjM3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBEb24ndCByZXR1cm4gdGhlIHJldHVybiB2YWx1ZSBvZiBnc3RfcGFkX3NldF9jYXBzKCkKCSAgZS5nLiBpdCByZXR1cm5zIEZBTFNFIGlmIGluY29tcGF0aWJsZSBjYXBzIGFyZSBzZXQgb24gdGhlIHBhZC4KCjIwMTItMDYtMDYgMTk6MDI6MDAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIGdzdHV0aWxzOiBGYXN0ZXIgcmVhZCBtYWNyb3MKCSAgT24gcGxhdGZvcm1zIHRoYXQgY2FuIGRvIHVuYWxpZ25lZCByZWFkL3dyaXRlLCB3ZSBjYW4gcmVhZC93cml0ZSBtdWNoIGZhc3RlcgoJICBieSBqdXN0IGNhc3RpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01OTk1NDYKCjIwMTItMDYtMDcgMTI6NDk6MTAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIGNoZWNrOiBBZGQgYSB0ZXN0IGZvciBHU1RfUkVBRF8qIG1hY3JvcwoKMjAxMi0wNi0wOCAxNDo0OTo1MSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIFVwZGF0ZSBjb21tb24gc3VibW9kdWxlCgoyMDEyLTA2LTA3IDE3OjU4OjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGZpeCByZWNvbmZpZ3VyZQoJICBVc2UgdGhlIHBhZCBtZXRob2RzIHRvIHNldCBhbmQgY2hlY2sgdGhlIHJlY29uZmlndXJlIGZsYWdzCgkgIENsZWFyIHRoZSByZWNvbmZpZ3VyZSBmbGFnIGJlZm9yZSB3ZSBuZWdvdGlhdGUgc28gdGhhdCB3ZSBkb24ndCBtaXNzIGFueQoJICByZWNvbmZpZ3VyZSBldmVudHMgd2hpbGUgbmVnb3RpYXRpbmcKCjIwMTItMDYtMDcgMTU6NTY6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAwLjExLjkyID09PQoKMjAxMi0wNi0wNyAxNTo1NjoxNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkgIFJlbGVhc2UgMC4xMS45MgoKMjAxMi0wNi0wNyAxNTo1Mzo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTItMDYtMDcgMTU6Mjg6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcmVsZWFzZSB0aGUgb2JqZWN0IGxvY2sgc29vbmVyCgkgIFJlbGVhc2UgdGhlIG9iamVjdCBsb2NrIGJlZm9yZSB3ZSBnZXQgdGhlIHRpbWUgb2YgdGhlIGNsb2NrIGJlY2F1c2UgdGhhdCBjb2RlCgkgIG1pZ2h0IHRha2Ugb3RoZXIgbG9ja3MuCgkgIEZpeCBwb3RlbnRpYWwgY2xvY2sgcmVmY291bnQgZXJyb3IgYmVjYXVzZSB3ZSByZWxlYXNlZCB0aGUgb2JqZWN0IGxvY2sgYnV0CgkgIGRpZG4ndCByZWYgdGhlIGNsb2NrLgoKMjAxMi0wNi0wNyAxMDozNDo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiByZW1vdmUgMC4xMSBmaXhtZQoJICBXZSBhbHdheXMgcmVxdWlyZSBlbGVtZW50cyB0byBoYXZlIGFuIHVubG9ja19zdG9wIHZtZXRob2QuCgoyMDEyLTA2LTA2IDE4OjExOjEzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogV2UgbmFtZSB0aGUgcmVnaXN0cnkgYWZ0ZXIgdGhlIHRhcmdldCBjcHUKCSAgQW5kIG5vdCB0aGUgaG9zdCBjcHUKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0cmVnaXN0cnkuYwoKMjAxMi0wNi0wNiAxODoxODoxOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDFmYWIzNTkgdG8gMDNhMGU1NwoKMjAxMi0wNi0wNiAxNTo0NToxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSAgdGVzdHM6IGZpeCB1bml0IHRlc3QgYWZ0ZXIgZXZlbnQgY2hhbmdlCgkgIFNvbWVvbmUgZm9yZ290IHRvIHJ1biBtYWtlIGNoZWNrIGJlZm9yZSBwdXNoaW5nLi4uCgoyMDEyLTA2LTA2IDExOjA2OjMyICswMzAwICBTcmVlcmVuaiBCYWxhY2hhbmRyYW4gPHNyZWVyZW5qLmJhbGFjaGFuZHJhbkBpbnRlbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgZ3N0YWRhcHRlcjogQWxpZ24gdGhlIGNvbW1lbnQgZGVzY3JpcHRpb24gd2l0aCBwdWJsaWMgYXBpIGluc3RlYWQgb2YgaW50ZXJuYWwgb25lLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc3NTM2CgoyMDEyLTA2LTA2IDE1OjI5OjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogZml4IHBhZCBjbGVhbnVwIGluIGRpc3Bvc2UKCSAgSW4gdGhlIGRpc3Bvc2UgaGFuZGxlciB3ZSBmaXJzdCBuZWVkIHRvIHJlbGVhc2UgYWxsIHRoZSByZXF1ZXN0IHBhZHMgYW5kIHRoZW4KCSAgcmVtb3ZlIHRoZSByZW1haW5pbmcgcGFkcy4gVGhpcyBpcyBiZWNhdXNlIGl0IGlzIHBvc3NpYmxlIHRoYXQgcmVsZWFzaW5nIHRoZQoJICByZXF1ZXN0IHBhZCBtaWdodCBhbHNvIGNsZWFubHkgcmVtb3ZlIHNvbWUgb2YgdGhlIG90aGVyIGR5bmFtaWMgcGFkcywgbGlrZQoJICB3aGF0IHJ0cHNlc3Npb24gZG9lcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NzQzNgoKMjAxMi0wNi0wNiAxNDoxNDozMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBEb24ndCBtYWtlIHRoZSBUT0MgZXZlbnQgYSBtdWx0aS1zdGlja3kgZXZlbnQKCSAgRWxlbWVudHMgYXJlIHN1cHBvc2VkIHRvIG1lcmdlIHVwc3RyZWFtIGV2ZW50cy4KCjIwMDktMTAtMTMgMTc6MjQ6MzQgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgTWFrZSBzdXJlIHRoYXQgdW5saW5rZWQgcGFkcyBkbyBub3QgY2F1c2UgYSByZXR1cm4gZmFsc2Ugb24gbGF0ZW5jeSBldmVudHMuCgkgIENvbnRleHQ6IExhdGVuY3kgY29uZmlndXJhdGlvbiBzaG91bGQgbm90IGJlCgkgIG1lc3NlZCB1cCBiZWNhdXNlIG9mIG5vdC1saW5rZWQgcGFkcy4gSW4gZ2VuZXJhbCwKCSAgb25lIHJldHVybiBGQUxTRSBvbiBsYXRlbmN5IGRpc3RyaWJ1dGlvbiBjYXVzZXMKCSAgdGhlICJvdmVyYWxsIiBwaXBlbGluZSBsYXRlbmN5IGNvbmZpZ3VyYXRpb24gdG8KCSAgZmFpbC4gVGhpcyBzaG93cyB1cCBhcyBub2lzZSBpbiBsb2dzICh3YXJuaW5nKS4KCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0cGFkLmMKCjIwMTItMDYtMDYgMTI6NTI6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICBldmVudDogYWRkIG5hbWUgdG8gc3RpY2t5X211bHRpIGV2ZW50cwoJICBUaGUgbmFtZSBvZiB0aGUgZXZlbnQgaXMgdXNlZCB0byBzdG9yZSBtdWx0aXBsZSBzdGlja3kgZXZlbnRzIG9mIGEgY2VydGFpbiB0eXBlCgkgIG9uIGEgcGFkLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc2ODU5CgoyMDEyLTA2LTA2IDA5OjU5OjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICBkZXNpZ246IEFsc28gbWVudGlvbiB0aGF0IHRoZSBvcmRlciBvZiB0aGUgZmlsdGVyIGNhcHMgaXMgaW1wb3J0YW50CgoyMDEyLTA2LTA2IDA5OjE1OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBpbXByb3ZlIGRvY3MKCjIwMTItMDYtMDYgMDk6MTM6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogb25seSBzZXJpYWxpemVkIGV2ZW50cyBjYW4ndCBwYXNzIGFmdGVyIEVPUwoJICBPbmx5IHNlcmlhbGl6ZWQgZXZlbnRzIGNhbid0IGJlIHNlbnQgb24gcGFkcyB0aGF0IGFyZSBFT1MuIE90aGVyd2lzZSBhIHNlZWsKCSAgZXZlbnQgd291bGQgYmUgcmVmdXNlZCBhcyB3ZWxsLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc3NTIwCgoyMDEyLTA2LTA1IDE0OjM4OjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkgIGRvY3M6IHRhbGsgYWJvdXQgdGhlIGZpbHRlciBjYXBzCgoyMDEyLTA2LTAyIDE2OjQ0OjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSAgdGVzdHM6IGFkZCB1bml0IHRlc3QgZm9yIHRhZyBsaXN0IHdyaXRhYmlsaXR5CgoyMDEyLTA2LTAyIDE2OjM4OjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6CgkgIGdzdF90YWdfbGlzdF9mcmVlIC0+IGdzdF90YWdfbGlzdF91bnJlZgoKMjAxMi0wNi0wMiAxNjoyOTo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiBleHBhbmQgdGFnbGlzdCBzZWN0aW9uIGluIHBvcnRpbmctdG8tMC4xMSBkb2NzIGEgYml0CgoyMDEyLTA2LTA1IDExOjI4OjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBuZWdvdGlhdGlvbiBkb2NzCgkgIE1lbnRpb24gdGhhdCB0aGUgYWNjZXB0Y2FwcyBxdWVyeSBkb2VzIG5vdCBoYXZlIHRvIGJlIHJlY3Vyc2l2ZQoKMjAxMi0wNi0wNSAwOTo0MDoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcmVtb3ZlIG9ic29sZXRlIGNhcHMgY29kZQoKMjAxMi0wNi0wNSAwOTozOTo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogaW1wcm92ZSBkZWJ1ZwoKMjAxMi0wNi0wNSAwOToyMToxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB0ZXN0czogZml4IHVuaXQgdGVzdAoJICBCZWZvcmUgd2UgY2FuIGNoYW5nZSB0aGUgY2FwcyBvbiBhIHNpbmtwYWQgd2l0aCBmaXhlZCBjYXBzIHdlIG5lZWQgdG8gdW5maXggdGhlCgkgIHBhZCBjYXBzLgoKMjAxMi0wNi0wNSAwOToxMDowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBwYXVzZSB0YXNrIG9uIEVPUwoJICBFbGVtZW50cyBzaG91bGQgbm90IHJlbHkgb24gY29yZSB0byBwYXVzZSB0YXNrcyBvbiBFT1MuCgoyMDEyLTA2LTA1IDA5OjAwOjAxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBldmVudCB0eXBlIGNoZWNrCgoyMDEyLTA2LTA0IDE2OjE5OjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCAncmVzJyBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMgZnVuY3Rpb24KCjIwMTItMDYtMDQgMTM6MDA6NTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkgIGZ1bm5lbDogRml4IHVuaXQgdGVzdAoKMjAxMi0wNi0wNCAxMjo1Nzo1OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJICB2YWx2ZTogRml4IHVuaXQgdGVzdAoKMjAxMi0wNi0wNCAxMTo0Njo0MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBEb24ndCBhY2NlcHQgYW55IGJ1ZmZlcnMgb3IgZXZlbnRzIGFmdGVyIEVPUwoKMjAxMi0wNi0wNCAxMToxMzowMiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFsc28gcGVyZm9ybSBzdGF0ZSBwcm9jZXNzaW5nIHVwb24gbm9uLU9LIHJldHVybgoJICAuLi4gc2luY2UgcHJvY2Vzc2luZyBtaWdodCBzdGlsbCBjb250aW51ZSAoaWYgZS5nLiBOT1RfTElOS0VEKQoJICBhbmQgdGhlbiBwcm9wZXIgc3RhdGUgKGUuZy4gb2Zmc2V0KSBuZWVkcyB0byBiZSBtYWludGFpbmVkCgkgIChlLmcuIHRvIGFycmFuZ2UgZm9yIGEgbmV3IGZyYW1lIHNldHVwKS4KCjIwMTItMDYtMDQgMTE6MjU6NDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEFsd2F5cyByZXR1cm4gZXJyb3JzIGZvciBFT1MgZXZlbnRzIGltbWVkaWF0ZWx5CgkgIEZvciBub24tRU9TIGV2ZW50cyB0aGluZ3Mgd2lsbCBlcnJvciBvdXQgbGF0ZXIgZHVyaW5nIGRhdGEKCSAgZmxvdyBidXQgYWZ0ZXIgRU9TIGV2ZW50cyBubyBkYXRhIGZsb3cgaXMgaGFwcGVuaW5nLgoJICBTZWUgYnVnICM2NzczNDAuCgoyMDEyLTA2LTA0IDA5OjI3OjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBPbmx5IGZvcndhcmQgY2FwcyBldmVudHMgdG8gYSBwYWQgaWYgaXQgYWNjZXB0cyB0aGUgY2FwcwoJICBGaXhlcyBidWcgIzY3NzMzNS4KCjIwMTItMDYtMDIgMjA6MDE6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBSZXZlcnQgInBhZDogUmV0dXJuIEZBTFNFIGlmIHB1c2hpbmcgb2Ygc3RpY2t5IGV2ZW50cyBmYWlsZWQiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMGY5MjRiOTIyYzcxMjA1OWQ3NzUyZmMxNWI4MzI1NTE3NDVmZjI3ZS4KCSAgU3RpY2t5IGV2ZW50cyBzaG91bGQgYWx3YXlzIHJldHVybiBUUlVFIHdoZW4gcHVzaGluZyBhbmQgd2lsbAoJICBvbmx5IGNhdXNlIGZhaWx1cmVzIGR1cmluZyBkYXRhIGZsb3cgbGF0ZXIuCgoyMDEyLTA2LTAyIDE2OjE4OjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggdmFyaWFibGUtc2V0LWJ1dC1ub3QtdXNlZCBjb21waWxlciB3YXJuaW5nCgoyMDEyLTA2LTAyIDE2OjU1OjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBJZiBwdXNoaW5nIGEgc3RpY2t5IGV2ZW50IGZhaWxlZCwgbWFrZSBzdXJlIHRvIGF0IGxlYXN0IHB1c2ggYW55IHBlbmRpbmcgRU9TIGV2ZW50cwoJICBPdGhlcndpc2UgYSBwaXBlbGluZSB3aGVyZSBvbmUgc3RpY2t5IGV2ZW50IGZhaWxzIHRvIGJlIHNlbnQgd2lsbAoJICBuZXZlciBmb3J3YXJkIEVPUyBldmVudHMgZG93bnN0cmVhbS4gVGhpcyBjYW4gY2F1c2UgcGlwZWxpbmVzIHRvCgkgIHdhaXQgZm9yZXZlciBmb3IgRU9TIG9uIGVycm9ycy4KCjIwMTItMDYtMDIgMTY6MDI6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFJldHVybiBGQUxTRSBpZiBwdXNoaW5nIG9mIHN0aWNreSBldmVudHMgZmFpbGVkCgkgIEluc3RlYWQgb2YganVzdCBpZ25vcmluZyBmYWlsdXJlIG9mIHB1c2hpbmcgc3RpY2t5IGV2ZW50cyBhbmQKCSAgcmV0dXJuaW5nIFRSVUUgYXMgaWYgZXZlcnl0aGluZyBpcyBmaW5lLgoKMjAxMi0wNi0wMSAxNjozNDoxNiArMDIwMCAgQW5kcmUgTW9yZWlyYSBNYWdhbGhhZXMgKGFuZHJ1bmtvKSA8YW5kcmUubWFnYWxoYWVzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBDb3JyZWN0bHkgZ2V0IGN1cnJlbnQgcnVubmluZyB0aW1lIHdoZW4gc3luY2luZyB0byB0aGUgc2VnbWVudCBpbmZvcm1hdGlvbgoJICBGaXhlcyBidWcgIzY3NzI2My4KCjIwMTItMDYtMDEgMTA6Mjg6MzAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmMWI1YTk2IHRvIDFmYWIzNTkKCjIwMTItMDUtMjUgMjI6NTg6NTcgLTA1MDAgIE1pa2UgUnVwcmVjaHQgPG1pa2UucnVwcmVjaHRAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkgIHRlc3RzOiBBZGQgZnVubmVsIHRlc3QgdG8gY292ZXIgRU9TIGV2ZW50IGhhbmRsaW5nCgkgIFBvcnRlZCBmcm9tIGYzYjJkZDZmIGluIHRoZSAwLjEwIGJyYW5jaAoKMjAxMi0wNS0yNSAyMjo1MjozMyAtMDUwMCAgTWlrZSBSdXByZWNodCA8bWlrZS5ydXByZWNodEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IE9ubHkgZW1pdCBFT1MgZXZlbnQgaWYgYWxsIHNpbmtwYWRzIGhhdmUgcmVjZWl2ZWQgb25lCgkgIElmIG11bHRpcGxlIHNvdXJjZXMgYXJlIHBsdWdnZWQgaW50byB0aGUgZnVubmVsIGFuZCBvbmUgb2YgdGhlCgkgIHNvdXJjZXMgZW1pdHMgYW4gRU9TLCB0aGF0IGV2ZW50IGlzIHByb3BvZ2F0ZWQgdGhyb3VnaCB0aGUgZnVubmVsCgkgIGV2ZW4gdGhvdWdoIG90aGVyIHNvdXJjZXMgY29ubmVjdGVkIHRvIHRoZSBmdW5uZWwgbWF5IHN0aWxsIGJlCgkgIHB1c2hpbmcgZGF0YS4gVGhpcyBwYXRjaCB3YWl0cyB0byBzZW5kIGFuIEVPUyBldmVudCB1bnRpbCB0aGUKCSAgZnVubmVsIGhhcyByZWNlaXZlZCBhbiBFT1MgZXZlbnQgb24gZWFjaCBzaW5rcGFkLgoJICBQb3J0ZWQgZnJvbSBkMzk3ZWE5NyBpbiAwLjEwIGJyYW5jaC4KCjIwMTItMDUtMjkgMTk6MjQ6MjUgLTA1MDAgIE1pa2UgUnVwcmVjaHQgPG1pa2UucnVwcmVjaHRAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkgIHRlc3RzOiBGaXggaW52YWxpZCByZWFkIHdoZW4gcmVsZWFzaW5nIHJlcXVlc3QgcGFkcyBpbiBmdW5uZWwgdGVzdHMKCjIwMTItMDUtMjkgMTk6MjM6MDcgLTA1MDAgIE1pa2UgUnVwcmVjaHQgPG1pa2UucnVwcmVjaHRAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBGaXggYnVmZmVyIGxlYWsKCjIwMTItMDUtMzEgMTc6NDU6MjkgKzAyMDAgIEFuZHJlIE1vcmVpcmEgTWFnYWxoYWVzIChhbmRydW5rbykgPGFuZHJlLm1hZ2FsaGFlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogRG9uJ3QgdHJ5IHRvIHN5bmMgb24gdGhlIHNlZ21lbnQgaWYgaXQgaGFzIG5vIFRJTUUgZm9ybWF0CgkgIC4uLmFuZCB3YWl0IHVudGlsIGl0IGlzIGFjdHVhbGx5IGNvbmZpZ3VyZWQgYW5kIGhhcyBhIGZvcm1hdCBiZWZvcmUKCSAgdHJ5aW5nIHRvIHN5bmMuCgoyMDEyLTA1LTMxIDE3OjAzOjU0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBObyBuZWVkIHRvIGJyb2FkY2FzdCB0aGUgc2lnbmFsIGluIGZsdXNoLXN0b3AKCSAgRXZlcnl0aGluZyBzdG9wcGVkIGF0IHRoaXMgcG9pbnQgYWxyZWFkeS4KCSAgQ29uZmxpY3RzOgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYwoKMjAxMi0wNS0zMSAxMzowNzo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDkyYjcyNjYgdG8gZjFiNWE5NgoKMjAxMi0wNS0zMSAxMDoxMDo0MSArMDEwMCAgQmFzdGllbiBOb2NlcmEgPGhhZGVzc0BoYWRlc3MubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBGaXggcHJvcGVydHkgbmFtZSBpbiB0aGUgZG9jcwoJICB0ZW1wLXRlbXBsYXRlLCBub3QgdGVtcC10bXBsCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzcxNzAKCjIwMTItMDUtMjggMTQ6Mjk6MDAgLTAzMDAgIEFuZHJlIE1vcmVpcmEgTWFnYWxoYWVzIChhbmRydW5rbykgPGFuZHJlLm1hZ2FsaGFlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkgIGlucHV0c2VsZWN0b3I6IFByb3Blcmx5IHN5bmMgd2hlbiBjaGFuZ2luZyBzdHJlYW1zCgkgIFRoaXMgYWRkcyBwcm9wZXJ0aWVzIHRvIHVzZSB0aGUgY2xvY2sgdGltZSBmb3IgZGVjaWRpbmcgd2hlbgoJICB0byBkcm9wIGJ1ZmZlcnMgZm9yIGluYWN0aXZlIHBhZHMgYW5kIGEgcHJvcGVydHkgdG8gYnVmZmVyIGFsbAoJICBub3QgcmVuZGVyZWQgYnVmZmVycyBmb3IgdGhlIGFjdGl2ZSBwYWQgdG8gYWxsb3cgcGFkIHN3aXRjaGluZwoJICB3aXRob3V0IGxvc2luZyBhbnkgYnVmZmVycyBhdCBhbGwuCgkgIENvbmZsaWN0czoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmMKCjIwMTItMDUtMzAgMTI6NDQ6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBlYzFjNGE4IHRvIDkyYjcyNjYKCjIwMTItMDUtMzAgMTE6MTg6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAzNDI5YmE2IHRvIGVjMWM0YTgKCjIwMTItMDUtMjkgMDg6NDg6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogYWRkIGd1YXJkcyB0byBtYWtlIHN1cmUgdGFnbGlzdCBpcyB3cml0YWJsZSB3aGVuIG1vZGlmeWluZyBpdAoJICBOb3cgdGhhdCB0YWdsaXN0cyBhcmUgcmVmY291bnRlZCB3ZSBuZWVkIHRvIGNoZWNrIGlmIHRoZXkncmUKCSAgd3JpdGFibGUgYmVmb3JlIG1vZGlmeWluZyB0aGVtLgoKMjAxMi0wNS0yOCAyMzo1NDoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdGFnbGlzdDogYXZvaWQgdW5uZWNlc3Nhcnkgc3RyaW5nIGNvcHlpbmcgd2hlbiByZWdpc3RlcmluZyB0YWdzCgkgIEFkZCBnc3RfdGFnX3JlZ2lzdGVyX3N0YXRpYygpIC0gbm8gbmVlZCB0byBjb3B5IGFsbCB0aG9zZQoJICBzdHJpbmcgY29uc3RhbnRzLCB3aGV0aGVyIHRyYW5zbGF0ZWQgb3Igbm90LgoJICBBUEk6IGdzdF90YWdfcmVnaXN0ZXJfc3RhdGljKCkKCjIwMTItMDUtMjggMDA6MDg6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IGNoZWNrIGZvciBHTGliLUdJTyBjcml0aWNhbHMgYXMgd2VsbAoKMjAxMi0wNS0yOCAwMDowODoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0b2MuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0X3RhZ19saXN0X2ZyZWUoKSAtPiBnc3RfdGFnX2xpc3RfdW5yZWYoKQoKMjAxMi0wNS0yNyAyMzo1ODoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRhZ2xpc3Q6IG1ha2UgR3N0VGFnTGlzdCBhIEdzdE1pbmlPYmplY3QKCSAgV2hpY2ggYWRkcyByZWZjb3VudGluZyBzdXBwb3J0LCBhbmQgb3RoZXIgdGhpbmdzLgoKMjAxMi0wNS0yNyAyMDozMTozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBsb2cgZnJlZWluZyBvZiBjYXBzIGF0IHNhbWUgbG9nIGxldmVsIGFzIGNyZWF0aW9uLCBpLmUuIFRSQUNFCgoyMDEyLTA1LTI2IDExOjM3OjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIG1lc3NhZ2UsIGV2ZW50OiB1cGRhdGUgZm9yIHRhZyBsaXN0cyBub3QgYmVpbmcgc3RydWN0dXJlcyBhbnkgbW9yZQoKMjAxMi0wNS0yMSAwMDozMToyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBtYWtlIHByb3BlciBzdHJ1Y3Qgbm90IGp1c3QgYSBHc3RTdHJ1Y3R1cmUKCjIwMTItMDUtMjUgMTA6Mjg6NDAgKzAyMDAgIEpvc2VwIFRvcnJhIDxqb3NlcEBmbHVlbmRvLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogRml4IHN0YXRpYyBsaW5raW5nIG9uIE9TIFgKCSAgVGhlIGxpbmtpbmcgYmVoYXZpb3VyIG9mIGV4dGVybmFsIHZhcmlhYmxlcyB0aGF0IGFyZSBub3QgaW5pdGlhbGl6ZWQKCSAgaW4gdGhlIGNvbXBpbGF0aW9uIHVuaXQgd2hlcmUgdGhleSBhcmUgZGVmaW5lZCBpcyB1bmRlZmluZWQuIE9uIE9TIFgKCSAgdGhpcyBjYXVzZXMgYSBsaW5raW5nIGZhaWx1cmUgd2hlbiBzdGF0aWNhbGx5IGxpbmtpbmcgR1N0cmVhbWVyLgoKMjAxMi0wNS0yNSAwOToxNzoxNyArMDEwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc0BkZWJldGhlbmNvdXJ0LmNvbT4KCgkqIHNjcmlwdHMvZml2ZS1idWdzLWEtZGF5LnBsOgoJICBmaXZlLWJ1Z3MtYS1kYXk6IHVzZSBzcGxpY2UgdG8gdHJpbSB0aGUgYnVnIGxpc3QKCjIwMTItMDUtMjQgMjM6MzA6MjkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJICBmYWtlc3JjOiBwdXQgYnl0ZSBwb3NpdGlvbiByYXRoZXIgdGhhbiBidWZmZXIgY291bnQgaW50byBHU1RfQlVGRkVSX09GRlNFVAoJICBJZiB3ZSdyZSBzZW5kaW5nIGEgc2VnbWVudCBpbiBCWVRFIGZvcm1hdCwgdGhlIG9mZnNldAoJICBzaG91bGQgYmUgaW4gYnl0ZXMgYXMgd2VsbC4KCjIwMTItMDUtMjQgMTE6NDg6MTkgKzAxMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNAZGViZXRoZW5jb3VydC5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDoKCSAgZG9jczogZml4IGEgdHlwbyBpbiBwYXJ0LXNlZ21lbnRzLnR4dAoKMjAxMi0wNS0yNCAxMTowMjo1MyArMDIwMCAgQnJpYW4gQ2FtZXJvbiA8YnJpYW4uY2FtZXJvbiBhdCBvcmFjbGUuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICB0eXBlZmluZDogZml4IHByb3RvdHlwZSBvZiBoZWxwZXJfZmluZF9zdWdnZXN0CgkgIFRoZSBwcm90byBmb3IgaGVscGVyX2ZpbmRfc3VnZ2VzdCBoYXMgYSBkaWZmZXJlbnQgYXJndW1lbnQgdGhhbiB0aGUgYWN0dWFsCgkgIGZ1bmN0aW9uIGluIHRoZSBzYW1lIGZpbGUgaGFzLiAgVGhpcyBjYXVzZXMgdGhlIFN1biBTdHVkaW8gY29tcGlsZXIgdG8gZmFpbC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NjYyNAoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYwoKMjAxMi0wNS0yNCAwODowNzoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2ZpdmUtYnVncy1hLWRheS5wbDoKCSAgc2NyaXB0czogcmVtb3ZlIGEgc3RyYXkgcHJpbnQgZnJvbSBkZWJ1Z2dpbmcgYW5kIGZpeCB1cCBjcm9uIGVudHJ5IGRvY3MKCjIwMTItMDUtMjQgMDk6MDM6MTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9maXZlLWJ1Z3MtYS1kYXkucGw6CgkgIGZpdmUtYnVncy1hLWRheTogTWFrZSAjISB0byBwZXJsIG1vcmUgcG9ydGFibGUKCjIwMTItMDUtMjQgMDc6NTY6NDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9maXZlLWJ1Z3MtYS1kYXkucGw6CgkgIHNjcmlwdHM6IHJlbW92ZSBmaXhlZCAna25vd24gaXNzdWUnIGZyb20gZml2ZS1idWdzLWEtZGF5IHNjcmlwdAoJICBUaGlzIHdhcyB3aXRoIGNvbW1hcyBhY3R1YWxseSwgYW5kIHNob3VsZCBiZSBmaXhlZCBub3cuCgoyMDEyLTA1LTI0IDA3OjU0OjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZml2ZS1idWdzLWEtZGF5LnBsOgoJICBzY3JpcHRzOiBhZGQgZml2ZS1idWdzLWEtZGF5IHNjcmlwdAoJICBDcm9uIGZvZGRlci4KCjIwMTItMDUtMjIgMTQ6Mjc6NDggKzAzMDAgIFNyZWVyZW5qIEJhbGFjaGFuZHJhbiA8c3JlZXJlbmouYmFsYWNoYW5kcmFuQGludGVsLmNvbT4KCgkqIHRlc3RzL2V4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOgoJICB0ZXN0czogcmVuYW1lIHBsYXliaW4yIHRvIHBsYXliaW4gYW5kIGFkZGluZyBzb21lIGRlYnVnIGluZm8KCjIwMTItMDUtMjIgMTg6Mjc6MzYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJICB1cmk6IEFkZCBzb21lIGRlYnVnIHN0YXRlbWVudHMKCjIwMTItMDUtMjIgMTM6NTE6NDcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgZGVmcyBmaWxlCgoyMDEyLTA1LTIxIDA5OjE0OjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBiaW46IHBvcnQgdW5pdCB0ZXN0IHRvIDAuMTEKCjIwMTItMDUtMjEgMTU6MTQ6NTEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZG9jczogaW1wcm92ZSB0aGUgc2Vla2luZyBkb2NzIG1vcmUuCgkgIEFsc28gbWVudGlvbiBpdCBvbiBfZWxlbWVudF9zZWVreyxfc2ltcGxlfSBhbmQgYmUgbW9yZSBwcmVjaXNlIHdoeSBpdCBoYXBwZW5zLgoKMjAxMi0wNS0yMSAxMzoxNzoyMSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RldmVudC5jOgoJICBkb2NzOiBmaXggYSB0eXBvIGFuZCBjbGFyaWZ5IGV2ZW50IGhhbmRsaW5nIGEgYml0IG1vcmUKCSAgVGVsbCBhYm91dCBhc3luY19kb25lIG1lc3NhZ2VzIGZvciBzb21lIGV2ZW50cyBhbmQgcmV2aWV3IHRoZSBfZXZlbnRfbmV3X3NlZWsKCSAgZG9jcy4KCjIwMTItMDUtMTggMTU6MDQ6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgYmluOiB0cnkgaGFyZGVyIHRvIGF2b2lkIHN0YXRlIGNoYW5nZXMgaW4gd3JvbmcgZGlyZWN0aW9uCgkgIFdoZW4gdGhlIGJpbiBkb2VzIGFuIHVwd2FyZCBzdGF0ZSBjaGFuZ2UsIHRyeSB0byBhdm9pZCBkb2luZyBhIGRvd253YXJkIHN0YXRlCgkgIGNoYW5nZSBvbiB0aGUgY2hpbGQgYW5kIHZpY2UgdmVyc2EuCgkgIEFkZCBzb21lIG1vcmUgdW5pdCB0ZXN0cyBmb3IgdGhpcyBmaXguCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjE4MzMKCjIwMTItMDUtMTggMjA6MTE6NTUgKzAzMDAgIEFudG9uIEJlbGthIDxhbnRvbmJlbGthQGdtYWlsLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogZml4IC1jLCAtLXRvYyBtZXNzYWdlCgoyMDEyLTA1LTIxIDAxOjQ4OjI5ICswMzAwICBBbnRvbiBCZWxrYSA8YW50b25iZWxrYUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSAgdG9jOiBBZGQgYm94ZWQgdHlwZXMgZm9yIEdzdFRvYyBhbmQgR3N0VG9jRW50cnkKCjIwMTItMDUtMjAgMTg6MjM6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkgIHRvYzogZml4IHR5cGUgb2YgcGFkIHBhcmFtZXRlciB0byBnc3RfdG9jX2VudHJ5X25ld193aXRoX3BhZCgpCgoyMDEyLTA1LTIwIDE4OjE2OjQ1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0b2MuYzoKCSAgdG9jOiB1c2UgY29ycmVjdCBHVHlwZSBmb3IgdGFnIGxpc3RzCgoyMDEyLTA1LTIwIDE4OjA2OjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0b2MuYzoKCSAgdG9jOiBhdm9pZCB1bm5lY2Vzc2FyeSBHVmFsdWUgYWNyb2JhdGljcwoKMjAxMi0wNS0yMCAxNzo0ODo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3R0b2MuYzoKCSAgdG9jOiB1c2UgZ2xvYmFsIHF1YXJrIHRhYmxlCgoyMDEyLTA1LTIwIDE3OjEwOjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWFyay5jOgoJICB0b2M6IGZpeCBpbnRlcm5hbCBUT0MgcXVlcnkgYW5kIGV2ZW50IHN0cnVjdHVyZSBuYW1lcwoJICBNYWtlIHRoZW0gY29uc2lzdGVudCB3aXRoIGFsbCB0aGUgb3RoZXIgcXVlcnkgYW5kIGV2ZW50IG5hbWVzLgoKMjAxMi0wNS0xOSAxNzoyNDo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgcGx1Z2luZmVhdHVyZTogbWFrZSBHc3RQbHVnaW5GZWF0dXJlIHN0cnVjdHVyZSBwcml2YXRlCgkgIE1ha2UgR3N0UGx1Z2luRmVhdHVyZSBvcGFxdWUgdW50aWwgd2UgaGF2ZSB0aW1lIHRvCgkgIGNsZWFuIGl0IHVwIGEgbGl0dGxlLiBPbmx5IEdzdEVsZW1lbnRGYWN0b3J5IGFuZAoJICBHc3RUeXBlZmluZEZhY3RvcnkgZGVyaXZlIGZyb20gaXQsIGFuZCB0aGV5IGFyZQoJICBvcGFxdWUgYWxyZWFkeSwgYW5kIHdlIGN1cnJlbnRseSBkb24ndCBzdXBwb3J0CgkgIGN1c3RvbSBwbHVnaW4gZmVhdHVyZXMgaW4gdGhlIHJlZ2lzdHJ5IGFueXdheS4KCjIwMTItMDUtMTkgMTc6MjM6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29scywgdGVzdHM6IGRvbid0IGFjY2VzcyB0aGUgR3N0UGx1Z2luRmVhdHVyZSBzdHJ1Y3R1cmUgZGlyZWN0bHkKCjIwMTItMDUtMTkgMTc6MTY6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBsdWdpbmZlYXR1cmU6IGFkZCBnc3RfcGx1Z2luX2ZlYXR1cmVfZ2V0X3BsdWdpbigpCgkgIEFkZCBmdW5jdGlvbiB0byByZXRyaWV2ZSBwbHVnaW4gdGhhdCBwcm92aWRlcyB0aGlzIGZlYXR1cmUuCgkgIEFQSTogZ3N0X3BsdWdpbl9mZWF0dXJlX2dldF9wbHVnaW4oKQoKMjAxMi0wNS0xOSAxNjoyMTozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIGNvbW1vbjogdXBkYXRlIGZvciBnc3RzY2Fub2JqIGNoYW5nZXMKCjIwMTItMDUtMTkgMTU6NTE6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IG1ha2Ugb2JqZWN0IHN0cnVjdCBvcGFxdWUgZm9yIG5vdwoJICBNYWtlIEdzdEVsZW1lbnRGYWN0b3J5IG9wYXF1ZSB1bnRpbCB3ZSBoYXZlIHRpbWUgdG8KCSAgY2xlYW4gaXQgdXAgYSBsaXR0bGUuIEl0J3Mgbm90IHNvbWV0aGluZyBhbnlvbmUKCSAgd291bGQgbmVlZCB0byBkZXJpdmUgZnJvbS4KCjIwMTItMDUtMTkgMTQ6NTk6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IGRvbid0IHVzZSBwcml2YXRlIEdzdEVsZW1lbnRGYWN0b3J5IEFQSSBpbiBnc3QtaW5zcGVjdAoKMjAxMi0wNS0xOSAxNDo1MjoyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBlbGVtZW50ZmFjdG9yeTogYWRkIGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhX2tleXMoKQoJICBBUEk6IGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhX2tleXMoKQoKMjAxMi0wNS0xOCAwOTo1MjowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgbGF1bmNoOiBpbXByb3ZlIEVPUyBvbiBzaHV0ZG93biBoYW5kbGluZwoJICBXaGVuIHRoZSAtZSBvcHRpb24gaXMgc2VsZWN0ZWQsIGFsc28gd2FpdCBmb3IgRU9TIHdoZW4gdGhlIHBpcGVsaW5lIHByb2R1Y2VkIGFuCgkgIGVycm9yLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMwOTk3CgoyMDEyLTA1LTE2IDE4OjUzOjE1ICswMzAwICBBbnRvbiBCZWxrYSA8YW50b25iZWxrYUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGRvY3M6IGZpeCBnc3Rfc3RydWN0dXJlX3RvX3N0cmluZygpIGRvY3MKCjIwMTItMDUtMTYgMTM6MjQ6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB0aHJvdHRsZS10aW1lIGlzIHVzZWQKCjIwMTItMDUtMTYgMTI6MDg6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgYmFzZXNpbms6IGFkZCBwcmVwYXJlIG1ldGhvZAoJICBBZGQgYSBwcmVwYXJlIG1ldGhvZCB0aGF0IGlzIGNhbGxlZCBiZWZvcmUgc3luYyBoYXBwZW5zLiBUaGUgcHVycG9zZSBvZiB0aGlzCgkgIG1ldGhvZCBpcyB0byBwcmVwYXJlIHRoZSByZW5kZXJpbmcgb2YgdGhlIGdpdmluZyBidWZmZXIgc28gdGhhdCB0aGUgZm9sbG93aW5nCgkgIHJlbmRlcigpIGNhbGwgYWZ0ZXIgc3luYyBpcyBhIHF1aWNrIGFzIHBvc3NpYmxlLgoKMjAxMi0wNS0xNiAwOToxNjoyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBhdm9pZCBwb3RlbnRpYWwgZGVhZGxvY2sKCSAgSW4gZ3N0X2Jhc2Vfc3JjX3N0YXJ0X2NvbXBsZXRlKCkgd2UgZG8gYSBwZXJmb3JtX3NlZWsoKSB0aGF0IHdpbGwgZXZlbnR1YWxseQoJICBzdGFydCB0aGUgc3RyZWFtaW5nIHRocmVhZCB3aGljaCBhY3F1aXJlcyB0aGUgbGl2ZSBsb2NrIGFuZCB0aGVuIGdvZXMgdG8gc2xlZXAKCSAgaW4gdGhlIGNhc2Ugb2YgYXBwc3JjLiBSaWdodCBhZnRlciB3ZSBwZXJmb3JtIHNlZWsgd2UgYWxzbyB0cnkgdG8gYWNxdWlyZSB0aGUKCSAgbGl2ZSBsb2NrIHdoaWNoIG1pZ2h0IHRoZW4gZGVhZGxvY2suCgkgIGZpeCB0aGlzIGJ5IHRha2luZyB0aGUgc3RyZWFtIGxvY2sgYmVmb3JlIHBlcmZvcm1pbmcgdGhlIHNlZWsuIFRoaXMgbWFrZXMgc3VyZQoJICB0aGF0IHRoZSBzdHJlYW1pbmcgdGhyZWFkIGNhbm5vdCBzdGFydCBhbmQgZ3JhYiB0aGUgbGl2ZSBsb2NrIHVudGlsIHdlIGFyZSBkb25lCgkgIGFuZCByZWxlYXNlIHRoZSBzdHJlYW0gbG9jayBhZ2Fpbi4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NjA0OAoKMjAxMi0wNS0xNSAxOToxMToxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogcmVtb3ZlIHJlZmVyZW5jZXMgdG8gbW1hcCBpbiBjb21tZW50cyBhbmQgZGVidWcgbWVzc2FnZXMKCjIwMTItMDUtMTUgMTY6Mzg6MzAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdDogUmVuYW1lIGdzdF90b2NfZW50cnlfdHlwZV90b19zdHJpbmcoKSB0byBnc3RfdG9jX2VudHJ5X3R5cGVfZ2V0X25pY2soKQoJICBJdCdzIG1vcmUgY29uc2lzdGVudC4KCjIwMTItMDUtMTUgMTQ6NTk6MDcgKzAzMDAgIEFudG9uIEJlbGthIDxhbnRvbmJlbGthQGdtYWlsLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogZml4IHByaW50X3RvY19lbnRyeSgpCgoyMDEyLTA1LTE1IDE0OjQ4OjM1ICswMzAwICBBbnRvbiBCZWxrYSA8YW50b25iZWxrYUBnbWFpbC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRvYzogQVBJOiBBZGQgZ3N0X3RvY19lbnRyeV90eXBlX3RvX3N0cmluZygpCgoyMDEyLTA1LTE0IDAzOjU3OjUwICswMjAwICBBbGJhbiBCcm93YWV5cyA8cHJhaGFsQHlhaG9vLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kZWxlbWVudDogaWYgc2luayBwYWQgaXMgYWN0aXZhdGVkIGRvIG5vdCBjaGFuZ2UgbW9kZQoJICBJbiBjb21taXQgYmYwOTY0YjYgYSBjaGVjayBmb3IgcGFkIGlzIGFjdGl2YXRlZCB3YXMgbm90IGNhcnJpZWQuCgkgIFRoaXMgbGVhZHMgdG8gYXR0ZW1wdCB0byBwdWxsIHdoaWxlIGluIHB1c2ggbW9kZSB3aGVuIGZvcmNlX2NhcHMKCSAgaXMgc2V0LiBJbiB0aGlzIGNhc2Ugd2l0aG91dCB0aGUgYXR0YWNoZWQgY2hlY2sgZXZlbiB3aGVuIGFjdGl2YXRlZAoJICBpbiBwdWxsIG1vZGUgd2UgYWN0aXZhdGUgYmFjayB0byBwdXNoIG1vZGUuCgkgIFRoaXMgaXMgZnJvbSBjb21tZW50IGluIHByZXZpb3VzIGNvZGUgLCBjYXNlIG51bWJlciBlaWdodDoKCSAgOC4gaWYgdGhlIHNpbmsgcGFkIGlzIGFjdGl2YXRlZCwgd2UgYXJlIGluIHB1bGwgbW9kZS4gc3VjY2VlZC4KCSAgLSAgICAgb3RoZXJ3aXNlIGFjdGl2YXRlIGJvdGggcGFkcyBpbiBwdXNoIG1vZGUgYW5kIHN1Y2NlZWQuCgkgIFB1dHRpbmcgaXQgYmFjayBmaXhlcyBwbGF5YmFjayBvZiB3ZWJtIGluIHdlYmtpdCtnc3RyZWFtZXIgMS4wIC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NjAwMwoKMjAxMi0wNS0xMyAxNjo1OToyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTEuOTEgPT09CgoyMDEyLTA1LTEzIDE2OjAyOjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkgIFJlbGVhc2UgMC4xMS45MQoKMjAxMi0wNS0xMyAxNjowMjoxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTItMDUtMTMgMTU6NTU6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBkYzcwMjAzIHRvIDM0MjliYTYKCjIwMTItMDUtMDkgMTQ6MjI6MjAgKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJuQGF4aXMuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IE9ubHkgaW5jbHVkZSBpbml0L2RlaW5pdCBvZiBhbGxvYyB0cmFjaW5nIHdoZW4gZW5hYmxlZAoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc1ODA2CgoyMDEyLTA1LTExIDA5OjA3OjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHJlcm9sbC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvYmVzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWdtZW50cy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtZXZlbnRzLnhtbDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGRvY3M6IGZpeCBkb2NzCgkgIEdTVF9GTE9XX1dST05HX1NUQVRFIC0+IEdTVF9GTE9XX0ZMVVNISU5HCgoyMDEyLTA1LTEwIDEyOjE1OjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJwb29sLnR4dDoKCSAgZG9jczogaW1wcm92ZSBidWZmZXJwb29sIGRvY3MKCjIwMTItMDUtMDggMjA6MTI6NDIgKzAzMDAgIEFudG9uIEJlbGthIDxhbnRvbmJlbGthQGdtYWlsLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogcHJpbnQgdGFncyBpbiB0b2MKCjIwMTItMDUtMDUgMjI6MTc6NDMgKzAzMDAgIFJhaW1vIErDpHJ2aSA8cmFpbW8uamFydmlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwb2xsLmM6CgkgIGdzdDogRml4IGNvbXBpbGVyIHdhcm5pbmdzIG9uIG1pbmd3LXc2NAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc1NTI1CgoyMDEyLTA1LTAyIDE0OjAwOjQzICswMzAwICBTcmVlcmVuaiBCYWxhY2hhbmRyYW4gPHNyZWVyZW5qLmJhbGFjaGFuZHJhbkBpbnRlbC5jb20+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogYWRkIG1pc3NpbmcgcGFyYW1ldGVyIHRvIGRlZmF1bHRfbWVtX21hcCgpCgkgIEZpeGVzIGZ1bmN0aW9uIHNpZ25hdHVyZSBmb3IgY29ycmVjdG5lc3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzUyODkKCjIwMTItMDUtMDIgMDg6MDg6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgLmRlZiBmaWxlIGZvciBuZXcgQVBJCgoyMDEyLTA1LTAxIDIyOjM1OjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5Lmg6CgkgIHR5cGVmaW5kZmFjdG9yeTogbWFrZSBvYmplY3Qgc3RydWN0IG9wYXF1ZSBmb3Igbm93CgkgIE1ha2Ugb3BhcXVlIHVudGlsIHdlIGhhdmUgdGltZSB0byBjbGVhbiBpdCB1cCBhIGxpdHRsZS4KCjIwMTItMDUtMDEgMjI6MzA6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5Lmg6CgkgIHR5cGVmaW5kZmFjdG9yeTogZml4IHJldHVybiB0eXBlIG9mIGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9nZXRfZXh0ZW5zaW9ucygpCgoyMDEyLTA1LTAxIDIyOjI4OjExICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHMsIGJhc2U6IGRvbid0IHBva2UgaW50byBHc3RUeXBlRmluZEZhY3Rvcnkgc3RydWN0LCB1c2UgcHVibGljIEFQSQoKMjAxMi0wNS0wMSAyMjozMzozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICB0eXBlZmluZGZhY3Rvcnk6IGFkZCBnc3RfdHlwZV9maW5kX2ZhY3RvcnlfaGFzX2Z1bmN0aW9uKCkKCSAgQWRkIEFQSSBzbyBwZW9wbGUgZG9uJ3QgaGF2ZSB0byBwb2tlIHRoZSBzdHJ1Y3QgZm9yIHRoaXMuCgoyMDEyLTA1LTAxIDE1OjUyOjE0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBnc3RjYXBzOiBVcGRhdGUgZG9jcyBmb3IgZ3N0X2NhcHNfaXNfZXF1YWwKCSAgTlVMTCBjYXBzIGFyZW4ndCB2YWxpZCBjYXBzIGluIDEuMCBhbmQgYXJlbid0IGFjY2VwdGVkIGluCgkgIGdzdF9jYXBzX2lzX2VxdWFsCgoyMDEyLTA1LTAxIDE5OjQ3OjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1cmkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOgoJICB1cmk6IHJlcXVpcmUgVVJJIHByb3RvY29sIGJpdCB0byBiZSBhdCBsZWFzdCAzIGNoYXJhY3RlcnMgdG8gYmUgdmFsaWQKCSAgV2Ugd2FudCB0byByZXR1cm4gRkFMU0Ugd2hlbiBydW4gb24gYSB3aW5kb3dzLXN0eWxlIGZpbGUgcGF0aC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NDI5NgoKMjAxMi0wNC0yNiAxNzoyNjo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm0vYmFzZXNyYzogRG8gYnVmZmVycG9vbCBjb25maWd1cmF0aW9uIGluc2lkZSB0aGUgZGVmYXVsdCBkZWNpZGVfYWxsb2NhdGlvbigpIGltcGxlbWVudGF0aW9uCgkgIFRoaXMgYWxsb3dzIHN1YmNsYXNzZXMgdG8gb3ZlcnJpZGUgaXQsIGFzIGlzIG5lY2Vzc2FyeSBmb3IgZS5nLiB0aGUKCSAgdmlkZW8tY3JvcCBtZXRhLiBJdCBpcyBub3cgbmVjZXNzYXJ5IHRoYXQgYWZ0ZXIgZGVjaWRlX2FsbG9jYXRpb24oKQoJICB0aGVyZSBpcyBhbHdheXMgYSBhbGxvY2F0b3IgYW5kIGEgY29uZmlndXJlZCBidWZmZXIgcG9vbCBpbnNpZGUgdGhlCgkgIHF1ZXJ5LgoKMjAxMi0wNC0yOCAyMTozNzo1NiArMDIwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogc2V0IHJlc3VsdCBvbiBhY2NlcHQgY2FwcyBxdWVyeSB3aGVuIHRoZXJlIGlzIG5vIHBlZXIKCjIwMTItMDUtMDEgMTA6NTA6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IHJlbW92ZSBfdHJ5X3RvX21lcmdlX3VwKCkKCSAgSXQgY2F1c2VzIHRoZSB0aW1lc3RhbXAgdG8gZ28gd3JvbmcsIHNob3VsZCBub3QgY2F1c2UgbXVjaCBvZiBhIHBlcmZvcm1hbmNlCgkgIGluY3JlYXNlIGFuZCBpbiB0aGUgY2FzZXMgd2hlcmUgaXQgaXMgZmFzdGVyLCBpdCBpcyBicm9rZW4gaW4gMC4xMCBhcyB3ZWxsLgoJICBXZSBzaG91bGQgdHJ5IHRvIHJldmlldyB0aGlzIHdoZW4gcmV3cml0aW5nIHRoZSBhZGFwdGVyIGZvciAwLjExIG1lbW9yeQoJICBmZWF0dXJlcy4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NDc5MQoKMjAxMi0wNS0wMSAwOToyNToyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgYWRhcHRlcjogbWFrZSBpbnRlcm5hbHMgcHJpdmF0ZQoJICBNYWtlIHRoZSBhZGFwdGVyIGZpZWxkcyBwcml2YXRlLgoKMjAxMi0wNC0zMCAyMDoyOToyMSArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogcmVhcnJhbmdlIHN5cy9zdGF0LmggaW5jbHVzaW9uIHBvaW50IGZvciBNaW5HVwoJICBnc3RwbHVnaW4uaCB1c2VkIHRvIGluY2x1ZGUgdGhpcyBmb3IgdXMsIGJ1dCBkb2Vzbid0IGFueSBsb25nZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzUxNzEKCjIwMTItMDQtMzAgMDk6NTg6MDkgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJICBldmVudDogYWRkIG5ldyBzZWVrIHNuYXAgZmxhZ3MKCSAgVGhleSBjYW4gYmUgdXNlZCB0byBzZWxlY3Qgc25hcHBpbmcgYmVoYXZpb3IgKHRvIHByZXZpb3VzLCBuZXh0LCBvcgoJICBuZWFyZXN0IGxvY2F0aW9uLCB3aGVyZSByZWxldmFudCkgd2hlbiBzZWVraW5nLgoJICBUaGUgc2Vla2luZyBpbXBsZW1lbnRhdGlvbiAoZWcsIGRlbXV4ZXIpIG1heSBjdXJyZW50bHkgaWdub3JlIHNvbWUKCSAgb3IgYWxsIG9mIHRoZXNlIGZsYWdzLgoKMjAxMi0wNC0yOSAyMDowNjo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIGRvY3M6IHJlbW92ZSByZWZlcmVuY2UgdG8gcmVtb3ZlZCBBUEkgaW4gcGx1Z2luIGRvY3MKCjIwMTItMDQtMjkgMjA6MDY6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IGF2b2lkIHNvbWUgcmVsb2NhdGlvbnMKCjIwMTItMDQtMjkgMTg6MzU6MTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGx1Z2luOiByZW1vdmUgZ3N0X3BsdWdpbl9uYW1lX2ZpbHRlcgoJICBJdCdzIG9ubHkgdXNlZCBpbnRlcm5hbGx5LCBtb3N0IG90aGVyIHVzZXJzIHdpbGwgbGlrZWx5CgkgIHdhbnQgdG8gdXNlIGdzdF9yZWdpc3RyeV9maW5kX3BsdWdpbigpIGRpcmVjdGx5IGluc3RlYWQKCSAgKGFuZCBpZiBub3QsIHRoZXkgY2FuIGVhc2lseSB3YWxrIHRoZSBsaXN0IGFuZCBkb2luZyB0aGUKCSAgc3RyY21wIHRoZW1zZWx2ZXMpLgoKMjAxMi0wNC0yOSAxNzo0NjozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHBsdWdpbjogdXNlIEdzdE9iamVjdCBmbGFncyBmb3IgcGx1Z2luIGZsYWdzCgoyMDEyLTA0LTI5IDE3OjAzOjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIHBsdWdpbjogbWFrZSBHc3RQbHVnaW4gb2JqZWN0IHN0cnVjdHVyZSBvcGFxdWUgZm9yIG5vdwoJICBUaGVyZSdzIG5vIHJlYXNvbiBhbnlvbmUgd291bGQgd2FudCB0byBkZXJpdmUgZnJvbSB0aGlzLCBzbwoJICBqdXN0IG1ha2Ugb3BhcXVlIHVudGlsIHdlIG1hbmFnZSB0byBtYWtlIGFsbCB0aGUgcHJpdmF0ZSBiaXRzCgkgIHByaXZhdGUgcHJvcGVybHkgKHdoaWNoIEknbSBub3QgZG9pbmcgcmlnaHQgbm93IGJlY2F1c2UgaXQncwoJICBtb3JlIGludmFzaXZlIGFuZCBJIGhhdmUgcmVnaXN0cnkgbW9kaWZpY2F0aW9ucyBsb2NhbGx5IHdoaWNoCgkgIHRvdWNoIGFsbCB0aGF0IGNvZGUgYXMgd2VsbCkuCgoyMDEyLTA0LTI5IDE2OjQ5OjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiB1c2UgcHVibGljIGFjY2Vzc29ycyBmb3IgcGx1Z2luIGRlc2NyaXB0aW9uIGRldGFpbHMKCSAgTW9zdGx5IGFueXdheSAoZmxhZ3Mgc3RpbGwgbmVlZCBzb3J0aW5nIG91dCkuCgoyMDEyLTA0LTI5IDE2OjQ2OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGx1Z2luOiByZW1vdmUgZ3N0X3BsdWdpbl9nZXRfbW9kdWxlKCkKCSAgVGhpcyBpcyBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwgcmVhbGx5LCBhbmQgaXQncyBub3QKCSAgY2xlYXIgd2hhdCBhbnlvbmUgd291bGQgZG8gd2l0aCB0aGlzLiBJdCdzIHVudXNlZCBhcwoJICBmYXIgYXMgSSdtIGF3YXJlLCBzbyBqdXN0IHJlbW92ZSBpdCBmb3Igbm93LgoKMjAxMi0wNC0yOSAxNjoyMDo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBsdWdpbjogYWRkIGFjY2Vzc29yIGZvciByZWxlYXNlIGRhdGUgdGltZSBzdHJpbmcgaW4gcGx1Z2luIGRlc2NyaXB0aW9uCgkgIEFQSTogZ3N0X3BsdWdpbl9nZXRfcmVsZWFzZV9kYXRlX3N0cmluZygpCgoyMDEyLTA0LTI5IDE1OjUzOjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSAgdGVzdHM6IHVzZSBwdWJsaWMgYWNjZXNzb3JzIHRvIGdldCBwbHVnaW4gZGVzY3JpcHRpb24gZGV0YWlscwoKMjAxMi0wNC0yOSAxMzoyODowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogZ2l2ZSB0aGUgMjB0aCBxdWV1ZSBlbGVtZW50IGEgZGlmZmVyZW50IG5hbWUgdGhhbiB0aGUgZmlyc3QgcXVldWUyIG9uZQoJICBGaXhlcyBpc3N1ZSB3aXRoIHRoZSBkZWZhdWx0IG5hbWluZyBzY2hlbWUuCgoyMDEyLTA0LTE4IDE3OjM3OjI1ICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIEZpeCBmb3JtYXQgc3RyaW5nIGluIGdyYW1tYXIueQoJICBGaXhlcyAjNjc0ODQ5CgoyMDEyLTA0LTI1IDIwOjE0OjEzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJICBjb250cm9sYmluZGluZ3M6IGFkZCBjb21tZW50cyBmb3Igc3BhcnNlIGNvbnRyb2wgc291cmNlCgoyMDEyLTA0LTI1IDIwOjEwOjExICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGNvbnRyb2xsZXI6IGVtdWxhdGUgX2dldF9nX3ZhbHVlX2FycmF5KCkKCSAgQWRkIGEgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvbiB0aGUgYmFzZWNsYXNzLgoKMjAxMi0wNC0yNSAwOTo0NzoxMCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNvbnRyb2xsZXI6IGV4cGFuZCB0aGUgYXBpIHRvIG9mZmVyIGZ1bmN0aW9ucyBmb3IgcGxhaW4gYW5kIEdWYWx1ZSBhcnJheXMKCSAgUmVuYW1lIHRoZSBfZ2V0X3ZhbHVlX2FycmF5KCkgZnVuY3Rpb25zIHRvIF9nZXRfZ192YWx1ZV9hcnJheSgpIGFuZCByZWludHJvZHVjZQoJICB0aGUgZm9ybWVyIHRvIG9wZXJhdGUgb24gcGxhaW4gdW5ib3hlZCBjIGRhdGF0eXBlcyAobGlrZSBpbiAwLjEwKS4gVGhlIF9nX3ZhbHVlCgkgIHZhcmlhbnRzIGFyZSBmb3IgYmluZGluZ3Mgd2hpbGUgdGhlIF92YWx1ZSBvbmVzIGFyZSBtb3JlIHN1aXRlZCB0byBwcm9jZXNzaW5nCgkgIGluIGVsZW1lbnRzLgoKMjAxMi0wNC0yNSAxODoxMTowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBBZGQgaW5zYW5pdHksIGluc2FuaXR5LWdzdCBhbmQgZ3N0LWVkaXRpbmctc2VydmljZXMKCjIwMTItMDQtMjUgMDk6MDY6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiBSZXNldCB0aGUgYnVmZmVyIGJlZm9yZSByZWxlYXNpbmcgaW50byBwb29sCgkgIFJlc2V0IHRoZSBidWZmZXIgbm90IGFmdGVyIHdlIGFjcXVpcmUgYnV0IGJlZm9yZSB3ZSByZWxlYXNlIGludG8gdGhlIHBvb2wuIFRoaXMKCSAgbWFrZXMgc3VyZSB0aGF0IHRoZSBwb29sIG9ubHkgaGFzIGJ1ZmZlcnMgaW4gYSBjbGVhbiBzdGF0ZSBhbmQgdGhhdCB3ZSBjYW4gc2V0CgkgIGV4dHJhIG1ldGFkYXRhIG9uIGJ1ZmZlcnMgaW4gdGhlIGFjcXVpcmUgbWV0aG9kLiB0aGlzIG1lYW5zIHRoYXQgd2UgbmVlZCB0bwoJICByZW1vdmUgYW4gYXJndW1lbnQgZnJvbSB0aGUgbWV0aG9kLgoKMjAxMi0wNC0yMyAxNTozMjowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBNQVJLRVIgaXMgZm9yIHRoZSBzdGFydCBvZiBhIHRhbGtzcHVydAoKMjAxMi0wNC0yNCAxNjowMTo1MiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogcGx1ZyBzb21lIGxlYWtzCgoyMDEyLTA0LTIzIDE3OjA0OjU3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGRvIG5vdCB1bnJlZiBmbHVzaF9zdGFydCB0d2ljZQoJICBCYXNlZCBvbiBwYXRjaCBieSBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKMjAxMi0wNC0yMyAxNjo1NzoxNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogcmVmcmVzaCBza2lwIGZvbGxvd2luZyBtZXJnZV91cCBhdHRlbXB0CgkgIC4uLiBhcyB0aGUgbGF0dGVyIG1pZ2h0IG5vdyBhZGp1c3Qgc2tpcCBhcyB3ZWxsLgoKMjAxMi0wNC0yMyAwOToxODo0OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBtZXNzYWdlOiBSZW1vdmUgY29tbWEgYXQgZW5kIG9mIGVudW0gbGlzdAoJICBUaGlzIGNvbW1hIGNvbmZ1c2VzIHNvbWUgY29tcGlsZXJzLgoKMjAxMi0wNC0xOCAxNTozMToyMyArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IFJlbW92ZSB1bm5lZWRlZCB1bmxvY2sKCjIwMTItMDQtMTggMDU6MTI6NTUgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBmaXggaGFyZGNvZGVkIDAuMTAgdmVyc2lvbiBpbiB3aW4zMiBwbHVnaW5zY2FubmVyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzQyOTQKCjIwMTItMDQtMTcgMTU6Mzc6MjcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkgIG1ldGE6IGFkZCBMT0NLRUQgZmxhZwoJICBBZGQgYSBuZXcgTE9DS0VEIGZsYWcgdG8gdGhlIG1ldGFkYXRhLiBSZWZ1c2UgcmVtb3ZpbmcgTE9DS0VEIG1ldGFkYXRhIGZyb20KCSAgYSBidWZmZXIuCgkgIE1hcmsgdGhlIG1ldGFkYXRhIGZyb20gdGhlIGJ1ZmZlcnBvb2wgTE9DS0VELgoJICBBZGQgdW5pdCB0ZXN0IGZvciBMT0NLRUQgZmxhZwoKMjAxMi0wNC0xNyAxNDozODowMSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bGlic2NwcC5jYzoKCSogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvdnMxMC9iYXNlL2Jhc2UudmN4cHJvajoKCSogd2luMzIvdnMxMC9iYXNlL2Jhc2UudmN4cHJvai5maWx0ZXJzOgoJICBjb2xsZWN0cGFkczI6IHJlbmFtZSB0byBjb2xsZWN0cGFkcwoKMjAxMi0wNC0xNyAxMjo1NDo0NSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogZW5zdXJlIHdyaXRhYmxlIGhlYWQgYnVmZmVyIGJlZm9yZSBza2lwcGluZyBwYXJ0IG9mIGl0CgoyMDEyLTA0LTE3IDEyOjI5OjUwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi8wLjEwJwoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmMKCjIwMTItMDQtMTcgMTI6MjM6MDUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSAgY29sbGVjdHBhZHMyOiBhbHdheXMgcmVjb3JkaW5nIGluY29taW5nIHNlZ21lbnQgaW5mbyBpZiBubyBidWZmZXJfZnVuYyBzZXQKCjIwMTItMDQtMTcgMTA6Mzg6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgZG9jczogdXBkYXRlIHRoZSBkZWJ1ZyBhbmQgdHJhY2UgZW52IHZhciBkb2NzCgoyMDEyLTA0LTE3IDEwOjMzOjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRyYWNlLmM6CgkgIHRyYWNlOiB1c2UgZ19wYXJzZV9kZWJ1Z19zdHJpbmcgaW5zdGVhZCBvZiBhdG9pCgkgIE1ha2UgdGhlIEdTVF9UUkFDRSBlbnYgdmFyaWFibGUgdGFrZSBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHN0cmluZ3MKCSAgZGVzY3JpYmluZyB0aGUgb3B0aW9ucyB0byBlbmFibGUgaW5zdGVhZCBvZiBhIG51bWJlci4KCjIwMTItMDQtMTYgMjE6MTQ6MTcgKzAwMDAgIFlvdW5lc3MgQWxhb3VpIDx5b3VuZXNzLmFsYW91aUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogSWYgcnVubmluZyB3aXRoIC0tcHJpbnQtYWxsLCBmaXggcHJpbnRpbmcgb2YgdGhlIENoaWxkcmVuOiBsaW5lCgoyMDEyLTA0LTE2IDIxOjE0OjAyICswMDAwICBZb3VuZXNzIEFsYW91aSA8eW91bmVzcy5hbGFvdWlAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IElmIHJ1bm5pbmcgd2l0aCAtLXByaW50LWFsbCwgZml4IHByaW50aW5nIG9mIHNpZ25hbCBuYW1lcwoKMjAxMi0wNC0xNiAxNjozNjo1MiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IGNvbGxlY3RwYWRzMiBBUEkgdG8gLmRlZiBmaWxlCgoyMDEyLTA0LTE2IDE2OjI5OjM0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi8wLjEwJwoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmMKCjIwMTItMDQtMTYgMTY6MjQ6MTggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSAgY29sbGVjdHBhZHMyOiBwcm92aWRlIHF1ZXJ5IGRlZmF1bHQgYW5kIGNhbGxiYWNrIGhhbmRsaW5nCgkgIC4uLiB3aGljaCBwcmVzZW50bHkgbWFpbmx5IHNlcnZlcyB0byBhbnN3ZXIgU0VFS0lORyBxdWVyeSBuZWdhdGl2ZWx5CgkgIHRvIGRpc3N1YWRlIHVwc3RyZWFtIGVuY29kZXJzIGZyb20gZG9pbmcgYW55IHNlZWtpbmcgYW5kCgkgICJoZWFkZXIgZmluYWxpemF0aW9uIiAoc2luY2UgdGhlIHJldHVybmVkIHJlc3VsdCBvZiBwdXNoaW5nIGEKCSAgc3RpY2t5IGV2ZW50IGlzIGZhaXJseSB1c2VsZXNzIG5vd2FkYXlzKS4KCjIwMTItMDQtMTYgMTY6MjQ6MTAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSAgY29sbGVjdHBhZHMyOiBtb2RpZnkgZXZlbnQgaGFuZGxpbmcgdXNpbmcgYSBkZWZhdWx0IGV2ZW50IGhhbmRsZXIKCSAgLi4uIHRoYXQgZWxlbWVudHMgc2hvdWxkICJjaGFpbiB1cCIgdG8uCgoyMDEyLTA0LTE2IDE1OjM1OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHNlZ21lbnQ6IGFkZCBydWRlIHNlcmlhbGl6YXRpb24KCSAgQXNzIHNlcmlhbGl6ZSBhbmQgZGVzZXJpYWxpemUgZnVuY3Rpb25zIGZvciBHc3RTZWdtZW50IHNvIHRoYXQgZ2RwIGFuZAoJICBnc3Rfc3RydWN0dXJlX3RvX3N0cmluZyBzaG93IHRoZSBzZWdtZW50IHZhbHVlcy4gV2UgY29udmVydCB0byBhIEdzdFNlZ21lbnQKCSAgZmlyc3QgdG8gbWFrZSB0aGluZ3MgZWFzaWVyLi4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NDEwMAoKMjAxMi0wMi0wMyAxNzowODozNSArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJICBjb2xsZWN0cGFkczI6IGFzc3VtZSAwIGJhc2VkIHNlZ21lbnQgaWYgbm8gdGltZSBzZWdtZW50IHdhcyBwcm92aWRlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY5MzA1CgoyMDEyLTA0LTE2IDEwOjI4OjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGFkZCBzaXplIHRvIGRlYnVnIGxvZwoKMjAxMi0wNC0xNiAxMDoyNzoyOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogU2V0IHNlcXVlbmNlIG51bWJlciBvbiBzZWdtZW50IGV2ZW50cwoKMjAxMi0wNC0xNiAxMDoyMjo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogRm9yd2FyZCBhbGwgc3RpY2t5IGV2ZW50cyB3aGVuIHN3aXRjaGluZyBwYWRzCgoyMDEyLTA0LTE2IDEwOjA1OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogU3RvcmUgcGFkIHN0YXRlIGRpcmVjdGx5IGluc2lkZSB0aGUgcGFkcyBpbnN0ZWFkIG9mIEdPYmplY3QgcWRhdGEKCjIwMTItMDQtMTYgMDk6NDU6MjcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFNlbmQgcmVjb25maWd1cmUgZXZlbnQgb24gdGhlIG5ldyBhY3RpdmUgcGFkIHdoZW4gcGFkcyBhcmUgc3dpdGNoZWQKCjIwMTItMDQtMTYgMDk6MDg6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA2ZGIyNWJlIHRvIGRjNzAyMDMKCjIwMTItMDQtMTQgMDM6Mjc6MjkgKzAyMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgUmVtb3ZlIHNraXBwZWQgcGFydCBvZiBidWZmZXIgd2hlbiBtYXBwaW5nIHRoZSBhZGFwdGVyCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzQwODUKCjIwMTItMDQtMTQgMTA6MjQ6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgdGVzdHM6IGFkZCBhbm90aGVyIGFkYXB0ZXIgdGVzdAoJICBUZXN0IHBlcmZvcm1hbmNlIG9mIG1lcmdpbmcKCjIwMTItMDQtMTQgMTA6MjM6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogaW1wcm92ZSBkZWJ1ZwoKMjAxMi0wNC0xMyAxNDoyMjozNCArMDIwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBnc3Rfc2luZ2xlX3F1ZXVlX2ZsdXNoIHVubG9ja3MgdGhlIHF1ZXVlIHR3aWNlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzQwNDQKCjIwMTItMDQtMTMgMTM6MzY6MzcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogYXV0b2dlbi5zaDoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IE1vZGVybml6ZSBhdXRvdG9vbHMgc2V0dXAgYSBiaXQKCSAgQWxzbyB3ZSBub3cgb25seSBjcmVhdGUgdGFyLmJ6MiBhbmQgdGFyLnh6IHRhcmJhbGxzLgoKMjAxMi0wNC0xMyAxMzozNjo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDQ2NGZlMTUgdG8gNmRiMjViZQoKMjAxMi0wNC0xMyAxMTo1ODo0OSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBwbHVnIGNhcHMgbGVhawoKMjAxMi0wNC0xMyAwODoxMDoxOSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJICBjb250cm9sYmluZGluZzogb25seSB0YWtlIGEgd2VhayByZWYgb24gdGhlIG9iamVjdAoJICBGaXhlcyB0aGUgbGVha3MgaW4gdGhlIHRlc3RzLiBBZGRlZCBhIFRPRE8gY29tbWVudCB0byBldmVudHVhbGx5IHJld29yayB0aGlzCgkgIHNvbWUgbW9yZSAod2hpbGUgd2UgY2FuKS4KCjIwMTItMDQtMTIgMTg6MTU6MjcgLTA0MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQGNvbGxhYm9yYS5jb20+CgoJKiBBbmRyb2lkLm1rOgoJICBTeW5jIEFuZHJvaWQubWsgZW50cmllcyB0byB0aGUgbmV3IG1ham9yIHZlcnNpb24KCSAgQ2hhbmdlIG5hbWluZyBvbiB0aGUgcGtnY29uZmlnIGZpbGVzIHRvIHJlZmxlY3QKCSAgdGhlIDAuMTAgLT4gMS4wIGJ1bXAuCgoyMDEyLTA0LTEyIDE0OjU5OjUyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogQ2hhaW4gdXAgdG8gcGFyZW50IGNsYXNzIGRpc3Bvc2UvZmluYWxpemUKCSAgQXZvaWRzIGxlYWtzCgoyMDEyLTA0LTEyIDE0OjU5OjMxICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJICBjb25zaXN0ZW5jeWNoZWNrZXI6IFVzZSBnc3Rfb2JqZWN0X3tyZWZ8dW5yZWZ9IHdoZXJlIGFwcGxpY2FibGUKCSAgQWxsb3dzIHVzIHRvIGRlYnVnIG9iamVjdCBsaWZlCgoyMDEyLTA0LTEyIDE0OjU4OjQ3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgZ3N0OiBVc2UgZ3N0X29iamVjdF97cmVmfHVucmVmfSB3aGVyZSBhcHBsaWNhYmxlCgkgIEFsbG93cyB1cyB0byBkZWJ1ZyBvYmplY3QgbGlmZQoKMjAxMi0wNC0xMiAxMTo1MzowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBpbXByb3ZlIGFyZyBjaGVja2luZwoJICBBbGxvdyBpZHggPT0gMCBhbmQgbGVuZ3RoID09IC0xIG9uIGVtcHR5IGJ1ZmZlcnMgZm9yIHRoZSBfcmFuZ2UgbWV0aG9kcy4KCjIwMTItMDQtMTIgMTE6MTg6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAwLjExLjkwID09PQoKMjAxMi0wNC0xMiAwOTo1NzowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnByZXJlcXVpc2l0ZXM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjExLjkwCgoyMDEyLTA0LTEyIDA5OjU2OjQzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMi0wNC0xMSAxMzoyMDoxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IG1lcmdlIGVycm9yCgoyMDEyLTA0LTExIDEyOjU4OjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkgIHF1ZXVlMjogc2V0IGJ1ZmZlciB0byBOVUxMIGJlZm9yZSBwdWxsCgoyMDEyLTA0LTExIDEyOjU0OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkgIHRlc3RzOiBwb3J0IHF1ZXVlMiB0ZXN0cyB0byAwLjExCgoyMDEyLTA0LTExIDEyOjUwOjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luLzAuMTAnCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHRvYy5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmMKCjIwMTItMDQtMTEgMTI6MzQ6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHNpZ25hbCBkZWxldGUgYmVmb3JlIHdhaXRpbmcKCSAgV2hlbiB3ZSBkb24ndCBoYXZlIHRoZSByZXF1ZXN0ZWQgZGF0YSBpbiB0aGUgcmluZ2J1ZmZlciBhbmQgd2UgbW92ZSBvdXIgcmVhZAoJICBwb2ludGVyIHRvIHRoZSByZXF1ZXN0ZWQgcG9zaXRpb24sIHNpZ25hbCB0aGUgZGVsZXRlIGNvbmQgdG8gaW5mb3JtIHRoZSB3cml0ZXIKCSAgdGhhdCB3ZSBjaGFuZ2VkIHRoZSBjdXJyZW50IGZpbGwgbGV2ZWwuIElmIHdlIGRvbid0LCB0aGUgd3JpdGVyIG1pZ2h0IHN0YXkKCSAgYmxvY2tlZCBhbmQgd2UgbWlnaHQgd2FpdCBmb3JldmVyLgoKMjAxMi0wNC0xMSAxMjoxNTozNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZCB0ZXN0IGZvciByaW5nYnVmZmVyIGRlYWRsb2NrCgoyMDEyLTA0LTExIDEyOjAyOjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiB1cGRhdGUgY3VycmVudCByZWFkIHBvc2l0aW9uIGJlZm9yZSB3YWl0aW5nCgkgIFdoZW4gd2UgZG9uJ3QgaGF2ZSBlbm91Z2ggYnl0ZXMgaW4gdGhlIHJpbmdidWZmZXIgdG8gc2F0aXNmeSB0aGUgY3VycmVudAoJICByZXF1ZXN0LCBmaXJzdCB1cGRhdGUgdGhlIGN1cnJlbnQgcmVhZCBwb3NpdGlvbiBiZWZvcmUgd2FpdGluZy4gSWYgd2UgZG9uJ3QgZG8KCSAgdGhhdCwgdGhlIHJpbmdidWZmZXIgbWlnaHQgYXBwZWFyIGZ1bGwgYW5kIHRoZSB3cml0ZXIgd2lsbCBuZXZlciB3cml0ZSBtb3JlCgkgIGJ5dGVzIHRvIHdha2UgdXMgdXAuCgoyMDEyLTA0LTExIDEyOjAwOjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGQgcmFuZ2Ugb25seSBvbiBzaW5rcGFkCgkgIE9ubHkgYWRkIHRoZSByYW5nZSB3aGVuIHdlIHJlY2VpdmUgYSBzZWdtZW50IGV2ZW50IG9uIHRoZSBzaW5rcGFkLiBUaGUgYWRkX3JhbmdlCgkgIG1ldGhvZCB3aWxsIG1vZGlmeSB0aGUgd3JpdGUgcG9zaXRpb24sIHdoaWNoIG9ubHkgbWFrZXMgc2Vuc2UgdG8gZG8gb24gdGhlCgkgIHNpbmtwYWQuCgoyMDEyLTA0LTExIDExOjU1OjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggZGVidWcgbWVzc2FnZQoJICBXZSdyZSBub3Qgd3JpdGluZyB0byB0aGUgb2Zmc2V0IG9mIHRoZSBidWZmZXIKCjIwMTItMDQtMTEgMTE6NTU6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZF9yYW5nZSBhbHJlYWR5IHVwZGF0ZXMgdGhlIGxldmVsCgoyMDEyLTA0LTEwIDE0OjExOjI2ICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L2dzdHRvYy5jOgoJICB0b2M6IGZpeCBtZW1vcnkgbGVha3Mgd2hpbGUgY29weWluZyBjb250ZW50CgoyMDEyLTA0LTEwIDE0OjE4OjQ4ICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jOgoJICB0b2NzZXR0ZXI6IGZpeCBtZW1vcnkgbGVha3MgaW4gdW5pdCB0ZXN0CgoyMDEyLTA0LTEwIDE0OjE2OjUwICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJICB0b2M6IGZpeCBtZW1vcnkgbGVha3MgaW4gdW5pdCB0ZXN0CgoyMDEyLTA0LTEwIDE0OjE4OjQ4ICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jOgoJICB0b2NzZXR0ZXI6IGZpeCBtZW1vcnkgbGVha3MgaW4gdW5pdCB0ZXN0CgoyMDEyLTA0LTEwIDE0OjE2OjUwICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJICB0b2M6IGZpeCBtZW1vcnkgbGVha3MgaW4gdW5pdCB0ZXN0CgoyMDEyLTA0LTEwIDE0OjExOjI2ICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L2dzdHRvYy5jOgoJICB0b2M6IGZpeCBtZW1vcnkgbGVha3Mgd2hpbGUgY29weWluZyBjb250ZW50CgoyMDEyLTA0LTEwIDE5OjM5OjU4ICswMzAwICBTcmVlcmVuaiBCYWxhY2hhbmRyYW4gPHNyZWVyZW5qLmJhbGFjaGFuZHJhbkBpbnRlbC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogQ2xlYW4gdXAgaGVhZGVyIGZpbGVzCgoyMDEyLTA0LTEwIDE2OjA3OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luLzAuMTAnCgoyMDEyLTA0LTEwIDE2OjA0OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBjbGVhciBzZWVraW5nIGZsYWcgaW4gYWxsIGNhc2VzCgkgIEFsc28gY2xlYXIgdGhlIHNlZWtpbmcgZmxhZyB3aGVuIGRvd25zdHJlYW0gaXMgaW4gcHVsbCBtb2RlLgoKMjAxMi0wNC0xMCAxMjo1NTozMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi8wLjEwJwoJICBDb25mbGljdHM6CgkgIGdzdC9nc3QuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jCgoyMDEyLTA0LTEwIDEyOjQ5OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGFkZCB0b2MgZW50cnkgcmVmL3VucmVmCgoyMDEyLTA0LTEwIDEyOjA5OjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBzZXQgc2Vla2luZyBmbGFnIHdpdGggdGhlIHF1ZXVlIGxvY2sKCjIwMTItMDQtMTAgMTE6MjA6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IEtlZXAgdHJhY2sgb2YgdGhlIHNlZWtpbmcgc3RhdGUKCSAgU2V0IHRoZSBzZWVraW5nIGZsYWcgcmlnaHQgYmVmb3JlIHdlIHNlbmQgYSBzZWVrIGV2ZW50IHVwc3RyZWFtIGFuZCBkaXNjYXJkIGFsbAoJICBkYXRhIHVudGlsbCB3ZSBzZWUgYSBmbHVzaC1zdG9wIGFnYWluLiBXZSBuZWVkIHRvIGRvIHRoaXMgYmVjYXVzZSB3ZSBhY3RpdmF0ZQoJICB0aGUgcmFuZ2UgdGhhdCB3ZSBzZWVrIHRvIGltbWVkaWF0ZWx5IGFmdGVyIHNlbmRpbmcgdGhlIHNlZWsgZXZlbnQgYW5kIGl0IGlzCgkgIHBvc3NpYmxlIHRoYXQgd2UgcmVjZWl2ZSBkYXRhIGluIG91ciBjaGFpbiBmdW5jdGlvbiBmcm9tIGJlZm9yZSB0aGUgc2VlawoJICB3aGljaCB3b3VsZCB0aGVuIGJlIGFkZGVkIHRvIHRoZSB3cm9uZyByYW5nZSByZXN1bHRpbmcgaW4gZGF0YSBjb3JydXB0aW9uLgoKMjAxMi0wNC0xMCAxMToxNjoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogbWFrZSByYW5nZSBvbiBuZXdzZWdtZW50IGZvciByaW5nYnVmZmVyCgkgIFdoZW4gdXNpbmcgdGhlIHJpbmdidWZmZXIsIGhhbmRsZSB0aGUgbmV3c2VnbWVudCBldmVudCBsaWtlIHdlIGhhbmRsZSBpdCB3aGVuCgkgIHVzaW5nIHRoZSB0ZW1wLWZpbGUgbW9kZTogY3JlYXRlIGEgbmV3IHJhbmdlIGZvciB0aGUgbmV3IGJ5dGUgc2VnbWVudC4gVGhlIG5ldwoJICBzZWdtZW50IHNob3VsZCBub3JtYWxseSBhbHJlYWR5IGJlIGNyZWF0ZWQgd2hlbiB3ZSBkbyBhIHNlZWsuCgoyMDEyLTA0LTA5IDE2OjQyOjMwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi8wLjEwJwoKMjAxMi0wNC0wOSAxNjo0MDo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRG9uJ3QgdXNlIGJ1ZmZlciBhZnRlciBwdXNoaW5nIGl0IGRvd25zdHJlYW0KCjIwMTItMDQtMDkgMTY6MDQ6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luLzAuMTAnCgoyMDEyLTA0LTA5IDE1OjU4OjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IEZhaWwgaWYgYSBwYWQgZm9yIGEgbm9uLXJlcXVlc3QgdGVtcGxhdGUgaXMgcmVxdWVzdGVkCgoyMDEyLTA0LTA5IDEzOjQwOjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgZWxlbWVudDogdXNlIHF1YXJrcyB3aGVuIHN0b3Jpbmcgc3RhbmRhcmQgbWV0YWRhdGEgaW4gc3RydWN0dXJlcwoKMjAxMi0wNC0wOSAxMzowNTowNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgcGx1Z2luczogdXNlIG5ldyBnc3RfZWxlbWVudF9jbGFzc19zZXRfc3RhdGljX21ldGFkYXRhKCkKCjIwMTItMDQtMDkgMTI6NDc6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGVsZW1lbnQ6IGFkZCBnc3RfZWxlbWVudF9jbGFzc197c2V0LGFkZH1fc3RhdGljX21ldGFkYXRhKCkKCSAgQWRkIGdzdF9lbGVtZW50X2NsYXNzX3thZGQsc2V0fV9tZXRhZGF0YSgpIHZhcmlhbnRzIGZvciBzdGF0aWMgc3RyaW5ncywKCSAgc28gd2UgY2FuIGF2b2lkIHVubmVjZXNzYXJ5IGdfc3RyZHVwKClzLgoJICBBUEk6IGdzdF9lbGVtZW50X2NsYXNzX2FkZF9zdGF0aWNfbWV0YWRhdGEoKQoJICBBUEk6IGdzdF9lbGVtZW50X2NsYXNzX3NldF9zdGF0aWNfbWV0YWRhdGEoKQoKMjAxMi0wNC0wOCAyMToxNzoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3N0cmVhbS1zdGF0dXMuYzoKCSAgdGFzazogcmVtb3ZlIGdzdF90YXNrX3NldF9wcmlvcml0eSgpCgkgIEl0IGRvZXNuJ3QgYWN0dWFsbHkgZG8gYW55dGhpbmcuCgoyMDEyLTAxLTE0IDAwOjMxOjMyIC0wNTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogd2luMzIvdnMxMC9Db21tb24ucHJvcHM6CgkqIHdpbjMyL3ZzMTAvTGlicmFyeS5wcm9wczoKCSogd2luMzIvdnMxMC9QbHVnaW4ucHJvcHM6CgkqIHdpbjMyL3ZzMTAvUmVhZE1lLnR4dDoKCSogd2luMzIvdnMxMC9Ub29sLnByb3BzOgoJKiB3aW4zMi92czEwL2Jhc2UvYmFzZS52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2Jhc2UvYmFzZS52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvY29udHJvbGxlci9jb250cm9sbGVyLnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvY29udHJvbGxlci9jb250cm9sbGVyLnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnMxMC9nZW5lcmF0ZWQvZ2VuZXJhdGVkLnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvZ2VuZXJhdGVkL2dlbmVyYXRlZC52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvZ3N0LWluc3BlY3QvZ3N0LWluc3BlY3QudmN4cHJvajoKCSogd2luMzIvdnMxMC9nc3QtaW5zcGVjdC9nc3QtaW5zcGVjdC52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvZ3N0LWxhdW5jaC9nc3QtbGF1bmNoLnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvZ3N0LWxhdW5jaC9nc3QtbGF1bmNoLnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnMxMC9nc3QtdHlwZWZpbmQvZ3N0LXR5cGVmaW5kLnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvZ3N0LXR5cGVmaW5kL2dzdC10eXBlZmluZC52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvZ3N0Y29yZWVsZW1lbnRzL2dzdGNvcmVlbGVtZW50cy52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2dzdGNvcmVlbGVtZW50cy9nc3Rjb3JlZWxlbWVudHMudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL2dzdHJlYW1lci5zbG46CgkqIHdpbjMyL3ZzMTAvZ3N0cmVhbWVyL2dzdHJlYW1lci52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2dzdHJlYW1lci9nc3RyZWFtZXIudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL25ldC9uZXQudmN4cHJvajoKCSogd2luMzIvdnMxMC9uZXQvbmV0LnZjeHByb2ouZmlsdGVyczoKCSAgd2luMzI6IGFkZCBWUyAxMCBQcm9qZWN0IGZpbGVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjYyMTkKCjIwMTItMDQtMDggMTg6MjU6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgd2luMzI6IHVwZGF0ZSBmb3IgdmVyc2lvbiBjaGFuZ2VzCgoyMDEyLTA0LTA3IDE2OjM1OjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi8wLjEwJwoKMjAxMi0wNC0wNyAxNjowNjoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgVE9DIEFQSSB0byBsaWJnc3RyZWFtZXIuZGVmCgkgIEZpeGVzICdtYWtlIGNoZWNrJy4KCjIwMTItMDQtMDcgMTY6MDU6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkgIHRlc3RzOiBhZGQgbmV3IHRvYyB0ZXN0IGJpbmFyaWVzIHRvIC5naXRpZ25vcmUKCjIwMTItMDQtMDcgMTY6MDQ6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0dG9jLmM6CgkgIGdzdDogZG9uJ3QgZXhwb3J0IHByaXZhdGUgVE9DIGZ1bmN0aW9ucwoKMjAxMi0wNC0wNyAxNTo0MjowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vMC4xMCcKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0YXRvbWljcXVldWUuYwoKMjAxMi0wMi0yNCAxNToyNDo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJICBhdG9taWNxdWV1ZTogZml4IHJhY2UKCSAgQWZ0ZXIgYSB3cml0ZXIgaGFzIHdyaXR0ZW4gdG8gaXRzIHJlc2VydmVkIHdyaXRlIGxvY2F0aW9uLCBpdCBjYW4gb25seSBtYWtlIHRoZQoJICBsb2NhdGlvbiBhdmFpbGFibGUgZm9yIHJlYWRpbmcgaWYgYWxsIG9mIHRoZSB3cml0ZXJzIHdpdGggbG93ZXIgbG9jYXRpb25zIGhhdmUKCSAgZmluaXNoZWQuCgoyMDEyLTAyLTI0IDEyOjUxOjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkgIGF0b21pY3F1ZXVlOiBmaXggc3VidGxlIHJhY2UKCSAgRml4IGEgcmFjZSB3aGVyZSB0aGUgcmVhZGVyIHdvdWxkIHNlZSB0aGUgdXBkYXRlZCB0aGUgdGFpbCBwb2ludGVyIGJlZm9yZSB0aGUKCSAgd3JpdGUgY291bGQgd3JpdGUgdGhlIGRhdGEgaW50byB0aGUgcXVldWUuIEZpeCB0aGlzIGJ5IGhhdmluZyBhIHNlcGFyYXRlIHJlYWRlcgoJICB0YWlsIHBvaW50ZXIgdGhhdCBpcyBvbmx5IGluY3JlbWVudGVkIGFmdGVyIHRoZSB3cml0ZXIgd3JvdGUgdGhlIGRhdGEuCgoyMDEyLTA0LTA3IDE1OjIwOjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBzZXQgZGVmYXVsdCBibG9jayBzaXplIGZyb20gbG9jYWwgZGVmaW5lCgkgIERvZXNuJ3QgYWN0dWFsbHkgY2hhbmdlIHRoZSBkZWZhdWx0IHZhbHVlLCBqdXN0IG1ha2VzIHVzZSBvZiB0aGUKCSAgZGVmaW5lIHRoZXJlIGlzLiBTdXBlcmZpY2lhbCB0ZXN0aW5nIHdpdGggZmFrZXNpbmsgYW5kIGpwZWdkZWMgZGlkCgkgIG5vdCByZXZlYWwgaW1wcm92ZWQgcGVyZm9ybWFuY2UgZm9yIGJpZ2dlciBibG9jayBzaXplcywgc28gbGVhdmUKCSAgZGVmYXVsdCBhcyBpdCBpcy4KCjIwMTItMDQtMDYgMTY6NDY6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGRvbid0IHVwZGF0ZSB0aGUgY3VycmVudCByZWFkaW5nX3BvcyBpbiBmbHVzaAoJICBBIGZsdXNoIGZyb20gdGhlIHVwc3RyZWFtIGVsZW1lbnQgc2hvdWxkIG5vdCBtYWtlIGJ1ZmZlcmluZyBnbyB0byAwLCB0aGUgbmV4dAoJICBwdWxsIHJlcXVlc3QgbWlnaHQgYmUgaW5zaWRlIGEgcmFuZ2UgdGhhdCB3ZSBoYXZlIGFuZCB0aGVuIHdlIGRvbid0IG5lZWQgdG8KCSAgYnVmZmVyIGF0IGFsbC4gSWYgdGhlIG5leHQgcHVsbCBpcyBvdXRzaWRlIGFueXRoaW5nIHdlIGhhdmUsIGJ1ZmZlcmluZyB3aWxsCgkgIGhhcHBlbiBhcyB1c3VhbCBhbnl3YXkuCgoyMDEyLTA0LTA2IDEyOjQyOjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggZm9yIG1lcmdlZCBjaGFuZ2VzCgoyMDEyLTA0LTA2IDEyOjM3OjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICcwLjEwJwoKMjAxMi0wNC0wNiAxMjozMjo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogY2hlY2sgdGhlIHBhZCBtb2RlIG9uIHRoZSByaWdodCBwYWQKCjIwMTItMDQtMDYgMTI6MjQ6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZvcndhcmQgZmx1c2ggZXZlbnRzIGNvcnJlY3RseQoJICBXZSB3YW50IHRvIGZvcndhcmQgdGhlIGZsdXNoIGV2ZW50cyByZWNlaXZlZCBvbiB0aGUgc2lua3BhZCB3aGVuZXZlciB0aGUgc3JjcGFkCgkgIGlzIGFjdGl2YXRlZCBpbiBwdXNobW9kZSwgd2hpY2ggY2FuIGFsc28gaGFwcGVuIHdoZW4gdXNpbmcgdGhlIFJJTkdCVUZGRVIgb3IKCSAgRE9XTkxPQUQgbW9kZSBhbmQgZG93bnN0cmVhbSBmYWlsZWQgdG8gYWN0aXZhdGUgdXMgaW4gcHVsbCBtb2RlLgoKMjAxMi0wNC0wNSAyMTo1NjowNSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJICBjb250cm9sYmluZGluZzogY2hhaW4gdXAgb24gZGlzcG9zZSBhbmQgZmluYWxpemUKCjIwMTItMDQtMDUgMjE6NTU6MDcgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogdW5wYXJlbnQgdGhlIGNvbnRyb2xiaW5kaW5nIG9uIGRpc3Bvc2UKCjIwMTItMDQtMDUgMjE6MDc6NTUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGNvbnRyb2xsZXI6IGR1cCB0aGUgb2JqZWN0cyB0byBhdm9pZCBwcmVtYXR1cmUgZnJlZXMKCjIwMTItMDQtMDUgMjE6MDY6MTQgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBhZGQgYSBmaW5hbGl6ZXIgZm9yIHRoZSB0ZXN0IGNvbnRyb2xiaW5kaW5ncwoJICBObyBpZGVhIHdoeSB2YWxncmluZCBzdGlsbCBpbmlzdHMgdGhhdCB0aGVyZSBhcmUgbGVha3MuCgoyMDEyLTA0LTA1IDE4OjQyOjMwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gN2ZkYTUyNCB0byA0NjRmZTE1CgoyMDEyLTA0LTA1IDE4OjAyOjU2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5jOgoJICBnc3Q6IFVwZGF0ZSBmb3IgR1NUX1BMVUdJTl9ERUZJTkUoKSBBUEkgY2hhbmdlcwoKMjAxMi0wNC0wNSAxNDoxNzoxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgZ3N0OiBDaGFuZ2UgbmFtZSBwYXJhbWV0ZXIgb2YgR1NUX1BMVUdJTl9ERUZJTkUoKSB0byBub3QgdGFrZSBhIHN0cmluZyBhbnltb3JlCgkgIFRoaXMgd2lsbCBiZSBuZWVkZWQgd2hlbiB3ZSBsYXRlciBhZGQgc3VwcG9ydCBmb3Igc3RhdGljIGxpbmtpbmcKCSAgb2YgcGx1Z2lucyB3aXRob3V0IGludHJvZHVjaW5nIG5ldyBBUEkgb3IgY2hhbmdpbmcgZXhpc3RpbmcgQVBJLgoKMjAxMi0wNC0wNSAxMzoyMzowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgIGdzdHBsdWdpbjogQWRkIGhhY2sgZm9yIGhhbmRsaW5nIDAuMTEuOVggYW5kIDAuMTEuODkuWCB3aXRoIFg+MCB0aGUgc2FtZSBhcyAxLjAuMAoJICBBbHNvIHVwZGF0ZSB0aGUgdmVyc2lvbiBudW1iZXIgdG8gMC4xMS44OS4xCgoyMDEyLTA0LTA1IDEyOjIyOjExICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0b2NzZXR0ZXIuYzoKCSAgdG9jc2V0dGVyOiBjbGVhciBtdXRleCB1cG9uIGZyZWUKCjIwMTItMDQtMDUgMTA6NTY6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgIHJlZ2lzdHJ5OiBTZXQgcmVnaXN0cnkgdmVyc2lvbiB0byAxLjAuMCB0b28KCjIwMTItMDQtMDUgMTA6MzY6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJzAuMTAnCgkgIENvbmZsaWN0czoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYwoKMjAxMi0wNC0wNSAxMDowMzowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogc3RvcCB3YWl0aW5nIGZvciBtb3JlIGRhdGEgYWZ0ZXIgRU9TCgkgIFdoZW4gd2UgaGF2ZSBFT1MsIHJlYWQgdGhlIHJlbWFpbmluZyBieXRlcyBpbiB0aGUgYnVmZmVyIGFuZCBtYWtlIHN1cmUgd2UgZG9uJ3QKCSAgd2FpdCBmb3IgbW9yZSBkYXRhLiBBbHNvIGNsaXAgdGhlIG91dHB1dCBidWZmZXIgdG8gdGhlIGFtb3VudCBvZiByZW1haW5pbmcKCSAgYnl0ZXMuCgoyMDEyLTA0LTA1IDA5OjU2OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBjaGVjayBmb3IgZmlsbGVkIGJ1ZmZlciBjb3JyZWN0bHkKCSAgV2hlbiB1c2luZyB0aGUgcmluZ2J1ZmZlciBtb2RlLCB0aGUgYnVmZmVyIGlzIGZpbGxlZCB3aGVuIHdlIHJlYWNoZWQgdGhlCgkgIG1heF9sZXZlbC5ieXRlcyBtYXJrIG9yIHRoZSB0b3RhbCBzaXplIG9mIHRoZSByaW5nYnVmZmVyLCB3aGljaGV2ZXIgaXMgc21hbGxlci4KCjIwMTItMDQtMDQgMTM6MDc6MjcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGF2b2lkIHdhaXRpbmcgZm9yIGEgZmlsbGVkIGJ1ZmZlcgoJICBVc2UgYSB0aHJlc2hvbGQgdmFyaWFibGUgdG8gaG9sZCB0aGUgbWF4aW11bSBkaXN0YW5jZSBmcm9tIHRoZSBjdXJyZW50IHBvc2l0aW9uCgkgIGZvciB3aXRoIHdlIHdpbGwgd2FpdCBpbnN0ZWFkIG9mIGRvaW5nIGEgc2Vlay4KCSAgV2hlbiB1c2luZyB0aGUgcmluZ2J1ZmZlciBhbmQgdGhlIHJlcXVlc3RlZCBvZmZzZXQgaXMgbm90IGF2YWlsYWJsZSwgYXZvaWQKCSAgd2FpdGluZyB1bnRpbCB0aGUgY29tcGxldGUgcmluZ2J1ZmZlciBpcyBmaWxsZWQgYnV0IGluc3RlYWQgZG8gYSBzZWVrIHdoZW4gdGhlCgkgIHJlcXVlc3RlZCBkYXRhIGlzIGZ1cnRoZXIgdGhhbiB0aGUgdGhyZXNob2xkLgoJICBBdm9pZCBkb2luZyB0aGUgc2VlayB0d2ljZSBpbiB0aGUgcmluZ2J1ZmZlciBjYXNlLgoJICBVc2UgdGhlIHNhbWUgdGhyZXNob2xkIGZvciByaW5nYnVmZmVyIGFuZCBkb3dubG9hZCBidWZmZXJpbmcuCgoyMDEyLTA0LTA1IDA5OjA3OjE4ICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZ3N0YnVmZmVyOiBmaXggY29tcGlsZSB3YXJuaW5nCgoyMDEyLTA0LTA0IDEzOjEzOjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcmFuZG9tL2F1dG90b29sczoKCSogZG9jcy92ZXJzaW9uLmVudGl0aWVzLmluOgoJKiBnc3QtZWxlbWVudC1jaGVjay5tNC5pbjoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3R2ZXJzaW9uLmguaW46CgkqIGdzdHJlYW1lci5zcGVjLmluOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiBwa2djb25maWcvTWFrZWZpbGUuYW06CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2xsZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbGxlci5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLnBjLmluOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByZXNldC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9hZGFwdGVyL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkqIHRvb2xzL01ha2VmaWxlLmFtOgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkqIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIGdzdDogQ2hhbmdlIHZlcnNpb25pbmcKCSAgUmVtb3ZlIEdTVF9NQUpPUk1JTk9SIGFuZCByZXBsYWNlIGl0IGJ5IEdTVF9BUElfVkVSU0lPTgoJICBBbHNvIHNldCBHU1RfVkVSU0lPTl97TUFKT1IsTUlOT1IsTUlDUk8sTkFOT30gZXhwbGljaXRlbHkKCSAgbm93LgoJICBBbGwgdmVyc2lvbnMgYXJlIGF0IDEuMC4wIG5vdyBmb3IgdGhlIHJlbGVhc2Ugc29vbiBidXQKCSAgQVBJL0FCSSBjYW4gc3RpbGwgY2hhbmdlIHVudGlsIHRoZSAxLjAuMCByZWxlYXNlLgoJICBOZXh0IHJlbGVhc2UgdmVyc2lvbnMgdW50aWwgMS4wLjAgd2lsbCBiZSAwLjEwLjlYIGFuZAoJICB0aGVzZSB3aWxsIGJlIHJlbGVhc2UgY2FuZGlkYXRlcy4gR1NUX1ZFUlNJT05fKiB3aWxsCgkgIG5vbmV0aGVsZXNzIHN0YXkgYXQgMS4wLjAuMC4KCjIwMTItMDQtMDQgMTI6MjU6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luLzAuMTAnCgkgIENvbmZsaWN0czoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dAoJICBnc3QvTWFrZWZpbGUuYW0KCSAgZ3N0L2dzdC5jCgkgIGdzdC9nc3QuaAoJICBnc3QvZ3N0ZXZlbnQuYwoJICBnc3QvZ3N0ZXZlbnQuaAoJICBnc3QvZ3N0bWVzc2FnZS5jCgkgIGdzdC9nc3RtZXNzYWdlLmgKCSAgZ3N0L2dzdHF1YXJrLmMKCSAgZ3N0L2dzdHF1YXJrLmgKCSAgZ3N0L2dzdHF1ZXJ5LmMKCSAgZ3N0L2dzdHF1ZXJ5LmgKCSAgZ3N0L2dzdHRvYy5jCgkgIGdzdC9nc3R0b2MuaAoJICBnc3QvZ3N0dG9jc2V0dGVyLmMKCSAgdGVzdHMvY2hlY2svTWFrZWZpbGUuYW0KCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2NzZXR0ZXIuYwoKMjAxMi0wNC0wMyAxNjo1MTo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBpbXByb3ZlIF9zZXRfc2l6ZSgpCgoyMDEyLTA0LTAzIDE2OjQ0OjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IG1ha2UgZ2V0X3NpemVzIGFuZCBfcmVzaXplIHdpdGggcmFuZ2VzCgkgIE1ha2UgdGhlIF9nZXRfc2l6ZXMgYW5kIF9yZXNpemUgbWV0aG9kcyB3b3JrIG9uIGEgcmFuZ2Ugb2YgbWVtb3J5IHRvIG1ha2UgdGhlbQoJICBtb3JlIHBvd2VyZnVsbC4KCjIwMTItMDQtMDMgMTg6MjU6NDAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkgIGNvbnNpc3RlbmN5Y2hlY2tlcjogYWxsb3cgc29tZSBtb3JlIGV2ZW50cyBiZWZvcmUgYSBzZWdtZW50IGV2ZW50CgoyMDEyLTA0LTAzIDE1OjQ2OjI5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJICB0b2NzZXR0ZXI6IHVzZSBuZXcgZ2xpYiBtdXRleCBhcGkKCjIwMTItMDQtMDIgMjM6MTc6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogZml4IGNvbXBpbGVyIHdhcm5pbmcKCSAgZ3N0LWxhdW5jaC5jOiBJbiBmdW5jdGlvbiDigJhwcmludF90b2NfZW50cnnigJk6CgkgIGdzdC1sYXVuY2guYzo0NDY6MzogZXJyb3I6IHRoZSBzaXplIG9mIGFycmF5IOKAmHNwY+KAmSBjYW7igJl0IGJlIGV2YWx1YXRlZCBbLVdlcnJvcj12bGFdCgkgIGdzdC1sYXVuY2guYzo0NDY6MzogZXJyb3I6IHZhcmlhYmxlLXNpemVkIG9iamVjdCBtYXkgbm90IGJlIGluaXRpYWxpemVkCgoyMDEyLTA0LTAyIDIzOjI5OjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJICB0ZXN0czogYWRkIG5ldyB1bml0IHRlc3QgYmluYXJpZXMgdG8gLmdpdGlnbm9yZQoKMjAxMi0wNC0wMiAyMzoyODoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogcmVmIG5ldyBlbnRyeSBlbnVtIHR5cGVzCgkgIEZpeGVzICdtYWtlIGNoZWNrJywgYWdhaW4uCgoyMDEyLTA0LTAyIDIzOjI0OjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogYWRkIG5ldyBBUEkgdG8gLmRlZiBmaWxlCgkgIEZpeGVzICdtYWtlIGNoZWNrJy4KCjIwMTItMDQtMDIgMjM6MjM6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHRvYy5jOgoJICB0b2M6IGRvbid0IGV4cG9ydCBwcml2YXRlIGZ1bmN0aW9ucwoKMjAxMi0wNC0wMiAyMzoxNzoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBmaXggY29tcGlsZXIgd2FybmluZwoJICBnc3QtbGF1bmNoLmM6IEluIGZ1bmN0aW9uIOKAmHByaW50X3RvY19lbnRyeeKAmToKCSAgZ3N0LWxhdW5jaC5jOjQ0NjozOiBlcnJvcjogdGhlIHNpemUgb2YgYXJyYXkg4oCYc3Bj4oCZIGNhbuKAmXQgYmUgZXZhbHVhdGVkIFstV2Vycm9yPXZsYV0KCSAgZ3N0LWxhdW5jaC5jOjQ0NjozOiBlcnJvcjogdmFyaWFibGUtc2l6ZWQgb2JqZWN0IG1heSBub3QgYmUgaW5pdGlhbGl6ZWQKCjIwMTItMDQtMDIgMjM6MTY6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIGZvciBuZXcgdHJhbnNsYXRhYmxlIHN0cmluZ3MKCjIwMTItMDQtMDIgMjM6MDE6MTcgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJwoKMjAxMi0wNC0wMiAyMjowOTowNyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jOgoJICB0b2M6IHBvcnQgdG8gMC4xMQoKMjAxMi0wMy0yMiAwODozNjowMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogYWRkIC1jLCAtLXRvYyB0byBwcmludCB0aGUgdG9jCgkgIFByaW50IHRoZSBuZXN0ZWQgY2hhcHRlciBhbmQgZWRpdGlvbiBzdHJ1Y3R1cmUgb2YgdGhlIGNoYXB0ZXJzIG1lc3NhZ2UuCgoyMDEyLTAzLTI4IDIzOjE1OjQxICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkqIGRvY3MvZGVzaWduL3BhcnQtdG9jLnR4dDoKCSAgZG9jczogYWRkIG92ZXJ2aWV3IG9mIEdzdFRvYyB1c2FnZQoKMjAxMi0wMy0xNCAyMToxNDoyMyArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IEFkZCBHc3RUb2MgYW5kIEdzdFRvY1NldHRlciBzZWN0aW9ucyB3aXRoIHJlbGF0ZWQgZnVuY3Rpb25zCgoyMDEyLTAzLTE0IDIxOjEzOjIyICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2NzZXR0ZXIuYzoKCSAgZ3N0Y2hlY2tzOiBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgR3N0VG9jU2V0dGVyCgoyMDEyLTAzLTE0IDIxOjEyOjIyICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSAgZ3N0Y2hlY2tzOiBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgR3N0VG9jCgoyMDEyLTAzLTE0IDIwOjQ1OjM1ICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuYzoKCSogZ3N0L2dzdHRvY3NldHRlci5oOgoJICBBZGQgbmV3IEdzdFRvY1NldHRlciBpbnRlcmZhY2UKCjIwMTItMDMtMTQgMjA6NDI6NTYgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIEFkZCBuZXcgVE9DIHF1ZXJ5CgoyMDEyLTAzLTE0IDIwOjQxOjQ4ICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgQWRkIG5ldyBUT0MgbWVzc2FnZQoKMjAxMi0wMy0xNCAyMDo0MDozMiArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBBZGQgbmV3IFRPQyBhbmQgVE9DIHNlbGVjdCBldmVudHMKCjIwMTItMDMtMTQgMjA6MDE6NTEgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkgIEFkZCBnZW5lcmljIHRhYmxlIG9mIGNvbnRlbnRzIChUT0MpIHN1cHBvcnQKCjIwMTItMDQtMDIgMjE6MTU6MDkgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJICBNZXJnZSBicmFuY2ggJzAuMTAnCgkgIENvbmZsaWN0czoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dAoJICBnc3QvTWFrZWZpbGUuYW0KCSAgZ3N0L2dzdC5jCgkgIGdzdC9nc3QuaAoJICBnc3QvZ3N0ZXZlbnQuYwoJICBnc3QvZ3N0ZXZlbnQuaAoJICBnc3QvZ3N0bWVzc2FnZS5oCgkgIGdzdC9nc3RxdWFyay5jCgkgIGdzdC9nc3RxdWFyay5oCgkgIGdzdC9nc3RxdWVyeS5jCgkgIGdzdC9nc3RxdWVyeS5oCgkgIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtCgoyMDEyLTA0LTAyIDE1OjMwOjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi8wLjEwJwoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmMKCjIwMTItMDQtMDIgMTU6MTM6MjQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhbHdheXMgYXR0ZW1wdCB0byBwdXNoIGlmIG5vdC1saW5rZWQKCSAgVGhpcyBhdm9pZHMgZW5kaW5nIHVwIHdpdGggcGxlbnR5IG9mIHBlbmRpbmcgZGF0YSAoc2luY2Ugd2UnbGwgb25seQoJICB0cnkgdG8gcGFyc2UvcHVzaCBvbmUgZnJhbWUgZnJvbSB0aGUgaW5jb21pbmcgYnVmZmVyKS4KCSAgRml4ZXMgaW5jcmVhc2luZyBtZW1vcnkgY29uc3VtcHRpb24gd2hlbiBwYXJzZXJzIGFyZW4ndCBsaW5rZWQKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jCgoyMDEyLTA0LTAyIDE1OjEzOjI0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYWx3YXlzIGF0dGVtcHQgdG8gcHVzaCBpZiBub3QtbGlua2VkCgkgIFRoaXMgYXZvaWRzIGVuZGluZyB1cCB3aXRoIHBsZW50eSBvZiBwZW5kaW5nIGRhdGEgKHNpbmNlIHdlJ2xsIG9ubHkKCSAgdHJ5IHRvIHBhcnNlL3B1c2ggb25lIGZyYW1lIGZyb20gdGhlIGluY29taW5nIGJ1ZmZlcikuCgkgIEZpeGVzIGluY3JlYXNpbmcgbWVtb3J5IGNvbnN1bXB0aW9uIHdoZW4gcGFyc2VycyBhcmVuJ3QgbGlua2VkCgoyMDEyLTA0LTAxIDAzOjMwOjUxICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgVGltZW91dCBpcyBub3QgdXNlZCBvbiBXMzIKCSAgRml4ZXMgIzY3MzI2NwoKMjAxMi0wNC0wMiAxMTowOTo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgdHJhbnM6IGFkZCB0cmFuc2Zvcm1faXBfb25fcGFzc3Rocm91Z2gKCSAgQWRkIGFuIG9wdGlvbiB0byBjb250cm9sIGlmIHRyYW5zZm9ybV9pcCBpcyBjYWxsZWQgaW4gcGFzc3Rocm91Z2ggbW9kZSBvciBub3QuCgkgIGZvciBlbGVtZW50cyB0aGF0IGRvbid0IHdhbnQgdG8gbG9vayBhdCB0aGUgZGF0YSBpbiBwYXNzdGhyb3VnaCBtb2RlLCB0aGlzIGNhbgoJICBhdm9pZCBzb21lIGV4dHJhIHByb2Nlc3NpbmcsIG1vc3RseSBpbiBzdWJjbGFzc2VzLgoKMjAxMi0wMy0yMiAwODozNjowMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogYWRkIC1jLCAtLXRvYyB0byBwcmludCB0aGUgdG9jCgkgIFByaW50IHRoZSBuZXN0ZWQgY2hhcHRlciBhbmQgZWRpdGlvbiBzdHJ1Y3R1cmUgb2YgdGhlIGNoYXB0ZXJzIG1lc3NhZ2UuCgoyMDEyLTAzLTI4IDIzOjE1OjQxICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkqIGRvY3MvZGVzaWduL3BhcnQtdG9jLnR4dDoKCSAgZG9jczogYWRkIG92ZXJ2aWV3IG9mIEdzdFRvYyB1c2FnZQoKMjAxMi0wMy0xNCAyMToxNDoyMyArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IEFkZCBHc3RUb2MgYW5kIEdzdFRvY1NldHRlciBzZWN0aW9ucyB3aXRoIHJlbGF0ZWQgZnVuY3Rpb25zCgoyMDEyLTAzLTE0IDIxOjEzOjIyICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2NzZXR0ZXIuYzoKCSAgZ3N0Y2hlY2tzOiBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgR3N0VG9jU2V0dGVyCgoyMDEyLTAzLTE0IDIxOjEyOjIyICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSAgZ3N0Y2hlY2tzOiBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgR3N0VG9jCgoyMDEyLTAzLTE0IDIwOjQ1OjM1ICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuYzoKCSogZ3N0L2dzdHRvY3NldHRlci5oOgoJICBBZGQgbmV3IEdzdFRvY1NldHRlciBpbnRlcmZhY2UKCjIwMTItMDMtMTQgMjA6NDI6NTYgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIEFkZCBuZXcgVE9DIHF1ZXJ5CgoyMDEyLTAzLTE0IDIwOjQxOjQ4ICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgQWRkIG5ldyBUT0MgbWVzc2FnZQoKMjAxMi0wMy0xNCAyMDo0MDozMiArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBBZGQgbmV3IFRPQyBhbmQgVE9DIHNlbGVjdCBldmVudHMKCjIwMTItMDMtMTQgMjA6MDE6NTEgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkgIEFkZCBnZW5lcmljIHRhYmxlIG9mIGNvbnRlbnRzIChUT0MpIHN1cHBvcnQKCjIwMTItMDQtMDEgMTI6MDE6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogcmV1c2UgbW9yZSBjb2RlCgoyMDEyLTA0LTAxIDExOjQyOjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogbWFrZSBmdW5jdGlvbiB0byBmaW5kIG1lbW9yeSBpbiBhIGJ1ZmZlcgoJICBNYWtlIGEgZnVuY3Rpb24gdG8gZmluZCB0aGUgbWVtb3J5IGJsb2NrcyBmb3IgYSByZWdpb24gaW4gYSBidWZmZXIuCgoyMDEyLTAzLTMxIDIxOjI2OjIyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSAgY2hpbGRwcm94eTogZml4IG1vcmUgbWlzc2luZyBHU1RfT0JKRUNUIC0+IEdfT0JKRUNUIHVzZQoKMjAxMi0wMy0zMSAxODozNDoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiB1c2UgYnVmZmVyX3dyYXAKCjIwMTItMDMtMzEgMTc6MTA6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogYWRkIHBlZWtfbWVtb3J5IG1ldGhvZAoJICBBZGQgYSBwZWVya19tZW1vcnkgbWV0aG9kIHRoYXQgc2ltcGx5IGZldGNoZXMgdGhlIG1lbW9yeSBhdCBhbiBvZmZzZXQgd2l0aG91dAoJICByZWZjb3VudGluZyBvciBtZXJnaW5nLgoKMjAxMi0wMy0zMSAxMjowMDo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIGdyYW1tYXIueTogZml4IGNoaWxkcHJveHkgY29kZQoJICBJdCB0YWtlcyBHT2JqZWN0IGFuZCBub3QgR3N0T2JqZWN0IG5vdwoKMjAxMi0wMy0zMCAyMjo0NjowMiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSAgY2hpbGRwcm94eTogaW5jbHVkZSB0aGUgY2hpbGQgbmFtZSBpbiB0aGUgc2lnbmFsCgoyMDEyLTAzLTMwIDIyOjQ0OjMxICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2VyOiB1cGRhdGUgZm9yIGNoaWxkcHJveHkgYXBpIGNoYW5nZXMKCjIwMTItMDMtMzAgMjI6MzY6MzUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBjaGlsZHByb3h5OiBmaXggc2lnbmFsIHBhcmFtZXRlciB0eXBlcwoKMjAxMi0wMy0zMCAyMjoxNzowOSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSAgY2hpbGRwcm94eTogdXNlIEdPYmplY3QgaW5zdGVhZCBvZiBHc3RPYmplY3QKCSAgVGhpcyBtYWtlcyBpdCBwcm9zc2libGUgdG8gYmUgdXNlZCBtb3JlIHdpZGVseS4gRml4IGltcGxlbWVudGF0aW9ucyBmb3IgdGhlIEFQSQoJICBjaGFuZ2UuCgoyMDEyLTAzLTMwIDIyOjAxOjU1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSAgY2hpbGRwcm94eTogbWFrZSBnZXRfY2hpbGRfYnlfbmFtZSB2aXJ0dWFsCgkgIEFsbG93cyBpbXBsZW1lbnRhdGlvbnMgdG8gdXNlIGN1c3RvbSBuYW1lLT5vYmplY3QgbWFwcGluZ3MuCgoyMDEyLTAzLTMwIDIyOjAxOjI2ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSAgY2hpbGRwcm94eTogZml4IGluZGVudGF0aW9uCgoyMDEyLTAzLTMwIDE4OjA0OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXIudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2JpdHJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy90eXBlZmluZGhlbHBlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBpbXByb3ZlIHRoZSBidWZmZXIgbWVtb3J5IG1ldGhvZHMKCSAgZ3N0X2J1ZmZlcl90YWtlX21lbW9yeSAtPiBnc3RfYnVmZmVyX2luc2VydF9tZW1vcnkgYmVjYXVzZSBpbnNlcnQgaXMgd2hhdCB0aGUKCSAgbWV0aG9kIGRvZXMuCgkgIE1ha2UgYWxsIG1ldGhvZHMgZGVhbCB3aXRoIHJhbmdlcyBzbyB0aGF0IHdlIGNhbiByZXBsYWNlLCBtZXJnZSwgcmVtb3ZlIGFuZCBtYXAKCSAgYSBjZXJ0YWluIHN1YnNldCBvZiB0aGUgbWVtb3J5IGluIGEgYnVmZmVyLiBXaXRoIHRoZSBuZXcgbWV0aG9kcyB3ZSBjYW4gbWFrZQoJICBzb21lIGNvZGUgbmljZXIgYW5kIHJldXNlIG1vcmUgY29kZS4gQmVpbmcgYWJsZSB0byBkZWFsIHdpdGggYSBzdWJzZXQgb2YgdGhlCgkgIGJ1ZmZlciBtZW1vcnkgYWxsb3dzIHVzIHRvIG9wdGltaXplIG1vcmUgY2FzZXMgbGF0ZXIgKG1vc3Qgbm90YWJseSBSVFAgaGVhZGVycwoJICBhbmQgcGF5bG9hZCB0aGF0IGNvdWxkIGJlIGluIGRpZmZlcmVudCBtZW1vcnkgb2JqZWN0cykuCgkgIE1ha2Ugc29tZSBtb3JlIGNvbnZlbmllbnQgbWFjcm9zIHRoYXQgY2FsbCB0aGUgbW9yZSBnZW5lcmljIHJhbmdlIG1ldGhvZHMuCgoyMDEyLTAzLTMwIDE2OjUzOjA5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kZWxlbWVudDogcGx1ZyBjYXBzIGxlYWtzCgoyMDEyLTAzLTMwIDE2OjUzOjA1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgdHlwZWZpbmRoZWxwZXI6IGFsc28gdW5tYXAgY29sbGVjdGVkIG1hcHBlZCBidWZmZXJzCgoyMDEyLTAzLTMwIDE2OjUzOjAwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBwbHVnIGNhcHMgbGVhawoKMjAxMi0wMy0zMCAxMTo1ODoyMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IFJlbmFtZSA6OmV2ZW50KCkgdG8gOjpzaW5rX2V2ZW50KCkgZm9yIGNvbnNpc3RlbmN5CgoyMDEyLTAzLTMwIDExOjQ5OjE2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBiYXNlc2luazogbG93ZXIgR1NUX0JBU0VfU1JDX0ZMQUdfTEFTVAoJICBJdCB3b3VsZG4ndCBsZWF2ZSB0aGF0IG11Y2ggcm9vbSBmb3Igc3ViY2xhc3MgdXNlcnMKCjIwMTItMDMtMzAgMDg6NTU6MzMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICB3aW4zMjogVXBkYXRlIGRlZnMgZmlsZQoKMjAxMi0wMy0yOSAxODowMzozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSAgYnl0ZXdyaXRlcjogQWN0dWFsbHkgY29tbWl0IHRoZSAuYyBmaWxlIGNoYW5nZXMgdG9vCgoyMDEyLTAzLTI5IDE3OjU5OjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBieXRld3JpdGVyOiBBZGQgdW5jaGVja2VkL2lubGluZSB2YXJpYW50IG9mIGdzdF9ieXRlX3dyaXRlcl9wdXRfYnVmZmVyKCkKCjIwMTItMDMtMjkgMTc6NTM6NDcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIGdzdHF1ZXJ5OiBGaXggYW5ub3RhdGlvbgoKMjAxMi0wMy0yOSAxNzo0NDowMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBGbHVzaCB0aGUgaW50ZXJuYWwgcXVldWUgd2hlbiB3ZSBzZWUgR1NUX0ZMT1dfRkxVU0hJTkcKCSAgRW5zdXJlcyB0aGF0IHdlIGRvbid0IGVuZCB1cCB3aXRoIHN0YWxlIGNvbnRlbnRzIChsaWtlIEdzdFF1ZXJ5KSBpbgoJICB0aGUgaW50ZXJuYWwgR1F1ZXVlIGFmdGVyIGFueSBibG9ja2luZyB1cHN0cmVhbSB0aHJlYWQgcmV0dXJucy4KCjIwMTItMDMtMjkgMTc6NDM6MTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogRG9uJ3QgdW5yZWYgR3N0UXVlcnkgdHJhdmVsbGluZyB0aHJvdWdoIHRoZSBxdWV1ZQoJICBVbmxpa2UgZXZlbnRzIGFuZCBidWZmZXJzLCB0aGUgcmVmZXJlbmNlIGlzIG5vdCBnaXZlbiB0byB1cwoKMjAxMi0wMy0yOSAxNzowODo0OSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IHBhcnNpbmcgYWxsb2NhdGlvbiBxdWVyeSBuZWVkIG5vdCBwcm92aWRlIHJlZmZlZCBjYXBzCgkgIC4uLiBpbiBsaW5lIHdpdGggb3RoZXIgcXVlcnkgcGFyc2luZyBmdW5jdGlvbi4KCjIwMTItMDMtMjkgMTU6NDU6MDAgKzAyMDAgIEZhYnJpemlvIChNaXN0bykgTWlsbyA8bWlzdG9iYWFuQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHNwZWxsaW5nIGZpeGVzCgoyMDEyLTAzLTI5IDE1OjI4OjQ0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGdzdGVsZW1lbnQ6IGxvd2VyIEdTVF9FTEVNRU5UX0ZMQUdfTEFTVAoJICBJdCB3b3VsZG4ndCBsZWF2ZSB0aGF0IG11Y2ggcm9vbSBmb3Igc3ViY2xhc3MgdXNlcnMKCjIwMTItMDMtMjkgMTU6MTg6MzMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGdzdGJ1ZmZlcjogRml4IHVuaXRpYWxpemVkIHZhcmlhYmxlCgkgIGdjYyA0LjUgY29tcGxhaW5zIG90aGVyd2lzZSA6KAoKMjAxMi0wMy0yOSAxNDo1NDo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vMC4xMCcKCSAgQ29uZmxpY3RzOgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYwoKMjAxMi0wMy0yOSAxNDo0NTo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogV2FrZSB1cCBhbGwgbm90LWxpbmtlZCBzdHJlYW1zIHdoZW4gYSBzdHJlYW0gc3dpdGNoZXMgZnJvbSBsaW5rZWQgdG8gbm90LWxpbmtlZAoJICBXZSByZXNldCBhbGwgdGhlIHdhaXRpbmcgc3RyZWFtcywgbGV0IHRoZW0gcHVzaCBhbm90aGVyIGJ1ZmZlciB0bwoJICBzZWUgaWYgdGhleSdyZSBub3cgYWN0aXZlIGFnYWluLiBUaGlzIGFsbG93cyBmYXN0ZXIgc3dpdGNoaW5nCgkgIGJldHdlZW4gc3RyZWFtcyBhbmQgcHJldmVudHMgZGVhZGxvY2tzIGlmIGRvd25zdHJlYW0gZG9lcyBhbnkKCSAgd2FpdGluZyB0b28uCgkgIEFsc28gaW1wcm92ZSBsb2NraW5nIGEgYml0LCBzcmNyZXN1bHQgbXVzdCBiZSBwcm90ZWN0ZWQgYnkgdGhlCgkgIG11bHRpcXVldWUgbG9jayB0b28gYmVjYXVzZSBpdCdzIHVzZWQvc2V0IGZyb20gcmFuZG9tIHRocmVhZHMuCgoyMDEyLTAzLTI5IDE0OjMyOjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBSZWNvbXB1dGUgaGlnaC10aW1lIHRvbyB3aGVuIGZsdXNoaW5nLCBub3Qgb25seSBoaWdoLWlkCgoyMDEyLTAzLTI5IDEzOjM5OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBPbmx5IHdhaXQgdW50aWwgdGhlIGFjdGl2ZSBwYWQncyBydW5uaW5nIHRpbWUgaXMgcmVhY2hlZCBpZiB0aGUgYWN0aXZlIHBhZCBhbHJlYWR5IHNhdyBkYXRhCgkgIE90aGVyd2lzZSB3ZSBtaWdodCBibG9jayBmb3JldmVyIGJlY2F1c2UgdXBzdHJlYW0gKGUuZy4gbXVsdGlxdWV1ZSkgaXMgd2FpdGluZwoJICBmb3IgdGhlIHByZXZpb3VzbHkgYWN0aXZlIHN0cmVhbSB0byByZXR1cm4gZm9yZXZlciAod2hpY2ggaXMgd2FpdGluZyBoZXJlCgkgIGluIGlucHV0c2VsZWN0b3IpIGJlZm9yZSBwdXNoaW5nIHNvbWV0aGluZyBvbiB0aGUgbmV3bHkgc2VsZWN0ZWQgc3RyZWFtLgoKMjAxMi0wMy0yOSAxMzozNDo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRyYWNlLmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGRvY3M6IHVwZGF0ZSBtb3JlIGRvY3VtZW50YXRpb24KCjIwMTItMDMtMjggMTg6MTI6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1ldmVudHMueG1sOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIHJldmlldyBzb21lIGRvY3MKCjIwMTItMDMtMjggMTY6NDQ6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogc2ltcGxpZnkgYW5kIHJlZmFjdG9yIF9zcGFuIGFuZCBfbWVyZ2UKCSAgVW5pZnkgdGhlIF9zcGFuIGFuZCBfbWVyZ2UgY29kZSBwYXRocyBhbmQgc2ltcGxpZnkgbm93IHRoYXQgd2Ugb25seSB1c2UgdGhpcwoJICBpbnRlcm5hbGx5LgoKMjAxMi0wMy0yOCAxNToxNjowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiB3ZSBhbHdheXMgY2FsbCBfc3BhbiB3aXRoIHRoZSBidWZmZXIgc2l6ZQoKMjAxMi0wMy0yOCAxNToxMjowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBtb3ZlIHNvbWUgY29kZSBhcm91bmQKCjIwMTItMDMtMjggMTU6MDg6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogd2UgY2FsbCBfc3BhbiBhbHdheXMgd2l0aCAwIG9mZnNldAoKMjAxMi0wMy0yOCAxMzowODo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiByZW1vdmUgYWx3YXlzIEZBTFNFIGZ1bmN0aW9uIGFyZ3VtZW50CgoyMDEyLTAzLTI4IDE2OjM5OjU0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBkZWxheSBidWZmZXIgdW5yZWYgdW50aWwgYnVmZmVyIG5vIGxvbmdlciBuZWVkZWQKCjIwMTItMDMtMjggMTI6NDQ6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiB1bmlmeSBidWZmZXIgbWVyZ2UgbWV0aG9kcwoJICBBZGQgZ3N0X2J1ZmZlcl9hcHBlbmQoKSB3aGljaCBhcHBlbmRzIHRoZSBtZW1vcnkgYmxvY2tzIGZyb20gb25lIGJ1ZmZlciB0bwoJICBhbm90aGVyLiBSZW1vdmUgdGhlIG9sZCBpbmVmZmljaWVudCBfbWVyZ2UoKSBhbmQgX2pvaW4oKSBtZXRob2RzIHdoaWNoIGZvcmNlZCBhCgkgIHByZW1hdHVyZSBtZW1jcHkgaW4gbW9zdCBjYXNlcy4KCSAgUmVtb3ZlIHRoZSBfaXNfc3BhbigpIGFuZCBfc3BhbigpIG1ldGhvZHMgdGhleSBhcmUgbm90IG5lZWRlZCBhbnltb3JlIG5vdyB0aGF0CgkgIHdlIGNhbiBfYXBwZW5kKCkuIE1lcmdpbmcgYW5kIHNwYW5uaW5nIHdpbGwgYmUgZGVsYXllZCB1bnRpbCBtYXBwaW5nIG9yIG1heWJlCgkgIG5vdCBhdCBhbGwgd2hlbiB0aGUgZWxlbWVudCBjYW4gZGVhbCB3aXRoIHRoZSBkaWZmZXJlbnQgbWVtb3J5IGJsb2Nrcy4KCjIwMTItMDMtMjcgMTU6MjQ6NDkgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ3N0cGFkOiBGaXggdHlwbyBpbiBkb2NzdHJpbmcKCjIwMTItMDMtMjcgMTU6MjQ6NDkgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ3N0cGFkOiBGaXggdHlwbyBpbiBkb2NzdHJpbmcKCjIwMTItMDMtMjcgMTU6MTY6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogcmUtZW5hYmxlIF9zcGFuIG9mZnNldCBjYWxjdWxhdGlvbnMKCSAgd2hlbiB3ZSBfc3BhbiB0d28gY29tcGxldGUgYnVmZmVycywgd2UgY2FuIGNvcHkgb2Zmc2V0cyBhbmQgdGltZXN0YW1wcy4KCjIwMTItMDMtMjcgMTU6MDA6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSAgdHJhY2U6IGFkZCByZWZjb3VudCB0byB0cmFjZSBkZWJ1ZwoKMjAxMi0wMy0yNyAxNDo1OTowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBhZGQgbW9yZSBfaXNfd3JpdGFibGUgY2hlY2tzCgkgIEFkZCBzb21lIGNoZWNrcyB0byBhc3NlcnQgb24gd3JpdGFiaWxpdHkgZm9yIGZ1bmN0aW9ucyB0aGF0IG1vZGlmeSBtZXRhZGF0YS4KCjIwMTItMDMtMjcgMTI6NDA6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiByZW1vdmUgY29uc3QgZnJvbSBnZXQvc2V0X3BhcmFtCgkgIFJlbW92ZSB0aGUgY29uc3QgZnJvbSB0aGUgR3N0Q2FwcyBpbiBnZXQvc2V0X3BhcmFtLiBzZXRfcGFyYW0gbW9kaWZpZXMKCSAgdGhlIHJlZmNvdW50IG9mIHRoZSBjYXBzLgoJICBEb24ndCBpbmNyZW1lbnQgdGhlIHJlZmNvdW50IG9mIHRoZSBjYXBzIHJlc3VsdCBvZiBnZXRfcGFyYW0gbGlrZSB3ZQoJICBkbyB3aXRoIG90aGVyIG9iamVjdHMuCgkgIFVwZGF0ZSBzb21lIGFubm90aWF0aW9ucy4KCjIwMTItMDMtMjcgMTI6Mzk6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBmaXggYW5ub3RhdGlvbiBmb3IgX3JlbGVhc2UKCSAgX3JlbGVhc2UgdGFrZXMgb3duZXJzaGlwIG9mIHRoZSBidWZmZXIKCjIwMTItMDMtMjcgMTI6MzE6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkgIGJ1czogQ2hhbmdlIHRoZSB0aW1lb3V0IGFyZ3VtZW50IHR5cGUgb2YgZ3N0X2J1c19wb2xsKCkgZnJvbSBHc3RDbG9ja1RpbWVEaWZmIHRvIEdzdENsb2NrVGltZQoJICBUaGlzIGlzIG1vcmUgY29uc2lzdGVudCB3aXRoIHRoZSBvdGhlciBHc3RCdXMgbWV0aG9kcyB0aGF0IGhhdmUgYSB0aW1lb3V0LgoKMjAxMi0wMy0yNiAxOToxMzoyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHJlbW92ZSBvbGQgY29kZQoJICBSZW1vdmUgYXR0ZW1wdCB0byBkZWxheSBfbWFrZV93cml0YWJsZQoKMjAxMi0wMy0yNiAxODowNzozNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBlbnN1cmUgd3JpdGFibGUgY2FwcyBwcmlvciB0byBtb2RpZmljYXRpb24KCjIwMTItMDMtMjYgMTc6Mzg6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBjaGVjayBtaW4vbWF4X2J1ZmZlcnMKCjIwMTItMDMtMjYgMTc6MzU6MTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6Zml4IGNvcHktYW5kLXBhc3RlIHByb2JsZW0KCjIwMTItMDMtMjYgMTE6NTQ6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBSZXBsYWNlIG1hc3RlciB3aXRoIDAuMTEKCjIwMTItMDMtMjMgMTg6NTE6NTIgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBhZGQgYW5kIGltcHJvdmUgZGVidWcgbWVzc2FnZXMKCSAgLi4uIHNvIHRoZXkgZW5kIHVwIGluIGEgbW9yZSBleHBlY3RlZCBkZWJ1ZyBjYXRlZ29yeSByYXRoZXIgdGhhbiBvYmxpdmlvbi4KCjIwMTItMDMtMjIgMTU6NTQ6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gZGV2ZWwKCjIwMTItMDMtMjIgMTU6NDk6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0LWJ1aWxkLnN0YW1wOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC5zdGFtcDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMC4xMS4zCgoyMDEyLTAzLTIyIDE1OjIyOjU3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiByZW1vdmUgYXV0b21hdGljIGFuZCB1bmRvY3VtZW50ZWQgc2V0dGluZyBvZiBhbHdheXNfaW5fcGxhY2UKCSAgLi4uIHdoaWNoIGNvbnRyb2xzIGhvdyB0byAoZm9yY2libHkpIGRlYWwgd2l0aCAobm9uLSl3cml0YWJsZSBkYXRhIGFuZAoJICBpcyBub3QgbmVjZXNzYXJpbHkgcmVsYXRlZCB0byBpZGVudGljYWwgY2Fwcy4KCSAgSW4gcGFydGljdWxhciwgaXQgaXMgYWxzbyBub3Qgc28gaGVscGZ1bCBhbnltb3JlIHdpdGggYSBtb3JlIGFkdmFuY2VkCgkgIEdzdFZpZGVvRmlsdGVyIHN1YmNsYXNzIHdoaWNoIGFsd2F5cyBoYXMgYSB0cmFuc2Zvcm1faXAgbWV0aG9kIGN1cnJlbnRseSwKCSAgZXZlbiB0aG91Z2ggaXRzIHN1YmNsYXNzIG1heSBub3QgaGF2ZSBhIGNvcnJlc3BvbmRpbmcgX2lwIG1ldGhvZC4KCjIwMTItMDMtMjIgMTA6NDU6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgY29uZmlndXJlLmFjCgoyMDEyLTAzLTIyIDA4OjM1OjI1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBkb24ndCBzaGFkb3cgZ2xvYmFsIHZhcmlhYmxlCgoyMDEyLTAzLTIxIDEyOjEwOjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvTWFrZWZpbGUuYW06CgkgIGRpc3QgbmV0IGRpcmVjdG9yeSBvbmx5IG9uY2UKCjIwMTItMDMtMjEgMDk6MDA6NDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBPbmx5IGFsbG93IGZpeGVkIGNhcHMgaW4gdGhlIGFjY2VwdC1jYXBzIHF1ZXJ5CgoyMDEyLTAzLTIwIDE3OjA4OjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBkbyBxdWVyaWVzIG1vcmUgZGlyZWN0bHkKCSAgSnVzdCBjYWxsIG91ciBpbnRlcm5hbCBxdWVyeSBmdW5jdGlvbiBpbnN0ZWFkIG9mIGdvaW5nIHRocm91Z2ggdGhlIHBhZCBhbmQgdGhlCgkgIHF1ZXJ5IGhhbmRsZXIgZXRjLgoKMjAxMi0wMy0yMCAxNzowODowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBhZGQgc29tZSBwZXJmb3JtYW5jZSBkZWJ1ZwoKMjAxMi0wMy0yMCAxMzoxNDo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHBhZDogaW1wcm92ZSBkb2NzIG9mIGdldC9wdWxsX3JhbmdlCgkgIEltcHJvdmUgdGhlIGRvY3Mgb2YgdGhlIGdldC9wdWxsX3JhbmdlIGZ1bmN0aW9ucywgZGVmaW5lIHRoZSBsaWZldGltZSBvZiB0aGUKCSAgYnVmZmVyIGluIGNhc2Ugb2YgZXJyb3JzIGFuZCBzaG9ydCByZWFkcy4KCSAgTWFrZSBzdXJlIHRoZSBjb2RlIGRvZXMgd2hhdCB0aGUgZG9jcyBzYXkuCgoyMDEyLTAzLTIwIDEwOjIwOjI5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJICBidWZmZXI6IGltcHJvdmUgZ3N0X2J1ZmZlcl9uZXdfd3JhcHBlZF9mdWxsKCkKCSAgTWFrZSBpdCBwb3NzaWJsZSB0byB3cmFwIGFsbCBraW5kcyBvZiBtZW1vcnkgYnkgZXhwb3NpbmcgYWxsIHByb3BlcnRpZXMgdG8KCSAgZ3N0X2J1ZmZlcl9uZXdfd3JhcHBlZF9mdWxsKCkuIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgdG8gYWxzbyBjcmVhdGUgd3JpdGFibGUKCSAgbWVtb3J5IHdpdGhvdXQgYSBmcmVlIGZ1bmN0aW9uIG9yIG1lbW9yeSB3aXRoIGV4dHJhIHBhZGRpbmcuCgoyMDEyLTAzLTE5IDExOjQ1OjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGhhbmRsZSBzZXJpYWxpemVkIHF1ZXJpZXMKCjIwMTItMDMtMTYgMjI6NTE6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IG1ha2UgbW9yZSBzdHVmZiBwcml2YXRlCgoyMDEyLTAzLTE2IDIyOjI1OjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHNtYWxsIGNsZWFudXBzCgoyMDEyLTAzLTE2IDIxOjM3OjEwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJICBwYWQ6IGNoYW5nZSB0aGUgc2VtYW50aWNzIG9mIGdldC9wdWxsX3JhbmdlIGEgbGl0dGxlCgkgIE1ha2UgaXQgc28gdGhhdCBvbmUgY2FuIHNwZWNpZnkgYSBidWZmZXIgZm9yIGdldC9wdWxsX3JhbmdlIHdoZXJlIHRoZSBkb3duc3RyZWFtCgkgIGVsZW1lbnQgc2hvdWxkIHdyaXRlIGludG8uIFdoZW4gcGFzc2luZyBOVUxMLCB1cHN0cmVhbSBzaG91bGQgYWxsb2NhdGUgYSBidWZmZXIsCgkgIGxpa2UgaW4gMC4xMC4KCSAgV2UgYWxzbyBuZWVkIHRvIGNoYW5nZSB0aGUgcHJvYmVzIGEgbGl0dGxlIGJlY2F1c2UgYmVmb3JlIHRoZSBwdWxsIHByb2JlLCB0aGVyZQoJICBjb3VsZCBhbHJlYWR5IGJlIGEgYnVmZmVyIHBhc3NlZC4gVGhpcyB0aGVuIGFsbG93cyB1cyB0byB1c2UgdGhlIHNhbWUgUFJPQkUKCSAgbWFjcm8gZm9yIGJlZm9yZSBhbmQgYWZ0ZXIgcHVsbGluZy4KCSAgV2hpbGUgd2UncmUgYXQgdGhlIHByb2JlcywgbWFrZSB0aGUgcXVlcnkgcHJvYmUgbW9yZSBwb3dlcmZ1bCBieSBoYW5kbGluZyB0aGUKCSAgR1NUX1BBRF9QUk9CRV9EUk9QIHJldHVybiB2YWx1ZS4gUmV0dXJuaW5nIF9EUk9QIGZyb20gYSBxdWVyeSBwcm9iZSB3aWxsIG5vdwoJICByZXR1cm4gVFJVRSB1cHN0cmVhbSBhbmQgd2lsbCBub3QgZm9yd2FyZCB0aGUgcHJvYmUgdG8gdGhlIHBlZXIgb3IgaGFuZGxlci4KCSAgQWxzbyBoYW5kbGUgX0RST1AgZm9yIGdldC9wdWxsX3JhbmdlIHByb3Blcmx5IGJ5IG5vdCBkaXNwYXRjaGluZyB0byB0aGUKCSAgcGVlci9oYW5kbGVyIG9yIGJ5IGdlbmVyYXRpbmcgRU9TIHdoZW4gdGhlIHByb2JlIHJldHVybnMgRFJPUCBhbmQgbm8gYnVmZmVyLgoJICBNYWtlIGZpbGVzcmMgaGFuZGxlIHRoZSBub24tTlVMTCBidWZmZXIgcGFzc2VkIGluIHRoZSBnZXRfcmFuZ2UgZnVuY3Rpb24gYW5kCgkgIHNraXAgdGhlIGFsbG9jYXRpb24gaW4gdGhhdCBjYXNlLCB3cml0aW5nIGRpcmVjdGx5IGludG8gdGhlIGRvd25zdHJlYW0gcHJvdmlkZWQKCSAgYnVmZmVyLgoJICBVcGRhdGUgdGVzdHMgYmVjYXVzZSBub3cgd2UgbmVlZCB0byBtYWtlIHN1cmUgdG8gbm90IHBhc3MgYSByYW5kb20gdmFsdWUgaW4gdGhlCgkgIGJ1ZmZlciBwb2ludGVyIHRvIGdldC9wdWxsX3JhbmdlCgoyMDEyLTAzLTE2IDIxOjM2OjMzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IHByb3h5IGFsbG9jYXRpb24gcXVlcnkKCjIwMTItMDMtMTYgMTg6Mzk6MDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGZpeCBkb2NzIGEgbGl0dGxlLCBhbGxvY19idWZmZXIgaXMgZ29uZQoKMjAxMi0wMy0xNSAyMjowOTowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJwb29sOiBzcGxpdCBidWZmZXJwb29sIGNvbmZpZ3VyYXRpb24KCSAgTWFrZSBzZXBhcmF0ZSBtZXRob2RzIHRvIGNvbnRyb2wgdGhlIGJ1ZmZlcnBvb2wgYW5kIHRoZSBhbGxvY2F0b3IgdXNlZCBieSB0aGUKCSAgYnVmZmVycG9vbC4KCSAgTWFrZSBpdCBwb3NzaWJsZSB0byBjaGFuZ2UgdGhlIGFsbG9jYXRvciBvZiBhIHBvb2wuCgoyMDEyLTAzLTE1IDIwOjIzOjU5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBxdWVyeTogcmV3b3JrIHRoZSBBTExPQ0FUSU9OIHF1ZXJ5CgkgIFNlcGFyYXRlIHRoZSBidWZmZXJwb29sIGFuZCBhbGxvY2F0b3IgaGludHMgaW4gdGhlIGFsbG9jYXRpb24gcXVlcnksIHNvbWUKCSAgb2YgdGhlIHZhbHVlcyBkb24ndCBhbHdheXMgbWFrZSBzZW5zZSB0b2dldGhlci4KCSAgS2VlcCB0aGUgYnVmZmVycG9vbCBhbmQgaXRzIGNvbmZpZ3VyYXRpb24gdG9nZXRoZXIuCgkgIEtlZXAgdGhlIGFsbG9jYXRvciBhbmQgaXRzIHBhcmFtZXRlcnMgdG9nZXRoZXIuCgkgIEFsbG93IGZvciBtdWx0aXBsZSBidWZmZXJwb29sIGNvbmZpZ3VyYXRpb25zIGluIHRoZSBxdWVyeS4KCjIwMTItMDMtMTUgMTY6NTA6MzEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogY29tbWVudCBhbmQgZGVidWcgaW1wcm92ZW1lbnQKCjIwMTItMDMtMTUgMTY6NDk6MzMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGltcHJvdmUgZGVidWcKCSAgYWxzbyBmaXggYSBwb3RlbnRpYWwgbWVtb3J5IGxlYWsKCjIwMTItMDMtMTUgMTQ6Mjg6MjIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlCgoyMDEyLTAzLTE1IDE0OjAxOjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBHc3RCdWZmZXJQb29sUGFyYW1zIC0+IEdzdEJ1ZmZlclBvb2xBY3F1aXJlUGFyYW1zCgkgIEJlY2F1c2UgdGhvc2UgZmxhZ3MgYXJlIG5vdCBmcm9tIHRoZSBidWZmZXJwb29sIGJ1dCBmb3IgdGhlIGFjcXVpcmUgZnVuY3Rpb24uCgoyMDEyLTAzLTE1IDEzOjI4OjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVtb3J5OiBncm91cCBhbGxvY2F0aW9uIHBhcmFtZXRlcnMgaW4gYSBzdHJ1Y3QKCSAgR3JvdXAgdGhlIGV4dHJhIGFsbG9jYXRpb24gcGFyYW1ldGVycyBpbiBhIEdzdEFsbG9jYXRpb25QYXJhbXMgc3RydWN0dXJlIHRvIG1ha2UKCSAgaXQgZWFzaWVyIHRvIGRlYWwgd2l0aCB0aGVtIGFuZCBzbyB0aGF0IHdlIGNhbiBleHRlbmQgdGhlbSBsYXRlciBpZiBuZWVkZWQuCgkgIE1ha2UgZ3N0X2J1ZmZlcl9uZXdfYWxsb2NhdGUoKSB0YWtlIHRoZSBHc3RBbGxvY2F0aW9uUGFyYW1zIGZvciBhZGRlZAoJICBmdW5jdGlvbmFsaXR5LgoJICBBZGQgYm94ZWQgdHlwZSBmb3IgR3N0QWxsb2NhdGlvblBhcmFtcy4KCjIwMTItMDMtMTUgMDA6MjU6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogb25seSB1cGRhdGUgYnVmZmVyIHNpemUgb24gc2hvcnQgcmVhZAoKMjAxMi0wMy0xNSAwMDoyNDo0MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogZml4IGNvcHkgZnVuY3Rpb24KCSAgQ29weSB0aGUgc3RydWN0dXJlIHRvby4KCjIwMTItMDMtMTUgMDA6MjM6NTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogZml4IG1heHNpemUgYWZ0ZXIgYWxpZ24KCSAgd2hlbiB3ZSBhbGlnbiB0aGUgZGF0YSBwb2ludGVyLCBtYWtlIHN1cmUgdG8gdXBkYXRlIHRoZSBtYXhzaXplLgoJICBBZGQgc29tZSBtb3JlIGRlYnVnCgoyMDEyLTAzLTE0IDIyOjU4OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTogcmVtb3ZlIHVzZWxlc3MgUFJPWFlfQUxMT0NBVElPTiBmbGFnCgoyMDEyLTAzLTE0IDIxOjMyOjIyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBBZGQgMCBwYWRkaW5nCgkgIENoYW5nZSBnc3RfYWxsb2NhdG9yX2FsbG9jKCkgc28gdGhhdCB3ZSBjYW4gYWxzbyBzcGljaWZ5IGZsYWdzIGFuZCBwYWRkaW5nLgoJICBBZGQgMiBuZXcgZmxhZ3MgdG8gbWFyayB0aGUgbWVtb3J5IDAgcHJlZml4ZWQvcGFkZGVkLiBUaGlzIGFsbG93cyB1cyB0bwoJICByZW1vdmUgc29tZSByZXNpemVzIGluIHRoZSBiYXNlIGNsYXNzZXMuCgkgIFdoZW4gYWxsb2NhdGluZyBtZW1vcnksIG1lbXNldCBwcmVmaXggYW5kIHBhZGRpbmcgd2l0aCAwIHdoZW4gdGhlIGZsYWdzIHRlbGwKCSAgdXMgdG8uCgkgIE9uIHJlc2l6ZSwgY2xlYXIgdGhlIHplcm8gcGFkZGluZyBmbGFncyBpZiB3ZSBjYW4ndCBndWFyYW50ZWUgdGhlIG1lbW9yeSBpcwoJICBzdGlsbCAwIGZpbGxlZC4KCSAgVXBkYXRlIHRlc3RzLgoKMjAxMi0wMy0xNCAxOTozNzoyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIHF1ZXJ5OiBhbHNvIGluY2x1ZGUgcGFkZGluZyBpbiBBTExPQ0FUSU9OIHF1ZXJ5CgkgIE5lZ290aWF0aW5nIHBhZGRpbmcgaXMgbmVlZGVkIG9uIHNlY29uZCB0aG91Z2h0IHNvIGluY2x1ZGUgaXQgaW4gdGhlCgkgIEFMTE9DQVRJT04gcXVlcnkuCgkgIE1ha2UgdGhlIGJ1ZmZlcnBvb2wgdGFrZSBwYWRkaW5nIGludG8gYWNjb3VudCB3aGVuIGFsbG9jYXRpbmcuCgkgIE1ha2UgYmFzZXNyYyB0YWtlIHBhZGRpbmcgaW50byBhY2NvdW50LgoJICBVc2UgcGFkZGluZyBhbmQgcHJlZml4IHdoZW4gYWxsb2NhdGluZyBpbiBiYXNldHJhbnNmb3JtLgoKMjAxMi0wMy0xNCAxODo0NTo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiB0YWtlIHByZWZpeCBpbnRvIGFjY291bnQgd2hlbiBhbGxvY2F0aW5nCgkgIFRha2UgaW50byBhY2NvdW50IHRoZSBwcmVmaXggdGhhdCB3ZSByZWNlaXZlZCBmcm9tIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5IGFuZCB1c2UKCSAgaXQgdG8gYWxsb2NhdGUgYW5kIHJlc2l6ZSBhIGxhcmdlciBidWZmZXIuCgoyMDEyLTAzLTE0IDE3OjE2OjM2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGZyZWUgb3duZWQgZGlzY2FyZGVkIHBvb2wgY29uZmlnCgoyMDEyLTAzLTE0IDE2OjI3OjMxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIHBhZDogaW1wbGVtZW50IERSQUlOIGhhbmRsaW5nCgkgIFdoZW4gd2UgZm9yd2FyZCB0aGUgRFJBSU4gcXVlcnkgYW5kIHRoZXJlIGlzIG5vdGhpbmcgdG8gZm9yd2FyZCBpdCB0bywgYXNzdW1lIHdlCgkgIGFyZSBkcmFpbmVkLgoJICBXaGVuIGEgYmFzZXNpbmsgcmVjZWl2ZXMgYSBkcmFpbiBxdWVyeSwgcmVwbHkgd2l0aCBUUlVFLgoKMjAxMi0wMy0xNCAxNjoxNDoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcXVlcnk6IGFkZCBuZXcgZHJhaW4gcXVlcnkKCSAgV2l0aCB0aGUgbmV3IHNlcmlhbGl6ZWQgZG93bnN0cmVhbSBxdWVyaWVzIHdlIGNhbiBpbXBsZW1lbnQgYSBkcmFpbiBxdWVyeSB0aGF0CgkgIG1ha2VzIGFuIGVsZW1lbnQgd2FpdHMgdW50aWwgYSBkb3duc3RyZWFtIGVsZW1lbnQgcmVwbGllcyB0byB0aGUgcXVlcnkuCgoyMDEyLTAzLTE0IDE2OjAxOjE1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG1ha2Ugc2VyaWFsaXplZCBxdWVyaWVzIHB1c2ggc3RpY2t5IGV2ZW50cyBmaXJzdAoJICBCZWZvcmUgd2UgY2FuIHByb2NlZWQgd2l0aCBhIHNlcmlhbGl6ZWQgcXVlcnksIHdlIG5lZWQgdG8gYmUgc3VyZSB0aGF0IGFsbAoJICBzdGlja3kgZXZlbnRzIHdlcmUgcHVzaGVkLgoKMjAxMi0wMy0xNCAxNTo0Mjo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZXM6IHdhcm4gd2hlbiByZWNlaXZpbmcgYSBzZXJpYWxpemVkIGV2ZW50CgkgIC4uIHVudGlsIHdlIGltcGxlbWVudCBpdC4KCjIwMTItMDMtMTQgMTU6NDI6MzMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgcXVldWU6IGFkZCBzdXBwb3J0IGZvciBzZXJpYWxpemVkIHF1ZXJpZXMKCjIwMTItMDMtMTQgMTU6Mjk6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogdGFrZSBzdHJlYW0gbG9jayBvbiBzZXJpYWxpemVkIHF1ZXJpZXMKCjIwMTItMDMtMTQgMTU6MTY6NTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZW5mb3JjZSBjb3JyZWN0IHF1ZXJ5IGRpcmVjdGlvbgoKMjAxMi0wMy0xNCAxNDo1MToxNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcXVlcnk6IHJlZ2lzdGVyIHF1ZXJpZXMgbGlrZSBldmVudHMKCSAgQWxzbyByZWdpc3RlciBxdWVyaWVzIHdpdGggYSBRdWVyeVR5cGUgdGhhdCBhbGxvd3MgdXMgdG8gY2hlY2sgaWYgdGhlIGV2ZW50IGlzCgkgIHNlbnQgaW4gdGhlIHJpZ2h0IGRpcmVjdGlvbi4gQWRkIGEgc2VyaWFsaXplZCBxdWVyeSB0eXBlIGJlY2F1c2Ugd2Ugd2lsbCBuZWVkCgkgIHRoaXMgZm9yIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5LgoJICBSZW1vdmUgdGhlIFF1ZXJ5VHlwZURlZmluaXRpb24gc3R1ZmYsIGl0IGlzIG5vdCB1c2VkIGFueW1vcmUgYW5kIHdlIG5vdyB1c2UKCSAgY3VzdG9tIHF1ZXJpZXMgYW5kIHNlcGFyYXRlIEFQSSBmb3IgdGhlbS4KCSAgVXBkYXRlIGRlZnMuCgoyMDEyLTAzLTE0IDEyOjQyOjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGFkZCBtb3JlIGRlYnVnCgoyMDEyLTAzLTEzIDE1OjQwOjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IHJlbW92ZSBvbGQgY29tcGF0IG1vZGUKCjIwMTItMDMtMTMgMTU6NDA6MjMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBzbWFsbCBkb2NzIHVwZGF0ZQoKMjAxMi0wMy0xMyAxMDowNDozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IHJlbW92ZSBnc3RfY2Fwc191bmlvbigpCgkgIFJlbW92ZSBnc3RfY2Fwc191bmlvbigpLCB1c2UgZ3N0X2NhcHNfbWVyZ2UoKS4gVGhpcyBmdW5jdGlvbiB3YXMgbm90IHVzZWQKCSAgYW55bW9yZSBhbmQgaXQgaXMgdW5jbGVhciB3aGF0IHRoZSBkaWZmZXJlbmNlIGlzIHdpdGggX21lcmdlKCkuCgoyMDEyLTAzLTEyIDIzOjA1OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBidW1wIEFTX0xJQlRPT0wgdmVyc2lvbgoJICBBUEkgd2FzIGFkZGVkIHRvIGNvbGxlY3RwYWRzMgoKMjAxMi0wMy0xMiAyMzowMjo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogYmFja3BvcnQgQVNfTElCVE9PTCB2ZXJzaW9uIGZyb20gMC4xMC4zNiByZWxlYXNlCgkgIE1pZ2h0IGZpeCBpc3N1ZXMgd2l0aCBtaXNzaW5nIHN5bWJvbHMgZm9yIHBlb3BsZSB3aG8gaW5zdGFsbCBHU3RyZWFtZXIKCSAgZnJvbSBzb3VyY2UgYW5kIGF0IHNvbWUgcG9pbnQganVtcGVkIGJhY2sgYW5kIGZvcnRoIGJldHdlZW4gZ2l0IG1hc3RlcgoJICBhbmQgdGhlIDAuMTAuMzYgcmVsZWFzZSAob3IgMC4xMC4gYnJhbmNoKS4KCjIwMTItMDMtMTIgMjM6MDg6MDAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJICBkb2NzOiBmaXggZnVuY3Rpb24gbmFtZSBhbmQgdHlwbwoKMjAxMi0wMy0xMiAxOTo1MjowMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBnZXQgdGVtcGxhdGUgY2FwcyBvbmx5IG9uY2UKCSAgR2V0IHRoZSB0ZW1wbGF0ZSBjYXBzIG9mIHRoZSBwYWRzIG9ubHkgb25jZSwgYXZvaWRzIHVuZWNlc3NhcnkgcmVmCgkgIGFuZCB1bnJlZnMuCgoyMDEyLTAzLTEyIDE4OjM0OjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogZGVsYXkgX21ha2Vfd3JpdGFibGUoKSB1bnRpbCBuZWVkZWQgaW4gX25vcm1hbGl6ZSgpCgkgIERlbGF5IF9tYWtlX3dyaXRhYmxlKCkgdW50aWwgd2UgYWN0dWFsbHkgZm91bmQgYSBsaXN0IGFuZCBuZWVkIHRvIHVwZGF0ZSB0aGUKCSAgY2Fwcy4KCjIwMTItMDMtMTIgMTg6MjU6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBzaG9ydGN1dCBzaW1wbGlmeSBlYXJsaWVyCgkgIEEgc2ltcGxlIGNhcHMgaXMgYWxyZWFkeSBzaW1wbGlmaWVkLCBubyBuZWVkIHRvIGNoZWNrIGZvciBmaXhlZG5lc3MuCgoyMDEyLTAzLTEyIDE4OjIyOjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2Fwczogc21hbGwgY2xlYW51cCwgcmVtb3ZlIGNvbnN0CgoyMDEyLTAzLTEyIDE4OjAyOjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2Fwczogc21hbGwgY2xlYW51cHMKCjIwMTItMDMtMTIgMTY6NDA6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBzbWFsbCBkb2MgaW1wcm92ZW1lbnQKCjIwMTItMDMtMTIgMTY6MTg6NDUgKzAyMDAgIFNyZWVyZW5qIEJhbGFjaGFuZHJhbiA8c3JlZXJlbmouYmFsYWNoYW5kcmFuQGludGVsLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlLmFjOiBidW1wIHJlcXVpcmVkIEdMaWIgdG8gMi4zMS4xNAoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcxOTExCgoyMDEyLTAzLTEyIDEzOjUwOjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBwb3J0aW5nLXRvLTAuMTEudHh0IGEgbGl0dGxlCgoyMDEyLTAzLTEyIDEyOjM1OjA3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogZml4IHNvbWUgMC4xMSBGSVhNRXMKCjIwMTItMDMtMTIgMTI6MjE6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBtYWtlIF9ub3JtYWxpemUgdGFrZSBvd25lcnNoaXAgb2YgaW5wdXQKCSAgTWFrZSBnc3RfY2Fwc19ub3JtYWxpemUoKSB0YWtlIG93bmVyc2hpcCBvZiB0aGUgaW5wdXQgc28gdGhhdCBpdCBjYW4gbW9yZQoJICBpbnRlbGxpZ2VudGx5IGRlY2lkZSB3aGVuIHRvIGNvcHkgb3Igbm90LgoKMjAxMi0wMy0xMiAxMTozODozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjYXBzOiBfZG9fc2ltcGxpZnkoKSAtPiBfc2ltcGxpZnkoKQoJICBSZW5hbWUgX2RvX3NpbXBsaWZ5KCkgdG8gX3NpbXBsaWZ5KCkuIFRoZSBuYW1lIHdhcyBpbnRyb2R1Y2VkIGFzIGEgcmVwbGFjZW1lbnQKCSAgbWV0aG9kIGZvciBhIGRlcHJlY2F0ZWQgbWV0aG9kIGJ1dCB3ZSBjYW4gbm93IHJlbmFtZSBpdCBhZ2Fpbi4KCSAgRml4IHNvbWUgZG9jcy4KCjIwMTItMDMtMTIgMTA6NDI6MjMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGltcHJvdmUgX2RvX3NpbXBsaWZ5CgkgIE1ha2UgZ3N0X2NhcHNfZG9fc2ltcGxpZnkoKSB0YWtlIG93bmVyc2hpcCBvZiB0aGUgaW5wdXQgY2FwcyBhbmQgcHJvZHVjZSBhCgkgIHNpbXBsaWZpZWQgb3V0cHV0IGNhcHMuIFRoaXMgcmVtb3ZlcyB0aGUgcmVxdWlyZW1lbnQgb2YgaGF2aW5nIHdyaXRhYmxlIGlucHV0CgkgIGNhcHMgYW5kIHRoZSBtZXRob2QgY2FuIG1ha2UgdGhlIGNhcHMgd3JpdGFibGUgb25seSB3aGVuIG5lZWRlZC4KCjIwMTItMDMtMTIgMTA6NDE6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBmaXggdW5pdCB0ZXN0CgkgIHdpdGggdGhlIG5ldyBjYXBzIEFQSSwgdGhlcmUgaXMgbW9yZSBzaGFyaW5nIGFuZCBsZXNzIGNvcHlpbmcgZ29pbmcgb24gc28gdGhlCgkgIHVuaXQgdGVzdCByZWZjb3VudHMgYXJlIGRpZmZlcmVudC4KCjIwMTItMDMtMTIgMDk6MDM6NDIgKzAwMDAgIENocmlzdGlhbiBGcmVkcmlrIEthbGFnZXIgU2NoYWxsZXIgPGNocmlzdGlhbi5zY2hhbGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9nZW5lcmFsLnhtbDoKCSAgdXBkYXRlIGxpY2Vuc2UgbGluayB0byBwb2ludCB0byAyLjEgbGljZW5zZSwgaW5zdGVhZCBvZiBqdXN0IGdlbmVyaWMgbGdwbCBmaWxlLCB3aGljaCBpcyBhbHdheXMgdGhlIGxhdGVzdCBhbmQgdGh1cyBub3QgY29ycmVjdCBmb3IgZ3N0cmVhbWVyCgoyMDEyLTAzLTExIDE4OjU3OjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGF2b2lkIHVzaW5nIGluLXBsYWNlIG9wcmF0aW9ucwoJICBSZXdvcmsgc29tZSBjYXBzIG9wZXJhdGlvbnMgc28gdGhleSBkb24ndCByZWx5IG9uIHdyaXRhYmxlIGNhcHMgYnV0IGluc3RlYWQgdGFrZQoJICBvd25lcnNoaXAgb2YgdGhlIGlucHV0IGNhcHMgYW5kIGRvIF9tYWtlX3dyaXRhYmxlKCkgb25seSB3aGVuIG5lZWRlZC4KCSAgUmVtb3ZlIHNvbWUgY29uc3QgZnJvbSBjYXBzIGZ1bmN0aW9ucywgaXQgZG9lcyBub3QgbWFrZSBtdWNoIHNlbnNlIGZvcgoJICByZWZjb3VudGVkIG9iamVjdHMgYW5kIGRvZXMgbm90IGFsbG93IHVzIHRvIHJldHVybiBhIHJlZmNvdW50IHRvIHRoZSBjb25zdCBpbnB1dAoJICBjYXBzLgoJICBSZXdvcmsgdGhlIGJhc2UgY2xhc3NlcyBmaXhhdGUgdm1ldGhvZHMgdG8gbm90IG9wZXJhdGUgb24gdGhlIGNhcHMgaW4tcGxhY2UuCgkgIEFsbCB0aGlzIHNhdmVzIHVzIGFyb3VuZCAzMCUgb2YgY2FwcyBhbmQgc3RydWN0dXJlIGNvcHkgYW5kIG5ldyBvcGVyYXRpb25zLgoKMjAxMi0wMy0xMSAxNzoyMjowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBhZGQgYWxsb2NhdGlvbiBkZWJ1ZwoKMjAxMi0wMy0xMCAwOToyNTo0MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICB0eXBlZmluZDogcmVtb3ZlIGNvbnN0IGZyb20gcmVmY291bnRlZCBHc3RDYXBzCgkgIEhhdmluZyBjb25zdCBvbiByZWZjb3VudGVkIG9iamVjdHMgcmVxdWlyZSB1cyB0byBtYWtlIGNvcGllcyBpbnN0ZWFkIG9mIHNpbXBseQoJICB0YWtpbmcgYSByZWYsIGRvbid0IGRvIHRoYXQuCgoyMDEyLTAzLTEwIDA5OjE1OjQzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5OiBhdm9pZCBjb3B5IHdoZW4gY2FwcyBhcmUgZml4ZWQKCSAgQXZvaWQgZG9pbmcgYSB1c2VsZXNzIGNvcHkgd2hlbiB0aGUgY2FwcyBhcmUgZml4ZWQgYW5kIHNpbXBsaWZ5IHdpbGwgbm90IGRvCgkgIGFueXRoaW5nLgoKMjAxMi0wMy0wOSAxNjoxNDowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBzbWFsbCBvcHRpbWl6YXRpb25zCgkgIHNob3J0Y3V0IGhlYXZ5IHdvcmsgd2hlbiBidWZmZXJfcmVzaXplIGRvZXMgbm90aGluZy4KCSAgQXZvaWQgYW4gZXh0cmEgX3JlZiB3aGVuIG1hcHBpbmcgYSBidWZmZXIuCgkgIEFkZCBzb21lIEdfTElLRUxZLgoKMjAxMi0wMy0wOSAxNTowMzoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVycG9vbC50eHQ6CgkgIGJ1ZmZlcnBvb2w6IGZpeCBhcnJheSB0eXBlcwoKMjAxMi0wMy0wOSAxNDozMDowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJwb29sLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1ldGEudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zY2hlZHVsaW5nLnR4dDoKCSAgZG9jczogdXBkYXRlIGRvY3MKCjIwMTItMDMtMDkgMTE6NTM6NTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWxzbyBwdXNoIHN0aWNreSBldmVudHMgb24gbmV3IGV2ZW50CgkgIE1ha2UgYSBoZWxwZXIgZnVuY3Rpb24gY2hlY2tfc3RpY2t5IHRvIGNoZWNrIGFuZCBwdXNoIHBlbmRpbmcgc3RpY2t5IGV2ZW50cy4KCSAgTW92ZSB0aGUgaGFuZGxpbmcgb2YgdGhlIHJlc3VsdCBvZiBwdXNoaW5nIHRoZSBzdGlja3kgZXZlbnQgaW5zaWRlIHRoZQoJICBwdXNoX2V2ZW50IGZ1bmN0aW9uLCB3ZSBuZWVkIHRvIG1hcmsgdGhlIGV2ZW50IGFzIHJlY2VpdmVkIHdoZW4gaXQgd2FzIHB1c2hlZAoJICBjb3JyZWN0bHkuCgkgIE1vdmUgdGhlIHN0aWNreSBldmVudHMgY29kZSBvdXRzaWRlIG9mIGdzdF9wYWRfcHVzaF9ldmVudF91bmNoZWNrZWQgYW5kCgkgIG1ha2UgaXQgcHVyZWx5IGhhbmRsZSBzZW5kaW5nIHRoZSBldmVudCB0byB0aGUgcGVlci4KCSAgd2hlbiBwdXNoaW5nIGEgc3RpY2t5IGV2ZW50LCBmaXJzdCBzdG9yZSBpdCBvbiB0aGUgcGFkLiBUaGVuIGNoZWNrIGFuZCBwdXNoIGFueQoJICBwZW5kaW5nIHN0aWNreSBldmVudHMgd2hlbiB3ZSBnZXQgYSBzZXJpYWxpemVkIG9yIHN0aWNreSBldmVudCBvbiBhIHNyY3BhZC4gVGhpcwoJICBmaXhlcyB0aGUgaXNzdWUgd2hlcmUgc3RpY2t5IGV2ZW50cyBhcmUgbm90IHB1c2hlZCB3aGVuIGFuIGV2ZW50IGlzIHB1c2hlZC4KCjIwMTItMDMtMDkgMTE6NTI6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogc3RvcmUgdGhlIHJlY2VpdmVkIHJlc3VsdCBmcm9tIF9mb3JlYWNoCgkgIElmIHRoZSBmb3JlYWNoIGZ1bmN0aW9uIGNoYW5nZXMgdGhlIHJlY2VpdmVkIHN0YXRlIG9mIHRoZSBzdGlja3kgZXZlbnQsIG1ha2UKCSAgc3VyZSB3ZSByZW1lbWJlciB0aGF0LgoKMjAxMi0wMy0wOSAxMTo1MjoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhZGQgY29tbWVudAoKMjAxMi0wMy0wOSAxMTo0OTowOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdDogYWRkIHRlc3QgdG8gY2hlY2sgc3RpY2t5IGV2ZW50cyBvcmRlcgoJICBTdGlja3kgZXZlbnRzIHB1c2hlZCBvbiBhbiB1bmxpbmtlZCBwYWQgc2hvdWxkIGJlIHN0b3JlZCBvbiB0aGUgcGFkLiBXaGVuIHRoZQoJICBwYWQgaXMgdGhlbiBsaW5rZWQgYW5kIGFuIGV2ZW50IGlzIHB1c2hlZCwgdGhlIGV2ZW50IHNob3VsZCBiZSBtZXJnZWQgd2l0aCB0aGUKCSAgYWxyZWFkeSBleGlzdGluZyBzdGlja3kgZXZlbnRzIGFuZCB0aGVuIHRoZSBzdGlja3kgZXZlbnRzIHNob3VsZCBiZSBwdXNoZWQgaW4KCSAgdGhlIG9yZGVyIHRoYXQgdGhleSB3ZXJlIG9yaWdpbmFsbHkgcHVzaGVkLgoKMjAxMi0wMy0wOSAxMTo0ODo0MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB0ZXN0OiBmaXggdHlwbyBpbiBjb21tZW50CgoyMDEyLTAzLTA4IDIwOjA4OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zZWVrLmM6CgkgIHRlc3RzOiBwb3J0IHBpcGVsaW5lL3NlZWsgdGVzdCB0byAwLjExCgkgIERvZXNuJ3QgZmFpbCBpbiAwLjExIG9mIGNvdXJzZSwgYXQgbGVhc3Qgbm90IG9uIG15IG1hY2hpbmUuCgoyMDEyLTAzLTA4IDE5OjU1OjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGNvbW1vbgoJICBnc3QvZ3N0cGFkLmgKCSAgZ3N0L2dzdHRhc2suYwoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oCgoyMDEyLTAzLTA4IDE2OjMwOjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSAgcGFkLCB0YXNrOiBpbXByb3ZlIGRlYnVnIGxvZ2dpbmcKCjIwMTItMDMtMDggMTY6MjY6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJICBwYWRzLCBjb2xsZWN0cGFkczI6IGdldCByaWQgb2Ygc3VwZXJmbHVvdXMgYnJhY2tldHMgYXJvdW5kIHN0YXRpYyByZWMgbXV0ZXggY2FsbHMKCSAgTWFrZXMgaXQgcG9zc2libGUgdG8gZGVmaW5lIHRob3NlIGNhbGxzIHRvIHNvbWV0aGluZyBmb3IgdHJhY2luZy4KCjIwMTItMDMtMDggMTY6MjU6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBjb21tb246IHVwZGF0ZSBjb21tb24gbW9kdWxlCgkgIEZvciBtYWtlIGZvby9iYXIuY2hlY2stbm9yZXBlYXQgdGFyZ2V0LgoKMjAxMi0wMy0wOCAxNToyMzo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zZWVrLmM6CgkgIHRlc3RzOiBhZGQgbWluaW1hbCBiYXNlc3JjICEgc2luayBzZWVraW5nIHVuaXQgdGVzdAoJICBTaG91bGQgcmVwcm9kdWNlICdHU3RyZWFtZXItV0FSTklORyAqKjogd3JvbmcgU1RSRUFNX0xPQ0sgY291bnQgMCcKCSAgd2FybmluZ3MgKHdpdGggbWFrZSBwaXBlbGluZXMvc2Vlay50b3J0dXJlIG9yIHBpcGVsaW5lcy9zZWVrLmZvcmV2ZXIKCSAgYW55d2F5LCBzaW5jZSBpdCBhcHBlYXJzIHRvIGJlIHJhY3kpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcwODQ2CgoyMDExLTEyLTI2IDAwOjE4OjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHZhbHVlOiByZW1vdmUgZ3N0X3ZhbHVlX3JlZ2lzdGVyX3tzdWJ0cmFjdCx1bmlvbixpbnRlcnNlY3R9X2Z1bmMoKSBBUEkKCSAgVGhlcmUgaXNuJ3QgcmVhbGx5IGFueSBuZWVkIHRvIHByb3ZpZGUgcHVibGljIEFQSSBmb3IgdGhhdC4gSXQncyBub3QKCSAgdXNlZCBhbnl3aGVyZSBpbiBwcmFjdGljZSwgYW5kIHdlIGFpbSB0byBwcm92aWRlIGFuIEFQSSB0aGF0IHdvcmtzCgkgIGZvciBHc3RDYXBzLCBub3Qgc29tZSBraW5kIG9mIGdlbmVyaWMgc2V0IG1hbmlwdWxhdGlvbiBBUEkgYmFzZWQgb24KCSAgR1ZhbHVlLiBNYWtpbmcgdGhpcyBwcml2YXRlIGFsc28gbWFrZXMgaXQgZWFzaWVyIHRvIG9wdGltaXNlIHRoaXMKCSAgbGF0ZXIuIFdlIGNhbiBhbHdheXMgcHV0IGl0IGJhY2sgaWYgc29tZW9uZSBhY3R1YWxseSBuZWVkcyBpdC4KCjIwMTItMDMtMDggMTA6NDc6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IGZpeCByZWZjb3VudCBlcnJvcgoKMjAxMi0wMy0wOCAwOTo0NTowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHJldHVybiBBTlkgZm9yIGEgcGFkIHdpdGhvdXQgdGVtcGxhdGUKCSAgQmVjYXVzZSBnc3RfcGFkX2dldF9wYWRfdGVtcGxhdGVfY2FwcygpIHJldHVybnMgQU5ZIHdoZW4gdGhlcmUgaXMgbm8gdGVtcGxhdGUsCgkgIHRoZSBxdWVyeSBjYXBzIGZ1bmN0aW9uIHNob3VsZCBhbHNvIHJldHVybiBBTlkgd2hlbiB0aGVyZSBpcyBubyB0ZW1wbGF0ZSAoYW5kIG5vCgkgIHBhZCBjdXJyZW50IGNhcHMpIGluc3RlYWQgb2YgRU1QVFkuCgoyMDEyLTAzLTA4IDA5OjQ0OjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHNtYWxsIGNsZWFudXAKCjIwMTItMDMtMDcgMTU6MzQ6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogYWRkIGNvbW1lbnQKCjIwMTItMDMtMDggMTA6MzI6MDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXggbWVyZ2UgbWlzdGFrZQoKMjAxMi0wMy0wOCAxMDoxOTo1MiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jCgoyMDEyLTAzLTA3IDExOjIzOjU2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogYXJyYW5nZSBmb3IgcHJvcGVybHkgZGlzam9pbnQgZnJhbWUgZmxhZ3MKCjIwMTItMDMtMDYgMTU6MTc6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZGVsYXkgcG9vbCBhY3RpdmF0aW9uCgkgIERlbGF5IHRoZSBhY3RpdmF0aW9uIG9mIHRoZSBidWZmZXJwb29sIHVudGlsIHdlIGFjdHVhbGx5IG5lZWQgYSBidWZmZXIgZnJvbSB0aGUKCSAgcG9vbC4KCjIwMTItMDMtMDYgMTI6Mjg6MDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXggJ3NlbGYtY29tcGFyaXNvbiBhbHdheXMgZXZhbHVhdGVzIHRvIHRydWUnCgkgIFRoaXMgd2FzIHJlYWxseSBhIGJ1Zy4KCjIwMTItMDMtMDYgMTI6MjQ6NTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBGaXggJ3VzZSBvZiBsb2dpY2FsICcmJicgd2l0aCBjb25zdGFudCBvcGVyYW5kJyBjb21waWxlciB3YXJuaW5nCgkgIFRoaXMgaXMgYWN0dWFsbHkgYSByZWFsIGJ1Zy4KCjIwMTItMDMtMDYgMTI6MjM6MTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEZpeCAnZXF1YWxpdHkgY29tcGFyaXNvbiB3aXRoIGV4dHJhbmVvdXMgcGFyZW50aGVzZXMnIGNvbXBpbGVyIHdhcm5pbmcKCjIwMTItMDMtMDYgMTI6MTY6MTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IEZpeCAnY29tcGFyaXNvbiBvZiB1bnNpZ25lZCBlbnVtIGV4cHJlc3Npb24gPj0gMCBpcyBhbHdheXMgdHJ1ZScgY29tcGlsZXIgd2FybmluZwoKMjAxMi0wMy0wNSAxNToyMzo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBkb24ndCBwcm9wb3NlX2FsbG9jYXRpb24gYmVmb3JlIG5lZ290aWF0aW9uCgkgIEFuc3dlciB0aGUgYWxsb2NhdGlvbiBxdWVyeSB3aXRoIEZBTFNFIHdoZW4gd2UgYXJlIG5vdCBuZWdvdGlhdGVkIHlldCBiZWNhdXNlIGF0CgkgIHRoYXQgcG9pbnQgd2UgaGF2ZSBubyBpZGVhIGlmIHdlIG5lZWQgdG8gcHJveHkgdGhlIGFsbG9jYXRpb24gcXVlcnkgb3Igbm90LgoKMjAxMi0wMy0wNSAxNDo0MToxMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCBoYW5kbGluZyBvZiBtdWx0aXBsZSBuZXdzZWdtZW50IGV2ZW50cwoJICBQcmV2aW91c2x5IG9ubHkgdGhlIGxhc3Qgd291bGQgYmUgcHVzaGVkLCB3aGljaCB3b3VsZCBjYXVzZQoJICBpbnZhbGlkIHJ1bm5pbmcgdGltZXMgZG93bnN0cmVhbS4gVGhpcyBhbHNvIGZpeGVzIHRoZSBoYW5kbGluZwoJICBvZiB1cGRhdGUgbmV3c2VnbWVudCBldmVudHMuCgoyMDEyLTAzLTA1IDE0OjI1OjU3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogQWxzbyBmbHVzaCB0aGUgY2xvc2Vfc2VnbWVudAoJICBQdXNoaW5nIHRoaXMgYWZ0ZXIgZmx1c2hpbmcgd2lsbCBjb25mdXNlIGRvd25zdHJlYW0uCgoyMDEyLTAzLTA1IDE0OjIzOjE3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogUmVtb3ZlIG9ic29sZXRlIGNvZGUgYW5kIG1vdmUgZ2FwIGhhbmRsaW5nIHRvIHRoZSBjb3JyZWN0IHBsYWNlCgkgIFRoZSBzZWdtZW50IHN0YXJ0IGFkanVzdG1lbnQgY29kZSBpbiBwdWxsIG1vZGUgc2hvdWxkIG5ldmVyIHRyaWdnZXIKCSAgYW55bW9yZSBiZWNhdXNlIHRoZSBiaXNlY3Rpb24gY29kZSBlYXJsaWVyIHdvdWxkIGhhdmUgYWxyZWFkeSBtYWRlCgkgIHN1cmUgdGhhdCB3ZSdyZSBhdCB0aGUgZGVzaXJlZCBwb3NpdGlvbi4KCSAgQWxzbyBtb3ZlIHRoZSBnYXAgaGFuZGxpbmcgc29tZSBsaW5lcyBiZWxvdyBhZnRlciBzZW5kaW5nIHRoZSBjdXJyZW50bHkKCSAgY29uZmlndXJlZCBzZWdtZW50cy4gT3RoZXJ3aXNlIHdlIG1pZ2h0IGZpbGwgZ2FwcyBpbiBhIHNlZ21lbnQgdGhhdCBpcwoJICBub3QgY29uZmlndXJlZCBkb3duc3RyZWFtIHlldC4KCjIwMTItMDMtMDUgMTM6MTI6MTggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBDbGVhciBzb21lIG1vcmUgc3RhdGUgd2hlbiByZWNlaXZpbmcgRkxVU0hfU1RPUAoJICBMaWtlIHBlbmRpbmcgc2VyaWFsaXplZCBldmVudHMgYW5kIHRoZSBjdXJyZW50bHkgY2FjaGVkIGJ1ZmZlci4KCjIwMTItMDMtMDUgMTM6MDA6MzggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBPbmx5IHF1ZXVlIHNlcmlhbGl6ZWQgZXZlbnRzIGZvciBzZW5kaW5nIHRoZW0gbGF0ZXIKCjIwMTItMDMtMDUgMDA6MzQ6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIGxpYmdzdGNoZWNrOiBleHBvcnQgZ3N0X2NvbnNpc3RlbmN5X2NoZWNrZXJfYWRkX3BhZCgpCgkgIEZpeCBidWlsZCBvZiB0aGUgYWRkZXIgdW5pdCB0ZXN0IGluIC1iYXNlIGFnYWluLgoKMjAxMi0wMy0wMiAxNzozMjoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogcmVmaW5lIG1ldGFkYXRhIGZpbHRlciBhbmQgdHJhbnNmb3JtCgkgIEFkZCBhIHZtZXRob2QgdG8gZmlsdGVyIG1ldGFkYXRhIHRoYXQgc2hvdWxkIGJlIHBhc3NlZCB1cHN0cmVhbS4gQnkgZGVmYXVsdCwKCSAgZG9uJ3QgcGFzcyBhbnl0aGluZy4KCSAgQWRkIGEgdm1ldGhvZCB0byB0cmFuc2Zvcm0gbWV0YWRhdGEgZnJvbSB0aGUgaW5wdXQgYnVmZmVyIHRvIHRoZSBvdXRwdXQgYnVmZmVyLgoJICBCeSBkZWZhdWx0LCBub3RoaW5nIGlzIHRyYW5zZm9ybWVkIG9yIGNvcGllZC4KCjIwMTItMDMtMDIgMTc6MDQ6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Lmg6CgkgIGdzdDogaW5jbHVkZSBnc3RtZXRhLmgKCjIwMTItMDMtMDIgMTc6MDM6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBhZGQgbW9yZSBkZWJ1ZyBpbmZvCgoyMDEyLTAzLTAyIDEzOjAyOjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZQoKMjAxMi0wMy0wMiAxMzowMjozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkgIHRlc3RzOiBpbXByb3ZlIG1ldGFkYXRhIHRlc3QKCjIwMTItMDMtMDIgMTI6NDU6MjMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkgIG1ldGE6IGFkZCBib29sZWFuIHRvIHNpZ25hbCBhIHJlZ2lvbiBjb3B5CgkgIEFkZCBhIGJvb2xlYW4gdG8gdGhlIG1ldGFkYXRhIGNvcHkgdHJhbnNmb3JtIHRoYXQgc2lnbmFscyBpZiBhIG9ubHkgYQoJICByZWdpb24gaXMgY29waWVkLgoKMjAxMi0wMy0wMiAxMjoxNjowMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJICBjb25zaXRlbmN5Y2hlY2tlcjogZG9uJ3QgZmFpbCBvbiBtdWx0aXBsZSBmbHVzaF9zdGFydCBldmVudHMKCSAgVGhpcyBzZWVtcyB0byBiZSBva2F5IGFmdGVyIGEgaXJjIGRpc2N1c3Npb24uCgoyMDEyLTAzLTAyIDExOjU3OjUyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSAgbWV0YTogdHJhbnNmb3JtIGRvY3MKCSAgVXNlIGdzdC0gcHJlZml4IGZvciBtZXRhZGF0YSB0cmFuc2Zvcm0gdHlwZXMuCgoyMDEyLTAzLTAyIDExOjA0OjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuczogZml4IGNvbW1lbnQKCjIwMTItMDMtMDIgMTE6MDU6NDggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogQW5kcm9pZC5tazoKCSogTWFrZWZpbGUuYW06CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RtYXJzaGFsLmxpc3Q6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogd2luMzIvY29tbW9uL2dzdG1hcnNoYWwuYzoKCSogd2luMzIvY29tbW9uL2dzdG1hcnNoYWwuaDoKCSAgZ3N0OiBSZW1vdmUgZ3N0bWFyc2hhbC5bY2hdIGNvbXBsZXRlbHkgYW5kIHVzZSB0aGUgZ2VuZXJpYyBtYXJzaGFsbGVyCgkgIEZpeGVzIGJ1ZyAjNjcxMTMwLgoKMjAxMi0wMy0wMiAxMDo1MTo0MiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGdzdDogRG9uJ3QgaW5zdGFsbCBnc3RtYXJzaGFsLmgKCSAgVGhlIGdlbmVyaWMsIEZGSSBiYXNlZCBtYXJzaGFsbGVyIHNob3VsZCBiZSB1c2VkIGluc3RlYWQgb2YgdGhlc2UKCSAgYW5kIHdlIGRlZmluaXRlbHkgc2hvdWxkbid0IGV4cG9ydCB0aGUgbWFyc2hhbGxlcnMgaW4gb3VyIHB1YmxpYyBBUEkuCgoyMDEyLTAzLTAxIDE3OjM5OjE3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkgIG1ldGE6IGltcHJvdmUgZGVidWdnaW5nCgkgIEFkZCBjYXRlZ29yeSBmb3IgbWV0YWRhdGEgZGVidWcKCjIwMTItMDMtMDEgMTc6Mzg6NTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogaW1wcm92ZSBkZWJ1Z2dpbmcKCjIwMTItMDMtMDEgMTc6Mzg6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogaW1wcm92ZSBkZWJ1Z2dpbmcKCjIwMTItMDMtMDEgMTU6MTg6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IHJlbW92ZSBtZXRhZGF0YSB0YWdnZWQgd2l0aCB0aGUgbWVtb3J5IHRhZwoJICBSZW1vdmUgbWV0YWRhdGEgdGhhdCBkZXNjcmliZXMgdGhlIHBhcnRpY3VsYXIgbWVtb3J5IG9mIHRoZSBidWZmZXIgaXQgaXMKCSAgYXR0YWNoZWQgdG8uIFdlIG5lZWQgdG8gZG8gdGhpcyBiZWNhdXNlIGluIG5vbi1wYXNzdGhyb3VnaCBtb2RlIHdlIHdpbGwgYWxsb2NhdGUKCSAgbmV3IG1lbW9yeSBmb3Igb3VyIG91dHB1dCBidWZmZXIuCgoyMDEyLTAzLTAxIDE1OjE3OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSAgbWV0YTogYWRkIHRhZyBmb3IgbWVtb3J5IG1ldGFkYXRhCgoyMDEyLTAzLTAxIDE0OjQ5OjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogYWRkIG1ldGhvZCB0byByZW1vdmUgYWxsb2NhdGlvbl9tZXRhCgkgIEFsc28gZ19yZXR1cm5faWZfZmFpbCBmb3Igb3V0LW9mLWJvdW5kcyBhY2Nlc3MgaW5zdGVhZCBvZiBzaWxlbnRseSBmYWlsaW5nLgoKMjAxMi0wMy0wMSAxNDozMDo1OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogaW1wcm92ZSBwcm9wb3NlX2FsbG9jYXRpb24KCSAgSW1wcm92ZSB0aGUgcHJvcG9zZSBhbGxvY2F0aW9uIHZtZXRob2QgYnkgcGFzc2luZyB0aGUgZG93bnN0cmVhbSBhbGxvY2F0aW9uCgkgIHF1ZXJ5IHRvIGl0LiBUaGlzIHdheSB0aGUgdm1ldGhvZCBpbXBsZW1lbnRhdGlvbiBjYW4gdXNlIHByb3BlcnRpZXMgb2YgdGhlCgkgIGRvd25zdHJlYW0gYWxsb2NhdGlvbiB0byBnZW5lcmF0ZSB0aGUgdXBzdHJlYW0gcXVlcnkgcmVzdWx0LiBJZiB0aGVyZSBpcyBubwoJICBkb3duc3RyZWFtIHF1ZXR5LCBpdCBtZWFucyB0aGF0IHRoZSBlbGVtZW50IGlzIHdvcmtpbmcgaW4gcGFzc3Rocm91Z2ggbW9kZS4KCSAgSW1wbGVtZW50IGEgZGVmYXVsdCBkZWNpZGVfYWxsb2NhdGlvbi4KCjIwMTItMDMtMDEgMTE6MTE6NDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogY2xlYXIgYWxsb2NhdGlvbiBwYXJhbWV0ZXJzIGluIHBhc3N0aHJvdWdoCgkgIENsZWFyIHRoZSBhbGxvY2F0aW9uIHBhcmFtZXRlcnMgd2hlbiB3ZSBvcGVyYXRlIGluIHBhc3N0aHJvdWdoLgoKMjAxMi0wMy0wMSAxMTowNjo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2NhcHNmaWx0ZXIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZhbHZlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9jYXBzbGlzdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9xdWV1ZS1lcnJvci5jOgoJICB0ZXN0czogZml4IG9sZCBjYXBzIGluIHRlc3RzIG5vdyB0aGF0IGNvcmUgd2FybnMKCjIwMTItMDMtMDEgMTQ6NTE6MjYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkgIGxpYnM6IEZpeCBzb21lIG1lcmdlIG1pc3Rha2VzCgoyMDEyLTAzLTAxIDE0OjQzOjAxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jCgoyMDEyLTAyLTI4IDEyOjAzOjQ2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggc29tZSBkZWJ1ZyBtZXNzYWdlIHR5cG9zCgoyMDEyLTAyLTI5IDIxOjU3OjAwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5oOgoJICBjb25zaXRlbmN5Y2hlY2tlcjogYWRkIGhhbmRsaW5nIGZvciBzaW5rLXBhZHMKCSAgQWRkIGEgcGFkLXByb2JlIGZvciBzaW5rLXBhZHMuIE9uZSBjYW4gbm93IGFkZCBleHRyYSBwYWRzIChiZWxvbmdpbmcgdG8gdGhlIHNhbWUKCSAgZWxlbWVudCkgdG8gYSBjaGVja2VyLiBUaGlzIGFsbG93cyB1cyB0byBleHRlbmQgdGhlIGNoZWNrcy4KCjIwMTItMDItMjkgMTc6MjA6MjMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWV0YTogc3BsaXQgcmVnaXN0cmF0aW9uIG9mIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KCSAgU3BsaXQgb3V0IHRoZSByZWdpc3RyYXRpb24gb2YgdGhlIG1ldGFkYXRhIEFQSSBhbmQgaXRzIGltcGxlbWVudGF0aW9uLiBNYWtlIGEKCSAgR1R5cGUgZm9yIGVhY2ggbWV0YWRhdGEgQVBJLiBUaGlzIGFsbG93cyB1cyB0byBzdG9yZSBleHRyYSBpbmZvcm1hdGlvbiB3aXRoIHRoZQoJICBBUEkgdHlwZSBzdWNoIGFzIHRoZSB0YWdzLgoJICBDaGFuZ2UgdGhlIGJ1ZmZlciBBUEkgc28gdGhhdCB3ZSBjYW4gZ2V0IHRoZSBtZXRhZGF0YSB1c2luZyB0aGUgQVBJIEdUeXBlLgoJICBDaGFuZ2UgdGhlIHF1ZXJ5IEFQSSBzbyB0aGF0IHdlIHVzZSB0aGUgbWV0YWRhdGEgQVBJIEdUeXBlIGluIHRoZSBhbGxvY2F0aW9uCgkgIHF1ZXJ5IGluc3RlYWQgb2YgYSBzdHJpbmcuCgkgIFVwZGF0ZSBuZXRhZGRyZXNzIGFuZCB1bml0IHRlc3RzCgoyMDEyLTAyLTI5IDE2OjAwOjIyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgbWlub2JqZWN0OiBzbWFsbCAuaCBpbmRlbnQgZml4CgoyMDEyLTAyLTI5IDEyOjQxOjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBwcmludCBhIGdfd2FybmluZygpIGlmIHNvbWVvbmUgdHJpZXMgdG8gY29uc3RydWN0IDAuMTAtc3R5bGUgcmF3IGF1ZGlvL3ZpZGVvIGNhcHMKCjIwMTItMDItMjkgMDg6NDQ6MDQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSAgY29uc2lzdGVuY3ljaGVja2VyOiBhbHNvIGNoZWNrIGZvciBkdXBsaWNhdGVkIGZsdXNoX3N0YXJ0cwoKMjAxMi0wMi0yOCAyMDozNjo1OSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkgIGNvbGxlY3RwYWRzMjogYWRkIG1vcmUgbG9nZ2luZwoKMjAxMi0wMi0yOCAxNjoxNzo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJICBtZXRhOiBhZGQgcmV0dXJuIHZhbGUgdG8gdHJhbnNmb3JtCgkgIEFkZCBhIGJvb2xlYW4gcmV0dXJuIHZhbHVlIHNvIHRoYXQgd2UgY2FuIHNlZSB3aGVuIGEgdHJhbnNmb3JtIGZhaWxzLgoKMjAxMi0wMi0yOCAxMjo1MjowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXRhOiBhZGQgbWV0aG9kIHRvIGNoZWNrIGZvciBhIHRhZwoKMjAxMi0wMi0yOCAxMjo1MToyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkgIHRlc3RzOiBmaXggdW5pdCB0ZXN0CgoyMDEyLTAyLTI4IDExOjM0OjQ4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkgIG1ldGE6IGFkZCBzdXBwb3J0IHRvIHRhZ2dpbmcgdGhlIG1ldGFkYXRhCgkgIEFkZCBzdXBwb3J0IGZvciBhZGRpbmcgdGFncyB0byB0aGUgbWV0YWRhdGEuIHdpdGggc29tZSBzdGFuZGFyZCBrZXlzLCB0aGlzCgkgIHNob3VsZCBtYWtlIGl0IHBvc3NpYmxlIHRvIGRlc2NyaWJlIHdoYXQgdGhlIG1ldGFkYXRhIHJlZmVycyB0by4gV2Ugc2hvdWxkIGJlCgkgIGFibGUgdG8gdXNlIHRoaXMgaW5mb3JtYXRpb24gdG8gZGVjaWRlIGlmIGEgdHJhbnNmb3JtYXRpb24gZGVzdHJveXMgdGhlIG1ldGFkYXRhCgkgIG9yIG5vdC4KCjIwMTItMDItMjcgMTM6MzU6MTAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIFN1cHByZXNzIGRlcHJlY2F0aW9uIHdhcm5pbmdzIGluIHNlbGVjdGVkIGZpbGVzLCBmb3IgZ192YWx1ZV9hcnJheV8qIG1vc3RseQoKMjAxMi0wMi0yNyAxMTo0NjowOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSAgdGVzdHM6IGluY3JlYXNlIGJ1cyB0ZXN0IHRpbWVvdXQKCjIwMTItMDItMjEgMjA6NDM6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIHRlc3RzOiBtYWtlIGRhdGV0aW1lIHRlc3QgbW9yZSByZWxpYWJseSB3aGVuIGNvbXBhcmluZyB0d28gYWxtb3N0IGlkZW50aWNhbCBub3dzCgkgIEFjY291bnQgZm9yIHJvdW5kaW5nIGVycm9ycyBpbiBzb21lIHBsYWNlcywgYW5kIHRoYXQgdHdvIG5vd3MgYXJlCgkgIG5vdCBhbHdheXMgZW50aXJlbHkgaWRlbnRpY2FsLCBzbyBhbGxvdyBzb21lIGxlZXdheSB3aGVuIGNvbXBhcmluZwoJICBtaWNyb3NlY29uZHMgYW5kIHNlY29uZHMuIFJhbiBpbnRvIHRoaXMgdG9vIG9mdGVuLCBlc3AuIHdoZW4gdGhlCgkgIHN5c3RlbSBpcyB1bmRlciBsb2FkLgoKMjAxMi0wMi0yNyAwOTo0ODowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkgIHJlbW92ZSBzb21lIHVzZWxlc3MgaW5jbHVkZXMgaW4gLmgKCjIwMTItMDItMjcgMDk6MDI6MDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjbG9jazogbWFrZSBtb3JlIHN0dWZmIHByaXZhdGUKCSAgRXhwb3NlIG1ldGhvZHMgdG8gZ2V0IGFuZCBzZXQgdGhlIHRpbWVvdXQgYmVjYXVzZSBzdWJjbGFzc2VzIHVzZXMgdGhpcy4KCjIwMTItMDItMjYgMjA6NDU6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkgIHN5c3RlbWNsb2NrOiBtYWtlIG1vcmUgc3R1ZmYgcHJpdmF0ZQoKMjAxMi0wMi0yNiAyMDo0NDo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IG1ha2UgbW9yZSBzdHVmZiBwcml2YXRlCgoyMDEyLTAyLTI2IDE2OjMyOjMyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkgIGJ1czogbWFrZSBtb3JlIGZpZWxkcyBwcml2YXRlCgoyMDEyLTAyLTI3IDAwOjA5OjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgIGZkc2luazogZml4IGNvbXBpbGF0aW9uIGFmdGVyIG1lcmdlCgoyMDEyLTAyLTI3IDAwOjA4OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIE5FV1MKCSAgUkVMRUFTRQoJICBjb25maWd1cmUuYWMKCSAgZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeQoJICBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbAoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmMKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jCgkgIHdpbjMyL2NvbW1vbi9jb25maWcuaAoJICB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmMKCSAgd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaAoKMjAxMi0wMi0yNiAyMzoxMToyMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkgIGNvbGxlY3RwYWRzMjogcmVzY3VlIHRoZSBhbm5vdGF0aW9uIGZyb20gY29sbGVjdHBhZHMKCjIwMTItMDItMjYgMjM6MTA6NTggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGRvY3M6IGZpeCBhIHR5cG8gaW4gY29tbWVudAoKMjAxMi0wMi0yNiAyMjo1NzowMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkgIGNvbGxlY3RwYWRzMjogbW92ZSAiTVQgc2F2ZSIgdGFncyB0byBkb2MgYm9keQoJICBJdCBpcyBub3QgdXNlZnVsIHRvIGhhdmUgIk1UIHNhZmUiIHRhZ3MgcmFuZG9tbHkgaW4gYm9keSwgcmV0dXJucyBvciBzaW5jZSBwYXJhZ3JhcGhzLgoKMjAxMi0wMi0yNSAxNToxODowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICBmZHNpbms6IGltcGxlbWVudCBHc3RCYXNlU2luazo6cXVlcnkgaW5zdGVhZCBvZiBtZXNzaW5nIHdpdGggdGhlIHBhZAoKMjAxMi0wMi0yNSAxNTowODo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5oOgoJICBmZHNpbms6IGltcGxlbWVudCBTRUVLSU5HIHF1ZXJ5CgkgIFdlIG1heSBvciBtYXkgbm90IHN1cHBvcnQgc2Vla2luZy4gc3Rkb3V0IHRvIGEKCSAgdGVybWluYWwgZG9lc24ndCBzdXBwb3J0IHNlZWtpbmcsIGZvciBleGFtcGxlLCBidXQKCSAgLi4uICEgZmRzaW5rID4gZmlsZS5mb28ganVzdCBtaWdodC4KCjIwMTItMDItMjUgMTU6MDc6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBmaWxlc2luazogaW1wbGVtZW50IFNFRUtJTkcgcXVlcnkKCSAgV2UgbWF5IG9yIG1heSBub3QgZG8gc2Vla2luZywgZGVwZW5kcyBvbiB0aGUKCSAgb3V0cHV0IGZpbGUvZGV2aWNlIHJlYWxseSwgaXQgZG9lc24ndCBoYXZlIHRvCgkgIGJlIGEgZmlsZSBhZnRlciBhbGwuCgoyMDEyLTAyLTI1IDE1OjA3OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IGFuc3dlciBTRUVLSU5HIHF1ZXJ5CgkgIFdlIGRvbid0IGRvIHNlZWtpbmcsIGluIGNhc2UgYW55b25lIHdhbnRzIHRvIGtub3cuCgoyMDEyLTAyLTI0IDIzOjM5OjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogZml4IGxzZWVrKCkgcmV0dXJuIGNvZGUgaGFuZGxpbmcKCSAgbHNlZWsoKSByZXR1cm5zIHRoZSBvZmZzZXQgaWYgc3VjY2Vzc2Z1bCwgYW5kIHRoaXMgaXMgIT0gMCBhbmQKCSAgZG9lcyBub3QgaW5kaWNhdGUgYW4gZXJyb3IuIEFuZCBpZiBpdCBkb2VzIGFjdHVhbGx5IGZhaWwsIGRvbid0CgkgIHJldHVybiBGQUxTRSAoMCkgYXMgYW4gaW50LCBidXQgLTEuIE5vbmUgb2YgdGhlc2UgdGhpbmdzIGFyZQoJICBsaWtlbHkgdG8gaGF2ZSBtYWRlIGEgZGlmZmVyZW5jZSwgZXZlci4gSSBkb24ndCB0aGluayB0aGUgb2Zmc2V0CgkgIHNlZWsgY2FuIGV2ZXIgYWN0dWFsbHkgaGFwcGVuLCB0aGUgY3VycmVudCBmaWxlIHBvc2l0aW9uIGFuZCB0aGUKCSAgY3VycmVudCBvZmZzZXQgc2hvdWxkIGFsd2F5cyBiZSBpbmNyZWFzZWQgaW4gbG9jayBzdGVwLCB1bmxlc3MKCSAgdGhlcmUgd2FzIGFuIGVycm9yIGluIHdoaWNoIGNhc2Ugd2UnZCBqdXN0IGVycm9yIG91dC4KCjIwMTItMDItMjQgMjM6MTk6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiBkb24ndCBmb3JnZXQgdG8gY2xlYW4gdXAgcmVnaXN0cnkgdGVtcCBmaWxlIGluIGFub3RoZXIgZXJyb3IgY2FzZQoJICBBbHNvIGNsZWFuIHVwIHRlbXAgZmlsZSBpZiB3ZSBnZXQgYW4gZXJyb3IgZHVyaW5nIHdyaXRlKCkgcmF0aGVyCgkgIHRoYW4ganVzdCB3aGVuIGRvaW5nIGZzeW5jKCkgb3IgY2xvc2UoKS4KCjIwMTItMDItMjQgMTU6MjQ6NDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSAgYXRvbWljcXVldWU6IGZpeCByYWNlCgkgIEFmdGVyIGEgd3JpdGVyIGhhcyB3cml0dGVuIHRvIGl0cyByZXNlcnZlZCB3cml0ZSBsb2NhdGlvbiwgaXQgY2FuIG9ubHkgbWFrZSB0aGUKCSAgbG9jYXRpb24gYXZhaWxhYmxlIGZvciByZWFkaW5nIGlmIGFsbCBvZiB0aGUgd3JpdGVycyB3aXRoIGxvd2VyIGxvY2F0aW9ucyBoYXZlCgkgIGZpbmlzaGVkLgoKMjAxMi0wMi0yNCAxMjo1Mzo1MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9kYXRhdXJpc3JjLmM6CgkgIGRhdGF1cmlzcmM6IGZpeCBkb2NzIGFuZCB1bml0IHRlc3QKCjIwMTItMDItMjQgMTI6NTE6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSAgYXRvbWljcXVldWU6IGZpeCBzdWJ0bGUgcmFjZQoJICBGaXggYSByYWNlIHdoZXJlIHRoZSByZWFkZXIgd291bGQgc2VlIHRoZSB1cGRhdGVkIHRoZSB0YWlsIHBvaW50ZXIgYmVmb3JlIHRoZQoJICB3cml0ZSBjb3VsZCB3cml0ZSB0aGUgZGF0YSBpbnRvIHRoZSBxdWV1ZS4gRml4IHRoaXMgYnkgaGF2aW5nIGEgc2VwYXJhdGUgcmVhZGVyCgkgIHRhaWwgcG9pbnRlciB0aGF0IGlzIG9ubHkgaW5jcmVtZW50ZWQgYWZ0ZXIgdGhlIHdyaXRlciB3cm90ZSB0aGUgZGF0YS4KCjIwMTItMDItMjQgMTE6MDA6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJhc2V0cmFuc2Zvcm06IGZpeCByZWNvbmZpZ3VyZSBtZXRob2RzCgkgIFJlbmFtZSBnc3RfYmFzZV90cmFuc2Zvcm1fc3VnZ2VzdCB0byBnc3RfYmFzZV90cmFuc2Zvcm1fcmVjb25maWd1cmVfc2luayBiZWNhdXNlCgkgIHRoYXQgaXMgd2hhdCBpdCBkb2VzLiBBbHNvIHJlbW92ZSB0aGUgY2FwcyBhbmQgc2l6ZSBiZWNhdXNlIHRoYXQgaXMgbm90IG5lZWRlZC4KCSAgUmVuYW1lIGdzdF9iYXNlX3RyYW5zZm9ybV9yZWNvbmZpZ3VyZSB0byBnc3RfYmFzZV90cmFuc2Zvcm1fcmVjb25maWd1cmVfc3JjLgoJICBSZW1vdmUgc29tZSBvbGQgdW51c2VkIGNvZGUgaW4gY2Fwc2ZpbHRlci4KCjIwMTItMDItMjQgMTA6MjM6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWV0YTogZmxlc2ggb3V0IHRoZSBtZXRhZGF0YSB0cmFuc2Zvcm0KCSAgRmxlc2ggb3V0IHRoZSB0cmFuc2Zvcm0gbWV0aG9kLiBBZGQgYSB0eXBlIGFuZCBleHRyYSBpbmZvIHRvIHRoZSB0cmFuc2Zvcm0KCSAgZnVuY3Rpb24gc28gdGhhdCBpbXBsZW1lbnRhdGlvbiBjYW4gdHJhbnNmb3JtIHRoZSBtZXRhZGF0YS4KCSAgUmVtb3ZlIHRoZSBjb3B5IGZ1bmN0aW9uIGFuZCByZXBsYWNlIHdpdGggdGhlIG1vcmUgZ2VuZXJpYyB0cmFuc2Zvcm0uCgoyMDEyLTAyLTI0IDEwOjIzOjE3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXRhLnR4dDoKCSAgZG9jczogdXBkYXRlIGRvY3MKCjIwMTItMDItMjMgMDg6NDg6MjIgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIEZpeCBnYXAgaW4gTWFrZWZpbGUKCjIwMTItMDItMjMgMDg6NDg6MTAgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBzcGVsbGluZyBmaXgKCjIwMTEtMTItMjYgMTY6NDU6MjAgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogZml4IHNwZWxsaW5nIG9mIHdyaXRhYmxlCgoyMDEyLTAyLTIzIDE1OjMyOjMzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGFkZCB1c2VyX2RhdGEgdG8gR3N0TWFwSW5mbwoJICBBZGQgZXh0cmEgcG9pbnRlcnMgdG8gR3N0TWFwSW5mbyBzbyB0aGF0IGltcGxlbWVudGF0aW9ucyBjYW4gdXNlIHRoZXNlIHRvIHN0b3JlCgkgIGV4dHJhIGluZm8uCgoyMDEyLTAyLTIzIDE1OjMyOjE5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogaW1wcm92ZSBkb2NzCgoyMDEyLTAyLTIzIDEyOjA5OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkgIFVwZGF0ZSBORVdTIGFuZCBSRUxFQVNFIGFzIHdlbGwKCjIwMTItMDItMjMgMTE6NTk6MjIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiByZW1vdmUgdHJhbnNmb3JtIGxvY2sKCjIwMTItMDItMjMgMTA6MzY6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBCdW1wIHZlcnNpb24gYWZ0ZXIgcmVsZWFzZXMKCjIwMTItMDItMjMgMTE6MDg6MjYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IHJlbW92ZSB0cmFuc2Zvcm0gbG9jawoJICBUaGlzIGlzIG5vdCBuZWVkZWQgYW55bW9yZSBieSB0aGUgYmFzZWNsYXNzLiBzdWJjbGFzc2VzIHNob3VsZCBkbyB0aGVpciBvd24KCSAgbG9ja2luZyB3aGVuIG5lZWRlZC4KCjIwMTItMDItMjMgMTA6MTI6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zOiBjbGVhbnVwcwoJICBDbGVhbiB1cCB0aGUgc2V0Y2FwcyBmdW5jdGlvbi4KCSAgVGhlIHBhc3N0aHJvdWdoIHZhcmlhYmxlIGlzIHByb3RlY3RlZCB3aXRoIHRoZSBvYmplY3QgbG9jay4KCjIwMTItMDItMjIgMTU6MjY6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IGltcHJvdmUgcHJvcG9zZV9hbGxvY2F0aW9uCgkgIEFsd2F5cyBjYWxsIHRoZSBwcm9wb3NlX2FsbG9jYXRpb24gbWV0aG9kIGFuZCBwcm92aWRlIGEgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbgoJICB0aGF0IHBhc3NlcyB0aGUgcXVlcnkgb24gaW4gcGFzc3Rocm91Z2ggbW9kZSBzbyB0aGF0IHN1YmNsYXNzZXMgY2FuIGFsc28gY2FsbAoJICB0aGlzLiBBbHNvIHBhc3MgaWYgdGhlIHRyYW5zZm9ybSBpcyBpbiBwYXNzdGhyb3VnaCBtb2RlIHNvIHRoYXQgdGhlCgkgIGltcGxlbWVudGF0aW9uIGNhbiBhZGp1c3QgaXRzIGFsZ29yaXRobS4KCjIwMTItMDItMjIgMTI6MjQ6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuczogaW1wcm92ZSBmaXhhdGVfY2FwcyBmdW5jdGlvbgoJICBNYWtlIGl0IHBvc3NpYmxlIHRvIGFsc28gaW1wbGVtZW50IG5vbi1pbnBsYWNlIGZpeGF0ZSBmdW5jdGlvbnMuIExldCB0aGUgZml4YXRlCgkgIGZ1bmN0aW9uIG1ha2UgdGhlIGNhcHMgd3JpdGFibGUgd2hlbiBuZWVkZWQgYmVjYXVzZSBzb21lIGZpeGF0ZSBmdW5jdGlvbnMgbWlnaHQKCSAgbm90IG5lZWQgdG8gbW9kaWZ5IHRoZSBjYXBzLgoKMjAxMi0wMi0yMiAwMjowMjo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2JpdHJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy90eXBlZmluZGhlbHBlci5jOgoJICBtZW1vcnk6IG1ha2UgX25ld193cmFwcGVkIHRha2UgdXNlcl9kYXRhIGFuZCBub3RpZnkKCSAgTWFrZSBpdCBwb3NzaWJsZSB0byBjb25maWd1cmUgYSBHRGVzdHJveU5vdGlmeSBhbmQgdXNlcl9kYXRhIGZvcgoJICBnc3RfbWVtb3J5X25ld193cmFwcGVkKCkgdGhpcyBhbGxvd3MgZm9yIG1vcmUgZmxleGlibGUgd3JhcHBpbmcgb2YgZm9yZWlnbgoJICBtZW1vcnkgYmxvY2tzLgoKMjAxMi0wMi0wMiAxMzo0NToyNSAtMDUwMCAgUnlhbiBMb3J0aWUgPGRlc3J0QGRlc3J0LmNhPgoKCSogYXV0b2dlbi5zaDoKCSAgYnVpbGQ6IGF2b2lkIHRvdWNoaW5nIC5wbyBmaWxlcyBkdXJpbmcgJ21ha2UnCgkgIEEgc2ltcGxlIHdvcmthcm91bmQgdG8gZGVhbCB3aXRoIEdOVSBnZXR0ZXh0IGF1dG9tYWtlIGludGVncmF0aW9uCgkgIGZhaWxpbmcgdG8gZGVhbCB3aXRoIGdpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2OTIwNwoKMjAxMi0wMi0yMSAyMTowNjoxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IGRlZmF1bHQgdG8gc3luYy1zdHJlYW1zPXRydWUKCSAgSSB0aGluayB0aGlzIGlzIHRoZSBleHBlY3RlZCBiZWhhdmlvdXIsIGFuZCB3ZSBjb3VsZG4ndCBkbyB0aGlzCgkgIGluIDAuMTAgZm9yIGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5IHJlYXNvbnMsIHNvIGNoYW5nZSBpdCBub3cuCgoyMDEyLTAyLTIxIDE2OjM5OjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgdGVzdHM6IGZpeCBxdWV1ZSB1bml0IHRlc3QgYWZ0ZXIgcXVldWUgY2hhbmdlcwoKMjAxMi0wMi0yMSAxNjozODozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IHJlbW92ZSBzb21lIG9sZCBjb2RlCgoyMDEyLTAyLTIxIDE2OjM3OjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGhhbmRsZSBOVUxMIGNhbGxiYWNrcwoJICBXaGVuIHdlIGhhdmUgYSBtYXRjaGluZyBOVUxMIGNhbGxiYWNrLCBhbHNvIGNvbnNpZGVyIHRoZSAnY2FsbGJhY2snIG1hcnNoYWxsZWQsCgkgIHRoaXMgd2F5IGJsb2NraW5nIHByb2JlcyB3aXRoIGEgTlVMTCBjYWxsYmFjayBhY3R1YWxseSB3b3JrLgoKMjAxMi0wMi0yMSAxMjo1Mjo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IHJlbW92ZSB3ZWlyZCBsaW5rIGJlaGF2aW91cgoJICBSZW1vdmUgdGhlIGxpbmsgZnVuY3Rpb25zIGFuZCBhbHdheXMgc3RhcnQgdGhlIHBhZCB0YXNrIG9uIHRoZSBzcmNwYWQuIElmCgkgIGFwcGxpY2F0aW9ucyBuZWVkIHRvIGF1dG9wbHVnIHRoZXkgY2FuIHB1dCBhIGJsb2NraW5nIHByb2JlIG9uIHRoZSBzcmNwYWQgbGlrZQoJICB0aGV5IHdvdWxkIHdpdGggYW55IG90aGVyIGVsZW1lbnQuCgoyMDEyLTAyLTIxIDEyOjUyOjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGZha2VzcmM6IGhhbmRsZSBwdHMvZHRzCgoyMDEyLTAyLTIxIDEyOjQ2OjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBmYWtlc2luazogcmVtb3ZlIGN1c3RvbSBtYXJzaGFsbGVyCgoyMDEyLTAyLTIxIDEyOjQzOjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogYWxzbyBkZWJ1ZyBkdHMvcHRzCgoyMDEyLTAyLTIxIDEyOjEzOjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBmYWtlc2luazogZGVidWcgcHRzIGFuZCBkdHMKCjIwMTItMDItMjEgMTI6MTI6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiByZW1vdmUgY3VzdG9tIG1hcnNoYWxsZXIKCjIwMTEtMTEtMjQgMTg6NDA6NDAgKzAxMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIFVuaXQgdGVzdCBmb3IgcXVldWUgc3JjIGNhcHMgbm90aWZpY2F0aW9uCgoyMDEyLTAyLTIwIDE0OjM3OjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgdGVzdHM6IGZpeCB1c2VsZXNzIHNlZ21lbnQgdGVzdAoKMjAxMi0wMi0yMCAxNDoyOTozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IGRvbid0IHVzZSBkdXJhdGlvbiBpbiBjbGlwcGluZwoJICBEb24ndCB1c2UgdGhlIGR1cmF0aW9uIGluIHRoZSBzZWdtZW50IGZvciBjYWxjdWxhdGluZyBjbGlwcGluZyB2YWx1ZXMuCgkgIFRoZSBkdXJhdGlvbiBpcyBleHByZXNzZWQgaW4gc3RyZWFtIHRpbWUgYW5kIGNsaXBwaW5nIGlzIGRvbmUgb24gdW5yZWxhdGVkCgkgIHRpbWVzdGFtcCB2YWx1ZXMuCgkgIFRoaXMgdXNlZCB0byBiZSBpbnRlcmVzdGluZyBmb3IgZWxlbWVudHMgdGhhdCB1c2VkIHRoZSBzZWdtZW50IHN0cnVjdHVyZSB0bwoJICBpbXBsZW1lbnQgc2Vla2luZyBiZWNhdXNlIHRoZW4gdGhleSB3b3VsZCB1c2Ugc3RyZWFtLXRpbWUgZm9yIHRoZSBzZWdtZW50CgkgIHN0YXJ0L3N0b3AgdmFsdWVzIGFuZCB0aGUgZHVyYXRpb24gY291bGQgYmUgdXNlZCBhcyBhIGZhbGxiYWNrIHdoZW4gdGhlIHN0b3AKCSAgcG9zaXRpb24gd2FzIG5vdCBzZXQuIE5vdyB0aGF0IHRoZSBjb21wbGV0ZSBzZWdtZW50IGV2ZW50IGlzIHBhc3NlZCBiZXR3ZWVuCgkgIGVsZW1lbnRzIHdlIGNhbm5vdCBkbyB0aGlzIGFueW1vcmUgYmVjYXVzZSBzb21lIGVsZW1lbnRzIG1pZ2h0IHN0b3JlIHRoZQoJICBkdXJhdGlvbiBhbmQgc3RhcnQvc3RvcCB2YWx1ZXMgd2l0aCBkaWZmZXJlbnQgdGltZSBiYXNlcyBpbiB0aGUgc2VnbWVudC4KCjIwMTItMDItMjAgMTQ6MjI6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBkZWJ1ZyBzZWdtZW50IGR1cmF0aW9uIGFzIHdlbGwKCjIwMTItMDItMjAgMTE6NDY6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogY29weSBtZXRhZGF0YSB3aGVuIHVzaW5nIGEgcG9vbAoJICBhbHNvIGNvcHkgdGhlIG1ldGFkYXRhIHdoZW4gd2UgYWxsb2NhdGVkIGEgbmV3IGJ1ZmZlciBmcm9tIGEgcG9vbAoKMjAxMi0wMS0yNiAwMzowMjo0OCAtMDUwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6CgkgIG5ldHRpbWVwYWNrZXQ6IGZpeCBwcmludGYgZm9ybWF0IHdhcm5pbmcgaW4gZGVidWcgbWVzc2FnZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0NDkxCgoyMDEyLTAyLTE4IDAxOjA0OjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGZpeCBtb3JlIGRvY3MKCjIwMTItMDItMTcgMTU6NTM6NTggLTA4MDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgZG9jIGZpeHVwcwoKMjAxMi0wMi0xNyAxNTowOTo1NiAtMDgwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogTW92ZSB2YXJpYWJsZSBhbmQgYXNzaWdubWVudCB0byB3aGVyZSBpdCdzIG5lZWRlZAoKMjAxMi0wMi0xNyAxNTowOTowNiAtMDgwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogSGFuZGxlIHJldHVybiB2YWx1ZSBvZiBkZWNpZGVfYWxsb2NhdGlvbiB2bWV0aG9kCgkgIElmIGl0IGZhaWxzLCBwcm9wZXJseSBwcm9wYWdhdGUgdGhlIGVycm9yCgoyMDEyLTAyLTE3IDE1OjA4OjMyIC0wODAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogUmVtb3ZlIHVzZWxlc3MgYXNzaWdubWVudAoKMjAxMi0wMi0xNyAxNTowNzo1NiAtMDgwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IEdyYWNlZnVsbHkgaGFuZGxlIE5VTEwgR3ZhbHVlCgkgIEF2b2lkcyB1bnJlZmVyZW5jaW5nIE5VTEwgcG9pbnRlcgoKMjAxMi0wMi0xOCAwMDowMzo0MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBtYWtlIHNvbWUgZXJyb3JzIGNyaXRpY2FsCgkgIFdoZW4gd2UgaGF2ZSBubyBjaGFpbiBmdW5jdGlvbiBvciB3aGVuIHdlIGFyZSBvcGVyYXRpbmcgdGhlIHBhZCBpbiB0aGUgd3JvbmcKCSAgbW9kZSwgZW1pdCBhIGNyaXRpY2FsIGluc3RlYWQgb2YgcG9zdGluZyBhbiBlcnJvciBtZXNzYWdlLiBUaGlzIGlzIGNlcnRhaW5seSBhCgkgIHByb2dyYW1taW5nIGVycm9yIGFuZCB3ZSBjYW5ub3QgYWx3YXlzIHBvc3QgYSBtZXNzYWdlIChsaWtlIHdoZW4gdGhlIHBhZCBoYXMgbm8KCSAgcGFyZW50KQoKMjAxMi0wMi0xOCAwMDowMzoxMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGFsc28gZGVidWcgcG9zaXRpb24gb2Ygc2VnbWVudAoKMjAxMi0wMi0xNyAyMzo1OToyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgd2luMzI6IGJhY2sgdG8gZGV2ZWxvcG1lbnQKCjIwMTItMDItMTcgMTE6MDI6NDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogYmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMC4xMS4yID09PQoKMjAxMi0wMi0xNyAxMTowMToxNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSRUxFQVNFIDAuMTEuMgoKMjAxMi0wMi0xNSAxNzoxMjowOSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHR3ZWFrIHNvbWUgZG9jdW1lbnRhdGlvbgoKMjAxMi0wMi0xNSAxNzoxMTo1NCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHNpbXBsaWZ5IGFuZCBpbXByb3ZlIGZyYW1lIHN0YXRlIGhhbmRsaW5nCgkgIFVzZSBhIGZyYW1lIGZsYWcgdG8gc2lnbmFsIHRvIHN1YmNsYXNzIGl0IHNob3VsZCByZXNldCBhbnkgcmV0YWluZWQKCSAgc3RhdGUgdy5yLnQuIGZyYW1lIHBhcnNpbmcgc2luY2UgdGhlIGZyYW1lIGJlaW5nIHBhc3NlZCBpcyAnbmV3JywKCSAgaS5lLiBub3QgcmVsYXRlZCB0byBwcmV2aW91c2x5IHBhc3NlZCBhbmQgcHJvY2Vzc2VkIGRhdGEuCgoyMDEyLTAyLTE1IDEzOjE1OjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBkb24ndCBsZWFrIGV2ZW50CgkgIEluIHRoZSB1bmxpa2VseSBjYXNlIHdoZXJlIHRoZSBzdWJjbGFzcyBzZXQgdGhlIGV2ZW50IGZ1bmN0aW9uIHRvIE5VTEwsIGRvbid0CgkgIGxlYWsgdGhlIGV2ZW50LgoKMjAxMi0wMi0xNSAxMjoxOToxMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbWFrZSBhY3RpdmF0aW9uIGNvZGUgbW9yZSBsaWtlIG90aGVyCgkgIE1ha2UgdGhlIHBhZCBhY3RpdmF0aW9uIGNvZGUgbG9vayBtb3JlIGxpa2Ugb3RoZXIgYWN0aXZhdGlvbiBjb2RlLgoJICBPbmx5IHN0YXJ0IHRoZSBzaW5rcGFkIHRhc2sgd2hlbiB3ZSBkZWNpZGUgdG8gYWN0aXZhdGUgaW4gcHVsbCBtb2RlLCB3aGVuIHdlCgkgIGxhdGVyIGFkZCBzcmNwYWQgcHVsbG1vZGUgdGhpcyB3aWxsIGJlIG5lZWRlZC4KCjIwMTItMDItMTUgMTI6MTg6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBhZGQgbW9yZSBkZWJ1ZwoKMjAxMi0wMi0xNSAxMToxMToxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYWRkIHNvbWUgbW9yZSBkZWJ1ZwoKMjAxMi0wMi0xNSAxMDo1ODowOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHRyYWNrIGNvbnN1bWVkIGlucHV0IHNpemUKCSAgLi4uIGFzIHVzZWQgYnkgc3Vic2VxdWVudCBpbnB1dCBkYXRhIHJhdGUgZXN0aW1hdGlvbiAoYW5kIHNlZWtpbmcpLgoKMjAxMi0wMi0xNSAxMDoxMTozNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogY2hhaW4gdXAgdG8gcGFyZW50IGZvciBkZWZhdWx0cwoJICBDaGFpbiB1cCB0byB0aGUgcGFyZW50IGluc3RlYWQgb2YgdXNpbmcgdGhlIEZBTFNFIHJldHVybiB2YWx1ZSBmcm9tIHRoZSBldmVudAoJICBmdW5jdGlvbiAoYmVjYXVzZSBpdCdzIG90aGVyd2lzZSBpbXBvc3NpYmxlIHRvIHJldHVybiBhbiBlcnJvcikuCgoyMDEyLTAyLTE1IDEwOjEwOjUzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGRvbid0IGlnbm9yZSByZXR1cm4gdmFsdWUgd2hlbiBzdGFydGluZyBhIHRhc2sKCjIwMTItMDItMTQgMjA6MTc6MzcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBSZXZlcnQgImJhc2VwYXJzZTogcmVhbGx5IHByb3ZpZGUgdXBzdHJlYW0gdHMgdG8gc3ViY2xhc3MiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMjM2MzQ5MGVmNWE5ZmU4ZDQxNDM2OWQyNGZjYWE2NWE5ZGZhODNhYy4KCjIwMTItMDItMTQgMTk6MzM6NTAgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZW1vdmUgZGVhZCBjb2RlIGFuZCBzdXBlcmZsdW91cyBsb29wIGxldmVsCgoyMDEyLTAyLTE0IDE5OjMzOjQ2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbW9kaWZ5IHJldmVyc2UgcGxheWJhY2sgaGFuZGxpbmcKCSAgLi4uIHNvIGFzIHRvIGFsbG93IHRoZSBwdXNoLW1vZGUgY2FzZSB0byBwcm92aWRlIGRhdGEgdG8gc3ViY2xhc3MKCSAgb24gYSBidWZmZXIgYnkgYnVmZmVyIGJhc2lzIChhcyBpbiByZWd1bGFyIGZvcndhcmQgY2FzZSksIHJhdGhlcgoJICB0aGFuIGFsbCBidWZmZXJzIG9mIGEgZnJhZ21lbnQgY2h1Y2tlZCB0b2dldGhlci4KCSAgQWxzbyByZWZhY3RvciBidWZmZXIgaGFuZGxpbmcgc29tZSBtb3JlLCBhbmQgYWRkIHNvbWUgZGVidWcuCgoyMDEyLTAyLTE0IDE5OjMzOjMzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVhbGx5IHByb3ZpZGUgdXBzdHJlYW0gdHMgdG8gc3ViY2xhc3MKCjIwMTItMDItMTQgMTM6MjQ6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogY2xlYW4gdXAgc3JjIHF1ZXJ5IGhhbmRsZXIKCjIwMTItMDItMTQgMTI6NTc6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogcGFzcyByZXN1bHRzIGZyb20gYWN0aXZhdGlvbgoKMjAxMi0wMi0xNCAxMDozNTowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTItMDItMTQgMTA6MzA6NDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGRlZnM6IHVwZGF0ZQoKMjAxMi0wMi0xMyAxODoyMjozNyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IG1vZGlmeSBBUEkgdG8gYSBfZmluaXNoX2ZyYW1lIGJhc2VkIGFwcHJvYWNoCgkgIC4uLiB3aGljaCBhbGlnbnMgaXQgd2l0aCBvdGhlciBiYXNlY2xhc3MgaW4gdGhlIHdpbGQsIGFuZCBzaG91bGQgZ2l2ZQoJICBjb252ZXJ0ZXIgcGFyc2VycyBhIGJpdCBjbGVhbmVyIGZyZWVkb20uCgoyMDEyLTAyLTEzIDE4OjA5OjUxICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IHJldmVyc2UgcGxheWJhY2sKCSAgLi4uIGVzcGVjaWFsbHkgZm9yIGFsbC1rZXlmcmFtZSAoYXVkaW8pIGNhc2VzLgoKMjAxMi0wMi0xMyAxNjozMzowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZW1vcnk6IG1vcmUgd29yayBvbiByZWZjb3VudCBhbmQgd3JpdGFiaWxpdHkKCSAgUmVuYW1lIF9pc193cml0YWJsZSgpIHdpdGggX2lzX2V4Y2x1c2l2ZSBiZWNhdXNlIHRoZSB3cml0YWJpbGl0eSBkb2VzIG5vdCBkZXBlbmQKCSAgb24gdGhlIGFtb3VudCBvZiByZWZlcmVuY2VzIHRvIHRoZSBtZW1vcnkgb2JqZWN0IGFueW1vcmUuCgkgIEFkZCBhY2Nlc3NvciBtYWNyb3MgZm9yIHRoZSBtZW1vcnkgZmxhZ3MuCgkgIFJlbmFtZSB0aGUgR3N0QnVmZmVyIF9wZWVrX21lbW9yeSgpIG1ldGhvZCB0byBfZ2V0X21lbW9yeSgpIGFuZCByZXR1cm4gYQoJICByZWZlcmVuY2UgdG8gdGhlIG1lbW9yeSBub3cgdGhhdCB3ZSBjYW4gZG8gdGhpcyB3aXRob3V0IGFmZmVjdGluZyB3cml0YWJpbGl0eQoJICBvZiB0aGUgbWVtb3J5IG9iamVjdC4gTWFrZSBpdCBwb3NzaWJsZSB0byBhbHNvIG1ha2UgdGhpcyBmdW5jdGlvbiBtZXJnZSB0aGUKCSAgYnVmZmVyIG1lbW9yeS4KCSAgQWRkIG1ldGhvZHMgdG8gcmVwbGFjZSBtZW1vcnkgaW4gYSBidWZmZXIuIE1ha2Ugc29tZSBjb252aWVuY2UgbWFjcm9zIGZvciB0aGUKCSAgYnVmZmVyIG1lbW9yeSBmdW5jdGlvbnMuCgkgIEZpeCB1bml0IHRlc3RzLgoKMjAxMi0wMi0xMyAxNzoyMjo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWY6IHVwZGF0ZQoKMjAxMi0wMi0xMyAxNToxODoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmg6CgkgIG1ldGE6IGZpeCB0eXBvcwoKMjAxMi0wMi0xMiAyMToxNzo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgIGRvY3M6IGFkZCBhIHBhcmFncmFwaCBhYm91dCB0aGUgU1RSRUFNIENPTkZJRyBldmVudCB0byB0aGUgZGVzaWduIGRvY3MKCjIwMTItMDItMTIgMjE6MDQ6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogbWFrZSBfcGFyc2VfbnRoX3N0cmVhbV9jb25maWdfaGVhZGVyKCkgYW5kIF9wYXJzZV9zZXR1cF9kYXRhKCkgcmV0dXJuIGEgYm9vbGVhbgoJICBBcyB0aGV5IGNhbiBmYWlsIChvbmx5IG9uZSBvZiBzdHJlYW0gaGVhZGVycyBvciBzZXR1cCBkYXRhCgkgIGlzIHVzdWFsbHkgcHJlc2VudCkuCgoyMDEyLTAyLTEyIDIwOjUxOjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IHJlbmFtZSBnc3RfZXZlbnRfe3NldCxwYXJzZX1fc3RyZWFtX2NvbmZpZ19jb2RlY19kYXRhKCkgdG8gX3NldHVwX2RhdGEoKQoJICBNb3JlIGdlbmVyaWMuCgoyMDEyLTAyLTEwIDE1OjAzOjAzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMi0wMi0xMCAxNDo1ODoxMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgY2xlYW4gdXAgb2JqZWN0IGluaXQKCSAgTWFrZSBhbiBfaW5pdCBtZXRob2Qgd2hlcmUgdGhlIHBhcmVudCBtaW5pLW9iamVjdCBhbmQgb3RoZXIgZmllbGRzIGFyZQoJICBpbml0aWFsaXplZC4KCSAgQ2hlY2sgdGhhdCB0aGUgcGFzc2VkIHN0cnVjdHVyZSBkb2Vzbid0IGFscmVhZHkgaGF2ZSBhIHBhcmVudC4KCSAgVXNlIHRoZSBfbmV3X2N1c3RvbSAoKSBjb25zdHJ1Y3RvcnMKCjIwMTItMDItMDcgMTE6Mjg6NDEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBiaXRyYXRlIG1lY2hhbmljcyBzaG91bGQgbm90IGRlYWwgd2l0aCBkdXJhdGlvbiB1cGRhdGUKCSAgLi4uIHNpbmNlIHRoYXQgaXMgYWxyZWFkeSBoYW5kbGVkIGJ5IF91cGRhdGVfZHVyYXRpb24sIG9yIHNob3VsZCBub3QgYmUgZG9uZQoJICBhbHRvZ2V0aGVyIGlmIHRoZSBkdXJhdGlvbiBpcyBkZXRlcm1pbmVkIGJ5IG5vbi1lc3RpbWF0ZWQgbWVhbnMuCgkgIEZpeGVzICM2Njk1MDIuCgoyMDEyLTAyLTEwIDEyOjQ1OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgZG9jczogcHVzaF9ldmVudCBkb2Vzbid0IHJldHVybiBhIGZsb3cgdmFsdWUgYWZ0ZXIgYWxsCgoyMDEyLTAyLTEwIDEyOjA1OjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHNpbGVuY2UgcHJvYmUgZGVidWcgYSBsaXR0ZQoKMjAxMi0wMi0xMCAxMToyNDoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGltcGxlbWVudCBmYXN0ZXIgQUNDRVBUX0NBUFMgcXVlcnkKCjIwMTItMDItMTAgMTE6MDk6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdDogYWRkIHNvbWUgcGVyZm9ybWFuY2UgbG9nZ2luZwoJICBBZGQgc29tZSBwZXJmb3JtYW5jZSBsb2dnaW5nIGZvciBjYXBzIGNvcHkgYW5kIHRoZSBzbG93IGRlZmF1bHQgYWNjZXB0Y2FwcwoJICBpbXBsZW1lbnRhdGlvbgoKMjAxMi0wMS0xNCAxOToxNjowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LW1ldGFkYXRhLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJwb29sLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXRyYW5zZm9ybS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1sYXRlbmN5LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXRhLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvYmVzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1xdWVyeS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2VnbWVudHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbXMudHh0OgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZG9jczogdXBkYXRlIGFuZCBpbXByb3ZlIGRvY3MKCjIwMTItMDItMDkgMDA6MTQ6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXRpbHM6IHJlbW92ZSBnc3RfZWxlbWVudF9jbGFzc19pbnN0YWxsX3N0ZF9wcm9wcygpCgkgIEl0J3Mgb25seSB1c2VkIGluIG9uZSBwbGFjZSAocnRtcCksIGFuZCB0aGVyZSBub3QgdmVyeSB3ZWxsLgoKMjAxMi0wMi0wOCAyMzo0Nzo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGZha2VzcmMsIGlkZW50aXR5LCBmYWtlc2luazogZG8gbm90IGdlbmVyYXRlIGxhc3QtbWVzc2FnZSB1cGRhdGVzIGJ5IGRlZmF1bHQKCSAgRGVmYXVsdCB0byBub3QgY3JlYXRpbmcgbG90cyBvZiBvdmVyaGVhZCBieSBkb2luZyBhIGNvdXBsZSBvZgoJICBnX3N0cmR1cF9wcmludGYoKS9nX2ZyZWUoKSBwZXIgYnVmZmVyIG9yIGV2ZW50IGp1c3QgdG8gZ2VuZXJhdGUKCSAgYSBsYXN0LW1lc3NhZ2UgdXBkYXRlIHRoYXQgcmFyZWx5IGFueW9uZSBsaXN0ZW5zIHRvLiBUaGlzIG1lYW5zCgkgIHRoYXQgeW91IG5lZWQgdG8gZW5hYmxlIHNpbGVudD10cnVlIGV4cGxpY2l0bHkgaW4gb3JkZXIgdG8gZ2V0CgkgIGxhc3QtbWVzc2FnZSBkdW1wcyBpbiBnc3QtbGF1bmNoIC12IG5vdy4gT24gdGhlIHVwc2lkZSwgcGVvcGxlCgkgIHdvbid0IGluYWR2ZXJ0ZW50bHkgZW5kIHVwIGJlbmNobWFya2luZyBnX3N0cmR1cF9wcmludGYoKQoJICBwZXJmb3JtYW5jZSBpbnN0ZWFkIG9mIGdzdHJlYW1lciBkYXRhIGhhbmRsaW5nIHBlcmZvcm1hbmNlIGFueQoJICBtb3JlLgoJICBNYXliZSB0aGUgc2lsZW50IHByb3BlcnR5IHNob3VsZCBiZSByZW5hbWVkIHRvIGVuYWJsZS1sYXN0LW1lc3NhZ2UKCSAgb3Igc29tZXRoaW5nIGxpa2UgdGhhdD8KCjIwMTItMDItMDggMTU6MTY6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0bWFyc2hhbC5jOgoJKiB3aW4zMi9jb21tb24vZ3N0bWFyc2hhbC5oOgoJICBHU1RfRkxPV19XUk9OR19TVEFURSAtPiBHU1RfRkxPV19GTFVTSElORwoKMjAxMi0wMi0wOCAxNTozNDoyOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiB1c2UgZGVmYXVsdCBxdWVyeSBmdW5jdGlvbiB0byBvcHRpb25hbGx5IGZvcndhcmQgcXVlcnkKCSAgLi4uIHJhdGhlciB0aGFuIHF1ZXJ5aW5nIHBlZXIgdW5jb25kaXRpb25hbGx5IHdpdGggcG9zc2libHkgdW5kZXNpcmFibGUKCSAgb3V0Y29tZSBpbiBjYXNlIG9mIGUuZy4gU0NIRURVTElORyBxdWVyeS4KCjIwMTItMDItMDggMTU6MDM6NTYgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBjbGVhbiB1cCBhIGZldyBtaW5vciBleHRyYW5lb3VzIHRva2VucwoKMjAxMi0wMi0wNyAxMjo0ODo1MCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlbW92ZSBjbG9zaW5nIHNlZ21lbnQgaGFuZGxpbmcKCjIwMTItMDItMDggMTQ6NDU6MjUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDEyLTAyLTA4IDE0OjMyOjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGZpeCByYWNlIGluIHBhZCBtb2RlIGNoYW5nZQoJICBGaXhlcyAjNjY4OTA5IGFuZCBwcmVzdW1hYmx5IGFsc28gIzY2OTQ4MwoKMjAxMi0wMi0wOCAxMjo1NzoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBlcnJvciB3aGVuIGFjdGl2YXRpb24gbW9kZSBpcyB3cm9uZwoJICBQb3N0IGFuIGVycm9yIHdoZW4gd2UgdHJ5IHRvIHB1c2ggb24gYSBwYWQgYWN0aXZhdGVkIGluIHB1bGwgbW9kZSBhbmQgcHVsbCBvbiBhCgkgIHBhZCBpbiBwdXNoIG1vZGUuCgoyMDEyLTAyLTA4IDA5OjMwOjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGNsb2NrOiByZW1vdmUgbWV0aG9kIGRlY2xhcmF0aW9uIHRvbwoKMjAxMi0wMi0wNyAxMzo0MToyMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgY2xvY2s6IHJlbW92ZSB1bmltcGxlbWVudGVkIHN0YXRzIHByb3BlcnR5IHdoaWxlIHdlIGNhbgoKMjAxMi0wMi0wNyAxMDo0NDowNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBmYWtlc3JjOiByZW1vdmUgY3VzdG9tIG1hcnNoYWxsZXIKCSAgUmVtb3ZlIG91ciBjdXN0b20gbWFyc2hhbGxlci4KCSAgTWFrZSB0aGUgYnVmZmVyIGluIHRoZSBoYW5kb2ZmIHNpZ25hbCBzdGF0aWNfc2NvcGUgc28gdGhhdCBpdCBpcyBhY3R1YWxseQoJICB3cml0YWJsZS4KCjIwMTItMDItMDYgMDk6NDY6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0OiBpbXByb3ZlIGRlYnVnZ2luZwoKMjAxMi0wMS0wNCAxNzoxMDoxNSArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBmaXggY29tcGlsYXRpb24gd2l0aCAtLWRpc2FibGUtcmVnaXN0cnkKCSAgX19yZWdpc3RyeV9yZXVzZV9wbHVnaW5fc2Nhbm5lciBpcyBvbmx5IGRlZmluZWQgd2hlbgoJICBHU1RfRElTQUJMRV9SRUdJU1RSWSBpcyBub3QgZGVmaW5lZC4KCSAgZ3N0cmVnaXN0cnkuYzogSW4gZnVuY3Rpb24gJ2dzdF9yZWdpc3RyeV9zY2FuX3BsdWdpbl9maWxlJzoKCSAgZ3N0cmVnaXN0cnkuYzoxMTMxOjg6IGVycm9yOiAnX19yZWdpc3RyeV9yZXVzZV9wbHVnaW5fc2Nhbm5lcicgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjcyODQKCjIwMTItMDItMDIgMTc6MTg6MjIgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IHJlc2V0IHRoZSBFT1MgZGV0ZWN0aW9uIG1hY2hpbmVyeSBhZnRlciBzZW5kaW5nIGFuIEVPUyBtZXNzYWdlCgkgIFRoaXMgd2lsbCBhbGxvdyBkZXRlY3RpbmcgZnVydGhlciBFT1MsIGZvciBpbnN0YW5jZSBhZnRlciBsb29waW5nCgkgIGEgc3RyZWFtIHdpdGhvdXQgY2hhbmdpbmcgc3RhdGVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY4Mjg5CgoyMDEyLTAxLTA3IDIzOjAwOjEyIC0wNTAwICBSeWFuIExvcnRpZSA8ZGVzcnRAZGVzcnQuY2E+CgoJKiBhdXRvZ2VuLnNoOgoJICBhdXRvZ2VuLnNoOiBhbGxvdyBjYWxsaW5nIGZyb20gb3V0LW9mLXRyZWUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzY2NAoKMjAxMi0wMi0wMiAxNjo1OToxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0cmFjZS5jOgoJICB0cmFjZTogcHJpbnQgY2FwcyBpbiBkdW1wCgoyMDEyLTAyLTAyIDE2OjA0OjEwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZQoKMjAxMi0wMi0wMiAxNTo1Nzo0OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBhZGQgZGVidWcgYW5kIHRyYWNlIGZvciBHc3RNZW1vcnkKCjIwMTItMDItMDIgMTU6NTU6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3R0cmFjZS5jOgoJICB0cmFjZTogZG9uJ3QgY2hlY2sgcmFuZG9tIHBvaW50ZXJzIGZvciBvYmplY3RzCgkgIE9ubHkgc2VlIGlmIHRoZSB0cmFjZWQgcG9pbnRlciBpcyBhIEdPYmplY3Qgd2hlbiBpdCB3YXMgcmVnaXN0ZXJlZCB3aXRoIHRoZQoJICBzcGVjaWFsIG9mZnNldCBvZiAtMi4KCjIwMTItMDItMDIgMTU6NTQ6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSAgVXBkYXRlIGRlYnVnIGNhdGVnb3JpZXMKCSAgUmVtb3ZlIHNvbWUgY2F0ZWdvcmllcyBtYXJrZWQgZm9yIGRlbGV0aW9uLgoJICBBZGQgYSBjYXRlZ29yeSBmb3IgR3N0TWVtb3J5LgoKMjAxMi0wMi0wMiAxNTo1MjoxOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1ldGEuaDoKCSogZ3N0L2dzdHNhbXBsZS5oOgoJICByZW1vdmUgVFJBQ0VfTkFNRSBmcm9tIGhlYWRlcnMKCjIwMTItMDItMDIgMTM6MTc6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogYWRkIG5ldyB0ZXN0CgoyMDEyLTAyLTAyIDEzOjE1OjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBkZW50aXR5OiByZW1vdmUgcHJlcGFyZV9vdXRwdXRfYnVmZmVyCgkgIENvcnJlY3RseSBtYXJrIHBhc3N0aHJvdWdoIG9uIHRoZSBiYXNlY2xhc3Mgc28gdGhhdCBpdCBjYW4gY29ycmVjdGx5IGRvIHRoZQoJICBhbGxvY2F0aW9uIG9mIHRoZSBvdXRwdXQgYnVmZmVycy4KCSAgUmVtb3ZlIG91ciBjdXN0b20gcHJlcGFyZV9vdXRwdXRfYnVmZmVyIGZ1bmN0aW9uIG5vdyB0aGF0IHRoZSBiYXNlY2xhc3MgaXMKCSAgc21hcnRlci4KCjIwMTItMDItMDIgMTM6MTA6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogaW1wcm92ZSBwcmVwYXJlX291dHB1dF9idWZmZXIKCSAgQ2xlYW4gdXAgdGhlIHByZXBhcmVfb3V0cHV0X2J1ZmZlciBmdW5jdGlvbi4KCSAgUmV1c2UgdGhlIGlucHV0IGJ1ZmZlciB3aGVuIGl0IGlzIHdyaXRhYmxlIGFuZCB3aGVuIGRvaW5nIGFuCgkgIGluLXBsYWNlIGJ1dCBub24tcGFzc3Rocm91Z2ggdHJhbnNmb3JtLgoJICBNb3ZlIHRoZSBjb3B5LW1ldGFkYXRhIGZ1bmN0aW9uIGNhbGwgdG8gdGhlIHByZXBhcmVfb3V0cHV0X2J1ZmZlciBkZWZhdWx0CgkgIGZ1bmN0aW9uLiBJZiBzdWJjbGFzc2VzIGltcGxlbWVudCBhIGN1c3RvbSBwcmVwYXJlX291dHB1dF9idWZmZXIsIHRoZXkgbXVzdCBhbHNvCgkgIGNvcHkgdGhlIG1ldGFkYXRhIHRoZW1zZWx2ZXMuCgkgIFJlbW92ZSBhIHVzZWxlc3MgbWVtb3J5IGNvcHkgYmVjYXVzZSBwcmVwYXJlX291dHB1dF9idWZmZXIgYWxyZWFkeSBkaWQgdGhhdC4KCjIwMTItMDItMDIgMTI6MzI6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBvbmx5IG1hcCB3aGVuIHVzaW5nIHRoZSBtZW1vcnkKCjIwMTItMDItMDIgMTI6MzI6MDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBwbHVnaW5zOiBwcm94eSBhbGxvY2F0aW9uIHF1ZXJ5CgoyMDEyLTAyLTAyIDEyOjMwOjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHNpbXBsaWZ5IGNvZGUKCSAgV2UgYWxyZWFkeSBjaGVja2VkIHBhc3N0aHJvdWdoIGEgZmV3IGxpbmVzIGFib3ZlLgoKMjAxMi0wMi0wMiAxMjowNzoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGFkZCBzb21lIHBlcmZvcm1jZSBkZWJ1ZyBpbmZvCgkgIEFkZCBzb21lIFBFUkZPUk1BTkNFIGRlYnVnIGxpbmVzIHdoZXJlIHdlIGNvcHkgYW5kIGRvIG90aGVyIHN1Ym9wdGltYWwgdGhpbmdzLgoKMjAxMi0wMi0wMiAxMjowNTozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCBmbGFnIHRvIHByb3h5IGFsbG9jYXRpb24gcXVlcnkKCSAgQWRkIGEgZmxhZyB0byBmb3JjZSB0aGUgZGVmYXVsdCBxdWVyeSBoYW5kbGVyIHRvIGZvcndhcmQgdGhlIGFsbG9jYXRpb24gcXVlcnkKCSAgaW5zdGVhZCBvZiBkaXNjYXJkaW5nIGl0LgoJICBSZW9yZGVyIHRoZSBwYWQgZmxhZ3MgYSBiaXQuCgoyMDEyLTAyLTAyIDAxOjMwOjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSogdGVzdHMvY2hlY2svbGlicy90eXBlZmluZGhlbHBlci5jOgoJICB0eXBlZmluZDogcGFzcyBleHRlbnNpb25zIGFzIGNvbW1hLXNlcGFyYXRlZCBsaXN0IGluIGEgc2ltcGxlIHN0cmluZwoJICBGaXggYW5ub3lpbmcgZ3N0X3R5cGVfZmluZF9yZWdpc3RlcigpIGZ1bmN0aW9uIHNpZ25hdHVyZS4gQSBzaW1wbGUKCSAgc3RyaW5nIHdpdGggY29tbWEtc2VwYXJhdGVkIGV4dGVuc2lvbnMgd29ya3MganVzdCBhcyB3ZWxsIGFuZCBzYXZlcwoJICBsaW5lcyBvZiBjb2RlLCBjYXN0cywgcmVsb2NhdGlvbnMgYW5kIHVsdGltYXRlbHkga2l0dGVucy4KCjIwMTItMDEtMzEgMTc6NDE6MTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZml4IHJhY2UgaW4gc3RhcnR1cAoJICBNYXJrIHJlbmVnb3RpYXRlIGJlZm9yZSBzdGFydGluZyB0aGUgcHVzaGluZyB0aHJlYWQuCgkgIERvIGFsc28gY2hlY2sgaWYgd2UgYXJlIHN0YXJ0aW5nIGluIHRoZSBnZXRfcmFuZ2UgZnVuY3Rpb24uCgoyMDEyLTAxLTMxIDE2OjI3OjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogZG9uJ3QgY3Jhc2ggb24gbWlzc2luZyB0ZW1wbGF0ZQoJICBTb21lIHJlcXVlc3QgcGFkcyBkb24ndCBoYXZlIGEgcGFkdGVtcGxhdGUgKG1vc3RseSB0aG9zZSBmcm9tIGVuY29kZWJpbikuIEF2b2lkCgkgIGNyYXNoaW5nIGluIHRoaXMgY2FzZS4KCjIwMTItMDEtMzEgMTI6MjA6NDEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci90ZXh0LWNvbG9yLWV4YW1wbGUuYzoKCSAgY29udHJvbGxlcjogY29uc3RydWN0dXJlcyBmb3IgY29udHJvbCBzb3VyY2VzIHJldHVybiBHc3RDb250cm9sU291cmNlCgkgIERvbid0IHJldHVybiB0aGUgc3BlY2lmaWMgdHlwZXMuIEluIG1vc3QgY2FzZXMgdGhlcmUgaXMgbm8gc3BlY2lmaWMgYXBpIHRoZXJlCgkgIGFueXdheS4KCjIwMTItMDEtMzEgMTI6MTA6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIGRvbid0IGRvIGxvZ2ljIGluIGdfYXNzZXJ0Li4uCgoyMDEyLTAxLTMwIDE5OjE3OjAwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci90ZXh0LWNvbG9yLWV4YW1wbGUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICBjb250cm9sbGVyOiByZW5hbWUgY29udHJvbC1iaW5kaW5ncwoJICBnc3RfY29udHJvbF9iaW5kaW5nX3h4eCAtPiBnc3RfeHh4X2NvbnRyb2xfYmluZGluZyBmb3IgY29uc2lzdGVuY3kuCgoyMDEyLTAxLTMwIDE0OjQ4OjQ0IC0wMjAwICBKb8OjbyBQYXVsbyBQaXphbmkgRmxvciA8am9hb3BpemFuaUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cHJlc2V0Lmg6CgkgIEZpeGVzIHRoZSBsYWNrIG9mIGFuIGluY2x1ZGUgZGlyZWN0aXZlIGluIGdzdC9nc3RwcmVzZXQuaAoJICBJdCBibG9ja2VkIHRoZSBidWlsZCBvZiBleHRlcm5hbCBsaWJyYXJpZXMgZGVwZW5kaW5nIG9uIGdzdHJlYW1lci1jb3JlIChuYW1lbHksIGdzdHJlYW1lcm1tKS4KCSAgQ29tcGxldGUgYnVnIHJlcG9ydCBhdCBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY5MDM2CgoyMDEyLTAxLTMwIDE4OjE3OjM0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbHNvdXJjZTogc2luayB0aGUgZmxvYXRpbmcgcmVmCgkgIGNvbnRyb2wgc291cmNlcyBjYW4gYmUgdXNlZCBvbiBzZXZlcmFsIGNvbnRyb2wgYmluZGluZ3MuCgoyMDEyLTAxLTMwIDE3OjE1OjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI7IHJlbW92ZSBJTl9DQVBTIGJ1ZmZlciBmbGFnCgkgIFRoZSBJTl9DQVBTIGJ1ZmZlciBmbGFnIGlzIGRlcHJlY2F0ZWQgYW5kIHNob3VsZCBiZSByZXBsYWNlZCB3aXRoIHRoZSBIRUFERVIKCSAgZmxhZy4KCjIwMTItMDEtMzAgMTY6MDk6MDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczsgdXBkYXRlIGZvciBuZXcgYXBpCgoyMDEyLTAxLTMwIDE1OjU5OjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIHF1ZXJ5OiBwYXNzIGFsbG9jYXRvciBpbiBxdWVyeQoJICBQbGFjZSB0aGUgYWxsb2NhdG9yIG9iamVjdCBpbiB0aGUgQUxMT0NBVElPTiBxdWVyeSBpbnN0ZWFkIG9mIHRoZSBuYW1lLiBUaGlzCgkgIGFsbG93cyB1cyB0byBleGNoYW5nZSBhbGxvY2F0b3JzIHRoYXQgYXJlIG5vdCBpbiB0aGUgZ2xvYmFsIHBvb2wgb2YgYWxsb2NhdG9ycy4KCSAgVXBkYXRlIGVsZW1lbnRzIGZvciB0aGUgbmV3IGFwaQoKMjAxMi0wMS0zMCAxNTo1NzozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGFkZCBtZW1vcnkgdHlwZQoJICBBZGQgbWVtb3J5IHR5cGUgd2hlbiByZWdpc3RlcmluZyBtZW1vcnkgYWxsb2NhdG9ycy4gQWRkIGdldHRlciBmb3IgdGhlIG1lbW9yeQoJICB0eXBlLgoKMjAxMi0wMS0yOSAyMjo1ODo1MSArMDAwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5oOgoJICB2YWx2ZTogUmVwdXNoIHN0aWNreSBldmVudHMgYWZ0ZXIgZGlzYWJsaW5nIGRyb3BwaW5nCgoyMDEyLTAxLTMwIDEzOjI4OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogYWRkIGJveGVkIEdUeXBlIGZvciB0aGUgYWxsb2NhdG9yCgoyMDEyLTAxLTMwIDEzOjAyOjEzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZW1vcnk6IG1ha2UgdGhlIGFsbG9jYXRvciByZWZjb3VudGVkCgkgIEFkZCByZWZjb3VudGluZyB0byB0aGUgR3N0QWxsb2NhdG9yIG9iamVjdC4KCSAgUmVtb3ZlIGNvbnN0IGZyb20gZnVuY3Rpb25zIGJlY2F1c2UgdGhlIGFsbG9jYXRvciBpcyByZWZjb3VudGVkIG5vdy4KCSAgUmVuYW1lIHRoZSB2bWV0aG9kcyBmb3IgY29uc2lzdGVuY3kKCSAgRXhwb3NlIHRoZSBjb25zdHJ1Y3RvciBmb3IgR3N0QWxsb2NhdG9yIGFuZCBhZGQgYSBkZXN0cm95IG5vdGlmeSBmb3IgdGhlCgkgIHVzZXJfZGF0YS4gVGhpcyBzaG91bGQgbWFrZSBpdCBwb3NzaWJsZSB0byBjcmVhdGUgYWxsb2NhdG9ycyB0aGF0IGFyZSBub3QKCSAgcmVnaXN0ZXJlZCBhbmQgc2hhcmVkIGdsb2JhbGx5IGFsb25nIHdpdGggdGhlIHBvc3NpYmlsaXR5IHRvIGRlc3Ryb3kgdGhlbQoJICBwcm9wZXJseS4KCSAgVXBkYXRlIGRlZnMgd2l0aCBuZXcgc3ltYm9scy4KCjIwMTItMDEtMzAgMTA6MzA6NTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlIGZvciBnYXAgZXZlbnQKCjIwMTItMDEtMzAgMTA6MDc6NTEgKzAxMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxuQGlnYWxpYS5jb20+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSAgY29yZTogZG9uJ3Qgc2hpcCBnc3R0cmFjZS5oIHByaXZhdGUgaGVhZGVyCgkgIEluY2x1ZGUgaXQgZXhwbGljaXRlbHkgaW4gZ3N0LmMgYW5kIG5vIGxvbmdlciBpbmNsdWRlIGl0IGluIGdzdC5oLgoJICBUaGF0IGhlYWRlciB3YXMgbWFkZSBwcml2YXRlIGluIDE5NjliOTQyNjdiNGYzNzdlYTI2NjM4NzZhZTg3MjA3MTc4ODk2OTMuCgoyMDEyLTAxLTI4IDE4OjUwOjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogcmVxdWlyZSBhIHZhbGlkIGR1cmF0aW9uIGZvciB0aGUgR0FQIGV2ZW50CgoyMDEyLTAxLTI4IDE4OjQ5OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiByZWYgbmV3IGVudW0gdHlwZSBpbiBnc3RfaW5pdCgpCgoyMDEyLTAxLTI3IDE4OjU3OjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBkb2NzOiBhZGQgc29tZSAob3V0KSBhbm5vdGF0aW9ucyBmb3Igc3RyZWFtIGNvbmZpZyBwYXJzZXIgZnVuY3Rpb25zCgoyMDEyLTAxLTI3IDE4OjU2OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGFkZCBjb25zdHJ1Y3RvciBhbmQgcGFyc2UgZnVuY3Rpb24gZm9yIG5ldyBHQVAgZXZlbnQKCSAgKFdoYXRldmVyIHlvdSBkbywgZG9uJ3QgbWVudGlvbiB0aGUgZmlsbGVyIGV2ZW50LikKCjIwMTItMDEtMjcgMTg6Mzc6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGRvY3M6IEdTVF9FVkVOVF9TVFJFQU1fQ09ORklHIGlzIGltcGxlbWVudGVkIG5vdwoKMjAxMi0wMS0yNyAxNzo1Nzo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiBtZW50aW9uIGNvZGVjIGRhdGEgLyBzdHJlYW0gaGVhZGVyIGNoYW5nZSBpbiBwb3J0aW5nIGRvY3MKCjIwMTItMDEtMjggMTQ6MzU6NTEgKzAwMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguYzoKCSAgVXNlIG1hY3JvcyB0byByZWdpc3RlciBib3hlZCB0eXBlcyB0aHJlYWQgc2FmZWx5CgoyMDEyLTAxLTI4IDA4OjM4OjAzICswMTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IFVwZGF0ZSBnc3RfY2hlY2tfZWxlbWVudF9wdXNoX2J1ZmZlciB0byAwLjExIHN0eWxlIGNhcHMKCSAgUGFzcyB0aGUgZGVzaXJlZCBjYXBzIGV4cGxpY2l0ZWx5CgoyMDEyLTAxLTI3IDE5OjAwOjAzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBGaXggbWVtb3J5IGxlYWsKCjIwMTItMDEtMjcgMTg6NTM6NDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IERvbid0IHVucmVmIHBsdWdpbiBmZWF0dXJlcyBtdWx0aXBsZSB0aW1lcwoJICBnc3RfcGx1Z2luX2ZlYXR1cmVfbGlzdF9mcmVlKCkgdW5yZWZzIHRoZW0gdG9vLgoKMjAxMi0wMS0yNyAxNzo1MDozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgbmV3IHN0cmVhbSBjb25maWcgZnVuY3Rpb25zIHRvIGRvY3MKCjIwMTItMDEtMjcgMTc6NDk6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSAgdGVzdHM6IGZpeCBzaW1wbGUtbGF1bmNoLWxpbmVzIGNvbXBpbGF0aW9uCgkgIERvbid0IHVzZSByZW1vdmVkIEFQSS4KCjIwMTItMDEtMjcgMTg6NDY6NDkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgc2VnbWVudDogQWRkIHBhZGRpbmcgdG8gdGhlIHB1YmxpYyBzdHJ1Y3QKCjIwMTItMDEtMjcgMTc6NDU6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGRvbid0IHJlZiBHVHlwZSBmb3IgcHJpdmF0ZSBlbnVtIGZvciB3aGljaCB0aGVyZSdzIG5vIEdUeXBlIGFueSBtb3JlCgoyMDEyLTAxLTI3IDE3OjQ1OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIC5kZWYgZm9yIG5ldyBhbmQgcmVtb3ZlZCBBUEkKCjIwMTItMDEtMjcgMTc6Mzk6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJICBldmVudDogYWRkIGNvbnN0cnVjdCBhbmQgcGFyc2UgQVBJIGZvciB0aGUgbmV3IFNUUkVBTSBDT05GSUcgZXZlbnQKCSAgY29kZWMgZGF0YSBhbmQgc3RyZWFtIGhlYWRlcnMgZG9uJ3QgYmVsb25nIGludG8gY2Fwcywgc2luY2UgdGhleQoJICBhcmUgbm90IG5lZ290aWF0ZWQuIFdlIHNpZ25hbCB0aGVtIHVzaW5nIHRoZSBTVFJFQU0gQ09ORklHIGV2ZW50CgkgIGluc3RlYWQuCgoyMDEyLTAxLTI3IDE4OjI0OjQzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICB0cmFjZTogcmVtb3ZlIGZyb20gcHVibGljIGhlYWRlcnMKCjIwMTItMDEtMjcgMTI6MTY6MDUgKzAxMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8YW1vcmFsZXNAZmx1bW90aW9uLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGZpeCBkb2N1bWVuYXRpb24gdHlwbwoKMjAxMi0wMS0yNyAxNzo1MDo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHRyYWNlLmM6CgkqIGdzdC9nc3R0cmFjZS5oOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRyYWNlOiByZXdvcmsgYWxsb2MgdHJhY2luZwoJICBSZW1vdmUgdHJhY2UsIHdlIHVzZSBkZWJ1ZyBsb2cgZm9yIHRoYXQKCSAgTWFrZSBhbGxvYyB0cmFjZSBzaW1wbGVyLCByZW1vdmluZyBzb21lIG1ldGhvZHMuCgkgIEFjdGl2YXRlIGFsbG9jIHRyYWNlIHdpdGggYSBHU1RfVFJBQ0U9MyBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCSAgRHVtcCBsZWFrZWQgb2JqZWN0cyBhdGV4aXQuCgkgIFByb3ZpZGUgYW4gb2Zmc2V0IGluIHRoZSBvYmplY3Qgd2hlcmUgdGhlIEdUeXBlIGNhbiBiZSBmb3VuZCBzbyB0aGF0IG1vcmUKCSAgdmVyYm9zZSBpbmZvIGNhbiBiZSBnaXZlbiBmb3Igb2JqZWN0cy4KCSAgUmVtb3ZlIC1UIG9wdGlvbiBmcm9tIGdzdC1sYXVuY2ggYmVjYXVzZSB0cmFjaW5nIGlzIG5vdyB0cmlnZ2VyZWQgd2l0aCB0aGUKCSAgZW52aXJvbm1lbnQgdmFyaWFibGUuCgoyMDEyLTAxLTI1IDEyOjM1OjQzICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBhbnN3ZXIgY2FwcyBxdWVyaWVzIHdpdGggb3VyIHR5cGVmb3VuZCBjYXBzCgkgIFRoaXMgYXZvaWRzIG1lcmVseSBmb3J3YXJkaW5nIHRoZSBldmVudCB0byB0aGUgc2luaywgYW5kIGdldHRpbmcKCSAgc29tZXRoaW5nIHVzZWxlc3Mgc3VjaCBhcyBBTlkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Njc1NzEKCjIwMTItMDEtMjcgMTY6MTg6MDAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgdHlwZWZpbmQ6IERvIHR5cGVmaW5kaW5nIGZyb20gYSBzZXBhcmF0ZSB0aHJlYWQgYW5kIG5vdCBmcm9tIHRoZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24KCjIwMTItMDEtMjcgMTU6MzI6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBtZW1vcnkgbGVhawoJICB1bm1hcCB0aGUgYnVmZmVyIG1lbW9yeSBvbiBlcnJvcnMuCgoyMDEyLTAxLTI3IDE1OjMyOjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgdHJhY2U6IG1ha2UgYWxsb2MgdHJhY2Ugd29yayBmb3IgbWluaW9iamVjdCBhZ2FpbgoKMjAxMi0wMS0yNyAxNTowOTozNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oCgoyMDEyLTAxLTI3IDE1OjAyOjUyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkgIGNvbGxlY3RwYWRzMjogTW92ZSBwcml2YXRlIGZpZWxkcyBmcm9tIHRoZSBwdWJsaWMgc3RydWN0cyB0byBwcml2YXRlIHN0cnVjdHMKCSAgRml4ZXMgYnVnICM2Njg3NjQuCgoyMDEyLTAxLTI3IDEzOjA1OjQ4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2FyZ2IuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2RpcmVjdC5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IG5vIGZhbmN5IHV0ZjggY2hhcnMgaW4gdGhlIGdpIGFubm90YXRpb25zCgoyMDEyLTAxLTI3IDEyOjUwOjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICB0ZXN0czogZml4IHNvbWUgbW9yZSBsZWFrcwoKMjAxMi0wMS0yNyAxMjozMzozMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IEZpeCBoYW5kbGluZyBvZiB0aGUgbmV3IHN0cmVhbS1zdGFydCBldmVudAoKMjAxMi0wMS0yNyAxMTozMjoxMiArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIGdzdHBsdWdpbjogYWRkIGEgZmV3IGNvbnN0cyB0byByZWFkIG9ubHkgZGF0YQoKMjAxMi0wMS0yNyAxMjoyMjo0OCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdhcmdiLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdkaXJlY3QuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBhZGQgZ2kgYW5ub3RhdGlvbnMKCjIwMTItMDEtMjcgMTI6MTQ6MjggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBGaXggdW5pdCB0ZXN0CgoyMDEyLTAxLTI3IDEyOjEwOjA5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHRlc3RzOiBmaXggbGVha3MKCjIwMTItMDEtMjcgMTE6NDA6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogYXZvaWQgbWVtb3J5IGxlYWsKCSAgVW5yZWYgdGhlIG9sZCBtZW1vcnkgaW4gbWFrZV9tYXBwZWQuCgkgIEFkZCBzb21lIGRlYnVnIGluZm8KCjIwMTItMDEtMjcgMTE6NDA6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogYXZvaWQgY2FwcyBsZWFrCgoyMDEyLTAxLTI3IDExOjAxOjI3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHkvZmFrZXtzcmMsc2lua306IEluY2x1ZGUgZXZlbnQgdHlwZSBuYW1lIGluIHRoZSBkZWJ1ZyBvdXRwdXQKCjIwMTItMDEtMjcgMTA6NTQ6NTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogTWFyayB0aGUgbmV3IEdBUCBldmVudCBhcyBub24tc3RpY2t5CgoyMDEyLTAxLTI3IDEwOjQ2OjAyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkgIGNvbGxlY3RwYWRzMjogRHJvcCB0aGUgc3RyZWFtLXN0YXJ0IGFuZCBzdHJlYW0tY29uZmlnIGV2ZW50cyBieSBkZWZhdWx0CgoyMDEyLTAxLTI3IDEwOjQyOjA5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudCByZWJhc2UKCjIwMTItMDEtMjcgMTA6NDE6MDcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IFNlbmQgdGhlIHN0cmVhbS1zdGFydCBldmVudCBhcyBmaXJzdCBldmVudCBldmVyCgoyMDEyLTAxLTI3IDEwOjMwOjQzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV2ZW50OiBBZGQgY29uc3RydWN0b3IgYW5kIGRvY3MgZm9yIHRoZSBuZXcgU1RSRUFNX1NUQVJUIGV2ZW50CgoyMDEyLTAxLTI2IDE5OjI4OjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIHVzZXIgZGF0YSB0byBjaGFpbiBmdW5jdGlvbnMKCjIwMTItMDEtMjYgMTg6NTY6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZml4IHR5cG8KCjIwMTItMDEtMjYgMTg6MjI6MjkgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogcmVzdG9yZSBkYXRlL3RpbWUgdHlwZSB0byBHc3REYXRlVGltZQoJICBUaGUgY2hhbmdlIHRvIEdEYXRlVGltZSB3YXMgYXBwYXJlbnRseSBhY2NpZGVudGFsLCBhbmQKCSAgYnJlYWtzIHBsdWdpbnMgdHJ5aW5nIHRvIGZlZWQgYSBHc3REYXRlVGltZSB0byB0aGUgdGFnbGlzdCBBUGkuCgoyMDEyLTAxLTI2IDE5OjEyOjE2ICswMjAwICBQZXRlcmlzIEtyaXNqYW5pcyA8cGVjaXNrQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwYXJzZS5jOgoJICBnc3Q6IGdzdF9wYXJzZV9sYXVuY2ggbm93IHJldHVybnMgYSBmbG9hdGluZyByZWZlcmVuY2UKCjIwMTItMDEtMjYgMTg6NTM6NTEgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBnc3RzdHJ1Y3R1cmU6IFNldCAidHJhbnNmZXIgbm9uZSIgdG8gcmV0dXJuIHZhbHVlcyB0aGF0IHNob3VsZG4ndCBiZSBmcmVlZAoKMjAxMC0xMi0wNCAxODo1Mzo1NSAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBjYWxsIC0+cmVsZWFzZV9wYWQoKSB0byBjbGVhbiB1cCBwYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNjAxMQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAyNTYyCgoyMDEyLTAxLTI2IDE2OjMxOjUwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogYWRkIHNvbWUgbW9yZSBldmVudHMKCSAgQWRkIHNvbWUgbW9yZSBuZXcgZXZlbnRzIHRoYXQgd2Ugd2FudCB0byBpbXBsZW1lbnQgbGF0ZXIuCgoyMDEyLTAxLTI2IDE1OjE1OjIxICswMTAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPGFtb3JhbGVzQGZsdW1vdGlvbi5jb20+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIGdzdG1lbW9yeTogYWRkIG1pc3NpbmcgcGFyYW1ldGVyCgoyMDEyLTAxLTI2IDE0OjU3OjE0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IEZpeCBjb21waWxlciB3YXJuaW5nCgoyMDEyLTAxLTI2IDE0OjU1OjMwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IFVzZSBjb3JyZWN0IHNpemUgZm9yIGNhcHMgYWxsb2NhdGlvbgoKMjAxMi0wMS0yNiAxNDo0NTozMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiBNYWtlIEdzdENhcHMgcHVibGljIHN0cnVjdCBtb3JlIG9wYXF1ZSBieSBtb3ZpbmcgdGhlIHByaXZhdGUgcG9pbnRlciBpbnRvIHRoZSBpbXBsZW1lbnRhdGlvbgoKMjAxMi0wMS0yNiAxNDozMzoxMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIGNhcHM6IFN0b3JlIGEgcG9pbnRlciB0byBHc3RDYXBzIGluIEdzdFN0YXRpY0NhcHMKCSAgLi4uaW5zdGVhZCBvZiB1c2luZyBoYWNraXNoIHN1YmNsYXNzIG9mIEdzdENhcHMsIHdoaWNoIGFsc28KCSAgaGFkIHNvbWUgdGhyZWFkLXNhZmV0eSBwcm9ibGVtcy4KCjIwMTItMDEtMjYgMTM6MjQ6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSAgZXZlbnQ6IHJlbW92ZSB0aGUgc3RpY2t5IGV2ZW50IGluZGV4CgkgIFdlIGRvbid0IHVzZSB0aGUgc3RpY2t5IGV2ZW50IGluZGV4IGFueW1vcmUsIG9yZGVyaW5nIG9mIHRoZSBldmVudHMgYXJlIGhvdyB0aGV5CgkgIHdlcmUgc2VudCBpbml0aWFsbHkuCgkgIEFkZCBzb21lIG1vcmUgcGFkZGluZyBiZXR3ZWVuIHRoZSBldmVudCBudW1iZXJzIHNvIHRoYXQgd2UgY2FuIGluc2VydCBuZXcgZXZlbnRzCgkgIGxhdGVyLgoKMjAxMi0wMS0yNiAxMDo0ODowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSAgZG9jczogcmVtb3ZlIGNvbGxlY3RwYWRzIGZyb20gZG9jcywgZml4IGJ1aWxkCgoyMDEyLTAxLTI2IDEwOjIyOjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IHVzZSBHc3RWYWx1ZUFycmF5IGluc3RlYWQgb2YgR1ZhbHVlQXJyYXkgZm9yIHN0b3Jpbmcgb3B0aW9ucyBpbiB0aGUgY29uZmlnCgkgIFNpbmNlIEdWYWx1ZUFycmF5IGlzIGRlcHJlY2F0ZWQuIEl0J3MgYWxsIG9ubHkgaW50ZXJuYWwgYW55d2hlcmUgaGVyZSwKCSAgYnV0IGlmIHdlIHVzZSBHc3RWYWx1ZUFycmF5IHRoZSBvcHRpb24gc3RyaW5ncyBnZXQgc2VyaWFsaXplZCBuaWNlbHkKCSAgaW4gdGhlIGRlYnVnIGxvZ3MgYXQgbGVhc3QuCgoyMDEyLTAxLTI2IDA5OjI2OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiBnc3QtaW5zcGVjdDogc3VwcHJlc3MgZGVwcmVjYXRpb24gd2FybmluZ3MgZm9yIEdfVFlQRV9WQUxVRV9BUlJBWQoJICBGb3Igbm93IGFueXdheS4KCjIwMTItMDEtMjYgMTE6NDI6MjkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNvbGxlY3RwYWRzMjogVW5pdCB0ZXN0IGlzIHZhbGdyaW5kIGNsZWFuIG5vdwoKMjAxMi0wMS0yNiAxMTo0MDo1MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzMi5jOgoJICBjb2xsZWN0cGFkczI6IEZpeCB1bml0IHRlc3QgdG8gYWN0dWFsbHkgd29yayBhZ2FpbgoKMjAxMi0wMS0yNiAxMTozODoyOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkczIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RsaWJzY3BwLmNjOgoJKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSAgY29sbGVjdHBhZHMyOiBQb3J0IGNvbGxlY3RwYWRzIHVuaXQgdGVzdCB0byBjb2xsZWN0cGFkczIKCSAgQ3VycmVudGx5IGZhaWxzIGJ1dCByZWFsbHkgc2hvdWxkbid0LgoKMjAxMi0wMS0yNiAxMTowMToyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCBwcm9iZSBpZCB0byB0aGUgaW5mbwoKMjAxMi0wMS0yNiAxMDo0ODo1NiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBjb2xsZWN0cGFkczogUmVtb3ZlIG9sZCBjb2xsZWN0cGFkcwoJICBTdGlsbCBoYXZlIHRvIHJlbmFtZSBjb2xsZWN0cGFkczIgdG8gY29sbGVjdHBhZHMgYmVmb3JlIHRoZSAxLjAgcmVsZWFzZS4KCjIwMTItMDEtMjYgMTA6MzA6MjUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSAgY29sbGVjdHBhZHMyOiBEb24ndCBmb3J3YXJkIENBUFMgZXZlbnQgYXV0b21hdGljYWxseQoKMjAxMi0wMS0yNSAxODo0OToxNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJICBjb2xsZWN0cGFkczI6IEZpeCBoYW5kbGluZyBvZiB0aGUgZXZlbnQgZnVuY3Rpb24gYW5kIGRvY3VtZW50IGl0CgkgIFRoZSBldmVudCBmdW5jdGlvbiBpcyBzdXBwb3NlZCB0byBmb3J3YXJkL2Ryb3AgdGhlIGV2ZW50IGluIGFueSBjYXNlCgkgIG5vdyBhbmQgdGFrZXMgb3duZXJzaGlwIG9mIHRoZSBldmVudC4KCjIwMTItMDEtMjUgMTg6MzY6NDIgKzAxMDAgIEphc29uIERlUm9zZSA8amRlcm9zZUBub3ZhY3V0LmNvbT4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBnc3RfcGFkX3RlbXBsYXRlX25ldygpIG5vdyByZXR1cm5zIGEgZmxvYXRpbmcgcmVmZXJlbmNlCgoyMDEyLTAxLTI1IDE5OjQxOjAzICswMjAwICBQZXRlcmlzIEtyaXNqYW5pcyA8cGVjaXNrQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBnc3RfcGlwZWxpbmVfbmV3IG5vdyByZXR1cm5zIGEgZmxvYXRpbmcgcmVmZXJlbmNlLgoKMjAxMi0wMS0yNSAxNzoyNzo0MCArMDIwMCAgUGV0ZXJpcyBLcmlzamFuaXMgPHBlY2lza0BnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0OiBnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24gcmV0dXJucyBhIG5ldyByZWZlcmVuY2UKCjIwMTItMDEtMjUgMTU6MTQ6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiB1c2UgR0FycmF5IGZvciBpbnRlcm5hbCBhcnJheXMgaW5zdGVhZCBvZiB0aGUgbm93LWRlcHJlY2F0ZWQgR1ZhbHVlQXJyYXkKCjIwMTItMDEtMjUgMTY6MDE6MDIgKzAyMDAgIFBldGVyaXMgS3Jpc2phbmlzIDxwZWNpc2tAZ21haWwuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3Q6IENoYW5nZWQgaW50cm9zcGVjdGlvbiB0cmFuc2ZlciBmbGFnIHRvICh0cmFuc2ZlciBmbG9hdGluZykKCSAgZm9yIGdzdF9wYWRfbmV3LCBnc3RfZ2hvc3RfcGFkX25ldyBhbmQgZ3N0X2Jpbl9uZXcgY29uc3R1Y3RvcnMuIEZpeGVzCgkgIHNlZ2ZhdWx0cyBkdWUgb2YgdHJhbnNmZXIgZnVsbCBhbmQgZmxvYXRpbmcgcmVmIHByb2JsZW0uCgoyMDEyLTAxLTI1IDEzOjQ2OjEzICswMTAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXMgKGF0KSBhcGVzdGFhcnQgKGRvdCkgb3JnPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBjNDYzYmMwIHRvIDdmZGE1MjQKCjIwMTItMDEtMjQgMTQ6Mzc6MjUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBhZGQgZmxhZ3MgdG8gdGhlIG1hcGluZm8KCjIwMTItMDEtMjAgMTY6MTA6MjYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogbWFrZSBndWludDggKiBmb3IgZWFzeSB1c2FnZQoKMjAxMi0wMS0yMCAxNDo1Njo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZW1vcnk6IGFkZCBtZXRob2QgdG8gY3JlYXRlIG1hcHBlZCBtZW1vcnkKCSAgQWRkIGEgbWV0aG9kIHRvIGNyZWF0ZSBhIEdzdE1lbW9yeSB3aXRoIHRoZSBkZXNpcmVkIG1hcHBpbmcuIE1ha2VzIGEgY29weSBvZiB0aGUKCSAgbWVtb3J5IGlmIGl0IGlzIGN1cnJlbnRseSBpbiB1c2UuCgoyMDEyLTAxLTIwIDE0OjIzOjU3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2JpdHJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvYWRhcHRlci9hZGFwdGVyX3Rlc3QuYzoKCSAgQWRkIG5ldyBHc3RNYXBJbmZvCgkgIFVzZSBhIHN0cnVjdHVyZSB0byBob2xkIGluZm8gYWJvdXQgdGhlIG1hcHBpbmcuIFRoZSBhcHBsaWNhdGlvbiB0aGVuIGtlZXBzIHRyYWNrCgkgIG9mIHRoaXMgc3RhdGUgYW5kIHdlIGNhbiB1c2UgaXQgdG8gdW5tYXAgdGhlIG1lbW9yeSBhZ2FpbiBsYXRlci4KCjIwMTItMDEtMjUgMTE6NDk6NTAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkgIGNvbnRyb2xiaW5kaW5nczogbmFtZSBpcyBub3QgYSBjb25zdAoJICBJdCBnZXRzIG1vZGlmaWVkIGR1cmluZyB0aGUgbGlmZSBvZiB0aGUgb2JqZWN0LiBGaXhlcyBidWlsZC4KCjIwMTItMDEtMjUgMTE6NDM6MTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMi0wMS0yNSAxMTozNzo0MCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDJhNTkwMTYgdG8gYzQ2M2JjMAoKMjAxMi0wMS0yNCAyMTo1MzoxNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2FyZ2IuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2RpcmVjdC5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nZGlyZWN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgY29udHJvbGxlcjogY2xlYW51cCB0aGUgY29udHJvbC1iaW5kaW5nIGNvbnN0cnVjdGlvbgoJICBUaGlzIGlzIG5vdyBiaW5kaW5ncyBmaXJlbmRseSBhcyBfbmV3IGlzIGp1c3QgYSBjbGFzc2ljIGMgY29udmVuaWVuY2UgYW5kIGFsbAoJICB0aGUgd29yayBpcyBkb25lIGluIGEgY29uc3RydWN0b3IuIEFzIGEgc2lkZSBlZmZlY3QgX25ldyBuZXZlciBmYWlscy4KCSAgRml4IHRoZSB0ZXN0cy4KCjIwMTItMDEtMjQgMTQ6NDA6MzMgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBoYW5kbGUgTlVMTCBkZXN0IGluIGJpdG1hc2svYml0bWFzayBpbnRlcnNlY3Rpb24KCjIwMTEtMTItMDEgMTI6NDM6MDMgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHRlc3RzOiBhZGQgYmFzaWMgdGVzdHMgZm9yIG5ldyBzdGVwcGVkIHJhbmdlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY1Mjk0CgoyMDExLTExLTMwIDE0OjQ1OjEyICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0dmFsdWU6IGFkZCBzdGVwcGVkIHJhbmdlcwoJICBpbnQgYW5kIGludDY0IHJhbmdlcyBjYW4gbm93IGhhdmUgYW4gb3B0aW9uYWwgc3RlcCAoZGVmYXVsdGluZyB0byAxKS4KCSAgTWVtYmVycyBvZiB0aGUgcmFuZ2UgYXJlIHRob3NlIHZhbHVlcyB3aXRoaW4gdGhlIG1pbiBhbmQgbWF4IGJvdW5kcwoJICB3aGljaCBhcmUgYSBtdWx0aXBsZSBvZiB0aGlzIHN0ZXAuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjUyOTQKCjIwMTEtMTEtMzAgMTc6NTg6MDcgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBnc3R1dGlsczogYWRkIGEgNjQgYml0IHZlcnNpb24gb2YgR0NEIGNhbGN1bGF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjUyOTQKCjIwMTEtMTEtMDQgMTg6MjY6MTUgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBlbmZvcmNlIGlkZW50aWNhbCBiYXNpYyB0eXBlcyBpbiBsaXN0cywgYXJyYXlzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjI1ODcKCjIwMTItMDEtMjMgMTA6MzI6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkgIGJlbmNobWFya3M6IGFkZCBtaXNzaW5nIGluY2x1ZGUKCjIwMTItMDEtMjMgMTE6MDM6MDkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIG9iamVjdDogcmVnaXN0ZXIgYWxsIHByb3BlcnRpZXMgaW4gb25lIGdvCgoyMDEyLTAxLTIzIDExOjAyOjQ1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC1jb250cm9sbGVyLnR4dDoKCSAgZG9jczogdXBkYXRlIGNvbnRyb2xsZXIgYXBpIGRlc2lnbgoKMjAxMi0wMS0yMSAyMDowMzo1MiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nYXJnYi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nYXJnYi5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nZGlyZWN0LmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdkaXJlY3QuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2wtc291cmNlcy5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL3RleHQtY29sb3ItZXhhbXBsZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY29udHJvbGxlcjogYWxsb3cgZGlmZmVyZW50IGNvbnRyb2xiaW5kaW5ncwoJICBNYWtlIGNvbnRyb2xiaW5kaW5nIGFuIGFic3RyYWN0IGJhc2VjbGFzcy4gTW92ZSBpbXBsZW1lbnRhdGlvbiB0byBjb250cm9sLQoJICBiaW5kaW5nLWRpcmVjdCBhbmQgYWRkIGEgY29udHJvbC1iaW5kaW5nLWFyZ2IuIEFkZCBhbiBleGFtcGxlLgoKMjAxMi0wMS0yMiAyMjo0NDo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICBSZXBsYWNlIGRlcHJlY2F0ZWQgR1N0YXRpY011dGV4IHdpdGggR011dGV4CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjIyMDcKCjIwMTItMDEtMjIgMTU6MjM6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IGZpeCB0eXBvIGluIGdzdC1pbnNwZWN0IGRlYnVnIG1lc3NhZ2UKCjIwMTItMDEtMjIgMDE6Mzk6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSogZ3N0L2dzdGVycm9yLmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIFVzZSBHTGliJ3MgdHlwZSBmb3IgR0Vycm9yIGluc3RlYWQgb2Ygb3VyIG93bgoJICBXZSBpbnRyb2R1Y2VkIG91ciBvd24gd2hlbiBHTGliIGRpZG4ndCB3YW50IHRvIGFkZCBhIEdUeXBlCgkgIGZvciBHRXJyb3IuIEJ1dCBub3cgdGhhdCB0aGVyZSBpcyBvbmUsIHdlIGNhbiB1c2UgR0xpYidzCgkgIHVuY29uZGl0aW9uYWxseSBhbmQgcmVtb3ZlIG91ciB2ZXJzaW9uLgoKMjAxMi0wMS0yMiAwMToyNzo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogZml4IHNpemUgb2YgYXRvbWljIGNvdW50ZXIKCjIwMTItMDEtMjIgMDE6MjU6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcGx1Z2luLXNjYW5uZXIuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGJ1ZmZlcnN0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGNsb2Nrc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9sbHN0cmVzcy5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJICBVc2UgcmVjZW50IEdMaWIgQVBJIHVuY29uZGl0aW9uYWxseSBub3cgdGhhdCB3ZSBkZXBlbmQgb24gdGhlIGxhdGVzdCBHTGliCgoyMDEyLTAxLTIyIDAwOjQyOjM0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHRyYWNlLmM6CgkqIGdzdC9nc3R0cmFjZS5oOgoJICB0cmFjZTogZG9uJ3QgdXNlIGRlcHJlY2F0ZWQgR1N0YXRpY011dGV4IEFQSSBpbiAoc3RpbGwpIHB1YmxpYyBoZWFkZXIKCjIwMTItMDEtMjEgMTI6NTY6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIHNjcmlwdHM6IHNldCBHSV9UWVBFTElCX1BBVEggaW4gZ3N0LXVuaW5zdGFsbGVkCgkgIFNvIHB5Z2kgZmluZHMvdXNlcyB0aGUgbG9jYWwgZy1pIGZpbGVzLgoKMjAxMi0wMS0yMCAxODowNjowNCArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5oLmluOgoJICBsaWJjaGVjazogbWFrZSB0aGUgZGVmaW5pdGlvbiBvZiBmYWlsIG5vdCBmYWlsIHdpdGggbm9uIEdDQyBjb21waWxlcnMKCjIwMTItMDEtMjAgMTQ6NDI6MzEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNvbnRyb2xsZXI6IGltcHJvdmUgY29udHJvbCBiaW5kaW5nIGhhbmRsaW5nCgkgIENoYW5nZSBfc2V0X2NvbnRyb2xfYmluZGluZyB0byBfYWRkX2NvbnRyb2xfYmluZGluZyBhbmQgdGFrZSBvd25lcnNoaXAuIEFkZCBhCgkgIF9yZW1vdmVfY29udHJvbF9iaW5kaW5nIGZ1bmN0aW9uLgoKMjAxMi0wMS0yMCAwODoyNzo1NyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjb250cm9sbGVyOiByZW1vdmUgY29udmVuaWVuY2UgYXBpIGZvciBjb250cm9sIHNvdXJjZXMKCSAgVGhpcyBpcyBuZWVkZWQgdG8gc3VwcG9ydCBtdWx0aXBsZSBraW5kcyBvZiBjb250cm9sLWJpbmRpbmdzLgoKMjAxMi0wMS0xOSAxNToxNzo1OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBoYW5kbGUgTlVMTCBmcm9tIGdldGNhcHMKCSAgSWYgdGhlIGdldGNhcHMgZnVuY3Rpb25zIHJldHVybnMgTlVMTCwgcmV0dXJuIEZBTFNFIGZyb20gdGhlIENBUFMgcXVlcnkuCgoyMDEyLTAxLTE5IDE1OjE3OjMzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogaGFuZGxlIGxpc3RzIGNvcnJlY3RseQoKMjAxMi0wMS0xNyAxNjoyMzozMyAtMDUwMCAgQ29saW4gV2FsdGVycyA8d2FsdGVyc0B2ZXJidW0ub3JnPgoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkgIGJ1aWxkOiBhZGQgLS1kaXNhYmxlLWZhdGFsLXdhcm5pbmdzIGNvbmZpZ3VyZSBvcHRpb24KCSAgSXQncyByZWFzb25hYmxlIHRvIGJ1aWxkIGZyb20gZ2l0LCBidXQgbm90IHdhbnQgdG8gdHVybiBhbGwgY29tcGlsZXIKCSAgd2FybmluZ3MgaW50byBmYXRhbCBlcnJvcnMuICBGb3IgZXhhbXBsZSwgR05PTUUncyBqaGJ1aWxkIGhlbHBzIHBlb3BsZQoJICBnZXQgbmV3ZXIgdmVyc2lvbnMgb2Ygc29mdHdhcmUgdGhhbiBjYW1lIGZyb20gdGhlaXIgZGlzdHJpYnV0aW9uLCBidXQKCSAgdGhleSBtYXkgbm90IG5lY2Vzc2FyaWx5IHdhbnQgdG8gaGFjayBvbiBpdC4KCjIwMTItMDEtMTkgMTI6NTc6NDggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RjbG9ja3N0cmVzcy5jOgoJICB0ZXN0czogY2xvY2tzdHJlc3M6IHBlcmZvcm0gc2FuaXR5IGNoZWNrIG9uIHRocmVhZCBudW1iZXIgYXJndW1lbnQKCjIwMTItMDEtMTkgMDk6MTI6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeSBpbXByb3ZlbWVudHMKCSAgTWFrZSB0aGUgbWVtb3J5IG9iamVjdCBzaW1wbHkgbWFuYWdlIHRoZSBkYXRhIHBvaW50ZXIgYW5kIHRoZSBtYXhzaXplIGFuZCBtb3ZlCgkgIHRoZSBvZmZzZXQgYW5kIHNpemUgaGFuZGxpbmcgdG8gY29tbW9uIGZ1bmN0aW9uYWxpdHkuCgkgIFVzZSB0aGUgUkVBRE9OTFkgZmxhZyB0byBzZXQgYSByZWFkb25seSBsb2NrLgoJICBSZW1vdmUgdGhlIGRhdGEgYW5kIHNpemUgZmllbGRzIGZyb20gdGhlIHVubWFwIG1ldGhvZC4gV2UgbmVlZCBhbiBleHBsaWNpdAoJICByZXNpemUgb3BlcmF0aW9uIGluc3RlYWQgb2YgdXNpbmcgdGhlIHVubWFwIGZ1bmN0aW9uLgoJICBNYWtlIGludGVybmFsIGhlbHBlciBsb2NrIGFuZCB1bmxvY2sgZnVuY3Rpb25zLgoJICBVcGRhdGUgdW5pdCB0ZXN0IGFuZCB1c2VycyBvZiB0aGUgb2xkIEFQSS4KCjIwMTItMDEtMTkgMTE6NDM6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBkb2NzOiBmaXggdHlwbyBpbiBidXMgZG9jcwoKMjAxMi0wMS0xMyAxNzo0NToxNyAtMDUwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIC5naXRpZ25vcmU6CgkgIC5naXRpZ25vcmU6IGFkZCB2aXN1YWwgc3R1ZGlvIElERSBmaWxlcyBhbmQgT1MgWCAuRFNfU3RvcmUgZmlsZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2Nzg5OQoKMjAxMi0wMS0xOSAwOToyNzowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhcXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGJ1ZmZlcnN0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvbGxzdHJlc3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhc2suYzoKCSAgVXBkYXRlIGZvciBuZXcgZ3RocmVhZCBBUEkKCjIwMTItMDEtMTggMTY6NTI6NTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmUuYWM6IEdJTyBjaGVjayBpcyBub3cgaW4gZ3N0LWdsaWIyLm00CgoyMDEyLTAxLTE4IDE2OjQ1OjUxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMDgwNzE4NyB0byAyYTU5MDE2CgoyMDEyLTAxLTE4IDE2OjE0OjUxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlLmFjOiBSZXF1aXJlIEdMaWIgMi4zMS4xMCBhbmQgaW1wcm92ZSBHSU8gY2hlY2sKCjIwMTItMDEtMTggMTI6MDc6NDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiBBbHdheXMgY2FsbCA6OnByb3Bvc2VfYWxsb2NhdGlvbiB2ZnVuYwoJICBBbmQgb25seSBmb3J3YXJkIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5IGlmIHdlJ3JlIHdvcmtpbmcgaW4KCSAgcGFzc3Rocm91Z2ggbW9kZSBpZiBubyA6OnByb3Bvc2VfYWxsb2NhdGlvbiBpcyBpbXBsZW1lbnRlZC4KCSAgSW4gcGxhY2UgYnVmZmVyIHRyYW5zZm9ybWF0aW9ucyB3aWxsIGNoYW5nZSB0aGUgYnVmZmVyCgkgIGNvbnRlbnQgYW5kIHJlcXVpcmUgZXhwbGljaXQgaGFuZGxpbmcgb2YgYWxsIG1ldGFzLgoKMjAxMi0wMS0xOCAxMTozNzo1NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRG9uJ3QgZm9yd2FyZCB0aGUgYWxsb2NhdGlvbiBxdWVyeSBieSBkZWZhdWx0CgkgIFRoaXMgaGFzIHRvIGJlIGhhbmRsZWQgZXhwbGljaXRlbHkgYnkgZWxlbWVudHMgdG8KCSAgbWFrZSBzdXJlIHRoYXQgdGhleSBzdXBwb3J0IGFsbCB0aGUgbWV0YXMgcGFzc2VkCgkgIGluIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5LgoJICBNZXRhcyBoYXZlIHRvIHN1cHBvcnRlZCBleHBsaWNpdGVseSwgb3RoZXJ3aXNlIHRoZQoJICBxdWVyeSB3aWxsIGZhaWwuIEFsbCBlbGVtZW50cyBpbiBhIGNoYWluIG5lZWQgdG8KCSAgc3VwcG9ydCBhIHNwZWNpZmljIG1ldGEgdG8gYWxsb3cgaXRzIHVzYWdlLgoKMjAxMi0wMS0xOCAwMTozMTo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkgIGdzdDogc3VwcHJlc3Mgc29tZSBtb3JlIGRlcHJlY2F0ZWQgdGhyZWFkIGFwaSB1bnRpbCB3ZSBmaXggaXQgdXAKCSAgV2hpY2ggc2hvdWxkIGJlIHNvb24sIHNpbmNlIHdlIGFscmVhZHkgZGVwZW5kIG9uIGFuIHVuc3RhYmxlIGdsaWIgZm9yIC1iYXNlLgoKMjAxMi0wMS0xOCAwMToxODozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgLmRlZiBmaWxlcyBmb3IgYXBpIGNoYW5nZXMKCjIwMTItMDEtMTcgMjM6NTc6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSAgY29uZmlndXJlOiByZW1vdmUgIC0tZGlzYWJsZS1uZXQgb3B0aW9uIGFuZCBhbHdheXMgYnVpbGQgbGliZ3N0bmV0CgkgIEl0IHNob3VsZCB3b3JrIGV2ZXJ5d2hlcmUgbm93LCBhbmQgLWJhc2UgYW5kIC1nb29kIGRlcGVuZCBvbgoJICB0aGUgR3N0TmV0TWV0YSBBUEkuCgoyMDEyLTAxLTE3IDIzOjUyOjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBjb25maWd1cmU6IHJlbW92ZSBzb21lIHNvY2tldCBjcnVmdAoKMjAxMC0wNS0wNSAxNjozMzo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIG5ldDogcG9ydCB0byB1c2UgZ2lvJ3MgbmV0d29ya2luZyBBUEkKCSAgU29tZSB3YXJ0cyBzdGlsbCwgYnV0IGl0J3MgYSBzdGFydC4KCjIwMTItMDEtMTcgMTY6NTA6MTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBuZXQ6IEFkZCBHSU8gdG8gdGhlIGdpLXNjYW5uZXIgcGFja2FnZXMKCjIwMTItMDEtMTYgMTM6MzQ6MjggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuaDoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LnBjLmluOgoJICBuZXRhZGRyZXNzbWV0YTogVXNlIEdTb2NrZXRBZGRyZXNzIGluc3RlYWQgb2Ygb3VyIG93biB3cmFwcGVyIHR5cGUKCjIwMTItMDEtMTYgMTU6NTc6MzUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogbWFrZSB3cml0YWJpbGl0eSBjaGVjayBpbnRvIGEgbWV0aG9kCgkgIFVzZSBhIG1ldGhvZCB0byBjaGVjayBmb3Igd3JpdGFiaWxpdHkgaW5zdGVhZCBvZiBhIG1hY3JvIHNvIHRoYXQgd2UgY2FuIGNoYW5nZQoJICB0aGUgaW1wbGVtZW50YXRpb24gbW9yZSBlYXNpbHkuCgoyMDEyLTAxLTE2IDEyOjI0OjQ4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICB0ZXN0czogaW1wcm92ZSBtZW1vcnkgdGVzdAoKMjAxMi0wMS0xNiAxMjoyNDoyMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBpbXByb3ZlIGRvY3MKCjIwMTItMDEtMTEgMTA6NTk6NTMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGVuc3VyZSBhdXRvbWFnaWMgX3VubWFwIGluIHNvbWUgbW9yZSBjYXNlcwoKMjAxMS0xMS0xNSAxNzo0Mjo1NiArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogYXV0b21hdGljYWxseSB1bm1hcCBvbiBjbGVhcmluZwoJICBXaGVuIF9jbGVhciBnZXRzIGNhbGxlZCBiZXR3ZWVuIF9tYXAgYW5kIF91bm1hcCwgYnVmZmVycwoJICB3aWxsIGJlIHVucmVmZmVkLiBJZiB0aGUgYWRhcHRlciB3YXMgbWFwcGVkLCBtZW1vcnkgbGVha3MKCSAgbWF5IG9jY3VyLgoJICBXaGlsZSBjYWxsaW5nIF9jbGVhciBiZXR3ZWVuIF9tYXAgYW5kIF91bm1hcCBkb2VzIG5vdCBzZWVtCgkgIGxpa2Ugc3VjaCBhIGdyZWF0IGlkZWEsIHRoaXMgaXMgcG9zc2libGUgaW4gdGhlIGF1ZGlvCgkgIGVuY29kZXIgYmFzZSBjbGFzcywgYXMgX2NsZWFyIG1heSBiZSBjYWxsZWQgaW4gX2ZpbmlzaF9mcmFtZS4KCSAgU2luY2UgdGhlIGF1ZGlvIGVuY29kZXIgcmVsaWVzIG9uIGZsdXNoaW5nIHRvIGtlZXAgdHJhY2sgb2YKCSAgdGltZXN0YW1wcywgZGVsYXlpbmcgZmx1c2hpbmcgdGlsbCBhZnRlciBoYW5kbGVfZnJhbWUgc2VlbXMKCSAgZGFuZ2Vyb3VzLgoJICBTbywgd2UgdW5tYXAgb24gY2xlYXIsIGFzIHRoZSBuZXh0IHVubWFwIHdpbGwgZG8gbm90aGluZy4KCSAgVGhpcyBtYWtlcyBfY2xlYXIgc2FmZSB0byBjYWxsIGJldHdlZW4gX21hcCBhbmQgX3VubWFwLAoJICB3aGlsZSBhdm9pZGluZyBsZWFraW5nIHRoZSBtYXBwZWQgYnVmZmVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0MTMzCgoyMDEyLTAxLTEzIDE0OjIwOjMzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBwcmV2ZW50IHVubGlrZWx5IGNhcHMgbGVhawoKMjAxMi0wMS0xMyAxMDo0MzoxMiArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogcGx1ZyBmYWN0b3J5IGxlYWsgb24gZXJyb3IKCjIwMTItMDEtMTMgMDA6MjI6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYwoKMjAxMi0wMS0xMiAyMDo0NjoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBSZW1vdmUgR1NUX1RZUEVfREFURSwgb3VyIG93biBHRGF0ZSB0eXBlCgkgIFdoaWNoIHdlIGhhZCB0byBhZGQgYmVjYXVzZSBHTGliIGRpZG4ndCBoYXZlIGl0CgkgIGJhY2sgaW4gdGhlIGRheS4gUG9ydCBldmVyeXRoaW5nIHRvIHBsYWluIG9sZAoJICBHX1RZUEVfREFURSwgd2hpY2ggaXMgYWxzbyBhIGJveGVkIHR5cGUuIElkZWFsbHkKCSAgd2UnZCBqdXN0IHVzZSBHRGF0ZVRpbWUgZm9yIGV2ZXJ5dGhpbmcsIGJ1dCBpdAoJICBkb2Vzbid0IHN1cHBvcnQgbm90IHNldHRpbmcgc29tZSBvZiB0aGUgZmllbGRzCgkgIHVuZm9ydHVudGVseSAod2hpY2ggd291bGQgYmUgdmVyeSB1c2VmdWwgZm9yCgkgIHRhZyBoYW5kbGluZyBpbiBnZW5lcmFsLCBpZiB3ZSBjb3VsZCBleHByZXNzCgkgIDIwMTItMDEgZm9yIGV4YW1wbGUpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY2MzUxCgoyMDEyLTAxLTEyIDE5OjUzOjExICswMDAwICBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDBAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBjbGVhciBhZGFwdGVyIGluIHJlc2V0IHNvIGJhc2VwYXJzZSBpcyByZXVzYWJsZQoJICBHc3RCYXNlUGFyc2Ugd2FzIG5vdCBjbGVhcmluZyBpdHMgYWRhcHRlciBvbiByZXNldCBjYXVzaW5nCgkgIHByb2JsZW1zIHdoZW4gYSBwaXBlbGluZSB3ZW50IGZvciBleGFtcGxlIGZyb20gUExBWUlORyB0byBOVUxMCgkgIHN0YXRlIGFuZCB0aGVuIGJhY2sgdG8gUExBWUlORyBhZ2Fpbi4gVGhlIGRhdGEgZnJvbSB0aGUgbGFzdAoJICBzdHJlYW0gd291bGQgYmUgdXNlZCBpbiB0aGUgcGFyc2VyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3NDQ0CgoyMDEyLTAxLTEyIDE1OjUwOjUzICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdGluc3BlY3Q6IGZpeCBmZWF0dXJlcyBhbmQgbGlzdCBsZWFrcwoKMjAxMi0wMS0xMiAxMTowMzoxMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgQVBJIHRvIC5kZWYgZmlsZQoKMjAxMi0wMS0xMSAxMjoxOToyMCArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGdzdHN0cnVjdHVyZTogY2xhcmlmeSBfZ2V0IGRvY3MgYWJvdXQgdGhlIHJldHVybmVkIHJlZmVyZW5jZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3Njg5CgoyMDEyLTAxLTEwIDEzOjAwOjA3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTItMDEtMDYgMTY6Mzk6MDQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFNlbmQgY2FwcyBhZ2FpbiBhZnRlciBhY3RpdmF0aW9uCgkgIEF2b2lkcyBlbmRpbmcgdXAgaW4gY2FzZXMgd2hlcmUgdHlwZWZpbmQgZ2V0cyBhY3RpdmF0ZWQgaW4gcHVsbC1tb2RlCgkgIGFuZCBjYXBzIG5ldmVyIGdldCBzZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3MzM3CgoyMDEyLTAxLTA5IDE1OjU5OjA5ICswMDAwICBDaHJpc3RpYW4gRnJlZHJpayBLYWxhZ2VyIFNjaGFsbGVyIDxjaHJpc3RpYW4uc2NoYWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIEFkZCBsYXRlc3Qgc3BlY2ZpbGUgY2hhbmdlcwoKMjAxMi0wMS0wOSAxNTo1ODo0NSArMDAwMCAgQ2hyaXN0aWFuIEZyZWRyaWsgS2FsYWdlciBTY2hhbGxlciA8Y2hyaXN0aWFuLnNjaGFsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6CgkgIEFsc28gYWRkIGhlYWRlcmZpbGUKCjIwMTItMDEtMDkgMTU6NTc6NTEgKzAwMDAgIENocmlzdGlhbiBGcmVkcmlrIEthbGFnZXIgU2NoYWxsZXIgPGNocmlzdGlhbi5zY2hhbGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBGaXggZG90ZmlsZSBBUEkgdG8gYmUgZXhwb3J0ZWQgc2luY2UgbWFjcm9zIGNhbid0IGJlIEdJIGJvdW5kCgoyMDEyLTAxLTA5IDEzOjE5OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJICB0ZXN0czogaWdub3JlIG5ldyBtZW1vcnkgdGVzdCBiaW5hcnkKCjIwMTItMDEtMDkgMDM6MTQ6NDEgLTA1MDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSAgRml4IHByaW50ZiBmb3JtYXQgYnVpbGQgd2FybmluZ3MKCjIwMTItMDEtMDkgMTM6MTA6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucyBmb3IgbmV3IHN0cmluZ3MKCjIwMTItMDEtMDYgMTU6MDE6MjQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBBbGxvdyBOVUxMIGRlc3Qgd2hlbiBzdWJ0cmFjdGluZyBiaXRtYXNrCgkgIEhhcHBlbnMgd2hlbiBjaGVja2luZyBmb3Igc3Vic2V0cyBvZiBjYXBzCgoyMDEyLTAxLTA2IDEzOjMyOjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGVuc3VyZSB3cml0YWJsZSBtZW1vcnkgaW4gbWVtc2V0CgoyMDEyLTAxLTA2IDEzOjEwOjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGNoZWNrIHNlbWFudGljcyBvZiBuZXN0ZWQgbWFwcGluZ3MKCSAgQ291bnQgaG93IG1hbnkgbWFwcGluZ3MgYXJlIGN1cnJlbnRseSBhY3RpdmUgYW5kIGFsc28gd2l0aCB3aGF0IGFjY2VzcyBwYXR0ZXJuLgoJICBVcGRhdGUgdGhlIGRlc2lnbiBkb2Mgd2l0aCByZXN0cmljdGlvbnMgb24gdGhlIGFjY2VzcyBwYXR0ZXJucyBmb3IgbmVzdGVkCgkgIG1hcHBpbmdzLgoJICBDaGVjayBpZiBuZXN0ZWQgbWFwcGluZ3Mgb2JleSB0aGUgYWNjZXNzIG1vZGUgcmVzdHJpY3Rpb25zIG9mIHRoZSBkZXNpZ24gZG9jLgoJICBBZGQgdmFyaW91cyB1bml0IHRlc3RzIHRvIGNoZWNrIHRoZSBkZXNpcmVkIGJlaGF2aW91ci4KCjIwMTItMDEtMDYgMTM6MDY6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHVubWFwIHdpdGggdGhlIHJpZ2h0IGRhdGEgcG9pbnRlcgoJICBVc2UgdGhlIG9yaWdpbmFsIGRhdGEgcG9pbnRlciB0byB1bm1hcCB0aGUgYnVmZmVyIG1lbW9yeS4KCjIwMTItMDEtMDYgMTA6Mzk6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIGRvY3M6IGltcHJvdmUgbWVtb3J5IGRvY3MKCjIwMTItMDEtMDYgMDc6MDI6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBoYW5kbGUgLTEgc2l6ZSBpbiB1bm1hcAoJICBoYW5kbGUgLTEgaW4gdW5tYXAgY29ycmVjdGx5IHdoZW4gdGhlIG9mZnNldCBpcyBtb2RpZmllZC4KCjIwMTItMDEtMDYgMDY6NDM6MDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBpbXByb3ZlIHNlbWFudGljcyBvZiB1bm1hcAoJICBNYWtlIGFuIHVubWFwIGNhbGwgd2l0aCBhIGRpZmZlcmVudCBkYXRhIHBvaW50ZXIgdGhhbiB0aGUgbWFwIGNhbGwgdXBkYXRlIHRoZQoJICBvZmZzZXQgZmllbGQuIFRoaXMgYWxsb3dzIGZvciBib3RoIG9mZnNldCBhbmQgc2l6ZSBhZGp1c3RlbWVudHMgaW4gdGhlIHVubWFwCgkgIGNhbGwuCgoyMDExLTExLTI5IDE0OjIyOjQ0ICswMTAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBkb24ndCBjb21wZW5zYXRlIGZvciByZW5kZXItZGVsYXkgdHdpY2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzI5OAoKMjAxMi0wMS0wNSAxODoxNToyMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGFkZCBtb3JlIGNoZWNrcwoJICBBZGQgY2hlY2sgZm9yIG1hcHBpbmcgYW5kIHJlc2l6aW5nCgoyMDEyLTAxLTA1IDE3OjI4OjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiB0YWtlIG9mZnNldCBpbnRvIGFjY291bnQKCSAgVGFrZSB0aGUgb2Zmc2V0IGludG8gYWNjb3VudCB3aGVtIG1hcHBpbmcgYW5kIHVubWFwcGluZyB0aGUgYnVmZmVyLgoKMjAxMi0wMS0wNSAxNzowMjo0OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWVtb3J5LnR4dDoKCSAgZG9jczogY2xhcmlmeSByZXNpemUgYW5kIGN1cnJlbnQgbWFwcGluZ3MKCjIwMTItMDEtMDUgMTY6NDE6NTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lbW9yeS50eHQ6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBjbGFyaWZ5IG5lc3RlZCBtYXBwaW5ncywgYWRkIHVuaXQgdGVzdAoKMjAxMi0wMS0wNSAxMjozMDowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgQVBJIHRvIC5kZWYgZmlsZQoKMjAxMi0wMS0wNSAxMzoyMjo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgdGVzdHM6IGFkZCBtb3JlIG1lbW9yeSB1bml0IHRlc3RzCgkgIENoZWNrIGZvciB1bm1hcCB3aXRoIGludmFsaWQgc2l6ZQoKMjAxMi0wMS0wNSAxMzoxMTowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgdGVzdHM6IGFkZCB1bml0IHRlc3QgZm9yIEdzdE1lbW9yeQoJICBBZGQgYSBHc3RNZW1vcnkgdW5pdCB0ZXN0CgkgIEFkZCBzb21lIG1vcmUgYXNzZXJ0cyBpbiBHc3RNZW1vcnkgdG8gY2F0Y2ggaW52YWxpZCBjYXNlcy4KCjIwMTItMDEtMDUgMTM6MDk6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogYWRkIG1hY3JvIHRvIGNoZWNrIGZvciBtZW1vcnkgcmVmY291bnQKCjIwMTItMDEtMDUgMTI6Mzk6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lbW9yeS50eHQ6CgkgIGltcHJvdmUgZG9jcyBhIGxpdHRsZQoKMjAxMS0xMi0xNiAxMzoxMTozNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IEFkZCB0ZXN0cyBmb3IgdGhlIGJpdG1hc2sgdHlwZQoKMjAxMS0xMi0xNiAxMjozOToxNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogQWRkICJiaXRtYXNrIiBhcyBhbGlhcyBmb3IgKEdzdEJpdG1hc2spIHdoZW4gKGRlLSlzZXJpYWxpemluZyB2YWx1ZXMKCjIwMTEtMTItMTYgMTI6MzI6MjYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJICB2YWx1ZTogQWRkIDY0LWJpdCBiaXRtYXNrIHR5cGUKCjIwMTItMDEtMDEgMTY6MzI6MjcgKzAxMDAgIElkYXIgVG9sbGVmc2VuIDxpdG9sbGVmc0BjaXNjby5jb20+CgoJKiBhdXRvZ2VuLnNoOgoJICBidWlsZDogZG9uJ3Qgb3V0cHV0IGNvbmZpZ3VyZSBvcHRpb25zIHZpYSBhdXRvZ2VuIGlmICROT0NPTkZJR1VSRSBpcyBzZXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzI5NgoKMjAxMi0wMS0wNSAwMDozMDozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LWkxOG4tYXBwLmg6CgkqIGdzdC9nc3QtaTE4bi1saWIuaDoKCSAgZ3N0OiBpbmNsdWRlIGxvY2FsZS5oIGJlZm9yZSBhbnkgb3RoZXIgaTE4biBoZWFkZXJzCgkgIFRoaXMgaXMgYWxzbyBob3cgd2UgZG8gaXQgaW4gLWJhc2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjcyOTAKCjIwMTItMDEtMDEgMTY6NDY6MDQgKzAxMDAgIElkYXIgVG9sbGVmc2VuIDxpdG9sbGVmc0BjaXNjby5jb20+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBnc3Rjb25maWcuaDogYWRkcyBhbmQgdXNlcyBTdW5Qcm8gdmlzaWJpbGl0eSBhdHRyaWJ1dGUgZm9yIHByb3BlciBmdW5jdGlvbiBleHBvcnRzCgkgIERlZmluZSBHU1RfRVhQT1JUIGZvciBTdW5Qcm8uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjcyODkKCjIwMTItMDEtMDEgMTY6NDc6MTQgKzAxMDAgIElkYXIgVG9sbGVmc2VuIDxpdG9sbGVmc0BjaXNjby5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBwbHVnaW5zOiBleHBsaWNpdGx5IGNhc3QgaW5pdGlhbGl6YXRpb24gdmFsdWVzIHRvIHRoZSBjb3JyZWN0IHR5cGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzI4OAoKMjAxMi0wMS0wMSAyMDoxNzo0MSArMDEwMCAgSWRhciBUb2xsZWZzZW4gPGl0b2xsZWZzQGNpc2NvLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IGluY2x1ZGUgY29ycmVjdCBwb2xsLmggYmFzZWQgb24gYXV0b2NvbmYgdGVzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3Mjg2CgoyMDEyLTAxLTA0IDIzOjQ2OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBjaGVjayBmb3Igc3lzL3BvbGwuaAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3Mjg2CgoyMDEyLTAxLTA0IDE5OjUwOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYTYyZjNkNCB0byAwODA3MTg3CgoyMDEyLTAxLTA0IDEwOjA0OjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IG9ubHkgcmVzZXJ2ZSA2IGV4dHJhIGZsYWdzCgkgIE9ubHkgcmVzZXJ2ZSA2IGV4dHJhIGZsYWdzIGluc3RlYWQgb2YgMTAgc28gdGhhdCBtb3JlIG1lZGlhIHNwZWNpZmljIGZsYWdzCgkgIGFyZSBhdmFpbGFibGUuCgoyMDEyLTAxLTAzIDE1OjI2OjU0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmM6CgkgIEdTVF9GTE9XX1VORVhQRUNURUQgLT4gR1NUX0ZMT1dfRU9TCgoyMDEyLTAxLTAzIDE1OjI1OjMxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJICBHU1RfRkxPV19VTkVYUEVDVEVEIC0+IEdTVF9GTE9XX0VPUwoKMjAxMi0wMS0wMyAxNTowNTo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb21wYXQuaDoKCSAgY29tcGF0OiByZXN0b3JlIFVORVhQRUNURUQKCjIwMTItMDEtMDMgMTU6MDM6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzYW1wbGUuYzoKCSAgZG9jczogZml4IHNvbWUgZG9jcwoKMjAxMi0wMS0wMyAxNDo0NTowOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUKCjIwMTItMDEtMDMgMTQ6NDM6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBhdm9pZCBleHBvc2luZyB0aGUgbGlzdHMgaW4gdGFncwoKMjAxMi0wMS0wMyAxMzo0MjoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IGFkZCBtaXNzaW5nIGZ1bmN0aW9ucwoJICBBZGQgbWlzc2luZyBhbmQgZXNzZW50aWFsIGZ1bmN0aW9ucyBub3cgdGhhdCB3ZSBjYW4ndCBkaXJlY3RseSB1c2UgR3N0U3RydWN0dXJlCgkgIG1ldGhvZHMgb24gdGhlIHRhZ2xpc3QgYW55bW9yZS4KCjIwMTItMDEtMDMgMTA6NDI6MzEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgdmFsdWU6IGFkZCBtYWNybyB0byBjaGVjayBpZiBhIGd2YWx1ZSBob2xkcyBhIHNhbXBsZQoKMjAxMi0wMS0wMiAxNTo0Nzo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkgIGRvY3M6IGZpeCBidWlsZCBvZiBkb2NzIGV4YW1wbGVzCgkgIFVwZGF0ZSBmb3IgcmVnaXN0cnkgbWV0aG9kIHJlbmFtZQoKMjAxMi0wMS0wMiAxNTozOTowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdHVybiBhc3NlcnQgaW50byBhIHJlYWwgZXJyb3IKCSAgUG9zdCBhIHJlYWwgZXJyb3IgaW5zdGVhZCBvZiBqdXN0IGFzc2VydGluZy4KCjIwMTItMDEtMDIgMTU6Mzg6MjUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaGFuZGxlIGxhdGVuY3kgZXZlbnQKCjIwMTItMDEtMDIgMDI6MzI6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICByZWdpc3RyeTogZ2V0IHJpZCBvZiBnc3RfZGVmYXVsdF9yZWdpc3RyeV8qKCkgY29udmVuaWVuY2UgbWFjcm9zCgkgIFRoZXkncmUgbm90IHJlYWxseSB3b3J0aCBpdDogaGFyZGx5IHNhdmUgYW55IHR5cGluZywgYW5kIGFyZW4ndAoJICBncmVhdCBmb3IgYmluZGluZ3Mgb3IgZ29iamVjdC1pbnRyb3NwZWN0aW9uLgoKMjAxMi0wMS0wMiAwMjoyMjo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICByZWdpc3RyeTogcmVuYW1lIGdzdF9yZWdpc3RyeV9nZXRfZGVmYXVsdCgpIHRvIGdzdF9yZWdpc3RyeV9nZXQoKQoJICBJdCdzIG5vdCByZWFsbHkgYSBkZWZhdWx0IGlmIHRoZXJlIGlzIG9ubHkgb25lIHRoYXQgY2FuJ3QgYmUgY2hhbmdlZC4KCSAgU2hvdWxkIHdlIHJldHVybiBhIHJlZiBsaWtlIGUuZy4gZ192b2x1bWVfbW9uaXRvcl9nZXQoKSBkb2VzPwoKMjAxMi0wMS0wMiAwMjoyMTo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0dGFnbGlzdC5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYwoKMjAxMi0wMS0wMiAwMDoxNzoxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdzOiBhZGQgR1NUX1RBR19MQU5HVUFHRV9OQU1FCgkgIEFQSTogR1NUX1RBR19MQU5HVUFHRV9OQU1FCgoyMDEyLTAxLTAxIDIwOjU5OjIyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC1jb250cm9sbGVyLnR4dDoKCSAgZG9jczogdXBkYXRlIGNvbnRyb2xsZXIgZGVzaWduIGRvYwoKMjAxMi0wMS0wMSAyMDo1NzozNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiByZW5hbWUgc29tZSB0ZXN0cwoKMjAxMi0wMS0wMSAyMDo1NToyMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogc3VwcG9ydCBjb250cm9sIG1hcHBpbmcgZm9yIGVudW1zCgkgIEFkZCBhIG1hcHBpbmcgZm9yIGVudW0gdHlwZXMgKHN1cHBvcnRpbmcgc3BhcnNlIGVudW1zKS4gQWRkIGEgdGVzdC4KCjIwMTItMDEtMDEgMjA6NDM6NTEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSAgY29udHJvbGxlcjogcmVtb3ZlIG5vbnNlbnNlIHBhcnRzIGZyb20gdGVzdCBvYmplY3QgcHJvcGVydHkgZGVzY3JpcHRpb25zCgoyMDEyLTAxLTAxIDE4OjU0OjIzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZTogZml4IGN1YmljIGludGVycG9sYXRpb24gZm9yIGFycmF5cwoKMjAxMi0wMS0wMSAxODo1MDo1NSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkgIGF1ZGlvLWV4YW1wbGU6IGFsc28gcGxvdCByZXZlcnNlLXNhdwoKMjAxMi0wMS0wMSAxODo0MzoyMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICBsZm9jb250cm9sc291cmNlOiBjbGVhbnVwcyBhbmQgZml4IHRyaWFuZ2xlIGNhbGN1bGF0aW9ucwoKMjAxMi0wMS0wMSAxODozNDoxMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJICBhdWRpby1leGFtcGxlOiBmaXggdGhlIGV4YW1wbGUKCSAgV2UgbmVlZCB0byBzY2FsZSB0aGUgZnJlcXVlbmN5IHZhbHVlcy4KCjIwMTItMDEtMDEgMTU6MTY6MDYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSAgbGZvY29udHJvbHNvdXJjZTogbWFrZSBjaGFpbmFibGUKCSAgTm93IHRoZSBwcm9wZXJ0aWVzIG9mIHRoaXMgY29udHJvbHNvdXJjZSBhcmUgaW4gdHVybiBjb250cm9sYWJsZS4gQWRkIGFuIGV4YW1wbGUKCSAgdG8gc2hvdyB0aGUgdXNhZ2UuCgoyMDEyLTAxLTAxIDE1OjAxOjIyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBhZGQgbG9nZ2luZyBhbmQgZml4IGFycmF5IGZ1bmN0aW9ucwoKMjAxMi0wMS0wMSAxNDo1NTozNSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBjbGVhbnVwIHRoZSB0ZXN0cwoKMjAxMi0wMS0wMSAxNDoyODo1NCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJICBjb250cm9sbGVyOiBhZGQgbW9yZSBkZWJ1ZyBsb2dnaW5nCgoyMDExLTEyLTMxIDE3OjM3OjIwIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBjb252ZXJ0IE1ha2VmaWxlIHNwYWNlcyB0byB0YWJzCgoyMDExLTEyLTMxIDE1OjUyOjE4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSAgY29udHJvbGxlcjogYWxzbyB0ZXN0IGFycmF5IGZ1bmN0aW9ucwoJICBJbXByb3ZlIHRoZSBleGFtcGxlIHRvIGFsc28gY29sbGVjdCB2YWx1ZSBhcnJheXMgYW5kIHBsb3QgdGhlbS4KCjIwMTEtMTItMzEgMTU6MjY6MjYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGNvbnRyb2xsZXI6IHJlbW92ZSBvYnNvbGV0ZSBGSVhNRSBjb21tZW50CgoyMDExLTEyLTMxIDA5OjU2OjUzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IGZpeCB0ZXN0cwoJICBTZXQgYSBkZWZpbmVkIHZhbHVlIHRvIGNoZWNrIGZvciBuby1jaGFuZ2UuCgoyMDExLTEyLTMwIDE4OjM1OjQwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSAgY29udHJvbC1zb3VyY2VzOiB0dXJuIGludG8gR3N0T2JqZWN0cwoJICBUaGlzIGlzIGEgcHJlcGFyYXRpb24gZm9yIGNoYWluaW5nIHRoZW0uCgoyMDExLTEyLTMwIDE5OjM3OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtYXJzaGFsLmxpc3Q6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgcmVnaXN0cnk6IHJlbW92ZSBwYWRkaW5nIGFuZCBzaWduYWwgdmZ1bmNzCgkgIEFuZCBmaXggc2lnbmFsIEdUeXBlcyBhbmQgbWFyc2hhbGxlci4gTm8gb25lIHdpbGwgZXZlcgoJICBuZWVkIHRvIHN1YmNsYXNzIG91ciByZWdpc3RyeSwgc28ganVzdCByZW1vdmUgdGhlIHBhZGRpbmcKCSAgYW5kIHRoZSBzaWduYWwgdmZ1bmNzLgoKMjAxMS0xMi0zMCAxNTozOTo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IGRpc2FibGUgR3N0SW5kZXggdW5pdCB0ZXN0CgoyMDExLTEyLTMwIDE1OjMxOjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguYzoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdG1lbWluZGV4LmM6CgkgIGluZGV4OiByZW5hbWUgR3N0QXNzb2NGbGFncyB0byBHc3RJbmRleEFzc29jaWF0aW9uRmxhZ3MKCSAgSnVzdCBpbiBjYXNlIHdlIHJlc3VycmVjdCB0aGlzIGxhdGVyLgoKMjAxMS0xMi0zMCAxNToyNDo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguaDoKCSogbGlicy9nc3QvYmFzZS9nc3RtZW1pbmRleC5jOgoJICBiYXNlOiBkaXNhYmxlIHVudXNlZCBpbmRleCBBUEkgYW5kIG1ha2UgZnVuY3Rpb25zIHN0YXRpYwoJICBJdCdzIHNpbXBseSBwcml2YXRlIGhlbHBlciBBUEkgZm9yIG5vdywgdW50aWwgc29tZW9uZQoJICBmaXhlcyB1cCBHc3RCYXNlUGFyc2Ugbm90IHRvIG5lZWQgaXQgYW55IG1vcmUuCgoyMDExLTEyLTMwIDE1OjI0OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogcmVtb3ZlIGluZGV4IEFQSSBmcm9tIC5kZWYgZmlsZQoKMjAxMS0xMi0zMCAxNTowNjozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OiBhZGQgTEFSR0UgcGFkZGluZyB0byBjbGFzcyBzdHJ1Y3R1cmUKCSAgRm91ciBzbG90cyBmb3IgZXhwYW5zaW9uIGlzIG5vdCBhIGxvdC4KCjIwMTEtMTItMzAgMTU6MDM6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0bWVtaW5kZXguYzoKCSogcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9pbmRleGVycy8uZ2l0aWdub3JlOgoJKiBwbHVnaW5zL2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGluZGV4ZXJzLmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0aW5kZXhlcnMuaDoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBpbmRleDogcmVtb3ZlIEdzdEluZGV4IGFuZCBHc3RJbmRleEZhY3RvcnkgZm9yIG5vdwoJICBUaGVyZSBhcmUgbWFueSBnb29kIHVzZSBjYXNlcyBmb3IgR3N0SW5kZXggYW5kIHdlIHdhbnQKCSAgdG8gYWRkIGl0IGJhY2sgYWdhaW4gaW4gc29tZSBmb3JtLCBidXQgcG9zc2libHkgbm90IHdpdGgKCSAgdGhlIGN1cnJlbnQgQVBJLCB3aGljaCBpcyB2ZXJ5IHBvd2VyZnVsIChtYXliZSB0b28gcG93ZXJmdWwpLAoJICBidXQgYWxzbyBhIGJpdCBjb25mdXNpbmcuIEF0IHRoZSB2ZXJ5IGxlYXN0IHdlJ2QgbmVlZCB0bwoJICBtYWtlIHRoZSBBUEkgYmluZGluZ3MtZnJpZW5kbHkuCgoyMDExLTEyLTMwIDE3OjU3OjQxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IHVucmVmIHRoZSB0d28gY290bnJvbGxlciB0eXBlcyBpbiBfZGVpbml0KCkKCjIwMTEtMTItMzAgMTc6NTE6MDEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBhZGQgbW9yZSB0ZXN0cyB0byBjb3JlIGNvbnRyb2xsZXIgc3VpdGUKCSAgRXh0ZW5kIHRoZSBkdW1teSBjb250cm9sLXNvdXJjZSB0byBhbGxvdyB0ZXN0aW5nIHRoZSBzeW5jIGNvZGUgcGF0aC4gQWRkIHRlc3QKCSAgZm9yIDE6MSBhbmQgMjoxIHZhbHVlIDwtPiBjb250cm9sLXNvdXJjZSBzeW5jLgoKMjAxMS0xMi0zMCAxMzo1MjowOCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IGFkZCBhIHRlc3QgZm9yIGJpbmRpbmdzIGNvbnRyb2wgc291cmNlcyBtdWx0aXBsZSB0aW1lcwoKMjAxMS0xMi0zMCAxMjo1OTo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0aC1jb21wYXQuaDoKCSAgbWF0aC1jb21wYXQ6IG1vdmUgc3RhdGljIHZhcmlhYmxlIGZvciBOQU4gaW50byAjaWZuZGVmIE5BTiBibG9jawoJICBBbmQgdXNlIEdfR05VQ19VTlVTRUQgaW5zdGVhZCBvZiBfX2F0dHJpYnV0ZV91c2VkX18KCjIwMTEtMTItMzAgMTM6MzI6MTggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvbWF0aC1jb21wYXQuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IHVzZSBOQU4gaW5zdGVhZCBvZiBGUF9OQU4gKHdoaWNoIGlzIHRoZSBjbGFzcykKCSAgQWxzbyBhZGQgYSBmYWxsYmFjayBkZWZpbmUgdG8gbWF0aC1jb21wYXQuaC4KCSAgRml4ZXMgIzY2Njg4NwoKMjAxMS0xMi0yOSAxNjo1Njo0NiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXQtc2VsZWN0b3I6IERvIG5vdCBmYWxzZSB3YXJuIGFib3V0IHVubGlua2VkIHBhZAoJICBXaGVuIG91dHB1dC1zZWxlY3RvciBkaWRuJ3QgcmVjZWl2ZSBhIG5ld3NlZ21lbnQgZXZlbnQgaXQgd291bGQKCSAgd2FybiBhYm91dCBwYWQgYmVpbmcgdW5saW5rZWQgd2hlbiBzd2l0Y2hpbmcgcGFkcy4gTWFraW5nIHRoZSBsb2dzCgkgIHdyb25nIGFuZCBtaXNsZWFkaW5nLgoKMjAxMS0xMi0yOSAxNjo0OTozOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTItMjggMTU6MTM6MDkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogRml4IGxlYWsgaW4gcGFkIGNoZWNrCgoyMDExLTEyLTI4IDE0OjUxOjUwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGRlaW5pdCBtZXRhIGZsYWdzIHRvbwoKMjAxMS0xMi0yOCAxMjoyNTo1OSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogSW5pdGlhbGl6ZSBuZXcgR3N0TWV0YUZsYWdzIGluIGluaXRfcG9zdCgpCgoyMDExLTEyLTAxIDE5OjA1OjU5ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBnc3RxdWVyeTogU21hbGwgZG9jIGZpeHVwcwoKMjAxMS0xMi0xNiAwMjoyMDoyNyArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdHNhbXBsZS5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3R0cmFjZS5oOgoJICB3aW4zMjogZml4IGV4cG9ydGVkIHZhcmlhYmxlcyBmb3IgVlMgMjAxMAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY2MjE5CgoyMDExLTEyLTI3IDEzOjQ4OjM2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJICB0cmlnZ2VyY29udHJvbHNvdXJjZTogZml4IGNvbnRyb2wgcmVhY2hlcyBlbmQgb2Ygbm9uLXZvaWQgZnVuY3Rpb24KCSAgUmV0dXJuIE5BTiBhbmQgY2hlY2sgdGhlIHZhbHVlIGZ1cnRoZXIgdXAuCgkgIEZpeGVzICM2NjY4OTAKCjIwMTEtMTItMjcgMTE6NDA6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBxdWljay1maXggY29tcGlsZXIgd2FybmluZyBicmVha2luZyB0aGUgYnVpbGQKCSAgVGhpcyBpcyBsaWtlbHkgbm90IHRoZSBwcm9wZXIgZml4LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY2ODkwCgoyMDExLTEyLTI3IDExOjM1OjI4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSAgdGVzdHM6IGNhbid0IGFjY2VzcyBwcml2YXRlIHJlZ2lzdHJ5IHN0cnVjdHVyZSBtZW1iZXJzIGRpcmVjdGx5IGFueSBsb25nZXIKCjIwMTEtMTItMjcgMTE6MjQ6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBmaXggY29tcGlsZXIgd2FybmluZyBpbiBpbnRlcnBvbGF0aW9uIGNvbnRyb2wgc291cmNlCgkgIGdzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6NTQ6IHdhcm5pbmc6IHR5cGUgcXVhbGlmaWVycyBpZ25vcmVkCgkgIG9uIGZ1bmN0aW9uIHJldHVybiB0eXBlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjY4OTAKCjIwMTEtMTItMjYgMTg6NDQ6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IHJlbW92ZSAiZmQiIHByb3BlcnR5CgkgIEl0J3Mgbm8gbG9uZ2VyIHVzZWZ1bCwgc2luY2Ugd2UgZG9uJ3QgdXNlIG1tYXAgYW55IG1vcmUgYW55d2F5LAoJICBhbmQgd2UgbWlnaHQgdXNlIGEgZGlmZmVyZW50IEFQSSBmb3IgSS9PIGluIGZ1dHVyZSAoc3VjaCBhcyBHSU8pLgoKMjAxMS0xMi0yNiAxODo0MToxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogbW92ZSBwcml2YXRlIGJpdHMgaW50byBwcml2YXRlIHN0cnVjdAoKMjAxMS0xMi0yNiAxMToyNjowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IG1pY3JvLW9wdGltaXNhdGlvbjogYXZvaWQgc29tZSB1bm5lY2Vzc2FyeSBnX3ZhbHVlX3Vuc2V0KCkKCSAgV2Uga25vdyB0aGVyZSdzIG5vdGhpbmcgdG8gZG8gaGVyZSBhbmQgY2FuIHNhdmUgdXMgdGhlIGZ1bmN0aW9uCgkgIGNhbGxzIGFuZCBHVmFsdWVUYWJsZSBsb29rdXBzLgoKMjAxMS0xMi0yNSAyMzo0MTowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBBbmRyb2lkLm1rOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGdzdHJlYW1lci5zcGVjLmluOgoJKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmg6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kcC1wcml2YXRlLmg6CgkqIHBrZ2NvbmZpZy9NYWtlZmlsZS5hbToKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLnBjLmluOgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGxpYnNjcHAuY2M6CgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJKiB3aW4zMi9NQU5JRkVTVDoKCSogd2luMzIvdnM2L2dzdHJlYW1lci5kc3c6CgkqIHdpbjMyL3ZzNi9saWJnc3RkYXRhcHJvdG9jb2wuZHNwOgoJICBsaWJzOiByZW1vdmUgZ2RwIGRhdGFwcm90b2NvbCBsaWJyYXJ5CgkgIE1hZGUgcHJpdmF0ZSBhbmQgbW92ZWQgdG8gZ2RwIHBsdWdpbiBpbiAtYmFzZSBmb3IKCSAgdGhlIHRpbWUgYmVpbmcsIHVudGlsIHdlIGZpZ3VyZSBvdXQgd2hhdCB3ZSBkbyB3aXRoCgkgIGdkcCBhbmQgMC4xMS4KCjIwMTEtMTItMjUgMjE6MDI6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkgIHRlc3RzOiBmaXggdW51c2VkLXZhcmlhYmxlIGNvbXBpbGVyIHdhcm5pbmcKCjIwMTEtMTItMjUgMjE6MDE6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSBleHBvcnRzIGZvciBuZXcgQVBJCgoyMDExLTEyLTI1IDIwOjQ5OjQxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC1jb250cm9sbGVyLnR4dDoKCSAgZG9jczogYWRkIHRoZSBzdGFydCBvZiBhIGRlc2lnbiBkb2N1bWVudCBmb3IgY29udHJvbGxlcgoKMjAxMS0xMi0yNSAxODo0OTowMSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogc3BsaXQgYW5kIGNsZWFudXAgdGhlIHRlc3RzCgkgIFRoZSBjb250cm9sbGVyIG9iamVjdCB3YXMgb25jZSBjb3BpZWQgZnJvbSBidXp6dGFyZHMgdW5pdCB0ZXN0cy4gQ2hhbmdlCgkgIFRlc3RNb25vU291cmNlIHRvIFRlc3RPYmogYXMgaXQgaXMgbm90IGEgZnVsbCBmbGVkZ2VkIGVsZW1lbnQuIFNwbGl0IHRoZSB0ZXN0cwoJICBpbnRvIGEgY29yZSBhbmQgbGlicmFyeSB0ZXN0IHN1aXRlLgoKMjAxMS0xMi0yMiAyMzo0ODozMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2Vwcml2YXRlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2Vwcml2YXRlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RsaWJzY3BwLmNjOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2wtc291cmNlcy5jOgoJICBjb250cm9sbGVyOiBtb3ZlIEdWYWx1ZSBoYW5kbGluZyBmcm9tIGNvbnRyb2wtc291cmNlcyB0byAtYmluZGluZwoJICBDb250cm9sU291cmNlcyBhcmUgbm93IGdkb3VibGUgYmFzZWQuIEEgY29udHJvbCBzb3VyY2UgaXMgbWFwcGVkIHRvIGEKCSAgcGFydGljdWxsYXIgR09iamVjdCBwcm9wZXJ0eSB1c2luZyBhIENvbnRyb2xCaW5kaW5nLgoKMjAxMS0xMi0yMCAyMjozNjoxOCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IG1vdmUgR3N0Q29udHJvbGxlZFByb3BlcnR5IGludG8gYSBzZXBhcmF0ZSBjbGFzcwoJICBBZGQgYSBHc3RDb250cm9sQmluZGluZyBjbGFzcy4gVGhpcyBpcyBhIHByZXBhcmF0aW9uIGZvciBtYWtpbmcgdGhlCgkgIGNvbnRyb2xzb3VyY2VzIGdlbmVyYXRlIGRvdWJsZSB2YWx1ZWQgY29udHJvbCBjdXJ2ZXMgYW5kIGRvIHRoZSBncGFyYW1zcGVjCgkgIG1hcHBpbmcgaW4gdGhlIGNvbnRyb2wgYmluZGluZy4gTm93IHRoZSBBUEkgaW4gR3N0T2JqZWN0IGlzIGFnYWluIG1vc3RseQoJICBmb3IgY29udmVuaWVuY2UuCgoyMDExLTEyLTI1IDEyOjQ3OjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jCgoyMDExLTEyLTI1IDEyOjM5OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiByZXR1cm4gYW55IHJlbWFpbmluZyBkYXRhIG9uIEVPUyBiZWZvcmUgcmV0dXJuaW5nIEZMT1dfVU5FWFBFQ1RFRAoKMjAxMS0xMi0yNSAxMjoyOTo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogbWlub3IgY29zbWV0aWMgY2hhbmdlcwoJICBSZW5hbWUgd29mZnNldCB2YXJpYWJsZSwgbWFpbnRhaW4gc2VwYXJhdGUgYnl0ZXNfcmVhZCBpbiBhZGRpdGlvbgoJICB0byBsZW5ndGggdmFyaWFibGUuCgoyMDExLTEyLTI1IDEyOjEzOjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkgIGNvbGxlY3RwYWRzMjogZml4IHVwIGNvbXBpbGF0aW9uIGFmdGVyIG1lcmdlCgoyMDExLTEyLTI1IDExOjU4OjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYwoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYwoJICBEaXQgbm90IG1lcmdlIGNvbnRyb2xsZXIgb3IgYmFzZXRyYW5zZm9ybSBjaGFuZ2VzLgoKMjAxMS0xMi0yNCAxNDo1OToxNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIHBvcnRpbmctdG8tMC4xMQoJICBVcGRhdGUgZ3N0X3BhZF9nZXRfY2FwcyAtPiBnc3RfcGFkX3F1ZXJ5X2NhcHMgY2hhbmdlCgoyMDExLTEyLTIzIDE1OjM3OjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogY2xlYW51cCBtZXRhZGF0YSBpbiByZXNldF9idWZmZXIKCSAgVXNlIHRoZSByZXNldF9idWZmZXIgdm1ldGhvZCB0byByZW1vdmUgdGhlIHVucG9vbGVkIG1ldGFkYXRhIGZyb20gdGhlIGJ1ZmZlci4KCjIwMTEtMTItMjIgMTY6MDA6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmOiB1cGRhdGUgZm9yIG5ldyBzeW1ib2xzCgoyMDExLTEyLTIyIDE1OjU1OjI5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogaGFuZGxlIG1ldGFkYXRhIGluIHRoZSBwb29sCgkgIE1hcmsgYWxsIG1ldGFkYXRhIG9uIHRoZSBhbGxvY2F0ZWQgYnVmZmVycyB3aXRoIGEgUE9PTEVEIGZsYWcuIFdoZW4gYSBidWZmZXIKCSAgcmV0dXJucyB0byB0aGUgcG9vbCwgcmVtb3ZlIGFsbCBtZXRhZGF0YSB0aGF0IGRpZCBub3QgaGF2ZSB0aGUgUE9PTEVEIGZsYWcuIFRoaXMKCSAgbWFrZXMgc3VyZSB0aGF0IHdlIG5ldmVyIGxlYXZlIHVua25vd24gbWV0YWRhdGEgdG8gdGhlIGJ1ZmZlcnMgaW4gdGhlIHBvb2wuCgoyMDExLTEyLTIyIDE1OjU0OjAzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogYWRkIGZvcmVhY2ggZnVuY3Rpb24gZm9yIHRoZSBtZXRhZGF0YQoKMjAxMS0xMi0yMiAxNTo1MzoxOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IHNtYWxsIGRvYyBmaXgKCjIwMTEtMTItMjIgMTU6NTI6MDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkgIG1ldGE6IGFkZCBtZXRhZGF0YSBmbGFncwoJICBBZGQgbWV0YWRhdGEgZmxhZ3Mgc28gdGhhdCB3ZSBjYW4gc2V0IGV4dHJhIHByb3BlcnRpZXMgb2YgdGhlIG1ldGFkYXRhCgoyMDExLTEyLTAyIDE0OjEwOjMyICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogb25seSBoYXZlIGEgdG9wLWxldmVsIHBpcGVsaW5lIGRvIHBpcGVsaW5lIG1hbmFnZW1lbnQKCSAgRml4ZXMgIzY2NTM5MC4KCjIwMTEtMTItMjIgMTE6MDg6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBmaXggR1R5cGUgbmFtZSBvZiBpbnRlcnBvbGF0aW9uIG1vZGUgZW51bQoKMjAxMS0xMi0yMSAxMToxMzo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWY6IHVwZGF0ZQoKMjAxMS0xMi0yMSAxMTowODozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IHJlbmFtZSB2YXJpYWJsZSBmb3IgY29uc2lzdGVuY3kKCSAgUmVuYW1lIHRoZSB2YXJpYWJsZSBmb3IgR1NUX0NBUFNfTk9ORSB0byBfZ3N0X2NhcHNfbm9uZSBmb3IgY29uc2lzdGVuY3kgYW5kIHRvCgkgIGhpZSB0aGUgZmFjdCB0aGF0IE5PTkUgY2FwcyBhcmUgYWxzbyBhY2NpZGVudGFsbHkgZW1wdHkgY2Fwcy4KCjIwMTEtMTItMTkgMTQ6Mjc6NDcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IElmIHRoZSBmaWx0ZXJlZCBwZWVyIGNhcHMgYXJlIGFscmVhZHkgZW1wdHkgZXJyb3Igb3V0IGVhcmx5CgoyMDExLTEyLTIwIDEzOjIxOjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZjogdXBkYXRlIGRlZnMKCjIwMTEtMTItMjAgMTM6MTQ6MDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiBhZGQgQU5ZIGFuZCBFTVBUWSBzaW5nbGV0b25zCgkgIEFkZCBhIHNpbmdsZXRvbiBmb3IgQU5ZIGFuZCBFTVBUWSBjYXBzIGFuZCBtYWtlIHRoZSBHU1RfQ0FQU19BTlkgYW5kCgkgIEdTVF9DQVBTX05PTkUgcG9pbnQgdG8gdGhlbS4gVGhpcyBtYWtlcyB0aGUgQVBJIG1vcmUgY29uc2lzdGVudCBub3cKCSAgdGhhdCB0aGUgbWFjcm8gZG9lcyBub3QgbWFnaWNhbGx5IGNyZWF0ZSBhIHJlZi4gSXQgYWxzbyBzb2x2ZXMgc29tZSBsZWFrcyBpbgoJICBwbGFjZXMgd2hlcmUgdGhlIG1hY3JvIHdhcyB1c2VkIHRvIHJlZ2lzdGVyIGEgcGFkdGVtcGxhdGUuCgoyMDExLTEyLTIwIDEzOjEzOjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJICByZW1vdmUgY29uc3QgaW4gZ3N0X3R5cGVfZmluZF9yZWdpc3RlcigpCgkgIFJlbW92ZSB0aGUgY29uc3QgZnJvbSB0aGUgR3N0Q2FwcyBpbiBnc3RfdHlwZV9maW5kX3JlZ2lzdGVyKCkgYmVjYXVzZSB0aGUKCSAgZnVuY3Rpb24gdGFrZXMgYSByZWYgdG8gdGhlIGNhcHMuCgoyMDExLTEyLTIwIDEyOjU5OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUKCjIwMTEtMTItMjAgMTE6Mzg6MTkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiByZW1vdmUgdW51c2VkIHBhcmVudF9jbGFzcyB2YXJyaWFibGUgZnJvbSBjb250cm9sc291cmNlCgoyMDExLTEyLTE5IDIzOjMyOjU3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkgIGNvbnRyb2xsZXI6IGNsZWFudXAgaW50ZXJwb2xhdGlvbiBtb2RlcwoJICBSZW1vdmUgZGVwcmVjYXRlZC91bmltcGxlbWVudGVkIG1vZGVzLiBUdXJuIGludGVycG9sYXRpb24gbW9kZSBpbnRvIGEgZ29iamVjdAoJICBwcm9wZXJ0eS4gVXBkYXRlIGRvY3MgYW5kIGV4YW1wbGVzLgoKMjAxMS0xMi0xOSAxMToxMzo0NSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2Vwcml2YXRlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSAgY29udHJvbHNvdXJjZXM6IHJlZmFjdG9yIGludGVycG9sYXRpb24gY29udHJvbCBzb3VyY2UKCSAgTW92ZSBtb3N0IG9mIHRoZSBjb2RlIHRvIGEgR3N0VGltZWRWYWx1ZUNvbnRyb2xTb3VyY2UuIFNwbGl0IG91dCB0aGUgdHJpZ2dlcgoJICAnaW50ZXJwb2xhdGlvbiBtb2RlJyB0byBhIG5ldyBjb250cm9sIHNvdXJjZSBjbGFzcy4gTW92ZSB0ZXN0cyBhbmQgZXhhbXBsZXMgdG8KCSAgbmV3IGFwaS4gVXBkYXRlIGRvY3MuCgkgIEZpeGVzICM2MTAzMzgKCjIwMTEtMTItMTkgMjI6MDE6MDIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbHNvdXJjZTogY2xlYW4gdXAgbGZvIGNvbnRyb2wgc291cmNlCgkgIFJlbW92ZSBwYXJlbnRfY2xhc3MgYW5kIHVzZSB2YXIgZnJvbSBHX0RFRklORV9UWVBFIG1hY3JvLiBSZW1vdmUgdW51c2VkIGRpc3Bvc2UKCSAgaW1wbGVtZW50YXRpb24uCgoyMDExLTEyLTE5IDIwOjU3OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgY29sbGVjdHBhZHMyIGZ1bmN0aW9uIHRvIC5kZWYgZmlsZQoKMjAxMS0xMi0xNiAxNzo1OToyMiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJICBjb2xsZWN0cGFkczI6IGFkZCBjb252ZW5pZW5jZSBjbGlwcGluZyBmdW5jdGlvbgoJICAuLi4gd2hpY2ggYWxzbyBjb252ZXJ0cyB0byBydW5uaW5nIHRpbWU7IHVzZWZ1bCBmb3IgdHlwaWNhbCBtdXhlci4KCjIwMTEtMTItMTkgMTc6Mzg6MTggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGRvIG5vdCBkZWxheSBzcGFyc2Ugc3RyZWFtIG5ld3NlZ21lbnQgdXBkYXRlcwoKMjAxMS0xMi0xOSAxNzowMDoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBtYWtlIHN1YmNsYXNzZXMgYWRkIG90aGVyIGZsYWdzCgkgIEFkZCBHU1RfTUFQX0ZMQUdfTEFTVCBzbyB0aGF0IGltcGxlbWVudGF0aW9ucyBjYW4gYWRkIGFkZGl0aW9uYWwgZmxhZ3Mgd2hlbgoJICBtYXBwaW5nIG1lbW9yeS4KCjIwMTEtMTItMTkgMTI6MzM6MTggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHN1Z2dlc3Rpb24gY29tcGF0aWJsZSB3aXRoIHVwc3RyZWFtIGlzIG5vdCBtdWNoIG9mIGEgc3VnZ2VzdGlvbgoJICAuLi4gaW4gdGhhdCB1cHN0cmVhbSBpcyBhbHJlYWR5IGNvbXBseWluZyB3aXRoIHRoYXQgc3VnZ2VzdGlvbi4KCSAgRml4ZXMgIzY2NjE3NC4KCjIwMTEtMTItMTUgMTQ6MzE6MDUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSAgY29sbGVjdHBhZHMyOiBkZWxheSBjb2xsZWN0aW5nIGJ1ZmZlciBpZiBhIHBhZCBuZXdseSBzZXQgd2FpdGluZwoJICAuLi4gYXMgY29tbWVudGVkOyBtYWtlIGNvZGUgY29ycmVzcG9uZCB0byBpdCAoYWdhaW4pLgoKMjAxMS0xMi0xNSAxNjowNjozMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IHVzZXIgdGhlIHBhcmVudF9jbGFzcyB2YXJzIGZyb20gR19ERUZJTkVfVFlQRQoKMjAxMS0xMi0xNCAxMjoxMzozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgcGFkOiBhbGxvdyBOVUxMIGFzIGZpbHRlciBjYXBzIGFyZ3VtZW50IHdpdGggcXVlcnlfY2FwcygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjYxNTQKCjIwMTEtMTItMTIgMTM6MDU6MzYgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IGRvIG5vdCBtaXN0YWtlIHNob3J0IHJlYWRzIGZvciBFT1MKCSAgV2hpbGUgbG9jYWwgZmlsZXN5c3RlbXMgd2lsbCB1c3VhbGx5IG5vdCBjYXVzZSBzaG9ydCByZWFkcywKCSAgdGhpcyBtYXkgaGFwcGVuIG9uIHNlZWthYmxlIGZpbGVzIG9uIHNvbWUgcmVtb3RlIGZpbGVzeXN0ZW1zLgoJICBJbnN0ZWFkLCBsb29wIHRpbGwgd2UgZ2V0IHRoZSByZXF1ZXN0ZWQgYW1vdW50IG9mIGRhdGEsIG9yCgkgIGFuIGFjdHVhbCBFT1MgKGllLCAwIGJ5dGVzKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NTkyMQoKMjAxMS0xMS0xNCAwMjoyNjozMSArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogQ2xlYXIgcXVldWVkIGZyYW1lcyB3aXRoIG90aGVyIHF1ZXVlcwoKMjAxMS0xMi0xMiAxMjoxMTo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogdXNlIG5ldyAndHJhbnNmZXIgZmxvYXRpbmcnIGFubm90YXRpb24gZm9yIGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgpCgkgIFJlcXVpcmVzIGdvYmplY3QtaW50cm9zcGVjdGlvbiAxLjMxLjEgKG9sZGVyIHZlcnNpb25zIHdpbGwKCSAgZXJyb3Igb3V0IHdpdGggdGhhdCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjQwOTkKCjIwMTEtMTItMTIgMTI6MDk6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vY3MucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vc3IucG86CgkgIHBvOiB1cGRhdGUgbGFuZ3VhZ2VzCgoyMDExLTEyLTEyIDEyOjAwOjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMi0xMiAxMTo1NDo1NiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJKiBnc3QvZ2xpYi1jb21wYXQuYzoKCSAgZ2xpYi1jb21wYXQ6IEFkZCBsaWNlbnNlIGJvaWxlcnBsYXRlIGZvciBMR1BMCgoyMDExLTEyLTEwIDAxOjE2OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL0xJTkdVQVM6CgkqIHBvL2NzLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2dsLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3IucG86CgkqIHBvL3VrLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMS0xMi0xMCAxMTowODoyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBzYXkgd2UgaGFuZGxlIFJFQ09ORklHVVJFIGV2ZW50CgkgIFdlIGhhbmRsZSB0aGUgUkVDT05GSUdVUkUgZXZlbnQgc28gcmV0dXJuIFRSVUUgZnJvbSB0aGUgZXZlbnQgaGFuZGxlci4KCjIwMTEtMTItMTAgMTE6MDc6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3QgZm9yd2FyZCBvbiBOVUxMIHBhZHMKCSAgVGhlIGl0ZXJhdG9yIGNhbiByZXR1cm4gTlVMTCBpbiBzb21lIGNhc2VzLCBhdm9pZCBwdXNoaW5nIG9uIHRob3NlCgkgIE5VTEwgcGFkcy4KCjIwMTEtMTItMDcgMTY6MDE6MDcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3RwcmVzZXQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHByZXNldDogYWxsb3cgYXBwbGljYXRpb25zIHRvIHNwZWNpZnkgYW4gZXh0cmEgcHJlc2V0IGRpcgoJICBBbiBleHRyYSBhcHBsaWNhdGlvbiBwcmVzZXQgZGlyIGhlbHAgdG8gb3JnYW5pemUgcHJlc2V0cyBjcmVhdGVkIGZvciBzcGVjaWFsCgkgIHB1cnBvc2VzLiBGaXhlcyAjNjYwNzYwCgkgIEFQSTogZ3N0X3ByZXNldF9zZXRfYXBwX2RpcigpLCBnc3RfcHJlc2V0X2dldF9hcHBfZGlyKCkKCjIwMTEtMTItMDkgMTA6MDE6MTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogc3RvcCB3aGVuIG5lZ290aWF0aW9uIGZhaWxzCgoyMDExLTEyLTA4IDE3OjMyOjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMi0wOCAxODowMDowMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogRml4IGNvZGUgcGF0aCB0byBjb21lIHVwIHdpdGggcG9zc2libGUgY2FwcyBpZiBpbmNvbXBhdGlibGUgY2FwcyBhcmUgcHJvdmlkZWQgdG8gYnVmZmVyX2FsbG9jKCkKCSAgUHJldmlvdXMgY29kZSBjb3VsZCBhbG1vc3QgbmV2ZXIgd29yayBhbmQgdGhpcyBzaG91bGQgYmUgc2xpZ2h0bHkKCSAgYmV0dGVyLgoKMjAxMS0xMi0wOCAxNzoyMTozMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogRmFsbCBiYWNrIHRvIHVwc3RyZWFtIHByb3ZpZGVkIGNhcHMgaWYgc3VnZ2VzdGVkIGNhcHMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIHNpbmtwYWQKCjIwMTEtMTItMDggMTc6MDc6MDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEZhbGwgYmFjayB0byB1cHN0cmVhbSBwcm92aWRlZCBjYXBzIGlmIGZpeGF0aW9uIG9mIHN1Z2dlc3RlZCBjYXBzIGZhaWxlZAoKMjAxMS0xMi0wOCAxNzowMjoyOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogUmVmYWN0b3IgZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYygpIGNvZGUKCSAgRG9uJ3QgY2hlY2sgaWYgdXBzdHJlYW0gcHJvdmlkZWQgY2FwcyBhcmUgY29tcGF0aWJsZSB3aXRoIHVwc3RyZWFtCgkgIGFuZCBkb24ndCB0cnkgdG8gZml4YXRlIHRoZXNlIGNhcHMuIFRoZXkgbXVzdCBiZSBmaXhhdGVkIGluIGFueSBjYXNlLgoKMjAxMS0xMi0wOCAwMDo0OToxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIC5kZWYgZmlsZXMgZm9yIGxhdGVzdCBBUEkgYWRkaXRpb25zCgoyMDExLTEyLTA4IDAwOjQ3OjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkgIHRlc3RzOiBmaXggdXAgc2VsZWN0b3IgdGVzdCBhZnRlciBtZXJnZQoKMjAxMS0xMi0wOCAwMDozOToxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0aW5kZXhmYWN0b3J5LmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmMKCSAgTm90ZTogZGlkIG5vdCBtZXJnZSBhbnkgb2YgdGhlIGJhc2V0cmFuc2Zvcm0gY2hhbmdlcyBmcm9tIDAuMTAuCgoyMDExLTEyLTA3IDE3OjU3OjQ5ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZG8gbm90IHVzZSBhIGJ5dGUgdmFsdWUgaW5zdGVhZCBvZiBhIHRpbWUgdmFsdWUgd2hlbiBiaXNlY3RpbmcKCSAgVGhpcyBmaXhlcyBGTEFDIHNlZWtpbmcgb24gc29tZSBGTEFDIGZpbGVzLgoKMjAxMS0xMi0wNyAxMTowNDo0MiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJICBzZWxlY3RvcjogUHVzaCBuZXdzZWdtZW50IGV2ZW50cyBiZWZvcmUgYW55IGJ1ZmZlcnMgYXJlIHB1c2hlZCBpbiB0aGUgdW5pdCB0ZXN0CgoyMDExLTEyLTA3IDExOjAxOjQ5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBEb24ndCBzZW5kIGEgTkVXU0VHTUVOVCBldmVudCBpZiBhIGJ1ZmZlciBhcnJpdmVkIGJlZm9yZSB0aGUgc2VnbWVudCB3YXMgY29uZmlndXJlZAoKMjAxMS0xMi0wNyAxMTowMTozMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBEb24ndCBzZW5kIGxhc3Qgc2VnbWVudC9idWZmZXIgd2hlbiBubyBzZWdtZW50IHdhcyBjb25maWd1cmVkIHlldAoKMjAxMS0xMi0wNyAwOTo1MDo0MCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogSWYgc3VnZ2VzdGVkIGNhcHMgYXJlIG5vdCBjb21wYXRpYmxlIHdpdGggdXBzdHJlYW0gdHJ5IHRvIGNvbWUgdXAgd2l0aCBjb21wYXRpYmxlIGNhcHMKCSAgRml4ZXMgYnVnICM2NjIxOTkuCgoyMDExLTEyLTA2IDIzOjUyOjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzoKCSAgaW5kZXhmYWN0b3J5OiBmaXggbWVtb3J5IGxlYWsKCSAgSW50cm9kdWNlZCBieSBjb21taXQgYmQzMDJiYjYgcGx1Z2luZmVhdHVyZTogYXZvaWQgZHVwbGljYXRpbmcgZmVhdHVyZS0+bmFtZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU5NDY2CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjU3MDMKCjIwMTEtMTItMDYgMTg6MDk6MTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBwdXQgbmV3IGV2ZW50IHByb2JlIHR5cGUgbmV4dCB0byBvdGhlciBldmVudCB0eXBlcwoKMjAxMS0xMi0wNSAyMToyMDo1MiArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBBZGQgR1NUX1BBRF9QUk9CRV9UWVBFX0hBTkRMRV9GTFVTSAoKMjAxMS0xMi0wNiAxNDo1NToxNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIGZha2VzaW5rOiBNYWtlIGV2ZW50L2J1ZmZlciB2ZXJib3NlIG91dHB1dCBjb25zaXN0ZW50IHdpdGggaWRlbnRpdHkKCjIwMTEtMTItMDYgMTQ6NTU6MTEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogUHJpbnQgYnVmZmVyIGZsYWdzIGluIHRoZSB2ZXJib3NlIG91dHB1dAoKMjAxMS0xMi0wNiAxNDo1Mzo0NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgZmFrZXNyYzogTWFrZSBldmVudC9idWZmZXIgdmVyYm9zZSBvdXRwdXQgY29uc2lzdGVudCB3aXRoIGlkZW50aXR5IGFuZCBwcmludCBidWZmZXIgZmxhZ3MKCjIwMTEtMTItMDYgMTQ6NDY6NDYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBkb24ndCBpbmNsdWRlIGdsaWIvZ3RocmVhZC5oIGRpcmVjdGx5CgkgIFRoZSBnX3RocmVhZCBmdW5jdGlvbnMgYXJlIGF2YWlsYWJsZSBhZnRlciBpbmNsdWRpbmcgZ2xpYi5oIGFzIHBlciBkb2NzLgoKMjAxMS0xMi0wNiAxNDoyMzozOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBwb3J0IHRoZSB0ZXN0IHRvIG5ldyBhcGkgYXMgd2VsbAoKMjAxMS0xMi0wNiAxNDoyMzoxMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJICBjb250cm9sbGVyOiBmaXggZ3BvaW50ZXIgdnMuIGdwb2ludGVyKiBtZXNzIHVwCgoyMDExLTEyLTA2IDE0OjI0OjE1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiByZW1vdmUgR1NUX0ZMT1dfUkVTRU5ECgkgIEl0IGlzIHVudXNlZCBhbmQgdW5kZWZpbmVkLgoKMjAxMS0xMi0wNiAxNDowMTo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGJhc2VzcmM6IGFkZCBhc3luYyBzdGFydCBvcHRpb24KCSAgQWRkIGEgbWV0aG9kIHRvIGVuYWJsZSBhc3luYyBzdGFydCBiZWhhdmlvdXIuIFRoZSBzdWJjbGFzcyBjYW4gdGhlbiBjb21wbGV0ZSB0aGUKCSAgc3RhcnQgb3BlcmF0aW9uIGZyb20gYW55IG90aGVyIHRocmVhZCBieSBjYWxpbmcgZ3N0X2Jhc2Vfc3JjX3N0YXJ0X2NvbXBsZXRlKCkuCgkgIFRoZSBiYXNlIGNsYXNzIGNhbiB3YWl0IGZvciB0aGUgc3RhcnQgdG8gY29tcGxldGUgd2l0aAoJICBnc3RfYmFzZV9zcmNfc3RhcnRfd2FpdCgpLgoKMjAxMS0xMi0wNiAxMzo1ODowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBmaXggY29tcGlsYXRpb24KCjIwMTEtMTItMDYgMTM6NDc6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogY2xlYW51cCBlcnJvciBwYXRoCgoyMDExLTEyLTA2IDEzOjM5OjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIGZpeCBjb21waWxhdGlvbgoKMjAxMS0xMi0wNiAwODo0ODo1NyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgY29udHJvbGxlcjogdXNlIF9PQkpFQ1QgbG9nZ2luZyB2YXJpYW50cyBtb3JlCgoyMDExLTEyLTA2IDA4OjM1OjU3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IHJlbW92ZSBHc3RWYWx1ZUFycmF5CgkgIEluc3RlYWQgcGFzcyB0aGUgdmFsdWVzIGFzIGFyZ3VtZW50cy4gVGhpcyBzaW1wbGlmaWVzIHRoYXQgY29kZSBhbmQgaGVscHMKCSAgYmluZGluZ3MuCgoyMDExLTEyLTA2IDA4OjM1OjEwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIGNvbnRyb2xsZXI6IHJlbW92ZSBnc3Rfb2JqZWN0X2dldF92YWx1ZV9hcnJheXMKCSAgT25lIGNhbiBlYXNpbGx5IGxvb3Agb3ZlciB0aGUgY29udHJvbGxlZCBwcm9wZXJ0aWVzIG1hbnVhbGx5LiBUaGlzIGlzIHN0ZXAgMSBpbgoJICByZW1vdmluZyBHc3RWYWx1ZUFycmF5LgoKMjAxMS0xMi0wNCAwNzozMzozMiArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgY29ycmVjdCByZXR1cm4gdmFsdWUgaW4gZ3N0X3B1c2hfc3RpY2t5CgoyMDExLTEyLTA1IDExOjA3OjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIG1ha2Ugc29tZSBtYWNyb3MgaW50byBpbmxpbmUgZnVuY3Rpb25zCgoyMDExLTEyLTA1IDEwOjI0OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgbWFrZSBzb21lIG1vcmUgbWFjcm9zIGFzIGlubGluZSBmdW5jdGlvbnMKCSAgTWFrZSBzb21lIG1hY3JvcyBhcyBpbmxpbmUgZnVuY3Rpb25zIGZvciBhZGRlZCB0eXBlIGNoZWNraW5nLgoJICBVU2UgbmV3IGdzdF9jYXBzX3Rha2UoKSBpbiB0eXBlZmluZAoKMjAxMS0xMi0wNSAxMDoyMzowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IHJlbW92ZSBzb21lIG9sZCBtZXRob2RzCgoyMDExLTEyLTA0IDIxOjE5OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBhbGxvdyBub24tam9pbmFibGUgdGhyZWFkcyBpbiBwcml2YXRlIGdfdGhyZWFkX2NyZWF0ZSgpIGNvcHkKCSAgTG9va3MgbGlrZSBzb21lIHRlc3RzIHVzZSBub24tam9pbmFibGUgdGhyZWFkcyBhZnRlciBhbGwuCgoyMDExLTEyLTA0IDE1OjQyOjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IHJlbW92ZSByZW1vdmVkIHRhZyBsaXN0IGZ1bmN0aW9ucyBmcm9tIGRvY3MgYXMgd2VsbAoKMjAxMS0xMi0wNCAxNTozODowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0b2JqZWN0LmgKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaAoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmMKCSAgdG9vbHMvZ3N0LXhtbGluc3BlY3QuYwoKMjAxMS0xMi0wNCAxNDozODoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgU3VwcHJlc3MgZGVwcmVjYXRpb24gd2FybmluZ3MgaW4gc2VsZWN0ZWQgZmlsZXMsIGZvciBnX3N0YXRpY19yZWNfbXV0ZXhfKiBtb3N0bHkKCSAgR1N0YXRpY1JlY011dGV4IGlzIHBhcnQgb2Ygb3VyIEFQSS9BQkksIG5vdCBtdWNoIHdlIGNhbiBkbyBoZXJlIGluIDAuMTAuCgoyMDExLTEyLTA0IDEzOjM1OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHRhc2suYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBXb3JrIGFyb3VuZCBkZXByZWNhdGVkIHRocmVhZCBBUEkgaW4gZ2xpYiBtYXN0ZXIKCSAgQWRkIHByaXZhdGUgcmVwbGFjZW1lbnRzIGZvciBkZXByZWNhdGVkIGZ1bmN0aW9ucyBzdWNoIGFzCgkgIGdfbXV0ZXhfbmV3KCksIGdfbXV0ZXhfZnJlZSgpLCBnX2NvbmRfbmV3KCkgZXRjLiwgbW9zdGx5CgkgIHRvIGF2b2lkIHRoZSBkZXByZWNhdGlvbiB3YXJuaW5ncy4gV2UgY2FuJ3QgY2hhbmdlIG1vc3Qgb2YKCSAgdGhlc2UgaW4gMC4xMCBiZWNhdXNlIHRoZXkncmUgcGFydCBvZiBvdXIgQVBJIGFuZCBBQkkuCgoyMDExLTEyLTA0IDEzOjA5OjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0YnVmZmVyc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0Y2xvY2tzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb2xsc3RyZXNzLmM6CgkgIGJlbmNobWFya3M6IGdfdGhyZWFkX2NyZWF0ZSgpIGlzIGRlcHJlY2F0ZWQgaW4gR0xpYiBtYXN0ZXIsIHVzZSBnX3RocmVhZF90cnlfbmV3KCkgaW5zdGVhZAoKMjAxMS0xMi0wNCAxMzowNDozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBuZXQ6IGluaXRpYWxpc2UgR0Vycm9yIHZhcmlhYmxlcyB0byBOVUxMCgoyMDExLTEyLTA0IDExOjQzOjEwICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgZGVmcyBmaWxlcwoKMjAxMS0xMi0wNCAxMTo0MjozOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBnc3RxdWVyeTogRml4IHVuaXRpYWxpemVkIHZhcmlhYmxlCgoyMDExLTEyLTA0IDExOjMyOjU3ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgZ3N0c2VnbWVudDogSW5pdGlhbGl6ZSB3aXRoIHByb3BlciB0eXBlCgoyMDExLTEyLTAzIDE3OjQwOjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcGx1Z2luLXNjYW5uZXIuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgZ190aHJlYWRfaW5pdCgpIGlzIGRlcHJlY2F0ZWQgaW4gZ2xpYiBtYXN0ZXIKCSAgSXQncyBub3QgbmVlZGVkIGFueSBsb25nZXIuCgoyMDExLTEyLTAzIDE2OjAyOjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgdGFnc2V0dGVyOiB1cGRhdGUgZm9yIHRocmVhZCBBUEkgZGVwcmVjYXRpb25zIGluIGdsaWIgbWFzdGVyCgoyMDExLTEyLTAzIDE1OjM2OjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IHVwZGF0ZSBmb3IgdGhyZWFkIEFQSSBkZXByZWNhdGlvbnMgaW4gZ2xpYiBtYXN0ZXIKCjIwMTEtMTItMDMgMTU6MTg6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogcmVtb3ZlIGdzdF90YWdfbGlzdF9nZXRfe2NoYXIsdWNoYXJ9CgkgIFRob3NlIGFyZSB1bnVzZWQgYW5kIHNob3VsZCBuZXZlciBiZSB1c2VkIGFueXdoZXJlIGFueXdheQoJICByZWFsbHkuCgoyMDExLTEyLTAzIDE0OjA2OjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IHJlbW92ZSBzb21lIG1hY3JvcyB0aGF0IG5vIGxvbmdlciBleGlzdAoKMjAxMS0xMi0wMyAxMzo1ODo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgZ190aHJlYWRfY3JlYXRlKCkgaXMgZGVwcmVjYXRlZCBpbiBHTGliIG1hc3RlciwgdXNlIGdfdGhyZWFkX3RyeV9uZXcoKSBpbnN0ZWFkCgoyMDExLTEyLTAzIDA3OjA2OjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogdXNlIGR0cyBhbmQgcHRzIGZvciBzeW5jCgkgIEZpcnN0IHVzZSBEVFMsIHRoZW4gZmFsbCBiYWNrIHRvIFBUUyBmb3Igc3luY2hyb25pemF0aW9uLgoKMjAxMS0xMi0wMyAwNzowMTo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHNtYWxsIGNsZWFudXBzCgoyMDExLTEyLTAzIDA2OjQ1OjI2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogbWVyZ2UgcHJlcm9sbCBmdW5jdGlvbnMKCSAgSW5saW5lIGEgZnVuY3Rpb24gdGhhdCBpcyBvbmx5IGNhbGxlZCBmcm9tIG9uZSBwbGFjZSB0byBtYWtlIHRoaW5ncyBhIGxpdHRsZQoJICBlYXNpZXIgdG8gZm9sbG93LgoKMjAxMS0xMi0wMyAwNjoyOTo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IG1vcmUgY2xlYW51cHMKCSAgRG9uJ3QgcGFzcyBhcm91bmQgdGhlIG9iamVjdCB0eXBlLCB3ZSBjYW4gZmluZCB0aGF0IHZlcnkgZWZmaWNpZW50bHkgZnJvbSB0aGUKCSAgb2JqZWN0IGl0c2VsZiBub3cuCgoyMDExLTEyLTAyIDIzOjEzOjIzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogY2xlYW4gdXAgbWV0aG9kIG5hbWVzCgoyMDExLTEyLTAyIDIyOjUwOjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogbWVyZ2UgcmVuZGVyX29iamVjdCBpbnRvIGNoYWluCgkgIE1lcmdlIHRoZSByZW5kZXJfb2JqZWN0IGNvZGUgd2l0aCB0aGUgY2hhaW4gbWV0aG9kLiBJdCBpcyBvbmx5IGNhbGxlZCBmcm9tIHRoZXJlCgkgIGFuZCB0aGVyZSBhcmUgcXVpdGUgYSBmZXcgdmFyaWFibGVzIHRoYXQgY2FuIGJlIHJldXNlZCB0byBtYWtlcyB0aGluZ3MgbGVzcwoJICBjb25mdXNpbmcuCgoyMDExLTEyLTAyIDIyOjM2OjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogcmVtb3ZlIG9ic29sZXRlIGNvZGUKCSAgUmVtb3ZlIHNvbWUgbW9yZSBjb2RlIG5vdyB0aGF0IHRoZSByZW5kZXJfb2JqZWN0IGV0aG9kIGlzIG9ubHkKCSAgY2FsbGVkIHdpdGggYnVmZmVycyBvciBidWZmZXJsc3RzLgoKMjAxMS0xMi0wMiAyMjoyMDowOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgYmFzZXNpbms6IGNsZWFuIHVwIGV2ZW50IGhhbmRsaW5nCgkgIEFkZCBuZXcgd2FpdF9lb3Mgdm1ldGhvZCB0byB3YWl0IGZvciB0aGUgZW9zIHRpbWVvdXQgYmVmb3JlIHBvc3RpbmcgdGhlIEVPUwoJICBtZXNzYWdlIG9uIHRoZSBidXMuCgkgIEFkZCBkZWZhdWx0IGV2ZW50IGhhbmRsZXIuIE1vdmUgdGhlIGRlZmF1bHQgZXZlbnQgYWN0aW9ucyBpbiB0aGVyZS4gQ2FsbCB0aGUKCSAgZXZlbnQgdm1ldGhvZCBmcm9tIHRoZSBwYWQgZXZlbnQgaGFuZGxlci4gU3ViY2xhc3NlcyBhcmUgbm93IHN1cHBvc2VkIHRvIGNoYWluCgkgIHVwIHRvIHRoZSBwYXJlbnQgZXZlbnQgaGFuZGxlciBvciB1bnJlZiB0aGUgZXZlbnQgYW5kIGRvIHRoZWlyIG93biB0aGluZy4KCSAgQXZvaWQgcGFzc2luZyB1bnVzZWQgcGFyYW1ldGVycyB0byBmdW5jdGlvbnMuCgoyMDExLTEyLTAyIDEzOjE5OjM4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IHVubG9jayBjbG9jayB3YWl0IHdoZW4gYXBwcm9wcmlhdGUKCSAgLi4uIG5vdGFibHkgRkxVU0ggYW5kIHN0YXRlIGNoYW5nZSB0byBSRUFEWS4KCjIwMTEtMTItMDIgMTM6MzU6NTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBzbWFsbCBjbGVhbnVwCgkgIEF2b2lkIHBhc3NpbmcgYXJvdW5kIHRoZSBzZWdtZW50LgoKMjAxMS0xMi0wMiAxMzoyODoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBiYXNlc2luazogcmVtb3ZlIGNsaXBfc2VnbWVudAoJICBXZSBvbmx5IG5lZWQgb25lIHNlZ21lbnQgbm93IHRoYXQgdGhlIHByZXJvbGwgcXVldWUgaXMgZ29uZS4KCjIwMTEtMTItMDIgMTI6NDI6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBtb3JlIGNsZWFudXBzCgkgIFJlbW92ZSBzb21lIHVubmVlZGVkIGZ1bmN0aW9ucywgaW5saW5lIHRoZSBjb2RlLgoJICBSZW1vdmUgdGhlIHF1ZXVlX29iamVjdCBmdW5jdGlvbnMsIHdlIGNhbiBwcm9jZWVkIHdpdGggdGhlIHJlbmRlcmluZwoJICBpbW1lZGlhdGVseS4KCjIwMTEtMTItMDIgMTI6MjA6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgYmFzZXNpbms6IHJlbW92ZSBvYnNvbGV0ZSBjb2RlCgkgIFJlbW92ZSB0aGUgcHJlcm9sbCBxdWV1ZSBhbmQgcHJvY2VlZCBkaXJlY3RseSB0byB0aGUgcmVuZGVyaW5nIG9mIG9iamVjdHMuCgoyMDExLTEyLTAxIDIzOjM1OjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RidXMuYwoJICBnc3QvZ3N0ZXZlbnQuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoKMjAxMS0xMi0wMSAxODo1MDozMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IG1ha2Ugc29tZSB0YWdzIG9mIHR5cGUgR3N0U2FtcGxlCgkgIE1ha2UgdGhlIGltYWdlIGFuZCBhdHRhY2htZW50IHRhZ3Mgb2YgdHlwZSBHc3RTYW1wbGUgc28gdGhhdCB3ZSBjYW4gaW5jbHVkZQoJICBleHRyYSBjYXBzIGFuZCBpbmZvIGFsb25nIHdpdGggdGhlIGJ1ZmZlciBkYXRhLgoKMjAxMS0xMi0wMSAxODo0OTozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzYW1wbGUuYzoKCSogZ3N0L2dzdHNhbXBsZS5oOgoJICBzYW1wbGU6IHJlbW92ZSBjb25zdAoJICBUaGUgd3JpdGFiaWxpdHkgb2YgdGhlIHN0cnVjdHVyZSBpcyBlbnN1cmVkIGJ5IHRoZSByZWZjb3VudCBvZiB0aGUgcGFyZW50CgkgIG1pbmlvYmplY3QgYW5kIHdlJ3JlIGZpbmUgaWYgdGhlIHBhcmVudCBpcyB3cml0YWJsZS4KCjIwMTEtMTItMDEgMTY6NDY6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc2luay5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJhc2VzaW5rOiBsYXN0LWJ1ZmZlciAtPiBsYXN0LXNhbXBsZQoJICBSZW5hbWUgdGhlIGxhc3QtYnVmZmVyIHByb3BlcnR5IHRvIGxhc3Qtc2FtcGxlIGFuZCBtYWtlIGl0IHJldHVybiB0aGUgbmV3CgkgIEdzdFNhbXBsZSB0eXBlIHNvIHRoYXQgd2UgY2FuIGluY2x1ZGUgY2FwcyBhbmQgdGltaW5nIGluZm8gaW4gb25lIG5pY2UgYnVuZGxlLgoKMjAxMS0xMi0wMSAxNjozNzo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkqIGdzdC9nc3RzYW1wbGUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHNhbXBsZTogYWRkIG5ldyBzYW1wbGUgbWluaW9iamVjdAoJICBBZGQgYSBuZXcgc2ltcGxlIG1pbmlvYmplY3QgdGhhdCBpcyBhIGNvbWJpbmF0aW9uIG9mIGEgR3N0QnVmZmVyLCBHc3RDYXBzLAoJICBHc3RTZWdtZW50IGFuZCBvdGhlciBhcmJpdHJhcnkgaW5mbyBvcmdhbml6ZWQgaW4gYSBHc3RTdHJ1Y3R1cmUuIFRoaXMgb2JqZWN0IGNhbgoJICBiZSB1c2VkIHRvIGV4Y2hhbmdlIHNhbXBsZXMgYmV0d2VlbiBhbiBlbGVtZW50IGFuZCB0aGUgYXBwbGljYXRpb24gb3IgZm9yCgkgIHN0b3JpbmcgYWxidW0gYXJ0IGluIHRhZ3MgZXRjLgoKMjAxMS0xMi0wMSAxNjoyNTowNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiB1c2UgR1NUX01FU1NBR0VfU09VUkNFX05BTUUoKSB3aGljaCBhbHNvIHRha2VzIGNhcmUgb2Ygc3JjPU5VTEwuCgoyMDExLTEyLTAxIDE1OjM1OjI2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuczogYWRkIHNvbWUgbW9yZSBkZWJ1ZwoKMjAxMS0xMi0wMSAxNTozNTowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBhZGQgc29tZSBtb3JlIGRlYnVnCgoyMDExLTEyLTAxIDE1OjM0OjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogYWRkIGNvcHkgZmxhZyBmb3IgbWV0YQoJICBBZGQgYSBmbGFnIHRvIGNvbnRyb2wgaWYgdGhlIG1ldGEgc2hvdWxkIGJlIGNvcGllZCBvciBub3QgaW5zdGVhZCBvZiBhbHdheXMKCSAgY29weWluZy4KCjIwMTEtMTEtMjkgMTk6MDg6NDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiByZW1vdmUgb2xkIHByb3BlcnR5CgoyMDExLTExLTMwIDEzOjU5OjQ2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBBbHdheXMgaW50ZXJzZWN0IHRoZSBzdWdnZXN0ZWQgc2luayBjYXBzIHdpdGggdGhlIHBlZXIgY2FwcwoJICBUaGlzIG1ha2VzIHN1cmUgdGhhdCB3ZSBnZXQgY29ycmVjdCBhbmQgY29tcGxldGUgY2Fwcy4gVGhlIHN1Z2dlc3RlZCBjYXBzCgkgIGNvdWxkIGJlIGluY29tcGxldGUsIGUuZy4gdmlkZW8veC1yYXctcmdiIHdpdGhvdXQgYW55IGZpZWxkcywgYW5kIGJ5CgkgIGludGVyc2VjdGluZyB3aXRoIHRoZSBwZWVyIGNhcHMgd2UgZ2V0IHNvbWV0aGluZyB1c2FibGUuCgkgIEZpeGVzIGJ1ZyAjNjYyMTk5LgoKMjAxMS0xMS0zMCAxMjozOTozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiBtb3ZlIEZJWE1FIGxvZyBsZXZlbCBhZnRlciBXQVJOSU5HCgkgIFNvIGl0J3Mgbm93IEVSUk9SIDwgV0FSTklORyA8IEZJWE1FIDwgSU5GTyBhbmQgKjo1IGJlY29tZXMgKjo2LgoKMjAxMS0xMS0zMCAwMDoyNDozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IHdhcm4gYW5kIGZhaWwgaW5zdGVhZCBvZiBjcmVhdGluZyBuZXdzZWdtZW50IGV2ZW50cyBpbiBHU1RfRk9STUFUX1VOREVGSU5FRAoKMjAxMS0xMS0yOSAxNTo1MzowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBrZWVwIHRoZSBlbGVtZW50IGZsYWdzIHVwLXRvLWRhdGUKCSAgS2VlcCB0aGUgcmVxdWlyZS9wcm92aWRlX2Nsb2NrIGZsYWdzIHVwIHRvIGRhdGUuCgoyMDExLTExLTI5IDExOjQ3OjM0ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IHNvdXJjZSBhbmQgc2luayBwYWRzIHByb3h5IGNhcHMKCjIwMTEtMTEtMjggMjM6MjA6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgY29tbWl0ICc3NTIxYjU5N2Y0ZGM0OWQ4ZDE2OGYzNjhmMGU3ZWJhZjk4YTcyMTU2JyBpbnRvIDAuMTEKCjIwMTEtMTEtMjggMjE6MTU6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgoyMDExLTExLTI4IDE4OjIzOjQxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgdXBkYXRlIGZvciBpbmRleGFibGUgY2hhbmdlCgoyMDExLTExLTI4IDE4OjEyOjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGVsZW1lbnQ6IGFkZCBpbmRleGFibGUgZmxhZwoJICBSZW1vdmUgdGhlIGlzX2luZGV4YWJsZSBtZXRob2QgY2hlY2sgYW5kIHVzZSBhbiBlbGVtZW50IGZsYWcgdG8gY2hlY2sgaWYgdGhlCgkgIGVsZW1lbnQgY2FuIHVzZSBhbiBpbmRleC4KCjIwMTEtMTEtMjggMTc6NTA6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlCgoyMDExLTExLTI4IDE3OjIyOjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBlbGVtZW50OiB1c2UgZmxhZ3MgZm9yIHJlcXVpcmUvcHJvdmlkZSBjbG9jawoJICBSZW1vdmUgdGhlIF9yZXF1aXJlL19wcm92aWRlX2Nsb2NrKCkgbWV0aG9kcyBhbmQgdXNlIGVsZW1lbnQgZmxhZ3MgdG8gbWFyawoJICBlbGVtZW50cyBpbnN0ZWFkIG9mIGxvb2tpbmcgYXQgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSB2bWV0aG9kLgoKMjAxMS0xMS0yOCAxNjo1NDo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBlbGVtZW50OiBjbGVhbiB1cCBlbGVtZW50IGZsYWdzCgkgIENsZWFuIHVwIHRoZSBlbGVtZW50IGZsYWdzCgoyMDExLTExLTI4IDE1OjM1OjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBhZGQgc3RpY2t5IGN1c3RvbSBxdWFyawoKMjAxMS0xMS0yOCAxNDoyNDoxNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IF9DQVBTX0ZMQUdTXyAtPiBDQVBTX0ZMQUdfCgoyMDExLTExLTI4IDEyOjMwOjE1ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RlbGVtZW50OiBhZGQgZ3N0X2VsZW1lbnRfY2xhc3NfYWRkX3BhZF90ZW1wbGF0ZV9mcm9tX3N0YXRpYwoJICBUaGlzIGZ1bmN0aW9uIGhlbHBzIGVuc3VyZSB0aGUgcGFkIHRlbXBsYXRlIGlzIHVucmVmZmVkCgkgIHdpdGhvdXQgaGF2aW5nIHRvIGNvbXBsaWNhdGUgdGhlIGNhbGxpbmcgY29kZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2MjY2NAoKMjAxMS0xMS0yOCAxMzowODoyNyArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuYzoKCSAgdmFyaW91czogZml4IHBhZCB0ZW1wbGF0ZSByZWYgbGVha3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2MjY2NAoKMjAxMS0xMS0yOCAxMzo1NDo0MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBIYW5kbGUgc3RpY2t5IGV2ZW50IGVycm9ycwoJICBVc2UgR3N0Rmxvd1JldHVybiB0byBpbnRlcm5hbGx5IHBhc3MgZXZlbnRzIGJldHdlZW4gcGFkcy4KCSAgV2hlbiB3ZSBzdGlja3kgZXZlbnRzIGNhdXNlIGFuIGVycm9yLCB0cmFuc2xhdGUgdGhpcyBlcnJvciBpbnRvIGEgR3N0Rmxvd1JldHVybi4KCSAgQ2FwcyBldmVudHMgd2lsbCwgZm9yIGV4YW1wbGUsIGdlbmVyYXRlIGEgTk9UX05FR09USUFURUQgcmV0dXJuIHdoZW4gdGhlIGV2ZW50CgkgIGZ1bmN0aW9uIHJldHVybnMgYW4gZXJyb3IuCgkgIFRoaXMgYWxsb3dzIHVzIHRoZW4gdG8gcmVmdXNlIHNlbmRpbmcgYnVmZmVycyBpZiBvbmUgb2YgdGhlIHN0aWNreSBldmVudHMgaXMKCSAgcmVmdXNlZCBhbmQgZ2VuZXJhdGUgYSBjb3JyZWN0IGVycm9yIHJldHVybiB2YWx1ZS4KCjIwMTEtMTEtMjggMTM6NTI6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6CgkgIHRlc3RzOiBkb24ndCByZXR1cm4gRkFMU0UgZnJvbSBldmVudHMKCSAgUmV0dXJuaW5nIEZBTFNFIGZyb20gdGhlIGV2ZW50IGhhbmRsZXIgc2h1dHMgZG93biB0aGUgc2VuZGVyLgoKMjAxMS0xMS0yOCAxMzo1MToxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdDogZml4IHJlZmNvdW50IGVycm9yCgoyMDExLTExLTI4IDExOjE1OjI3ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmM6CgkgIGdzdG1ldGE6IFNvbWUgbW9yZSBkb2NzCgoyMDExLTExLTI4IDEwOjU1OjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBhZGQgY3VzdG9tIGRvd25zdHJlYW0gc3RpY2t5IGV2ZW50CgoyMDExLTExLTI4IDAxOjEyOjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IHVwIGNvbW1lbnQgYWZ0ZXIgbWVyZ2UgZnJvbSAwLjEwCgoyMDExLTExLTI4IDAxOjExOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMS0yOCAwMToxMDoyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCByZWZhY3RvcmluZyBvZiBkcmFpbmluZy1vbi1lb3MsIG11bmdlIGZsb3cgcmV0dXJuIHRvIEZMT1dfT0sKCjIwMTEtMTEtMjggMDE6MDA6MjggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggdXAgbmV3IGJ1ZmZlcmxpc3QgY29kZSBmb3IgMC4xMQoKMjAxMS0xMS0yOCAwMDo0MDo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jCgoyMDExLTExLTAzIDEwOjM0OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIGJ1ZmZlcmxpc3Qgc3VwcG9ydAoJICBXZSB3YW50IHRvIG1haW50YWluIGJ1ZmZlciBsaXN0cyBpZiBwb3NzaWJsZS4KCjIwMTEtMTEtMDMgMTM6MDI6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBzcGxpdCBvdXQgZHJhaW5pbmcgb2YgcXVldWUgb24gRkxPV19VTkVYUEVDVEVEIGludG8gc2VwYXJhdGUgZnVuY3Rpb24KCjIwMTEtMTEtMDMgMDg6NTU6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBwYXNzIGl0ZW0gdHlwZSBlbnVtIHRvIF9lbnF1ZXVlIGluc3RlYWQgb2Ygc2ltcGxlIGlzYnVmZmVyIGJvb2xlYW4KCSAgQXZvaWRzIHNvbWUgdW5uZWNlc3NhcnkgR1NUX0lTX0VWRU5UKCkKCjIwMTEtMTEtMjcgMjA6MzI6MTQgKzAxMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiBmaXggY29tcGlsYXRpb24gd2FybmluZwoJICBHU1RfU1RBVElDX0NBUFMgaXMgbWlzc2luZyBpbml0aWFsaXplciBmb3IgR3N0TWluaU9iamVjdCdzIG5fd2Vha19yZWZzIGFuZAoJICB3ZWFrX3JlZnMgcmVzdWx0aW5nIGluIGNvbXBpbGF0aW9uIHdhcm5pbmcgKGxsdm0tZ2NjICAtV2FsbCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NDkyNwoKMjAxMS0xMS0yNyAyMjoyNjoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTEtMjcgMjA6MzY6MzEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIHdhcm5pbmdzOiBhdm9pZCBzZXQtYnV0LXVudXNlZCB3YXJuaW5ncyB3aXRoIGxvYWQtc2F2ZSBkaXNhYmxlZAoKMjAxMS0xMS0yNiAxNzozNDoxMiArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IGJyb2tlbiBkZWZhdWx0IGNhcHMgcXVlcnkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NDg4MAoKMjAxMS0xMS0yNiAxOTo1MTozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTEtMjYgMTk6NDU6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHVyaS5oOgoJICB1cmk6IGZpeCB3cm9uZyBHX0dOVUNfTUFMTE9DCgkgIF9nZXRfcHJvdG9jb2xzKCkgcG9pbnRzIHRvIGNvbnN0IG1lbW9yeSBpbiAwLjEwCgkgIGRlc3BpdGUgdGhlIG5vbi1jb25zdCByZXR1cm4gdmFsdWUuCgoyMDExLTExLTI2IDE5OjQ0OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RidWZmZXIuaAoJICBnc3QvZ3N0YnVmZmVybGlzdC5oCgkgIGdzdC9nc3RjYXBzLmgKCSAgZ3N0L2dzdGRhdGV0aW1lLmgKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmgKCSAgZ3N0L2dzdGV2ZW50LmgKCSAgZ3N0L2dzdGdob3N0cGFkLmgKCSAgZ3N0L2dzdGluZGV4ZmFjdG9yeS5oCgkgIGdzdC9nc3RpdGVyYXRvci5oCgkgIGdzdC9nc3RtZXNzYWdlLmgKCSAgZ3N0L2dzdG1pbmlvYmplY3QuaAoJICBnc3QvZ3N0cGlwZWxpbmUuaAoJICBnc3QvZ3N0cXVlcnkuaAoJICBnc3QvZ3N0c2VnbWVudC5oCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuaAoJICBnc3QvZ3N0dGFnbGlzdC5oCgkgIGdzdC9nc3R1cmkuaAoJICBnc3QvZ3N0dmFsdWUuaAoJICBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5oCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oCgkgIE5vdGU6IGNhbid0IHVzZSBHX0dOVUNfTUFMTE9DIHdpdGggR3N0Q2FwcyByZXR1cm4KCSAgdmFsdWVzIGluIDAuMTEgYmVjYXVzZSBvZiB0aGUgRU1QVFkrQU5ZIHNpbmdsZXRvbnMuCgoyMDExLTExLTI2IDE4OjU4OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkgIGxpYnM6IHNwcmlua2xlIHNvbWUgR19HTlVDX01BTExPQwoJICBNYXliZSBnY2MgY2FuIGRvIHNvbWV0aGluZyBjbGV2ZXIgd2l0aCB0aGF0LCBvciBhdCBsZWFzdAoJICB3YXJuIHVzIGlmIHdlIGRvbid0IHNhdmUgdGhlIHJldHVybiB2YWx1ZSBzb21ld2hlcmUuCgoyMDExLTExLTI2IDE4OjU3OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5oOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5Lmg6CgkqIGdzdC9nc3RpdGVyYXRvci5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuaDoKCSogZ3N0L2dzdHBhcnNlLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cG9sbC5oOgoJKiBnc3QvZ3N0cHJlc2V0Lmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGdzdC9nc3R1cmkuaDoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIGdzdDogc3ByaW5rbGUgc29tZSBHX0dOVUNfTUFMTE9DCgkgIE1heWJlIGdjYyBjYW4gZG8gc29tZXRoaW5nIGNsZXZlciB3aXRoIHRoYXQsIG9yIGF0IGxlYXN0CgkgIHdhcm4gdXMgaWYgd2UgZG9uJ3Qgc2F2ZSB0aGUgcmV0dXJuIHZhbHVlIHNvbWV3aGVyZS4KCjIwMTEtMTEtMjUgMjM6NTQ6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgoyMDExLTExLTI1IDIzOjE1OjIzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogdXBkYXRlIHBvcnRpbmcgZG9jcy4KCjIwMTEtMTEtMTYgMDE6MDQ6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogYWRkIGdzdF9idWZmZXJfe3NldCxnZXR9X3FkYXRhKCkKCSAgQWxsb3dzIHBlb3BsZS91cyB0byBhdHRhY2ggYXJiaXRyYXJ5IG1ldGFkYXRhIHRvIGJ1ZmZlcnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjQ3MjAKCSAgQVBJOiBnc3RfYnVmZmVyX3NldF9xZGF0YSgpCgkgIEFQSTogZ2V0X2J1ZmZlcl9nZXRfcWRhdGEoKQoKMjAxMS0xMS0yNSAwNzoxMToyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBibG9ja2luZyBwcm9iZSBlbWlzc2lvbgoJICBJZiB3ZSBhcmUgZGVhbGluZyB3aXRoIGEgYmxvY2tpbmcgcHJvYmUsIG9ubHkgdGhlbiBjaGVjayBpZiBvbmUgdGhlCgkgIGJsb2NraW5nIGZsYWdzIG9mIHRoZSBob29rIG1hdGNoZXMuCgkgIEFkZCBzb21lIG1vcmUgZGVidWcuCgkgIE1ha2UgdGhlIHBhZCB1bml0IHRlc3QgbGVzcyByYWN5LgoKMjAxMS0xMS0yNCAxNzo0NzowOSArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgQWRkIHRlc3QgZm9yIFBBRF9QUk9CRV9UWVBFX0JMT0NLIGFuZCBQQURfUFJPQkVfVFlQRV9CTE9DS0lORwoKMjAxMS0xMS0yNSAwNTo1NDowOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogZml4IGRlYnVnIG9mIHF1ZXJ5IHJlc3VsdAoKMjAxMS0xMS0yNCAyMjo1MjoxOSArMDEwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogZml4IHR5cG8gaW4gZG9jCgkgIENhdXNlcyBhIHdhcm5pbmcgZnJvbSB0aGUgaW50cm9zcGVjdGlvbiBzY2FubmVyLgoKMjAxMS0xMS0yNCAyMTozNjoxMiArMDEwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2NhcHNmaWx0ZXIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mZHNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkgIGNoZWNrOiBkcm9wIGNhcHMgYXJndW1lbnQgZnJvbSBnc3RfY2hlY2tfc2V0dXBfe3NyYyxzaW5rfV9wYWQKCSAgQ2FsbGluZyBzZXRfY2FwcyBhdCB0aGF0IHBvaW50IGlzIG5vdCB1c2VmdWwgaW4gMC4xMCAoRklYTUUgY29tbWVudCEpLCBhbmQgaW4KCSAgMC4xMSBpdCBpcyB0b3RhbGx5IHBvaW50bGVzczogdGhlIGNhcHMgZXZlbnQgZG9lc24ndCBzdGljayB0byBhIGZsdXNoaW5nIHBhZC4KCjIwMTEtMTEtMjQgMTQ6MDc6MTQgKzAxMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGRlZnM6IHVwZGF0ZSBmb3IgYnl0ZV93cml0ZXJfcHV0X2J1ZmZlcgoKMjAxMS0xMS0yNCAxMToyMzowNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHBhZC5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmMKCjIwMTEtMTEtMjQgMTE6MTU6MjkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFJlbW92ZSBnX3dhcm5pbmcoKSBpZiBwYWQgYWNjZXB0ZWQgY2FwcyB0aGF0IGFyZSBub3QgYSBzdWJzZXQgb2YgdGhlIHBhZCBjYXBzCgkgIFRoaXMgY2hlY2sgaXMgY29ycmVjdCBidXQgdW5mb3J0dW5hdGVseSBpdCdzIGltcG9zc2libGUgdG8gaW1wbGVtZW50CgkgIGluIGEgdGhyZWFkc2FmZSB3YXkgYmVjYXVzZSB0aGUgY2FwcyBjb3VsZCBoYXZlIGNoYW5nZWQgaW4gdGhlIG1lYW50aW1lLgoJICBGaXhlcyBidWcgIzY1OTYwNi4KCjIwMTEtMTAtMDMgMTI6MzQ6MjAgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGNoZWNrIGZpbGxlZCBzdGF0ZSBvZiBxdWV1ZXMgZXZlbiBpZiBhbm90aGVyIG9uZSBpcyBlbXB0eQoJICBUaGlzIHdpbGwgYXZvaWQgYSBjYXNlIHdoZXJlIG92ZXJydW4gaXMgbmV2ZXIgc2lnbmFsbGVkIGlmIHNvbWUKCSAgc3RyZWFtIG5ldmVyIHByb2R1Y2VzIGFueSBkYXRhLCBjYXVzaW5nIHBsYXliaW4yIHRvIG5vdCBlbmQgcHJlcm9sbC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2MDc3OAoKMjAxMS0xMS0yNCAwOTozMToxNCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBDaGVjayBmb3IgZGF0YWZsb3cgd2l0aCBpbmNvbXBhdGlibGUgY2FwcwoJICBUaGlzIHRlc3QgY3VycmVudGx5IGZhaWxzLCBidXQgaXMgdGhlcmUgdG8gZW5zdXJlIHdlIGZpeCB0aGlzIGlzc3VlCgkgIGFuZCBrZWVwIGl0IGZpeGVkLCBzaW5jZSBpdCBjb21wbGV0ZWx5IGJyZWFrcyBkZWxheWVkIG5lZ290aWF0aW9uCgkgIHVzZS1jYXNlcy4KCSAgVGhpcyBiZWhhdmlvdXIgc3RhcnRlZCBicmVha2luZyBzaW5jZQoJICBkZDY1YWFlOWExNzdmN2IxMWRjZWYwZjY5MGE3OGQ2OThmNjY3Y2Q0CgoyMDExLTExLTI0IDA5OjMxOjAyICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IEFkZCBjb21tZW50cyB0byBnc3RwYWQgdGVzdHMKCjIwMTEtMTEtMjQgMDk6MzA6MTQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogUmVtb3ZlICIjaWYgMCIgYmxvY2sgZm9yIGJlaGF2aW91ciB0aGF0IG5vdyB3b3JrcwoKMjAxMS0xMS0yNCAwOToyODozMiArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBSZW1vdmUgY29tbWVudGVkIGJsb2NrCgkgIFRoaXMgYmVoYXZpb3VyIGlzIGFjdHVhbGx5IHRlc3RlZCBpbiB0ZXN0X3B1c2hfdW5saW5rZWQKCjIwMTEtMTEtMjQgMDE6MDY6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IG1ha2UgZ3N0LWluc3BlY3QgcHJpbnQgYSBuYXN0eSBkZWJ1ZyBtZXNzYWdlIGZvciBub24tZ3JhdGEgcHJvcGVydHkgdHlwZQoJICBUcnkgdG8gZXJhZGljYXRlIHByb3BlcnRpZXMgb2YgbG9uZy91bG9uZy9jaGFyL3VjaGFyIHR5cGUuCgoyMDExLTExLTIzIDE3OjUwOjE3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIGV2ZW50OiBhZGQgU1RJQ0tZX01VTFRZIGV2ZW50cwoJICBBZGQgYSBuZXcgZXZlbnQgZmxhZyBmb3Igc3RpY2t5IGV2ZW50cyBzbyB0aGF0IG11bHRpcGxlIGV2ZW50cyBvZiB0aGF0IHR5cGUgY2FuCgkgIGJlIHN0b3JlZCBvbiBhIHBhZCBhdCB0aGUgc2FtZSB0aW1lLiBDaGFuZ2UgdGhlIF9nZXRfc3RpY2t5X2V2ZW50KCkgZnVuY3Rpb24gdG8KCSAgbG9vcCBvdmVyIHRoZSBtdWx0aXBsZSBldmVudHMgb2YgYSB0eXBlLgoJICBDaGFuZ2UgdGhlIGZvcmVhY2ggZnVuY3Rpb24gdG8gbWFrZSBpdCBwb3NzaWJsZSB0byByZW1vdmVkIGFuZCBtb2RpZnkgdGhlIHN0aWNreQoJICBldmVudHMgb24gYSBwYWQuCgkgIFVzZSBhbiB2YXJpYWJsZSBzaXplIGFycmF5IG5vdyB0byBzdG9yZSB0aGUgZXZlbnRzLiBUaGlzIGNvdWxkIGxhdGVyIGJlCgkgIG9wdGltaXplZCBzb21lIG1vcmUuCgoyMDExLTExLTIzIDE3OjM5OjQzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IGhhbmRsZSBOVUxMIG1lc3NhZ2Ugc3JjIGluIGRlYnVnCgoyMDExLTExLTIzIDE3OjM4OjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogYXZvaWQgcmVhZGluZyBwYXN0IHRoZSBhcnJheQoJICBXaGVuIHRoZSBmb3JlYWNoIGZ1bmN0aW9uIHRvbGQgdXMgdG8gcmVtb3ZlIHRoZSBidWZmZXIgZnJvbSB0aGUgbGlzdCwgZGVjcmVhc2UKCSAgdGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkgb3IgZWxzZSB3ZSBtaWdodCByZWFkIHBhc3QgdGhlIGxhc3QgaXRlbSBpbiB0aGUgYXJyYXkuCgoyMDExLTExLTIzIDEzOjQyOjU2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogUmV0dXJuIHRlbXBsYXRlIGNhcHMgaW5zdGVhZCBvZiBvdGhlciBzaWRlJ3MgcGVlciBjYXBzIGlmIGdldF9zaW5rX2NhcHMgdmZ1bmMgaXMgbm90IGltcGxlbWVudGVkCgkgIFVzaW5nIGdzdF9wYWRfcHJveHlfZ2V0X2NhcHMoKSBicmVha3MgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aCBvbGQKCSAgcGFyc2VycyBiZWNhdXNlIGl0IHdpbGwgcHJvcGFnYXRlIHRoZSBvdGhlciBzaWRlJ3MgZmllbGRzIGxpa2UgInBhcnNlZCIKCSAgYW5kICJmcmFtZWQiIGFuZCBhbHNvIGJyZWFrcyBwYXJzZXIvY29udmVydGVycy4KCSAgRml4ZXMgYnVnICM2NjQyMjEuCgoyMDExLTExLTIzIDExOjAzOjE5ICswMTAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBieXRld3JpdGVyOiBhZGQgbWV0aG9kIHRvIHdyaXRlIG91dCBhIGJ1ZmZlcgoJICBJbiAwLjEwLCB0aGlzIGNhbiBiZSBkb25lIHdpdGggYSBvbmUtbGluZXIgYnkgdXNpbmcgR1NUX0JVRkZFUl9EQVRBL1NJWkUgd2l0aAoJICBwdXRfZGF0YS4gQSAwLjExIHVzZXIgaGFzIHRvIHJlc29ydCB0byBnc3RfYnVmZmVyX21hcCwgd2hpY2ggaXMgbGVzcyBjb252ZW5pZW50CgkgIGFuZCBtaWdodCByZXF1aXJlIGEgbWVtY3B5IGludGVybmFsbHkuCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9idWZmZXIoKQoKMjAxMS0xMS0yMyAwODoxNzozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiB0YWtlIHBlZXJwYWQgY29ycmVjdGx5CgkgIERvbid0IHRha2UgdGhlIHBlZXJwYWQgdG9vIGVhcmx5LCBpdCBtaWdodCBjaGFuZ2UgYmVjYXVzZSBvZiB0aGUKCSAgcHJvYmVzLgoKMjAxMS0xMS0yMiAxODozMjo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IHJld29yayBzdGlja3kgZXZlbnRzCgkgIFJld3JpdGUgc3RpY2t5IGV2ZW50cywgdHJ5aW5nIHRvIG1ha2UgaXQgYSBiaXQgbW9yZSBzaW1wbGUuCgkgIFdoZW4gc3RpY2t5IGV2ZW50cyBhcmUgcHVzaGVkIG9uIGEgc3JjcGFkLCBzdG9yZSB0aGVtIGluIHRoZSBzdGlja3kgZXZlbnQKCSAgYXJyYXkgYW5kIG1hcmsgdGhlIGV2ZW50IHdpdGggcmVjZWl2ZWQgPSBGQUxTRS4KCSAgV2hlbiB0aGUgc3RpY2t5IGV2ZW50IGlzIHN1Y2Nlc3NmdWxseSBzZW50IHRvIHRoZSBwZWVyIHBhZCwgbWFrZQoJICByZWNlaXZlZCA9IFRSVUUuCgkgIEtlZXAgYSBQRU5ESU5HX0VWRU5UUyBwYWQgZmxhZyB0aGF0IGlzIHNldCB3aGVuIG9uZSBvZiB0aGUgZXZlbnRzIGlzIGluCgkgIHRoZSByZWNlaXZlZCA9IEZBTFNFIHN0YXRlIGZvciBzb21lIHJlYXNvbi4KCSAgd2hlbiBhY3RpdmF0aW5nIGEgc2lua3BhZCwgbWFyayBhbGwgZXZlbnRzIHJlY2VpdmVkID0gRkFMU0Ugb24gdGhlIHBlZXIKCSAgc3JjcGFkLgoJICBXaGVuIHB1c2hpbmcgYSBidWZmZXIsIGNoZWNrIHRoZSBQRU5ESU5HX0VWRU5UUyBmbGFnIGFuZCBpZiBpdCBpcyBzZXQsIHB1c2ggYWxsCgkgIGV2ZW50cyB0byB0aGUgcGVlciBwYWQgZmlyc3QuCgoyMDExLTExLTIyIDE4OjMyOjIzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhbHNvIGxldCBjYXBzIGV2ZW50cyBnbyB0aHJvdWdoCgoyMDExLTExLTIyIDE2OjQzOjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGFkZCBuZXcgZmxhZ3MKCjIwMTEtMTEtMjEgMTg6NTY6MTkgKzAxMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIGFkYXB0ZXI6IGZpeCByZXR1cm4gdHlwZSBvZiBfbWFwKCkgdG8gZ2NvbnN0cG9pbnRlcgoJICBGaXhlcyBjb21waWxlciB3YXJuaW5ncyBvbiBPU1g6CgkgIGdzdGFkYXB0ZXIuaDo4Mjogd2FybmluZzogdHlwZSBxdWFsaWZpZXJzIGlnbm9yZWQgb24gZnVuY3Rpb24gcmV0dXJuIHR5cGUKCSAgZ3N0YWRhcHRlci5jOjQxMjogd2FybmluZzogdHlwZSBxdWFsaWZpZXJzIGlnbm9yZWQgb24gZnVuY3Rpb24gcmV0dXJuIHR5cGUKCSAgY29uc3QgZ3BvaW50ZXIgaXMgbm90IHRoZSBzYW1lIGFzIGdjb25zdHBvaW50ZXIgb3IgY29uc3Qgdm9pZCAqLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0NDkxCgoyMDExLTExLTIyIDEyOjQ2OjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlIGRlZnMgZmlsZXMKCjIwMTEtMTEtMjIgMTI6NDU6NDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RldmVudC5oOgoJICBwYWRkIHJldHVybiB2YWx1ZSBmcm9tIF9taW5pX29iamVjdF9yZXBsYWNlKCkKCjIwMTEtMTEtMjEgMTg6NTY6MTkgKzAxMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIEZpeCBwcmludGYgZm9ybWF0IGNvbXBpbGVyIHdhcm5pbmdzIG9uIE9TWC82NGJpdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0NDkxCgoyMDExLTExLTIxIDE3OjQ2OjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogaW1wcm92ZSBwYWQgdGVzdHMKCjIwMTEtMTEtMjEgMTc6NDM6NTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IGxvY2tpbmcgb3JkZXIgZXJyb3IKCjIwMTEtMTEtMjEgMTc6NDM6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IGZpeCBwcmludCBmb3JtYXQKCjIwMTEtMTEtMjEgMTU6NDc6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBBZGQgZGVzdHJveSBub3RpZnkgdG8gcGFkIGZ1bmN0aW9ucwoJICBBZGQgX2Z1bGwgdmFyaWFudHMgb2YgdGhlIHBhZCBmdW5jdGlvbiBzZXR0ZXJzIHRoYXQgdGFrZSBhIGRlc3Ryb3kgbm90aWZ5LgoJICBNYWtlIHNvbWUgbWFjcm9zIHRoYXQgbWFrZSB0aGUgb2xkIG1ldGhvZCBuYW1lIHBhc3MgTlVMTCB0byB0aGlzIG5ldwoJICBmdW5jdGlvbi4KCjIwMTEtMTEtMjEgMTM6Mjk6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJICBwYWQ6IE1lcmdlIHBhZCBtb2RlIGFjdGl2YXRpb24gZnVuY3Rpb25zCgkgIEFkZCB0aGUgcGFkIG1vZGUgdG8gdGhlIGFjdGl2YXRlIGZ1bmN0aW9uIHNvIHRoYXQgd2UgY2FuIHJldXNlIHRoZSBzYW1lIGZ1bmN0aW9uCgkgIGZvciBhbGwgYWN0aXZhdGlvbiBtb2Rlcy4gVGhpcyBtYWtlcyB0aGUgY29yZSBsb2dpYyBzbWFsbGVyIGFuZCBhbGxvd3MgZm9yIHNvbWUKCSAgZWxlbWVudHMgdG8gbWFrZSB0aGVpciBhY3RpdmF0aW9uIGNvZGUgZWFzaWVyLiBJdCB3b3VsZCBhbGxvdyB1cyB0byBhZGQgbW9yZQoJICBzY2hlZHVsaW5nIG1vZGVzIGxhdGVyIHdpdGhvdXQgaGF2aW5nIHRvIGFkZCBtb3JlIGFjdGl2YXRlIGZ1bmN0aW9ucy4KCjIwMTEtMTEtMTggMTg6MDg6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNjaGVkdWxpbmcudHh0OgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZG9jczogdXBkYXRlIGRlc2lnbiBkb2MKCSAgYWxzbyBmaXggZGVmYXVsdCBhbGlnbm1lbnQgdmFsdWUgKDAgPT0gbm8tYWxpZ25tZW50KQoKMjAxMS0xMS0xOCAxNzoyNzoxNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBxdWVyeTogaW1wcm92ZSBzY2hlZHVsaW5nIHF1ZXJ5CgkgIFR1cm5zIHNvbWUgYm9vbGVhbiBhcmd1bWVudHMgaW4gdGhlIHNjaGVkdWxpbmcgcXVlcnkgdG8gZmxhZ3MsIHdoaWNoIGFyZSBlYXNpZXIKCSAgdG8gZXh0ZW5kIGFuZCBtYWtlcyB0aGUgY29kZSBlYXNpZXIgdG8gcmVhZC4KCSAgTWFrZSBleHRyYSBtZXRob2RzIGZvciBjb25maWd1cmluZyBhbmQgcXVlcnlpbmcgdGhlIHN1cHBvcnRlZCBzY2hlZHVsaW5nIG1vZGVzLgoJICBUaGlzIHNob3VsZCBtYWtlIGl0IGVhc2llciB0byBhZGQgbmV3IG1vZGVzIGxhdGVyLgoKMjAxMS0xMS0xOCAxNDowODo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogbW92ZSBmbGFncyBjbG9zZXIgdG8gYnVmZmVyaW5nIHF1ZXJ5CgoyMDExLTExLTE4IDEzOjQ2OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHBhZDogYWRkIHBhcmVudCB0byBhY3RpdmF0ZSBmdW5jdGlvbnMKCjIwMTEtMTEtMTggMTI6MzU6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJICBwYWQ6IGZpeCBzY2hlZHVsaW5nIG1vZGUgZW51bXMKCSAgR3N0UGFkQWN0aXZhdGVNb2RlIC0+IEdzdFBhZE1vZGUKCSAgR1NUX1BBRF9BQ1RJVkFURV8qIC0+IEdTVF9QQURfTU9ERV8qCgoyMDExLTExLTE3IDE2OjE0OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBmaXggZm9yIG5ldyBnZXRyYW5nZSBtZXRob2Qgc2lnbmF0dXJlCgkgIGdzdF90eXBlX2ZpbmRfaGVscGVyX2dldF9yYW5nZV9leHQgLT4gZ3N0X3R5cGVfZmluZF9oZWxwZXJfZ2V0X3JhbmdlCgoyMDExLTExLTE3IDEyOjQwOjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mZHNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzoKCSAgcGFkOiBhZGQgcGFyZW50IHRvIG90aGVyIGZ1bmN0aW9ucwoJICBBZGQgcGFyZW50IHRvIGNoYWluLCBjaGFpbl9saXN0LCBnZXRyYW5nZSBhbmQgZXZlbnQgZnVuY3Rpb25zLgoKMjAxMS0xMS0xNyAwODoyMTowNSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBtb3ZlIGZpZWxkcyBvdXQgb2YgcmVzZXJ2ZWQgYW5kIHJlc3RvcmUgcGFkZGluZwoJICBEbyB0aGUgMC4xMSBBQkkgY2hhbmdlcy4gQWRkIGV4dHJhIGZpZWxkcyBmb3IgZGVzdHJveV9ub3RpZnkgYW5kIGRyb3AgdGhlIHFkYXRhCgkgIGhhY2suIFJlbmFtZSBfYWRkX3BhZF9mdWxsIHRvIF9hZGRfcGFkIGFuZCByZW1vdmUgdGhlIG9sZCBfYWRkX3BhZC4KCjIwMTEtMTEtMTYgMTc6NDk6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIGFkZCBwYXJlbnQgdG8gaW50ZXJuYWwgbGlua3MKCjIwMTEtMTEtMTYgMTc6MjI6NTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIHBhZDogYWRkIHBhcmVudCB0byB0aGUgcXVlcnkgZnVuY3Rpb24KCjIwMTEtMTEtMTYgMTI6MzY6NTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIEdzdFBhZEZsYWdzOiByZW5hbWUgZmxhZ3MgR1NUX1BBRF8qIC0+IEdTVF9QQURfRkxBR18qCgoyMDExLTExLTE2IDEyOjEwOjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBwbHVnaW5zOiByZW1vdmUgb2Jzb2xldGUgcGFyZW50IGNoZWNrcwoKMjAxMS0xMS0xNiAxMjowODoyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGtlZXAgdGhlIHBhcmVudCBhbGl2ZSB3aGVuIHJlcXVlc3RlZAoJICBBZGQgYSBuZXcgcGFkIGZsYWcgTkVFRF9QQVJFTlQgdGhhdCBlbnN1cmVzIHRoYXQgdGhlIHBhcmVudCBvZiBhIHBhZCBpcwoJICByZWZmZWQgYW5kIG5vdCBOVUxMIHdoZW4gdGhlIGV2ZW50LCBxdWVyeSBhbmQgaW50ZXJuYWwgbGlua3MgZnVuY3Rpb25zCgkgIGFyZSBjYWxsZWQuCgkgIFdoZW4gYSBwYWQgaXMgYWRkZWQgdG8gYW4gZWxlbWVudCBhdXRvbWF0aWNhbGx5IG1ha2Ugc3VyZSB0aGUgTkVFRF9QQVJFTlQgZmxhZwoJICBpcyBlbmFibGVkLgoKMjAxMS0xMS0xNiAxMDoyOTo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBkb24ndCByZXF1aXJlIHBhcmVudCBlbGVtZW50IHRvIHByb3h5CgoyMDExLTExLTE2IDEwOjE2OjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgdXBkYXRlIHBvcnRpbmcgZG9jCgoyMDExLTExLTE1IDE4OjE2OjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgcGFkOiBtb3ZlIHF1ZXJ5IGNvbnZlbmllbmNlIGZ1bmN0aW9ucyB0b2dldGhlcgoJICBNb3ZlIHRoZSBjYXBzIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyB0byB0aGUgb3RoZXIgcXVlcnkgZnVuY3Rpb25zLgoKMjAxMS0xMS0xNSAxNzo1MDozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBfcXVlcnlfcGVlcl8qKCkgLT4gX3BlZXJfcXVlcnlfKigpCgoyMDExLTExLTE1IDE3OjQwOjE5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgX2FjY2VwdF9jYXBzKCkgLT4gX3F1ZXJ5X2FjY2VwdF9jYXBzKCkKCjIwMTEtMTEtMTUgMTc6MTE6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJICBfcGVlcl9nZXRfY2FwcygpIC0+IHBlZXJfcXVlcnlfY2FwcygpCgoyMDExLTExLTE1IDE2OjQ2OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZhbHZlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgcGFkOiBfZ2V0X2NhcHMoKSAtPiBfcXVlcnlfY2FwcygpCgoyMDExLTExLTE1IDE2OjE2OjUzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBmaXggZG9jcwoKMjAxMS0xMS0xNSAxNjoxMzo1OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogZml4IHRoZSBwcm94eSBmdW5jdGlvbnMKCSAgZml4IHRoZSBwcm94eSBmdW5jdGlvbnMgZm9yIHF1ZXJ5X2FjY2VwdF9jYXBzIGFuZCBxdWVyeV9jYXBzIHRvIHVzZSB0aGUgcGFkCgkgIGZvcndhcmQgaGVscGVyIGZ1bmN0aW9ucyB3aGljaCBjb3JyZWN0bHkgZm9yd2FyZHMgb24gdGhlIGludGVybmFsbHkgbGlua2VkIHBhZHMuCgoyMDExLTExLTE1IDE2OjEzOjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGltcHJvdmUgc29tZSBmbGFnIG1hY3JvcwoKMjAxMS0xMS0xNSAxNjoxMzoxNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggZGVidWcgbGluZQoKMjAxMS0xMS0xNSAxMToyMDo0OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgcGFkOiByZW1vdmUgZ2V0Y2FwcyBhbmQgdXNlIGNhcHMgcXVlcnkKCSAgUmVtb3ZlIHRoZSBnZXRjYXBzIGZ1bmN0aW9uIG9uIHRoZSBwYWQgYW5kIHVzZSB0aGUgQ0FQUyBxdWVyeSBmb3IKCSAgdGhlIHNhbWUgZWZmZWN0LgoJICBBZGQgUFJPWFlfQ0FQUyB0byB0aGUgcGFkIGZsYWdzLiBUaGlzIGluc3RydWN0cyB0aGUgZGVmYXVsdCBjYXBzIGV2ZW50IGFuZCBxdWVyeQoJICBoYW5kbGVycyB0byBwYXNzIG9uIHRoZSBDQVBTIHJlbGF0ZWQgcXVlcmllcyBhbmQgZXZlbnRzLiBUaGlzIHNpbXBsaWZpZXMgYSBsb3QKCSAgb2YgZWxlbWVudHMgdGhhdCBwYXNzdHJvdWdoIGNhcHMgbmVnb3RpYXRpb24uCgkgIE1ha2UgdHdvIHV0aWxpdHkgZnVuY3Rpb25zIHRvIHByb3h5IGNhcHMgcXVlcmllcyBhbmQgYWdncmVnYXRlIHRoZSByZXN1bHQuIE5lZWRzCgkgIHRvIHVzZSB0aGUgcGFkIGZvcndhcmQgZnVuY3Rpb24gaW5zdGVhZCBsYXRlci4KCSAgTWFrZSB0aGUgX3F1ZXJ5X3BlZXJfIHV0aWxpdHkgZnVuY3Rpb25zIHVzZSB0aGUgZ3N0X3BhZF9wZWVyX3F1ZXJ5KCkgZnVuY3Rpb24gdG8KCSAgbWFrZSBzdXJlIHRoZSBwcm9iZXMgYXJlIGVtaXRlZCBwcm9wZXJseS4KCjIwMTEtMTEtMTQgMTE6MjY6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IGFkZCBjYXBzIHF1ZXJ5CgoyMDExLTExLTE0IDA5OjU3OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogcmVtb3ZlIEdTVF9RVUVSWV9MQVNUCgoyMDExLTExLTE0IDEwOjI3OjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBmaXggZG9jcwoKMjAxMS0xMS0xMiAxMDoyOTozMCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJICBjb250cm9sbGVyOiByZW1vdmUgZnVuY3Rpb25zIHRvIGFkZC9yZW1vdmUgY29udHJvbGxlZCBwcm9wZXJ0aWVzCgkgIE1ha2UgdGhhdCBpbXBsaXppdCB3aXRoIGF0dGFjaGluZy9kZXRhY2hpbmcgY29udHJvbHNvdXJjZXMuIFRoaXMgaXMgYSBsb3QgZWFzaWVyCgkgIGFuZCBoYXMgbGVzcyBpbnZhbGlkIHN0YXRlIChjb250cm9sbGVkIHByb3BlcnR5IHdpdGhvdXQgY29udHJvbCBzb3VyY2UpLgoKMjAxMS0xMS0xMyAyMzo1NTo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuYzoKCSAgVXBkYXRlIGZvciBHc3RVUklIYW5kbGVyIGdldF9wcm90b2NvbHMoKSBjaGFuZ2VzCgoyMDExLTExLTEzIDIzOjI1OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgcGx1Z2lucywgdG9vbHM6IHVwZGF0ZSBmb3IgZ2V0X3Byb3RvY29scygpIHJldHVybiB2YWx1ZSBjaGFuZ2UKCjIwMTEtMTEtMTMgMjM6MTQ6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHVyaS5oOgoJICB1cmk6IGNsZWFuIHVwIGhlYWRlciBmaWxlcwoJICBUYWJzIHRvIHNwYWNlcy4KCjIwMTEtMTEtMTMgMjM6MDc6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1cmkuaDoKCSAgdXJpaGFuZGxlcjogZml4IHJldHVybiB0eXBlIG9mIGdldF9wcm90b2NvbHMoKQoKMjAxMS0xMS0xMyAyMDo1NjowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3R1cmkuaDoKCSAgdXJpaGFuZGxlcjogZml4IHJldHVybiB0eXBlIG9mIF9nZXRfdXJpX3R5cGUoKQoJICBSZXR1cm4gYSBHc3RVUklUeXBlIGFuZCBub3QgYSBwbGFpbiBndWludC4KCjIwMTEtMTEtMTMgMTc6NDU6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJICB0ZXN0czogdXBkYXRlIHVuaXQgdGVzdHMgZm9yIFVSSSBoYW5kbGVyIEFQSSBjaGFuZ2VzCgoyMDExLTExLTEzIDE3OjQ0OjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZWxlbWVudHM6IHVwZGF0ZSBmZCArIGZpbGUgc291cmNlcyBhbmQgc2lua3MgZm9yIEdzdFVyaUhhbmRsZXIgY2hhbmdlcwoKMjAxMS0xMS0xMyAxNzo0NDowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXJpaGFuZGxlcjogcGFzcyBHRXJyb3IgYXJndW1lbnQgdG8gZ3N0X3VyaV9oYW5kbGVyX3NldF91cmkoKQoJICBBbHNvIGxldCBnc3RfdXJpX2hhbmRsZXJfc2V0X3VyaSBjaGVjayBhbHJlYWR5IGlmIHRoZSBwcm90b2NvbAoJICBpcyBzdXBwb3J0ZWQsIHNvIHRoYXQgbm90IGV2ZXJ5IHVyaSBoYW5kbGVyIGhhcyB0byBkbyB0aGF0CgkgIGl0c2VsZi4KCjIwMTEtMTEtMTMgMTU6NTE6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkgIHVyaWhhbmRsZXI6IG1ha2UgX2dldF91cmkoKSByZXR1cm4gYSBjb3B5CgkgIEZvciB0aHJlYWQtc2FmZXR5LgoKMjAxMS0xMS0xMyAxNTozNzo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1cmkuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIHVyaWhhbmRsZXI6IHJlbW92ZSAibmV3LXVyaSIgc2lnbmFsCgkgIE5vIG9uZSBidXQgZmlsZXNyYyB1c2VkIHRoYXQgQVBJLiBTaG91bGQgcHJvYmFibHkgYmUgcmVwbGFjZWQgYnkKCSAgcmVxdWlyaW5nIGFuICJ1cmkiIHByb3BlcnR5IGluc3RlYWQsIGFuZCB0aGVuIG9iamVjdHMgY2FuIGRvIGEKCSAgbm90aWZ5IG9uIHRoYXQuIEFsc28gcmVtb3ZlZCBpbnRlcmZhY2Ugc3RydWN0dXJlIHBhZGRpbmcsIGl0J3MKCSAgbm90IG5lZWRlZC4KCjIwMTEtMTEtMTMgMTM6MjM6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYwoKMjAxMS0xMS0xMiAxNjo0MjoxNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogcHJpbnQgY3VycmVudCB2YWx1ZSBhcyBkZWZhdWx0IHZhbHVlCgkgIEluc3RlYWQgb2YgcHJpbnRpbmcgc2VwYXJhdGUgJ0N1cnJlbnQnIGFuZCAnRGVmYXVsdCcgdmFsdWVzCgkgICh0aGUgZm9ybWVyIG9idGFpbmVkIHZpYSBnX29iamVjdF9nZXQoKSBhbmQgdGhlIGxhdHRlciBmcm9tCgkgIHRoZSBwcm9wZXJ0eSBHUGFyYW1TcGVjKSwgc2ltcGx5IHByaW50IHRoZSBDdXJyZW50IHZhbHVlIGFzCgkgIHRoZSBEZWZhdWx0IHZhbHVlLiBUaGlzIGlzIHRoZSByaWdodCB0aGluZyB0byBkbyBmb3IgYWxtb3N0CgkgIGFsbCBlbGVtZW50cyBhbmQgYXZvaWRzIGNvbmZ1c2lvbiBpZiBhIHN1YmNsYXNzIG9mIGEgYmFzZQoJICBjbGFzcyBjaG9vc2VzIGEgZGlmZmVyZW50IGRlZmF1bHQgdGhhbiB0aGUgYmFzZSBjbGFzcy4KCjIwMTEtMTEtMTIgMTQ6NTU6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgZ3N0LCBjb250cm9sbGVyOiByZXBsYWNlIGdfbGlzdF9wcmVwZW5kICsgcmV2ZXJzZSB3aXRoIEdRdWV1ZQoKMjAxMS0xMS0xMiAxNDowNDoxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGRvY3M6IGZpeCB0eXBvIGluIGJ1ZmZlciBkb2NzCgoyMDExLTExLTEyIDAxOjU0OjQ0ICswMTAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGZpeCBjYXBzIHVucmVmIGluIHRyYW5zZm9ybV9jYXBzIGZpbHRlciBzdWJzZXQgY2hlY2sKCSAgSSBkaWQgbm90IHRlc3QgdGhpcywgYnV0IHRoZSBjb2RlIGxvb2tlZCB2ZXJ5IHdyb25nLgoKMjAxMS0xMS0xMiAwMTo1MToxMSArMDEwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogZG8gbm90IHJldHVybiBhIHJlZiBmcm9tIHBhcnNlX2FjY2VwdF9jYXBzCgkgIE1ha2VzIHRoaXMgZXhhY3RseSBsaWtlIGdzdF9ldmVudF9wYXJzZV9jYXBzLiBUaGlzIGlzIHdoYXQgY3VycmVudCBjb2RlCgkgIGV4cGVjdHMsIHNvIGl0IGZpeGVzIHNvbWUgbGVha3MuCgoyMDExLTExLTExIDE3OjE3OjQzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlcHJpdmF0ZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlcHJpdmF0ZS5oOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJICAuaDogZml4IGhlYWRlciBmaWxlcwoJICBFbnN1cmUgY29ycmVjdCBpbmRlbnRhdGlvbiBhbmQgcmV0YWIKCSAgTWFrZSBzdXJlIGFsbCBzdHJ1Y3R1cmUgaGF2ZSBwYWRkaW5nCgoyMDExLTExLTExIDE2OjUyOjQxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuaDoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0aW5kZXguaDoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuaDoKCSogZ3N0L2dzdHByZXNldC5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHRhZ3NldHRlci5oOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiBnc3QvZ3N0dGFza3Bvb2wuaDoKCSogZ3N0L2dzdHRyYWNlLmg6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuaDoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJICAuaDogZml4IGhlYWRlciBmaWxlcwoJICBFbnN1cmUgY29ycmVjdCBpbmRlbnRhdGlvbiBhbmQgOnJldGFiLgoJICBNYWtlIHN1cmUgYWxsIHN0cnVjdHVyZXMgaGF2ZSBwYWRkaW5nCgkgIEZpeCB1cCBzb21lIG9sZCBBQkkgYWRkaXRpb25zLgoKMjAxMS0xMS0xMSAxNzowNDo1MiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZG9jczogZml4IGludmFsaWQgeG1sCgoyMDExLTExLTExIDEwOjAwOjM1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGF2b2lkIDwgLTEgc2l6ZXMKCjIwMTEtMTEtMTEgMDE6NDc6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBidWZmZXIsIG1lbW9yeTogbWFrZSBzaXplIGFyZ3VtZW50cyB3aGVyZSAtMSBpcyBhbGxvd2VkIHNpZ25lZAoKMjAxMS0xMS0xMSAwMTo0NDoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSAuZGVmIGZpbGUgZm9yIGxhdGVzdCBBUEkgY2hhbmdlcwoKMjAxMS0xMS0xMCAxOTozNzoyOCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3Rjb250cm9sbGVyLmM6CgkqIGdzdC9nc3Rjb250cm9sbGVyLmg6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJICBjb250cm9sbGVyOiBtZXJnZSBjb250cm9sbGVyIGludG8gZ3N0b2JqZWN0CgkgIFRoaXMgbWFrZSB0aGUgY29udHJvbGxlciBldmVuIG1vcmUgbGlnaHR3ZWlnaHQgKG5vIGV4dHJhIG9iamVjdCwgbm8gZXh0cmEgbG9jaywKCSAgbGVzcyBpbmRpcmVjdGlvbnMpLiBGb3Igb2JqZWN0IHRoYXQgZG9uJ3QgdXNlIHRoZSBjb250cm9sbGVyIHRoZSBvbmx5ICdvdmVyaGVhZCcKCSAgaXMgYSAzIHVudXNlZCBmaWVsZHMgaW4gdGhlIGdzdF9vYmplY3Qgc3RydWN0dXJlLgoKMjAxMS0xMS0xMCAxODo1ODozNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuaDoKCSAgbmV0bWV0YTogYXZvaWQgdXNpbmcgZ1t1XWxvbmcgaW4gaGVhZGVycwoKMjAxMS0xMS0xMCAxODoxODoyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IHJlbW92ZSBmbHVzaCBmcm9tIF91bm1hcAoKMjAxMS0xMS0xMCAxNjowMjo1OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBpbXBsZW1lbnQgYSBkZWZhdWx0IGdldF9jYXBzIGZ1bmN0aW9uCgkgIERvbid0IHJlbHkgb24gdGhlIHJldHVybiB2YWx1ZSBvZiBhIHZtZXRob2QgdG8gdHJpZ2dlciB0aGUgZGVmYXVsdAoJICBpbXBsZW1lbnRhdGlvbiBidXQgbWFrZSBhIHJlYWwgZGVmYXVsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBtZXRob2QgdGhhdCB0aGUKCSAgc3ViY2xhc3MgY2FuIGNoYWluIHVwIHRvLgoKMjAxMS0xMS0xMCAxNDoxMzo1NCArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGdzdGJ1ZmZlcjogcmVtb3ZlIGluY29ycmVjdCBhc3NlcnRpb24KCSAgT2Zmc2V0IGFuZCBzaXplcyBoYXZlIG5vIGJlYXJpbmcgb24gZWFjaCBvdGhlciBoZXJlLgoKMjAxMS0xMS0xMCAxMzo1OToyOCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIGRlZiBmaWxlcwoKMjAxMS0xMS0xMCAxMzo1MzozMyArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgZ3N0OiBNb3JlIGludHJvc3BlY3Rpb24gYW5ub3RhdGlvbnMKCjIwMTEtMTEtMTAgMTM6NTE6MjggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIGdzdG1lbW9yeTogUmVnaXN0ZXIgYSBHQm94ZWQgR1R5cGUKCSAgQWxsb3dzIHVzaW5nIGl0IGZyb20gZy1pCgoyMDExLTExLTEwIDEzOjUwOjIzICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgaW50cm9zcGVjdGlvbjogQWRkIC0td2Fybi1hbGwgdG8gaW50cm9zcGVjdGlvbiBzY2FubmVyCgkgIC4uLiBhbmQgbGV0J3MgZ2V0IGZpeGluZyBhbGwgdGhvc2UgZG9jcyAhCgoyMDExLTExLTEwIDEzOjM4OjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGZpeCB2bWV0aG9kcwoJICBNYWtlIGEgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgdHJhbnNmb3JtX2NhcHMgdm1ldGhvZCBzbyB0aGF0IHN1YmNsYXNzZXMKCSAgY2FuIGNhbGwgaW50byBpdC4KCSAgTWFrZSBhIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgdHJhbnNmb3JtX3NpemUuCgkgIEF2b2lkIGRvaW5nIHNvbWV0aGluZyBpbiB0aGUgdm1ldGhvZCB0cmFtcG9saW5lLgoKMjAxMS0xMS0xMCAxMzozNzoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzoKCSAgdGVzdHM6IG9ubHkgb3ZlcnJpZGUgd2hlbiAhPSBOVUxMCgkgIE9ubHkgb3ZlcnJpZGUgdGhlIG1ldGhvZHMgaW4gdGhlIHVuaXQgdGVzdHMgd2hlbiAhPSBOVUxMIG90aGVyd2lzZSB3ZSBtaWdodAoJICBvdmVycmlkZSB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4KCjIwMTEtMTEtMTAgMTM6MzY6MTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkgIHB1c2hzcmM6IG1ha2UgYWxsb2MgbWV0aG9kIGEgdm1ldGhvZAoKMjAxMS0xMS0xMCAxMjozMzo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHJlb3JkZXIgdm1ldGhvZCBhY2NvcmRpbmcgdG8gLmggZmlsZQoKMjAxMS0xMS0xMCAxMjozMzozMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgYmFzZXNpbms6IGltcHJvdmUgY29tbWVudHMKCjIwMTEtMTEtMTAgMTI6MzM6MTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZG9uJ3QgZG8gdGhpbmdzIGluIHRoZSB2bWV0aG9kIHRyYW1wb2xpbmUKCjIwMTEtMTEtMTAgMTI6MDk6NTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGFkZCBhIGRlZmF1bHQgc2V0X2Nsb2NrIGltcGxlbWVudGF0aW9uCgkgIEFkZCBhIGRlZmF1bHQgc2V0X2Nsb2NrIGltcGxlbWVudGF0aW9uIGFuZCBhdm9pZCBkb2luZyB3b3JrIGluIHRoZSB2bWV0aG9kCgkgIHRyYW1wb2xpbmUuIFRoaXMgcmVxdWlyZXMgc3ViY2xhc3NlcyB0byBjaGFpbiB1cC4KCjIwMTEtMTEtMTAgMTI6MDg6NTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBkb24ndCBkbyBhbnl0aGluZyBpbiB0aGUgdm1ldGhvZCB0cmFtcG9saW5lCgkgIEF2b2lkIGRvaW5nIHN0dWZmIGluIHRoZSB2bWV0aG9kIHRyYW1wb2xpbmUsIGp1c3QgbGV0IHRoZSBkZWZhdWx0CgkgIGltcGxlbWVudGF0aW9uIG9mIHRoZSBtZXRob2QgdGFrZSBjYXJlIG9mIHRoaW5ncy4KCjIwMTEtMTEtMTAgMTI6MDg6MTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBmaXggc29tZSBkb2NzCgoyMDExLTExLTEwIDExOjQyOjI2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBhZGFwdGVyOiB1c2UgZ3BvaW50ZXIgZm9yIHJldHVybiB0eXBlcwoKMjAxMS0xMS0xMCAxMToxMjozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBkb2MKCjIwMTEtMTEtMTAgMTA6NTg6NDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBwYWQ6IHJlbW92ZSBHc3RQYWRGaXhhdGVDYXBzRnVuY3Rpb24KCSAgVGhlIGZpeGF0ZSBjYXBzIGZ1bmN0aW9uIHdhcyBub3QgdXNlZCBleHRlcm5hbGx5IGFuZCB3ZSBoYXZlIHZtZXRob2RzIGluIHRoZQoJICBiYXNlIGNsYXNzZXMgd2hlcmUgaXQgaXMgbmVlZGVkLgoJICBVcGRhdGUgc29tZSBkb2NzLgoJICBzaW1wbGlmeSBzb21lIGZpeGF0ZSBmdW5jdGlvbnMgaW4gdGhlIGJhc2UgY2xhc3Nlcy4gQWxzbyBwYXNzIHRoZSB1bnRydW5jYXRlZAoJICBjYXBzIHRvIHRoZSB2bWV0aG9kLgoKMjAxMS0xMS0wOSAxNzo0Mzo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBzdG9yZSBldmVudHMgb24gZmx1c2hpbmcgcGFkcwoJICBjaGVjayB0aGUgZmx1c2hpbmcgc3RhdGUgb2YgdGhlIHBhZCBiZWZvcmUgc3RvcmluZyB0aGUgZXZlbnQuCgoyMDExLTExLTA5IDE3OjM2OjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBwYWQ6IG1ha2UgYW4gQUNDRVBUX0NBUFMgcXVlcnkKCSAgUmVwbGFjZSB0aGUgYWNjZXB0Y2FwcyBmdW5jdGlvbiB3aXRoIGEgcXVlcnkuCgoyMDExLTExLTA5IDE3OjI1OjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBwYWQ6IHJlZnVzZSBldmVudHMgaW4gZmx1c2hpbmcKCSAgd2hlbiB3ZSBhcmUgZmx1c2hpbmcsIGRvbid0IHN0b3JlIHRoZSBldmVudCBvbiB0aGUgcGFkIGJ1dCBzaW1wbHkgcmV0dXJuIEZBTFNFLgoJICBEb24ndCBkZWFjdGl2YXRlIHRoZSBzcmNwYWQsIHdlIG5lZWQgaXQgdG8gYmUgYWN0aXZlIGluIG9yZGVyIHRvIHB1c2ggdGhlCgkgIGNhcHMuIERvd25zdHJlYW0gY2FuIGNoYW5nZSB0aGUgc2NoZWR1bGluZyBtb2RlIG9mIGFuIGFjdGl2ZSBwYWQuCgoyMDExLTExLTA5IDE3OjE5OjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgZWxlbWVudDogcmVtb3ZlIG1vcmUgcXVlcnlfdHlwZXMKCjIwMTEtMTEtMDkgMTE6MDU6NTkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBBbmRyb2lkLm1rOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICBBbmRyb2lkOiBidWlsZCBhdWRpbyBjb250cm9sbGVyIGV4YW1wbGUKCSAgQWRkIGJ1aWxkc3lzdGVtIGhvb2tzIGZvciBidWlsZGluZyB0aGUgYXVkaW9jb250cm9sbGVyIGV4YW1wbGUKCSAgd2l0aCB0aGUgTkRLLgoJICBTaWduZWQtb2ZmLWJ5OiBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bjb2xsYWJvcmEuY29tPgoKMjAxMS0xMS0wOSAxMjoyMToxNyArMDEwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IHBhZDogYWRkIHRlc3RzIGZvciBzdGlja3kgY2FwcyBoYW5kbGluZwoJICB0ZXN0X3N0aWNreV9jYXBzX2ZsdXNoaW5nIGlzIGN1cnJlbnRseSBmYWlsaW5nLgoKMjAxMS0xMS0wOSAxMjoxMjoyNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgdXBkYXRlIGNvbW1vbgoKMjAxMS0xMS0wOSAxMjowMzoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTEtMDkgMTI6MDI6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgcG9ydGluZyBkb2MKCjIwMTEtMTEtMDkgMTE6NDc6MTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgcmVtb3ZlIHF1ZXJ5IHR5cGVzCgkgIEl0IHdhcyBub3QgcmVhbGx5IHVzZWZ1bAoKMjAxMS0xMS0wOCAxODowOToyOCArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IGNvbnNpZGVyIGxpc3RzIGFuZCByYW5nZXMgZXF1YWwgaWYgdGhleSBob2xkIHRoZSBzYW1lIHNldAoJICBUaGlzIGZpeGVzIGNhcHMgb3BlcmF0aW9ucyB3aGVuIGRpZmZlcmVudCBlbGVtZW50cyBhZHZlcnRpc2Ugc29tZQoJICBvZiB0aGVpciBjYXBzJyBwcm9wZXJ0aWVzIGRpZmZlcmVudGx5IChlZywgZm9yIGF1ZGlvIGNoYW5uZWxzLCBlaXRoZXIKCSAgYSByYW5nZSBmcm9tIDEgdG8gMiwgb3IgYSBsaXN0IG9mIDEgYW5kIDIpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYzNjQzCgoyMDExLTExLTA5IDExOjI0OjI2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICB0ZXN0czogYWRkIGEgc3Vic2V0IHRlc3QgZm9yIHN0cnVjdHVyZQoKMjAxMS0xMS0wOSAxMToyMjozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIHBhZDogYWRkIG1vcmUgcXVlcmllcwoJICBBZGQgbW9yZSBxdWVyeSBmdW5jdGlvbnMgdG8gcHJlcGFyZSBmb3IgZG9pbmcgbW9yZSB3aXRoIHF1ZXJpZXMKCjIwMTEtMTAtMjggMTM6Mzk6NTggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSAgZG9jczogYWxzbyBmaXggd3JvbmcgY2FsbCBvcmRlciBmb3IgY29udHJvbGxlciBpbiBtYW51YWwKCjIwMTEtMTEtMDggMTc6MzI6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2Jlcy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGluc3RhbGwgcXVlcnkgcHJvYmVzCgkgIEZpcmUgcXVlcnkgcHJvYmVzIGFjY29yZGluZyB0byB1cGRhdGVkIGRlc2lnbiBkb2MuCgoyMDExLTExLTA4IDE1OjUxOjQ4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IHJlbW92ZSBsb2NrL3VubG9ja19mdWxsIHZlcnNpb25zIG9mIHN0cmVhbS1sb2NrCgoyMDExLTExLTA4IDE1OjQ4OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCBkZWZpbmVzIGZvciBxdWVyeSBwcm9iZXMKCjIwMTEtMTEtMDggMTM6MzA6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IHVuaXQgdGVzdAoKMjAxMS0xMS0wOCAxMzoxMzo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiB1cGRhdGUgZG9jcwoKMjAxMS0xMS0wOCAxMzowMjowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdDogcG9ydCB0byAwLjExCgoyMDExLTExLTA4IDEyOjU0OjE1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RlbGVtZW50LmgKCSAgZ3N0L2dzdGdob3N0cGFkLmMKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYwoKMjAxMS0xMS0wOCAxMjo0NzozMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvYmVzLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIHB1bGwgbW9kZSBwcm9iZXMKCSAgQWxsb3cgcHJvYmVzIHRvIGluc3BlY3QgdGhlIG9mZnNldCBhbmQgc2l6ZSBmcm9tIGEgcHJvYmUgaW4gcHVsbCBtb2RlIGFuZCBhbGxvdwoJICB0aGUgcHJvYmUgdG8gbW9kaWZ5IHRoZSBidWZmZXIuCgkgIFVwZGF0ZSBkZXNpZ24gZG9jIGEgbGl0dGxlLgoKMjAxMS0xMS0wOCAxMjoyMjoyMSArMDEwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IHBhZDogYWRkIHRlc3QgdG8gdmVyaWZ5IGZsdXNoaW5nIGJlaGF2aW91cgoJICBTZWVtcyBsaWtlIGEgdHJpdmlhbCBjYXNlLCBidXQgdGhpcyB3YXMgYWN0dWFsbHkgYnJva2VuIGluIDAuMTEgcmVjZW50bHkuCgoyMDExLTExLTA4IDExOjA0OjE5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9xdWV1ZS1lcnJvci5jOgoJICBwYWQ6IEFkZCBHc3RQYWRQcm9iZUluZm8KCSAgTWFrZSBhIG5ldyBHc3RQYWRQcm9iZUluZm8gc3RydWN0dXJlIGFuZCBwYXNzIHRoaXMgaW4gdGhlIHByb2JlIGNhbGxiYWNrLiBUaGlzCgkgIGFsbG93cyB1cyB0byBhZGQgbW9yZSB0aGluZ3MgbGF0ZXIgYW5kIGFsc28gYWxsb3cgdGhlIGNhbGxiYWNrIHRvIHJlcGxhY2Ugb3IKCSAgbW9kaWZ5IHRoZSBwYXNzZWQgb2JqZWN0LgoKMjAxMS0xMS0wOCAwODoyNjoyOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogbG9nIGNyZWF0aW9uIG9mIHFvcyBldmVudHMgYXQgTE9HIGxldmVsIGluc3RlYWQgYXQgSU5GTwoKMjAxMS0xMS0wNyAxNjo1NzozNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBpbXByb3ZlIHBhcmFtZXRlciBkb2NzCgoyMDExLTExLTA4IDAwOjMyOjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIGRvY3M6IGZpeCBTaW5jZTogbWFya2VycyBmb3IgQVBJIGFkZGVkIGFmdGVyIDAuMTAuMzUKCjIwMTEtMTEtMDggMDA6MTU6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgLmRlZiBmaWxlIGZvciBuZXcgQVBJCgkgIEFQSTogZ3N0X2NhcHNfaXNfc3RyaWN0bHlfZXF1YWwoKQoKMjAxMS0xMS0wNyAxNzoxNzozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0dmFsdWUuYwoKMjAxMS0xMS0wNyAxNzowNDoxMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9xdWV1ZS1lcnJvci5jOgoJICBwYWQ6IHJld29yayBwYWQgcHJvYmVzCgkgIE1ha2UgYSBzZXBhcmF0ZSBjb29raWUgdG8gZGV0ZWN0IGNoYW5jZ2VzIGluIHRoZSBsaXN0IG9mIHByb2JlcyBhbmQga2VlcGluZwoJICB0cmFjayBvZiB3aGF0IGhvb2tzIGhhdmUgYmVlbiBpbnZva2VkIHlldC4KCSAgUmVtb3ZlIHRoZSByZXF1aXJlbWVudCB0byBoYXZlIHByb2JlcyBvbiBzcmNwYWRzIGluIHB1c2ggbW9kZSBhbmQgc2lua3BhZHMgaW4KCSAgcHVsbCBtb2RlLgoJICBBZGQgc29tZSBtb3JlIGRlYnVnLgoJICBLZWVwIHRyYWNrIG9mIHdoYXQgY2FsbGJhY2tzIGdvdCBleGVjdXRlZC4gSWYgbm8gY2FsbGJhY2sgaXMgY2FsbGVkIGFuZCB3ZSBhcmUgYQoJICBibG9ja2luZyBwYWQsIGxldCB0aGUgaXRlbSBwYXNzLiBUaGlzIGFsbG93cyB5b3UgdG8gYmxvY2sgcGFkcyBvbiBzZWxlY3RlZAoJICBpdGVtcyBvbmx5LgoJICBFeHBsaWNpdGx5IGhhdmUgYW4gVVBTVFJFQU0gYW5kIERPV05TVFJFQU0gUGFkUHJvYmVUeXBlLiBUaGlzIGFsbG93cyB5b3UgdG8gb25seQoJICBibG9jayB0aGUgcGFkIG9uIHVwc3RyZWFtIG9yIGRvd25zdHJlYW0gaXRlbXMuCgkgIEFkZCBjb252ZW5pZW5jZSBtYWNyb3MgdG8gb25seSBibG9jayBvbiBkb3duc3RyZWFtL3Vwc3RyZWFtIGl0ZW1zLgoKMjAxMS0xMC0yNyAxMjo1OTo1NyArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBnc3RjYXBzOiByZW1vdmUgdW5uZWVkZWQgdXNlIG9mIGdpbnQ2NAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyNzc3CgoyMDExLTEwLTI3IDEyOjI0OjEzICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBxdWlja2VyIHZlcnNpb24gb2YgaW50ZXJzZWN0aW9uIHdoZW4gd2UgZG8gbm90IG5lZWQgdGhlIHJlc3VsdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyNzc3CgoyMDExLTEwLTI3IDEyOjAyOjQzICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZ3N0c3RydWN0dXJlOiBzaW1wbGlmeSByZXR1cm4gc3RhdGVtZW50IGluIGdzdF9zdHJ1Y3R1cmVfY2FuX2ludGVyc2VjdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyNzc3CgoyMDExLTEwLTI3IDExOjQxOjMwICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZ3N0c3RydWN0dXJlOiBlYXJseSBvdXQgd2hlbiB3ZSBrbm93IGEgdmFsdWUgY2Fubm90IGJlIGEgc3Vic2V0CgkgIElmIHR3byB2YWx1ZXMgY2FuIGJlIG9yZGVyZWQsIGJ1dCBhcmUgdW5lcXVhbCwgdGhleSBhcmUKCSAgbmVjZXNzYXJpbHkgZGlzdGluY3QsIHRodXMgb25lIGNhbm5vdCBiZSBhIHN1YnNldCBvZiB0aGUgb3RoZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjI3NzcKCjIwMTEtMTAtMjcgMTA6MzU6NTMgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IHF1aWNrZXIgdGVzdCBmb3Igc3Vic3RyYWN0aW9uIGVtcHRpbmVzcwoJICBXaGVuIHdlIGRvIG5vdCBjYXJlIGFib3V0IHRoZSBhY3R1YWwgcmVzdWx0aW5nIHNldCwKCSAgYnV0IG9ubHkgd2hldGhlciBpdCBpcyBlbXB0eSBvZiBub3QsIHdlIGNhbiBza2lwIGEgZmFpciBiaXQKCSAgb2YgR1ZhbHVlIGp1Z2dsaW5nLgoJICBBZGQgYSBmdW5jdGlvbiB0aGF0IGRvZXMgc28sIHNpbmNlIHdlIGNhbm5vdCBqdXN0IHBhc3MgTlVMTAoJICB0byB0aGUgZXhpc3RpbmcgQVBJIGFzIGl0IG1heSBiZSBwYXJ0IG9mIHRoZSBBUEkgY29udHJhY3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjI3NzcKCjIwMTEtMTAtMjcgMDk6NDU6NDEgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBnc3RzdHJ1Y3R1cmU6IHJlamlnIHRlc3Qgb3JkZXJpbmcgZm9yIHNwZWVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjI3NzcKCjIwMTEtMTEtMDcgMTI6Mjg6MjIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiBtZW50aW9uIG1vcmUgYXBpIGNoYW5nZXMgaW4gdGhlIHBvcnRpbmcgZ3VpZGUKCjIwMTEtMTEtMDcgMTA6NDA6MjMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBmaXggY29tcGlsYXRpb24KCjIwMTEtMTEtMDcgMTA6MDE6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCjIwMTEtMTEtMDYgMDA6MDc6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSAgUmV2ZXJ0ICJjb250cm9sbGVyOiBmaXggZ19yZXR1cm4gc3RhdGVtZW50IgoJICBUaGlzIHJldmVydHMgY29tbWl0IDU5M2QyYjI5N2JkN2I1Y2U5ZGJjZGYyZjFhZTJiNzYyNGQ5NGQ2YWUuCgkgIGdzdF9jb250cm9sbGVyX3NldF9kaXNhYmxlZCAoKSByZXR1cm5zIGEgdm9pZC4KCjIwMTEtMTEtMDUgMTI6MTA6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogcmVtb3ZlIHJlZnMgdG8gcmVtb3ZlZCBBUEkKCjIwMTEtMTEtMDQgMjE6Mzc6NDUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbGxlci5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGNvbnRyb2xsZXI6IHRoZSBvYmplY3QgbmVlZHMgYSByZWYgdG8gdGhlIGNvbnRyb2xsZXIgZm9yIHRoZSBjb252ZW5pZW5jZSBhcGkKCSAgQWRkIGEgaGFjayB0byBlbnN1cmUgdGhlIG9iamVjdCB3aWxsIGhhdmUgYSByZWYgdG8gdGhlIGNvbnRyb2xsZXIgb25jZSB3ZQoJICBjcmVhdGUgaXQuIEZpeGVzIHRoZSBhdWRpbyBleGFtcGxlICh0aGF0IHVzZXMgdGhlIGNvbnRyb2xsZXIgYXBpIGRpcmVjdGx5KS4KCjIwMTEtMTEtMDQgMjE6Mzc6MjEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBmaXggZ19yZXR1cm4gc3RhdGVtZW50CgoyMDExLTExLTA0IDIxOjM1OjU1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogbG9nZ2luZyB0d2Vha3MKCSAgRG9uJ3QgbG9nIGluIF9uZXcgYmVmb3JlIHdlIGhhdmUgdGhlIGxvZyBjYXRlZ29yeS4gVXNlIF9PQkpFQ1QgdmFyaWFudHMuCgoyMDExLTExLTA1IDAxOjI3OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb250cm9sbGVyLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0OiBmaXggc29tZSBjb21waWxlciB3YXJuaW5ncwoJICBnc3RvYmplY3QuYzogSW4gZnVuY3Rpb24gJ2dzdF9vYmplY3RfaGFzX2FjdGl2ZV9hdXRvbWF0aW9uJzoKCSAgZ3N0b2JqZWN0LmM6MTA3NjozOiBlcnJvcjogJ3JldHVybicgd2l0aCBubyB2YWx1ZSwgaW4gZnVuY3Rpb24gcmV0dXJuaW5nIG5vbi12b2lkCgkgIGdzdGNvbnRyb2xsZXIuYzogSW4gZnVuY3Rpb24gJ2dzdF9jb250cm9sbGVyX2lzX2FjdGl2ZSc6CgkgIGdzdGNvbnRyb2xsZXIuYzo1MDk6MzogZXJyb3I6ICdyZXR1cm4nIHdpdGggbm8gdmFsdWUsIGluIGZ1bmN0aW9uIHJldHVybmluZyBub24tdm9pZAoKMjAxMS0xMS0wNCAyMDo1MDo1OCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rjb250cm9sbGVyLmM6CgkqIGdzdC9nc3Rjb250cm9sbGVyLmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJICBjb250cm9sbGVyOiBhZGQgYXBpIHRvIGNoZWNrIGZvciBhY3RpdmUgY29udHJvbGxlcnMgKG5lZWRlZCBmb3IgZS5nLiB2b2x1bWUpCgoyMDExLTExLTA0IDIwOjMyOjMyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5oOgoJICBjb250cm9sbGVyOiByZW1vdmUgb2Jzb2xldGUgY29tbWVudHMgZnJvbSBhcGkgdHJhbnNpdGlvbgoKMjAxMS0xMS0wNCAxNDowMDoyNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGxpYnNjcHAuY2M6CgkgIGNvbnRyb2xsZXI6IGZpeCB0ZXN0cyBhZnRlciBtb3ZlIGFuZCBBUEkgY2hhbmdlcwoKMjAxMS0xMS0wNCAxMTo0MjozNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgY29udHJvbGxlcjogcG9ydCB0byBuZXcgY29udHJvbGxlciBhcGkKCjIwMTEtMTEtMDQgMTE6Mzk6MjUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJICBjb250cm9sbGVyOiB1cGRhdGUgZG9jcyBmb3IgY29udHJvbGxlciBtb3ZlCgoyMDExLTExLTA0IDExOjM0OjExICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0Y29udHJvbGxlci5jOgoJKiBnc3QvZ3N0Y29udHJvbGxlci5oOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVycHJpdmF0ZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2xpYi5jOgoJICBjb250cm9sbGVyOiBtb3ZlIHRvIGNvcmUvZ3N0b2JqZWN0CgkgIE1vdmUgdGhlIGNvbnRyb2xsZXIgdG8gZ3N0b2JqZWN0IGFzIGEgc2ltcGxlIGRlbGVnYXRlLiBUaGUgY29udHJvbGxlciBhbmQKCSAgY29udHJvbHNvdXJjZSBhcmUgbm90IGNsYXNzZXMgaW4gY29yZS4gVGhlIGNvbnRyb2xzb3VyY2VzIHN0YXkgc2VwYXJhdGUgYXMgYSBsaWIKCSAgZm9yIG5vdy4gVGhpcyB3YXkgd2UgY2FuIGF2b2lkIHRoZSBxZGF0YSBsb29rdXBzLgoJICBBbHNvIHJlbW92ZSBjb250cm9sbGVyX2luaXQoKS4gVGhlcmUgaXMgbm8gbW9yZSBuZWVkIHRvIGxpbmsgdG8gY29udHJvbGxlciBmb3IKCSAgZWxlbWVudHMuCgkgIEFsc28gc2FuaXRpemUgdGhlIEFQSS4gV2Ugbm93IGhhdmUgZnVuY3Rpb25zIHRvIGFkZCBwcm9wZXJ0aWVzIGxpa2Ugd2UgaGFkCgkgIG1ldGhvZHMgdG8gcmVtb3ZlIHRoYXQuIFRoYXQgYXZvaWRzIHRoZW4gcmVmIGNvdW50IGhhY2tzIHdlIGhhZCBpbiBfbmV3LgoKMjAxMS0xMS0wMyAxODoyMzoxMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IHNtYWxsIGNsYXJpZmljYXRpb24KCjIwMTEtMTEtMDMgMTg6MjI6MTYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBtaXNzaW5nIHJlbmFtZSBpZmFjZS0+aW50ZXJmYWNlIGluIHRoZSBkb2NzCgoyMDExLTExLTA0IDE5OjE3OjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGZpeCB0aGUgaXRlcmF0b3IgY29weQoKMjAxMS0xMS0wNCAxOToxMToxOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0YmluLmMKCjIwMTEtMTEtMDMgMTU6MzY6NTkgKzAwMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZC5zaW1vbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IE9ubHkgdXNlIHRoZSBjYWNoZWQgdHJhbnNmb3JtIG9uIHN0cmljdGx5IGVxdWFsIGNhcHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2MzMzMwoKMjAxMS0xMS0wMyAxNTozNTozMiArMDAwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiBBZGQgZ3N0X2NhcHNfaXNfc3RyaWN0bHlfZXF1YWwKCjIwMTEtMTEtMDQgMTg6NDc6MTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJICB0ZXN0czogZml4IHRlc3RzCgkgIFNpbmNlIGJsb2NrcyBhcmUgbm90IG9uIGJvdGggZGlyZWN0aW9ucywgd2UgbmVlZCB0byBjaGVjayBpbiB0aGUgYmxvY2sgY2FsbGJhY2sKCSAgaWYgd2UgYXJlIG5vdCBibG9ja2luZyBvbiBhbiB1cHN0cmVhbSBldmVudCBhbmQgbGV0IGl0IHBhc3MuCgoyMDExLTExLTA0IDE4OjE5OjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1wcm9iZXMudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbWFrZSBwcm9iZXMgd29yayBvbiBhbGwgcGFkcwoJICBmaXhlcyAjNjQ0OTA3CgoyMDExLTEwLTE1IDIyOjUyOjI1ICswMzAwICBQZXRlcmlzIEtyaXNqYW5pcyA8cGVjaXNrQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RjbG9jay5oOgoJICBpbnRyb3NwZWN0aW9uOiBhZGQgVmFsdWUgYW5ub3RhdGlvbnMgZm9yIEdTVF9TRUNPTkQsIEdTVF9NU0VDT05ELCBHU1RfVVNFQ09ORCwgR1NUX05TRUNPTkQgY29uc3RhbnRzCgkgIGdvYmplY3QtaW50cm9zcGVjdGlvbiB3b24ndCBwYXJzZSB0aGVtIHByb3Blcmx5IG90aGVyd2lzZS4KCSAgU3RpbGwgbmVlZCB0byBmb3JjZSB0aGUgcmlnaHQgdHlwZSB0aG91Z2ggKGVpdGhlciBHc3RDbG9ja1RpbWUgb3IKCSAgZ3VpbnQ2NCksIGJ1dCBUeXBlOiB4eXogaGFzIG5vIGVmZmVjdCBmb3IgbWUgaGVyZSwgc28gc29tZW9uZSB3aXRoCgkgIGEgbmV3ZXIgZy1pIG5lZWRzIHRvIHRlc3QgdGhpcy4KCSAgU29tZSBvdGhlciBkZWZpbmVzIGFyZSBhbHNvIG1pc3NpbmcsIGUuZy4gR1NUX0NMT0NLX1RJTUVfTk9ORS4KCjIwMTEtMTEtMDQgMDA6MDM6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IHN1cHByZXNzIHVudXNlZCB2YXJpYWJsZSB3YXJuaW5ncyBpZiBnc3QgZGVidWdnaW5nIGlzIGRpc2FibGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjI5NTIKCjIwMTEtMTEtMDQgMDA6MDI6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGZpeCB0eXBvIGFyb3VuZCBHTElCX0VYVFJBX0NGTEFHUyBpbiBHU1RfQUxMX0NYWEZMQUdTCgoyMDExLTExLTAzIDIzOjA4OjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBxdWV1ZTogdXNlIHN0YXRpY2FsbHkgYWxsb2NhdGVkIEdRdWV1ZQoKMjAxMS0xMS0wMyAyMjo1ODo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogdXNlIHN0YXRpY2FsbHkgYWxsb2NhdGVkIEdRdWV1ZQoJICBCZWNhdXNlIHdlIGNhbi4KCjIwMTEtMTEtMDMgMjI6NTE6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSAgY29sbGVjdHBhZHMyOiB1c2UgZmxhZ3MgZW51bSBpbnN0ZWFkIG9mIGd1aW50IGluIHN0cnVjdHVyZQoKMjAxMS0xMS0wMyAwODo0NzoyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IHVzZSBzdGF0aWNhbGx5IGFsbG9jYXRlZCBHUXVldWUKCjIwMTEtMTEtMDMgMTc6NDk6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIGZpeCByZXF1ZXN0IHBhZAoJICBNYWtlIGFsbCByZXF1ZXN0IHBhZHMgdGFrZSBfJXUgaW4gdGhlIHRlbXBsYXRlLgoJICBGaXggdXAgdW5pdCB0ZXN0cy4KCjIwMTEtMTEtMDMgMTY6NDk6NDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRlZjoKCSAgZGVmOiB1cGRhdGUgZGVmcwoKMjAxMS0xMS0wMyAxNjo0NjozNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmg6CgkgIG5ldDogYWRkIG5ldCBhZGRyZXNzIG1ldGFkYXRhCgoyMDExLTExLTAzIDE0OjI2OjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkgIG5ldHRpbWU6IGNsZWFuIHVwIGhlYWRlcgoKMjAxMS0xMS0wMyAxNDoxNDo1NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IGRvbid0IHVzZSBsb2NrL3VubG9ja19mdWxsCgoyMDExLTExLTAzIDExOjMwOjUyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RnaG9zdHBhZC5jCgoyMDExLTExLTAyIDEyOjM3OjE1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHNtYWxsIGNsZWFudXAKCjIwMTEtMTAtMjUgMTc6MjY6NTAgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IERvbid0IGNhY2hlIGludGVybmFsIHByb3h5IHBhZCB0YXJnZXQKCSAgVGhlIGludGVybmFsIHByb3h5IHBhZCB0YXJnZXQgaXMgc2ltcGx5IGEgY2FjaGUgb2YgdGhlIGludGVybmFsIHByb3h5IHBhZAoJICBwZWVyLiBUaGlzIHBhdGNoIHVzZXMgdGhlIHdlbGwgaW1wbGVtZW50IEdzdFBhZCBwZWVyIGhhbmRsaW5nIHRvIG9idGFpbiB0aGUKCSAgdGFyZ2V0LiBUaGlzIGZpeGVzIGlzc3VlcyB3aXRoIHRhcmdldCBub3QgYmVpbmcgc2V0IGluIGJvdGggZGlyZWN0aW9uIHdoZW4KCSAgdHdvIGdob3N0cGFkcyBhcmUgbGlua2VkIHRvZ2V0aGVyIChlbXB0eSBiaW4pLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU4NTE3CgoyMDExLTExLTAyIDEyOjA2OjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHV0aWxzOiByZW1vdmUgX2ZvdW5kX3RhZ3NfIEFQSQoJICByZW1vdmUgZ3N0X2VsZW1lbnRfZm91bmRfdGFncygpIGFuZCBnc3RfZWxlbWVudF9mb3VuZF90YWdzX2Zvcl9wYWQoKSwgdGhleSBhcmUKCSAgbm90aGluZyBtb3JlIHRoYW4gYSB3cmFwcGVyIGFyb3VuZCBnc3RfcGFkX3B1c2hfZXZlbnQoKQoKMjAxMS0xMS0wMiAxMDoyOTowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBjb21tb24KCSAgY29uZmlndXJlLmFjCgoyMDExLTEwLTMwIDIxOjMzOjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGltcHJvdmUgZG9jcwoKMjAxMS0xMC0yOSAwOTo0MzowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IG1ha2UgR3N0U2VnbWVudCBhcmd1bWVudCBjb25zdAoKMjAxMS0xMC0yOSAwOTo0MTowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IHJlbW92ZSBtZXRhdGltaW5nIGZyb20gZG9jcwoKMjAxMS0xMC0yOSAwOToyNjo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhc2suYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRhc2s6IGFwaSBjbGVhbnVwCgkgIGdzdF90YXNrX2NyZWF0ZSgpIC0+IGdzdF90YXNrX25ldygpCgoyMDExLTEwLTI5IDA5OjAyOjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzdHJ1Y3R1cmU6IGNsZWFudXAgQVBJCgkgIGdzdF9zdHJ1Y3R1cmVfZW1wdHlfbmV3KCkgLT4gZ3N0X3N0cnVjdHVyZV9uZXdfZW1wdHkoKQoJICBnc3Rfc3RydWN0dXJlX2lkX2VtcHR5X25ldygpIC0+IGdzdF9zdHJ1Y3R1cmVfbmV3X2lkX2VtcHR5KCkKCSAgZ3N0X3N0cnVjdHVyZV9pZF9uZXcoKSAtPiBnc3Rfc3RydWN0dXJlX25ld19pZCgpCgoyMDExLTEwLTI5IDA4OjM4OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSAgbWV0YTogcmVtb3ZlIHRpbWluZyBtZXRhZGF0YQoJICBUaGlzIGlzIG5vdyBvbiBidWZmZXJzIGJ5IGRlZmF1bHQKCjIwMTEtMTAtMjkgMDg6MjQ6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJsaXN0OiBjbGVhbiB1cCBBUEkKCSAgZ3N0X2J1ZmZlcl9saXN0X2xlbigpIC0+IGdzdF9idWZmZXJfbGlzdF9sZW5ndGgoKQoJICBnc3RfYnVmZmVyX2xpc3Rfc2l6ZWRfbmV3KCkgLT4gZ3N0X2J1ZmZlcl9saXN0X25ld19zaXplZCgpCgoyMDExLTExLTAxIDE0OjE3OjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBzaW1wbGlmeSBnc3RfYWRhcHRlcl90YWtlX2xpc3QoKQoJICBVc2UgYSBzdGFjay1hbGxvY2F0ZWQgR1F1ZXVlIHRvIGFzc2VtYmxlIG91ciBHTGlzdC4KCjIwMTEtMTEtMDEgMTA6NTY6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogbWVudGlvbiBHc3RBY3RpdmF0ZU1vZGUgcmVuYW1lIGluIHBvcnRpbmcgZG9jCgoyMDExLTExLTAxIDAwOjI1OjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogcmVuYW1lIEdzdEFjdGl2YXRlTW9kZSB0byBHc3RQYWRBY3RpdmF0ZU1vZGUKCSAgVGhlc2UgbWlnaHQgYmUgdXNlZnVsOgoJICBzZWQgLWkgLWUgJ3MvR3N0QWN0aXZhdGVNb2RlL0dzdFBhZEFjdGl2YXRlTW9kZS9nJyBgZ2l0IGdyZXAgR3N0QWN0aXZhdGVNb2RlIHwgc2VkIC1lICdzLzouKi8vJyB8IHNvcnQgLXVgCgkgIHNlZCAtaSAtZSAncy9HU1RfQUNUSVZBVEVfL0dTVF9QQURfQUNUSVZBVEVfL2cnICAgIGBnaXQgZ3JlcCBHU1RfQUNUSVZBVEVfICAgfCBzZWQgLWUgJ3MvOi4qLy8nIHwgc29ydCAtdWAKCjIwMTEtMTEtMDEgMDA6MTM6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1wcm9iZXMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3F1ZXVlLWVycm9yLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogcmVuYW1lIEdzdFByb2JlVHlwZSBhbmQgR3N0UHJvYmVSZXR1cm4gdG8gR3N0UGFkUHJvYmV7VHlwZSxSZXR1cm59CgkgIEJldHRlciBub3cgdGhhbiBsYXRlciBpbiB0aGUgY3ljbGUuIFRoZXNlIG1pZ2h0IGNvbWUgaW4gaGFuZHk6CgkgIHNlZCAtaSAtZSAncy9Hc3RQcm9iZVJldHVybi9Hc3RQYWRQcm9iZVJldHVybi9nJyAgIGBnaXQgZ3JlcCBHc3RQcm9iZVJldHVybiAgfCBzZWQgLWUgJ3MvOi4qLy8nIHwgc29ydCAtdWAKCSAgc2VkIC1pIC1lICdzL0dTVF9QUk9CRV8vR1NUX1BBRF9QUk9CRV8vZycgICAgICAgICAgYGdpdCBncmVwIEdTVF9QUk9CRV8gICAgICB8IHNlZCAtZSAncy86LiovLycgfCBzb3J0IC11YAoJICBzZWQgLWkgLWUgJ3MvR3N0UHJvYmVUeXBlL0dzdFBhZFByb2JlVHlwZS9nJyAgICAgICBgZ2l0IGdyZXAgR3N0UHJvYmVUeXBlICAgIHwgc2VkIC1lICdzLzouKi8vJyB8IHNvcnQgLXVgCgoyMDExLTEwLTMxIDIzOjMyOjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0YWdsaXN0OiByZW1vdmUgZ3N0X3RhZ19saXN0X2dldF8qbG9uZyooKQoJICBObyBvbmUgdXNlcyB0aGlzIG9yIHNob3VsZCBldmVyIG5lZWQgdG8gdXNlIGl0LCBzaW5jZQoJICB0aGUgc2l6ZSBpcyBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgYW55d2F5LiBJZiBub3JtYWwKCSAgaW50ZWdlcnMgZG9uJ3QgZG8sIG9uZSBzaG91bGQgdXNlIDY0LWJpdCBpbnRlZ2Vycy4KCjIwMTEtMTAtMzEgMTk6MDQ6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIFVwZGF0ZSAuZGVmIGZpbGUgZm9yIHJlbW92ZWQvY2hhbmdlZCBBUEkKCjIwMTEtMTAtMzEgMTk6MjM6NDEgKzAxMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZml4IGNyYXNoL3dhcm5pbmcgaW4gZmluZF90cmFuc2Zvcm0gd2hlbiBwYWQgaXMgdW5saW5rZWQKCSAgTG9va3MgbGlrZSB0aGUgcmV2ZXJ0IGNvbmZsaWN0IGluIGNvbW1pdCBhNDQyNzEgd2FzIHJlc29sdmVkIGluY29ycmVjdGx5LgoKMjAxMS0xMC0zMSAxNzo0NTo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBtYWtlIEdMSUJfRVhUUkFfQ0ZMQUdTIG92ZXJ3cml0YWJsZQoJICBNYWtlICdtYWtlIEdMSUJfRVhUUkFfQ0ZMQUdTPS4uLicgd29yay4KCjIwMTEtMTAtMzEgMTQ6MTY6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0ZmlsdGVyLmM6CgkqIGdzdC9nc3RmaWx0ZXIuaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIGZpbHRlcjogcmVtb3ZlIGdzdF9maWx0ZXJfcnVuKCkgYW5kIGRlcHJlY2F0ZWQgZmlsdGVyIGZ1bmMKCSAgSWYgc29tZW9uZSB3YW50cyB0byByZXN1cnJlY3QgdGhpcywgcGxlYXNlIHVzZSBhIGxlc3MKCSAgZ2VuZXJpYyBuYW1lIHNwYWNlIGZvciBpdC4KCjIwMTEtMTAtMzEgMTQ6MDM6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYwoKMjAxMS0xMC0zMCAxMDoyNjoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWdzZXR0ZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHRhZ2xpc3Q6IHJlbmFtZSBfbmV3KCkgdG8gX25ld19lbXB0eSgpIGFuZCBuZXdfZnVsbCooKSB0byBuZXcqKCkKCjIwMTEtMTAtMzAgMjE6NTQ6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGZpbHRlci5jOgoJKiBnc3QvZ3N0ZmlsdGVyLmg6CgkgIGZpbHRlcjogZGVwcmVjYXRlIGdzdF9maWx0ZXJfcnVuKCkKCSAgSXQncyBub3QgcmVhbGx5IHVzZWQgb3V0c2lkZSBvZiBjb3JlIGF0IGFsbCwgYW5kIGhhcwoJICBzZXJpb3VzIG5hbWVzcGFjZSBpc3N1ZXMuIElmIGFueW9uZSBmZWVscyB0aGUgbmVlZCB0bwoJICByZXZpdmUgdGhpcyBvbmUsIHBsZWFzZSB1c2UgYSBsZXNzIGdlbmVyaWMgbmFtZSBzcGFjZS4KCSAgQVBJOiBkZXByZWNhdGUgZ3N0X2ZpbHRlcl9ydW4oKQoJICBBUEk6IGRlcHJlY2F0ZSBHc3RGaWx0ZXJGdW5jCgoyMDExLTEwLTMwIDIxOjM5OjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogZG9uJ3QgdXNlIHNvb24tdG8tYmUtZGVwcmVjYXRlZCBnc3RfZmlsdGVyX3J1bigpCgkgIExpbmVzLW9mLWNvZGUgc2F2aW5ncyBhcmUgbmVnbGlnaWJsZSBhbnl3YXkuCgoyMDExLTEwLTMwIDIxOjIxOjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJICBwbHVnaW5mZWF0dXJlOiBkZXByZWNhdGUgZ3N0X3BsdWdpbl9mZWF0dXJlX3R5cGVfbmFtZV9maWx0ZXIoKQoJICBJdCdzIG9ubHkgdXNlZCBpbnRlcm5hbGx5IGFueXdheSBhbmQgdGhlIGhlbHBlciBzdHJ1Y3QKCSAgaGFzIG5hbWVzcGFjZSBpc3N1ZXMuCgkgIEFQSTogZGVwcmVjYXRlZCBnc3RfcGx1Z2luX2ZlYXR1cmVfdHlwZV9uYW1lX2ZpbHRlcigpCgkgIEFQSTogZGVwcmVjYXRlZCBHc3RUeXBlTmFtZURhdGEKCjIwMTEtMTAtMzAgMTA6MDU6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogbWFrZSBvcGFxdWUKCSAgSGlkZSB0aGUgZmFjdCB0aGF0IGl0J3MganVzdCBhIEdzdFN0cnVjdHVyZSBmcm9tIHRoZSBBUEkuIFdlCgkgIG1heSB3YW50IHRvIGNoYW5nZSB0aGlzIGluIGZ1dHVyZSAoZS5nLiB0byBhZGQgcmVmY291bnRpbmcpLgoJICBBbHNvLCBpdCBjYXVzZWQgcHJvYmxlbXMgZm9yIGJpbmRpbmdzICh0aG91Z2ggdGhhdCdzIG1vc3RseQoJICB0aGUgd2F5IHdlIHR5cGVkZWZlZCBpdCB0byBHc3RTdHJ1Y3R1cmUpLgoKMjAxMS0xMC0zMCAxMDowMDoyOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTAtMzAgMDk6NTg6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdGFnbGlzdDogYWRkIHRvX3N0cmluZyBhbmQgbmV3X2Zyb21fc3RyaW5nIGZ1bmN0aW9ucwoJICBXZSB3YW50IHRvIG1ha2UgR3N0VGFnTGlzdCBvcGFxdWUgYW5kIG5vdCBoYXZlIHBlb3BsZSB1c2UKCSAgR3N0U3RydWN0dXJlIEFQSSBvbiBpdC4KCSAgQVBJOiBnc3RfdGFnX2xpc3RfdG9fc3RyaW5nKCkKCSAgQVBJOiBnc3RfdGFnX2xpc3RfbmV3X2Zyb21fc3RyaW5nKCkKCjIwMTEtMTAtMzAgMDk6MzE6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgoyMDExLTEwLTMwIDAxOjQ2OjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IGF2b2lkIHBvaW50bGVzcyB0YWcgbmFtZSAtPiBxdWFyayBsb29rdXBzCgkgIFdlIG5ldmVyIGdldCBhIHRhZyBuYW1lIHF1YXJrIGZyb20gYSBjYWxsZXIsIGl0J3MgYWx3YXlzIGEKCSAgc3RyaW5nLCBmcm9tIHdoaWNoIHdlJ2xsIHRyeSB0byBsb29rIHVwIG91ciB0YWcgaW5mbyBpbiB0aGUKCSAgaGFzaCB0YWJsZSwgc28gY2hhbmdlIHRoZSBoYXNoIHRhYmxlIGtleSBmcm9tIHF1YXJrIHRvIHN0cmluZy4KCSAgQXZvaWRzIGEgYnVuY2ggb2YgcG9pbnRsZXNzIHN0cmluZyA9PiBxdWFyayBsb29rdXAgaW4gdGhlCgkgIGdsb2JhbCBxdWFyayB0YWJsZS4gV2UgbmVlZCB0byBkbyBhbiBleHRyYSBzdHJpbmcgPT4gcXVhcmsKCSAgY29udmVyc2lvbiBub3cgd2hlbiB3ZSBjb3B5IGEgdGFnbGlzdCwgYnV0IGluIHRoYXQgY2FzZSB3ZSdyZQoJICBpbiBhIHNsb3cgcGF0aCBhbnl3YXkuCgoyMDExLTEwLTMwIDAwOjQ0OjQ0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRhZ2xpc3Q6IGFkZCBnc3RfdGFnX2xpc3RfaXNfZXF1YWwoKQoJICBBUEk6IGdzdF90YWdfbGlzdF9pc19lcXVhbCgpCgoyMDExLTEwLTI5IDIzOjUyOjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBpZGVudGljYWwgc3RydWN0dXJlcyBhcmUgZGVmaW5pdGVseSBlcXVhbAoKMjAxMS0xMC0yOSAyMDowNjo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBmaXggc3RyaW5nIGZvciBHU1RfVEFHX0FSVElTVF9TT1JUTkFNRQoJICBGb3IgaGlzdG9yaWNhbCByZWFzb25zIGl0IHdhcyBtYXBwZWQgdG8gYSBtdXNpY2JyYWlueiBwcmVmaXgsCgkgIGJ1dCBpdCdzIG5vdCByZWFsbHkgbXVzaWNicmFpbnotc3BlY2lmaWMgYXQgYWxsLgoKMjAxMS0xMC0yOSAxOTo1OTowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIGVsZW1lbnRmYWN0b3J5OiBtb3ZlIHByaXZhdGUgZnVuY3Rpb25zIGZvciByZWdpc3RyeSB0byBwcml2YXRlIGhlYWRlcgoKMjAxMS0xMC0yOCAyMTo0MDo0NyArMDIwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBmaXggaW52YWxpZCBhY2Nlc3MgdG8gdW5yZWZmZWQgYWxsb2NhdGlvbiBxdWVyeQoKMjAxMS0xMC0yOCAxNjo0NToyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBmaXggZG9jcyBzb21lIG1vcmUKCjIwMTEtMTAtMjggMTY6Mjc6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCjIwMTEtMTAtMjggMTY6MDg6MzcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICB0ZXN0czogZml4IHNlZ21lbnQgY2hlY2sKCjIwMTEtMTAtMjggMTU6NTI6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBzZWdtZW50OiByZW1vdmUgR1NUX1NFRUtfVFlQRV9DVVIKCjIwMTEtMTAtMjggMTU6NTI6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogaW1wcm92ZSBkb2NzCgoyMDExLTEwLTI4IDE1OjE2OjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmM6CgkgIG1ha2UgZWxlbWVudHMgY29tcGlsZSBhZ2FpbgoKMjAxMS0xMC0yOCAxMzowMjoyNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSAgYnl0ZXdyaXRlcjogQWRkIHBhZGRpbmcKCjIwMTEtMTAtMjggMTM6MDI6MTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuaDoKCSAgYml0cmVhZGVyOiBBZGQgcGFkZGluZwoKMjAxMS0xMC0yOCAxMzowMjoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSAgYnl0ZXJlYWRlcjogQWRkIHBhZGRpbmcKCjIwMTEtMTAtMjggMTI6MzE6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUKCjIwMTEtMTAtMjggMTI6Mjg6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiB1cGRhdGUKCjIwMTEtMTAtMjggMTI6Mjc6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGRlZnM6IHVwZGF0ZSBmb3IgbmV3IGFwaQoKMjAxMS0xMC0yOCAxMjoxNzo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJICBjaGVjazogYWxzbyBkZWJ1ZyB0aGUgRFRTCgoyMDExLTEwLTI4IDEyOjE2OjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBhZGFwdGVyOiB1c2UgcHRzL2R0cyBvbiBidWZmZXJzCgoyMDExLTEwLTI4IDEyOjI0OjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJICBjb21wYXQ6IGFkZCB0aW1lc3RhbXAgY29tcGF0IGRlZmluZXMKCjIwMTEtMTAtMjggMTI6MTU6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSAgYnVmZmVyOiBhZGQgcHRzL2R0cyB0byBidWZmZXJzCgoyMDExLTEwLTI4IDExOjUzOjMyICswMjAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBBbHNvIGZ1c2ggdGhlIGNhY2hlIHdoZW4gY2hhbmdpbmcgdGhlIHVwc3RyZWFtIGNhcHMgc3VnZ2VzdGlvbgoKMjAxMS0xMC0yOCAxMTo1MDoyMyArMDIwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogQWRkIGRlYnVnIG91dHB1dCB3aGVuIHJldHVybmluZyBhIGNhY2hlZCB0cmFuc2Zvcm0KCjIwMTEtMTAtMjggMTE6MzM6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTEwLTI4IDExOjMwOjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSAgY29vbGVjdHBhZHMyOiBwb3J0IHRvIDAuMTEKCjIwMTEtMTAtMjggMTE6MTM6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTEwLTI4IDEwOjU0OjE5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkgIGNvbGxlY3RwYWRzMjogRml4IHJlZmNvdW50IGhhbmRsaW5nIGlmIGEgYnVmZmVyIHdhcyBkcm9wcGVkIGR1ZSB0byBjbGlwcGluZwoKMjAxMS0xMC0yOCAxMDozNzoyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGNvbGxlY3RwYWRzMjogTWVyZ2UgdGhlIGNsaXAgYW5kIHByZXBhcmVfYnVmZmVyIGZ1bmN0aW9uIGludG8gb25lCgoyMDExLTEwLTI4IDEwOjE3OjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkgIGNvbGxlY3RwYWRzMjogTWVyZ2UgY2xpcHBpbmcgQVBJIGZyb20gb2xkIGNvbGxlY3RwYWRzCgoyMDExLTEwLTI4IDA5OjE5OjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IG1ha2UgZGVmYXVsdCBxdWVyeSBmdW5jdGlvbiBuYW1lIHNob3cgdXAgaW4gZ3N0LWluc3BlY3QKCjIwMTEtMDktMjcgMTU6NDg6NTIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSAgY29sbGVjdHBhZHMyOiBhdm9pZCBoYW5naW5nIGluIGNhc2Ugb2Ygc3BhcnNlIG5ld3NlZ21lbnQgZXZlbnRzCgkgIC4uLiBpbiB0aGUgZXh0ZW50IHRoYXQgYSBub24td2FpdGluZyBwYWQgKHNvIGluZGljYXRlZCBieSBuZXdzZWdtZW50KQoJICB0dXJucyBvdXQgdG8gcHJvdmlkZSB0aGUgYmVzdCBidWZmZXIsIHdoaWNoIGlzIHRoZW4gZm9yY2VkIHRvIHdhaXRpbmcKCSAgZm9yIGJvb2sta2VlcGluZyBwdXJwb3NlcywgYnV0IHRoYXQgc2hvdWxkIG9ubHkgYmUgdGVtcG9yYXJ5LgoJICBTZWUgYnVnICM0MTU3NTQuCgoyMDExLTEwLTI4IDA5OjM4OjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkgIGNvbGxlY3RwYWRzMjogVXNlIEdfREVGSU5FX1RZUEUgaW5zdGVhZCBvZiBHU1RfQk9JTEVSUExBVEUKCjIwMTEtMTAtMjggMDk6MzU6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgY29sbGVjdHBhZHMyOiBBZGQgdG8gdGhlIGRvY3VtZW50YXRpb24KCjIwMTEtMTAtMjggMDk6MjY6MTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICB3aW4zMjogQWRkIG5ldyBjb2xsZWN0cGFkczIgQVBJCgoyMDExLTEwLTI4IDA5OjE4OjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkgIGJhc2U6IEFkZCBjb2xsZWN0cGFkczIKCSAgVGhpcyBoYW5kbGVzIG11eGluZyBvZiBzcGFyc2Uvc3VidGl0bGUgc3RyZWFtcyBhbmQgaGFzCgkgIGxvdHMgb2YgY2xlYW51cC4gU3RpbGwgbWlzc2luZyBpcyBzcGVjaWFsIHN1cHBvcnQgZm9yCgkgIGxpdmUgc3RyZWFtcyBidXQgdGhpcyBjYW4gYmUgYWRkZWQgbGF0ZXIgd2l0aG91dCBicmVha2luZwoJICBBUEkvQUJJLgoJICBCYXNlZCBvbiB0aGUgdmVyc2lvbiBmcm9tIHRoZSB2aWRlb21peGVyIHBsdWdpbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTQxNTc1NAoKMjAxMS0xMC0yNyAxNzowOTo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcXVldWUtZXJyb3IuYzoKCSAgdGVzdHM6IGZpeCBjb21waWxhdGlvbgoKMjAxMS0xMC0yNyAxNzowOTozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUKCjIwMTEtMTAtMjcgMTc6MDk6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiBhZGQgZW1wdHlfc2ltcGxlIHZhcmlhbnRzCgoyMDExLTEwLTI3IDE2OjUxOjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSAgdGVzdHM6IGZpeCBjb21waWxhdGlvbgoKMjAxMS0xMC0yNyAxNDo1NjoyNCArMDEwMCAgSm9oYW4gQm91bMOpIDxib2hhbi5nbm9tZUByZXRyb3BhZ2FuZGEuaW5mbz4KCgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IHVzZSBHX0dOVUNfTlVMTF9URVJNSU5BVEVEIGZvciBnc3RfY2Fwc19uZXdfc2ltcGxlKCkgYW5kIGdzdF9jYXBzX25ld19mdWxsKCkKCSAgSWYgeW91IGdldCB3YXJuaW5ncywgdXNlIGdzdF9jYXBzX25ld19lbXB0eSgpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQzMzQ2CgoyMDExLTEwLTI3IDE1OjI3OjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgoyMDExLTEwLTI3IDEzOjI1OjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgc3RydWN0dXJlOiB1c2UgR19HTlVDX05VTExfVEVSTUlOQVRFRCBmb3IgZ3N0X3N0cnVjdHVyZV9uZXcoKQoJICBJZiB5b3UgZ2V0IGEgd2FybmluZywgdXNlIGdzdF9zdHJ1Y3R1cmVfZW1wdHlfbmV3KCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDMzNDYKCjIwMTEtMTAtMjcgMjM6MDg6MTQgKzExMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBGaXggcmVmY291bnQgbGVhawoJICBEb24ndCBsZWFrIHBlZXJjYXBzIGFuZCBhIHJlZiB0byB0aGUgYmFzZXRyYW5zZm9ybSB3aGVuIHJldHVybmluZwoJICB0aGUgY2FjaGVkIGNhcHMuCgoyMDExLTEwLTI3IDEwOjM4OjEwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IGZpeCB3cm9uZyBvcmRlciBvZiBjYWxscyBpbiB0aGUgZG9jcy4KCjIwMTEtMTAtMjYgMTI6MjM6MDcgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGNsYXJpZnkgZG9jcyBmb3Igc3RlcCBldmVudAoKMjAxMS0xMC0xOCAyMzoxOTo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IGFkZCBzdXBwb3J0IGZvciBHU1RfUkVHSVNUUllfUkVVU0VfUExVR0lOX1NDQU5ORVI9bm8KCSAgVGhpcyB3aWxsIG1ha2Ugc3VyZSB3ZSBzcGF3biBhIG5ldyBwbHVnaW4gc2Nhbm5lciBoZWxwZXIgZm9yIGVhY2ggcGx1Z2luCgkgIHRvIGJlIGludHJvc3BlY3RlZCwgd2hpY2ggaGVscHMgd2l0aCBtYWtpbmcgc3VyZSB3ZSBkb24ndCBsb2FkIHRvbyBtYW55CgkgIHNoYXJlZCBvYmplY3RzIChsaWJzLCBwbHVnaW5zKSBhdCB0aGUgc2FtZSB0aW1lIG9uIHN5c3RlbXMgd2hlcmUgdGhlcmUKCSAgaXMgYSBoYXJkIGxpbWl0IGxpa2Ugb24gQW5kcm9pZC4KCSAgQSBiZXR0ZXIgdmVyc2lvbiBtaWdodCByZS11c2UgdGhlIHNjYW5uZXIgZm9yIHVwIHRvIE4gdGltZXMsIHRob3VnaAoJICBpdCdzIG5vdCBjbGVhciB3aGV0aGVyIHRoYXQgd291bGQgYWN0dWFsbHkgaW1wcm92ZSB0aGluZ3MgZHJhbWF0aWNhbGx5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyMDkxCgoyMDExLTEwLTIxIDEwOjIzOjA0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBObyBuZWVkIHRvIHJlcXVpcmUgd3JpdGFibGUgY2FwcyBmb3IgX2FwcGVuZC9fbWVyZ2Ugc2Vjb25kIGNhcHMKCSAgVGhlIHNlY29uZCBjYXBzIG93bmVyc2hpcCBpcyB0cmFuc2ZlcmVkLCBubyBuZWVkIHRvIHJlcXVpcmUgaXQgdG8KCSAgYmUgd3JpdGFibGUgZnJvbSB0aGUgY2FsbGVyIGZ1bmN0aW9uLiBJbnN0ZWFkLCBfYXBwZW5kIGFuZCBfbWVyZ2UKCSAgbWFrZSBpdCB3cml0YWJsZSBvbiB0aGVpciBvd24uCgkgIERpc2NvdmVyZWQgYmVjYXVzZSBvZiBhbiBhc3NlcnRpb24gb24gZW5jb2RpbmctcHJvZmlsZS5jIGluCgkgIF9nZXRfaW5wdXRfY2FwcyB1c2luZyBfbWVyZ2UgYnV0IG5vdCBwYXNzaW5nIHdyaXRhYmxlIGNhcHMuCgoyMDExLTEwLTIxIDE0OjIwOjQwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfYXJtLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaHBwYS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGMzMi5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzY0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3Rfc3BhcmMuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSAgaW50ZXJmYWNlczogY2xlYW4gdXAgdGhlIHVzZSBvZiBpZmFjZSBhbmQgY2xhc3Mva2xhc3MKCjIwMTEtMTAtMjEgMTE6MTU6MTEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBkb2NzL3JhbmRvbS9zdGF0dXMtMC4xMS0xNC1qdW4tMjAxMS50eHQ6CgkqIGdzdC9nc3RxdWVyeS5jOgoJICBkb2NzOiBzcGVsbGluZyBhbmQgZm9ybWF0dGluZyBmaXhlcwoKMjAxMS0xMC0yMSAxMDo1Mjo0NiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnaW5nIG9yaWdpbi9tYXN0ZXIKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0YmluLmMKCSAgZ3N0L2dzdGJ1cy5jCgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmMKCSAgZ3N0L2dzdHBhZC5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmMKCjIwMTEtMTAtMjAgMTY6NTk6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBGaXggZG9jdW1lbnRhdGlvbiwgaXQncyBwcmVfcHVzaF9mcmFtZSBhbmQgbm90IHByZV9wdXNoX2J1ZmZlcgoKMjAxMS0xMC0yMCAxNDowMjo0NCArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogY2FjaGUgdHJhbnNmb3JtZWQgY2FwcyB3aGVyZSBhcHByb3ByaWF0ZQoJICBTcGVlZHMgdXAgbmVnb3RpYXRpb24gYSBmYWlyIGJpdCBvbiBhIGNvbnRyaXZlZCBwaXBlbGluZQoJICB3aXRoIGEgZG96ZW4gY29sb3JzcGFjZSBjb252ZXJzaW9ucy4KCSAgSG9wZWZ1bGx5IGNsZWFycyBvdXQgdGhlIGNhY2hlIGV2ZXJ5IHRpbWUgaXQgb3VnaHQgdG8uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjIyOTEKCjIwMTEtMTAtMjAgMTA6NDU6MzAgLTAzMDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQGNvbGxhYm9yYS5jb20+CgoJKiBBbmRyb2lkLm1rOgoJICBGaXggYnJva2VuIGFuZHJvaWQgYnVpbGRpbmcgZHVlIHRvIG5hbWUgY2hhbmdlIGluIDAxZDg3MjUwYTg0NWU1NWQ2CgoyMDExLTEwLTIwIDA4OjMxOjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2ViYXJzZTogQWRkIGRldGVjdCB2ZnVuYyB0byBhbGxvdyBzdWJjbGFzc2VzIHRvIGRvIGZvcm1hdCBkZXRlY3Rpb24gYmVmb3JlIGFueXRoaW5nIGVsc2UKCSAgQVBJOiBHc3RCYXNlUGFyc2VDbGFzczo6ZGV0ZWN0KCkKCSAgVGhpcyBpcyBjYWxsZWQgd2l0aCB0aGUgZmlyc3QgYnVmZmVycyB1bnRpbCB0aGUgc3ViY2xhc3MgaGFzIGZpbmlzaGVkIGRldGVjdGlvbgoJICBhbmQgb25seSBhZnRlcndhcmRzIHRoZSBvcmlnaW5hbCBidWZmZXJzIGFyZSBoYW5kbGVkIGFzIGJlZm9yZS4gVGhlIHZmdW5jIGFsbG93cwoJICBkZXRlY3Rpb24gb2YgdGhlIHN0cmVhbSBmb3JtYXQgd2l0aG91dCBicmVha2luZyB0aGUgdXBzdHJlYW0gZnJhbWluZy4KCjIwMTEtMTAtMjAgMDg6NTc6NTcgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbm90IG9ubHkgZGVzY3JpYmUgY29uZGl0aW9ucyBpbiB0aGUgZG9jcywgYWxzbyBjaGVjayB0aGVtIGluIHRoZSBjb2RlCgkgIFdoZW4gYmxvY2tpbmcgcGFkcywgY2hlY2sgaWYgdGhlIHBhZCBpcyBpbiB0aGUgcmlndCBkaXJlY3Rpb24uIExvZyBzb21lIGluZm8KCSAgZm9yIHRoZSBkZXZlbG9wZXIgYW5kIHJldHVybiBGQUxTRSwgaW5zdGVhZCBvZiBqdXN0IGxvY2tpbmcgdXAuCgoyMDExLTEwLTE5IDIzOjA3OjQ2ICswMjAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RyZWdpc3RyeS5jOgoJICBSZXZlcnQgZ3N0X3BsdWdpbl9mZWF0dXJlX2dldF9uYW1lIHRvIGNvbnN0IHN0cmluZyByZXR1cm4KCSAgUmV0dXJuaW5nIGEgbmV3bHkgYWxsb2NhdGVkIHN0cmluZyBtYWtlcyBubyBzZW5zZS4gSXQncyB1bmV4cGVjdGVkIGZvciBhCgkgIGdldHRlciwgYW5kIGFsc28gdGhpcyBiZWhhdmVzIGRpZmZlcmVudGx5IGluIDAuMTAsIHNvIGl0IHdvdWxkIG1ha2UgZnV0dXJlCgkgIG1lcmdlcyBoYXJkZXIuCgkgIEV4Y2VwdCBmb3IgdGhlc2UgdHdvIHBsYWNlcyBoZXJlIGluIGNvcmUgd2hpY2ggd2VyZSB1cGRhdGVkIGZvciB0aGUgbmV3CgkgIHNlbWFudGljLCB0aGUgcmV0dXJuIHZhbHVlIGlzIGdldHRpbmcgbGVha2VkIGFsbCBvdmVyIHRoZSBwbGFjZS4KCjIwMTEtMTAtMTkgMTI6MTI6MzYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IEFkZCAoc2tpcCkgYW5ub3RhdGlvbiB0byBnc3Rfb2JqZWN0X3JlZl9zaW5rCgoyMDExLTEwLTE5IDExOjU5OjI5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBnc3RpdGVyYXRvcjogQWRkIHNraXAgYW5ub3RhdGlvbiBmb3IgY3JlYXRpbmcgR3N0SXRlcmF0b3IKCSAgTm90IHJlYWxseSB1c2VmdWwgZm9yIGJpbmRpbmdzCgoyMDExLTA4LTI5IDEzOjU2OjE5IC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGludHJvc3BlY3Rpb246IFNraXAgZ3N0X3BvbGwgYXBpcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NjQwCgoyMDExLTA4LTI5IDEzOjU1OjEzIC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBpbnRyb3NwZWN0aW9uOiBTa2lwIEdUeXBlIGFuZCBHVmFsdWUgdHJhbnNmb3JtIGFwaXMKCSAgVGhlc2UgZG8gbm90IG1ha2Ugc2Vuc2UgdG8gZXhwb3NlIHRvIGxhbmd1YWdlIGJpbmRpbmdzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTc2NDAKCjIwMTEtMDgtMjkgMTM6NTQ6MjEgLTAzMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdC5jOgoJICBpbnRyb3NwZWN0aW9uOiBTa2lwIGdzdF9pbml0X2dldF9vcHRpb25fZ3JvdXAKCSAgSXQgdXNlcyBHT3B0aW9uR3JvdXAgd2hpY2ggaXMgbm90IHdyYXBwYWJsZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NjQwCgoyMDExLTA4LTI5IDEzOjUzOjM5IC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkgIGludHJvc3BlY3Rpb246IEFkZCBtaXNzaW5nIGFubm90YXRpb25zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTc2NDAKCjIwMTEtMDgtMjkgMTM6NTI6MjYgLTAzMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBpbnRyb3NwZWN0aW9uOiBSZW5hbWUgZ3N0X2J1c19hZGRfd2F0Y2hfZnVsbCB0byBnc3RfYnVzX2FkZF93YXRjaAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NjQwCgoyMDExLTA4LTI5IDEzOjUwOjQwIC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RpbmRleC5oOgoJICBTeW5jIGRvY3VtZW50YXRpb24gYXJndW1lbnRzCgkgIFRoZSBpbnRyb3NwZWN0aW9uIHNjYW5uZXIgd2FybnMgaWYgdGhlIGhlYWRlciBhbmQgdGhlIHNvdXJjZQoJICB1c2VzIG1pc21hdGNoaW5nIHBhcmFtZXRlciBuYW1lcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NzY0MAoKMjAxMS0wOC0yOSAxMzo1MDowMiAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBnc3Rfc3RydWN0dXJlX2dldF90eXBlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTc2NDAKCjIwMTEtMTAtMTggMTk6MjE6NTggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IHByb3RlY3QgYWdhaW5zdCBudWxsIG1lc3NhZ2Ugc291cmNlcwoJICBNZXNzYWdlIHNvdXJjZXMgY2FuIGJlIG51bGwsIGNoZWNrIGlmIGl0IGlzIGJlZm9yZSB0cnlpbmcgdG8KCSAgYWNjZXNzIGl0cyBuYW1lLgoKMjAxMS0xMC0xOCAwODo0ODozNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBhZGQgc2luY2UgZG9jIHRvIG5ldyBnZXRjYXBzIGZ1bmN0aW9uCgoyMDExLTEwLTE4IDE0OjA4OjE5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgbG9nZ2luZzogbW9yZSBsb2dnaW5nIGFuZCBwcmVmZXIgaHVtYW4gcmVhZGFibGUgZGV0YWlscyBvdmVyIG1lbW9yeSBsb2NhdGlvbnMKCjIwMTEtMTAtMTggMTQ6MDU6MzcgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBpbXByb3ZlIGRpc3BsYXkgb2YgZ2hvc3QtIGFuZCBwcm94eXBhZHMKCSAgSGFuZGxlIHZpcnR1YWwgbGlua3MgYmV0d2VlbiBnaG9zdCBhbmQgcHJveHlwYWRzIHdoZW4gaXRlcmF0aW5nIHBhZHMgaW5zdGVhZCBvZgoJICB3aGVuIGxpbmtpbmcuIEJlc2lkZXMgdXNpbmcgbGVzcyBjb2RlIHRoaXMgcHJvdmlkZXMgYSBtb3JlIGFjY3VyYXRlIHBpY3R1cmUuCgoyMDExLTEwLTE4IDEzOjU0OjUyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IEFkZCBnLWkgYW5ub3RhdGlvbnMgYW5kIHJlbW92ZSAiU2luY2U6IiBtYXJrZXJzCgoyMDExLTEwLTE3IDE0OjQyOjA4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGFkZCBnZXRjYXBzIGZ1bmN0aW9uCgkgIEFkZHMgYSBnZXRjYXBzIGZ1bmN0aW9uIHRvIHRoZSBzaW5rIHBhZCB0byBtYWtlIHBhcnNlcnMgcHJvcGFnYXRlCgkgIGRvd25zdHJlYW0gY2FwcyByZXN0cmljdGlvbnMgdG8gdXBzdHJlYW0uCgkgIFRoZSBwaXBlbGluZSAiYXVkaW90ZXN0c3JjIG51bS1idWZmZXJzPTEwMCAhIGZhYWMgISBhYWNwYXJzZSAhCgkgICJhdWRpby9tcGVnLCB2ZXJzaW9uPShpbnQpNCwgc3RyZWFtLWZvcm1hdD0oc3RyaW5nKWFkdHMiICEgZmlsZXNpbmsiCgkgIHdvdWxkbid0IHdvcmsgYmVjYXVzZSBhYWNwYXJzZSB3b3VsZG4ndCBwcm9wYWdhdGUgdGhlIGFkdHMgcmVzdHJpY3Rpb24KCSAgdXBzdHJlYW0gdG8gZmFhYy4KCSAgVGhpcyBwYXRjaCBhZGRzIGEgZGVmYXVsdCBnZXRjYXBzIHRvIHRoZSBzaW5rIHBhZCB0byBzaW1wbHkgcHJveHkKCSAgZG93bnN0cmVhbSBjYXBzIGFuZCBhbHNvIGFkZHMgYSAnZ2V0X3NpbmtfY2FwcycgZnVuY3Rpb24gcG9pbnRlcgoJICB0byBHc3RCYXNlUGFyc2VDbGFzcyBmb3Igc3ViY2xhc3NlcyB0aGF0IG5lZWQgbW9yZSByZWZpbmVkIGdldGNhcHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjE4NzQKCjIwMTEtMTAtMTggMTI6Mzk6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogYWxzbyB1cGRhdGUgdGhlIHN0cmVhbSB0aW1lCgoyMDExLTEwLTE4IDEwOjU4OjE0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRml4IGhhbmRsaW5nIG9mIHF1ZXVlZCBmcmFtZXMKCSAgZ3N0X2Jhc2VfcGFyc2VfcHVzaF9mcmFtZSgpIGFscmVhZHkgZnJlZXMgdGhlIGZyYW1lLCBubyBuZWVkIHRvCgkgIGRvIGl0IGFub3RoZXIgdGltZSBhZ2Fpbi4KCjIwMTEtMTAtMTcgMjE6Mzg6NTYgKzAyMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJICB0ZXN0czogZml4IHBhZHRlbXBsYXRlIGxlYWsgaW4gc2VsZWN0b3IgdGVzdAoJICBJbiAwLjExLCBnc3RfcGFkX2dldF9wYWRfdGVtcGxhdGUgcmV0dXJucyBhIHJlZmVyZW5jZS4KCjIwMTEtMTAtMTcgMjE6Mzc6MTcgKzAyMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IGJ1ZmZlci9ldmVudCBsZWFrIHdoZW4gcGFkIGlzIGZsdXNoaW5nCgkgIEFwcGFyZW50bHkgdGhpcyBnb3QgbG9zdCB3aGlsZSByZWZhY3RvcmluZyBwcm9iZXMuCgoyMDExLTEwLTE3IDE3OjAwOjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZW1vdmUgdGhlIG1lbW9yeSBmcm9tIHRoZSB0bXBidWYKCSAgV2UgdXNlIGEgdG1wYnVmIHRvIGhvbGQgYSB0ZW1wb3JhcnkgcG9pbnRlciB0byB0aGUgYWRhcHRlciBtZW1vcnkuIFdlIG5lZWQgdG8KCSAgcmVtb3ZlIHRoYXQgbWVtb3J5IHdoZW4gd2Ugbm8gbG9uZ2VyIG5lZWQgaXQuCgoyMDExLTEwLTE3IDEzOjU1OjM1ICswMjAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogZml4IHJhY2UgY29uZGl0aW9uIGFuZCBtZW1vcnkgbGVhayBpbiBnc3Rfc3RhdGljX2NhcHNfZ2V0CgkgIFRoaXMgd2FzIGxlYWtpbmcgdGhlIFB0ckFycmF5IGZyb20gY2Fwcy0+cHJpdiwgYXMgc2V0IHVwIGJ5IHRoZSBvdGhlciBjYWxsIHRvCgkgIGdzdF9jYXBzX2luaXQuIEFsc28sIHRoZSB0aHJlYWQgc2FmZXR5IGlzc3VlIHByZXNlbnRlZCBpbiB0aGUgY29tbWVudCBhYm92ZSB3YXMKCSAgbm90IHRha2VuIGNhcmUgb2YgYW55bW9yZS4gV2Ugbm93IHplcm8gdGhlIHJlZmNvdW50IGFnYWluIHdoZW4gcHVibGlzaGluZyB0aGUKCSAgc3RydWN0dXJlLgoJICBGaXhlcyAjNjYxNjI5LgoKMjAxMS0xMC0xNyAwOToyODo0MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBnc3RjaGVjazogTWFrZSBBU1NFUlRfTUlOSV9PQkpFQ1RfUkVGQ09VTlQgbW9yZSB1c2VmdWwKCSAga25vd2luZyB3aGljaCBtaW5pb2JqZWN0IGZhaWxlZCBoZWxwcyB1cyBsb2NhdGUgaXQgaW4gZGVidWcgbG9ncwoKMjAxMS0xMC0xNyAwOToyODoyNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBnc3RjaGVjazogTWFrZSBfY2hlY2tfYnVmZmVyX2RhdGEgYSBiaXQgbW9yZSB2ZXJib3NlCgoyMDExLTEwLTE3IDA5OjI3OjQ5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RyZWdpc3RyeS5jOgoJICBjaGVjazogRG9uJ3QgbGVhayB0aGUgZmVhdHVyZSBuYW1lCgoyMDExLTEwLTE3IDA5OjI3OjI2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBnc3RyZWdpc3RyeTogRG9uJ3QgbGVhayBmZWF0dXJlIG5hbWUKCjIwMTEtMTAtMTYgMjE6MTI6MDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IGdpdmUgd2F0Y2ggc291cmNlIGEgbmFtZQoJICBHaXZlIG91ciBHU291cmNlIGEgbWVhbmluZ2Z1bCBuYW1lLiBTb3VyY2UgbmFtZXMgY2FuIGJlCgkgIHVzZWQgZm9yIGRlYnVnZ2luZyBhbmQgcHJvZmlsaW5nLCBmb3IgZXhhbXBsZSB3aXRoCgkgIHN5c3RlbXRhcCBvciBnZGIuCgoyMDExLTEwLTE0IDA5OjM1OjA5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3RidWZmZXI6IEFkZCB0cmFuc2ZlciBhbm5vdGF0aW9ucyBmb3IgZ3N0X2J1ZmZlcl9qb2luKCkKCjIwMTEtMTAtMTYgMTc6NDI6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlCgoyMDExLTEwLTE2IDE3OjAzOjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZQoKMjAxMS0xMC0xNiAxNzowMDowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgcG9ydGluZyBsaXN0CgoyMDExLTEwLTE2IDE0OjQ1OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkgIGZpeCBtb3JlIHBhcmVudF9jbGFzcwoKMjAxMS0xMC0xNiAxNDoyMDozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0ZXZlbnQuaAoKMjAxMS0xMC0xNiAxNDoxNzoyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBwYWR0ZW1wbGF0ZTogY2xlYW4gdXAgcGFyZW50X2NsYXNzCgoyMDExLTEwLTE0IDEyOjU3OjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGNsZWFuIHVwIHBhcmVudF9jbGFzcyBoYW5kbGluZwoKMjAxMS0xMC0xNCAwOTozNTowOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0YnVmZmVyOiBBZGQgdHJhbnNmZXIgYW5ub3RhdGlvbnMgZm9yIGdzdF9idWZmZXJfam9pbigpCgoyMDExLTEwLTE0IDA5OjI3OjM4ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBEb24ndCBsZWFrIHBsdWdpbiBmZWF0dXJlIGxpc3QKCjIwMTEtMTAtMTMgMTc6MzM6MDYgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogZml4IHR5cG8gaW4gdGhlIGRvY3MKCjIwMTEtMTAtMTMgMTY6NDg6MDIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBzaG93IGlmIGFuIGVsZW1lbnQgaXMgc3RhdGUtbG9ja2VkCgoyMDExLTEwLTEzIDE2OjQyOjEwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJICBsb2dnaW5nOiB1c2UgX09CSkVDVCB2YXJpYW50cyBtb3JlCgoyMDExLTEwLTEzIDEyOjIzOjU5ICswMjAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGZpeCBjYXBzIGxlYWsKCjIwMTEtMTAtMTMgMTA6MTk6MzQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IFVzZSBhbiBpbmxpbmUgZnVuY3Rpb24gaW5zdGVhZCBvZiBhIG1hY3JvIGZvciBnc3RfYnVmZmVyX3JlcGxhY2UoKQoJICBUaGlzIGdpdmVzIHVzIHR5cGUgY2hlY2tzIGJ5IHRoZSBjb21waWxlciBhbmQgbW9yZSB1c2VmdWwgY29tcGlsZXIgZXJyb3JzLgoKMjAxMS0xMC0xMyAxMDoxODo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IFVzZSBhbiBpbmxpbmUgZnVuY3Rpb24gaW5zdGVhZCBvZiBhIG1hY3JvIGZvciBnc3RfZXZlbnRfcmVwbGFjZSgpCgkgIFRoaXMgZ2l2ZXMgdXMgdHlwZSBjaGVja3MgYnkgdGhlIGNvbXBpbGVyIGFuZCBtb3JlIHVzZWZ1bCBjb21waWxlciBlcnJvcnMuCgoyMDExLTEwLTEzIDA4OjUxOjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3R1dGlscy5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jCgoyMDExLTEwLTEyIDE4OjE0OjAwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IERvIG5vdCB1bnJlZiB0aGUgaW50ZXJuYWwgcGFkIHR3aWNlCgkgIGdfdmFsdWVfdW5zZXQgc2hvdWxkIGFscmVhZHkgdW5yZWYgdGhlIGludGVybmFsIHByb3h5cGFkLCBubwoJICBuZWVkIHRvIGRvIGl0IGFnYWluCgoyMDExLTEwLTEyIDE3OjE3OjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHByb3Blcmx5IGFkanVzdCBzdGFydCB0aW1lCgkgIFdoZW4gd2UgZG8gYSBub24tZmx1c2hpbmcgc2VlayBhbmQgY2xvc2VkIHRoZSBjdXJyZW50IHNlZ21lbnQsCgkgIG1ha2Ugc3VyZSB0aGF0IHdlIG9wZW4gdGhlIG5leHQgc2VnbWVudCBmcm9tIHdoZXJlIHdlIGNsb3NlZC4KCjIwMTEtMTAtMTIgMTQ6Mzc6MzEgKzAyMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGFkZCB0cmFuc2ZlciB0eXBlIGZvciBnc3RfZXZlbnRfbmV3X2NhcHMgYXJndW1lbnQKCSAgVGhlc2UgYW5ub3RhdGlvbnMgYXJlIHVzZWZ1bCB0byBodW1hbnMgYXMgd2VsbC4uLgoKMjAxMS0xMC0xMiAxNDozNDoyNCArMDIwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBmaXggY2FwcyBsZWFrCgkgIGdzdF9ldmVudF9uZXdfY2FwcyBkb2VzIG5vdCBzdGVhbCBhIHJlZmVyZW5jZSB0byB0aGUgY2Fwcy4KCjIwMTEtMTAtMTIgMTM6MzE6NDggKzAyMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGZpeCBnc3RfZXZlbnRfbmV3X3NlZ21lbnQgdHJhbnNmZXIgdHlwZQoKMjAxMS0xMC0xMSAxMzo1NDo0NSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB0ZXN0czogRml4IG1vcmUgbGVha3MKCjIwMTEtMTAtMTEgMTM6NTM6MzkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IERvbid0IGxlYWsgY2FwcwoKMjAxMS0xMC0xMSAxMzo1MTo1NCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogRml4IGEgY2FwcyBsZWFrIGFuZCBtb3ZlIGEgY29kZWJsb2NrCgkgIFRoZSByZXN1bHQgZnJvbSB0aGUgYmxvY2sgb2YgY29kZSB0aGF0IHdhcyBtb3ZlZCB3b3VsZCBvbmx5IGhhdmUKCSAgYmVlbiB1c2VkIGlmICdwZWVyY2Fwcycgd2FzIHByZXNlbnQuCgoyMDExLTEwLTExIDEzOjUxOjM3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0OiBNb3JlICd0cmFuc2ZlcicgYW5ub3RhdGlvbnMKCjIwMTEtMTAtMTAgMTk6NDE6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBjYXRjaCBpbnZhbGlkIGluc3RhbmNlIHNpemVzIGluIGdzdF90eXBlX3JlZ2lzdGVyX3N0YXRpY19mdWxsKCkKCSAgQWRkIGd1YXJkcyB0byBjYXRjaCBvdmVybHkgbGFyZ2UgaW5zdGFuY2Ugc2l6ZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjA5NTUKCjIwMTEtMTAtMTAgMTk6MzA6MzQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXRpbHM6IHJlbW92ZSBnc3RfdHlwZV9yZWdpc3Rlcl9zdGF0aWNfZnVsbCgpCgkgIEl0IHdhcyBvbmx5IHJlYWxseSB1c2VkIGJ5IEdTVF9CT0lMRVJQTEFURSwgYW5kIHRoYXQgaXMgbm8gbW9yZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2MDk1NQoKMjAxMS0xMC0xMCAxMTo0Nzo0MiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGF2b2lkIHRyeWluZyB0byBhbGxvYyBlbm9ybW91cyBidWZmZXIKCSAgSWYgYSBjbGFzcyBleHRlbmRpbmcgYmFzZXNyYyBkb2Vzbid0IHNldCBibG9ja3NpemUsIGJhc2VzcmMKCSAgd291bGQgdHJ5IHRvIGFsbG9jYXRlIGEgKGd1aW50KS0xIHNpemVkIGJ1ZmZlciwgd2hpY2ggaXMgZW5vcm1vdXMKCSAgYW5kIGxpa2VseSB3b3VsZCBmYWlsLgoJICBBdm9pZCBpdCBhbmQgZXJyb3Igb3V0LgoKMjAxMS0xMC0xMCAxNzoxNzozNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlCgoyMDExLTEwLTEwIDE3OjA0OjM5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogSWYgd2UgZG9uJ3QgY29udHJvbCBhIHBhZC90ZW1wbGF0ZSwgcmV0dXJuIHByb3BlciBjYXBzCgkgIElmIHRoZXJlJ3MgYSBmaWx0ZXIsIHdlIGNhbiByZXR1cm4gdGhhdCBpbiBfZ2V0X2NhcHMoKQoKMjAxMS0xMC0xMCAxNjo1Mjo0MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogU3BlY2lmeSB0cmFuc2ZlciBmdWxsIGZvciBnc3RfcGFkX2dldF9jYXBzKCkKCSAgSXQgaW5jcmVtZW50cyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSByZXR1cm5lZCBjYXBzLgoKMjAxMS0xMC0xMCAxMTowMjowOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogQWRkIGRlYnVnIHRvIGtub3cgd2hhdCBldmVudHMgYXJlIHRyYW5zZmVycmVkIGJldHdlZW4gcGFkcwoKMjAxMS0xMC0xMCAxMDozODoxMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogVW5zZXQgRU9TIGV2ZW50IG9uIEZMVVNIX1NUT1AKCjIwMTEtMTAtMDcgMTE6NDk6MTkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IERvbid0IGlnbm9yZSBkb3duc3RyZWFtIEZsb3dSZXR1cm4gd2l0aCBJRExFIHByb2JlcwoJICBJZiBwdXNoZ2luIGRvd25zdHJlYW0gcmV0dXJuZWQgYSBub24tb2sgdmFsdWUgKGxpa2UgR1NUX0ZMT1dfV1JPTkdfU1RBVEUpLAoJICB3ZSBkb24ndCB3YW50IHRvIGVuZCB1cCByZXR1cm5pbmcgYSBkaWZmZXJlbnQgdmFsdWUgKEdTVF9GTE9XX09LIGluIHRoaXMKCSAgY2FzZSkgaWYgSURMRSBwcm9iZXMgYXJlIHByZXNlbnQuCgoyMDExLTEwLTEwIDEzOjIzOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZQoKMjAxMS0xMC0xMCAxMjo1NDo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUKCjIwMTEtMTAtMTAgMTI6Mzg6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlCgoyMDExLTEwLTEwIDEyOjI3OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZQoKMjAxMS0xMC0xMCAxMTo0OTo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUKCjIwMTEtMTAtMTAgMTE6MzY6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkgIGNvbXBhdDogYWRkIGNvbXBhdCBkZWZpbmUgZm9yIFVORVhQRUNURUQKCjIwMTEtMTAtMTAgMTE6MzM6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogR1NUX0ZMT1dfVU5FWFBFQ1RFRCAtPiBHU1RfRkxPV19FT1MKCjIwMTEtMTAtMTAgMTE6MzA6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlCgoyMDExLTEwLTA5IDExOjQ5OjQ1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSAgdGVzdHM6IHRlZTogUmVtZW1iZXIgdG8gaW5pdGlhbGl6ZSB2YXJpYWJsZXMgdG8gTlVMTAoJICBhcHBfdGhyZWFkIG5lZWRzIHRvIGJlIGluaXRpYWxpemVkIHRvIE5VTEwsIG90aGVyd2lzZSB0ZXN0cwoJICB3aWxsIHRyeSB0byB1c2UgaXQgYW5kIGNyYXNoCgoyMDExLTEwLTA4IDIwOjU2OjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgVXBkYXRlIGNvbW1vbiBmb3IgY2hlY2stZXhwb3J0cyBzY3JpcHQgY2hhbmdlcwoKMjAxMS0xMC0wOCAyMDo0NjoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGVsZW1lbnRmYWN0b3J5OiBkb24ndCBleHBvcnQgcHJpdmF0ZSBfZ3N0X2VsZW1lbnRjbGFzc19mYWN0b3J5IHF1YXJrCgoyMDExLTEwLTA4IDIwOjE1OjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IG1ha2UgX2dzdF9kZWJ1Z19pbml0KCkgcHJpdmF0ZSBmb3Igbm93CgkgIFRoaXMgd2FzIGEgRklYTUUgZm9yIDAuMTEuIEkgZ3Vlc3MgYSBjYXNlIGNvdWxkIGJlIG1hZGUgdG8ga2VlcCBpdCBhcm91bmQKCSAgc2VwYXJhdGVseSBmb3IgYXBwcyBvciBsaWJyYXJpZXMgdGhhdCBvbmx5IHdhbnQgdG8gdXNlIEdTdHJlYW1lcidzIGRlYnVnZ2luZwoJICBzeXN0ZW0sIGJ1dCBpdCBzZWVtcyBtb3JlIGxpa2VseSB0aGV5J2QganVzdCBjb3B5IHRoZSB0d28gc291cmNlIGZpbGVzIGludG8KCSAgdGhlaXIgb3duIHRyZWUgaWYgdGhlIGNhc2UuIEFsc28sIHRoaW5ncyBsaWtlIHR5cGVzIHdvdWxkbid0IGJlIGluaXRpYWxpc2VkCgkgIHdpdGhvdXQgZ3N0X2luaXQoKS4gV2UgY2FuIHN0aWxsIG1ha2UgaXQgcHVibGljIGFnYWluIGlmIGFueW9uZSBuZWVkcyBpdCwKCSAgYnV0IHRoZW4gd2Ugc2hvdWxkIG1ha2UgaXQgYSBwcm9wZXIgZnVuY3Rpb24gYW5kIG5vdCBoaWRlIGl0IGJlaGluZAoJICB1bmRlcnNjb3Jlcy4KCjIwMTEtMTAtMDggMTk6NTQ6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byBzeW1ib2wtZXhwb3J0cwoKMjAxMS0xMC0wOCAxNDoxNzoyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L3BhcnNlLy5naXRpZ25vcmU6CgkqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSogZ3N0L3BhcnNlL3R5cGVzLmg6CgkgIGdzdHBhcnNlOiBwcmVmaXggZ2VuZXJhdGVkIHBhcnNlciBmdW5jdGlvbnMgc28gdGhleSBkb24ndCBnZXQgZXhwb3J0ZWQKCSAgRG9uJ3QgZXhwb3J0IHRob3NlIDM1LXNvbWV0aGluZyByYW5kb20gX2dzdF9wYXJzZV95eSogc3ltYm9scy4gVGhlc2Ugd2VyZQoJICBuZXZlciBpbiBhbnkgaGVhZGVyIGZpbGVzIGFuZCBhbHNvIGJsYWNrbGlzdGVkIGZyb20gb3VyIC5kZWYgZmlsZXMsIGluCgkgIGNhc2UgYW55b25lIHdvbmRlcnMuCgoyMDExLTEwLTA4IDEzOjM3OjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgaW5mbzogcmVuYW1lIF9fZ3N0X2RlYnVnXyogdG8gX2dzdF9kZWJ1Z18qIGFuZCBmaXggc3ltYm9sIGV4cG9ydCByZWdleHAKCSAgT25seSBleHBvcnQgR1N0cmVhbWVyIHN5bWJvbHMgd2l0aCBvbmUgbGVhZGluZyB1bmRlcnNjb3JlLCBub3QgdHdvCgkgIG9yIG1vcmUgbGVhZGluZyB1bmRlcnNjb3Jlcy4KCSAgUmVxdWlyZXMgYSByZWJ1aWxkIG9mIHRoZSBlbnRpcmUgc3RhY2ssIHNvcnJ5LgoKMjAxMS0xMC0wOCAxNToxNjo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgZG9jCgoyMDExLTEwLTA4IDE0OjI1OjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMC0wOCAxNDoyMzozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUKCjIwMTEtMTAtMDggMTI6MDg6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBhdGUgcG9ydGluZyBsaXN0CgoyMDExLTEwLTA4IDA5OjQxOjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogcG9ydCB0byAwLjExCgoyMDExLTEwLTA4IDA5OjI4OjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RwYWQuYwoKMjAxMS0xMC0wNyAwOTo0NToyMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiBVc2UgcGlwZWxpbmUgY2F0ZWdvcnkgZm9yIG9uZSBtb3JlIGxvZyBtZXNzYWdlCgkgIE1ha2VzIGRlYnVnZ2luZyBlYXNpZXIuCgoyMDExLTEwLTA3IDE2OjM2OjEwICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIEdTVF9QVFJfRk9STUFUOiBBZGQgR3N0QnVmZmVyIHB0ciBmb3JtYXQgYW5kIHVzZSBpbiBHU1RfU0NIRURVTElORwoJICBHc3RCdWZmZXIgcG9pbnRlcnMgY2FuIG5vdyBiZSBwcmludGVkIHVzaW5nIEdTVF9QVFJfRk9STUFULiBUaGlzIGlzIHVzZWQKCSAgaW4gdGhlIHZlcnkgdXNlZnVsIEdTVF9TQ0hFRFVMSU5HIGRlYnVnIGxvZ3MgaW4gZ3N0cGFkLmMgYW5kIGFsbG93cyBmb3IKCSAgZWFzaWVyIGFuZCBtb3JlIGluZm9ybWF0aW9uIHRyYWNraW5nIG9mIGJ1ZmZlciBwcm9ncmVzcyB0aHJvdWdoIGEKCSAgcGlwZWxpbmUgd2l0aCBqdXN0IGRlYnVnIGxvZ2dpbmcuCgoyMDExLTEwLTA3IDEzOjU1OjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSAgdGVzdHM6IGZpeCBjb21waWxlciB3YXJuaW5ncyBpbiBzaW5rcyB0ZXN0CgoyMDExLTEwLTA3IDEzOjU0OjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGxpYnNjcHAuY2M6CgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJhc2U6IG1ha2UgR3N0RGF0YVF1ZXVlIHByaXZhdGUgQVBJIGZvciBtdWx0aXF1ZXVlCgkgIFRoZXJlJ3Mgbm8gY29kZSB0aGF0IHVzZXMgaXQgb3RoZXIgdGhhbiBtdWx0aXF1ZXVlLCBzbyBtYWtlIGl0IHByaXZhdGUKCSAgdG8gbXVsdGlxdWV1ZSBmb3Igbm93LiBUaGF0IHdheSB3ZSBjYW4gYWxzbyBkbyBvcHRpbWlzYXRpb25zIHRoYXQKCSAgcmVxdWlyZSBBUEkvQUJJIGJyZWFrcy4gSWYgYW55b25lIGV2ZXIgd2FudHMgdG8gdXNlIGl0LCB3ZSBjYW4gc3RpbGwKCSAgbWFrZSBpdCBwdWJsaWMgYWdhaW4uCgoyMDExLTEwLTA2IDE3OjI3OjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMC0wNiAxNzoyNjowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgbGlzdAoKMjAxMS0xMC0wNiAxNDozNDowOSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHNlbmQgZHVyYXRpb24gbWVzc2FnZSB3aGVuIHVwZGF0aW5nIGludGVybmFsIGR1cmF0aW9uCgoyMDExLTEwLTA2IDE0OjA0OjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBsaXN0CgoyMDExLTEwLTA2IDEwOjU5OjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHVwZGF0ZSBwb3J0aW5nIGxpc3QKCjIwMTEtMTAtMDUgMjA6MDY6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIGxpc3QKCjIwMTEtMTAtMDUgMTM6NDM6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIHBvcnRpbmcgc3RhdHVzCgoyMDExLTEwLTA1IDExOjIwOjM3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGdzdGJ1ZmZlcnBvb2w6IFVzZSBnbGliIGNvbXBhdCBtYWNyb3MgZm9yIGF0b21pYyBwb2ludGVycwoKMjAxMS0xMC0wNCAxODo1NToyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICB1cGRhdGUgcG9ydGluZyBsaXN0CgoyMDExLTEwLTA0IDE4OjU1OjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGltcHJvdmUgZG9jcwoKMjAxMS0xMC0wNCAxODozODo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5jOgoJICBkYXRhdXJpc3JjOiBwb3J0IHRvIDAuMTEKCjIwMTEtMTAtMDQgMTc6Mzk6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTEwLTA0IDE3OjM2OjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHVwZGF0ZSBwb3J0aW5nIGxpc3QKCjIwMTEtMTAtMDQgMTU6NTU6MDUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGdzdGV2ZW50OiBzcGVjaWZ5ICh0cmFuc2ZlcikgZm9yIGdzdF9ldmVudF9uZXdfc2VnbWVudAoKMjAxMS0xMC0wNCAxMzoxNjoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBhZGQgcG9ydGluZyBsaXN0CgoyMDExLTA5LTI2IDE0OjM2OjQ2ICswNDAwICBTdGFzIFNlcmdlZXYgPHN0c3BAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBSZXR1cm4gc3VjY2VzcyBpZiBvcHRpb25hbCBzdGFydC9zdG9wIG1ldGhvZCBpcyBub3QgcHJvdmlkZWQKCSAgVGhpcyBhbGxvd3MgdG8gbm90IGltcGxlbWVudCB0aGUgb3B0aW9uYWwgc3RhcnQvc3RvcCBtZXRob2RzLgoKMjAxMS0xMC0wMyAxMDowNjoxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jCgoyMDExLTEwLTAzIDA5OjI5OjEwICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBnc3RxdWVyeTogTWFrZSBkZWJ1Z2dpbmcgbWVzc2FnZSBtb3JlIGluZm9ybWF0aXZlCgkgIEZvciBhbGwgdGhlIG5ld2NvbWVycyBvdXQgdGhlcmUgd2hvIHN0aWxsIGRvbid0IGtub3cgdGhlIHZhbHVlcyBvZgoJICBHc3RRdWVyeVR5cGUgZW51bSBieSBoZWFydC4uLgoJICAuLi4gYW5kIG9sZC10aW1lcnMgd2hvJ3ZlIGdvdCBiZXR0ZXIgdGhpbmdzIHRvIGRvIDopCgoyMDExLTA5LTMwIDE1OjI1OjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbWFrZSBlc3RpbWF0aW5nIHRoZSBwb3NpdGlvbiBpbiBxdWVyeSBoYW5kbGVyIGFjdHVhbGx5IHdvcmsKCSAgTm8gcG9pbnQgZXN0aW1hdGluZyBpZiB3ZSBkb24ndCBzZXQgdGhlIHJlc3VsdCBhZnRlcndhcmRzLgoKMjAxMS0wOS0yNiAxMzoxNDo0MiArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFuc3dlciBwb3NpdGlvbiBxdWVyeSBpbiBzdHJlYW0gdGltZSBhbmQgdHJ5IHVwc3RyZWFtIGZpcnN0CgkgIExldCB0aGUgZGVtdXhlciBoYXZlIGZpcnN0IHNheSBhcyB3ZWxsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU5NDg1CgoyMDExLTA5LTMwIDE0OjUyOjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuaDoKCSAgZ3N0Lmg6IGluY2x1ZGUgaGVhZGVyIGZvciBhdG9taWMgcXVldWUKCjIwMTEtMDktMzAgMTQ6NTA6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YXRvbWljcXVldWUuYzoKCSAgdGVzdHM6IGFkZCBtaW5pbWFsIHRlc3QgZm9yIEdzdEF0b21pY1F1ZXVlCgkgIEp1c3QgbmV3ICsgZnJlZS4KCjIwMTEtMDktMjkgMTg6MDY6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICB1cGRhdGUgcmVsZWFzZSBub3RlcwoJICBDaGFuZ2UgdGhlIG1haWwgYWRkcmVzc2VzIHRvIHRoZSBmcmVlZGVza3RvcCBvbmVzCgoyMDExLTA5LTI5IDE3OjA0OjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIGJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTEuMSA9PT0KCjIwMTEtMDktMjkgMTY6NTA6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSRUxFQVNFIDAuMTEuMQoKMjAxMS0wOS0yOCAxODo0NjowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBmaXggbWVtb3J5IGFsaWdubWVudAoJICBGaXggY29tcGlsYXRpb24gd2hlbiBQT1NJWF9NRU1BTElHTiBpcyBub3Qgc2V0LgoJICBEZWJ1ZyB0aGUgY29uZmlndXJlZCBhbGlnbm1lbnQuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjAzMDAKCjIwMTEtMDktMjggMTg6NDQ6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogaW1wcm92ZSBkZWJ1ZwoKMjAxMS0wOS0yOCAxMToyODoyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICB0cmFuc2Zvcm06IGZpeCBhZnRlciBtZXJnZQoKMjAxMS0wOS0yOCAxMToyNDo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDktMjggMTE6MTY6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBkb2NzOiBmaXggc29tZSBtb3JlIGRvY3MKCjIwMTEtMDktMjYgMTk6NTI6MTMgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHNlbmQgZGVsYXllZCBldmVudHMgZWFybGllcgoJICBTb21lIGVsZW1lbnRzIChzdWNoIGFzIHZpZGVvcmF0ZSkgbWlnaHQgcHVzaCBidWZmZXJzIGVhcmx5LAoJICBmb3IgaW5zdGFuY2UgaW4gaW4gdHJhbnNmb3JtX2lwLiBXZSB3YW50IGV2ZW50cyAoYW5kIGluIHBhcnRpY3VsYXIKCSAgYW55IE5FV1NFR01FTlQgZXZlbnQpIHRvIGJlIHB1c2hlZCBiZWZvcmUgdGhhdC4KCSAgVGhpcyBmaXhlcyB0cmFuc21hZ2VkZG9uIHdlZGdpbmcgb24gY29udmVydGluZyBhIGZpbGUgc3RhcnRpbmcKCSAgd2l0aCBhIG5vbiB6ZXJvIG9mZnNldCB0byBPZ2cuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjAxNjUKCjIwMTEtMDktMjYgMjA6NDc6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RpdGVyYXRvci5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIGRvY3M6IGZpeCBkb2NzCgoyMDExLTA5LTI2IDE5OjI1OjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wOS0yNiAxOToyNDoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIHNlZ21lbnQ6IGltcHJvdmUgQVBJIGRvY3MgYSBsaXR0bGUKCjIwMTEtMDktMjYgMDA6MzA6NDcgKzAzMDAgIFJhaW1vIErDpHJ2aSA8cmFpbW8uamFydmlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZ3N0OiBGaXggY29tcGlsZXIgd2FybmluZ3Mgb24gNjQgYml0IG1pbmd3LXc2NAoJICBGaXhlcyBidWcgIzY2MDA4My4KCjIwMTEtMDktMjUgMTY6MTA6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvaGVsbG93b3JsZC9oZWxsb3dvcmxkLmM6CgkgIGV4YW1wbGVzOiBmaXggYm9ndXMgZ19vYmplY3RfdW5yZWYgaW4gaGVsbG93b3JsZCBleGFtcGxlCgkgIEdNYWluTG9vcCBpcyBub3QgYSBHT2JqZWN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI0MTQzCgoyMDExLTA5LTIzIDEzOjA5OjI1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RjYXBzLmMKCSAgZ3N0L2dzdHBhZC5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmgKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCjIwMTEtMDktMjEgMTM6NDM6NDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIFVwZGF0ZSBjb21tb24gdG8gMC4xMSBicmFuY2gKCjIwMTEtMDktMjAgMTM6MDQ6MDYgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGRlbGF5IHNlcmlhbGl6ZWQgZXZlbnRzIHdoZW4gc3JjIGNhcHMgYXJlIG5vdCBzZXQgeWV0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTk1NzEKCjIwMTEtMDktMTMgMTc6MDQ6MzEgKzA0MDAgIFN0YXMgU2VyZ2VldiA8c3RzcEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogU2V0IGNhcHMgb24gcGFkIGJlZm9yZSBjaGVja2luZyBpZiB0aGUgcGFkIGlzIGxpbmtlZAoJICBUaGlzIGFsbG93cyB0aGUgc2V0Y2FwcyBoYW5kbGVyIGFuZCBub3RpZnk6OmNhcHMgdG8gbGluawoJICB0aGUgcGFkIGRvd25zdHJlYW0gYW5kIGRvZXNuJ3QgcmVxdWlyZSBoYWNrcyB0byBhbHdheXMKCSAgcHJvdmlkZSBhIHBlZXIgdG8gdGhlIHBhZCwgbGlrZSBpbiBkZWNvZGViaW4yLgoKMjAxMS0wOS0xNSAxMTo0OTo0MyAtMDcwMCAgRmFicml6aW8gKE1pc3RvKSBNaWxvIDxtaXN0b2JhYW5AZ21haWwuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogdXNlIGdfdmFsdWVfdGFrZV9zdHJpbmcoKSBhbmQgZ3N0X3ZhbHVlX2dldF9jYXBzKCkgaW5zdGVhZCBvZiBhY2Nlc3NpbmcgaW50ZXJuYWwgZmllbGRzCgoyMDExLTA5LTE2IDEzOjM4OjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhZGQgbW9yZSBkZWJ1ZyBsb2dnaW5nIGZvciBvdGhlciBjaGFpbiBmdW5jdGlvbiBjb2RlIHBhdGggYXMgd2VsbAoKMjAxMS0wOS0xNiAxMzoxMzozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IHVwIHByaW50ZiBmb3JtYXQgaW4gZGVidWcgbWVzc2FnZQoJICBXaGljaCBJIG1lc3NlZCB1cC4KCjIwMTEtMDktMTUgMTM6MjA6MTUgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG1ha2Ugc29tZSBkZWJ1ZyB0cmFjZXMgbW9yZSB1c2VmdWwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1OTEzOQoKMjAxMS0wOS0xNCAyMjo1NDoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dzdGN2c3Rlc3Quc2g6CgkgIHNjcmlwdHM6IHJlbW92ZSBnc3RjdnN0ZXN0LnNoCgoyMDExLTA5LTEzIDIzOjA0OjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICBsZm9jb250cm9sc291cmNlOiBmaXggY2xhbmcgY29tcGlsZXIgd2FybmluZwoJICBDYXN0IGVudW0gdG8gaW50IGJlZm9yZSBjaGVja2luZyBmb3IgbmVnYXRpdmUgdmFsdWVzLCB3aGljaCBhcmUKCSAgaW1wb3NzaWJsZSBhY2NvcmRpbmcgdG8gdGhlIGVudW0gbGlzdC4KCSAgZ3N0bGZvY29udHJvbHNvdXJjZS5jOjY1Mjo0NTogZXJyb3I6IGNvbXBhcmlzb24gb2YgdW5zaWduZWQgZW51bSBleHByZXNzaW9uIDwgMAoJICBpcyBhbHdheXMgZmFsc2UgWy1XZXJyb3IsLVd0YXV0b2xvZ2ljYWwtY29tcGFyZV0KCSAgaWYgKHdhdmVmb3JtID49IG51bV93YXZlZm9ybXMgfHwgd2F2ZWZvcm0gPCAwKSB7CgkgIH5+fn5+fn5+IF4gfgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUzMTM3CgoyMDExLTA5LTEzIDIxOjU4OjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSAgdGVzdHM6IG1ha2Ugc3VyZSBmaWxlc3JjIHJldHVybnMgZXNjYXBlZCBVUklzIGV2ZW4gaWYgdGhlIGlucHV0IHdhcyB1bmVzY2FwZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NDY3MwoKMjAxMS0wOS0xMCAxODoxNTo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBtb3ZlIGxvZyBtZXNzYWdlcyBmb3IgY2FwcyBjcmVhdGlvbi9mcmVlaW5nIGludG8gVFJBQ0UgY2F0ZWdvcnkKCSAgUmVkdWNlIFNQQU0gZm9yIEdTVF9DQVBTOjUuCgoyMDExLTA5LTA5IDEyOjU2OjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBPbmx5IGRvIHRoZSBzdWJzZXQgY2hlY2sgaW4gZ3N0X3BhZF9hY2NlcHRfY2FwcygpIGlmIHRoZSBwYWQgY2xhaW1zIHRvIGFjY2VwdCB0aGUgY2FwcwoKMjAxMS0wOS0wNyAxNzoyMTo1NSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgYmFzZXNpbms6IG1ha2UgaXQgZWFzeSB0byBvdmVycmlkZSB0aGUgcGFkIHF1ZXJ5CgkgIEFkZCBhIHZtZXRob2QgdG8gaGFuZGxlIHRoZSBwYWQgcXVlcnkuCgkgIEluc3RhbGwgYSBkZWZhdWx0IGhhbmRsZXIgZm9yIHRoZSBwYWQgcXVlcnkuCgkgIFVzZSB0aGUgbmV3IHF1ZXJ5IGZ1bmN0aW9uIGluIGZpbGVzaW5rCgoyMDExLTA5LTA4IDE0OjM5OjMwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBSZXZlcnQgIlJldmVydCAiYmFzZXRyYW5zZm9ybTogVXNlIGNoZWNrIGZvciBzdWJzZXRzIGFuZCBub3Qgbm9uLWVtcHR5IGludGVyc2VjdGlvbiB0byBjaGVjayBpZiBjYXBzIGFyZSBjb21wYXRpYmxlIiIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAwYmM2ZDQ5Yzk1MDIxMGJmNDIyNjE1ZmI4ZGM5OGM1YWRjZDVlNDU2LgoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgoyMDExLTA5LTA4IDE0OjMxOjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgUmV2ZXJ0ICJSZXZlcnQgInBhZDogQ2hlY2sgZm9yIHN1YnNldHMsIG5vdCBub24tZW1wdHkgaW50ZXJzZWN0aW9ucyB0byBjaGVjayBpZiBjYXBzIGFyZSBjb21wYXRpYmxlIiIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAyYmZhZGE1NTgxZTM1YTJkMzcxODhmNDhhMmM3NDQyNjQ0ZjEwYmIzLgoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RwYWQuYwoJICBGb3IgMC4xMSB3ZSB3YW50IHRvIGVuZm9yY2UgdGhhdCBvbmx5IHN1YnNldHMgb2YgdGhlIHBhZAoJICBjYXBzIGFyZSBhbGxvd2VkLiBUaGlzIGJyZWFrcyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvcgoJICBzb21lIGVsZW1lbnRzLCB3aGljaCBpcyB3aHkgd2Ugb25seSBwcmludCBhIHdhcm5pbmcgaW4KCSAgMC4xMC4KCjIwMTEtMDktMDggMTQ6MzA6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RwYWQuYwoKMjAxMS0wOS0wOCAxNDoyOTowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIFJldmVydCAicGFkOiBVc2UgZ3N0X3BhZF9hY2NlcHRfY2FwcygpIGluc3RlYWQgb2YgbWFudWFsbHkgY2hlY2tpbmcgd2hlbiBjb25maWd1cmluZyBhIHNpbmtwYWQiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZDNjYWQyOGRhOTM2YjAzN2Q4NzdkYzcwYzAyMjg2YjgxYjY4MDI4NC4KCSAgSXQgY2F1c2VzIHBlcmZvcm1hbmNlIHByb2JsZW1zIGJlY2F1c2UgYWNjZXB0Y2FwcygpIHByb3BhZ2F0ZXMgZG93bnN0cmVhbS4KCjIwMTEtMDktMDggMTQ6MjM6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcjIudHh0CgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQKCSAgZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQKCSAgZG9jcy9kZXNpZ24vcGFydC1idWZmZXJsaXN0LnR4dAoJICBkb2NzL2Rlc2lnbi9wYXJ0LWNhcHMudHh0CgkgIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC10cmFuc2Zvcm0udHh0CgkgIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dAoJICBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dAoJICBnc3QvZ3N0Y2Fwcy5jCgkgIGdzdC9nc3RldmVudC5oCgkgIGdzdC9nc3RnaG9zdHBhZC5jCgkgIGdzdC9nc3RpbnRlcmZhY2UuYwoJICBnc3QvZ3N0cGFkLmMKCSAgZ3N0L2dzdHBhZC5oCgkgIGdzdC9nc3R1dGlscy5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoJICBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYwoJICB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmMKCSAgdG9vbHMvZ3N0LWxhdW5jaC4xLmluCgoyMDExLTA5LTA4IDEzOjQxOjE5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBVc2UgZ3N0X3BhZF9hY2NlcHRfY2FwcygpIGluc3RlYWQgb2YgbWFudWFsbHkgY2hlY2tpbmcgd2hlbiBjb25maWd1cmluZyBhIHNpbmtwYWQKCjIwMTEtMDktMDggMTM6NDA6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFByaW50IGEgZ193YXJuaW5nKCkgaWYgcGFkIGFjY2VwdCBjYXBzIHRoYXQgYXJlIG5vdCBhIHN1YnNldCBvZiBpdHMgY2FwcwoJICBJbiAwLjExIG9ubHkgc3Vic2V0cyBhcmUgc3VwcG9ydGVkIGFnYWluIGFzIGRvY3VtZW50ZWQgaW5zdGVhZCBvZiBhbHNvCgkgIGFsbG93aW5nIG5vbi1lbXB0eSBpbnRlcnNlY3Rpb25zLgoKMjAxMS0wOS0wOCAxMzoyNjoyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgUmV2ZXJ0ICJiYXNldHJhbnNmb3JtOiBVc2UgY2hlY2sgZm9yIHN1YnNldHMgYW5kIG5vdCBub24tZW1wdHkgaW50ZXJzZWN0aW9uIHRvIGNoZWNrIGlmIGNhcHMgYXJlIGNvbXBhdGlibGUiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNWU1Y2M1ZTg5ZTdlMjg1OGE2MzUyZmE0YzgxYTM3NGY2ZTVhNjI5Ny4KCSAgU2VlIGJ1ZyAjNjU4NTQxLgoKMjAxMS0wOS0wOCAxMzoyNjowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIFJldmVydCAicGFkOiBDaGVjayBmb3Igc3Vic2V0cywgbm90IG5vbi1lbXB0eSBpbnRlcnNlY3Rpb25zIHRvIGNoZWNrIGlmIGNhcHMgYXJlIGNvbXBhdGlibGUiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMGM1ZDUwMjA3MzI2ZDc0YTQ4MDViY2Q4OThiZmFjODg3NTQwZjEyYi4KCSAgU2VlIGJ1ZyAjNjU4NTQxLgoKMjAxMS0wOS0wNyAxMzoxNDozOCArMDIwMCAgUGlvdHIgRnVzaWsgPGZveEBzY2VuZS5wbD4KCgkqIFJFQURNRToKCSogZG9jcy9SRUFETUU6CgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcjIudHh0OgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtTVQtcmVmY291bnRpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWFjdGl2YXRpb24udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmxpc3QudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNhcHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXRyYW5zZm9ybS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1mcmFtZXN0ZXAudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGVsZW1lbnQudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1sYXRlbmN5LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWlzc2luZy1wbHVnaW5zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zY2hlZHVsaW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbS1zdGF0dXMudHh0OgoJKiBkb2NzL2ZhcS9NYWtlZmlsZS5hbToKCSogZG9jcy9mYXEvZGVwZW5kZW5jaWVzLnhtbDoKCSogZG9jcy9mYXEvZ2VuZXJhbC54bWw6CgkqIGRvY3MvbWFudWFsL01ha2VmaWxlLmFtOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1jbG9ja3MueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWluaXQueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkqIGRvY3MvbWFudWFsL2RpYWdyYW1zLWdlbmVyYWwuc3ZnOgoJKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6CgkqIGRvY3MvbWFudWFsL2ludHJvLWdzdHJlYW1lci54bWw6CgkqIGRvY3MvcHdnL01ha2VmaWxlLmFtOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10YWdnaW5nLnhtbDoKCSogZG9jcy9wd2cvaW50cm8tYmFzaWNzLnhtbDoKCSogZG9jcy9wd2cvaW50cm8tcHJlZmFjZS54bWw6CgkqIGRvY3MvcHdnL290aGVyLWJhc2UueG1sOgoJKiBkb2NzL3B3Zy9vdGhlci1zb3VyY2UueG1sOgoJKiBkb2NzL3JhbmRvbS9hdXRvcGx1ZzI6CgkqIGRvY3MvcmFuZG9tL2JiYi9vcHRpb25hbC1wcm9wZXJ0aWVzOgoJKiBkb2NzL3JhbmRvbS9iYmIvc3RyZWFtc2VsZWN0aW9uOgoJKiBkb2NzL3JhbmRvbS9jYXBzOgoJKiBkb2NzL3JhbmRvbS9jb21wYW55L2d2YWRlYy50eHQ6CgkqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHJhZnQtYnVmZmVycG9vbHMudHh0OgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL2VtYmVkZGVkLnR4dDoKCSogZG9jcy9yYW5kb20vZW5zb25pYy9tZWRpYS1kZXZpY2UtZGFlbW9uLnR4dDoKCSogZG9jcy9yYW5kb20vZW5zb25pYy9wbHVnaW5kb2NzLnR4dDoKCSogZG9jcy9yYW5kb20vZW5zb25pYy9wcm9maWxpbmcudHh0OgoJKiBkb2NzL3JhbmRvbS9lb3M6CgkqIGRvY3MvcmFuZG9tL2hpZXJhcmNoeToKCSogZG9jcy9yYW5kb20vaTE4bjoKCSogZG9jcy9yYW5kb20vaW50ZXJmYWNlczoKCSogZG9jcy9yYW5kb20vbmVnb3RpYXRpb246CgkqIGRvY3MvcmFuZG9tL29tZWdhL3NjaGVkL2NoYWluczoKCSogZG9jcy9yYW5kb20vb21lZ2EvdGVzdGluZy9mcmFtZXdvcms6CgkqIGRvY3MvcmFuZG9tL3BsdWdpbnM6CgkqIGRvY3MvcmFuZG9tL3J0cDoKCSogZG9jcy9yYW5kb20vc2xvbW8vY29udHJvbGxlci50eHQ6CgkqIGRvY3MvcmFuZG9tL3NvdXJjZXM6CgkqIGRvY3MvcmFuZG9tL3N0cmVhbWhlYWRlcjoKCSogZG9jcy9yYW5kb20vdGVzdGluZy9zeW50YXg6CgkqIGRvY3MvcmFuZG9tL3R5cGVzMjoKCSogZG9jcy9yYW5kb20vdXJhZXVzL2dzdHJlYW1lcl9hbmRfbWlkaS50eHQ6CgkqIGRvY3MvcmFuZG9tL3Zpcy10cmFuc2Zvcm06CgkqIGRvY3MvcmFuZG9tL3d0YXkvY2Fwcy1uZWdvY2lhdGlvbjoKCSogZG9jcy9yYW5kb20vd3RheS90aHJlYWRpbmc6CgkqIGRvY3MvcmFuZG9tL3d0YXkvdGhyZWFkc19oaWxldmVsOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpbnRlcmZhY2UuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmg6CgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwc25lZ28uYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSogd2luMzIvUkVBRE1FLnR4dDoKCSAgZG9jcywgZ3N0OiB0eXBvIGZpeGVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTg0NDkKCjIwMTEtMDktMDcgMTU6MDc6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgZG9jczogZml4IG1ha2UgZGlzdGNoZWNrCgkgIE5vIHBvaW50IHJlbW92aW4gdGhvc2UgZW1wdHkgb3ZlcnJpZGUgZmlsZXMgZnJvbSBnaXQsIHRoZXknbGwKCSAganVzdCBiZSByZS1jcmVhdGVkIGxhdGVyLCBzbyBsZXQncyB0ZWxsIGd0ay1kb2MgYWJvdXQgdGhlbSwgc28KCSAgaXQgY2FuIGNsZWFuIHRoZW0gdXAgcHJvcGVybHkuCgoyMDExLTA5LTA3IDE2OjAyOjMxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBJZiB0aGVyZSdzIG5vIHBlZXIgd2Ugc3RpbGwgaGF2ZSB0byB0cmFuc2Zvcm0gQU5ZIGNhcHMgaW4gZ2V0Y2FwcygpCgkgIE90aGVyd2lzZSBlbGVtZW50cyBsaWtlIGNhcHNmaWx0ZXIgd2lsbCByZXR1cm4gQU5ZIGNhcHMgaWYgbm8KCSAgcGVlciBpcyBwcmVzZW50IGluc3RlYWQgb2YgdGhlIGZpbHRlciBjYXBzLiBUaGUgdHJhbnNmb3JtX2NhcHMoKQoJICB2ZnVuYyBjb3VsZCBkbyB0cmFuc2Zvcm1hdGlvbnMgdG8gdGhlIHRlbXBsYXRlIGNhcHMgdGhhdCBkbyBub3QKCSAgcmVzdWx0IGluIHRoZSB1bm1vZGlmaWVkIHRlbXBsYXRlIGNhcHMuCgoyMDExLTA5LTA3IDE0OjA1OjAzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICBkb2NzOiBjbGVhbnVwIG1ha2VmaWxlcwoJICBSZW1vdmUgY29tbWVudGVkIG91dCBwYXJ0cyB0aGF0IHdlIGRvbid0IG5lZWQuIFJlbW92ZSAidGhlIHdpbmdvIGFkZGl0aW9uIiAtIG5vCgkgIHNvIHVzZWZ1bCBhZnRlciBhbGwuIE5hcnJvdyBkb3duIGZpbGUtZ2xvYnMgZm9yIHBsdWdpbiBkb2NzLgoKMjAxMS0wOS0wNyAxMzo1MDowOCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGRvY3M6IGVzY2FwZSAlIGluIGRvY2Jsb2IKCjIwMTEtMDktMDIgMTk6NDY6MDYgKzA0MDAgIFN0YXMgU2VyZ2VldiA8c3Rhc0BzdGFzLihub25lKT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogVXNlIGdzdF9wYWRfc2V0X2NhcHMoKSBpbnN0ZWFkIG9mIG1hbnVhbGx5IGNoYW5naW5nIGNhcHMKCSAgZ3N0X3BhZF9zZXRfY2FwcygpIGRvZXMgZXNzZW50aWFsbHkgdGhlIHNhbWUgYnV0IGFkZGl0aW9uYWxseSBjYWxscwoJICB0aGUgcGFkJ3Mgc2V0Y2FwcyBmdW5jdGlvbi4KCSAgRml4ZXMgYnVnICM2NTgwNzYuCgoyMDExLTA5LTA2IDIxOjI0OjEwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBhMzllYjgzIHRvIDExZjBjZDUKCjIwMTEtMDktMDYgMTU6Mzk6NTIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDYwNWNkOWEgdG8gYTM5ZWI4MwoKMjAxMS0wOS0wNiAxMjoxNzowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogVXNlIGNoZWNrIGZvciBzdWJzZXRzIGFuZCBub3Qgbm9uLWVtcHR5IGludGVyc2VjdGlvbiB0byBjaGVjayBpZiBjYXBzIGFyZSBjb21wYXRpYmxlCgoyMDExLTA5LTA2IDEyOjE5OjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBDaGVjayBmb3Igc3Vic2V0cywgbm90IG5vbi1lbXB0eSBpbnRlcnNlY3Rpb25zIHRvIGNoZWNrIGlmIGNhcHMgYXJlIGNvbXBhdGlibGUKCSAgUGFkcyBzaG91bGQgb25seSBhY2NlcHQgY2FwcyB0aGF0IGFyZSBhIHN1YnNldCBvZiB0aGUgcGFkIGNhcHMsIGUuZy4KCSAgdGhleSBzaG91bGQgYWNjZXB0IG9ubHkgY2FwcyB0aGF0IGhhdmUgYSBub24tZW1wdHkgaW50ZXJzZWN0aW9uIGFuZAoJICBhdCBsZWFzdCBhbGwgZmllbGRzIG9mIHRoZSBwYWQgY2Fwcy4KCSAgV2l0aG91dCB0aGlzIGEgcGFkIHRoYXQgd2FudHMgZm9yIGV4YW1wbGUKCSAgInZpZGVvL3gtaDI2NCxzdHJlYW0tZm9ybWF0PWJ5dGUtc3RyZWFtIgoJICB3aWxsIGJlIGhhcHB5IHRvIGFjY2VwdAoJICAidmlkZW8veC1oMjY0Ii4KCjIwMTEtMDgtMjkgMTc6MDY6MTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1pbmlvYmplY3Q6IGNoYW5nZSB0byBHU1RfREVGSU5FX01JTklfT0JKRUNUX1RZUEUKCSAgQXBwZW5kIF9UWVBFIHRvIHRoZSBtYWNybyBmb3IgY29uc2lzdGVuY3kgd2l0aCBvdGhlciBzaW1pbGFyIG1hY3Jvcy4KCjIwMTEtMDgtMjkgMTU6MzQ6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBpbml0OiBhZGQgX2dldF90eXBlKCkgZnVuY3Rpb25zCgkgIFJlbW92ZSBnc3RfbWluaV9vYmplY3RfcmVnaXN0ZXIoKSBhbmQgYWRkIGEgR1NUX0RFRklORV9NSU5JX09CSkVDVCBtYWNybyB0bwoJICBkZWZpbmUgYSBfZ2V0X3R5cGUoKSBmdW5jdGlvbiBmb3IgdGhlIGJveGVkIG1pbmlvYmplY3QuCgkgIFJlbW92ZSBhIGJ1bmNoIG9mIGN1c3RvbSBfZ2V0X3R5cGUoKSBmdW5jdGlvbnMgYW5kIHJlcGxhY2UgdGhlbSB3aXRoIHRoZQoJICBtaW5pb2JqZWN0IG1hY3JvLgoJICBSZW5hbWUgc29tZSBfaW5pdCBtZXRob2QgdG8gX3ByaXZfKl9pbml0aWFsaXplKCkgbGlrZSB0aGUgcmVzdCBvZiB0aGVtLgoJICBJbnNwaXJlZCBieSBwYXRjaCBmcm9tIEpvaGFuIERhaGxpbiBhbmQgc2VlIGJ1ZyAjNjU3NjAzCgoyMDExLTA4LTI5IDEzOjI3OjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3Q6IGFkZCBzb21lIF9wcml2IHByZWZpeGVzIHRvIHByaXZhdGUgbWV0aG9kcwoKMjAxMS0wOC0yOSAxMjozODo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmktb2JqZWN0OiB1c2UgcmVmL3VucmVmIGRpcmVjdGx5IGluIGJveGVkIGNvcHkvZnJlZQoJICBHTGliIHdpbGwgbm90IGNhbGwgb3VyIGNvcHkvZnJlZSB3aXRoIGEgTlVMTCBvYmplY3QKCjIwMTEtMDgtMjYgMTQ6Mzc6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdG1lc3NhZ2UuYwoJICBnc3QvZ3N0cXVlcnkuYwoJICBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYwoJICBnc3QvZ3N0c2VnbWVudC5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jCgoyMDExLTA4LTI2IDE0OjE4OjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNlOiByZW5hbWUgYWxsb2NhdGlvbiB2bWV0aG9kcwoJICBOYW1lIHRoZSBhbGxvY2F0aW9uIHZtZXRob2Qgb24gc3JjcGFkIGRlY2lkZV9hbGxvY2F0aW9uIGJlY2F1c2Ugc291cmNlIHBhZHMgd2lsbAoJICBoYXZlIHRvIGRlY2lkZSB3aGF0IGFsbG9jYXRpb24gcGFyYW1ldGVycyB3aWxsIGJlIHVzZWQuCgkgIE5hbWUgdGhlIGFsbG9jYXRpb24gdm1ldGhvZCBvbiBzaW5rcGFkcyBwcm9wb3NlX2FsbG9jYXRpb24gYmVjYXVzZSB0aGV5IHdpbGwKCSAgbmVlZCB0byBjb25maWd1cmUgdGhlIGFsbG9jYXRpb24gcXVlcnkgd2l0aCBhIHByb3Bvc2VkIHZhbHVlcyBmb3IgdXBzdHJlYW0uCgoyMDExLTA4LTI2IDE0OjE3OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGltcHJvdmUgZmxhZ3MKCSAgUmVuYW1lIERST1AgdG8gREVDT0RFX09OTFkuCgkgIEFkZCBEUk9QUEFCTEUgZmxhZyB0byBtYXJrIGJ1ZmZlcnMgdGhhdCBjYW4gYmUgZHJvcHBlZCB0byBzYXZlIGJhbmR3aWR0aCB3aXRob3V0CgkgIGRlc3Ryb3lpbmcgdGhlIHN0cmVhbS4KCjIwMTEtMDgtMjYgMTQ6MDk6NDcgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R0cmFjZS5oOgoJKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSAgZG9jczogYWRkIHNpbmNlIDAuMTAuMzYgb24gdGhlIG5ldyBfTk9ORSBlbnVtIHZhbHVlcwoKMjAxMS0wOC0yNiAwMDoxMzoxNiArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogdGVzdHMvZXhhbXBsZXMvc3RlcHBpbmcvZnJhbWVzdGVwMS5jOgoJICBzdGVwcGluZzogdXNlIHRoZSBwcm9wZXIgYXJndW1lbnQgb3JkZXIKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0yNiAwMDowNjoxMiArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzoKCSAgZmlsZWluZGV4OiBleHBsaWNpdGx5IGNhc3QgdG8gdGhlIGVudW0gdHlwZXMKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0yNiAwMDowMDoyNSArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmRlcjogdXNlIEdTVF9UWVBFX0ZJTkRfTk9ORSBpbnN0ZWFkIG9mIDAKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0yNSAyMzo1Mzo1OCArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIGxmb2NvbnRyb2xzb3VyY2U6IGV4cGxpY2l0bHkgY2FzdCB0byB0aGUgZW51bSB0eXBlCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMjUgMjM6NDk6MzggKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIHR5cGVmaW5kOiBhZGQgR1NUX1RZUEVfRklORF9OT05FIGFuZCB1c2UgaXQKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0yNSAyMzoyNjowOCArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB1c2UgdGhlIGVudW0gdmFsdWVzIGZvciAwIGFuZCBkb24ndCBhYnVzZSBvbiBnYm9vbGVhbiBjb2luY2lkZW5jZQoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI1IDIzOjA2OjU2ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHB1dCB0aGUgYXJndW1lbnRzIG9mIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIGluIHRoZSBwcm9wZXIgb3JkZXIKCjIwMTEtMDgtMjUgMjI6NDg6NTQgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwYXJzZS5jOgoJICBwYXJzZTogdXNlIEdTVF9QQVJTRV9GTEFHX05PTkUgaW5zdGVhZCBvZiAwCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMjUgMjI6NDI6MDggKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogZXhwbGljaXRseSBjYXN0IHRvIHRoZSBlbnVtIHR5cGUKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0yNSAyMjoyOTo0NSArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBtaW5vciBjaGFuZ2VzIHJlbGF0ZWQgdG8gZW51bSB0eXBlcwoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI1IDIyOjA1OjI2ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSogZ3N0L2dzdHRyYWNlLmg6CgkgIHRyYWNlOiBhZGQgR1NUX0FMTE9DX1RSQUNFX05PTkUgZm9yIGNvbnNpc3RlbmN5IGFuZCB1c2UgaXQKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0yNSAyMTo1MjowNSArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogZXhwbGljaXRseSBjYXN0IHRvIHRoZSBlbnVtIHR5cGUKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0yNSAyMTo0OToyOSArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgdGFnc2V0dGVyOiB1c2UgR1NUX1RBR19NRVJHRV9VTkRFRklORUQgaW5zdGVhZCBvZiBGQUxTRQoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI1IDIxOjMwOjU3ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiB1c2UgR1NUX1NFRUtfRkxBR19OT05FIGluc3RlYWQgb2YgMAoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI1IDIxOjI1OjQ2ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnljaHVua3M6IGV4cGxpY2l0bHkgY2FzdCB0byB0aGUgZW51bSB0eXBlcwoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI1IDIxOjE4OjE1ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IG1pbm9yIGNoYW5nZXMgcmVsYXRlZCB0byBlbnVtIHR5cGVzCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMjUgMjE6MDM6NTMgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBwYWR0ZW1wbGF0ZTogZXhwbGljaXRseSBjYXN0IHRvIHRoZSBlbnVtIHR5cGVzCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMTYgMjM6MDA6NDcgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGV4cGxpY2l0bHkgY2FzdCB0byB0aGUgZW51bSB0eXBlCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMTYgMjI6NTE6MjkgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IGV4cGxpY2l0bHkgY2FzdCB0byB0aGUgcmlnaHQgZW51bSB0eXBlcwoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTE2IDIyOjQxOjMyICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBleHBsaWNpdGx5IGNhc3QgdG8gdGhlIGVudW0gdHlwZQoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTE2IDIyOjM3OjA4ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0aW5kZXguYzoKCSAgaW5kZXg6IGV4cGxpY2l0bHkgY2FzdCB0byB0aGUgZW51bSB0eXBlCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMTYgMjI6Mjk6NTkgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSAgZm9ybWF0OiB1c2UgR1NUX0ZPUk1BVF9VTkRFRklORUQgYW5kIGZldyBjYXN0cyB0byBHc3RGb3JtYXQKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0yNiAxMzowMjozNCArMDEwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogRml4IGJvZGdlZCBwcmV2aW91cyBjb21taXQKCjIwMTEtMDgtMjYgMTI6Mzc6NDMgKzAxMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZC5zaW1vbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiBVc2UgR3N0UGFkRGlyZWN0aW9uIGluIHRoZSBxdWVyeSB2ZnVuYwoJICBXaW0gc3VnZ2VzdGVkIHRoYXQgdXNpbmcgR3N0UGFkRGlyZWN0aW9uIGluc3RlYWQgb2YgYSBHc3RQYWQgaW4gdGhlCgkgIGFyZ3VtZW50cyB0byB0aGUgbmV3IHF1ZXJ5IHZmdW5jIHdvdWxkIGJlIG1vcmUgY29uc2lzdGVudCB3aXRoIHRoZSBvdGhlcgoJICBmdW5jdGlvbnMuCgoyMDExLTA4LTI2IDEzOjQwOjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IHJlbmFtZSBfQ0xJUCB0byBfRFJPUCBmbGFnCgkgIFdlIGNhbiBhbHNvIHVzZSBhIGZsYWcgdG8gaW5kaWNhdGUgdGhhdCBhIGZyYW1lIHNob3VsZCBiZSBkZWNvZGVkIGJ1dCBub3QKCSAgZGlzcGxheWVkIHJlZ2FyZGxlc3Mgb2YgdGhlIHRoZSBzZWdtZW50IGJvdW5kYXJpZXMgc28gd2UgdXNlIHRoZSBtb3JlIGdlbmVyaWMKCSAgX0RST1AuCgoyMDExLTA4LTI2IDEyOjI4OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiByZW1vdmUgc29tZSB1bnVzZWQgdmFyaWFibGVzCgoyMDExLTA4LTI2IDExOjQ0OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiBhZGQgdm1ldGhvZCB0byBjb25maWd1cmUgdXBzdHJlYW0gYnVmZmVycG9vbAoJICBBZGQgYSB2bWV0aG9kIHRoYXQgY2FuIGJlIGltcGxlbWVudGVkIHRvIGluZmx1ZW5jZSB0aGUgYnVmZmVycG9vbCB0aGF0IHVwc3RyZWFtCgkgIGVsZW1lbnRzIHdpbGwgdXNlLgoKMjAxMS0wOC0yNiAxMToyNDo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogdXNlIHBhZCBkaXJlY3Rpb24gbGlrZSBvdGhlciB2bWV0aG9kcwoKMjAxMS0wOC0yNiAxMTowOTowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaAoKMjAxMS0wOC0yNiAxMDo1NzozNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1cmkuaDoKCSAgdXJpOiBzb21lIGRvYyBmaXhlcwoKMjAxMS0wOC0yNSAxMTowMjoxNiArMDEwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIEJhc2VUcmFuc2Zvcm06IEFkZCBhIHF1ZXJ5IHZmdW5jCgoyMDExLTA3LTIwIDE0OjA1OjI3ICswMjAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBkb24ndCBhc3N1bWUgX2dldF9jYXBzIHN0aWxsIGhhcyB0byBiZQoJICBfc2V0X2NhcHMgb25seSBnZXRzIGNhbGxlZCB3aGVuIHRoZSBidWZmZXIgaXMgYWN0dWFsbHkgcHVzaGVkLCBzbyB0aGVyZQoJICBpcyBhIHJlYXNvbmFibHkgYmlnIHdpbmRvdyBiZXR3ZWVuIHdoZW4gdGhlIGluaXRpYWwgY2FwcyBhcmUgcmV0cmlldmVkCgkgIGFuZCB3aGVuIHRoZSBjYXBzIGFyZSBzZXQgb24gb3VyIHNyYyBwYWQuIFNvIHdlIGNhbid0IGFzc3VtZSB0aGUgbm90CgkgIGhhdmluZyBuZWdvdGlhdGVkIGNhcHMgb24gb3VyIHNyYyBwYWQgbWVhbnMgX2dldF9jYXBzIHN0aWxsIGhhcyB0byBiZQoJICBjYWxsZWQuCgkgIEluc3RlYWQgc2ltcGx5IGFsd2F5cyBzdWdnZXN0IHRoZSBuZXcgY2FwcyBvbiBidWZmZXJfYWxsb2MuCgoyMDExLTA4LTI1IDE4OjA0OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGFkZCBjbGlwIGZsYWcKCjIwMTEtMDgtMjUgMTY6MjE6MTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogcmV3b3JrIGZsYWdzIGEgbGl0dGxlCgkgIFJlb3JkZXIgYnVmZmVyIGZsYWdzIGFuZCBhZGQgc29tZSBuZXcgb25lcy4KCSAgUmVtb3ZlIHRoZSBtZWRpYSBzcGVjaWZpYyBmbGFncywgd2UgY2FuIG5vdyBlYXNpbHkgZG8gdGhpcyB3aXRoIHRoZSBGTEFHX0xBU1QKCSAgZmxhZyBiZWNhdXNlIHdlIGRvbid0IGV4dGVuZCBmcm9tIEdzdEJ1ZmZlciBhbnltb3JlLgoKMjAxMS0wOC0yNSAxNjoyMDoyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJ1ZmZlcjogYWx3YXlzIGNvcHkgYWxsIGJ1ZmZlciBmbGFncyB3aGVuIGFza2VkCgkgIERvbid0IHRyeSB0byBiZSBzbWFydCBhbmQgY29weSBvbmx5IGEgc3Vic2V0IG9mIGJ1ZmZlciBmbGFnCgoyMDExLTA4LTI1IDE2OjE5OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHVwZGF0ZSBkZWZzCgoyMDExLTA4LTI1IDE0OjA5OjM3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogcGx1cmFsaXplIHRoZSBidWZmZXIgZmxhZ3MKCjIwMTEtMDgtMjUgMTI6Mzg6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc3RyZXNzLmM6CgkgIGJhc2VzaW5rOiByZW1vdmUgcHJlcm9sbC1xdWV1ZS1sZW4gcHJvcGVydHkKCSAgUmVtb3ZlIHRoZSBwcmVyb2xsLXF1ZXVlLWxlbiBwcm9wZXJ0eSBhbmQgbW92ZSBpdHMgdmFyaWFibGVzIHRvIGEgcHJpdmF0ZQoJICBzZWN0aW9uIHNvIHRoYXQgd2UgY2FuIHJlbW92ZSB0aGVtIGxhdGVyLgoKMjAxMS0wOC0yNCAxMDo0MzowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0b2JqZWN0LmMKCjIwMTEtMDgtMjMgMTg6MTk6NTMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZW5zdXJlIHN0YXJ0X3RpbWUgcmVzZXQgdXBvbiBmbHVzaAoKMjAxMS0wOC0yMyAxMTo1NToxNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IGFsc28gcmVtb3ZlIHRoZSBjYXN0IGFzIHRoaXMgaXMgY2F1c2luZyB0aGUgdHJvdWJsZQoKMjAxMS0wOC0yMyAxMTo0MTowMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IHVzZSB0aGUgYXRvbWljIG1hY3JvcyB0byBkZWFsIHdpdGggdGhlIGdsaWIgY2hhbmdlIGluIHRoZSBpbXBsLgoKMjAxMS0wOC0yMiAxMjo0OTowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJICBvYmplY3Q6IG1ha2UgX3JlcGxhY2UgbGlrZSB0aGUgbWluaW9iamVjdCB2ZXJzaW9uCgoyMDExLTA4LTIyIDEyOjMzOjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RidWZmZXIuaAoJICBnc3QvZ3N0Y2Fwcy5jCgkgIGdzdC9nc3RjYXBzLmgKCSAgZ3N0L2dzdGV2ZW50LmMKCjIwMTEtMDgtMjIgMTI6MTk6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvY2Fwc2xpc3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdmFsdWU6IHJlbW92ZSBvdXIgRk9VUkNDIEdUeXBlCgkgIFJlbW92ZSBvdXIgY3VzdG9tIGZvdXJjYyBHVmFsdWUuCgoyMDExLTA4LTIxIDE0OjA3OjA4IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgb2JqZWN0OiBtYWtlIGdzdF9vYmplY3RfcmVwbGFjZSgpIGF0b21pYwoKMjAxMS0wOC0yMCAxNDowNzo1NSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZG9jczogbW9yZSBjbGFyaWZpY2F0aW9uIGZvciBlbGVtZW50IGRvY3MKCSAgRG9uJ3Qgc3VnZ2VzdCBkZXByZWNhdGVkIG1ldGhvZCBpbiB0aGUgZGVzY3Rpb24gZG9jcyBhbmQgdHJ5IHRvIGJlIG1vcmUgaGVscGZ1bAoJICBpbiBvdGhlciBwbGFjZXMgYnkgc3VnZ2VzdGluZyByZWxhdGVkIGZ1bmN0aW9ucy4KCjIwMTEtMDgtMjAgMDk6NTY6MDEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGRvY3M6IHNtYWxsIGNsYXJpZmljYXRpb24gaW4gdGhlIGdzdF9lbGVtZW50X2dldF9yZXF1ZXN0X3BhZCBkb2NzCgkgIE1ha2UgaXQgbW9yZSBvYnZpb3VzIHRoYXQgb25lIHNob3VsZCBwYXNzIHRoZSB0ZW1wbGF0ZSBuYW1lLgoKMjAxMS0wOC0xOCAyMDo0NjowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGRvbid0IHVzZSA9PSBpbiBkZWJ1ZyBzdHJpbmcKCSAgSXQgbWVzc2VzIHVwIEdTVF9ERUJVRz0qOjUgbWFrZSBmb28vYmFyLnZhbGdyaW5kLCBiZWNhdXNlCgkgIG91ciBNYWtlZmlsZSBsb29rcyBmb3IgJz09JyBhcyBtYXJrZXIgb2YgdmFsZ3JpbmQgb3V0cHV0LgoKMjAxMS0wOC0xOCAyMDo0NDowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBjcmFzaCBvbiBzZWVrIGZyb20gc3RyZWFtaW5nIHRocmVhZCBvbiBuZXdzZWdtZW50IGV2ZW50CgkgIEV2ZW50IGlmIGl0J3Mgbm90IGFsbG93ZWQsIHdlIGNhbiBlYXNpbHkgcHJldmVudCBpdCwgc28gbGV0J3MgZG8KCSAgdGhhdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1Njc3MQoKMjAxMS0wOC0xNyAxNzo1Njo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc3RydWN0dXJlOiBhZGQgbWV0aG9kIHRvIGZpeGF0ZSBvbmUgZmllbGQKCjIwMTEtMDgtMTcgMTc6MTY6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogYWRkIGRlZmF1bHQgZml4YXRlIGZ1bmN0aW9uCgkgIEFkZCBhIGRlZmF1bHQgZml4YXRlIGZ1bmN0aW9uIHdoaWNoIGRvZXMgZ3N0X2NhcHNfZml4YXRlKCkgYmVjYXVzZQoJICBnc3RfcGFkX2ZpeGF0ZSgpIGRvZXMgbm90IGRvIHRoYXQgYW55bW9yZS4KCjIwMTEtMDgtMTcgMDk6MjU6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBkb2NzOiBpbXByb3ZlIHNvbWUgZG9jcwoKMjAxMS0wOC0xNiAxODoyOToyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IHJldHVybiBwcm9jZXNzZWQgbnVtYmVyIG9mIGJ5dGVzCgkgIE1ha2UgX2ZpbGwsIF9leHRyYWN0IGFuZCBfbWVtc2V0IHJldHVybiB0aGUgYWN0dWFsIG51bWJlciBvZiBieXRlcyB0aGF0IHdlcmUKCSAgaGFuZGxlZCBpbiBjYXNlIHRoZSBidWZmZXIgc2l6ZSBpcyBsZXNzIHRoYW4gdGhlIHNwZWNpZmllZCBzaXplLgoKMjAxMS0wOC0xNiAxNzoxOToyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZG9jczogZml4IHR5cG8gaW4gZWxlbWVudCBmYWN0b3J5IGRvY3VtZW50YXRpb24KCjIwMTEtMDgtMTYgMTc6MzI6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgYnVmZmVyOiByZW5hbWUgUFJFUk9MTCAtPiBMSVZFIGZsYWcKCSAgUmVuYW1lIHRoZSBHU1RfQlVGRkVSX0ZMQUdfUFJFUk9MTCB0byBHU1RfQlVGRkVSX0ZMQUdfTElWRSBhbmQgZ2l2ZSB0aGUgbmV3IGZsYWcKCSAgYSBtZWFuaW5nLiBUaGUgb2xkIFBSRVJPTEwgZmxhZyBuZXZlciBoYWQgYSBjbGVhciBtZWFuaW5nLgoKMjAxMS0wOC0xNSAyMTowNTozNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBmaXggY29tcGlsZXIgd2FybmluZyByZXBvcnRlZCBieSBJQ0MKCSAgVGhlIE1BWCBtYWNybyBleHBhbmRzIHRvIGNvZGUgdGhhdCBjaGVja3MgaWYgYW4gdW5zaWduZWQgaW50ZWdlciBpcyA8IDAuCgkgIEZpeGVzIHdhcm5pbmcgIzE4NjogcG9pbnRsZXNzIGNvbXBhcmlzb24gb2YgdW5zaWduZWQgaW50ZWdlciByZXBvcnRlZCBieSBJQ0MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTYyNjUKCjIwMTEtMDgtMTAgMTE6Mzk6MjMgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBleHBsaWNpdGx5IGNhc3QgdG8gdGhlIGVudW0gdHlwZQoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTYyNjUKCjIwMTEtMDgtMTAgMTE6MDc6NDkgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGdzdHN0YXRlOiBleHBsaWNpdGx5IGNhc3QgdG8gdGhlIGVudW0gdHlwZQoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTYyNjUKCjIwMTEtMDgtMDkgMjM6NDI6MjYgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogZXhwbGljaXRseSBjYXN0IHRvIHRoZSByaWdodCBlbnVtIHR5cGVzCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjI2NQoKMjAxMS0wOC0wOSAyMzozMzo0MyArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGVycm9yLmM6CgkgIGdzdGVycm9yOiBleHBsaWNpdGx5IGNhc3QgdG8gdGhlIHJpZ2h0IEdzdEdFcnJvciBjb2RlIGVudW0gdHlwZXMKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2MjY1CgoyMDExLTA4LTA5IDIzOjI2OjEzICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiB1c2UgR1NUX1NUQVRFX1ZPSURfUEVORElORyBmb3IgR3N0U3RhdGUgaW5zdGVhZCBvZiAwCgkgIEZpeGVzIGEgd2FybmluZyByZXBvcnRlZCBieSBJQ0MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTYyNjUKCjIwMTEtMDgtMDkgMjI6NDg6NTMgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IGRlZmluZSBHU1RfQ0FQU19GTEFHU19OT05FIGZvciBjb25zaXN0ZW5jeSB3aXRoIG90aGVyIGVudW1lcmF0aW9ucwoJICBVc2UgdGhlbSB0byBmaXggd2FybmluZ3Mgd2hlbiBidWlsZGluZyB3aXRoIElDQy4KCSAgQVBJOiBHU1RfQ0FQU19GTEFHU19OT05FCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTYyNjUKCjIwMTEtMDgtMDkgMjI6Mjk6NDQgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiB1c2UgR3N0RGVidWdMZXZlbCBlbnVtIHR5cGUgdG8gZml4IGEgd2FybmluZyBidWlsZGluZyB3aXRoIElDQwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2MjY1CgoyMDExLTA4LTE1IDE2OjQ1OjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG1ha2UgZml4YXRlIGNhcHMgYmVoYXZlIGxpa2Ugb3RoZXIgZnVuY3Rpb25zCgkgIEluc3RhbGwgYSBkZWZhdWx0IGZpeGF0ZSBjYXBzIGZ1bmN0aW9uIG9uIHBhZHMgbGlrZSBhbGwgdGhlIG90aGVyIHBhZCBmdW5jdGlvbnMuCgoyMDExLTA4LTE1IDE2OjQ1OjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZSBmb3IgbmV3IHN5bWJvbHMKCjIwMTEtMDgtMTUgMTQ6NDM6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA4LTE1IDE0OjQwOjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGNhcHM6IGFkZCBmaXhhdGUgZnVuY3Rpb24KCSAgQWRkIGEgZml4YXRlIGZ1bmN0aW9uIGFuZCB1c2UgaXQgaW4gZ3N0cGFkLmMKCjIwMTEtMDgtMTUgMTQ6MzI6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICBzdHJ1Y3R1cmU6IGFkZCBmdW5jdGlvbiB0byBmaXhhdGUKCSAgQWRkIGEgZnVuY3Rpb24gdG8gZml4YXRlIGEgc3RydWN0dXJlIGFuZCB1c2UgaXQgZm9yIHRoZSBkZWZhdWx0IGZpeGF0ZSBmdW5jdGlvbgoJICBpbiBnc3RwYWQuYy4KCjIwMTEtMDgtMTUgMTM6MTc6NDQgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIEZhcnNpZ2h0IGFuZCBOaWNlIHN1cHBvcnQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjU1NwoKMjAxMS0wOC0xNSAxNDoxNzozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggZGVmYXVsdCBhY2NlcHRjYXBzCgkgIE1ha2UgdGhlIGFjY2VwdGNhcHMgZnVuY3Rpb24gYmVoYXZlIGxpa2UgYWxsIHRoZSBvdGhlciBmdW5jdGlvbnMgd2l0aCBhIGRlZmF1bHQKCSAgaW1wbGVtZW50YXRpb24uIERvbid0IHRyeSB0byBjaGFpbiB1cCB0byB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiB3aGVuIGl0IHdhcwoJICBzZXQgdG8gTlVMTCBleHBsaWNpdGx5IGJ1dCByZXR1cm4gRkFMU0UgaW5zdGVhZC4KCSAgRml4IHNvbWUgZG9jcwoKMjAxMS0wOC0xNSAxMzoyNDoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGZpeCBzb21lIG1hY3JvcwoJICBSZW1vdmUgYSByYXRoZXIgdXNsZXNzIG1hY3JvIHRvIGNoZWNrIGlmIGEgcGFkIG1vZGUgaXMgYWN0aXZlIGFuZAoJICBhZGQgR1NUX1BBRF9JU19BQ1RJVkUoKS4KCjIwMTEtMDgtMTUgMTI6MTg6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiB1cGRhdGUgcG9ydGluZyBkb2MKCjIwMTEtMDgtMTUgMTI6MTY6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogcmVtb3ZlIGdzdF9wYWRfZ2V0X25lZ290aWF0ZWRfY2FwcygpCgkgIFJlbW92ZSBnc3RfcGFkX2dldF9uZWdvdGlhdGVkX2NhcHMoKSwgaXQgZG9lcyBub3QgcmVhbHkgZG8gd2hhdCBpdCBzYXlzLAoJICBnc3RfcGFkX2dldF9jdXJyZW50X2NhcHMoKSByZXR1cm5zIHRoZSBjdXJyZW50bHkgbmVnb3RpYXRlZCBjYXBzIG9uIHRoZSBwYWQKCSAgY29ycmVjdGx5LgoKMjAxMS0wOC0xMiAxOToyNzoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBkZWFkbG9jayBpbiBlcnJvciBwYXRoCgkgIERvbid0IGxvY2sgdGhlIHNhbWUgbG9jayB0d2ljZS4gU3BvdHRlZCBieSBKb3NlcCBUb3JyZSBWYWxsZXMuCgoyMDExLTA4LTEyIDEyOjQ1OjAxICswMzAwICBQZXRlcmlzIEtyaXNqYW5pcyA8cGVjaXNrQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogRml4IGdzdF9pdGVyYXRvcl9uZXh0KCkgZWxlbWVudCBhbm5vdGF0aW9uCgoyMDExLTA4LTExIDA5OjMxOjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgZG9jczogZml4IHR5cG8gaW4gUFdHCgkgIFJCRyAtPiBSR0IuIFNwb3R0ZWQgYnkgV2lsbCBUaG9tcHNvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjMyNgoKMjAxMS0wOC0xMSAxMDowOTo0MSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogcmVtb3ZlZCBub24tc2Vuc2UgY29tbWVudAoKMjAxMS0wOC0xMCAxNzowNzo1NCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0ZGVidWd1dGlscy5jCgkgIGdzdC9nc3RlbGVtZW50ZGV0YWlscy5oCgkgIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jCgkgIHRvb2xzL2dzdC1ydW4uYwoKMjAxMS0wOC0wOCAxOTozNjowNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnRkZXRhaWxzLmg6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeTogbW92ZSB1dGYtOCB2YWxpZGF0aW9uIHRvIHJlZ2lzdHJ5IHNhdmluZyB0aW1lCgkgIEluc3RlYWQgb2YgY2hlY2tpbmcgZm9yIHZhbGlkIHV0Zi04IGVsZW1lbnQtZGV0YWlscyBldmVyeSB0aW1lIHdlIGNyZWF0ZQoJICBlbGVtZW50cyAoZnJvbSBwbHVnaW4taW5pdCBvciByZWdpc3RyeSksIGRvIGl0IGJlZm9yZSB3ZSBzYXZlIHRoZSByZWdpc3RyeS4KCSAgRml4ZXMgIzY1NjE5My4KCjIwMTEtMDgtMTAgMTE6MDE6NTggKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBGaXggYW5kIGNsYXJpZnkgZGVidWcgc3RhdGVtZW50cwoJICBGaXhlcyBidWlsZCBvbiBNYWNPU1gKCSAgU2lnbmVkLW9mZi1ieTogRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoyMDExLTA4LTA1IDEwOjU5OjQyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZ3N0YnVmZmVyOiBDbGFyaWZ5IGRvYwoKMjAxMS0wOC0wNyAwOToxNDo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkgIGRvY3M6IGZpeCBoZWxsb3dvcmxkIGNvbXBpbGUgY29tbWFuZCBsaW5lIGZvciBuZXdlciBnY2MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjA5MgoKMjAxMS0wOC0wNiAxODoyMDo1MSArMDIwMCAgU2hhdW4gSG9vcGVzIDxob29wZXMwMUBzdHVkZW50LnV3YS5lZHUuYXU+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBpbXByb3ZlIGRvdCBmaWxlIGZsb3cgbGF5b3V0CgkgIEl0ZXJhdGUgc291cmNlLSBhbmQgc2luay1wYWRzIHNlcGFyYXRlbHkgdG8gZW5zdXJlIHRoYXQgdGhlIGdyYXBoIHJlZmxlY3RzIHRoZQoJICB1cHN0cmVhbS9kb3duc3RyZWFtIG9yZGVyLiBGaXhlcyAjNjQzMjY5CgoyMDExLTA4LTA2IDE0OjE3OjUwICswMjAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXMgKGF0KSBhcGVzdGFhcnQgKGRvdCkgb3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGdzdHJlYW1lci5zcGVjOiBtYWtlIGJ1aWxkYWJsZSBhbmQgcGFyYWxsZWwKCjIwMTEtMDgtMDUgMTI6MTI6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LXJ1bi5jOgoJICB0b29sczogbWFrZSB1bnZlcnNpb25lZCB3cmFwcGVyIGxvb2sgZm9yIC0wLjEwIHRvb2xzIG9ubHkKCSAgRG9uJ3Qgd2FudCAoaW5jb21wYXRpYmxlKSAwLjExIHRvb2xzIHRvIGJlIHBpY2tlZCB1cCBieSBhY2NpZGVudC4KCjIwMTEtMDgtMDQgMTg6MDA6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGJhc2VzcmM6IGFkZCBhbGxvYyB2bWV0aG9kCgkgIE1ha2UgYW4gYWxsb2Mgdm1ldGhvZCBzbyB0aGF0IHN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlIG9yIGNhbGwgdGhlIGRlZmF1bHQKCSAgaW1wbGVtZW50YXRpb24gd2hlbiB0aGV5IHdhbnQuCgoyMDExLTA4LTA0IDE3OjI2OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlIGRlZnMKCjIwMTEtMDgtMDQgMTc6MTI6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogY2xlYW51cHMgYW5kIG1hcmsgcmVjb25maWd1cmUKCSAgRG9uJ3QgYWJ1c2UgdGhlIHJlc3VsdCB2YXJpYWJsZS4KCSAgTWFyayB0aGUgc3JjcGFkIHdpdGggYSByZWNvbmZpZ3VyZSBzbyB0aGF0IG5lZ290aWF0aW9uIGhhcHBlbnMuCgoyMDExLTA4LTA0IDE3OjEyOjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIG1ldGhvZCB0byBtYXJrIHJlY29uZmlndXJlCgoyMDExLTA4LTA0IDE2OjU2OjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHJlbW92ZSBuZWdvdGlhdGlvbiBmcm9tIHRoZSBzdGF0ZSBjaGFuZ2UKCSAgUmVtb3ZlIHRoZSBuZWdvdGlhdGlvbiBmcm9tIHRoZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24sIGl0IGNhdXNlcyBkYXRhIHRyYW5zZmVyCgkgIGFuZCBidWZmZXJwb29sIG5lZ290aWF0aW9uLCB3aGljaCBpcyBub3Qgc3VwcG9zZWQgdG8gYmUgZG9uZS4gU2luY2Ugd2UgaGF2ZSB0aGUKCSAgcmVjb25maWd1cmUgc3RhdGUgb24gdGhlIHBhZCwgdGhlIGNyZWF0ZSBmdW5jdGlvbiB3aWxsIGRvIHRoZSBuZWdvdGlhdGlvbiBhcwoJICBzb29uIGFzIGl0IGdldHMgaW4gdGhlIHN0cmVhbWluZyB0aHJlYWQuCgoyMDExLTA4LTA0IDE2OjM0OjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBiYXNlc3JjOiBleHBvc2Ugc2V0X2NhcHMgbWV0aG9kCgkgIEV4cG9zZSBhIHByZXZpb3VzbHkgc3RhdGljIG1ldGhvZCBzbyB0aGF0IGN1c3RvbSBuZWdvdGlhdGUgaW1wbGVtZW50YXRpb24gY2FuCgkgIGNhbGwgaXQgYW5kIGRvIHRoZSByaWdodCB0aGluZy4KCjIwMTEtMDgtMDQgMTM6NDg6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogUEFVU0VEPC0+UExBWSBkb2Vzbid0IGNoYW5nZSBwb29sIHN0YXRlCgkgIERvbid0IGNoYW5nZSB0aGUgc3RhdGUgb2YgdGhlIGJ1ZmZlcnBvb2wgd2hlbiBnb2luZyBiZXR3ZWVuIFBBVVNFRCBhbmQgUExBWUlORywKCSAgaXQgd2lsbCBkZWFsbG9jIGFuZCByZWFsbG9jIGFsbCBidWZmZXJzLCB3aGljaCBpcyBjbGVhcmx5IHRvbyBpbnZhc2l2ZS4gV2Ugd2lsbAoJICBuZWVkIHRvIGFkZCBzb21lIG90aGVyIHdheSBvZiB1bmJsb2NraW5nIHRoZSBidWZmZXJwb29sLgoKMjAxMS0wOC0wNCAxMTowMDo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgZml4IGRlZmF1bHQgYWxpZ25tZW50CgkgIEEgMCBhbGlnbm1lbnQgaXMgdGhlIGRlZmF1bHQuCgoyMDExLTA4LTA0IDEwOjU0OjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBnc3RfYnVmZmVyX3Bvb2xfaXNfYWN0aXZlKCkKCjIwMTEtMDgtMDMgMTE6NTc6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgYmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMC4xMS4wID09PQoKMjAxMS0wOC0wMiAyMDo1NToyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJFTEVBU0UgMC4xMQoKMjAxMS0wOC0wMyAxMTowNDoxMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBwb3J0aW5nLXRvLTAuMTE6IEFkZCBzZWN0aW9uIGFib3V0IEdzdEl0ZXJhdG9yCgoyMDExLTA4LTAxIDE4OjEyOjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogZG9uJ3QgYWRkIHRoZSBzYW1lIG9wdGlvbiB0d2ljZQoJICBNYWtlIHN1cmUgdGhhdCB3ZSBvbmx5IGFkZCBhbiBvcHRpb24gdG8gdGhlIGFycmF5IG9uY2UuCgoyMDExLTA3LTMwIDE0OjA0OjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBtZXRob2QgdG8gY2hlY2sgZm9yIGFuIG9wdGlvbgoJICBBZGQgYSBtZXRob2QgdG8gY2hlY2sgaWYgYW4gb3B0aW9uIGlzIHN1cHBvcnRlZCBvbiB0aGUgYnVmZmVycG9vbC4KCjIwMTEtMDctMjkgMTc6MTA6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJwb29sOiBhZGQgb3B0aW9ucyBBUEkgdG8gYnVmZmVycG9vbAoJICBNYWtlIGl0IHBvc3NpYmxlIHRvIHF1ZXJ5IHRoZSBzdXBwb3J0ZWQgb3B0aW9ucyBvZiBhIGJ1ZmZlcnBvb2wgYW5kIGVuYWJsZQoJICBvcHRpb25zLiBUaGlzIGlzIGEgYml0IG1vcmUgZ2VuZXJpYyB0aGFuIHRoZSBBUEkgdG8gZW5hYmxlIG1ldGFkYXRhLiBUaGUgcHVycG9zZQoJICBpcyB0byBtYWtlIGl0IHBvc3NpYmxlIHRvIGFkZCBuZXcgY3VzdG9tIGNvbmZpZyBvcHRpb25zIHRvIHRoZSBjb25maWd1cmF0aW9uIG9mCgkgIHRoZSBidWZmZXJwb29sIHdoZW4gc3VwcG9ydGVkLgoKMjAxMS0wNy0yOCAxMjoxMTozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OiBkb24ndCB1c2UgR19DT05TVF9SRVRVUk4KCSAgSXQncyBiZWVuIGRlcHJlY2F0ZWQgaW4gbmV3ZXIgR0xpYiB2ZXJzaW9ucwoKMjAxMS0wNy0yOCAxMjowMTo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1wb3NpdGlvbi54bWw6CgkgIG1hbnVhbDogdXBkYXRlIGZvciBwb3NpdGlvbi9kdXJhdGlvbiBxdWVyeSBBUEkgY2hhbmdlCgoyMDExLTA3LTI3IDAwOjI4OjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvZXhhbXBsZXMvc3RlcHBpbmcvZnJhbWVzdGVwMS5jOgoJICB0ZXN0czogdXBkYXRlIGZvciBxdWVyeSBBUEkgY2hhbmdlcwoKMjAxMS0wNy0yNyAwMDoyODoxOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBwbHVnaW5zOiB1cGRhdGUgZm9yIHF1ZXJ5IEFQSSBjaGFuZ2VzCgoyMDExLTA3LTI3IDAwOjI2OjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2U6IHVwZGF0ZSBmb3IgcXVlcnkgQVBJIGNoYW5nZXMKCjIwMTEtMDctMjcgMDA6MTc6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZ3N0OiBmaXggYXdrd2FyZCBkZXN0X2Zvcm1hdCBpbm91dCBwYXJhbWV0ZXIgaW4gcXVlcnkgdXRpbGl0eSBmdW5jdGlvbnMKCSAgVGhlIGlkZWEgd2FzIG9yaWdpbmFsbHkgdGhhdCBpZiBvbmUgcGFzc2VkICZkZXN0X2ZtdCB3aXRoCgkgIGRlc3RfZm10PUdTVF9GT1JNQVRfREVGQVVMVCwgdGhlbiB0aGUgY29kZSBhbnN3ZXJpbmcgdGhlIHF1ZXJ5CgkgIGNvdWxkIGNoYW5nZSBkZXN0X2ZtdCB0byB0aGUgYWN0dWFsIGRlZmF1bHQgZm9ybWF0IHVzZWQuIEhvd2V2ZXIsCgkgIGluIG1vcmUgdGhhbiBoYWxmIGEgZGVjYWRlIG9mIEdTdHJlYW1lciAwLjEwIG5vIHBpZWNlIG9mIGNvZGUgaW4KCSAgR1N0cmVhbWVyIGhhcyBldmVyIHVzZWQgdGhhdCBmZWF0dXJlLCBub3IgYXJlIHRoZXJlIHRoYXQgbWFueQoJICB1c2VycyBvZiB0aGlzIEFQSSB0aGF0IGFjdHVhbGx5IGNoZWNrIHdoZXRoZXIgdGhlIGZvcm1hdCByZXR1cm5lZAoJICBpcyB0aGUgb3JpZ2luYWwgZm9ybWF0IHBhc3NlZCBiZWZvcmUgdXNpbmcgdGhlIHZhbHVlcyByZXR1cm5lZC4KCSAgQWxzbywgaXQncyBqdXN0IGFubm95aW5nLXRvLXVzZSBBUEkgaW4gaXRzIG93biByaWdodC4KCSAgRm9yIGFsbCB0aGVzZSByZWFzb25zLCBtYWtlIGl0IHNvIHRoYXQgdGhlIGRlc3RpbmF0aW9uIGZvcm1hdCBpcwoJICBwYXNzZWQgZGlyZWN0bHkgYW5kIGNhbid0IGJlIGNoYW5nZWQgYnkgdGhlIGVsZW1lbnQgcXVlcmllZC4KCjIwMTEtMDctMjcgMTI6NTA6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA3LTI3IDEyOjQ5OjQwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGFkZCBtb3JlIGNvbW1lbnRzCgoyMDExLTA3LTI3IDEyOjQ1OjE3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuczogYWxzbyBwYXNzIGFsbG9jYXRpb24gcXVlcnkgaW4gaW5fcGxhY2UKCSAgV2hlbiB3ZSBhcmUgZG9pbmcgYW4gaW5fcGxhY2UgdHJhbnNmb3JtLCBkb24ndCBkbyB0aGUgYWxsb2NhdGlvbiBxdWVyeSBidXQgbGV0CgkgIHRoZSB1cHN0cmVhbSBlbGVtZW50IGRlY2lkZS4KCjIwMTEtMDctMjYgMjI6NDE6NTkgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIGJhc2U6IGFkZCBtaXNzaW5nIChvdXQpIGFubm90YXRpb24gZm9yIGJ5dGUgcmVhZGVyL3dyaXRlciBmdW5jdGlvbnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NTM4MQoKMjAxMS0wNy0yNyAxMDowOToxMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IGZpeCBnLWkgYW5ub3RhdGlvbiBmb3IgX2NyZWF0ZSgpIGFuZCBfbWFrZSgpIHRvIGFsbG93IE5VTEwgb2JqZWN0IG5hbWVzCgoyMDExLTA3LTI2IDE4OjQ4OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGltcHJvdmUgdGhlIGdldGNhcHMgZnVuY3Rpb24KCSAgUmVmYWN0b3IgY2FsbGluZyB0aGUgR0VUQ0FQUyBmdW5jdGlvbiBhbmQgY2hlY2tzLgoJICBNb3ZlIHRoZSBmaWx0ZXIgY29kZSBpbiBvbmUgcGxhY2UuCgkgIFdoZW4gdXNpbmcgZml4ZWQgcGFkIGNhcHMsIGdldCB0aGUgY3VycmVudGx5IGNvbmZpZ3VyZWQgY2FwcyBhbmQgdGhlbiBmYWxsYmFjawoJICB0byB0aGUgR0VUQ0FQUyBmdW5jdGlvbi4gV2UgdXNlZCB0byBzaW1wbHkgaWdub3JlIHRoZSBHRVRDQVBTIGZ1bmN0aW9uLCB3aGljaAoJICByZXN1bHRlZCBpbiB0cmFuc2Zvcm0gZWxlbWVudHMgcmV0dXJuaW5nIHRoZSB0ZW1wbGF0ZSBjYXBzIGluc3RlYWQgb2YgZG9pbmcgdGhlCgkgIGNhcHMgdHJhbnNmb3JtLgoKMjAxMS0wNy0yNiAxNTo0Mzo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBvbmx5IHVwZGF0ZSBjYXBzIHdoZW4gY2hhbmdlZAoJICBPbmx5IGNhbGwgdGhlIGV2ZW50IGZ1bmN0aW9uIHdpdGggdGhlIGNhcHMgZXZlbnQgd2hlbiB0aGUgY2FwcyBjaGFuZ2VkLgoKMjAxMS0wNy0yNiAxNDozNzo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBhZGQgc29tZSBtb3JlIGRlYnVnIGluZm8KCjIwMTEtMDctMjYgMTI6MjE6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBiYXNlc2luazogbWFrZSBpdCBlYXN5IHRvIG92ZXJyaWRlIHRoZSBwYWQgcXVlcnkKCSAgQWRkIGEgdm1ldGhvZCB0byBoYW5kbGUgdGhlIHBhZCBxdWVyeS4KCSAgSW5zdGFsbCBhIGRlZmF1bHQgaGFuZGxlciBmb3IgdGhlIHBhZCBxdWVyeS4KCSAgQWRkIGEgdm1ldGhvZCB0byBzZXR1cCB0aGUgYWxsb2NhdGlvbiBwcm9wZXJ0aWVzLgoJICBVc2UgdGhlIG5ldyBxdWVyeSBmdW5jdGlvbiBpbiBmaWxlc2luawoKMjAxMS0wNy0yNiAxMjoyMDo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBiYXNlc3JjOiBpbXByb3ZlIGRvY3MKCjIwMTEtMDctMjYgMTI6MjA6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkIGFsbG9jYXRpb24gcXVlcnkganVzdCBiZWNhdXNlCgoyMDExLTA3LTI1IDE1OjIxOjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogaW1wcm92ZSBkZWJ1Z2dpbmcKCjIwMTEtMDctMjUgMTI6NTM6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIG1pbmlvYmplY3Q6IGF2b2lkIHJhY2UgaW4gYnVmZmVycG9vbCByZWxlYXNlCgkgIEF2b2lkIHBsYXlpbmcgd2l0aCB0aGUgcmVmY291bnQgdG8gZGVjaWRlIHdoZW4gYSBidWZmZXIgaGFzIGJlZW4gcmVjeWNsZWQgYnkgdGhlCgkgIGRpc3Bvc2UgZnVuY3Rpb24uIFRoZSBwcm9ibGVtIGlzIHRoYXQgd2UgdGhlbiB0ZW1wb3JhcmlseSBjYW4gaGF2ZSBhIGJ1ZmZlciB3aXRoCgkgIGEgcmVmY291bnQgPiAxIGJlaW5nIGFjcXVpcmVkIGZyb20gdGhlIHBvb2wsIHdoaWNoIGlzIG5vdCB3cml0YWJsZS4gSW5zdGVhZCB1c2UKCSAgYSBzaW1wbGUgYm9vbGVhbiByZXR1cm4gdmFsdWUgZnJvbSB0aGUgZGlzcG9zZSBmdW5jdGlvbiB0byBpbmZvcm0gdGhlIGNhbGxlZAoJICB0aGF0IHRoZSBvYmplY3Qgd2FzIHJlY3ljbGVkIG9yIG5vdC4KCjIwMTEtMDctMjUgMTI6NDk6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogdXNlIERFQlVHIGluc3RlYWQgb2YgRVJST1IgZm9yIGxvZ2dpbmcKCSAgRG9uJ3QgdXNlIHRoZSBFUlJPUiBsb2cgY2F0ZWdvcnkgYmVjYXVzZSB0aGUgYWxsb2NhdGlvbiBmYWlsdXJlIG1pZ2ggb25seSBiZQoJICBiYWNhdXNlIG9mIGEgc3RhdGUgY2hhbmdlLgoKMjAxMS0wNy0yNSAxMjoxNDoxNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IHN0YXJ0IHdpdGggcmFpc2VkIGNvbnRyb2wgc29ja2V0CgkgIEluIHRoZSBpbmFjdGl2ZSBzdGF0ZSwgdGhlIGNvbnRyb2wgc29ja2V0IHNob3VsZCBiZSBpbiB0aGUgcmFpc2VkIHN0YXRlLCB3ZSB3aWxsCgkgIHJlbGVhc2UgaXQgd2hlbiB3ZSBzdGFydC4KCjIwMTEtMDctMjQgMTE6MjQ6NDQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWNsb2NrLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctY2hhaW5mbi54bWw6CgkgIHB3ZDogZGlzY29udGlub3VzIGV2ZW50IC0+IG5ld3NlZ21lbnQgZXZlbnQKCSAgRml4IGEgMC44IGxlZnRvdmVyIGFzIG1lbnRpb25lZCBvbiBidWcgIzYyMTEyMS4KCjIwMTEtMDctMjQgMDk6MDU6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICB0YWxrIGFib3V0IHRoZSBiYXNldHJhbnNmb3JtIHNpbmtfZXZlbnQgdm1ldGhvZAoKMjAxMS0wNy0yMyAwODowMDowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXJwcml2YXRlLmg6CgkgIGNvbnRyb2xsZXI6IGZpeCBidWlsZCBmYWlsdXJlIGR1ZSB0byBjb21waWxlciB3YXJuaW5nCgkgIFByZXN1bWFibHkgd2l0aCBuZXdlciBHTGliIHZlcnNpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTUxNTUKCjIwMTEtMDctMjIgMjE6MTc6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgYmFzZXRyYW5zZm9ybTogZml4IHNpbmsgZXZlbnQgaGFuZGxpbmcKCSAgSW1wbGVtZW50IHRoZSBzaW5rIGV2ZW50IGhhbmRsaW5nIGxpa2UgdGhlIHNyYyBldmVudCBoYW5kbGVyLiBNYWtlIHRoZSBkZWZhdWx0CgkgIGltcGxlbWVudGF0aW9uIHBhcnNlIGFuZCBmb3J3YXJkIHRoZSBldmVudC4gVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0byBhY3R1YWxseQoJICByZXR1cm4gYW4gZXJyb3IgdmFsdWUgZnJvbSB0aGUgZXZlbnQgaGFuZGxlci4KCjIwMTEtMDctMjIgMTk6MTk6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogaGFuZGxlIGZhaWx1cmVzCgkgIEhhbmRsZSBmYWlsdXJlIHRvIGFjdGl2YXRlIHRoZSBidWZmZXJwb29sLgoKMjAxMS0wNy0yMiAxOToxMTo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnM6IGltcHJvdmUgZGVidWdnaW5nLgoKMjAxMS0wNy0yMSAxODo1MDoyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IGFkZCByZXNldF9idWZmZXIgdm1ldGhvZAoJICBBZGQgYSB2bWV0aG9kIHRvIHJlc2V0IGEgYnVmZmVyIHRvIGl0cyBvcmlnaW5hbCBzdGF0ZS4gQWRkIGEgZGVmYXVsdAoJICBpbXBsZW1lbnRhdGlvbiB0aGF0IHJlc2V0cyB0aGUgZmxhZ3MsIHRpbWVzdGFtcHMgYW5kIG9mZnNldHMuCgkgIEFkZCBzb21lIG1vcmUgZG9jcy4KCjIwMTEtMDctMjEgMTc6NDI6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGJhc2V0cmFuczogUmVtb3ZlIHJlZiBpbiBwYXNzdGhyb3VnaAoJICBSZW1vdmUgdGhlIHJlcXVpcmVtZW50IHRvIGhhdmUgdG8gcmV0dXJuIGEgcmVmIHRvIHRoZSBpbnB1dCBidWZmZXIgd2hlbiBpbgoJICBwYXNzdGhyb3VnaCBtb2RlLiBUaGlzIHNhdmVzIGEgZmV3IHJlZi91bnJlZiBjeWNsZXMgYW5kIGZpeGVzIGFub3RoZXIgMC4xMQoJICBGSVhNRS4KCjIwMTEtMDctMjEgMTc6Mjk6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IG1ha2UgbmV3ICBjb3B5X21ldGFkYXRhIHZtZXRob2QKCSAgTWFrZSBhIG5ldyBjb3B5X21ldGFkYXRhIHZtZXRob2QgYW5kIG1vdmUgdGhlIGNvZGUgdG8gY29weSB0aGUgdGltZXN0YW1wcywgZmxhZ3MKCSAgYW5kIG9mZnNldHMgaW50byBhIGRlZmF1bHQgaW1wbGVtZW50YXRpb24uIFRoaXMgd2lsbCBhbGxvdyB1cyB0byBnaXZlIHRoZQoJICBzdWJjbGFzc2VzIGEgY2hhbmNlIHRvIG92ZXJyaWRlIHRoZSBjb3B5IG1ldGhvZC4KCjIwMTEtMDctMjEgMTY6NDk6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmMKCjIwMTEtMDctMjEgMTY6Mzk6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zOiBhdm9pZCBpbnRlcm1lZGlhdGUgbWV0aG9kCgkgIFNpbXBseSBjYWxsIHRoZSBwcmVwYXJlX291dHB1dF9idWZmZXIgbWV0aG9kIGluc3RlYWQgb2YgY2FsbGluZyBhbiBpbnRlcm1lZGlhdGUKCSAgZnVuY3Rpb24uCgoyMDExLTA3LTIxIDE2OjMwOjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IG1vdmUgdGhlIG1ldGFkYXRhIGNvcHkgY29kZQoJICBNb3ZlIHRoZSBtZXRhZGF0YSBjb3B5IGNvZGUgdG8gdGhlIGRlZmF1bHQgcHJlcGFyZV9vdXRwdXRfYnVmZmVyIGltcGxlbWVudGF0aW9uLgoKMjAxMS0wNy0yMSAxNTo0OTowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBtb3ZlIHByZXBhcmVfb3V0cHV0X2J1ZmZlciBjb2RlCgkgIE1vdmUgdGhlIGNvZGUgZm9yIHByZXBhcmVfb3V0cHV0X2J1ZmZlciB0byBhIGRlZmF1bHQgaW1wbGVtZW50YXRpb24uIHRoaXMgYWxsb3dzCgkgIHVzIHRvIHNpbXBsaWZ5IHNvbWUgdGhpbmdzIGFuZCBoYXZlIHN1YmNsYXNzZXMgY2FsbCBpbnRvIHRoZSBkZWZhdWx0CgkgIGltcGxlbWVudGF0aW9uIHdoZW4gbmVlZGVkLgoKMjAxMS0wNy0yMSAxNTo0ODoyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBvbmx5IGdldCBzaXplIGZvciBkZWJ1ZwoKMjAxMS0wNy0yMSAxNDoxODozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnM6IGZpeCBjb21tZW50IGFuZCB3YXJuCgkgIEVtaXQgYSB3YXJuaW5nIGluIHRoZSBkZWJ1ZyBsb2cgd2hlbiBzb21ldGhpbmcgc2VlbXMgd2VpcmQuCgoyMDExLTA3LTIxIDE0OjE0OjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IG9ubHkgZ2V0IGNhcHMgZm9yIHNpemUgdHJhbnNmb3JtCgkgIERlbGF5IGdldHRpbmcgdGhlIGNhcHMgdW50aWwgd2UgbmVlZCB0byBjYWxsIHRoZSB0cmFuc2Zvcm1fc2l6ZSBmdW5jdGlvbi4KCjIwMTEtMDctMjEgMTM6NTY6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGJhc2V0cmFuczogcmVtb3ZlIHVzZWxlc3MgdmFyaWFibGVzIGZyb20gcHJlcGFyZV9vdXRwdXRfYnVmZmVyCgkgIFJlbW92ZSB0aGUgY2FwcyBhbmQgc2l6ZSBmcm9tIHRoZSBwcmVwYXJlX291dHB1dF9idWZmZXIgZnVuY3Rpb24uIHdpdGgKCSAgYnVmZmVycG9vbHMgYW5kIGNhcHNuZWdvIGRvbmUgZGlmZmVyZW50bHksIHdlIGRvbid0IG5lZWQgdGhpcyBpbiBtb3N0IGNhc2VzIGFuZAoJICBpZiB3ZSBkbywgd2UgY2FuIHNpbXBseSB1c2UgdGhlIHRyYW5zZm9ybV9zaXplIGZ1bmN0aW9uIGFuZCBnZXQgdGhlIGNhcHMgZnJvbQoJICB0aGUgc3JjcGFkLgoKMjAxMS0wNy0xOCAxNzoyMjo0MSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtY2xvY2tzLnhtbDoKCSAgZG9jczogY2xhcmlmeSBjbG9ja3MgZG9jcyBpbiBtYW51YWwKCSAgQWZ0ZXIgYSBxdWVzdGlvbiBvbiB0aGUgbWFpbGluZyBsaXN0LCBtZW50aW9uIHRoYXQgKmZsdXNoaW5nKiBzZWVrcyByZXNldCB0aGUKCSAgcnVubmluZyB0aW1lLgoKMjAxMS0wNy0xNiAyMjowMDoxNSArMDMwMCAgUmFsdWNhIEVsZW5hIFBvZGl1YyA8cmFsdWNhZWxlbmExOTg1QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBkb2NzOiByZW1vdmVkIGRvdWJsZSBuZWdhdGlvbiBpbiBldmVudC9tZXNzYWdlIHNlcSBudW0gZGVzY3JpcHRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NDc1MQoKMjAxMS0wNy0xNiAxMjoyMToxMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkgIHRlc3RzOiBtYWtlIHN1cmUgbm9uLUFTQ0lJIGNoYXJzIGluIGZpbGVuYW1lcyBhcmUgZXNjYXBlZCB3aGVuIGNyZWF0aW5nIFVSSXMgZnJvbSB0aGVtCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTQ2NzMKCjIwMTEtMDctMTUgMTY6MDQ6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZG9uJ3QgYWNjaWRlbnRhbGx5IGRpc2FibGUgdGhlIHBvb2wKCSAgV2hlbiB3ZSBzZXQgYSBwb29sIGFuZCBpdCBpcyB0aGUgc2FtZSBhcyB0aGUgb2xkIHBvb2wsIGRvbid0IGRpc2FibGUgdGhlIHBvb2wuCgoyMDExLTA3LTE1IDEzOjI3OjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogY2FsbCByZWxlYXNlX2J1ZmZlciBhZnRlciBhbGxvYwoJICBBZnRlciB3ZSBhbGxvY2F0ZWQgYSBuZXcgYnVmZmVyLCBjYWxsIHRoZSByZWxlYXNlX2J1ZmZlciB2bWV0aG9kIHRvIHB1dCB0aGUgbmV3CgkgIGJ1ZmZlciBpbiB0aGUgcG9vbCBpbnN0ZWFkIG9mIGFzc3VtaW5nIHRoYXQgdGhlIHBvb2wgdXNlcyB0aGUgZGVmYXVsdAoJICByZWxlYXNlX21ldGhvZCBpbXBsZW1lbnRhdGlvbi4KCjIwMTEtMDctMTUgMTE6NTI6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiBhZGQgbWFjcm8gdG8gY2hlY2sgZm9yIGZsdXNoaW5nCgoyMDExLTA3LTE1IDExOjUxOjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGltcHJvdmUgZGVidWcgbWVzc2FnZQoKMjAxMS0wNy0xNCAxMjo0NTozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBwcmludGYgZm9ybWF0IGluIGRlYnVnIG1lc3NhZ2UKCjIwMTEtMDctMTMgMTE6Mzk6MTUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogdW5zZXQgUExBWUlORyB0cmFuc2l0aW9uIGZsYWcgd2hlbiB0cmFuc2l0aW9uIGNvbXBsZXRlZAoKMjAxMS0wNy0xMiAxNDowNzo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBmaXggcmVzaXplIGZ1bmN0aW9uIHNvbWUgbW9yZQoJICBEb24ndCByZW1vdmUgbWVtb3J5IGJsb2NrcyBmcm9tIHRoZSBidWZmZXIgd2hlbiB3ZSBjbGlwIGFuZCByZXNpemUsIGluc3RlYWQgc2V0CgkgIHRoZSBtZW1vcnkgb2Zmc2V0IGFuZCBzaXplIHRvIDAuIFRoaXMgYWxsb3dzIHVzIHRvIG1ha2UgdGhlIGJ1ZmZlciBsYXJnZXIgYWdhaW4KCSAgbGF0ZXIuCgoyMDExLTA3LTEyIDEzOjQwOjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogaW1wcm92ZSBzaXplIGhhbmRsaW5nCgkgIEFsc28gaGFuZGxlIHRoZSBjYXNlIHdoZXJlIG11bHRpcGxlIGVtcHR5IG1lbW9yeSBibG9ja3MgYXJlIGluIHRoZSBidWZmZXIuCgkgIEFkZCB1bml0IHRlc3QgZm9yIHRoaXMuCgoyMDExLTA3LTEyIDEyOjAwOjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZml4IF9yZXNpemUgc29tZSBtb3JlCgkgIEFkZCBtb3JlIGRlYnVnLgoJICBBbG93IHJlc2l6ZSB0byAwIGJ5dGVzLgoJICBEbyBjbGlwcGluZyBjb3JyZWN0bHkuCgkgIEFkZCBtb3JlIHVuaXQgdGVzdHMuIEFsc28gYWRkIGEgZmFpbGluZyB0ZXN0OiB3aGVuIHdlIHJlc2l6ZSB0byAwIGFuZCB0aGVuCgkgIHRyeSB0byByZXNpemUgYmFjayB0byB0aGUgb3JpZ2luYWwgc2l6ZSBpdCBmYWlscyBiZWNhdXNlIHRoZSBtZW1vcnkgd2FzCgkgIHJlbW92ZWQuCgoyMDExLTA3LTExIDE4OjAwOjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGZpeCBuZWdhdGl2ZSBvZmZzZXRzIHNvbWUgbW9yZQoJICBBbGxvdyBmb3IgbmVnYXRpdmUgb2Zmc2V0cyB3aGVuIGRvaW5nIG1lbW9yeSBjb3B5IGFuZCBzaGFyZS4KCSAgQWRkIGZhc3QgcGF0aCBpbiB0aGUgX2dldF9zaXplcygpIGZ1bmN0aW9uLgoJICBGaXggcmVzaXplIGZvciBuZWdhdGl2ZSBvZmZzZXQgYW5kIGV4cGFuZGluZyB0aGUgYnVmZmVyLgoJICBBZGQgc29tZSB1bml0IHRlc3RzLgoKMjAxMS0wNy0xMSAxNjo0MzozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiBhZGQgZGVmcyBmb3IgbmV3IG1ldGhvZHMKCjIwMTEtMDctMTEgMTY6NDI6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZml4IF9yZXNpemUgYmV0dGVyCgoyMDExLTA3LTExIDE2OjE3OjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBhZGQgYXBpIHRvIGdldCB0aGUgY3VycmVudCBtZW1vcnkgb2Zmc2V0CgkgIEFsc28gcmV0dXJuIHRoZSBvZmZzZXQgaW4gYSBHc3RNZW1vcnkgYmxvY2sgd2l0aCB0aGUgZ2V0X3NpemVzKCkgbWV0aG9kLiBUaGlzCgkgIGFsbG93cyB1cyB0byBmaWd1cmUgb3V0IGhvdyBtdWNoIHByZWZpeCB0aGVyZSBpcyB1bnVzZWQuCgkgIENoYW5nZSB0aGUgcmVzaXplIGZ1bmN0aW9uIHNvIHRoYXQgYSBuZWdhdGl2ZSBvZmZzZXQgY2FuIGJlIGdpdmVuLiBUaGlzIHdvdWxkCgkgIG1ha2UgaXQgcG9zc2libGUgdG8gcmVzaXplIHRoZSBidWZmZXIgc28gdGhhdCB0aGUgcHJlZml4IGJlY29tZXMgYXZhaWxhYmxlLgoJICBBZGQgZ3N0X2J1ZmZlcl9nZXRfc2l6ZXMoKSB0byByZXR1cm4gdGhlIG9mZnNldCBhbmQgbWF4c2l6ZSBhcyB3ZWxsIGFzIHRoZSBzaXplLgoJICBBbHNvIGNoYW5nZSB0aGUgYnVmZmVyIHJlc2l6ZSBtZXRob2Qgc28gdGhhdCB3ZSBjYW4gc3BlY2lmeSBhIG5lZ2F0aXZlIG9mZnNldAoJICB0byByZW1vdmUgcHJlZml4IGJ5dGVzLgoKMjAxMS0wNy0xMSAxNDo0MDowNyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBhZGQgc29tZSBtZW1vcnkgd3JhcHBlZCBidWZmZXIgYWxsb2NhdGlvbiBoZWxwZXJzCgoyMDExLTA3LTExIDEyOjExOjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgbWluaW9iamVjdDogY2xlYW51cCBoZWFkZXJzCgoyMDExLTA3LTExIDExOjQwOjA4ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZWF0IGluY29taW5nIGNhcHMgZXZlbnQKCSAgLi4uIGFzIGl0IGlzIHR5cGljYWxseSB1cCB0byBiYXNlY2xhc3MgdG8gc2V0IHByb3BlciBzcmMgY2Fwcy4KCjIwMTEtMDctMTEgMTE6Mzc6MjggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGF2b2lkIGluYWR2ZXJ0ZW50bHkgZHJvcHBpbmcgYW4gZXZlbnQKCSAgLi4uIHBhcnRpY3VsYXJseSBhIG5vbi1zdGlja3kgc2VyaWFsaXplZCBldmVudCB0aGF0IGhhcHBlbnMgdG8gcGFzcwoJICB3aGVuIGFuIGV2ZW50IHVwZGF0ZSBpcyBwZW5kaW5nLgoKMjAxMS0wNy0wNCAxMjo1ODo1NCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB0cnkgaGFyZGVyIHRvIGFycmFuZ2UgaW5jcmVhc2luZyBwb3NpdGlvbiByZXBvcnRpbmcKCSAgLi4uIHJhdGhlciB0aGFuIGhhdmluZyBhIG1vbWVudGFyeSBkZWNyZWFzaW5nIG9uZSB3aGlsZSB0cmFuc2l0aW9uaW5nCgkgIHRvIFBMQVlJTkcuCgkgIEZpeGVzICM2MjgwMjEuCgoyMDExLTA3LTA4IDE2OjA3OjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogYWRkIG5ldyBBUEkgdG8gLmRlZiBmaWxlCgoyMDExLTA3LTA2IDE1OjEzOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IG1ha2UgaWR4IGFyZ3VtZW50IHRvIGdzdF9idWZmZXJfdGFrZV9tZW1vcnkoKSBzaWduZWQKCSAgU2luY2UgLTEgaXMgYWNjZXB0YWJsZSwgaXQgc2hvdWxkIGJlIHNpZ25lZC4KCjIwMTEtMDctMDcgMTQ6NTc6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggaW52YWxpZCBtZW1vcnkgYWNjZXNzIGluIGRlYnVnIG1lc3NhZ2VzCgkgIERvbid0IHVzZSBidWZmZXJzIHRoYXQgd2UndmUgZ2l2ZW4gYXdheSBvciB1bnJlZmVkIGluIGRlYnVnIG1lc3NhZ2VzLgoKMjAxMS0wNy0wNyAxMToxNDozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBmaXggYWZ0ZXIgbWVyZ2UKCjIwMTEtMDctMDcgMTE6MTM6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmMKCjIwMTEtMDctMDYgMTY6MDg6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBhZGQgbWVtc2V0IGZ1bmN0aW9uCgoyMDExLTA3LTA2IDEyOjA5OjI4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBmaXggZ3VhcmRzIGZvciBnc3RfYnVmZmVyX3Rha2VfbWVtb3J5KCkKCSAgU2luY2UgaWR4ID0gLTEgbWFrZXMgaXQgZGVmYXVsdCB0byBpZHg9bGVuLCBsZW4gaXMgYWxzbwoJICBhIHZhbGlkIGlucHV0IGlkeC4KCjIwMTEtMDctMDUgMTY6Mzg6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogYWRkIGNsYXNzIHJlZi91bnJlZgoKMjAxMS0wNy0wNSAxNjozMjo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJICB0ZXN0OiBkaXNhYmxlIGZhaWxpbmcgdW5pdCB0ZXN0cwoJICBEaXNhYmxlIHVuaXQgdGVzdHMgdGhhdCBhcmUgZmFpbGluZyB1bnRpbCBzb21lb25lIHBvcnRzIHRoaXMgdG8gMC4xMQoKMjAxMS0wNy0wNSAxNjoyMDowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgcXVldWU6IGZpeCB1bml0IHRlc3QKCSAgU2V0IHRoZSByaWdodCBwb3NpdGlvbiBtZW1iZXIgaW4gdGhlIHNlZ21lbnQgZXZlbnQuCgkgIEFkZCBzb21lIGRlYnVnIHRvIHF1ZXVlLgoKMjAxMS0wNy0wNSAwMDoxMDoyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGdzdDogbWFrZSBjb21waWxlciB3YXJuIGFib3V0IHVuc3RhYmxlIEFQSSBpZiBHU1RfVVNFX1VOU1RBQkxFX0FQSSBpcyBub3QgZGVmaW5lZAoJICBBbmQgZGVmaW5lIGl0IGluIG91ciBvd24gYnVpbGQuCgoyMDExLTA3LTA1IDAwOjEyOjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIC5kZWYgZmlsZXMgZm9yIGxhdGVzdCBBUEkgY2hhbmdlcy9hZGRpdGlvbnMKCjIwMTEtMDYtMzAgMTc6Mzk6MzcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGRvIG5vdCBzbmVha2lseSBtZXNzIHdpdGggY3VycmVudCBvZmZzZXQgd2hlbiB1cGRhdGluZyBsZW5ndGgKCjIwMTEtMDYtMjggMjI6MTg6NDYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHVucmVmIGFsbG9jYXRpb24gcXVlcnkgd2hlbiBubyBsb25nZXIgbmVlZGVkCgoyMDExLTA2LTI4IDE5OjAxOjU3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBhdm9pZCBpdGVyYXRpbmcgb3ZlciBhIHNpbmdsZSBOVUxMIHBhZAoKMjAxMS0wNi0yMCAyMzoyODowNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0aW50ZXJmYWNlLmM6CgkqIGdzdC9nc3RpbnRlcmZhY2UuaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW50ZXJmYWNlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfYXJtLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaHBwYS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGMzMi5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzY0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3Rfc3BhcmMuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSAgUmVtb3ZlIEdzdEltcGxlbWVudHNJbnRlcmZhY2UKCSAgSXQgd2FzIGEgYml0IHRvbyBjbGV2ZXIsIGFuZCBkaWRuJ3QgcmVhbGx5IHdvcmsgYXMgYW4gQVBJLAoJICBjb25mdXNpbmcgcGVvcGxlIHRvIG5vIGVuZC4gQmV0dGVyIGltcGxlbWVudCBzcGVjaWZpYyBtZXRob2RzCgkgIHdoZXRoZXIgYW4gaW50ZXJmYWNlIGlzIHVzYWJsZS9hdmFpbGFibGUvcmVhZHkgb24gdGhlIGludGVyZmFjZQoJICBpdHNlbGYsIG9yIGV2ZW4gYWRkIEdFcnJvciBhcmd1bWVudHMsIHJhdGhlciB0aGFuIHRyeSB0byBoYXZlCgkgIHBlci1pbnN0YW5jZSBpbnRlcmZhY2VzLgoKMjAxMS0wNi0yNSAxMzo1MTo1MiAtMDcwMCAgRW1tYW51ZWwgUGFjYXVkIDxlbW1hbnVlbC5wYWNhdWRAbGFwcC5pbjJwMy5mcj4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IENoZWNrIGZvciBQUl9TRVRfTkFNRSBiZWZvcmUgdXNpbmcKCSAgRml4ZXM6ICM2NTMxNzIuCgkgIFNpZ25lZC1vZmYtYnk6IERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKMjAxMS0wNi0yMyAxMToyNzo1MiAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDY5Yjk4MWYgdG8gNjA1Y2Q5YQoKMjAxMS0wNi0yMyAxODowMzoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IGFkZCBtZXRob2QgdG8gY2hlY2sgZm9yIG1ldGFkYXRhCgkgIEFkZCBhIG1ldGhvZCB0byBjaGVjayBpZiBhIGNlcnRhaW4gbWV0YWRhdGEgaXMgc3VwcG9ydGVkIGluIHRoZSBBTExPQ0FUSU9OCgkgIHF1ZXJ5LgoKMjAxMS0wNi0yMiAxODowNzoxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWV0YS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBkZXNpZ24gZG9jcyBhIGxpdHRsZQoJICBVcGRhdGUgdGhlIGRlc2lnbiBkb2Mgd2l0aCB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgdmlkZW9tZXRhZGF0YS4KCjIwMTEtMDYtMjIgMTc6MTI6MzQgKzAyMDAgIEtvb3AgTWFzdCA8a3dtIGF0IEZyZWVCU0Qub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiB1c2UgJiBpbnN0ZWFkIG9mICYmIGZvciBtYXNraW5nIGJpdHMKCSAgU2VlICM2NTMxMzcKCjIwMTEtMDYtMjIgMTc6MDk6NTIgKzAyMDAgIEtvb3AgTWFzdCA8a3dtIGF0IEZyZWVCU0Qub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHJlbW92ZSByZWR1bmRhbnQgKCkKCSAgU2VlICM2NTMxMzcKCjIwMTEtMDYtMjIgMTc6MDU6MjcgKzAyMDAgIEtvb3AgTWFzdCA8a3dtIGF0IEZyZWVCU0Qub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggc2Vla3N0b3AKCSAgU2VlICM2NTMxMzcKCjIwMTEtMDYtMjIgMTY6NTg6NTMgKzAyMDAgIEtvb3AgTWFzdCA8a3dtIGF0IEZyZWVCU0Qub3JnPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogY2FzdCB0byByaWdodCB0eXBlCgkgIFNlZSAjNjUzMTM3CgoyMDExLTA2LTIyIDE2OjM4OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIHVyaTogcmVtb3ZlIHNvbWUgX2Z1bGwgdmFyaWFudHMKCjIwMTEtMDYtMjIgMTY6MTY6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICB0YWdzOiBSZW1vdmUgY3JhenkgdGFnIG1lc3NhZ2VzCgkgIERvbid0IG1peCBtZXNzYWdlcyBhbmQgcGFkcyBhbmQgdGFncy4KCSAgTWFrZSB0aGUgc2luayBwb3N0IHRhZyBtZXNzYWdlcyB3aGVuIGEgdGFnIGV2ZW50IGlzIHJlY2VpdmVkLgoJICBTaW5jZSB0YWdzIGFyZSBzdGlja3kgb24gcGFkcyBub3csIHRoZXkgY2FuIGJlIHJldHJpZXZlZCBmcm9tIHRoZXJlCgkgIHdoZW4gbmVlZGVkLgoKMjAxMS0wNi0yMiAxMjoyODoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBjYXBzOiBIaWRlIGltcGxlbWVudGF0aW9uIGRldGFpbHMKCSAgTWFrZSB0aGUgQXJyYXkgb2Ygc3RydWN0dXJlcyBwcml2YXRlLiBUaGlzIHNob3VsZCBhbGxvdyB1cyB0byBpbXBsZW1lbnQKCSAgdGhlIGFycmF5IG1vcmUgZWZmaWNpZW50bHkgb3Igd2l0aCBzb21lIHByZWFsbG9jYXRlZCBzdHJ1Y3R1cmVzIHdoZW4KCSAgd2Ugd2FudCB0byBsYXRlci4KCSAgQWRkIGEgbmV3IG1ldGhvZCB0byBjbGVhbiB1cCBhIHN0YXRpYyBzdHJ1Y3R1cmUgc28gdGhhdCB3ZSBjYW4gcmVtb3ZlIHNvbWUgY29kZQoJICB0aGF0IHBva2VzIGludG8gdGhlIHByaXZhdGUgYml0cyBvZiB0aGUgY2Fwcy4KCjIwMTEtMDYtMjIgMTI6MjY6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgZG9jczogdXBkYXRlIG5lZ290aWF0aW9uIGRlc2lnbiBkb2MKCjIwMTEtMDYtMjIgMTE6NDI6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgbWVtb3J5OiByZW5hbWUgR3N0TWVtb3J5QWxsb2NhdG9yIC0+IEdzdEFsbG9jYXRvcgoJICBzaW1wbGlmeSB0aGUgbmFtZSBvZiB0aGUgYWxsb2NhdG9yIG9iamVjdC4KCjIwMTEtMDYtMjEgMTc6NTQ6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgY29uZmlndXJlLmFjCgkgIHdpbjMyL2NvbW1vbi9jb25maWcuaAoJICB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oCgoyMDExLTA2LTIxIDE3OjQ3OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJwb29sLnR4dDoKCSAgZG9jczogdXBkYXRlIGJ1ZmZlcnBvb2wgZGVzaWduIGRvYwoKMjAxMS0wNi0yMSAxNzo0NzoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBpbXByb3ZlIGRlYnVnZ2luZwoKMjAxMS0wNi0yMSAxNToxNTo0NCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9tYW51YWwvY29tbXVuaWNhdGlvbi5wbmc6CgkgIGltYWdlczogc3RyaXAgaW1hZ2VzIG9mIGV4dHJhIHRleHQgdGFncwoKMjAxMS0wNi0yMSAxMjozMjo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IHJldHVybiBlbXB0eSBtZXRhZGF0YSBhcnJheQoJICBSZXR1cm4gYSBzdHJpbmcgYXJyYXkgd2l0aCBOVUxMIGluc3RlYWQgb2YgTlVMTCBmcm9tIHRoZSBkZWZhdWx0IGdldF9tZXRhcwoJICBmdW5jdGlvbi4KCjIwMTEtMDYtMjEgMTI6MzE6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogdXNlIGV2ZW50IGZ1bmN0aW9uIGRpcmVjdGx5CgkgIFdlIHdpbGwgbmV2ZXIgZ28gaW4gdGhpcyBjb2RlIHBhdGggZm9yIENBUFMgZXZlbnRzIHNvIGRpcmVjdGx5IGNhbGwgdGhlIGV2ZW50CgkgIGZ1bmN0aW9uLgoKMjAxMS0wNi0yMSAxMDoyOTo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBub3RpZnkgY2FwcyBhZnRlciB3ZSBzdG9yZSB0aGUgbmV3IGNhcHMKCSAgbm90aWZ5IGNhcHMgYWZ0ZXIgd2Ugc3RvcmUgdGhlIG5ldyBjYXBzIHNvIHRoYXQgdGhlIG5ldyBjYXBzIGFyZSBhY3R1YWxseQoJICB2aXNpYmxlIGZvciB0aGUgYXBwLgoKMjAxMS0wNi0yMCAxNzozMjo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBhY3RpdmF0ZSB0aGUgYnVmZmVycG9vbAoJICBhbHdheXMgYWN0aXZhdGUgdGhlIGJ1ZmZlcnBvb2wsIGV2ZW4gaWYgd2UgZ2V0IGl0IGZyb20gdGhlIGFsbG9jYXRpb24KCSAgcXVlcnkuCgoyMDExLTA2LTIwIDE3OjMyOjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGFsd2F5cyBhY3RpdmF0ZSB0aGUgcG9vbCB3ZSBnZXQKCSAgQWN0aXZhdGUgdGhlIHBvb2wgd2hlbiB3ZSBnZXQgaXQgZnJvbSB0aGUgYWxsb2NhdGlvbiBxdWVyeS4KCjIwMTEtMDYtMjAgMTY6NDc6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IGlucHJvdmUgYWxsb2NhdGlvbiBoYW5kbGluZwoJICBBZGQgdm1ldGhvZCBmb3Igc3ViY2xhc3NlcyB0byBpbmZsdWVuY2UgdGhlIHBvb2wgYW5kIGFsbG9jYXRvci4KCSAgTG9nIHdoZW4gcXVlcnkgZmFpbHMuCgkgIFJlc3BlY3QgbmVnb3RpYXRlZCBhbGxvY2F0b3IgYW5kIGFsaWdubWVudC4KCjIwMTEtMDYtMjAgMTY6NDY6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogSW1wcm92ZSBsb2dnaW5nCgkgIExvZyB3aGVuIHRoaW5ncyBmYWlsLgoJICBGaXggYSBxdWVyeSBsZWFrLgoKMjAxMS0wNi0yMCAxNjo0NDozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogaW1wcm92ZSBkZWJ1ZwoJICBMb2cgYSBkZWJ1ZyBsaW5lIHdoZW4gdGhlcmUgaXMgbm8gdGFyZ2V0IHBhZCBhbmQgd2hlbiB0aGlzIG1ha2VzIHRoZSBkZWZhdWx0CgkgIGltcGxlbWVudGF0aW9uIGZhaWwuCgkgIFRha2UgdGhlIGludGVybmFsIHBhZHMgZGlyZWN0bHkgd2hlbiB3ZSBjYW4uCgoyMDExLTA2LTIwIDE1OjQwOjUxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlLmFjOiBidW1wIHJlcXVpcmVkIEdMaWIgdG8gMi4yNgoKMjAxMS0wNi0yMCAxMzoyNjowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBmdW5jdGlvbiB0byBzZXQgbWV0YWRhdGEgYXBpCgkgIEFkZCBhIGZ1bmN0aW9uIHRvIHJldHJpZXZlIGFuIGFycmF5IG9mIHN1cHBvcnRlZCBtZXRhZGF0YSBhcGlzIGZyb20gdGhlIHRoZQoJICBidWZmZXJwb29sLgoJICBBZGQgZnVuY3Rpb25zIHRvIGNvbmZpZ3VyZSBhbmQgcXVlcnkgdGhlIGNvbmZpZ3VyZWQgbWV0YWRhdGEgYXBpcyBpbiBhCgkgIGJ1ZmZlcnBvb2wgY29uZmlndXJhdGlvbi4KCjIwMTEtMDYtMTkgMTM6MTU6MTkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBnc3RidWZmZXI6IE1pbm9yIGZpeCB0byBkb2NzCgkgIEFkZHMgbWlzc2luZyBwYXJhbWV0ZXIgdG8gZG9jcyBvZiBnc3RfYnVmZmVyX2NvcHlfcmVnaW9uCgoyMDExLTA2LTE4IDE3OjM1OjQxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUgZG9fZXZlbnRfYWN0aW9ucwoJICBkb19ldmVudF9hY3Rpb25zIHdhcyBhbHdheXMgdXNlZCBhcyBUUlVFCgoyMDExLTA2LTE4IDE0OjM4OjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQnVtcCBnb2JqZWN0LWludHJvc3BlY3Rpb24gcmVxdWlyZW1lbnQgdG8gPj0gMC42LjgKCSAgRm9yIC0tYWRkLWluaXQtc2VjdGlvbgoKMjAxMS0wNi0xNiAxNzoyNzoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBCdW1wIGdpdCB2ZXJzaW9uIGFmdGVyIHVucGxhbm5lZCAwLjEwLjM1IHJlbGVhc2UKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luLzAuMTAuMzUnCgoyMDExLTA2LTE0IDE3OjU3OjIxICswMjAwICBQaGlsaXAgSsOkZ2Vuc3RlZHQgPHBoaWxpcGpAb3BlcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogRml4IHR5cG8gaW4gZG9jdW1lbnRhdGlvbgoJICBGaXhlcyAjNjUyNTc3LgoKMjAxMS0wNi0xNiAxMDo1NToxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgUmV2ZXJ0ICJ1dGlsczogcmVtb3ZlIHNvbWUgbWFjcm9zIG5vdyBpbiBnbGliIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGRlMjlhZTdiOTI5Y2VkYmY2Yjk4MzhlYTUzYjA1ZWZhYmRjZTRjZTcuCgkgIFJlLWFkZHMgR0ZMT0FUX1RPX0xFLCBHRkxPQVRfVE9fQkUsIEdET1VCTEVfVE9fTEUsIGFuZCBHRE9VQkxFX1RPX0JFLgoJICBUdXJucyBvdXQgdGhlc2UgYXJlbid0IGluIEdMaWIgeWV0IGFmZXIgYWxsIChzaW5jZSB3ZSBkaWRuJ3QKCSAgYWN0dWFsbHkgb3BlbiBhIGJ1ZyB0byBnZXQgdGhlbSBhZGRlZC4uKQoKPT09IHJlbGVhc2UgMC4xMC4zNSA9PT0KCjIwMTEtMDYtMTUgMTk6MTU6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAwLjEwLjM1CgkgIFRoaXMgaXMgYW4gYWQtaG9jIHJlbGVhc2UgdGhhdCBpcyBhbG1vc3QgaWRlbnRpY2FsIHRvIDAuMTAuMzQ6CgkgICogd29yayBhcm91bmQgR0xpYiBhdG9taWMgb3BzIEFQSSBjaGFuZ2UKCSAgKiBzb21lIG1pbm9yIHdpbjMyL21pbmd3IGZpeGVzCgkgICogZG9uJ3QgdXNlIEdfQ09OU1RfUkVUVVJOIGluIHB1YmxpYyBoZWFkZXJzCgoyMDExLTA2LTE1IDE2OjU2OjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGZpeCByZWZjb3VudGluZyBwcm9ibGVtCgoyMDExLTA2LTA5IDE3OjEzOjM1ICswMTAwICBKYXZpZXIgSmFyZMOzbiA8amphcmRvbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3Rmb3JtYXQuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSogZ3N0L2dzdHRyYWNlLmg6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJICBVc2UgImNvbnN0IiBpbnN0ZWFkIEdfQ09OU1RfUkVUVVJOCgkgIEdfQ09OU1RfUkVUVVJOIHdpbGwgYmUgZGVwcmVjYXRlZCBzb29uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUyMjExCgoyMDExLTA2LTA0IDAwOjMwOjE1IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RjbG9ja3N0cmVzcy5jOgoJICBXb3JrIGFyb3VuZCBjaGFuZ2VzIGluIGdfYXRvbWljIEFQSQoJICBTZWUgIzY1MTUxNCBmb3IgZGV0YWlscy4gIEl0J3MgYXBwYXJlbnRseSBpbXBvc3NpYmxlIHRvIHdyaXRlIGNvZGUKCSAgdGhhdCBhdm9pZHMgYm90aCB0eXBlIHB1bm5pbmcgd2FybmluZ3Mgd2l0aCBvbGQgZ19hdG9taWMgaGVhZGVycyBhbmQKCSAgYXNzZXJ0aW9ucyBpbiB0aGUgbmV3LiAgVGh1cywgbWFjcm9zIGFuZCBhIHZlcnNpb24gY2hlY2suCgoyMDExLTA1LTI1IDEzOjQwOjMwICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogUGxhY2F0ZSBnY2MgYnkgZGVmaW5pbmcgRVdPVUxEQkxPQ0sgdG8gc29tZXRoaW5nCgoyMDExLTA1LTI1IDEyOjQ3OjUxICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IEZpeCBXQUtFX0VWRU5UKCkgdG8gYmVoYXZlIHBvc2l4bHkgb24gV2luZG93cwoKMjAxMS0wNi0xNCAxNToxODoyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkqIGRvY3MvcmFuZG9tL3N0YXR1cy0wLjExLTE0LWp1bi0yMDExLnR4dDoKCSAgZG9jczogdXBkYXRlIGRvY3MKCjIwMTEtMDYtMTMgMTk6MTA6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA2LTEzIDE2OjMxOjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iaXRyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHlwZWZpbmRoZWxwZXIuYzoKCSAgYnVmZmVyOiBhZGQgaW5kZXggdG8gX3Rha2VfbWVtb3J5KCkKCSAgQWRkIGFuIGluZGV4IHRvIGdzdF9idWZmZXJfdGFrZV9tZW1vcnkoKSBzbyB0aGF0IHdlIGNhbiBhbHNvIGluc2VydCBtZW1vcnkgYXQgYQoJICBjZXJ0YWluIG9mZnNldC4gVGhpcyBpcyBtb3N0bHkgaW50ZXJlc3RpbmcgdG8gcHJlcGVuZCBhIGhlYWRlciBtZW1vcnkgYmxvY2sgdG8KCSAgdGhlIGJ1ZmZlci4KCjIwMTEtMDYtMTMgMTY6MzA6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3QgZm9yd2FyZCBzY2hlZHVsaW5nIHF1ZXJ5CgkgIFRoZSBzY2hlZHVsaW5nIHF1ZXJ5IHNob3VsZCBub3QgYmUgZm9yd2FyZGVkLCBiZWNhdXNlIGVsZW1lbnRzIG5lZWQgdG8gaW1wbGVtZW50CgkgIHNwZWNpYWwgY29kZSB0byBoYW5kbGUgZGlmZmVyZW50IHNjaGVkdWxpbmcgbWV0aG9kcy4KCjIwMTEtMDYtMTMgMTI6MDc6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJICBiYXNlc3JjOiBBbGxvY2F0b3IgYnVmZmVycyBmcm9tIG5lZ290aWF0ZWQgYWxsb2NhdG9yCgkgIEFsbG9jYXRlIGJ1ZmZlcnMgZnJvbSB0aGUgbmVnb3RpYXRlZCBhbGxvY2F0b3Igb3IgYnVmZmVycG9vbC4KCSAgSGFuZGxlIHRoZSBzdGF0ZSBvZiB0aGUgYnVmZmVycG9vbCB3aGVuIGZsdXNoaW5nLgoJICBBZGQgZmlsbCBtZXRob2QgdG8gcHVzaHNyYy4KCjIwMTEtMDYtMTMgMTI6MDQ6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogYWRkIG1vcmUgZGVidWcKCjIwMTEtMDYtMTMgMTE6NTE6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiBzbWFsbCBpbmRlbnRhdGlvbiBmaXgKCjIwMTEtMDYtMTMgMTE6NTA6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBwYXNzIHRoZSBhbGxvY2F0b3IgYXMgY29uc3QKCjIwMTEtMDYtMTMgMTA6MTk6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGJhc2VzcmM6IG5lZ290aWF0ZSBhbGxvY2F0aW9uCgkgIEFkZCB2bWV0aG9kIHRvIGNvbmZpZ3VyZSBhbGxvY2F0aW9uIG1ldGhvZHMuCgkgIFJlbW92ZSBzb21lIHVudXNlZCB2YXJpYWJsZXMKCjIwMTEtMDYtMTEgMjA6NDU6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGFkZCBzb21lIG1vcmUgY2hlY2tzCgkgIE1ha2Ugc3VyZSB0aGF0IHRoZSBhbGlnbm1lbnQgaXMgdmFsaWQuCgkgIFdoZW4gd2UgaGF2ZSBhIDAgc2l6ZSAodmFyaWFibGUgYnVmZmVyIHNpemUpLCB3ZSBjYW4ndCBoYXZlIGEgYnVmZmVycG9vbC4KCjIwMTEtMDYtMTEgMTk6NTQ6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IHNldCBhbGwgZGVmYXVsdCB2YWx1ZXMKCSAgRmlsbCBhbGwgcXVlcnkgdmFsdWVzIHdpdGggZ29vZCBkZWZhdWx0cy4KCjIwMTEtMDYtMTEgMTg6NTI6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYnVmZmVycG9vbDogcmVtb3ZlIHBvc3RmaXggcGFyYW1ldGVyCgkgIFJlbW92ZSB0aGUgcG9zdGZpeCBwYXJhbWV0ZXIsIGl0J3Mgbm90IHVzZWQgYW5kIGNhbiBiZSBkb25lIGRpZmZlcmVudGx5LgoKMjAxMS0wNi0xMCAxNzo1MDoyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IHVzZSBzYW1lIGFsaWdubWVudCB2YWx1ZXMgYXMgR3N0TWVtb3J5CgkgIFVzZSB0aGUgc2FtZSBhbGlnbm1lbnQgdmFsdWVzIGZvciB0aGUgYnVmZmVycG9vbCBhcyB3ZSB1c2UgZm9yIHRoZSBHc3RNZW1vcnkKCSAgQVBJLgoKMjAxMS0wNi0xMCAxNzozMjo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiB1c2UgbmV3IF9jaGVja19yZWNvbmZpZ3VyZSgpIG1ldGhvZAoKMjAxMS0wNi0xMCAxNzozMjoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCBfY2hlY2tfcmVjb25maWd1cmUoKSBtZXRob2QKCSAgQWRkIGEgbWV0aG9kIHRvIGNoZWNrIGFuZCBjbGVhciB0aGUgUkVDT05GSUdVUkUgZmxhZyBvbiBhIHBhZC4KCjIwMTEtMDYtMTAgMTY6NDc6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogYWRkIHN1cHBvcnQgZm9yIGJ1ZmZlciBpbiBtZW1vcnkKCSAgRml4IHRoZSBjb2RlIHRvIHN1cHBvcnQgYWxsb2NhdGluZyB0aGUgYnVmZmVyIGFuZCBtZW1vcnkgaW4gb25lIG1lbW9yeSBibG9jay4KCSAgQWRkIGFuIGV4dHJhIHZhcmlhYmxlIHRvIHN0b3JlIHRoZSBtZW1vcnkgb2YgdGhlIGJ1ZmZlci4KCSAgVGhpcyBjb2RlIGlzIGRpc2FibGVkIHN0aWxsIGJlY2F1c2Ugb2YgY29tcGxpY2F0aW9ucy4KCjIwMTEtMDYtMTAgMTY6NDY6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBleHBvc2UgZGVmYXVsdCBhbGlnbm1lbnQKCSAgRXhwb3J0IHRoZSBnc3RfbWVtb3J5X2FsaWdubWVudCB2YXJpYWJsZSBzbyB0aGF0IG90aGVycyBjYW4ga25vdyB0aGUgZGVmYXVsdAoJICBjb25maWd1cmVkIGFsaWdubWVudCBvZiB0aGUgc3lzdGVtLgoKMjAxMS0wNi0xMCAxNjoxOTo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBmaXggaXNfc3BhbgoJICBTdWJ0cmFjdCB0aGUgb2Zmc2V0IG9mIHRoZSBwYXJlbnQgZnJvbSBpc19zcGFuLgoKMjAxMS0wNi0xMCAxMzo1OTozMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogcmVzcGVjdCBjb25maWd1cmVkIGFsaWdubWVudAoJICBNb3ZlIHRoZSBhbGlnbm1lbnQgZnJvbSBHc3RCdWZmZXIgdG8gR3N0TWVtb3J5LgoJICBtYWtlIHN1cmUgbWVtb3J5IGlzIGF0IGxlYXN0IGFsaWduZWQgdG8gdGhlIGNvbmZpZ3VyZWQgdmFsdWVzLgoKMjAxMS0wNi0xMCAxMzo0MDo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgYnVmZmVyOiBtYWtlIG5ldyBfYnVmZmVyX2FsbG9jYXRlIG1ldGhvZAoJICBNYWtlIGEgbmV3IG1ldGhvZCB0byBhbGxvY2F0ZSBhIGJ1ZmZlciArIG1lbW9yeSB0aGF0IHRha2VzIHRoZSBhbGxvY2F0b3IgYW5kIHRoZQoJICBhbGlnbm1lbnQgYXMgcGFyYW1ldGVycy4gUHJvdmlkZSBhIG1hY3JvIGZvciB0aGUgb2xkIG1ldGhvZCBidXQgcHJlZmVyIHRvIHVzZQoJICB0aGUgbmV3IG1ldGhvZCB0byBlbmNvdXJhZ2UgcGx1Z2lucyB0byBuZWdvdGlhdGUgdGhlIGFsbG9jYXRvciBwcm9wZXJseS4KCjIwMTEtMDYtMTAgMTI6NDQ6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZG9jczogdXBkYXRlIGZvciBnc3RfYmFzZV9zcmNfc2V0X2R5bmFtaWNfc2l6ZQoJICBBZGQgdG8gc2VjdGlvbnMgZmlsZSBhbmQgYWRkIFNpbmNlOiBtYXJrZXIuIEFsc28gdXBkYXRlCgkgIHdpbjMyIC5kZWYgZmlsZS4KCSAgQVBJOiBnc3RfYmFzZV9zcmNfc2V0X2R5bmFtaWNfc2l6ZSgpCgoyMDExLTA2LTEwIDEzOjQ0OjE5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJICBkZXNpZ246IHBhcnQtYnVmZmVybGlzdC50eHQgd2FzIG1lcmdlZCBpbnRvIGFub3RoZXIgZG9jCgoyMDExLTA2LTEwIDEzOjM0OjU5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IFVwZGF0ZSBzZWN0aW9ucyBmaWxlcyBmb3IgYWRkZWQvcmVtb3ZlZCBzeW1ib2xzCgoyMDExLTA2LTEwIDEzOjEwOjQyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgZm9yIGFkZGVkL3JlbW92ZWQgc3ltYm9scwoKMjAxMS0wNi0xMCAxMzowNDoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGJhc2VzcmM6IGFkZCBmaWxsIHZtZXRob2QgdG8gYmFzZXNyYwoJICBBZGQgYSBuZXcgZmlsbCB2aXJ0dWFsIG1ldGhvZCB0byBiYXNlc3JjLiBUaGUgcHVycG9zZSBvZiB0aGlzIG1ldGhvZCBpcyB0byBmaWxsCgkgIGEgcHJvdmlkZWQgYnVmZmVyIHdpdGggZGF0YS4KCSAgQWRkIGEgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgY3JlYXRlIG1ldGhvZCB0aGF0IGFsbG9jYXRlcyBhIGJ1ZmZlciBhbmQKCSAgY2FsbHMgdGhlIGZpbGwgbWV0aG9kIG9uIGl0LiBUaGlzIHdvdWxkIGFsbG93IHRoZSBiYXNlIGNsYXNzIHRvIGltcGxlbWVudAoJICBidWZmZXJwb29sIGFuZCBhbGxvY2F0b3IgbmVnb3RpYXRpb24gb24gYmVoYWxmIG9mIHRoZSBzdWJjbGFzc2VzLgoJICBGaXggdGhlIGJsb2Nrc2l6ZSBwcm9wZXJ0eS4KCSAgTWFrZSBmaWxlc3JjIHVzZSB0aGUgbmV3IGZpbGwgbWV0aG9kLgoKMjAxMS0wNi0xMCAxMjowOTo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYwoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaAoJICBnc3QvZ3N0cGFkLmgKCSAgZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYwoJICBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oCgoyMDExLTA2LTEwIDExOjU1OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIGV2ZW50OiBhZGQgcmVzZXRfdGltZSBib29sZWFuIHRvIGZsdXNoX3N0b3AgZXZlbnQKCSAgQWRkIGEgYm9vbGVhbiB0byB0aGUgZmx1c2hfc3RvcCBldmVudCB0byBtYWtlIGl0IHBvc3NpYmxlIHRvIGltcGxlbWVudCBmbHVzaGVzCgkgIHRoYXQgZG9uJ3QgcmVzZXRfdGltZS4KCSAgTWFrZSBiYXNlc2luayBwb3N0IGFzeW5jX2RvbmUgd2l0aCB0aGUgcmVzZXRfdGltZSBwcm9wZXJ0eSBmcm9tIHRoZSBmbHVzaCBzdG9wCgkgIGV2ZW50LgoJICBGaXggc29tZSB1bml0IHRlc3RzCgoyMDExLTA2LTA5IDE3OjEzOjM1ICswMTAwICBKYXZpZXIgSmFyZMOzbiA8amphcmRvbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3Rmb3JtYXQuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSogZ3N0L2dzdHRyYWNlLmg6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJICBVc2UgImNvbnN0IiBpbnN0ZWFkIEdfQ09OU1RfUkVUVVJOCgkgIEdfQ09OU1RfUkVUVVJOIHdpbGwgYmUgZGVwcmVjYXRlZCBzb29uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUyMjExCgoyMDExLTA2LTA5IDEzOjM3OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHVzZSBuZXcgZXZlbnQgbWV0aG9kcyB0byByZXBsYWNlIGV2ZW50cwoJICBVc2luZyB0aGUgbmV3IGV2ZW50IG1ldGhvZHMsIHdlIGNhbiBhdG9taWNhbGx5IHRyYW5zZmVyIHRoZSBldmVudCBmcm9tIHRoZQoJICBwZW5kaW5nIGxpc3QgdG8gdGhlIGFjdGl2ZSBsaXN0LgoKMjAxMS0wNi0wOSAxMzozNjo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogbWFrZSBtYWNyb3MgZm9yIG5ldyBtaW5pb2JqZWN0IG1ldGhvZHMKCjIwMTEtMDYtMDkgMTM6MzU6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBtaW5pb2JqZWN0OiBhZGQgbmV3IG1ldGhvZHMgdG8gbWFuYWdlIG1pbmlvYmplY3QgcG9pbnRlcnMKCSAgQWRkIGEgbmV3IG1ldGhvZCB0byBzdGVhbCB0aGUgbWluaW9iamVjdCBzdG9yZWQgYXQgYSBsb2NhdGlvbi4KCSAgQWRkIGEgbmV3IG1ldGhvZCB0byBzdG9yZSBhIG1pbmlvYmplY3QgaW4gYSBsb2NhdGlvbiBhbmQgdGFraW5nIG93bmVyc2hpcAoJICBvZiB0aGUgbWluaW9iamVjdC4KCjIwMTEtMDYtMDkgMTM6MzQ6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogZml4IGhlYWRlcgoKMjAxMS0wNi0wOSAxMjozMTo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBmaXggc3B1cmlvdXMgaW5jbHVkZQoKMjAxMS0wNi0wOSAxMjowMTowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYwoKMjAxMS0wNi0wOSAxMTozOTowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHBhZDogZm9yd2FyZCBldmVudHMgYnkgZGVmYXVsdAoJICBBbHdheXMgZm9yd2FyZCBhbGwgZXZlbnRzIGluIHRoZSBkZWZhdWx0IGhhbmRsZXIuIFByZXZpb3VzbHkgaXQgdXNlZCB0byBub3QKCSAgZm9yd2FyZCBjYXBzIGV2ZW50cyBieSBkZWZhdWx0LiBJdCBtYWtlcyBtb3JlIHNlbnNlIHRvIGZvcndhcmQgdGhlIGNhcHMgZXZlbnRzLAoJICBpZiB0aGUgZWxlbWVudCBpcyBpbnRlcmVzdGVkIGluIHRoZSBjYXBzLCBpdCB3aWxsIGltcGxlbWVudCBhbiBldmVudCBoYW5kbGVyIHRvCgkgIHJldHJpZXZlIHRoZSBjYXBzIGFuZCB0aGVuIGl0IGNhbiBkZWNpZGUgdG8gZm9yd2FyZCBvciBub3QuIElmIHRoZSBlbGVtZW50IGhhcwoJICBubyBldmVudCBoYW5kbGVyLCBpdCBwcm9iYWJseSBqdXN0IGRvZXNuJ3QgY2FyZSBhYm91dCBjYXBzIGFuZCBpdCBwcm9iYWJseSBpcwoJICBhbHNvIG5vdCBnb2luZyB0byBtb2RpZnkgdGhlIGRhdGEgaW4gYSB3YXkgdGhhdCBuZWVkcyBhIGNhcHMgY2hhbmdlLgoKMjAxMS0wNi0wOSAxMToxMzo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBmaXggdHlwbyBpbiBkb2NzCgoyMDExLTA2LTA4IDE4OjIyOjM2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmMvZmRzcmM6IGluZGljYXRlIGR5bmFtaWMgc2l6ZSBoYW5kbGluZyB0byBiYXNlc3JjCgoyMDExLTA2LTA4IDE4OjIyOjAzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgYmFzZXNyYzogYWRkIGR5bmFtaWMgc2l6ZSBoYW5kbGluZwoJICBUaGlzIGFsbG93cyBzdWJjbGFzcyB0byBpbmRpY2F0ZSB0aGF0IHNpemUgcmVwb3J0ZWQgYnkgc3JjIG1heSBub3QgYmUgc3RhdGljCgkgIGFuZCBzaG91bGQgYXMgc3VjaCBiZSB1cGRhdGVkIHJlZ3VsYXJseSwgcmF0aGVyIHRoYW4gb25seSB3aGVuIHJlYWxseQoJICBuZWVkZWQuCgkgIFBhcnRpY3VsYXIgZXhhbXBsZXMgYXJlIGZpbGVzcmMgb3IgZmRzcmMgcmVhZGluZyBmcm9tIGEgZmlsZSB0aGF0IGlzIHN0aWxsCgkgIGdyb3dpbmcgKGUuZy4gYmVpbmcgZG93bmxvYWRlZCkuCgkgIEZpeGVzICM2NTIwMzcuCgoyMDExLTA2LTA4IDIwOjE0OjE2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBSZXZlcnQgImJhc2VzcmM6IFNlbmQgYW4gdXBkYXRlIE5FV1NFR01FTlQgZXZlbnQgZG93bnN0cmVhbSBpZiB0aGUgZHVyYXRpb24gY2hhbmdlcyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA5MzRmYWYxNjNjYWYxMGVkM2Q1NGQ4MWZkN2I3OTMwNjk5MTNkZmZkLgoJICBPcmlnaW5hbCBjb21taXQgbGVhZHMgdG8gcG9zc2libHkgc2VuZGluZyBuZXdzZWdtZW50IGV2ZW50IGRvd25zdHJlYW0KCSAgaW4gcHVsbCBtb2RlLiAgSW4gcHVzaCBtb2RlLCBxdWl0ZSBzb21lIGRvd25zdHJlYW0gZWxlbWVudHMKCSAgYXJlIGxpa2VseSB0byBvbmx5IGV4cGVjdCBuZXdzZWdtZW50IGV2ZW50IGZvbGxvd2luZyBhIHNlZWsgdGhleSBwZXJmb3JtZWQKCSAgYW5kIGFzIHN1Y2ggbWF5IGhhdmUgdGhlaXIgc3RhdGUgbWVzc2VkIHVwLgoKMjAxMS0wNi0wOCAxODozNToxNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBiYXNlc2luazogaW5saW5lIHRoZSBjbGlwIHNlZ21lbnQKCjIwMTEtMDYtMDggMTc6MjU6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIG1lc3NhZ2U6IHJlbmFtZSB2YXJpYWJsZQoJICBSZW5hbWUgdGhlIG5ld19iYXNlX3RpbWUgdmFyaWFibGUgdG8gcmVzZXRfdGltZSwgd2hpY2ggbG9va3MgYmV0dGVyLgoKMjAxMS0wNi0wOCAxNjo0MTowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIHNlZ21lbnQ6IHNlcGFyYXRlIHRoZSBzZWVrIGFuZCBzZWdtZW50IGZsYWdzCgkgIFNlcGFyYXRlIHRoZSBzZWVrIGZsYWdzIGFuZCBzZWdtZW50IGZsYWdzIGFzIHNlcGFyYXRlIGVudW1zIGJlY2F1c2Ugd2UgbWlnaHQKCSAgd2FudCB0byBoYXZlIGRpZmZlcmVudCBmbGFncyBmb3IgYm90aC4KCjIwMTEtMDYtMDggMTM6NDA6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgbWVzc2FnZTogbW92ZSB0aGUgbmV3X2Jhc2VfdGltZSBmbGFnIHRvIGFzeW5jX2RvbmUKCSAgTW92ZSB0aGUgZmxhZyB0byBpbmRpY2F0ZSB0aGF0IGEgbmV3X2Jhc2VfdGltZSBzaG91bGQgYmUgZGlzdHJpYnV0ZWQgdG8gdGhlCgkgIHBpcGVsaW5lLCBmcm9tIHRoZSBhc3luY19zdGFydCB0byB0aGUgYXN5bmNfZG9uZSBtZXNzYWdlLiBUaGlzIHdvdWxkIGFsbG93IHVzIHRvCgkgIGRlY2lkZSB3aGVuIHRvIHJlc2V0IHRoZSBwaXBlbGluZSB0aW1lIGJhc2VkIG9uIG90aGVyIHJlYXNvbnMgdGhhbiB0aGUKCSAgRkxVU0hfU1RBUlQgZXZlbnQuCgkgIFRoZSBtYWluIGdvYWwgZXZlbnR1YWxseSBpcyB0byBtYWtlIHRoZSBGTFVTSCBldmVudHMgbm90IHJlc2V0IHRpbWUgYXQgYWxsIGJ1dAoJICByZXNldCB0aGUgdGltZSBiYXNlZCBvbiB0aGUgZmlyc3QgYnVmZmVyIG9yIHNlZ21lbnQgdGhhdCBwcmVyb2xscyB0aGUgcGlwZWxpbmUKCSAgYWdhaW4uCgoyMDExLTA2LTA4IDEzOjM5OjE5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IFVwZGF0ZSBnc3RyZWFtZXItc2VjdGlvbnMgZm9yIG5ldy9yZW1vdmVkIEFQSQoKMjAxMS0wNi0wOCAxMzozMDo0OSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGdzdGJ1ZmZlcjogUmVtb3ZlIGRlcHJlY2F0ZWQgR1NUX0JVRkZFUl8qIG1hY3JvcwoJICBkYXRhLCBzaXplLCBtYWxsb2NkYXRhIGFuZCBmcmVlX2Z1bmMgbm8gbG9uZ2VyIGV4aXN0LgoKMjAxMS0wNi0wOCAxMzowNjoxNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBmb3IgYWRkZWQvcmVtb3ZlZCBzeW1ib2xzCgoyMDExLTA2LTA4IDEyOjU4OjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogcmVtb3ZlIHNldGNhcHMgZnVuY3Rpb24KCSAgUmVtb3ZlIHRoZSBzZXRjYXBzIGZ1bmN0aW9uLCBlbGVtZW50cyBzaG91bGQgdXNlIHRoZSBjYXBzIGV2ZW50IHRvIGJlIGluZm9ybWVkCgkgIG9mIHRoZSBmb3JtYXQuCgoyMDExLTA2LTA4IDEyOjA0OjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkgIG1lbW9yeTogUmVxdWlyZSBpbXBsZW1lbnRhdGlvbiB0byBpbXBsZW1lbnQgX3NoYXJlCgkgIFJlcXVpcmUgdGhlIG1lbW9yeSBpbXBsZW1lbnRhdGlvbnMgdG8gaW1wbGVtZW50IGEgc2hhcmUgb3BlcmF0aW9uLiBUaGlzIGFsbG93cwoJICB1cyB0byByZW1vdmUgdGhlIGZhbGxiYWNrIHNoYXJlIGltcGxlbWVudGF0aW9uIHdoaWNoIHVzZXMgYSBkaWZmZXJlbnQgYWxsb2NhdG9yCgkgIGltcGxlbWVudGF0aW9uIGFuZCBjb21wbGljYXRlcyB0aGluZ3MgdG9vIG11Y2guCgkgIFVwZGF0ZSBkZXNpZ24gZG9jIGEgYml0LgoKMjAxMS0wNi0wOCAxMTowMzo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgbWVtb3J5OiBjbGVhbnVwcyBhbmQgaW1wcm92ZSBkb2NzCgkgIE1ha2UgdGhlIGZhbGxiYWNrIGNvcHkgdXNlIHRoZSBzYW1lIG1lbW9yeSBhbGxvY2F0b3IgYXMgdGhlIG9yaWdpbmFsIG9iamVjdC4KCSAgSW1wcm92ZSBzb21lIGRvY3MuCgkgIFJlcXVpcmUgYW4gYWxsb2MgZnVuY3Rpb24gd2hlbiByZWdpc3RlcmluZyBhbiBhbGxvY2F0b3IuCgkgIFJlbW92ZSBnc3RfbWVtb3J5X2FsbG9jYXRvcl9nZXRfZGVmYXVsdCgpIGFuZCBtZXJnZSB0aGUgZmVhdHVyZSBpbgoJICBnc3RfbWVtb3J5X2FsbG9jYXRvcl9maW5kKCkKCSAgRml4IGxvY2tzIG9uIHRoZSBoYXNodGFibGUuCgkgIFJlbW92ZSBkZWZpbmVkIGJ1dCBub3QtaW1wbGVtZW50ZWQgZ3N0X21lbW9yeV9zcGFuKCkgbWV0aG9kLgoKMjAxMS0wNi0wNyAxODoxODoyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWVtb3J5LnR4dDoKCSAgZG9jczogYWRkIGJlZ2lubmluZ3Mgb2YgbWVtb3J5IGRlc2lnbiBkb2MKCjIwMTEtMDYtMDcgMTc6NTQ6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBwYXNzIHVzZXJfZGF0YSB0byB0aGUgYWxsb2MgZnVuY3Rpb24KCSAgUGFzcyB0aGUgdXNlciBkYXRhIHRoYXQgd2FzIHBhc3NlZCB0byBfcmVnaXN0ZXIgdG8gdGhlIGFsbG9jIGZ1bmN0aW9uIG9mIGFuCgkgIGFsbG9jYXRvci4KCjIwMTEtMDYtMDcgMTc6MzQ6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogZml4IHNvbWUgdHlwb3MKCjIwMTEtMDYtMDcgMTc6MDM6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkgIGZpbGVzcmM6IHJlbW92ZSBNTUFQIGNvZGUKCSAgUmVtb3ZlIHRoZSBtbWFwIGNvZGUsIGl0IHdhcyBkaXNhYmxlZCBhbmQgcHJvYmFibHkgbmVlZHMgYSBjb21wbGV0ZSByZXdyaXRlCgkgIGFueXdheSBpZiB0aGlzIGlzIHRvIGJlIHBvcnRlZCB0byAwLjExLgoKMjAxMS0wNi0wNyAxNjozNTowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogYWRkIG1ldGhvZHMgdG8gcXVlcnkgYWxsb2NhdG9ycwoJICBBZGQgQVBJIHRvIGFkZCBhbmQgcXVlcnkgYWxsb2NhdG9yIGltcGxlbWVudGF0aW9ucyB0by9mcm9tIHRoZSBBTExPQ0FUSU9OIHF1ZXJ5LgoKMjAxMS0wNi0wNyAxNjoxNDo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogdXNlIGFsbG9jYXRvcnMgdG8gYWxsb2NhdGUgbWVtb3J5CgkgIFJlbmFtZSB0aGUgR3N0TWVtb3J5SW1wbCB0byBHc3RNZW1vcnlBbGxvY2F0b3IgYmVjYXVzZSB0aGF0J3MgcmVhbGx5IHdoYXQgaXQgaXMuCgkgIEFkZCBhbiBhbGxvYyB2bWV0aG9kIHRvIHRoZSBhbGxvY2F0b3IgbWVtYmVycy4KCSAgSW1wcm92ZSByZWdpc3RyYXRpb24gb2YgYWxsb2NhdG9ycy4KCSAgQWRkIG1ldGhvZHMgdG8gZ2V0IGFuZCBzZXQgdGhlIGRlZmF1bHQgYWxsb2NhdG9yCgkgIEFsd2F5cyB1c2UgYW4gYWxsb2NhdG9yIHRvIGFsbG9jYXRlIG1lbW9yeSwgdXNlIHRoZSBkZWZhdWx0IGFsbG9jYXRvciB3aGVuIE5VTEwKCSAgaXMgcGFzc2VkLgoJICBBZGQgdXNlcl9kYXRhIHRvIHRoZSBhbGxvY2F0b3IgSW5mbyBzbyB0aGF0IHdlIGNhbiBwYXNzIGV4dHJhIGluZm8gdG8gdGhlCgkgIGFsbG9jYXRvciBuZXcgbWV0aG9kLgoKMjAxMS0wNi0wNyAxMzowMzoyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1ldGEudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgZG9jczogbWlub3IgZml4IGFuZCBjbGFyaWZpY2F0aW9uCgoyMDExLTA2LTA3IDEzOjM4OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBtb3ZlIHNvbWUgbW9yZSBkZWZpbmVzIG9uIHRvcAoKMjAxMS0wNi0wNyAxMzoyNToyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBmaXggc29tZSBjaXJjdWxhciBpbmNsdWRlcwoJICB0eXBlZGVmIHNvbWUgc3RydWN0cyBiZWZvcmUgaW5jbHVkaW5nIG90aGVyIGZpbGVzIHRvIGF2b2lkIGNpcmN1bGFyIGRlcGVuZGVuY2llcwoJICBpbiB0aGUgaGVhZGVyIGZpbGVzLgoKMjAxMS0wNi0wNyAxMTowMTozNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBmb3IgYWRkZWQvcmVtb3ZlZCBzeW1ib2xzCgoyMDExLTA2LTA2IDEyOjIzOjA0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJICBjaGVjay90ZWU6IFBhZHMgbmVlZCB0byBiZSBhY3RpdmF0ZWQgYmVmb3JlIGNhcHMgYXJlIHNldAoJICBBbHNvIGFkZCBkZWJ1Z2dpbmcgdG8gZmlndXJlIG91dCB3aGF0J3MgZ29pbmcgb24KCjIwMTEtMDYtMDcgMTA6NTI6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiByZW1vdmUgcHJveHlfc2V0Y2FwcwoJICBSZW1vdmUgcHJveHlfc2V0Y2FwcywgZWxlbWVudHMgc2hvdWxkIHVzZSB0aGUgY2FwcyBldmVudCBhbmQgZm9yd2FyZCBjYXBzCgkgIHRoZW1zZWx2ZXMuCgoyMDExLTA2LTA3IDEwOjUxOjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogZml4IHJlZmNvdW50aW5nIG9mIGV2ZW50cwoJICBfcGFkX2V2ZW50X2ZvcndhcmQoKSB0YWtlcyBvd25lcnNoaXAgb2YgdGhlIGNhcHMuCgoyMDExLTA2LTA3IDEwOjQ5OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEltcHJvdmUgcGFkIGV2ZW50IGZvcndhcmQgY29kZQoJICBSZXR1cm4gVFJVRSB3aGVuIHRoZSBwYWQgaGFzIG5vIHBhcmVudCBvciB3aGVuIHRoZXJlIGFyZSBubyBpbnRlcm5hbGx5IGxpbmtlZAoJICBwYWRzLgoKMjAxMS0wNi0wNyAxMDowNDo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgcGx1Z2luczogdXNlIHRoZSBjYXBzIGV2ZW50CgkgIFVzZSB0aGUgY2FwcyBldmVudCBhbmQgYXZvaWQgdXNpbmcgdGhlIHNldGNhcHMgZnVuY3Rpb24uIFVzZSBzb21lIG9mIHRoZSBuZXcgcGFkCgkgIGZvcndhcmQgZnVuY3Rpb25zIHRvIGltcGxlbWVudCBkZXNpcmVkIGJlaGF2aW91ci4KCjIwMTEtMDYtMDcgMTA6MDI6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBSZW5hbWUgYW5kIHJld29yayB0aGUgZGlzcGF0Y2hlciBmdW5jdGlvbgoJICBSZW5hbWUgZ3N0X3BhZF9kaXNwYXRjaGVyKCkgdG8gZ3N0X3BhZF9mb3J3YXJkKCkgYW5kIG1ha2UgaXQgbW9yZSB1c2VmdWwgYnkKCSAgaXRlcmF0aW5nIHRoZSBpbnRlcm5hbCBsaW5rcyBvZiBhIHBhZCBhbmQgaGFuZGxpbmcgcmVzeW5jIHByb3Blcmx5LgoJICBBZGQgYSBtZXRob2QgZ3N0X3BhZF9ldmVudF9mb3J3YXJkKCkgdGhhdCB1bmNvbmRpdGlvbmFsbHkgZm9yd2FyZHMgYW4gZXZlbnQgdG8KCSAgYWxsIGludGVybmFsbHkgbGlua2VkIHBhZHMuCgkgIFVwZGF0ZSBzb21lIHBhZCBjb2RlIHRvIHVzZSB0aGUgbmV3IGZvcndhcmQgZnVuY3Rpb24uCgoyMDExLTA2LTA3IDA5OjQzOjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGNhcHM6IHVzZSB0aGUgY2FwcyBldmVudAoJICBVc2UgdGhlIGNhcHMgZXZlbnQgaW5zdGVhZCBvZiBnc3RfcGFkX3NldF9jYXBzKCkgYW5kIHRoZSBzZXRjYXBzIGZ1bmN0aW9uCgoyMDExLTA2LTA2IDE2OjExOjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJsaXN0LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1jYXBzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXRyYW5zZm9ybS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RlbGVtZW50LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RvYmplY3QudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWxhdGVuY3kudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXRhLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2Jlcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2VnbWVudHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNwYXJzZXN0cmVhbXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6CgkgIGRvY3M6IGdvIG92ZXIgZGVzaWduIGRvY3MgYW5kIGZpeCB0aGluZ3MKCSAgUmVtb3ZlIGJ1ZmZlcmxpc3QgcGFydCwgaXQncyBtZXJnZWQgd2l0aCBwYXJ0LWJ1ZmZlci50eHQKCjIwMTEtMDYtMDYgMTE6MjE6MjMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IEFkZCBlbnVtL2ZsYWdzIChkZSlyZWdpc3RyYXRpb24gaW4gZ3N0XyhkZSlpbml0CgoyMDExLTA2LTA2IDExOjIwOjI5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IERvbid0IGFjY2VwdCBzZWdtZW50cyBhZnRlciBFT1MKCSAgQW5kIHJlZmFjdG9yIHRoZSBjb2RlIHNsaWdodGx5IHRvIGF2b2lkIGNvZGUgZHVwbGljYXRpb24uCgkgIFRoaXMgc29sdmVzIGEgcmVncmVzc2lvbiBpbnRyb2R1Y2VkIGJ5IGJkYmMwNjkzCgoyMDExLTA2LTA2IDEwOjI3OjU3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBjaGVjay9naG9zdHBhZDogQWN0aXZhdGUgcGFkcyBiZWZvcmUgY2hlY2tpbmcgZm9yIGNhcHMgZm9yd2FyZGluZy9zZXR0aW5nCgkgIFRoaXMgaXMgbm93IGRvbmUgdmlhIGluLWJhbmQgZXZlbnRzLCBzbyB0aGUgcGFkcyBuZWVkIHRvIGJlIGFjdGl2ZQoKMjAxMS0wNi0wNSAxODoxMToyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkgIGRvY3M6IHVwZGF0ZSBmb3IgQVBJIGNoYW5nZXMKCSAgQWxzbyByZW1vdmUgR1NUX1BBRF9DSEVDS0dFVFJBTkdFRlVOQyBtYWNybwoKMjAxMS0wNi0wNSAxNTo0Njo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA2LTA0IDE1OjQyOjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgcGFyc2U6IGFkZCBwcm90b3R5cGVzIGZvciB1bnVzZWQgZnVuY3Rpb25zIHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmcKCSAgVGhlIHdhcm5pbmcgaXMgbmV2ZXIgZmF0YWwsIGJlY2F1c2Ugd2UgZG9uJ3QgdXNlIC1XZXJyb3IgZm9yIHRoZQoJICBwYXJzZXIgaGVscGVyIGxpYnJhcnkgYnVpbGQsIGJ1dCB0aGUgd2FybmluZ3MgYXJlIGFubm95aW5nIGFueXdheS4KCjIwMTEtMDYtMDUgMTQ6MTA6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkqIHRvb2xzL2dzdC1ydW4uYzoKCSAgdG9vbHM6IHJlbW92ZSB1bnZlcnNpb25lZCBnc3QtbGF1bmNoLCBnc3QtaW5zcGVjdCBhbmQgZ3N0LXR5cGVmaW5kCgkgIFRoZSB1bnZlcnNpb25lZCB0b29sIHdyYXBwZXJzIGFyZSBjb25mdXNpbmcgYW5kIGFubm95aW5nIGZvciBwYWNrYWdlcnMsCgkgIHVzZXJzIGFuZCBkZXZlbG9wZXJzIGFsaWtlLiBBIGdzdC1sYXVuY2ggcGlwZWxpbmUgdGhhdCB3b3JrcyBpbiAwLjEwCgkgIHdpbGwgbGlrZWx5IG5vdCB3b3JrIGluIDAuMTEgKGUuZy4gYmVjYXVzZSBlbGVtZW50cyBvciBwcm9wZXJ0aWVzIGdldAoJICByZW5hbWVkLCBvciBzeW50YXggY2hhbmdlcykuIFRoZSB1bnZlcnNpb25lZCB0b29scyBhbHNvIHlpZWxkIHVzZWxlc3MKCSAgcmVzdWx0cyB3aGVuIHVzZWQgd2l0aCBnZGIgb3IgdmFsZ3JpbmQuIFBhY2thZ2VycyBuZWVkIHRvIGNvLW9yZGluYXRlCgkgIHRoZSBwYWNrYWdpbmcgb2YgYWxsIG1ham9yIHZlcnNpb25zIHRvIG1ha2Ugc3VyZSB0aGVyZSBhcmUgbm8gY29uZmxpY3RzCgkgIHdoZW4gYm90aCB0cnkgdG8gaW5zdGFsbCB0aGUgc2FtZSBmaWxlcy4gV2hlbiB0d28gbWFqb3IgdmVyc2lvbnMgYXJlCgkgIGluIHVzZSAoZS5nLiAwLjEwIGFuZCAwLjExLzEuMCksIGl0IG1heSBiZSB1bmNsZWFyICh3aGVuIGxvb2tpbmcgYXQKCSAgdGhpbmdzIG9uIElSQy9wYXN0ZWJpbi9tYWlsaW5nIGxpc3QgZXRjLikgd2hpY2ggdmVyc2lvbiBpcyBhY3R1YWxseQoJICBiZWluZyB1c2VkIHdoZW4gdGhlcmUgYXJlIHVudmVyc2lvbmVkIHdyYXBwZXJzLiBGb3IgYWxsIHRoZXNlIHJlYXNvbnMsCgkgIGl0IHNlZW1zIGJlc3QgdG8ganVzdCByZW1vdmUgdGhlbSBmb3Igbm93LgoKMjAxMS0wNi0wNCAxNjowNDozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0bWFyc2hhbC5jOgoJKiB3aW4zMi9jb21tb24vZ3N0bWFyc2hhbC5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSBleHBvcnRzIGFuZCBvdGhlciB0aGluZ3MKCjIwMTEtMDYtMDQgMTU6NDQ6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIG5ldyB0cmFuc2xhdGFibGUgc3RyaW5nIGFuZCByZW1vdmVkIHN0cmluZ3MKCjIwMTEtMDYtMDQgMTU6MjM6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHJlbW92ZSBHU1RfWE1MIGRlYnVnIGNhdGVnb3J5IGFzIHdlbGwKCjIwMTEtMDYtMDQgMTU6MjI6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQW5kcm9pZC5tazoKCSogTWFrZWZpbGUuYW06CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkqIHBsdWdpbnMvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0aW5kZXhlcnMuYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RpbmRleGVycy5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R4bWwuYzoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9hcm0uaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9ocHBhLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzMyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjNjQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9zcGFyYy5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkqIHRvb2xzLy5naXRpZ25vcmU6CgkqIHRvb2xzL01ha2VmaWxlLmFtOgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkqIHRvb2xzL2dzdC14bWxsYXVuY2guMS5pbjoKCSAgUmVtb3ZlIGV2ZXJ5dGhpbmcgbGlieG1sMi0gYW5kIGxvYWRzYXZlLXJlbGF0ZWQKCjIwMTEtMDYtMDQgMTQ6NDE6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiByZW1vdmUgU0lHVVNSKiBoYW5kbGluZyBmcm9tIGdzdC1sYXVuY2gKCSAgUmVtb3ZlIFNJR1VTUiogaGFuZGxpbmcgZnJvbSBnc3QtbGF1bmNoLCBzaW5jZSBpdCBtaWdodCBpbnRlcmZlcmUKCSAgd2l0aCBvdGhlciB0aGluZ3MgKGUuZy4gbGlibGVha3MpLCBhbmQgc2hvdWxkIGJlIGRvbmUgZGlmZmVyZW50bHkKCSAgYW55d2F5IChlaXRoZXIgdmlhIHN1cHBvcnQgZm9yIHNpbXBsZSB0aW1lZC1jb21tYW5kcyBzY3JpcHRpbmcgb3IKCSAgcmVtb3RlIGNvbnRyb2wgdmlhIERCdXMgb3Igc28pLgoKMjAxMS0wNi0wNCAxNDoyODowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSogdG9vbHMvLmdpdGlnbm9yZToKCSogdG9vbHMvQlVHUzoKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkqIHRvb2xzL1JFQURNRToKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuMS5pbjoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSogdG9vbHMveG1sMnRleHQueHNsOgoJICB0b29sczogcmVtb3ZlIGdzdC14bWxpbnNwZWN0CgkgIFBlb3BsZSBzaG91bGQganVzdCBxdWVyeSB0aGUgcmVnaXN0cnkgdGhlbXNlbHZlcyBvciB3cml0ZSBhIHNtYWxsCgkgIHB5dGhvbiBzY3JpcHQgaWYgdGhleSBuZWVkIHRoaXMgZnVuY3Rpb25hbGl0eSAod2hpY2ggaXMgbGlrZWx5CgkgIGxlc3Mgd29yayB0aGFuIHBhcnNpbmcgdGhlIFhNTCB0aGF0IHRoaXMgc2NyaXB0IG91dHB1dHMsIGFuZCBJJ20KCSAgbm90IGF3YXJlIG9mIGFueXRoaW5nIHVzaW5nIHRoZSB4bWwydGV4dCB4c2wgZWl0aGVyKS4KCjIwMTEtMDYtMDQgMTQ6MjI6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvdXNpbmcueG1sOgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSogdG9vbHMvLmdpdGlnbm9yZToKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkqIHRvb2xzL2dzdC1mZWVkYmFjay1tLm06CgkqIHRvb2xzL2dzdC1mZWVkYmFjay4xLmluOgoJICB0b29sczogcmVtb3ZlIGdzdC1mZWVkYmFjawoJICBJdCdzIG5vdCByZWFsbHkgdGhhdCB1c2VmdWwsIGFuZCBubyBvbmUncyBiZWVuIHVzaW5nIGl0IGZvciB5ZWFycy4KCjIwMTEtMDYtMDQgMTQ6MTM6MDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICB0b29scywgdGVzdHM6IGZpeCBzb21lIHVudXNlZC1idXQtc2V0LXZhcmlhYmxlIGNvbXBpbGVyIHdhcm5pbmdzCgoyMDExLTA2LTA0IDE0OjAyOjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIGZvciBuZXcgdHJhbnNsYXRhYmxlIHN0cmluZwoKMjAxMS0wNi0wNCAwMDozMDoxNSAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0Y2xvY2tzdHJlc3MuYzoKCSAgV29yayBhcm91bmQgY2hhbmdlcyBpbiBnX2F0b21pYyBBUEkKCSAgU2VlICM2NTE1MTQgZm9yIGRldGFpbHMuICBJdCdzIGFwcGFyZW50bHkgaW1wb3NzaWJsZSB0byB3cml0ZSBjb2RlCgkgIHRoYXQgYXZvaWRzIGJvdGggdHlwZSBwdW5uaW5nIHdhcm5pbmdzIHdpdGggb2xkIGdfYXRvbWljIGhlYWRlcnMgYW5kCgkgIGFzc2VydGlvbnMgaW4gdGhlIG5ldy4gIFRodXMsIG1hY3JvcyBhbmQgYSB2ZXJzaW9uIGNoZWNrLgoKMjAxMS0wNi0wMyAxODoxMDoyNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIGdzdHBhZDogU21hbGwgZG9jIGZpeHVwCgoyMDExLTA2LTAzIDE1OjUzOjIxICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIC5kZWYgZm9yIGxhdGVzdCBBUGkgY2hhbmdlcwoKMjAxMS0wNi0wMyAxNzoyNDo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBjbGVhbiB1cCBwcm9iZSBmbGFncwoKMjAxMS0wNi0wMyAxNzoyNDoyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvYmVzLnR4dDoKCSAgZG9jczogZmlyc3QgdmVyc2lvbiBvZiBwcm9iZXMgZG9jdW1lbnQKCjIwMTEtMDYtMDMgMTY6NDY6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogY2hlY2sgZmx1c2hpbmcgaW4gcHVsbHJhbmdlIHRvbwoKMjAxMS0wNi0wMyAxMzo1NjowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBjbGVhbnVwcwoJICBVc2UgZGVmaW5lcyBpbnN0ZWFkIG9mIGhhcmRjb2RlZCB2YWx1ZXMgZm9yIG1hc2tzLgoKMjAxMS0wNi0wMyAxMzoyNTo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGZpeCBzb21lIG1vcmUgMC4xMSBmaXhtZXMKCSAgZG9uJ3QgYWxsb3cgc3BhY2VzIGluIHN0cnVjdHVyZSBuYW1lcyBhbmQgZml4IHVuaXQgdGVzdHMuCgoyMDExLTA2LTAzIDEyOjQzOjMyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYWxsb2NhdGlvbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVycG9vbC50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBidWZmZXJwb29sIGRlc2lnbiBkb2MKCSAgTW92ZSB0aGUgYnVmZmVycG9vbCBkZXNpZ24gZG9jIGZyb20gZHJhZnQgdG8gcGFydCBhbmQgbWVyZ2UgaXQgd2l0aAoJICB0aGUgYWxsb2NhdGlvbiBkcmFmdC4KCjIwMTEtMDYtMDMgMTI6NDA6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiBtYWtlIHRoZSBkZWZhdWx0IGJlaGF2aW91ciB0byB3YWl0CgkgIFRoZSBtb3N0IGNvbW1vbiBjYXNlIGlzIHRvIG5vdCBzcGVjaWZ5IGFueSBmbGFncyB3aGVuIGRvaW5nIHRoZSBhbGxvY2F0aW9uLiBNYWtlCgkgIHRoZSBhbGxvY2F0aW9uIGZyb20gYSBwb29sIHdpdGggYSBtYXhpbXVtIGFtb3VudCBvZiBidWZmZXJzIGJsb2NrIGJ5IGRlZmF1bHQgZm9yCgkgIHRoaXMgcmVhc29uLgoKMjAxMS0wNi0wMyAxMToxNTozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBwb3J0aW5nIGRvYwoKMjAxMS0wNi0wMiAxOToyNDoyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdXNlIGNhcHMgZXZlbnQgaW5zdGVhZCBvZiBzZXRjYXBzCgoyMDExLTA2LTAyIDE5OjIzOjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJICBnaG9zdHBhZDogcmVtb3ZlIHNldGNhcHMgZnVuY3Rpb25zCgkgIFJlbW92ZSB0aGUgc2V0Y2FwcyBmdW5jdGlvbnMsIGl0IGlzIG5vdyBoYW5kbGVkIHdpdGggdGhlIGNhcHMgZXZlbnQuCgoyMDExLTA2LTAyIDE4OjI4OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IHBhc3MgdGhlIHJpZ2h0IGFsaWdubWVudAoKMjAxMS0wNi0wMiAxODoyODoxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtbW9yeTogc21hbGwgY2xlYW51cAoKMjAxMS0wNi0wMiAxODoxMzozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBmaXggYWxpZ25tZW50IGNhbGN1bGF0aW9ucwoJICBGaXggdGhlIGFsaWdubWVudCBjYWxjdWxhdGlvbi4KCSAgSW1wcm92ZSBkb2N1bWVudGF0aW9uLgoKMjAxMS0wNi0wMiAxODoxMzoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIHBvb2w6IGRlYnVnIHRoZSBjb25maWcKCjIwMTEtMDYtMDIgMTU6Mzg6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IHJlbW92ZSBzb21lIG1hY3JvcyBub3cgaW4gZ2xpYgoJICBXZSBkZXBlbmQgb24gdGhlIHJpZ2h0IGdsaWIgbm93CgoyMDExLTA2LTAyIDE1OjM4OjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGZpeCBhIEZJWE1FCgoyMDExLTA2LTAyIDE1OjM4OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiB1c2UgZ19wcmludGVycigpIGFzIHN0YXRlZCBpbiB0aGUgRklYTUUKCjIwMTEtMDYtMDIgMTU6Mzc6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBzbWFsbCBjbGVhbnVwcwoKMjAxMS0wNi0wMiAxNDowOTo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGVsZW1lbnQ6IGlubGluZSB0aGUgcmVjdXJzaWNlIHN0YXRlIGxvY2sKCjIwMTEtMDYtMDIgMTM6NDY6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBpbmxpbmUgdGhlIHJlY3Vyc2l2ZSBzdHJlYW0gbG9jawoKMjAxMS0wNi0wMiAxMzozNTo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IHJlbW92ZSB1bnVzZWQgZmllbGRzIGFuZCBtZXRob2RzIGFuZCBzaWduYWxzCgoyMDExLTA2LTAyIDEzOjIzOjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHVzZSBuZXcgZ3N0X3ZhbHVlX2ZpeGF0ZSBpbnN0ZWFkCgkgIFVzZSB0aGUgbmV3IGdzdF92YWx1ZV9maXhhdGUoKSBmdW5jdGlvbiBpbnN0ZWFkIG9mIG91ciBvd24gdmVyc2lvbi4KCjIwMTEtMDYtMDIgMTM6MjE6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIHZhbHVlOiBhZGQgZnVuY3Rpb24gdG8gZml4YXRlIGEgdmFsdWUKCSAgQWRkIGEgZnVuY3Rpb24gdG8gZml4YXRlIGEgR1ZhbHVlLiBUaGlzIGlzIHRoZSBzYW1lIGZ1bmN0aW9uIGFzIGlzIGluIEdzdFBhZC4KCjIwMTEtMDYtMDIgMTM6MTg6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiByZW1vdmUgc29tZSBjdXN0b20gcmVmY291bnRpbmcgbWV0aG9kcwoJICBSZW1vdmUgc29tZSBjdXN0b20gbWFkZSByZWZjb3VudGluZyBtZXRob2RzIGFuZCB1c2UgdGhlIG1pbmlvYmplY3Qgb25lcyBpbnN0ZWFkLgoKMjAxMS0wNi0wMiAxMjo0MDowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBvcHRpbWl6ZSBsaW5raW5nCgkgIE9wdGltaXplIGxpbmtpbmcgYnkgb25seSByZWxlYXNpbmcgdGhlIHBhZCBsb2NrcyB3aGVuIHRoZXJlIGFyZSBsaW5rIGZ1bmN0aW9ucwoJICBpbnN0YWxsZWQgb24gdGhlIHBhZHMuCgkgIEFkZCBzb21lIEdfTElLRUxZIGhlcmUgYW5kIHRoZXJlLgoJICBNb3ZlIGVycm9yIHBhdGhzIG91dCBvZiB0aGUgbWFpbiBjb2RlIGZsb3cuCgoyMDExLTA2LTAyIDEyOjM5OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogcmVtb3ZlIGRlcHJlY2F0ZWQgaGF2ZS1kYXRhIHNpZ25hbAoKMjAxMS0wNi0wMiAxMToyMTowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhZGQgaWRsZSBwcm9iZSBmb3IgcHVsbCBtZXRob2QgdG9vCgoyMDExLTA2LTAyIDExOjAxOjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG1vcmUgY2xlYW51cHMKCSAgVXNlIG1pbmlvYmplY3QgdW5yZWYgd2hlbiB3ZSBjYW4KCSAgUmV1c2UgZXhpc3RpbmcgZGF0YSB0eXBlIGlkZW50aWZpZXIgaW5zdGVhZCBvZiBhbiBleHRyYSBib29sZWFuLgoKMjAxMS0wNi0wMSAxOTo0NzoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmMKCjIwMTEtMDYtMDEgMTk6Mjc6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcXVldWUtZXJyb3IuYzoKCSAgcGFkOiBmdXJ0aGVyIGltcHJvdmUgcHJvYmVzIGFuZCBwYWQgYmxvY2tpbmcKCSAgS2VlcCB0cmFjayBvZiBpbnN0YWxsZWQgbnVtYmVyIG9mIHByb2JlcyB0byBzaG9ydGN1dCBlbWlzc2lvbi4KCSAgQWxsb3cgTlVMTCBjYWxsYmFja3MsIHRoaXMgaXMgdXNlZnVsIGZvciBibG9ja2luZyBwcm9iZXMuCgkgIEltcHJvdmUgcHJvYmUgc2VsZWN0aW9uIGJhc2VkIG9uIHRoZSBtYXNrLCBhbiBlbXB0eSBtYXNrIGZvciB0aGUgZGF0YSBvciB0aGUKCSAgc2NoZWR1bGluZyBmbGFncyBlcXVhbHMgdGhhdCBhbGwgcHJvYmVzIG1hdGNoLgoJICBBZGQgc29tZSBtb3JlIGRlYnVnIGluZm8uCgkgIERvbid0IGNoZWNrIHRoZSBmbHVzaGluZyBmbGFnIGluIHRoZSBwcm9iZSBjYWxsYmFjayBoYW5kbGVyLCB0aGlzIG5lZWRzIHRvIGJlCgkgIGRvbmUgYmVmb3JlIGNhbGxpbmcgdGhlIGhhbmRsZXIuCgkgIEZpeCBibG9ja2luZyBwcm9iZXMuCgkgIEZpeCB1bml0IHRlc3RzCgoyMDExLTA1LTMxIDE5OjE2OjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGFkOiBpbXBsZW1lbnQgcGFkIGJsb2NrIHdpdGggcHJvYmVzCgoyMDExLTA1LTMwIDE5OjAzOjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3F1ZXVlLWVycm9yLmM6CgkgIHV0aWxzOiByZW1vdmUgX2Z1bGwgdmFyaWFudHMgb2YgcHJvYmVzCgkgIFJlbW92ZSB0aGUgX2Z1bGwgdmFyaWFudHMgYW5kIGFkZCB0aGUgZGVzdHJveSBub3RpZnkgdG8gdGhlIHJlZ3VsYXIgbWV0aG9kcy4KCjIwMTEtMDYtMDEgMTU6Mjk6MjAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9hcm0uaDoKCSAgY2hlY2svYWJpOiBJZ25vcmUgR3N0WE1MKiBvbiBhcm0gd2hlbiBub3QgcHJlc2VudAoKMjAxMS0wNS0zMSAxODozMTo1MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBVc2UgbG9jYWwgcHJpdiB2YXJpYWJsZSBpbnN0ZWFkIG9mIHRyYW5zLT5wcml2CgoyMDExLTA1LTMxIDE4OjMwOjUwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgZ3N0c2VnbWVudDogUmVtb3ZlIGRlYWQgYXNzaWdubWVudAoJICBiYXNlIGlzIHVuY29uZGl0aW9uYWxseSB3cml0dGVuIGEgY291cGxlIG9mIGxpbmVzIGJlbG93CgoyMDExLTA1LTMxIDE4OjMwOjMwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGdzdDogUmVtb3ZlIG9idmlvdXMgZGVhZCBhc3NpZ25tZW50cwoKMjAxMS0wNS0zMSAxMzo0Mzo0NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50CgoyMDExLTA1LTMwIDE4OjI5OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogUmV3b3JrIHBhZCBibG9ja2luZywgYW5vdGhlciBhdHRlbXB0CgkgIE1ha2UgdGhlIFBhZEJsb2NrIGNhbGxiYWNrIHRha2UgYSBHc3RCbG9ja1R5cGUgcGFyYW1ldGVyIHRvIGhhbmRsZSB0aGUgZGlmZmVyZW50CgkgIGtpbmQgb2Ygc3RhZ2VzIGluIHRoZSBwYWQgYmxvY2suIFRoaXMgcHJvdmlkZXMgZm9yIG1vcmUgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkKCSAgaW4gdGhlIHBhZCBibG9jayBBUEkuCgkgIFNlcGFyYXRlIGJsb2NraW5nIGFuZCB1bmJsb2NraW5nIGludG8gZGlmZmVyZW50IG1ldGhvZHMsIG9ubHkgYmxvY2tpbmcgY2FuIGRvIGEKCSAgY2FsbGJhY2ssIHVuYmxvY2sgaXMgYWx3YXlzIGltbWVkaWF0ZWx5LiBBbHNvIHJlbW92ZWQgc3luY2hyb25vdXMgYmxvY2tpbmcsIGl0CgkgIGNhbiBhbHdheXMgYmUgaW1wbGVtZW50ZWQgd2l0aCBhIGNhbGxiYWNrLgoKMjAxMS0wNS0zMCAxMzo0MDowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBSZXZlcnQgInBhZDogcmV3b3JrIHBhZCBibG9ja2luZywgZmlyc3QgcGFydCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA0MTVkYTg5ZjNjOWZlNDZmYzMzNjEyMzZkZjlhM2I3NmU2MDdlMTM4LgoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RwYWQuYwoKMjAxMS0wNS0zMCAxMjoyNzozMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBpbXByb3ZlIGRlYnVnZ2luZwoKMjAxMS0wNS0zMCAxMTozMzo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogQ29uc2lkZXIgIjEiIGFuZCAiezF9IiBhcyBlcXVhbCBpbiBnc3RfdmFsdWVfY29tcGFyZSgpCgkgIFByZXZpb3VzbHkgdGhpcyB3YXMgb25seSBkb25lIGluIHRoZSBpc19zdWJzZXQoKSBjaGVjayBidXQKCSAgaGF2aW5nIGl0IG9ubHkgdGhlcmUgYnJpbmdzIHVzIGludG8gZGVmaW5pdGlvbi1oZWxsIHdoZXJlCgkgICIxIiBhbmQgInsxfSIgYXJlIHN1YnNldCBvZiBlYWNoIG90aGVyIGJ1dCBub3QgZXF1YWwuCgoyMDExLTA1LTMwIDA3OjQ0OjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogRG9uJ3QgYWNjZXNzIHRoZSBHc3RNZXNzYWdlIHN0cnVjdHVyZSBkaXJlY3RseQoKMjAxMS0wNS0zMCAwNzo0MToxMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA1LTMwIDA3OjM2OjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogRml4IHN1YnNldCBjaGVjayBmb3IgZXF1aXZhbGVudCBsaXN0cyBhbmQgc2NhbGFyIHZhbHVlcwoJICBGb3IgZXhhbXBsZSAieyAxIH0iIGFuZCAiMSIgYXJlIG5vdCBzdHJpY3RseSBlcXVhbCBidXQKCSAgYm90aCBhcmUgYSBzdWJzZXQgb2YgZWFjaCBvdGhlci4gQWxzbyBhZGQgYSB1bml0IHRlc3QKCSAgZm9yIHRoaXMuCgoyMDExLTA1LTI5IDE5OjI4OjM0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2dlbmVyYWwueG1sOgoJICBkb2NzOiBmaXggYnVnemlsbGEgVVJMCgkgIGh0cHAgLT4gaHR0cAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUxMzYyCgoyMDExLTA1LTI4IDEwOjI0OjM3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBkb2NzOiB4cmVmcyBtb3JlIGFwaSBhcm91bmQgR3N0U3RhdGVDaGFuZ2UgYW5kIEdzdFN0YXRlQ2hhbmdlUmV0dXJuLgoKMjAxMS0wNS0yOCAwOTo1MTo0NSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgZG9jczogeHJlZiB0aGUgYXN5bmMgbWVzc2FnZXMgdG8gR3N0U3RhdGVDaGFuZ2UKCjIwMTEtMDUtMjcgMTc6MjA6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiByZXdvcmsgcGFkIGJsb2NraW5nLCBmaXJzdCBwYXJ0CgkgIE1ha2UgcGFkIGJsb2NrIGNhbGwgdGhlIGNhbGxiYWNrIGFzIHNvb24gYXMgdGhlIHBhZCBpcyBub3QgaW4gdXNlLiBUaGlzIG1ha2VzIGl0CgkgIHBvc3NpYmxlIHRvIG1ha2Ugc3VyZSB0aGF0IHdoZW4gdGhlIGNhbGxiYWNrIGlzIGNhbGxlZCwgbm8gYWN0aXZpdHkgaXMgaGFwcGVuaW5nCgkgIG9uIHRoZSBwYWQgYW5kIHRoYXQgbm8gYWN0aXZpdHkgd2lsbCBldmVyIGhhcHBlbiB1bnRpbCB0aGUgcGFkIGlzIHVuYmxvY2tlZAoJICBhZ2Fpbi4gVGhpcyBtYWtlcyBwYWQgYmxvY2tpbmcgd29yayB3aGVuIHRoZXJlIGlzIG5vIGRhdGFmbG93IG9yIGFmdGVyIEVPUyBhbmQKCSAgZ3JlYXRseSBoZWxwcyBkeW5hbWljIHBpcGVsaW5lcy4KCSAgTW92ZSB0aGUgcHJvYmUgaGFuZGxpbmcgcmlnaHQgd2hlcmUgd2Ugd2FpdCBvbiB0aGUgcGFkIGJsb2NrLiBUaGUgdHdvIGFyZQoJICByZWxhdGVkIGJ1dCBub3QgdGhlIHNhbWUgYW5kIHRoZSBwcm9iZSBjYW4gZXZlbnR1YWxseSBpbmZsdWVuY2UgdGhlIHBhZAoJICBibG9ja2luZyBhcyB3ZSdsbCBzZSBsYXRlci4KCSAgRml4IHVwIHNvbWUgYnJva2VuIHVuaXQgdGVzdHMgb3IgdGVzdHMgdGhhdCBmYWlsIHdpdGggdGhlIG5ldyBiZWhhdmlvdXIuCgoyMDExLTA1LTI3IDE3OjE4OjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJICBiYXNlc3JjOiByZW1vdmUgZGVwcmVjYXRlZCBjbGVhbiBzaHV0ZG93biBtZXRob2QKCjIwMTEtMDUtMjcgMTQ6MDA6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IGRlYWN0aXZhdGUgdGhlIHBhZCBhZnRlciByZW1vdmluZyBpdAoJICBXaGVuIHJlbGVhc2luZyB0aGUgcmVxdWVzdCBwYWQsIGZpcnN0IHJlbW92ZSBpdCBmcm9tIHRoZSBlbGVtZW50IGFuZCB0aGVuCgkgIGRlYWN0aXZhdGUgaXQuIElmIHdlIGRvIGl0IHRoZSBvdGhlciB3YXkgYXJvdW5kLCBhIGdzdF9wYWRfcHVzaCBvbiB0aGUgZWxlbWVudAoJICBtaWdodCByZXR1cm4gd3Jvbmctc3RhdGUgYmVmb3JlIHdlIGhhZCBhIGNoYW5jZSB0byBkZXRlY3QgdGhlIHJlbW92ZWQgcGFkIGluIHRoZQoJICBjaGFpbiBmdW5jdGlvbi4KCjIwMTEtMDUtMjcgMTU6MTQ6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogY2F0Y2ggYW5kIHByaW50IG1pc3NpbmctcGx1Z2luIG1lc3NhZ2VzIGluIGdzdC1sYXVuY2gKCSAgU28gdGhhdCB1c2VycyBnZXQgc29tZSBmZWVkYmFjayBpZiB0aGV5J3JlIHVzaW5nIGEgcGlwZWxpbmUKCSAgbGlrZSAgc3JjICEgZGVjb2RlYmluMiAhIHNpbmsgIGFuZCBhcmUgbWlzc2luZyBhbiBlbGVtZW50LgoKMjAxMS0wNS0yNyAxNDowMjowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogRml4IGZvciBTRUdNRU5UIGV2ZW50IEFQSSBjaGFuZ2VzCgoyMDExLTA1LTI3IDEzOjU4OjI2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDUtMjcgMTM6NTU6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNhcHM6IEFkZCBnc3RfY2Fwc19pc19zdWJzZXRfc3RydWN0dXJlKCkKCSAgQVBJOiBnc3RfY2Fwc19pc19zdWJzZXRfc3RydWN0dXJlKCkKCSAgVGhpcyBhbGxvd3MgdG8gY2hlY2sgaWYgYSBzdHJ1Y3R1cmUgaXMgYSBzdWJzZXQgb2YgZ2l2ZW4KCSAgY2FwcyB3aXRob3V0IGFsbG9jYXRpbmcgYSBuZXcgY2FwcyBpbnN0YW5jZSBmb3IgaXQuCgoyMDExLTA1LTI3IDEzOjQ3OjExICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc3RydWN0dXJlOiBBZGQgZ3N0X3N0cnVjdHVyZV9pc19zdWJzZXQoKQoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfaXNfc3Vic2V0KCkKCjIwMTEtMDUtMjcgMTM6Mzg6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogT3B0aW1pemUgZ3N0X2NhcHNfaXNfc3Vic2V0KCkKCSAgLi5hbmQgYXMgYSByZXN1bHQgZ3N0X2NhcHNfaXNfZXF1YWwoKSBhbmQgb3RoZXJzLgoJICBUaGlzIG5vdyBvbmx5IGNoZWNrcyBpZiBmb3IgZXZlcnkgc3Vic2V0IHN0cnVjdHVyZSB0aGVyZSBpcwoJICBhIHN1cGVyc2V0IHN0cnVjdHVyZSBpbiB0aGUgc3VwZXJzZXQgY2Fwcy4gUHJldmlvdXNseSB3ZSB3ZXJlCgkgIHN1YnRyYWN0aW5nIG9uZSBmcm9tIGFub3RoZXIsIGNyZWF0aW5nIGNvbXBsZXRlbHkgbmV3IGNhcHMKCSAgYW5kIHRoZW4gZXZlbiBzaW1wbGlmaWVkIHRoZW0uCgkgIFRoZSBuZXcgaW1wbGVtZW50aW9uIG5vdyBpcyBhYm91dCAxLjI3IHRpbWVzIGZhc3RlciBhbmQgZG9lc24ndAoJICBicmVhayB0aGUgLWJhc2UgdW5pdCB0ZXN0cyBhcmUgYW55dGhpbmcgYW55bW9yZS4KCjIwMTEtMDUtMjcgMTM6Mzc6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogRml4IHN1YnNldCBjaGVjayBpbiBnc3RfY2Fwc19tZXJnZSgpCgkgIENhcHMgQSBhcmUgYSBzdWJzZXQgb2YgY2FwcyBCIGV2ZW4gaWYgY2FwcyBCIGRvZXNuJ3QKCSAgaGF2ZSBhbGwgZmllbGRzIG9mIGNhcHMgQS4KCSAgQWxzbyBhZGQgYSB1bml0IHRlc3QgZm9yIHRoaXMuCgoyMDExLTA1LTI3IDEyOjU2OjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIFJldmVydCAiY2FwczogT3B0aW1pemUgZ3N0X2NhcHNfaXNfc3Vic2V0KCkiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMzIyNDhhOWI4NTJiY2I1NjhhNWI2NDIyOTllY2M4ZTViZjQ4ZWExMy4KCSAgVGhpcyBicmVha3Mgc29tZSB0ZXN0cyBpbiAtYmFzZSBhbmQgdGhlIGZhaWx1cmVzIHNob3VsZAoJICBiZSBmaXhlZCBmaXJzdC4KCjIwMTEtMDUtMjcgMTI6NDU6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogT3B0aW1pemUgZ3N0X2NhcHNfaXNfc3Vic2V0KCkKCSAgLi5hbmQgYXMgYSByZXN1bHQgZ3N0X2NhcHNfaXNfZXF1YWwoKSBhbmQgb3RoZXJzLgoJICBUaGlzIG5vdyBvbmx5IGNoZWNrcyBpZiBmb3IgZXZlcnkgc3Vic2V0IHN0cnVjdHVyZSB0aGVyZSBpcwoJICBhIHN1cGVyc2V0IHN0cnVjdHVyZSBpbiB0aGUgc3VwZXJzZXQgY2Fwcy4gUHJldmlvdXNseSB3ZSB3ZXJlCgkgIHN1YnRyYWN0aW5nIG9uZSBmcm9tIGFub3RoZXIsIGNyZWF0aW5nIGNvbXBsZXRlbHkgbmV3IGNhcHMKCSAgYW5kIHRoZW4gZXZlbiBzaW1wbGlmaWVkIHRoZW0uCgkgIFRoZSBuZXcgaW1wbGVtZW50aW9uIG5vdyBpcyBhYm91dCAxLjI3IHRpbWVzIGZhc3Rlci4KCjIwMTEtMDUtMjcgMTE6NDU6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IERyb3Agc3RpY2t5IGV2ZW50cyBwdXNoZWQgb24gZmx1c2hpbmcgc3JjcGFkcyBpbnN0ZWFkIG9mIGFjdGl2YXRpbmcgdGhlbSBpbW1lZGlhdGVseQoKMjAxMS0wNS0yNiAxNDo1NjoxMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogUGFzcyB0aGUgY29tcGxldGUgY2FwcyB0byB0cmFuc2Zvcm1fY2FwcwoJICBJbnN0ZWFkIG9mIHBhc3NpbmcgaXQgc3RydWN0dXJlIGJ5IHN0cnVjdHVyZS4gVGhpcyBhbGxvd3MKCSAgYmV0dGVyIG9wdGltaXplZCB0cmFuc2Zvcm1fY2FwcyBmdW5jdGlvbnMgYW5kIGFsbG93cyBiZXR0ZXIKCSAgdHJhbnNmb3JtYXRpb24gZGVjaXNpb25zLgoJICBTZWUgYnVnICM2MTk4NDQuCgoyMDExLTA1LTI3IDA5OjA1OjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBTZW5kIGFuIHVwZGF0ZSBORVdTRUdNRU5UIGV2ZW50IGRvd25zdHJlYW0gaWYgdGhlIGR1cmF0aW9uIGNoYW5nZXMKCSAgVGhpcyBhbGxvd3Mgc3RyZWFtaW5nIHRoZSBjb21wbGV0ZSBmaWxlIGZvciBmaWxlcyB0aGF0IGhhdmUgZ3Jvd24gc2luY2UKCSAgc3RyZWFtaW5nIHN0YXJ0ZWQuCgkgIEZpeGVzIGJ1ZyAjNjQ3OTQwLgoKMjAxMS0wNS0yNiAxOTo0NToxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiByZWZhY3RvciBfcHVzaF9ldmVudAoJICBSZXdvcmsgX3B1c2hfZXZlbnQoKSBhIGxpdHRsZSBzbyB0aGF0IGl0IGRyb3BzIGV2ZW50cyBvbiBibG9ja2luZyBwYWRzLgoJICBNYWtlIHN1cmUgdGhhdCBldmVudHMgYXJlIGZvcndhcmRlZCB3aGVuIHdlIHVuYmxvY2suCgkgIEFkZCBjb3VudGVyIG9uIHRoZSBwYWQgdG8ga2VlcCB0cmFjayBvZiBidXN5IHBhZHMuCgoyMDExLTA1LTI2IDE4OjIxOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHJlZmFjdG9yIHByZSBhbmQgcG9zdCBjaGFpbiBjb2RlCgoyMDExLTA1LTI2IDE3OjUwOjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGtlZXAgY291bnRlciBmb3IgYWN0aXZlIHBhZHMKCSAgS2VlcCBhIGNvdW50ZXIgdG8gbWFyayB0aGUgYW1vdW50IG9mIHRocmVhZHMgY3VycmVudGx5IHB1c2hpbmcgZGF0YSBvbiB0aGUgcGFkLgoKMjAxMS0wNS0yNiAxNzozOToxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiByZWZhY3RvciBwcmUgcHVzaCBjb2RlCgkgIFJlZmFjdG9yIHRoZSBjb2RlIHRoYXQgaXMgZXhlY3V0ZWQgYXMgdGhlIGZpcnN0IHN0ZXAgb2YgYSBwdXNoIG9wZXJhdGlvbiB3aGVyZQoJICB3ZSBjaGVjayB0aGUgcHJvYmVzIGFuZCBibG9ja2luZyBhbmQgcmVzb2x2ZSB0aGUgcGVlci4KCjIwMTEtMDUtMjYgMTc6MDg6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgcGFkOiByZW1vdmUgcGFkIGNhY2hlCgkgIFJlbW92ZSB0aGUgcGFkIGNhY2hlIGFzIHRoaXMgaXMgZ29pbmcgdG8gYmUgcmV3b3JrZWQgZm9yIG5ldyBwYWQgYmxvY2tpbmcgYW5kCgkgIHByb2Jlcy4KCjIwMTEtMDUtMjYgMTY6NDg6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogc2ltcGxpZnkgaGFuZGxpbmcgb2YgYnVmZmVyIGxpc3RzCgkgIEltcGxlbWVudCBhIGRlZmF1bHQgYnVmZmVyLWxpc3QgZnVuY3Rpb24gaW4gY2FzZSB0aGUgZWxlbWVudCBkb2Vzbid0IGltcGxlbWVudAoJICBvbmUuCgkgIEFsc28gcGFzcyBidWZmZXItbGlzdHMgdG8gdGhlIGhhdmUtZGF0YSBzaWduYWwsIHRoaXMgYWxsb3dzIHVzIHRvIHJlbW92ZSBzb21lCgkgIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgY29kZS4KCjIwMTEtMDUtMjYgMTY6MTU6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiByZW1vdmUgb2xkIGdzdF9wYWRfc2V0X2Jsb2NrZWQgbWV0aG9kcwoKMjAxMS0wNS0yNiAxNDoxNDoxMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSAgcHVzaHNyYzogRml4IGluZmluaXRlIHJlY3Vyc2lvbiBpbiBwdXNoc3JjIHF1ZXJ5IGhhbmRsZXIKCjIwMTEtMDUtMjYgMTM6MzY6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNS0yNSAxNjowMjoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIGdzdDogd2UgY2FuIG5vdyB1c2UgR0xpYiAyLjI0IEFQSSB1bmNvbmRpdGlvbmFsbHkKCjIwMTEtMDUtMjUgMTU6NTQ6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGJ1bXAgR0xpYiByZXF1aXJlbWVudCB0byA+PSAyLjI0CgkgIGh0dHA6Ly9nc3RyZWFtZXIuZnJlZWRlc2t0b3Aub3JnL3dpa2kvUmVsZWFzZVBsYW5uaW5nL0dMaWJSZXF1aXJlbWVudAoKMjAxMS0wNS0yNSAxNTozODozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiB1cGRhdGUgcmVsZWFzZSBpbnN0cnVjdGlvbnMgZm9yIGdub21lIGNoYW5nZQoKMjAxMS0wNS0yNSAxMzo0MDozMCArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IFBsYWNhdGUgZ2NjIGJ5IGRlZmluaW5nIEVXT1VMREJMT0NLIHRvIHNvbWV0aGluZwoKMjAxMS0wNS0yNSAxMjo0Nzo1MSArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBGaXggV0FLRV9FVkVOVCgpIHRvIGJlaGF2ZSBwb3NpeGx5IG9uIFdpbmRvd3MKCjIwMTEtMDUtMjQgMjA6Mjg6MTggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICByZWdpc3RyeWJpbmFyeTogc21hbGwgY2xlYW51cHMKCSAgUmVtb3ZlIHVubmVlZGVkIGJyYWNlcyBmcm9tIHN0cmluZyBkZWZpbmUuIFNtYWxsIGRvYyBpbXByb3ZlbWVudC4KCjIwMTEtMDUtMjQgMjA6Mjc6MDIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgcHJlc2V0OiB1c2UgZ3VpbnQgZm9yIHRoZSB2ZXJzaW9uIG51bWJlciBwYXJ0cwoJICBVc2UgdW5zaWduZWQgaW50ZWdlcnMgZm9yIGV4dHJhIHNhZmV0eSAobGlrZSB3ZSBkbyBpbiBwbHVnaW4gdmVyc2lvbiBwYXJzaW5nKS4KCjIwMTEtMDUtMjQgMTg6Mzk6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgcmVtb3ZlIHNvbWUgbW9yZSBkZXByZWNhdGVkIG1ldGhvZHMKCjIwMTEtMDUtMjQgMTg6Mjk6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSAgcGFkdGVtcGxhdGU6IHJlbW92ZSB1bnVzZWQgZmxhZwoKMjAxMS0wNS0yNCAxODoxNzoyNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIGZlYXR1cmU6IHVzZSBvYmplY3QgbmFtZQoJICBSZW1vdmUgdGhlIG5hbWUgcHJvcGVydHkgZnJvbSB0aGUgcGx1Z2luIGZlYXR1cmUgYW5kIHBvcnQgY29kZSB0byB1c2UgdGhlIG9iamVjdAoJICBuYW1lIGluc3RlYWQuCgoyMDExLTA1LTI0IDE4OjE2OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIHJlbW92ZSBvbGQgZ2xpYiBjaGVjawoKMjAxMS0wNS0yNCAxNzo0MzozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDUtMjQgMTc6MzY6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgc2NoZWR1bGluZzogcG9ydCB0byBuZXcgc2NoZWR1bGluZyBxdWVyeQoKMjAxMS0wNS0yNCAxMjo1MjowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc2NoZWR1bGluZy50eHQ6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogYWRkIFNDSEVEVUxJTkcgcXVlcnkKCSAgQWRkIGEgbmV3IHF1ZXJ5IHRvIHJlcGxhY2UgdGhlIGNoZWNrZ2V0cmFuZ2UgZnVuY3Rpb24uCgoyMDExLTA1LTI0IDE5OjQzOjU4ICswNTMwICBEZWJhcnNoaSBSYXkgPHJpc2hpQGdudS5vcmc+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogYWRkIGZhaWxfdW5sZXNzX2VxdWFsc19pbnQ2NAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUwOTczCgoyMDExLTA1LTI0IDE2OjE0OjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IEZvcndhcmQgc3RpY2t5IGV2ZW50cyB0byBuZXdseSBjcmVhdGVkIHNyY3BhZHMKCjIwMTEtMDUtMjQgMTY6MTM6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBGb3J3YXJkIHN0aWNreSBldmVudHMgdG8gbmV3bHkgY3JlYXRlZCBzcmNwYWRzCgoyMDExLTA1LTI0IDE2OjA4OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IEFkZCBnc3RfcGFkX3N0aWNreV9ldmVudHNfaXRlcmF0ZSgpIGZ1bmN0aW9uCgoyMDExLTA1LTI0IDEzOjI3OjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IEZpeCBmb3IgR3N0SXRlcmF0b3IgQVBJIGNoYW5nZXMKCjIwMTEtMDUtMjQgMTM6Mjg6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgUmV2ZXJ0ICJkZWJ1Z3V0aWxzOiBGaXggZm9yIEdzdEl0ZXJhdG9yIEFQSSBjaGFuZ2VzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGUxY2MzMTc2ZDZmYjgwMjNiYmUwYzczMzYxNWIyYThjNDIwYTIwNzcuCgkgIFRoaXMgaXMgbm90IHRoZSAwLjExIGJyYW5jaC4uLgoKMjAxMS0wNS0yNCAxMzoyNzowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBGaXggZm9yIEdzdEl0ZXJhdG9yIEFQSSBjaGFuZ2VzCgoyMDExLTA1LTI0IDA5OjQ4OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RwYWQuaAoKMjAxMS0wNS0yNCAwMDoyNjo0MCArMDMwMCAgS2lwcCBDYW5ub24gPGtjYW5ub25AY2l0YS51dG9yb250by5jYT4KCgkqIGdzdC9nc3RjbG9jay5oOgoJICBjbG9jazogaW1wcm92ZSB0aGUgR1NUX1RJTUVfRk9STUFUL0FSR1MgZG9jcwoKMjAxMS0wNS0yMyAyMzo0MDoyMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5oOgoJICBkb2NzOiBoaWRlIHRoaXMgZnJvbSB0aGUgZG9jcwoKMjAxMS0wNS0yMyAxODozMDoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogdXNlIEdTVF9TRUdNRU5UX0ZPUk1BVCBmb3Igc2VnbWVudHMKCjIwMTEtMDUtMjMgMTg6MTU6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgdHJhbnNmb3JtOiBmaXhlcyBmb3IgYnVmZmVycG9vbCBoYW5kbGluZwoJICBEb24ndCBlcnJvciBvdXQgd2hlbiB0aGUgYWxsb2NhdGlvbiBxdWVyeSByZXR1cm5zIHN1Y2Nlc3MuCgkgIERvIGJ1ZmZlcnBvb2wgcXVlcnkgYWZ0ZXIgd2UgcHVzaGVkIHRoZSBjYXBzIGV2ZW50IGRvd25zdHJlYW0gc28gdGhhdCB3ZSBjYW4gZ2V0CgkgIGEgZ29vZCBidWZmZXJwb29sIHN1Z2dlc3Rpb24uCgkgIEFsc28gcHJveHkgdGhlIGJ1ZmZlcnBvb2wgcXVlcnkgZG93bnN0cmVhbSB3aGVuIHdlIG9wZXJhdGUgaW4gaW5fcGxhY2UgbW9kZS4KCjIwMTEtMDUtMjMgMTg6MTQ6MjcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogaW1wcm92ZSBkZWJ1Z2dpbmcKCjIwMTEtMDUtMjMgMTY6NTM6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgdHJhbnNmb3JtOiByZXNldCByZWNvbmZpZ3VyZSBzdGF0ZQoJICBXaGVuIHdlIG5lZ290aWF0ZSBuZXcgY2FwcywgcmVzZXQgdGhlIHJlY29uZmlndXJlIHN0YXRlLgoKMjAxMS0wNS0yMCAxODo1NjozNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBXSVAgaGFuZGxlIGJ1ZmZlcnBvb2wKCjIwMTEtMDUtMjEgMTk6MDY6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogYXZvaWQgY2FsbGluZyBfc2V0X2NhcHMoKSBvbiB0aGUgc3JjcGFkCgkgIEF2b2lkIGluc3RhbGxpbmcgYSBzZXRjYXBzIGZ1bmN0aW9uIG9uIHRoZSBzcmNwYWQgYW5kIGNhbGxpbmcgdGhlIHNldGNhcHMKCSAgZnVuY3Rpb24sIHdlIGNhbiBkbyBtb3JlIGVmZmljaWVudGx5IHdpdGggc2VuZGluZyB0aGUgZXZlbnQgb3Vyc2VsZiBhbmQgY2FsbGluZwoJICBvdXIgdm1ldGhvZC4KCjIwMTEtMDUtMjAgMTY6MDM6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHBhZC5oCgkgIGdzdC9nc3RwbHVnaW4uaAoKMjAxMS0wNS0yMCAxNTo1ODoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiByZW1vdmUgc29tZSBtb3JlIGNvZGUKCSAgUmVtb3ZlIHNvbWUgbW9yZSB1bnVzZWQgY29kZSBmcm9tIGJhc2V0cmFuc2Zvcm0uCgkgIFByZXBhcmUgZm9yIGltcGxlbWVudGluZyBidWZmZXJwb29scy4KCjIwMTEtMDUtMjAgMTU6NTA6MDUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgYXBpCgoyMDExLTA1LTIwIDE1OjQ4OjA5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgZGVwcmVjYXRpb24tZ3VhcmRzOiBmaXh1cCBmb3IgY29tbWl0IDlmZjRlYzMxMDRkMjUxMGI4ZjM3OWZmMzhjNjcxNjgyZmY3OTVlMzMKCSAgUmVtb3ZlIHRoZSBkZXByZWNhdGlvbiBndWFyZHMgZm9yIEdTVF9QTFVHSU5fREVGSU5FX1NUQVRJQyBhZ2FpbiAoZXZlbiB0aG91Z2ggaXQKCSAgaXMgZGVwcmVjYXRlZCkgYXMgd2UgdXNlIGl0IGluIHRoZSB0ZXN0cy4gUmVtb3ZlICJfIiBmb3IgaW50bGlua2Z1bmMuCgoyMDExLTA1LTIwIDEzOjA2OjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDUtMjAgMTM6MDM6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogT25seSByZWluaXQgdGhlIGNhY2hlZCBHc3RDbG9ja0lEIGlmIGl0IGlzIGZvciB0aGUgc2FtZSBjbG9jawoJICBUaGUgY2xvY2sgbWlnaHQgaGF2ZSBjaGFuZ2VkIHNpbmNlIHRoZSBjbG9jayBJRCB3YXMgY3JlYXRlZCBhbmQgaW4KCSAgdGhhdCBjYXNlIHdlIGhhdmUgdG8gcmVxdWVzdCBhIG5ldyBvbmUuCgoyMDExLTA1LTIwIDEyOjQzOjI0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDogYWRkIG1ldGhvZCB0byBnZXQgbWV0YWRhdGEKCSAgQWRkIGEgbWV0aG9kIHRvIGdldCB0aGUgbWV0YWRhdGEgZnJvbSBhIGtsYXNzLgoKMjAxMS0wNS0yMCAxMjo0MzowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBmYWN0b3J5OiBmaXggdHlwbwoKMjAxMS0wNS0yMCAxMjoxODo0OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogQWx3YXlzIHNlbmQgYSBTRUdNRU5UIGV2ZW50IHdoZW4gdGhlIGFjdGl2ZSBwYWQgY2hhbmdlcwoKMjAxMS0wNS0yMCAxMjoxNjo1OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogRml4IGNvcHkmcGFzdGUgbWlzdGFrZSBpbiB0aGUgc3JjcGFkIGV2ZW50IGZ1bmN0aW9uCgoyMDExLTA1LTIwIDEyOjA3OjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHkKCjIwMTEtMDUtMjAgMTI6MDA6MTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFNlbmQgdXBzdHJlYW0gZXZlbnRzIHRvIGFsbCBzaW5rcGFkcywgbm90IG9ubHkgdGhlIHNlbGVjdGVkIG9uZQoJICBUaGlzIG1ha2VzIHN1cmUgdGhhdCBTRUVLIGV2ZW50cyBhcmUgc2VudCB0byBhbGwgdXBzdHJlYW0gZWxlbWVudHMsIHdoaWNoIGlzCgkgIHJlcXVpcmVkIGlmIGRpZmZlcmVudCBzdHJlYW1zIGFyZSBjb21wbGV0ZWx5IGRpc3RpbmN0IHBpcGVsaW5lIHBhcnRzLiBBbHNvIHRoaXMKCSAgYWxsb3dzIFFvUyB0byBiZSBkb25lIG9uIGRlc2VsZWN0ZWQgc3RyZWFtcywgZmx1c2hlcyB0byBiZSBoYW5kbGVkIGNvcnJlY3RseSwKCSAgZXRjLgoKMjAxMS0wNS0yMCAxMTozNjoyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkIHBlbmRpbmcgZXZlbnQgZm9yIHN0aWNreSBldmVudHMKCSAgQ2hhbmdlIHRoZSBzdGlja3kgZXZlbnQgYXJyYXkgc28gdGhhdCBpdCBjb250YWlucyBhIHBlbmRpbmcgYW5kIGFuIGFjdGl2ZSBldmVudC4KCSAgRXZlbnRzIG9uIHRoZSBzaW5rcGFkIGFyZSBjb3BpZWQgdG8gdGhlIHBlbmRpbmcgYXJyYXkgYW5kIGFmdGVyIHRoZSBldmVudGZ1bmMKCSAgcmV0dXJuZWQgVFJVRSwgbW92ZWQgdG8gdGhlIGFjdGl2ZSBldmVudC4gVGhpcyBhbGxvd3MgdXMgdG8gcXVldWUgbmV3IGV2ZW50cwoJICBsaWtlIHdoZW4gd2UgZG8gcGVyLXBhZCBvZmZzZXRzIHdpdGhvdXQgcmVtb3ZpbmcgdGhlIGN1cnJlbnRseSBhY3RpdmUgZXZlbnQuCgkgIFJlbW92ZSB0aGUgYWN0aXZlIGFyZ3VtZW50IGZyb20gdGhlIGdzdF9wYWRfZ2V0X3N0aWNreV9ldmVudCgpIG1ldGhvZCwgdGhlCgkgIHBlbmRpbmcgZXZlbnRzIGFyZSBub3Qgc29tZXRoaW5nIHdlIHdhbnQgdG8gZXhwb3NlLgoKMjAxMS0wNS0yMCAwMDozOToxMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cHJlc2V0Lmg6CgkgIHByZXNldDogaW5jbHVkZSBjbGVhbnVwCgkgIE9ubHkgaGF2ZSBpbmNsdWRlIGluIHRoZSBpbnN0YWxsZWQgaGVhZGVyIHdlIG5lZWQgdG8gdXNlIGl0LiBNb3ZlIHRoZSBpbmNsdWRlcwoJICBuZWVkZWQgYnkgdGhlIGltcGxlbWVudGF0aW9uIHRvIHRoZSBjIGZpbGUuCgoyMDExLTA1LTE5IDIzOjE5OjMwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmludGVyZmFjZXM6CgkgIGRvY3M6IHVwZGF0ZSBwbHVnaW4gaW50cm9zcGVjdGlvbiBkYXRhCgkgIE5vdyBtb3JlIGZpbGVzIGFyZSBtZXJnZWQgYW5kIHByb2R1Y2VkIGluIGEgY2Fub25pY2FsIGZhc2hpb24sIHdoaWNoIGhvcGVmdWxseQoJICBjcmVhdGVzIGxlc3Mgb3Igbm8gZGVsdGEgaW4gdGhlIGZ1dHVyZS4KCjIwMTEtMDUtMTkgMjI6NTY6MjggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gOWU1YmJkNSB0byA2OWI5ODFmCgoyMDExLTA1LTE5IDE5OjA3OjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogY2FwcyBhcmUgbm90IHN0b3JlZCBvbiBmbHVzaGluZyBwYWRzCgkgIENhcHMgYXJlIG5vdyBhbHNvIHN0b3JlZCBvbiBmbHVzaGluZyBwYWRzIGluIHRoZSBpbmFjdGl2ZSBzdGF0ZS4KCjIwMTEtMDUtMTkgMTk6MDE6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYXBwbHkgcGFkIG9mZnNldCBvbiBzaW5rcGFkIGV2ZW50cyB0b28KCSAgQXBwbHkgdGhlIHBhZCBvZmZzZXQgaW4gdGhlIHNlbmRfZXZlbnQoKSBmdW5jdGlvbiBhcyB3ZWxsLgoKMjAxMS0wNS0xOSAxODoyNzo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhZGQgcGVyLXBhZCBvZmZzZXRzCgkgIFdoZW4gbGlua2luZyBwYWRzIGFuZCB3aGVuIGNvcHlpbmcgYSBzZWdtZW50IGV2ZW50IGZyb20gdGhlIHNvdXJjIHBhZCB0byB0aGUKCSAgc2lua3BhZCwgYXBwbHkgdGhlIHNyYyBhbmQgc2lua3BhZCBvZmZzZXRzIHRvIHRoZSBzZWdtZW50IGJhc2UuIE1ha2Ugc3VyZSB0aGF0CgkgIHdlIG9ubHkgbW9kaWZ5IHRoZSBldmVudCBzdG9yZWQgb24gdGhlIHNpbmtwYWQgYW5kIG5ldmVyIHRoZSBvbmUgb24gdGhlIHNvdXJjZQoJICBwYWQuCgkgIFdoZW4gY2hhbmdpbmcgdGhlIHBhZCBvZmZzZXQsIHBlcmZvcm0gdGhlIHNlZ21lbnQgY29weSB3aXRoIHRoZSB1cGRhdGVkIG9mZnNldHMuCgkgIFdoZW4gcHVzaGluZyBhIHNlZ21lbnQgZXZlbnQsIGFwcGx5IHRoZSBzcmNwYWQgb2Zmc2V0IGJlZm9yZSBzZW5kaW5nIHRoZSBldmVudAoJICB0byB0aGUgcGVlciBwYWQuCgkgIFRoaXMgcGFydCBpcyBtaXNzaW5nIHRoZSBhZGp1c3RtZW50IG9mIHRoZSBzZWdtZW50IGV2ZW50IG9uIHRoZSBzaW5rcGFkLCB3aGljaAoJICBpcyBmb3IgYSBsYXRlciBwYXRjaC4KCjIwMTEtMDUtMTkgMTY6MjY6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgbWV0aG9kcyB0byBhZGp1c3QgdGhlIG9mZnNldAoJICBBZGQgbWV0aG9kcyB0byBhZGp1c3QgdGhlIG9mZnNldC4gVGhpcyB3aWxsIGJlIHVzZWQgdG8gY2hhbmdlIHRoZSBzZWdtZW50IGV2ZW50cwoJICB3aXRoIGFuIG9mZnNldCBzbyB0aGF0IHdlIGNhbiB0d2VhayB0aGUgdGltaW5nIG9mIHRoZSBzdHJlYW0gb24gYSBwZXItcGFkIGJhc2UuCgoyMDExLTA1LTE5IDEyOjExOjQzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSAgaW5wdXRzZWxlY3RvcjogUG9ydCB0byB0aGUgbmV3IHNlZ21lbnQgQVBJCgkgIFRoZSBzd2l0Y2ggYWN0aW9uIHNpZ25hbCB3aXRoIHRoZSBzdG9wIGFuZCBzdGFydCBydW5uaW5nIHRpbWVzCgkgIGlzIG5vdCBuZWNlc3NhcnkgYW55bW9yZS4gQ2xvc2luZyBvZiBzZWdtZW50cyBpcyBub3QgbmVjZXNzYXJ5CgkgIGFuZCBhZGp1c3RpbmcgdGhlIHN0YXJ0IHJ1bm5pbmcgdGltZSBvZiBhIHNlZ21lbnQgY2FuIGxhdGVyIGJlCgkgIGRvbmUgd2l0aCBuZXcgR3N0UGFkIEFQSS4KCjIwMTEtMDUtMTkgMTE6MzA6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGdob3N0cGFkLmgKCjIwMTEtMDUtMTggMTk6NDM6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogc3RvcmUgc3RpY2t5IGV2ZW50cyBvbiBmbHVzaGluZyBzaW5rcGFkcyB0b28KCSAgRmlyc3Qgc3RvcmUgdGhlIHN0aWNreSBldmVudCBvbiB0aGUgc2lua3BhZCBpbiB0aGUgaW5hY3RpdmUgc3RhdGUsIHRoZW4gY2hlY2sKCSAgZm9yIHRoZSBmbHVzaGluZyBmbGFnLiBXZSB3YW50IHRvIGhhdmUgdGhlIGV2ZW50cyBvbiBzaW5rcGFkcyBhdCBhbGwgdGltZXMsCgkgIHJlYWR5IHRvIGJlIGFjdGl2YXRlZCB3aGVuIHRoZSBwYWQgYmVjb21lcyBhY3RpdmUuCgoyMDExLTA1LTE4IDE4OjUzOjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG1vdmUgY2FwcyBjaGVjayB0byBjZW50cmFsIGxvY2F0aW9uCgkgIE1ha2UgYSBmdW5jdGlvbiB0byBjYWxsIHRoZSBldmVudGZ1bmMgYW5kIHBlcmZvcm0gYSBjYXBzIGNoZWNrIHdoZW4gd2UgYXJlCgkgIGRpc3BhdGNoaW5nIGEgY2FwcyBldmVudC4KCSAgVGhpcyBtYWtlcyBzdXJlIHRoYXQgYWxsIGNvZGUgcGF0aHMgY29ycmVjdGx5IGNoZWNrIHRoYXQgdGhlIGNhcHMgYXJlCgkgIGFjY2VwdGFibGUgYmVmb3JlIHNlbmRpbmcgdGhlIGNhcHMgdG8gdGhlIGV2ZW50ZnVuY3Rpb24uCgoyMDExLTA1LTE4IDE4OjUyOjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBhdm9pZCBjYWxsaW5nIHNldGNhcHMgdG9vIG1hbnkgdGltZXMKCSAgRG9uJ3QgY2FsbCBzZXRjYXBzLCB0aGUgY2FwcyBldmVudCB3aWxsIHRha2UgY2FyZSBvZiBwcm9wYWdhdGluZyB0aGUgY2FwcyBvbiBhbGwKCSAgcGFkcy4KCjIwMTEtMDUtMTggMTg6NDg6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGFkZCBhbGxvY2F0aW9uIHF1ZXJ5IG5hbWUKCSAgQWRkIEFMTE9DQVRJT04gcXVlcnkgbmFtZSBhbmQgZ3VhcmQgc29tZSBmdW5jdGlvbnMgYWdhaW5zdCBpbnZhbGlkIHF1ZXJpZXMuCgoyMDExLTA1LTE4IDE2OjU2OjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBldmVudDogTWFrZSBTRUdNRU5UIGV2ZW50IHBhcnNpbmcgQVBJIG1vcmUgY29uc2lzdGVudCB3aXRoIHRoZSBvdGhlcnMKCjIwMTEtMDUtMTggMTY6NDc6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogcmVsYXggY2FwcyBjaGVjawoJICBBbHNvIHJ1biB0aGUgY2FwcyB0cmFuc2Zvcm0gZnVuY3Rpb24gb24gQU5ZIGNhcHMsIGxpa2Ugd2UgdXNlZCB0byBkbyBiZWZvcmUuCgkgIFRoaXMgbWFrZXMgc3VyZSB0aGF0IGNhcHNmaWx0ZXIgaGFzIGEgY2hhbmNlIHRvIGZpbHRlciBBTlkgY2FwcyBhcyB3ZWxsLgoKMjAxMS0wNS0xOCAxNjoyOToxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRG9uJ3QgZm9yZ2V0IHRvIHRha2UgdGhlIG9iamVjdCBsb2NrIHdoZW4gZ2V0dGluZyBhIHN0aWNreSBldmVudAoKMjAxMS0wNS0xOCAxNjoyNjozMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBBZGQgZnVuY3Rpb24gdG8gZ2V0IHN0aWNreSBldmVudHMgZnJvbSBhIHBhZAoJICBBUEk6IGdzdF9wYWRfZ2V0X3N0aWNreV9ldmVudCgpCgoyMDExLTA1LTE4IDE1OjQzOjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJICBldmVudDogZml4IGV2ZW50IGNvcHkKCSAgRml4IHBhcmVudCByZWZjb3VudCBvbiBldmVudCBjb3B5LgoJICBGaXggdW5pdCB0ZXN0LgoKMjAxMS0wNS0xOCAxNToyOToyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBub3RpZnkgY2FwcyBwcm9wZXJ0eSBjaGFuZ2UgaW4gY2FsbHNldGNhcHMKCSAgTm90aWZ5IHRoZSBjYXBzIHByb3BlcnR5IGNoYW5nZSBpbiB0aGUgYmFja3dhcmRzIGNvbXBhdGlibGUgZnVuY3Rpb24gdG8gY2FsbCB0aGUKCSAgc2V0Y2FwcyBmdW5jdGlvbi4KCjIwMTEtMDUtMTggMTY6MDk6MTkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZmQzNTA3MyB0byA5ZTViYmQ1CgoyMDExLTA1LTE4IDE1OjA0OjQ4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiByZW1vdmUgR3N0UHJveHlQYWQgZnJvbSBwcml2YXRlIHNlY3Rpb24KCjIwMTEtMDUtMTggMTU6MDI6MDIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBkb2NzOiB1c2UgdGhlIHNhbWUgbmFtZSBmb3IgdGhlIGFyZ3VtZW50IGluIHByb3RvdHlwZSBhbmQgZG9jcwoKMjAxMS0wNS0xOCAxNDo1OTo0NSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtYW51YWw6IHB1dCBnZW5lcmF0ZWQgc291cmNlcyB0byBCVUlMVF9TT1VSQ0VTIGFuZCBjbGVhbiB0aGVtIG9uIG1ha2UgY2xlYW4KCjIwMTEtMDUtMTggMTM6MTk6MzEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA1LTE4IDEzOjE0OjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RtaW5pb2JqZWN0LmMKCSAgZ3N0L2dzdHBhZC5jCgkgIGdzdC9nc3RwYWQuaAoJICBnc3QvZ3N0cGx1Z2luLmgKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYwoKMjAxMS0wNS0xOCAxNDoxMDoxMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtYW51YWw6IHJlaW5zZXJ0IG1pc3Npbmcgc3BhY2UgdG8gZml4IHByZXZpb3VzIGNvbW1pdAoKMjAxMS0wNS0xOCAxMzo1NDo0MiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtYW51YWw6IHNpbXBsaWZ5IHRoZSBzbmlwZXQgZXh0cmFjdGlvbiBydWxlcwoJICBVc2UgJDwgaW5zdGVhZCBvZiByZXBlYXRpbmcgdGhlIG5hbWUgb2YgdGhlIGRlcGVuZGVuY3kuCgoyMDExLTA1LTE4IDEwOjU5OjM4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1hbnVhbDogZG9uJ3QgZXh0cmFjdCB0aGUgeG1sIGV4YW1wbGUgYW55bW9yZSwgaXRzIGdvbmUKCSAgQXMgYSBmb2xsb3d1cCBmb3IgY29tbWl0IGNkYTVhMzUzZDI3MzI2YzAyNzJhNzljOTJjMTFjMjIxYTQwOTJkYTQgZG9uJ3QgdHJ5CgkgIGV4dHJhY3RpbmcgYW4gZXhhbXBsZSB0aGF0IGhhcyBiZWVuIHJlbW92ZWQuCgoyMDExLTA1LTE4IDEyOjIzOjM5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDQ2ZGZjZWEgdG8gZmQzNTA3MwoKMjAxMS0wNS0xOCAxMToyMTo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgZG9jczogdXBkYXRlIGRvY3Mgc29tZSBtb3JlCgoyMDExLTA1LTE4IDExOjA4OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiByZXdvcmsgc3RpY2t5IGV2ZW50cyBhIGxpdHRsZQoJICBVcGRhdGUgdGhlIGRlc2lnbiBkb2NzIHdpdGggc29tZSBjbGVhciBydWxlcyBmb3IgaG93IHN0aWNreSBldmVudHMgYXJlCgkgIGhhbmRsZWQuCgkgIFJlaW1wbGVtZW50IHRoZSBzdGlja3kgdGFncywgdXNlIGEgc21hbGwgc3RydWN0dXJlIHRvIGhvbGQgdGhlIGV2ZW50IGFuZCBpdHMKCSAgY3VycmVudCBzdGF0ZSAoYWN0aXZlIG9yIGluYWN0aXZlKS4KCSAgRXZlbnRzIG9uIHNpbmtwYWRzIG9ubHkgYmVjb21lIGFjdGl2ZSB3aGVuIHRoZSBldmVudCBmdW5jdGlvbiByZXR1cm5lZCBzdWNjZXNzCgkgIGZvciB0aGUgZXZlbnQuCgkgIFdoZW4gbGlua2luZywgb25seSB1cGRhdGUgZXZlbnRzIHRoYXQgYXJlIGRpZmZlcmVudC4KCSAgQXZvaWQgbWFraW5nIGEgY29weSBvZiB0aGUgZXZlbnQgYXJyYXksIHVzZSB0aGUgb2JqZWN0IGxvY2sgdG8gcHJvdGVjdCB0aGUgZXZlbnQKCSAgYXJyYXkgYW5kIHJlbGVhc2UgaXQgb25seSB0byBjYWxsIHRoZSBldmVudCBmdW5jdGlvbi4gVGhpcyB3aWxsIG5lZWQgdG8gY2hlY2sKCSAgaWYgc29tZXRoaW5nIGNoYW5nZWQsIGxhdGVyLgoJICBEaXNhYmxlIGEgdGVzdCBpbiB0aGUgdW5pdCB0ZXN0LCBpdCBjYW4ndCB3b3JrIHlldC4KCjIwMTEtMDUtMTcgMjI6MTc6MTQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBtYWludGFpbiBmcmFtZSBzdGF0ZSBkdXJpbmcgZnJhbWUgcGFyc2luZyByb3VuZAoJICBTZWUgIzY1MDA5My4KCjIwMTEtMDUtMTIgMTE6NTU6MjAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBwcm92aWRlIGxhdGVuY3kgcXVlcnkgc3VwcG9ydAoKMjAxMS0wNS0xNyAyMjoxNTozOCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG1ha2UgbWluaW11bSBmcmFtZSBzaXplIGhhbmRsaW5nIG1vcmUgZWZmaWNpZW50IGFuZCBjb252ZW5pZW50CgkgIFdoaWxlIHNvbWUgZm9ybWF0cyBhbGxvdyBzdWJjbGFzcyB0byBkZXRlcm1pbmUgYSBzcGVjaWZpYyBzdWJzZXF1ZW50CgkgIG5lZWRlZCBmcmFtZSBzaXplLCBvdGhlcnMgbWF5IHRvIG5lZWQgdG8gc2NhbiBmb3IgbWFya2VycyBhbmQgY2FuIG9ubHkKCSAgcmVxdWVzdCAnYWRkaXRpb25hbCBkYXRhJyBieSB3aGF0ZXZlciByZWFzb25hYmxlIGF2YWlsYWJsZSBzdGVwLgoJICBJbiBwdXNoIG1vZGUsIHRyeWluZyB0byBtaW5pbWl6ZSBhZGRpdGlvbmFsIGxhdGVuY3kgbGVhZHMgdG8gc3RlcCBzaXplCgkgIGJlaW5nIHRoZSBuZXh0IGlucHV0IGJ1ZmZlci4gIEluIHB1bGwgbW9kZSwgYW55IHJlYXNvbmFibGUgc3RlcCBzaXplCgkgIChzdWNoIGFzIGFscmVhZHkgdXNlZCBieSBidWZmZXIgY2FjaGluZykgY2FuIGJlIGFwcGxpZWQuCgoyMDExLTA1LTE3IDIyOjM4OjE0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogc2V0IGNvcnJlY3QgYnVmZmVyIHNpemUKCjIwMTEtMDUtMDYgMTA6NTQ6MDggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGluc3BlY3Q6IHNob3cgZmxhZ3MgdGhlIHNhbWUgd2F5IHRoZXkgbmVlZCB0byBiZSBlbnRlcmVkCgkgIFRoZSAoZGUpc2VyaWFsaXNhdGlvbiB1c2VzICIrIiBhbmQgbm90ICIgfCAiLgoKMjAxMS0wNC0yOCAxMTozNDozOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICBwbHVnaW5mZWF0dXJlOiBhdm9pZCBkdXBsaWNhdGluZyBmZWF0dXJlLT5uYW1lCgkgIFRoZSBmZWF0dXJlIG5hbWUgaXMgbm90IHN1cHBvc2VkIHRvIGNoYW5nZSBvdmVyIHRpbWUgYW55d2F5LiBJbiBvcmRlciB0byBlbmZvcmNlCgkgIHRoaXMgcGFyZW50aXplIGZlYXR1cmVzIHRvIHRoZSByZWdpc3RyeSBhbmQgbWFrZSB0aGUgZmVhdHVyZS0+bmFtZSBwb2ludGluZyB0bwoJICBHc3RPYmplY3Q6bmFtZS4gSW4gMC4xMSB3ZSBjb3VsZCBjb25zaWRlciBvZiByZW1vdmluZyB0aGUgZmVhdHVyZS0+bmFtZSB2YXJpYWJsZQoJICAoRklYTUUgY29tbWVudCBhZGRlZCkuCgkgIEZpeGVzOiAjNDU5NDY2CgoyMDExLTA1LTAyIDE1OjM2OjE0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgZG9jczogYWRkIGRlcHJlY2F0aW9uIGd1YXJkcwoJICBNb3ZlIEdzdFBhZEludExpbmtGdW5jdGlvbiB0byBwcml2YXRlIGhlYWRlciB0byBhdm9pZCBhIGRvemVuICNpZmRlZnMuIFVzZSBhCgkgIGdwb2ludGVyIGluIHB1YmxpYyBoZWFkZXIgaW5zdGVhZC4KCjIwMTEtMDUtMTcgMTk6MDM6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3QgcHVzaCBzdGlja3kgZXZlbnRzIG9uIGZsdXNoCgkgIE9ubHkgYWxsb3cgc2VyaWFsaXplZCBhbmQgbm9uLWZsdXNoIGV2ZW50cyBmb3J3YXJkIHRoZSBzdGlja3kgZXZlbnRzLgoKMjAxMS0wNS0xNyAxODoyMzoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICB0ZXN0OiByZXNldCBwYWQgY2FwcyBwcm9wZXJseQoKMjAxMS0wNS0xNyAxODoyMzowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhZGQgbW9yZSBkZWJ1ZwoKMjAxMS0wNS0xNyAxODoyMTozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogcmVtb3ZlIHVudXNlZCBjb2RlCgkgIFRoZSBjb2RlIHRvIG1ha2Ugc3VyZSB0aGF0IGNhcHMgYXJlIHByb3Blcmx5IHNldCBvbiBib3RoIHBhZHMsIGl0IG5vdyBoYXBwZW5zCgkgIGF1dG9tYXRpY2FsbHkgd2l0aCB0aGUgY2FwcyBldmVudC4KCjIwMTEtMDUtMTcgMTc6NTM6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICB0ZXN0czogZml4IHRlc3RzCgkgIFJlbW92ZSB0aGUgdGVzdHMgdGhhdCBoYW5kbGUgaW5jb21wYXRpYmxlIGZvcm1hdHMsIHdlIGRvbid0IHdhbnQgdGhhdCBhbnltb3JlLgoKMjAxMS0wNS0xNyAxNzo1MTo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IGhhbmRsZSB3cmFwYXJvdW5kIGJldHRlcgoJICBOb3cgdGhhdCB3ZSB1c2UgdW5zaWduZWQgdmFsdWVzIGZvciB0aGUgc2VnbWVudCwgaGFuZGxlIHdyYXBhcm91bmQgd2hlbiBzZWVraW5nCgkgIGJldHRlci4KCjIwMTEtMDUtMTcgMTY6NTA6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogcmVtb3ZlIHVucmVmLCB0aGUgb2JqZWN0IGlzIE5VTEwKCjIwMTEtMDUtMTcgMTQ6MDE6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogVGhlIFJFQ09ORklHVVJFIGVsZW1lbnQgb25seSBleGlzdHMgaW4gMC4xMQoJICBJbXBsZW1lbnRpbmcgaXQgcHJvcGVybHkgaW4gMC4xMCBzZWVtcyB0byBiZSBpbXBvc3NpYmxlLgoKMjAxMS0wNS0xNyAxMzoxMzoxMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogVXBkYXRlIGZvciBjYXBzL3BhZCB0ZW1wbGF0ZSByZWxhdGVkIEFQSSBjaGFuZ2VzCgoyMDExLTA1LTE3IDEyOjI1OjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNlOiBVcGRhdGUgZm9yIGNhcHMvcGFkIHRlbXBsYXRlIHJlbGF0ZWQgQVBJIGNoYW5nZXMKCjIwMTEtMDUtMTcgMTI6MDQ6MjcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0OiBVcGRhdGUgZm9yIGNhcHMvcGFkIHRlbXBsYXRlIHJlbGF0ZWQgQVBJIGNoYW5nZXMKCjIwMTEtMDUtMTcgMTI6MTI6MjMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogQ29uc2lkZXIgR3N0UGFkVGVtcGxhdGUgYXMgaW1tdXRhYmxlCgkgIERvbid0IGNvcHkgdGhlIHRlbXBsYXRlcyB3aGVuIGNyZWF0aW5nIHN1YmNsYXNzZXMgYnV0IG9ubHkgaW5jcmVhc2UKCSAgdGhlaXIgcmVmY291bnQuCgoyMDExLTA1LTE3IDEyOjEwOjI3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBwYWR0ZW1wbGF0ZTogQ3JlYXRlIHBhZCB0ZW1wbGF0ZXMgd2l0aCBmbG9hdGluZyByZWZzCgkgIEFuZCB0YWtlIG93bmVyc2hpcCBvZiB0aGUgZmxvYXRpbmcgcmVmIGluIGdzdF9lbGVtZW50X2FkZF9wYWRfdGVtcGxhdGUoKQoKMjAxMS0wNS0xNyAxMjowNzowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgcGFkdGVtcGxhdGU6IEltcHJvdmUgcmVmZXJlbmNlIGhhbmRsaW5nIG9mIHRoZSB0ZW1wbGF0ZSdzIGNhcHMKCSAgZ3N0X3BhZF90ZW1wbGF0ZV9uZXcoKSBkb2VzIG5vdCB0YWtlIG93bmVyc2hpcCBvZiB0aGUgY2FwcyBhbnltb3JlLgoKMjAxMS0wNS0xNiAxMzozOToyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBkZWxheSBwcml2YXRlIGRhdGEgaW5pdGlhbGlzYXRpb24gdW50aWwgYWN0dWFsbHkgbmVlZGVkCgkgIFdlIG9ubHkgdXNlIHRoZSBwcml2YXRlIGluc3RhbmNlIGRhdGEgZm9yIHdlYWsgcmVmZXJlbmNlcyBmb3Igbm93LAoJICBzbyBjYW4gZGVsYXkgaW5pdGlhbGlzYXRpb24gdW50aWwgYWN0dWFsbHkgbmVlZGVkIChtaWNyb29wdGltaXNhdGlvbikKCjIwMTEtMDUtMTcgMTE6NTk6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBwYWQ6IExldCB0ZW1wbGF0ZSByZWxhdGVkIGZ1bmN0aW9ucyByZXR1cm4gbmV3IHJlZmVyZW5jZXMKCSAgZ3N0X3BhZF90ZW1wbGF0ZV9nZXRfY2FwcygpLCBnc3RfcGFkX2dldF9wYWRfdGVtcGxhdGVfY2FwcygpCgkgIGFuZCBnc3RfcGFkX2dldF9wYWRfdGVtcGxhdGUoKSByZXR1cm4gYSBuZXcgcmVmZXJlbmNlIG9mIHRoZQoJICBjYXBzIG9yIHRlbXBsYXRlIG5vdyBhbmQgdGhlIHJldHVybiB2YWx1ZSBuZWVkcyB0byBiZQoJICB1bnJlZmZlZCBhZnRlciB1c2FnZS4KCjIwMTEtMDUtMTcgMTE6NDU6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJICBSZXZlcnQgImV2ZW50OiBleGFtcGxlIG9mIGhvdyB0byBvcHRpbWl6ZSBldmVudHMiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZmEyOGUyYzVlNmU1ZTE3MmJlMzA4YzBjNTBmNDRlZDZmMzllMWE3MS4KCSAgVGhlIG9wdGltaXphdGlvbiBvbmx5IGhhcyBtaW5pbWFsIGltcGFjdCBvbiB0aGUgcGVyZm9ybWFuY2UgYW5kCgkgIG1ha2VzIGV2ZXJ5dGhpbmcgbW9yZSBjb21wbGV4LgoKMjAxMS0wNS0xNyAxMTo0NTo0MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgUmV2ZXJ0ICJldmVudDogdXBkYXRlIHRoZSBzdHJ1Y3R1cmUgd2hlbiBuZWVkZWQiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOTA1MTAwY2RiZTU4MGQ0ZDE4MmJmZDlkNWVjOWIzNjhhMTEwZjQ2NC4KCjIwMTEtMDUtMTcgMTE6MjI6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IEZpeCBjb21waWxhdGlvbgoKMjAxMS0wNS0xNyAxMToyMDowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmRzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzoKCSAgUmV2ZXJ0ICJxdWVyeTogYWxsb3cgX21ha2Vfd3JpdGFibGUgb24gcXVlcnkgaGFuZGxlcnMiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgY2Y0ZmJjMDA1YzVjNTMwYzJhNTA5YTk0M2EwNWI5MWQ2YzlhZjNmYi4KCSAgVGhpcyBjaGFuZ2UgZGlkIG5vdCBpbXByb3ZlIHRoZSBzaXR1YXRpb24gZm9yIGJpbmRpbmdzIGJlY2F1c2UKCSAgcXVlcmllcyBhcmUgdXN1YWxseSBjcmVhdGVkLCB0aGVuIGRpcmVjdGx5IHBhc3NlZCB0byBhIGZ1bmN0aW9uCgkgIGFuZCBub3Qgc3RvcmVkIGVsc2V3aGVyZSwgYW5kIHRoZSB3cml0YWJpbGl0eSBwcm9ibGVtIHdpdGgKCSAgbWluaW9iamVjdHMgdXN1YWxseSBoYXBwZW5zIHdpdGggYnVmZmVycyBvciBjYXBzIGluc3RlYWQuCgoyMDExLTA1LTE3IDExOjE5OjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgUmV2ZXJ0ICJiaW46IERlcmVmZXJlbmNlIEdzdFF1ZXJ5KiogYmVmb3JlIHBhc3NpbmcgaXQgdG8gR1NUX1FVRVJZX1RZUEVfTkFNRSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA0MzdjOTJiNDAzZTBjN2RhOWI5ZDQ1MDllZjRmZmJkMDU3MTBkZjJiLgoKMjAxMS0wNS0xNyAxMToxOToxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkgIFJldmVydCAiZ2hvc3RwYWQ6IGZpeCBnX3JldHVybl8qIHdpdGggbmV3IHF1ZXJ5IgoJICBUaGlzIHJldmVydHMgY29tbWl0IDg3N2MxYzI4ZmY5NTdjYTkyOTExZWFkZmM3ODVmODY2MWQ5ZTAxMjcuCgoyMDExLTA1LTE3IDA5OjQwOjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZgoKMjAxMS0wNS0xNyAwOTozNTo1NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgc3RydWN0dXJlOiBNYWtlIGJvdGggcGFyYW1ldGVycyB0byBnc3Rfc3RydWN0dXJlX2lzX2VxdWFsKCkgY29uc3QKCjIwMTEtMDUtMTcgMDk6MzM6NDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IFVwZGF0ZSBTaW5jZSBtYXJrZXJzIHRvIHRoZSBjb3JyZWN0IHZlcnNpb24KCjIwMTEtMDUtMTcgMDk6MzM6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzdHJ1Y3R1cmU6IEFkZCBnc3Rfc3RydWN0dXJlX2ludGVyc2VjdCgpCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9pbnRlcnNlY3QoKQoKMjAxMC0wOS0xMCAxODozMzozNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0c3RydWN0dXJlOiBBZGQgZ3N0X3N0cnVjdHVyZV9jYW5faW50ZXJzZWN0IEFQSQoJICBBbGxvd3MgY2hlY2tpbmcgaWYgdHdvIHN0cnVjdHVyZXMgY2FuIGludGVyc2VjdCB3aXRob3V0IGhhdmluZyB0bwoJICBnbyB0aHJvdWdoIEdzdENhcHMKCSAgQVBJOiBnc3Rfc3RydWN0dXJlX2Nhbl9pbnRlcnNlY3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyOTMwMAoKMjAxMC0wOS0xMCAxODoxNDowNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0cnVjdHVyZTogTmV3IEFQSTogZ3N0X3N0cnVjdHVyZV9pc19lcXVhbAoJICBBbGxvd3MgY2hlY2tpbmcgZXF1YWxpdHkgb2YgR3N0U3RydWN0dXJlIHdpdGhvdXQgaGF2aW5nIHRvIGNyZWF0ZQoJICBpbnRlcm1lZGlhcnkgR3N0Q2Fwcy4KCSAgQVBJOiBnc3Rfc3RydWN0dXJlX2lzX2VxdWFsCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjkzMDAKCjIwMTEtMDUtMTYgMTk6MDk6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdGVzdHM6IHNldCBlbGVtZW50cyBpbiBQQVVTRUQKCSAgU2V0IGVsZW1lbnRzIGluIFBBVVNFRCBiZWZvcmUgdHJ5aW5nIHRvIHNldCBjYXBzIG9uIHBhZHMuCgoyMDExLTA1LTE2IDE5OjA1OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIHRlc3Q6IGZpeCBnaG9zdHBhZCB0ZXN0CgkgIFdlIG5lZWQgdG8gaGF2ZSBhY3RpdmF0ZWQgcGFkcyBiZWZvcmUgd2UgY2FuIHBhc3MgYXJvdW5kIGNhcHMuCgkgIERvbid0IHNldCBOVUxMIGNhcHMgb24gcGFkcy4KCjIwMTEtMDUtMTYgMTk6MDQ6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYXZvaWQgc2V0dGluZyBOVUxMIGNhcHMgb24gcGFkcwoKMjAxMS0wNS0xNiAxODo0ODoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBmaXggYnVmZmVyIHJlZmNvdW50aW5nCgkgIFdoZW4gd2UgZmFpbCB0byBhbGxvY2F0ZSBhbiBvdXRwdXQgYnVmZmVyLCBzZXQgdGhlIGJ1ZmZlciBwb2ludGVyIHRvIE5VTEwgb3IKCSAgZWxzZSB0aGUgY2FsbGluZyBmdW5jdGlvbiB3aWxsIHRyeSB0byB1bnJlZiBpdC4KCSAgUmVtb3ZlIHNvbWUgb2xkIGNvbW1lbnRzCgoyMDExLTA1LTE2IDE4OjI5OjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IGFsbG93IE5VTEwgZmlsdGVycyBhbmQgZml4IHJlZmNvdW50aW5nCgoyMDExLTA1LTE2IDE4OjEyOjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2Fwczogb25seSBhZGQgdGhlIHN0cnVjdHVyZSB3aGVuIHdlIGNvdWxkIHNldCB0aGUgcGFyZW50CgoyMDExLTA1LTE2IDE3OjUzOjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBmaXggZ19yZXR1cm5fKiB3aXRoIG5ldyBxdWVyeQoKMjAxMS0wNS0xNiAxNzoyNDoxMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBsaXN0IG9mIGV4cG9ydGVkIHN5bWJvbHMKCjIwMTEtMDUtMTYgMTY6NTk6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogaGFuZGxlIG1vcmUgZm9ybWF0cwoJICBVc2UgdGhlIHNlZ21lbnQgZm9ybWF0IGluc3RlYWQgb2YgYSBoYXJkY29kZWQgX1RJTUUuCgoyMDExLTA1LTE2IDE2OjU3OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogaGFuZGxlIG1vcmUgZm9ybWF0cwoJICBEb24ndCBoYXJkY29kZSBHU1RfRk9STUFUX1RJTUUgaW4gcGxhY2VzLCB3ZSBjYW4gd29yayB3aXRoIG1hbnkgZm9ybWF0cy4KCjIwMTEtMDUtMTYgMTY6NTQ6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICcwLjExJyBvZiBzc2g6Ly9naXQuZnJlZWRlc2t0b3Aub3JnL2dpdC9nc3RyZWFtZXIvZ3N0cmVhbWVyIGludG8gMC4xMQoKMjAxMS0wNS0xNiAxNjo1MzowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgY29uZmlndXJlLmFjCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQKCSAgZ3N0L2dzdGJpbi5jCgkgIGdzdC9nc3RlbGVtZW50LmMKCSAgZ3N0L2dzdGVsZW1lbnQuaAoJICBnc3QvZ3N0Z2hvc3RwYWQuYwoJICBnc3QvZ3N0bWluaW9iamVjdC5jCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmgKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmMKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYwoKMjAxMS0wNS0xNiAxNjoxMDo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1jb21wb25lbnRzLnhtbDoKCSAgdXBkYXRlIG1hbnVhbCBjb2RlIGV4YW1wbGVzIGZvciBuZXcgX2dldF9jYXBzKCkKCjIwMTEtMDUtMTMgMDg6MzQ6MzMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkgIHRlc3RzOiBVcGRhdGUgZm9yIG5lZ290aWF0aW9uIHJlbGF0ZWQgQVBJIGNoYW5nZXMKCjIwMTEtMDUtMTEgMTU6Mzg6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZWxlbWVudHM6IFVwZGF0ZSBmb3IgbmVnb3RpYXRpb24gcmVsYXRlZCBBUEkgY2hhbmdlcwoJICBUaGUgZmlsdGVyIGNhcHMgYXJlIG9ubHkgZm9yd2FyZGVkIGFuZCByZXR1cm5lZCBpbnN0ZWFkCgkgIG9mIEFOWSBjYXBzIGluIHRoZSBjb3JlIGVsZW1lbnRzIGJlY2F1c2UgdGhleSBkb24ndCBkbwoJICBhbnl0aGluZyBjYXBzIHNwZWNpZmljLgoKMjAxMS0wNS0xMSAxNToxMjowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2U6IEltcHJvdmUgbmVnb3RpYXRpb24gd2l0aCBuZXcgZ2V0Y2FwcygpIGZpbHRlcgoKMjAxMS0wNS0xMCAxNzo1NjozMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZ3N0OiBBZGQgYSBmaWx0ZXIgY2FwcyBwYXJhbWV0ZXIgdG8gYWxsIGdldF9jYXBzKCkgZnVuY3Rpb25zCgkgIFRoaXMgaXMgdXNlZCB0byBwYXNzIHRoZSBwb3NzaWJsZSBjYXBzIGFuZCBwcmVmZXJlbmNlcyB0bwoJICB0aGUgcGFkIGFuZCB0byBhbGxvdyBiZXR0ZXIgbmVnb3RpYXRpb24gZGVjaXNpb25zLgoKMjAxMS0wNC0xOSAyMDowNTowNyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IGFkanVzdCBpbnB1dCBkYXRhIHJhdGUgZXN0aW1hdGlvbgoJICAuLi4gYmVpbmcgYXdhcmUgb2YgcG9zc2libGUgaW5pdGlhbCBoaWdoZXIgYnVyc3QgcmF0ZS4KCjIwMTEtMDUtMTMgMTg6MDc6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJICBSZXdvcmsgR3N0U2VnbWVudCBoYW5kbGluZwoJICBJbXByb3ZlIEdzdFNlZ21lbnQsIHJlbmFtZSBzb21lIGZpZWxkcy4gVGhlIGlkZWEgaXMgdG8gaGF2ZSB0aGUgR3N0U2VnbWVudAoJICBzdHJ1Y3R1cmUgcmVwcmVzZW50IHRoZSB0aW1pbmcgc3RydWN0dXJlIG9mIHRoZSBidWZmZXJzIGFzIHRoZXkgYXJlIGdlbmVyYXRlZCBieQoJICB0aGUgc291cmNlIG9yIGRlbXV4ZXIgZWxlbWVudC4KCSAgZ3N0X3NlZ21lbnRfc2V0X3NlZWsoKSAtPiBnc3Rfc2VnbWVudF9kb19zZWVrKCkKCSAgUmVuYW1lIHRoZSBORVdTRUdNRU5UIGV2ZW50IHRvIFNFR01FTlQuCgkgIE1ha2UgcGFyc2luZyBvZiB0aGUgU0VHTUVOVCBldmVudCBpbnRvIGEgR3N0U2VnbWVudCBzdHJ1Y3R1cmUuCgkgIFBhc3MgYSBHc3RTZWdtZW50IHN0cnVjdHVyZSB3aGVuIG1ha2luZyBhIG5ldyBTRUdNRU5UIGV2ZW50LiBUaGlzIGFsbG93cyB1cyB0bwoJICBwYXNzIHRoZSB0aW1pbmcgaW5mbyBkaXJlY3RseSB0byB0aGUgbmV4dCBlbGVtZW50LiBObyBhY2N1bXVsYXRpb24gaXMgbmVlZGVkIGluCgkgIHRoZSByZWNlaXZpbmcgZWxlbWVudCwgYWxsIHRoZSBpbmZvIGlzIGluc2lkZSB0aGUgZWxlbWVudC4KCSAgUmVtb3ZlIGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50KCk6IFRoaXMgZnVuY3Rpb24gYXMgdXNlZCB0byBhY2N1bXVsYXRlCgkgIHNlZ21lbnRzIHJlY2VpdmVkIGZyb20gdXBzdHJlYW0sIHdoaWNoIGlzIG5vdyBub3QgbmVlZGVkIGFueW1vcmUgYmVjYXVzZSB0aGUKCSAgc2VnbWVudCBldmVudCBjb250YWlucyB0aGUgY29tcGxldGUgdGltaW5nIGluZm9ybWF0aW9uLgoKMjAxMS0wNS0xNiAxMDoyNToxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogUmUtaW1wbGVtZW50IG5vdGlmeTo6Y2FwcwoKMjAxMS0wNS0xNCAxNDowMjowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgZG9jczogZml4IHVwIHNvbWUgU2luY2UgbWFya2VycyBhbmQgdXBkYXRlIGZvciBuZXcgbXVsdGlxdWV1ZSBhcmdzCgoyMDExLTA1LTEyIDE2OjQ4OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBEb24ndCBpbnRlcnByZXRlIHBpcGVsaW5lcyB3aXRob3V0IHNpbmsgZWxlbWVudHMgYXMgYWx3YXlzIGJlaW5nIGluIEVPUyBzdGF0ZQoJICBTb21lIHRlc3RzIChlLmcuIGVsZW1lbnRzL2NhcHNmaWx0ZXIpIGhhdmUgcGlwZWxpbmVzIHdpdGggZGFuZ2xpbmcKCSAgc2lua3BhZHMgYW5kIHdpdGhvdXQgYSBzaW5rIGVsZW1lbnQuIFRoZXNlIHBpcGVsaW5lcyBjYW4gbmV2ZXIgcG9zdAoJICBhbiBFT1MgbWVzc2FnZSAoYmVjYXVzZSB0aGlzIGlzIG9ubHkgdmFsaWQgYnkgYSBzaW5rKSBhbmQgYXMgc3VjaAoJICBzaG91bGQgbmV2ZXIgZ2V0IGFuIEVPUyBtZXNzYWdlIHBvc3RlZCBieSB0aGUgYmluLgoKMjAxMS0wNS0xMiAxNTo1MToyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IE9ubHkgcmV0cnkgd3JpdGluZyB0byB0aGUgc29ja2V0IGZvciBFQUdBSU4sIEVXT1VMREJMT0NLIGFuZCBFSU5UUgoJICBGaXhlcyBpbmZpbml0ZSBsb29wIGluIHNvbWUgY2FzZXMsIGJ1ZyAjNjUwMDAyLgoKMjAxMS0wNS0xMiAwOTo1OToyMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWluaW9iamVjdDogQWRkIG5ldyBtaW5pb2JqZWN0IHdlYWsgcmVmL3VucmVmIGZ1bmN0aW9ucyB0byB0aGUgZG9jcwoKMjAxMS0wNS0xMiAwOTo1NTo0NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBtaW5pb2JqZWN0OiBNaW5vciBjbGVhbnVwIG9mIGxhc3QgY29tbWl0CgoyMDExLTA1LTExIDEzOjA5OjE5IC0wNDAwICBKb3PDqSBBbGJ1cnF1ZXJxdWUgPGphYWxidXJxdUBzdm4uZ25vbWUub3JnPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogQWRkIHdlYWsgcmVmZXJlbmNpbmcgZnVuY3Rpb25hbGl0eQoJICBBUEk6IGdzdF9taW5pX29iamVjdF93ZWFrX3JlZigpCgkgIEFQSTogZ3N0X21pbmlfb2JqZWN0X3dlYWtfdW5yZWYoKQoJICBBZGQgd2VhayByZWZlcmVuY2luZyBmdW5jdGlvbmFsaXR5IHRvIEdzdE1pbmlPYmplY3QsIHdoaWNoCgkgIGFsbG93cyB0byBnZXQgbm90aWZpY2F0aW9ucyB3aGVuIGFuIG1pbmkgb2JqZWN0IGlzIGRlc3Ryb3llZAoJICBidXQgZG9lc24ndCBpbmNyZWFzZSB0aGUgcmVhbCByZWZjb3VudC4gVGhpcyBpcyBtb3N0bHkKCSAgdXNlZnVsIGZvciBiaW5kaW5ncy4KCSAgRml4ZXMgYnVnICM2MDk0NzMuCgoyMDExLTAzLTE5IDEwOjI4OjQ5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSAgaW5wdXRzZWxlY3RvcjogQWRkIHN5bmMgbW9kZSB0aGF0IHN5bmNzIGluYWN0aXZlIHBhZHMgdG8gdGhlIHJ1bm5pbmcgdGltZSBvZiB0aGUgYWN0aXZlIHBhZAoJICBGaXhlcyBidWcgIzY0NTAxNy4KCjIwMTEtMDMtMjIgMTM6MTk6NDcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBBZGQgbW9kZSB0byBzeW5jaHJvbml6ZSBkZWFjdGl2YXRlZC9ub3QtbGlua2VkIHN0cmVhbXMgYnkgdGhlIHJ1bm5pbmcgdGltZQoJICBGaXhlcyBidWcgIzY0NTEwNywgIzYwMDY0OC4KCjIwMTEtMDQtMTggMTQ6MjY6MzMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IE9ubHkgcG9zdCBFT1MgbWVzc2FnZXMgYWZ0ZXIgcmVhY2hpbmcgdGhlIFBMQVlJTkcgc3RhdGUKCSAgRml4ZXMgYnVnICM2NDc3NTYuCgoyMDExLTA1LTEwIDE2OjM3OjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGVsZW1lbnQ6IEFkZCBHc3RFbGVtZW50OjpzdGF0ZV9jaGFuZ2VkIHZmdW5jCgkgIEFQSTogR3N0RWxlbWVudDo6c3RhdGVfY2hhbmdlZAoJICBUaGlzIGlzIGFsd2F5cyBjYWxsZWQgd2hlbiB0aGUgc3RhdGUgb2YgYW4gZWxlbWVudCBoYXMgY2hhbmdlZCBhbmQKCSAgYmVmb3JlIHRoZSBjb3JyZXNwb25kaW5nIHN0YXRlLWNoYW5nZWQgbWVzc2FnZSBpcyBwb3N0ZWQgb24gdGhlIGJ1cy4KCjIwMTEtMDUtMDYgMTY6NDQ6MjkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ2hvc3RwYWQ6IEFkZCBkb2NzIGZvciBhbGwgdGhlIG5ldywgcHVibGljIGZ1bmN0aW9ucwoKMjAxMS0wNS0wNiAxNjoxNTo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IEFkZCBndWFyZHMgYWdhaW5zdCBpbnZhbGlkIHBhcmFtZXRlcnMgdG8gdGhlIG5ldywgcHVibGljIGZ1bmN0aW9ucwoKMjAxMS0wNS0wNiAxNjowMDoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnaG9zdHBhZDogUmVuYW1lIGdob3N0cGFkL3Byb3h5cGFkIGRlZmF1bHQgZnVuY3Rpb25zCgkgIEFQSTogZ3N0X2dob3N0X3BhZF9hY3RpdmF0ZV9wdWxsX2RlZmF1bHQKCSAgQVBJOiBnc3RfZ2hvc3RfcGFkX2FjdGl2YXRlX3B1c2hfZGVmYXVsdAoJICBBUEk6IGdzdF9naG9zdF9wYWRfaW50ZXJuYWxfYWN0aXZhdGVfcHVsbF9kZWZhdWx0CgkgIEFQSTogZ3N0X2dob3N0X3BhZF9pbnRlcm5hbF9hY3RpdmF0ZV9wdXNoX2RlZmF1bHQKCSAgQVBJOiBnc3RfZ2hvc3RfcGFkX2xpbmtfZGVmYXVsdAoJICBBUEk6IGdzdF9naG9zdF9wYWRfc2V0Y2Fwc19kZWZhdWx0CgkgIEFQSTogZ3N0X2dob3N0X3BhZF91bmxpbmtfZGVmYXVsdAoJICBBUEk6IGdzdF9wcm94eV9wYWRfYWNjZXB0Y2Fwc19kZWZhdWx0CgkgIEFQSTogZ3N0X3Byb3h5X3BhZF9idWZmZXJhbGxvY19kZWZhdWx0CgkgIEFQSTogZ3N0X3Byb3h5X3BhZF9jaGFpbl9kZWZhdWx0CgkgIEFQSTogZ3N0X3Byb3h5X3BhZF9jaGFpbl9saXN0X2RlZmF1bHQKCSAgQVBJOiBnc3RfcHJveHlfcGFkX2NoZWNrZ2V0cmFuZ2VfZGVmYXVsdAoJICBBUEk6IGdzdF9wcm94eV9wYWRfZXZlbnRfZGVmYXVsdAoJICBBUEk6IGdzdF9wcm94eV9wYWRfZml4YXRlY2Fwc19kZWZhdWx0CgkgIEFQSTogZ3N0X3Byb3h5X3BhZF9nZXRjYXBzX2RlZmF1bHQKCSAgQVBJOiBnc3RfcHJveHlfcGFkX2dldHJhbmdlX2RlZmF1bHQKCSAgQVBJOiBnc3RfcHJveHlfcGFkX2l0ZXJhdGVfaW50ZXJuYWxfbGlua3NfZGVmYXVsdAoJICBBUEk6IGdzdF9wcm94eV9wYWRfcXVlcnlfZGVmYXVsdAoJICBBUEk6IGdzdF9wcm94eV9wYWRfcXVlcnlfdHlwZV9kZWZhdWx0CgkgIEFQSTogZ3N0X3Byb3h5X3BhZF9zZXRjYXBzX2RlZmF1bHQKCjIwMTEtMDUtMDYgMTU6NTA6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJICBnaG9zdHBhZDogTWFrZSBhbGwgdGhlIGludGVybmFsIGNhcHMgZnVuY3Rpb25zIHB1YmxpYwoJICBUaGlzIGlzIHVzZWZ1bCBpZiBnaG9zdHBhZC9wcm94eXBhZHMgc2hvdWxkIGJlIHVzZWQgYnV0CgkgIGFkZGl0aW9uYWwgY29kZSBzaG91bGQgYmUgZXhlY3V0ZWQsIGUuZy4gZm9yIHRyYWNraW5nCgkgIHNlZ21lbnRzIGluIHRoZSBldmVudCBmdW5jdGlvbi4KCjIwMTEtMDUtMDYgMTU6MjU6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBPbmx5IGltcGxlbWVudCB0aGUgaXRlcmF0ZV9pbnRlcm5hbF9saW5rcyBmdW5jdGlvbiBvbiBwcm94eXBhZHMKCSAgZ2hvc3RwYWRzIGluaGVyaXQgaXQgZnJvbSB0aGVpciBwYXJlbnQgY2xhc3MuIEFsc28gbWFrZSBpdCB0aHJlYWRzYWZlLgoKMjAxMS0wNS0wNiAxNToxNjowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ2hvc3RwYWQ6IEFQSTogRXhwb3NlIGdzdF9wcm94eV9wYWRfZ2V0X2ludGVybmFsKCkKCSAgVGhpcyBhbGxvd3MgdG8gZ2V0IHRoZSBpbnRlcm5hbCBwYWQgb2YgZ2hvc3RwYWRzIGFuZAoJICBwcm94eXBhZHMgd2l0aG91dCB1c2luZyBnc3RfcGFkX2l0ZXJhdGVfaW50ZXJuYWxfbGlua3MoKQoJICBhbmQgaXMgbXVjaCBtb3JlIGNvbnZlbmllbnQuCgkgIFRoZSBpbnRlcm5hbCBwYWQgb2YgYSBnaG9zdHBhZCBpcyB0aGUgcGFkIG9mIHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24KCSAgdGhhdCBpcyB1c2VkIHRvIGxpbmsgdG8gdGhlIGdob3N0cGFkIHRhcmdldC4KCjIwMTEtMDUtMDUgMTc6NTQ6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFdoZW4gdHJ5aW5nIHRvIGZpeGF0ZSB0aGUgc2luayBzdWdnZXN0aW9uIHByZWZlciBpdHMgc3RydWN0dXJlIG9yZGVyCgoyMDExLTA1LTA1IDExOjI4OjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IE1lcmdlIHN0cnVjdHVyZXMgd2hlbiBpbnRlcnNlY3RpbmcgaW5zdGVhZCBvZiBhcHBlbmRpbmcgdGhlbQoJICBUaGlzIHByZXZlbnRzIGFkZGluZyBkdXBsaWNhdGVzIG92ZXIgYW5kIG92ZXIgYWdhaW4gdG8gdGhlIHJlc3VsdGluZwoJICBjYXBzIGlmIHRoZXkgYWxyZWFkeSBkZXNjcmliZSB0aGUgbmV3IGludGVyc2VjdGlvbiByZXN1bHQuCgkgIFdoaWxlIHRoaXMgY2hhbmdlcyBpbnRlcnNlY3Rpb24gZnJvbSBPKG4qbSkgdG8gTyhuXjIqbSksIGl0IHJlc3VsdHMgaW4KCSAgc21hbGxlciBjYXBzLCB3aGljaCBpbiB0aGUgZW5kIHdpbGwgZGVjcmVhc2UgZnVydGhlciBwcm9jZXNzaW5nIHRpbWVzLgoJICBGb3IgZXhhbXBsZSBpbiBhbiBhdWRpb2NvbnZlcnQgISBhdWRpb2NvbnZlcnQgISBhdWRpb2NvbnZlcnQgcGlwZWxpbmUsCgkgIHdoZW4gZm9yd2FyZGluZyB0aGUgZG93bnN0cmVhbSBjYXBzIHByZWZlcmVuY2UgaW4gYmFzZXRyYW5zZm9ybQoJICAoc2VlIGUyNmRhNzJkZTI1YTkxYzNlYWFkOWY3YzhiMmY1M2JhODg4YTAzOTQpIHRoaXMgcmVzdWx0cyBpbgoJICAxNiBpbnN0ZWFkIG9mIDE5MSBjYXBzIHN0cnVjdHVyZXMuCgoyMDExLTA1LTA0IDExOjI5OjE1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBJbiBnZXRjYXBzKCkgcHJlZmVyIHRoZSBjYXBzIG9yZGVyIGFuZCBjYXBzIG9mIGRvd25zdHJlYW0gaWYgcG9zc2libGUKCjIwMTEtMDUtMDMgMTc6MjY6NTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFByZWZlciBjYXBzIG9yZGVyIGdpdmVuIGJ5IHRoZSBzdWJjbGFzcyBvZiB0aGUgdGVtcGxhdGUgY2FwcyBvcmRlcgoKMjAxMS0wNC0yMCAyMjo1MjozNiArMDIwMCAgTWlndWVsIEFuZ2VsIENhYnJlcmEgTW95YSA8bWFkbWFjMjUwMUBnbWFpbC5jb20+CgoJKiBnc3QvcGFyc2UvdHlwZXMuaDoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBwYXJzZTogZG9uJ3QgdW5lc2NhcGUgaW5zaWRlIHF1b3RlcwoJICBFc2NhcGVkIGNoYXJhY3RlcnMgaW5zaWRlIHF1b3RlZCBzdHJpbmdzIGFyZSBzdXBwb3NlZCB0byBiZSB1bmVzY2FwZWQgYnkKCSAgZGVzZXJpYWxpemF0aW9uIGZ1bmN0aW9ucywgbm90IGJ5IHBhcnNpbmcgZnVuY3Rpb25zLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ4MDI1CgoyMDExLTA0LTE4IDEwOjA0OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBSZW1vdmUgdW5uZWNlc3NhcnkgRklYTUUKCSAgUmVzZXR0aW5nIHRoZSByZXN1bHQgaXMgbm90IG5lY2Vzc2FyeSB3aGVuIHJlc3luY2luZyBiZWNhdXNlCgkgIHBhZHMgdGhhdCBwcmV2aW91c2x5IGdvdCB0aGUgZXZlbnQgd2lsbCBiZSBza2lwcGVkIGFuZCB3ZQoJICBuZWVkIHRvIGNvbnNpZGVyIHRoZSByZXN1bHRzIG9mIHRoZSBwcmV2aW91cyBwdXNoZXMuCgoyMDExLTA0LTE4IDA5OjUzOjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IElmIGFjdGl2YXRpbmcgb25lIHBhZCBmYWlsZWQgZXJyb3Igb3V0IGVhcmx5IGluc3RlYWQgb2YgdHJ5aW5nIHRvIGFjdGl2YXRlIHRoZSBuZXh0IHBhZHMKCSAgSWYgb25lIHBhZCBmYWlscyB0byBhY3RpdmF0ZSB0aGUgY29tcGxldGUgYWN0aXZhdGlvbiBwcm9jZXNzIHdpbGwgZmFpbAoJICBhbnl3YXkgYW5kIHRyeWluZyB0byBhY3RpdmF0ZSB0aGUgb3RoZXIgcGFkcyBvbmx5IHdhc3RlcyB0aW1lLgoKMjAxMS0wNC0xOCAwOTo0OTowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogSWYgYWN0aXZhdGluZyBvbmUgcGFkIGZhaWxlZCBlcnJvciBvdXQgZWFybHkgaW5zdGVhZCBvZiB0cnlpbmcgdG8gYWN0aXZhdGUgdGhlIG5leHQgcGFkcwoJICBJZiBvbmUgcGFkIGZhaWxzIHRvIGFjdGl2YXRlIHRoZSBjb21wbGV0ZSBhY3RpdmF0aW9uIHByb2Nlc3Mgd2lsbCBmYWlsCgkgIGFueXdheSBhbmQgdHJ5aW5nIHRvIGFjdGl2YXRlIHRoZSBvdGhlciBwYWRzIG9ubHkgd2FzdGVzIHRpbWUuCgoyMDExLTA1LTE0IDA5OjMxOjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTAuMzQgPT09CgoyMDExLTA1LTE0IDAxOjAwOjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMC4xMC4zNAoKMjAxMS0wNS0xMyAwODozODowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJICBtZXRhOiBGaXggY29tcGlsYXRpb24gb2YgdGhlIHVuaXQgdGVzdCBhZnRlciByZW1vdmFsIG9mIHRoZSBzZXJpYWxpemUvZGVzZXJpYWxpemUgZnVuY3Rpb25zCgoyMDExLTA1LTA0IDE1OjMxOjU2ICswMzAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBkbyBub3Qgc2V0IGZpcnN0IGJ1ZmZlciB0aW1lc3RhbXAgdG8gMCBmb3IgbGl2ZSBzb3VyY2VzCgkgIERvaW5nIHNvIGF2b2lkcyBhIGxhcmdlIHRpbWVzdGFtcCBnYXAgYmV0d2VlbiBmaXJzdCBhbmQgc2Vjb25kIGJ1ZmZlcgoJICBmb3IgbGl2ZSBzb3VyY2VzIHdoaWNoIHRha2UgdGltZSB0byBzdGFydCB1cC4KCSAgVGhlIGZpcnN0IGJ1ZmZlciBub3cgaGFzIGEgImxpdmUiIHRpbWVzdGFtcCBiYXNlZCBvbiB0aGUgcnVubmluZyB0aW1lLAoJICBhcyBvdGhlciBidWZmZXJzIGRvLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ5MzY5CgoyMDExLTA1LTExIDE5OjEwOjI0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSAgbWV0YTogcmVtb3ZlIChkZSlzZXJpYWxpemUgZnVuY3Rpb25zCgkgIEFkZCBhIEdUeXBlIHRvIHRoZSBtZXRhZGF0YSB0byBpZGVudGlmeSB0aGUgR3N0TWV0YUluZm8uCgkgIFdlIGNhbiByZW1vdmUgdGhlIChkZSlzZXJpYWxpemUgZnVuY3Rpb25zIGZvciB0aGUgbWV0YWRhdGEgYmVjYXVzZSB3ZSBjYW4KCSAgcmVnaXN0ZXIgR1R0eXBlIHRyYW5zZm9ybSBmdW5jdGlvbnMgYmV0d2VlbiB2YXJpb3VzIHR5cGVzIHRvIGltcGxlbWVudAoJICBzZXJpYWxpemF0aW9uIGxhdGVyLgoKMjAxMS0wNS0xMSAxODoxNzo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgc3RydWN0dXJlOiBtb3JlIGNsZWFudXBzCgkgIGdzdF9zdHJ1Y3R1cmVfZ2V0X3R5cGUoKSAtPiBfZ3N0X3N0cnVjdHVyZV90eXBlIHRvIGF2b2lkIG1ldGhvZCBjYWxscyBmb3IKCSAgZ2V0dGluZyB0aGUgR1R5cGUgdGhhdCBpbml0aWFsaXplZCBhdCB0aGUgc3RhcnQuCgkgIEhpZGUgc29tZSBzdHJ1Y3R1cmUgZmllbGRzIGluIHByaXZhdGUgZGF0YSBzbyB0aGF0IHdlIGNhbiBjaGFuZ2UgdGhlCgkgIGltcGxlbWVudGF0aW9uLgoJICBNb3ZlIHN0cnVjdHVyZSBlcXVhbGl0eSBjaGVjayBmcm9tIGNhcHMuYyB0byBzdHJ1Y3R1cmUuYyB3aGVyZSBpdCBiZWxvbmdzLgoKMjAxMS0wNS0xMSAxODowNzoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiByZW1vdmUgb2Jzb2xldGUgY29kZQoJICBSZW1vdmUgc29tZSBvYnNvbGV0ZSBjb2RlLgoJICBEb24ndCB0cnkgdG8gcmVjb25maWd1cmUgd2hlbiB3ZSBkb24ndCBoYXZlIHNpbmsgY2Fwcy4KCjIwMTEtMDUtMTEgMTY6NDY6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IERlcmVmZXJlbmNlIEdzdFF1ZXJ5KiogYmVmb3JlIHBhc3NpbmcgaXQgdG8gR1NUX1FVRVJZX1RZUEVfTkFNRQoKMjAxMS0wNS0xMSAxNjowMzo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogdXBkYXRlIHRoZSBzdHJ1Y3R1cmUgd2hlbiBuZWVkZWQKCSAgV2hlbiB3ZSBnZXQgdGhlIHN0cnVjdHVyZSBvZiBhbiBldmVudCwgbWFrZSBzdXJlIGl0IGFsc28gY29udGFpbnMgdGhlIGZpZWxkcwoJICB0aGF0IHdlIGtlZXAgaW4gZmFzdCB2YXJpYWJsZXMsIHRoaXMgd2F5IHdlIGNhbiBlYXNpbHkgc2VyaWFsaXplIGFuZCBkZWJ1ZwoJICB0aGUgZXZlbnRzLiBXZSB3b3VsZCBwcm9iYWJseSBsYXRlciBzaW1wbHkgcHJlZmVyIHRvIHJlZ2lzdGVyIGEgdHJhbnNmb3JtCgkgIGZ1bmN0aW9uIHRvIEdfVFlQRV9TVFJJTkcgYW5kIEdfVFlQRV9CWVRFQVJSQVkgZXRjLi4KCjIwMTEtMDUtMTEgMTY6MDE6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBjbGVhbnVwcwoJICBXZSBkb24ndCBuZWVkIHRvIGNoZWNrIGlmIHRoZSB0eXBlIGlzIDAsIHRoZSBpbml0IGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkIG9uY2UKCSAgaW4gdGhlIGJlZ2lubmluZy4KCjIwMTEtMDUtMTEgMTI6MDQ6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBjbGVhbiB1cCBzb21lIG1hY3JvcwoJICBBdm9pZCBleGVjdXRpbmcgYSBtZXRob2QgZm9yIEdTVF9UWVBFX0VWRU5UIGJ1dCBpbnN0ZWFkIHVzZSB0aGUgdHlwZSB2YXJpYWJsZQoJICBkaXJlY3RseS4gV2UgY2FuIGRvIHRoaXMgYmVjYXVzZSB3ZSByZWdpc3RlciBpdCBiZWZvcmUgYW55dGhpbmcgZWxzZS4KCjIwMTEtMDUtMTEgMTU6NDg6MTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IEZpeCBHU1RfREVCVUcgcGFyYW1ldGVycyB0byBiZSBjb25zaXN0ZW50IHdpdGggdGhlIGZvcm1hdCBzdHJpbmcKCjIwMTEtMDUtMTEgMTU6MjY6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEltcGxlbWVudCBzdXBwb3J0IGZvciBwYWQgcmVjb25maWd1cmF0aW9uIGFnYWluCgoyMDExLTA1LTExIDE1OjE4OjU2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBGaXggZGVhZGxvY2ssIGdzdF9wYWRfZ2V0X2N1cnJlbnRfY2FwcygpIGFscmVhZHkgdGFrZXMgdGhlIHBhZCdzIG9iamVjdCBsb2NrCgoyMDExLTA1LTExIDExOjA2OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJICBldmVudDogZXhhbXBsZSBvZiBob3cgdG8gb3B0aW1pemUgZXZlbnRzCgkgIFVzZSBhIHN0cnVjdHVyZSBmb3IgdGhlIFFvUyBldmVudCBieSAnZXh0ZW5kaW5nJyB0aGUgR3N0RXZlbnRJbXBsIHN0cnVjdHVyZS4KCSAgVGhpcyBzaG91bGQgYXZvaWQgYWxsb2NhdGlvbiBvZiBHc3RTdHJ1Y3R1cmVzIGFuZCBpdHMgY29udGVudHMuCgoyMDExLTA1LTEwIDExOjExOjE1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBlbnN1cmUgdGhyZWFkIHNhZmV0eSB3aGVuIGFkZGluZyBhIHBhZAoJICBUaGlzIHNlZW1zIHRvIGJlIGEgcmVncmVzc2lvbiwgYW5kIHdhcyBjYXVzaW5nIGNyYXNoZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDk4NzgKCjIwMTEtMDUtMTAgMTg6MzY6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmRzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGFsbG93IF9tYWtlX3dyaXRhYmxlIG9uIHF1ZXJ5IGhhbmRsZXJzCgkgIFBhc3MgYSBHc3RRdWVyeSAqKiB0byB0aGUgcXVlcnkgaGFuZGxlcnMgc28gdGhhdCB0aGV5IGNhbiBtYWtlIHRoZSBxdWVyeQoJICB3cml0YWJsZSBiZWZvcmUgdXNpbmcgYSBzZXR0ZXIgb24gaXQuCgkgIFBvcnQgY29kZSB0byBuZXcgQVBJLgoKMjAxMS0wNS0xMCAxNjo0NjoxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBwb3J0aW5nIGRvYwoKMjAxMS0wNS0xMCAxNjo0MTozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBlbGVtZW50OiB1c2UgcmVxdWVzdF9uZXdfcGFkX2Z1bGwgYXMgdGhlIGRlZmF1bHQKCSAgQWRkIEdzdENhcHMgdG8gcmVxdWVzdF9uZXdfcGFkIHNvIHRoYXQgcmVxdWVzdF9uZXdfcGFkX2Z1bGwgY2FuIGJlIHJlbW92ZWQuCgkgIEZpeCBlbGVtZW50cy4KCjIwMTEtMDUtMTAgMTY6MjM6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgcG9ydGluZyBkb2MKCjIwMTEtMDUtMTAgMTU6NDE6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IG1ha2Ugc3VyZSBxdWVyeSBpcyB3cml0YWJsZQoJICBNYWtlIHN1cmUgdGhlIFF1ZXJ5IGlzIHdyaXRhYmxlIGJlZm9yZSBleGVjdXRpbmcgdGhlIHNldHRlcnMuCgoyMDExLTA1LTEwIDE1OjMzOjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IEhpZGUgR3N0U3RydWN0dXJlIGluIHF1ZXJpZXMKCSAgSGlkZSB0aGUgR3N0U3RydWN0dXJlIGZyb20gdGhlIHF1ZXJ5IEFQSS4KCSAgUmVuYW1lIHNvbWUgbWV0aG9kcyB0byBtYXRjaCB0aGUgbW9yZSBjb21tb24gbmFtZXMgaW4gR09iamVjdCBsaWJyYXJpZXMuCgkgIEFkZCBzb21lIG1vcmUgdXNlZnVsIHF1ZXJ5IEFQSS4KCjIwMTEtMDUtMTAgMTM6MzQ6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgbWVzc2FnZTogaGlkZSB0aGUgbWVzc2FnZSBzdHJ1Y3R1cmUgZmllbGQKCSAgTWFrZSBhIHByaXZhdGUgc3RydWN0dXJlIHRvIGhvbGQgdGhlIEdzdFN0cnVjdHVyZSBiaXRzIG9mIHRoZSBtZXNzYWdlLgoJICBBZGQgc29tZSBtb3JlIHVzZWZ1bCBtYWNyb3MgbGlrZSB3ZSBoYXZlIGZvciBldmVudHMuCgo9PT0gcmVsZWFzZSAwLjEwLjMzID09PQoKMjAxMS0wNS0xMCAwODo1NToxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAwLjEwLjMzCgkgIEhpZ2hsaWdodHM6CgkgIC0gbmV3IHBhcnNlciBiYXNlIGNsYXNzOiBHc3RCYXNlUGFyc2UKCSAgLSBuZXcgY29yZSBlbGVtZW50OiBmdW5uZWwKCSAgLSBPU1ggbXVsdGktYXJjaCBmaXhlcwoJICAtIG5ldyBRb1MgdHlwZSBmb3IgUW9TIGV2ZW50cwoJICAtIG5ldyBwcm9ncmVzcyBtZXNzYWdlIEFQSSB0byBub3RpZnkgYXBwbGljYXRpb25zIG9mIGFzeW5jaHJvbm91cyBvcGVyYXRpb25zCgkgIC0gY291bnRsZXNzIG90aGVyIGZpeGVzIGFuZCBpbXByb3ZlbWVudHMKCjIwMTEtMDUtMTAgMTI6Mjk6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiBmaXggdGhlIG1hY3JvcyBhIGxpdHRsZQoKMjAxMS0wNS0xMCAxMTo1MDoxNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgZXZlbnQ6IEhpZGUgdGhlIEdzdFN0cnVjdHVyZQoJICBIaWRlIHRoZSBHc3RTdHJ1Y3R1cmUgb2YgdGhlIGV2ZW50IGluIHRoZSBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYyBwYXJ0IHNvIHRoYXQKCSAgd2UgY2FuIGNoYW5nZSBpdC4KCSAgQWRkIG1ldGhvZHMgdG8gY2hlY2sgYW5kIG1ha2UgdGhlIGV2ZW50IHdyaXRhYmxlLgoJICBBZGQgYSBuZXcgbWV0aG9kIHRvIGdldCBhIHdyaXRhYmxlIEdzdFN0cnVjdHVyZSBvZiB0aGUgZWxlbWVudC4KCSAgQXZvaWQgZGlyZWN0bHkgYWNjaXNpbmcgdGhlIGV2ZW50IHN0cnVjdHVyZS4KCjIwMTEtMDUtMDkgMTg6NDg6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IF9xb3NfZnVsbCAtPiBfcW9zCgoyMDExLTA1LTA5IDE3OjUxOjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSAgc2VnbWVudDogcmVtb3ZlIF9mdWxsIHZlcnNpb24KCSAgUmVuYW1lIHRoZSBfZnVsbCB2ZXJzaW9ucyBvZiB0aGUgZnVuY3Rpb25zIHRvIHRoZSBub3JtYWwgZnVuY3Rpb24gbmFtZXMuCgoyMDExLTA1LTA5IDE2OjM5OjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgc2VnbWVudDogcmVtb3ZlIGFic19yYXRlIGZyb20gc2VnbWVudCBzdHJ1Y3R1cmUKCSAgUmVtb3ZlIHRoZSBhYnNfcmF0ZSBmaWVsZCBmcm9tIHRoZSBzZWdtZW50IHN0cnVjdHVyZSwgd2UgY2FuIHRyaXZpYWxseSBjb21wdXRlCgkgIGl0IHdoZW4gbmVlZGVkLgoKMjAxMS0wNS0wOSAxNjoyMToyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSAgY2FwczogcmVtb3ZlIGNhcHMgZnJvbSBidWZmZXJzIGFuZCBwYWRzCgkgIFJlbW92ZSB0aGUgR3N0Q2FwcyBmcm9tIGJ1ZmZlcnMgYW5kIHBhZHMuIFdlIG5vdyB1c2UgQ0FQUyBldmVudHMgdG8gbmVnb3RpYXRlCgkgIGZvcm1hdHMgYmV0d2VlbiBlbGVtZW50LgoKMjAxMS0wNS0wOSAxNTowNjoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBVc2UgQ0FQcyBldmVudAoJICBVc2UgdGhlIGNhcHMgZXZlbnQgdG8gY29uZmlndXJlIGJhc2V0cmFuc2Zvcm0uCgkgIFJlbW92ZSBmb3JjZV9hbGxvYyBoYWNrLCB3ZSBkb24ndCBuZWVkIHRoaXMgaW4gMC4xMSB3aXRoIG5ldyB1cHN0cmVhbQoJICBuZWdvdGlhdGlvbi4KCSAgQXZvaWQgZ2V0dGluZyBzb21lIHBhZCBjYXBzLgoKMjAxMS0wNS0wOSAxNTowNjowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGFkZCBzb21lIG1vcmUgZGVidWcKCjIwMTEtMDUtMDggMTE6MDI6MTYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBBZGQgbmV3IHN5bWJvbHMKCjIwMTEtMDUtMDggMTE6MDE6NTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBnc3RidWZmZXI6IEZpeCB1bml0aWFsaXplZCB2YXJpYWJsZXMKCjIwMTEtMDUtMDkgMTA6NTQ6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgdG9vbHM6IGF2b2lkIHVzaW5nIHBhZCBjYXBzCgkgIEF2b2lkIGRpcmVjdGx5IGFjY2Vzc2luZyB0aGUgcGFkIGNhcHMsIHVzZSBnc3RfcGFkX2dldF9jdXJyZW50X2NhcHMoKSBpbnN0ZWFkLgoKMjAxMS0wNS0wOCAxMzoxNDo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDUtMDggMTM6MDc6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB1c2UgQ0FQUyBldmVudCBpbnN0ZWFkIG9mIHNldGNhcHMgZnVuY3Rpb24KCjIwMTEtMDUtMDggMTI6NDY6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgYmFzZTogYXZvaWQgdXNpbmcgYnVmZmVyIGNhcHMKCSAgQ29tbWVudCBhbGwgY29kZSB1c2luZyBidWZmZXIgY2Fwcy4KCSAgUmV3b3JrIGNhcHNmaWx0ZXIgY29kZSBhIGxpdHRsZS4KCSAgRml4IHNvbWUgdW5pdCB0ZXN0cwoKMjAxMS0wNS0wOCAxMjo0MzoyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBpbXByb3ZlIGNhcHMgZXZlbnQgaGFuZGxpbmcKCSAgRml4IHJlcGxhY2Ugb2YgY2FwcyBldmVudHMgd2hlbiBsaW5raW5nOiB3ZSBuZWVkIHRvIHVucmVmIHRoZSBvbGQgb25lcy4KCSAgTWFrZSBzdXJlIHdlIHBhc3MgZXJyb3IgdmFsdWVzIGFyb3VuZC4KCSAgTW92ZSBiYWNrd2FyZCBjb21wYXQgY29kZSBpbnRvIHRoZSBkZWZhdWx0IGhhbmRsZXIgZm9yIG5vdy4KCjIwMTEtMDUtMDggMTI6Mzg6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGRvbid0IHJlZiB0aGUgY2FwcwoJICBVc2UgYSBkaWZmZXJlbnQgd2F5IG9mIGdldHRpbmcgdGhlIGNhcHMgZnJvbSB0aGUgY2FwcyBldmVudCBzbyB0aGF0IG5vCgkgIHJlZmNvdW50aW5nIGhhcHBlbnMuCgoyMDExLTA1LTA4IDEyOjM3OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGF2b2lkIHVzaW5nIGJ1ZmZlciBjYXBzCgoyMDExLTA1LTA2IDIzOjQwOjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZG9uJ3QgcG9zdCBsb2FkcyBvZiBlbXB0eSB0YWdsaXN0cwoJICBPbmx5IHBvc3QgYml0cmF0ZSB1cGRhdGVzIGlmIHRoZXJlJ3Mgc29tZXRoaW5nIHRvIHBvc3QsIGRvbid0CgkgIHBvc3QgZW1wdHkgdGFnbGlzdHMgaWYgbm90aGluZyBjaGFuZ2VkLgoKMjAxMS0wNS0wNiAxOTowNDo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBwYWQ6IGF2b2lkIHVzaW5nIHRoZSBvbGQgR1NUX1BBRF9DQVBTCgkgIERvbid0IHVzZSBHU1RfUEFEX0NBUFMgYnV0IGluc3RlYWQgdXNlIHRoZSBuZXcgZ3N0X3BhZF9nZXRfY3VycmVudF9jYXBzKCkKCSAgbWV0aG9kLgoJICBBdm9pZCBzZXR0aW5nIGNhcHMgb24gYnVmZmVycy4KCjIwMTEtMDUtMDYgMTk6MDM6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgMiBuZXcgY2FwcyBtZXRob2RzCgkgIEFkZCBtZXRob2QgdG8gZ2V0IHRoZSBjdXJyZW50bHkgY29uZmlndXJlZCBjYXBzIG9uIHRoZSBwYWQuCgkgIEFkZCBhIG1ldGhvZCB0byBjaGVjayBpZiBjYXBzIGFyZSBjb25maWd1cmVkIG9uIGEgcGFkLgoKMjAxMS0wNS0wNiAxNzo1OTozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHBhZDogaW1wbGVtZW50IGZpeGVkIGNhcHMgd2l0aCBhbiBvYmplY3QgZmxhZwoJICBJbXBsZW1lbnQgZml4ZWQgY2FwcyB3aXRoIGFuIG9iamVjdCBmbGFnIGluc3RlYWQgb2YgYSBjdXN0b20gZ2V0Y2FwcyBmdW5jdGlvbi4KCjIwMTEtMDUtMDYgMTc6MzA6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3QgdXNlIGJ1ZmZlciBjYXBzIGZvciBuZWdvdGlhdGlvbgoJICBEb24ndCB1c2UgdGhlIGJ1ZmZlciBjYXBzIGZvciBuZWdvdGlhdGlvbiBhbnltb3JlIGJ1dCB1c2UgdGhlIENBUFMgZXZlbnRzLgoJICBNYWtlIHRoZSBfc2V0X2NhcHMgbWV0aG9kIHByb2R1Y2UgdGhlIENBUFMgZXZlbnQsIGFkZCBzb21lIGJhY2t3YXJkCgkgIGNvbXBhdGliaWxpdHkgY29kZSB0byB0cmlnZ2VyIHRoZSBzZXRjYXBzIGZ1bmN0aW9ucyBvbiBzcmMgYW5kIHNpbmtwYWRzLgoJICBSZW1vdmUgYWxsIG5lZ290aWF0aW9uIGNvZGUgZnJvbSB0aGUgY2hhaW4gZnVuY3Rpb25zLgoJICBEb24ndCB1c2UgdGhlIEdTVF9QQURfQ0FQUyB2YXJpYWJsZSBhbnltb3JlIHRvIHN0b3JlIHRoZSBjYXBzIGJ1dCByZXRyaWV2ZSB0aGUKCSAgY2FwcyBmcm9tIHRoZSBzdGlja3kgZXZlbnQgYXJyYXkuCgoyMDExLTA1LTA2IDE2OjE0OjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgc2VsZWN0b3I6IGRvbid0IHVuc2V0IGNhcHMKCjIwMTEtMDUtMDYgMTY6MTQ6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogZG9uJ3QgdW5zZXQgY2FwcwoKMjAxMS0wNS0wNiAxNjoxMzo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBsZXQgdGhlIG5vcm1hbCBjb2RlIHVuc2V0IGNhcHMKCjIwMTEtMDUtMDYgMTY6MTE6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBoYW5kbGUgTlVMTCBwYWRzIGluIHNvbWUgY2FzZXMKCjIwMTEtMDUtMDYgMTY6MTE6MTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogbGV0IHRoZSBwYWQgY2xlYW4gdXAgaW4gYWN0aXZhdGUKCjIwMTEtMDUtMDYgMTU6NTU6MzEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBkb24ndCBtZXNzIHdpdGggcGFkIGNhcHMgaW4gYWN0aXZhdGUKCSAgV2hlbiBkZWFjdGl2YXRpbmcgYSBwYWQsIGxldCB0aGUgcGFkIGRlY2lkZSB3aGF0IGZpZWxkcyB0byBjbGVhci4KCjIwMTEtMDUtMDYgMTU6NTE6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IG9ubHkgYWxsb3cgZml4ZWQgY2FwcyBpbiBjYXBzIGV2ZW50CgoyMDExLTA1LTA2IDEzOjAxOjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogSW1wcm92ZSBkb2N1bWVudGF0aW9uIG9mIGdzdF9ldmVudF9uZXdfcmVjb25maWd1cmUoKQoKMjAxMS0wNS0wNiAxMjoyMzowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBwb3J0aW5nIGRvYwoKMjAxMS0wNS0wNiAxMjoxOToxNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGVsZW1lbnQ6IHJlbmFtZSBnc3RfZWxlbWVudF9sb3N0X3N0YXRlX2Z1bGwoKQoJICBSZW5hbWUgZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZV9mdWxsKCkgdG8gZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSgpIGFuZAoJICByZW1vdmUgdGhlIG9sZCBtZXRob2QgbmFtZS4KCjIwMTEtMDUtMDYgMTI6MDk6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogY2xlYW4gdXAgdGhlIC5oIGZpbGUgYSBiaXQKCjIwMTEtMDUtMDYgMTE6MTQ6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwYWQ6IGltcGxlbWVudCBtb3JlIHN0aWNreSBldmVudHMKCSAgUmVtb3ZlIHRoZSBjb250ZXh0IGFnYWluLCBhZGRpbmcgYW4gZXh0cmEgbGF5ZXIgb2YgcmVmY291bnRpbmcgYW5kIG9iamVjdAoJICBjcmVhdGlvbiB0byBtYW5hZ2UgYW4gYXJyYXkgaXMgdG9vIGNvbXBsaWNhdGVkIGFuZCBpbmVmZmljaWVudC4gVXNlIGEgc2ltcGxlCgkgIGFycmF5IGFnYWluLgoJICBBbHNvIGltcGxlbWVudCBldmVudCB1cGRhdGVzIHdoZW4gY2FsbGluZyBnc3RfcGFkX2NoYWluKCkgYW5kCgkgIGdzdF9ldmVudF9zZW5kX2V2ZW50KCkgZGlyZWN0bHkuCgoyMDExLTA1LTA2IDExOjM1OjM2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiBhdm9pZCByZWRlZmluaXRpb24gb2Ygc3ltYm9scyB3aGVuIGRlYnVnZ2luZyBpcyBvZmYKCSAgVGhlIHJlZmFjdG9yaW5nIG9mIGdzdF9kZWJ1Z19hZGRfbG9nX2Z1bmN0aW9uKCkgbm93IGNhdXNlcyBidWlsZCBmYWlsdXJlIHdoZW4KCSAgZGVidWctbG9nZ2luZyBpcyB0dXJuZWQgb2ZmLiBKdXN0IG1vdmUgaXQgdG8gdGhlIGNvbmRpdGlvbmFsIHBhcnQgb2YgdGhlIGhlYWRlci4KCjIwMTEtMDUtMDYgMTE6MDA6MTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IHJlb3JkZXIgZXZlbnRzCgkgIFJlb3JkZXIgdGhlIHN0aWNreSBldmVudHMgc28gdGhhdCB0aGV5IGFyZSBpbiB0aGUgb3JkZXIgdGhleSBzaG91bGQgYmUgcHVzaGVkLgoKMjAxMS0wNS0wNSAxOToyNDo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBzaW1wbGlmeSBzb21lIG1vcmUKCSAgSWYgd2UgZ2V0IGEgY29udGV4dCBpbiB0aGUgY2hhaW4gZnVuY3Rpb25zIHdlIGFsd2F5cyBuZWVkIHRvIGRvIGEgZnVsbCB1cGRhdGUgb2YKCSAgdGhlIGNvbnRleHQgb24gdGhlIHBlZXIgcGFkLgoKMjAxMS0wNS0wNSAxODo1Njo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBpbXByb3ZlIGNvbnRleHQgcGFzc2luZyBzb21lIG1vcmUKCSAgUGFzcyB0aGUgY29udGV4dCBkb3duc3RyZWFtIHdoZW4gaXQgZ290IHVwZGF0ZWQuCgkgIEhhdmUgdHdvIHdheXMgb2YgaW5mb3JtaW5nIGRvd25zdHJlYW0gb2YgZXZlbnRzLCBkbyBhIGZ1bGwgY29udGV4dCB1cGRhdGUgd2hlbgoJICB0aGUgQ09OVEVYVF9QRU5ESU5HIGZsYWcgaXMgc2V0IGFuZCBzaW1wbHkgZm9yd2FyZCB0aGUgZXZlbnQgb3RoZXJ3aXNlLgoJICBTZXQgdGhlIENPTlRFTlRfUEVORElORyBmbGFnIHdoZW4gbGlua2luZyBwYWRzLgoJICBXZSBkb24ndCBuZWVkIHRvIG9sZCBjb250ZXh0IGFueW1vcmUgd2hlbiB1cGRhdGluZyB0aGUgY29udGV4dCBvZiBhIHBhZC4KCjIwMTEtMDUtMDUgMTg6MjE6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IERvbid0IGdldCB0aGUgcGFyZW50IHR3aWNlIGluIHRoZSBzZXRjYXBzIGZ1bmN0aW9uCgoyMDExLTA1LTA1IDE2OjU5OjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBGaXggcmVmY291bnQgbGVhayBvZiB0aGUgcGFyZW50IGluIHRoZSBkZWZhdWx0IGV2ZW50IGRpc3BhdGNoIGZ1bmN0aW9uCgoyMDExLTA1LTA1IDE2OjMyOjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogaW1wcm92ZSBwYXNzaW5nIGFyb3VuZCB0aGUgY29udGV4dAoJICBJbXByb3ZlIHBhc3NpbmcgYXJvdW5kIHRoZSBjb250ZXh0LCBvbmx5IHNlbmQgdGhlIGNvbnRleHQgdG8gdGhlIHBlZXIgZWxlbWVudAoJICB3aGVuIHRoZSBDT05URVhUX1BFTkRJTkcgZmxhZyBpcyBzZXQuCgoyMDExLTA1LTA1IDE2OjA1OjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIGV4cG9ydHMKCjIwMTEtMDMtMTcgMTE6NTI6NDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIHRlc3RzOiBVcGRhdGUgZm9yIG5ldyBHc3RJdGVyYXRvciBBUEkKCjIwMTEtMDMtMTcgMTE6MzI6MjQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRvY3MvZGVmOiBBZGQgbmV3IHN5bWJvbHMsIHJlbW92ZSBvbGQgc3ltYm9scwoKMjAxMS0wMy0xNyAxMTozMjoxMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIGVsZW1lbnRzOiBVcGRhdGUgZXZlcnl0aGluZyBmb3IgdGhlIG5ldyBHc3RJdGVyYXRvciBBUEkKCjIwMTEtMDMtMTcgMTE6MzE6NTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdDogVXBkYXRlIGV2ZXJ5dGhpbmcgZm9yIHRoZSBuZXcgR3N0SXRlcmF0b3IgQVBJCgoyMDExLTAzLTE2IDEwOjUwOjM5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBpdGVyYXRvcjogUmVmYWN0b3IgR3N0SXRlcmF0b3IgdG8gYmUgbW9yZSBiaW5kaW5nIGZyaWVuZGx5IGFuZCBoYXZlIHNhbmVyIHJlZmNvdW50aW5nCgkgIEZpeGVzIGJ1ZyAjNjM4OTg3LgoKMjAxMS0wMS0wOCAxMjoyNzo1NSAtMDIwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgIGl0ZXJhdG9yOiByZWdpc3RlciBhcyBhIGJveGVkIHR5cGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzODk4NwoKMjAxMS0wMS0wOCAxMjoxNDo0MCAtMDIwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IHVzZSBHU2xpY2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzODk4NwoKMjAxMS0wMS0wOCAxMjoxMjo0MSAtMDIwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogZnJlZSBzdHJ1Y3QgaW4gZ3N0X2l0ZXJhdG9yX2ZyZWUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzODk4NwoKMjAxMS0wMS0wOCAxMjowNzo1NSAtMDIwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgIGl0ZXJhdG9yOiBzdG9yZSBzaXplIGluIHRoZSBzdHJ1Y3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzODk4NwoKMjAxMS0wNS0wNSAxMToyODozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBNZXJnZSBzdHJ1Y3R1cmVzIHdoZW4gaW50ZXJzZWN0aW5nIGluc3RlYWQgb2YgYXBwZW5kaW5nIHRoZW0KCSAgVGhpcyBwcmV2ZW50cyBhZGRpbmcgZHVwbGljYXRlcyBvdmVyIGFuZCBvdmVyIGFnYWluIHRvIHRoZSByZXN1bHRpbmcKCSAgY2FwcyBpZiB0aGV5IGFscmVhZHkgZGVzY3JpYmUgdGhlIG5ldyBpbnRlcnNlY3Rpb24gcmVzdWx0LgoJICBXaGlsZSB0aGlzIGNoYW5nZXMgaW50ZXJzZWN0aW9uIGZyb20gTyhuKm0pIHRvIE8obl4yKm0pLCBpdCByZXN1bHRzIGluCgkgIHNtYWxsZXIgY2Fwcywgd2hpY2ggaW4gdGhlIGVuZCB3aWxsIGRlY3JlYXNlIGZ1cnRoZXIgcHJvY2Vzc2luZyB0aW1lcy4KCSAgRm9yIGV4YW1wbGUgaW4gYW4gYXVkaW9jb252ZXJ0ICEgYXVkaW9jb252ZXJ0ICEgYXVkaW9jb252ZXJ0IHBpcGVsaW5lLAoJICB3aGVuIGZvcndhcmRpbmcgdGhlIGRvd25zdHJlYW0gY2FwcyBwcmVmZXJlbmNlIGluIGJhc2V0cmFuc2Zvcm0KCSAgKHNlZSBlMjZkYTcyZGUyNWE5MWMzZWFhZDlmN2M4YjJmNTNiYTg4OGEwMzk0KSB0aGlzIHJlc3VsdHMgaW4KCSAgMTYgaW5zdGVhZCBvZiAxOTEgY2FwcyBzdHJ1Y3R1cmVzLgoKMjAxMS0wNS0wNCAxMToyOToxNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogSW4gZ2V0Y2FwcygpIHByZWZlciB0aGUgY2FwcyBvcmRlciBhbmQgY2FwcyBvZiBkb3duc3RyZWFtIGlmIHBvc3NpYmxlCgoyMDExLTA1LTAzIDE3OjI2OjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBQcmVmZXIgY2FwcyBvcmRlciBnaXZlbiBieSB0aGUgc3ViY2xhc3Mgb2YgdGhlIHRlbXBsYXRlIGNhcHMgb3JkZXIKCjIwMTEtMDUtMDMgMTQ6MTM6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IFVzZSB0aGUgcmVjb25maWd1cmUgZmxhZyBvbiB0aGUgcGFkIGluc3RlYWQgb2YgdGhlIGV2ZW50CgoyMDExLTA1LTAzIDE0OjExOjM0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBVc2UgbmV3IHJlY29uZmlndXJlIGZsYWcgb24gdGhlIHBhZHMgaW5zdGVhZCBvZiB0aGUgcmVjb25maWd1cmUgZXZlbnQKCjIwMTEtMDUtMDMgMTM6NDI6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogS2VlcCB0cmFjayBvZiByZWNvbmZpZ3VyZSBldmVudHMgYW5kIHRoZSBwYWQtbmVlZHMtcmVjb25maWd1cmluZyBzdGF0dXMKCjIwMTEtMDUtMDMgMTM6MDU6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBldmVudDogUmVuYW1lIHJlbmVnb3RpYXRlIGV2ZW50IHRvIHJlY29uZmlndXJlCgkgIEluIDAuMTEgdGhpcyBldmVudCB3aWxsIGFsc28gZG8gcmVjb25maWd1cmF0aW9uIG9mIGJ1ZmZlciBwb29scwoJICBhbmQgc2ltaWxhciB0aGluZ3MsIG5vdCBqdXN0IHJlbmVnb3RpYXRpb24uCgoyMDEwLTAzLTE3IDIxOjI0OjU1ICswMDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogU2VuZCByZW5lZ290aWF0ZSBldmVudCBvbiBsaW5rCgoyMDEwLTAzLTE3IDIxOjE3OjEwICswMDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRHJvcCByZW5lZ290aWF0ZSBldmVudCBpZiB0aGVyZSBpcyBubyBnZXRjYXBzIGZ1bmN0aW9uIG9uIGEgc2luayBwYWQKCSAgSWYgdGhlcmUgaXMgbm8gY3VzdG9tIGdldGNhcHMgZnVuY3Rpb24gb24gYSBzaW5rIHBhZCwgdGhlbiBjaGFuZ2VzIGluCgkgIGRvd25zdHJlYW0gY2FwcyB3aWxsIG5ldmVyIGJlIHByb3BhZ2F0ZWQsIHNvIHRoZXJlIGlzIG5vIHBvaW50IGluIHRyeWluZyB0bwoJICByZW5lZ290aWF0ZSB0aGUgY2FwYWJpbGl0aWVzLgoKMjAxMS0wNC0yNiAxNjozOTo1NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogT25seSByZW5lZ290aWF0ZSBvbmNlIGFmdGVyIHJlY2VpdmluZyBhIHJlbmVnb3RpYXRlIGV2ZW50CgkgIEFsc28gbWFrZSB0aGlzIHRocmVhZHNhZmUuCgoyMDExLTAxLTE3IDE0OjEzOjQ2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBIYW5kbGUgdGhlIG5ldyByZW5lZ290aWF0ZSBldmVudAoJICBNYWtlcyBiYXNlc3JjIGhhbmRsZSB0aGUgbmV3IHJlbmVnb3RpYXRlIGV2ZW50IGJ5IHVzaW5nIGEKCSAgcmVuZWdvdGlhdGUgZmxhZy4KCjIwMTEtMDQtMjYgMTY6NDg6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEFsc28gY2FsbCBnc3RfYmFzZV90cmFuc2Zvcm1fcmVjb25maWd1cmUoKSBvbiByZW5lZ290aWF0ZSBldmVudHMKCjIwMTEtMDEtMTcgMTQ6MTM6NDYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEhhbmRsZSB0aGUgbmV3IHJlbmVnb3RpYXRlIGV2ZW50CgkgIExldCBiYXNldHJhbnNmb3JtIHB1c2ggYSByZW5lZ290aWF0ZSBldmVudCB1cHN0cmVhbQoJICB3aGVuIGl0IGdldHMgYSBuZXcgc3VnZ2VzdGlvbgoKMjAxMS0wMS0xNyAxMTo1MTo0OSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV2ZW50OiBBZGRpbmcgbmV3IHJlbmVnb3RpYXRlIGV2ZW50CgoyMDExLTA1LTA1IDEzOjEwOjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHBhc3MgdGhlIGNvbnRleHQgYXJvdW5kCgkgIFBhc3MgdGhlIGNvbnRleHQgZnJvbSBzcmNwYWQgdG8gc2lua3BhZCBiZWZvcmUgZGF0YWZsb3cgd2hlbiBzb21ldGhpbmcKCSAgY2hhbmdlZC4KCjIwMTEtMDUtMDUgMTE6MTc6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiB1cGRhdGUgdGhlIGNvbnRleHQgbGF6eWx5CgoyMDExLTA1LTA1IDExOjE2OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGluaXQgdGhlIEdUeXBlIGVhcmx5CgoyMDExLTA1LTA1IDExOjE2OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZSBkZWZzCgoyMDExLTA1LTA1IDEwOjQwOjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSAgY29udGV4dDogYWRkIGZvcmVhY2ggZnVuY3Rpb24KCSAgQWRkIGEgZnVuY3Rpb24gdG8gaXRlcmF0ZSBvdmVyIGFsbCBzdG9yZWQgZXZlbnRzLgoKMjAxMS0wNS0wNSAxMDozNzoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgUmV2ZXJ0ICJjb250ZXh0OiB1c2UgY29udGV4dCBvbiBidWZmZXJzIGluc3RlYWQgb2YgY2FwcyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA5ZWYxMzQ2YjFmYTBiZDJiYjQyY2Q5OTFhNTJmZjMwOGE3MjhiZGI2LgoJICBXYXkgdG8gbXVjaCBmb3Igb25lIGNvbW1pdCBhbmQgSSdtIG5vdCBzdXJlIHdlIHdhbnQgdG8gZ2V0IHJpZCBvZiB0aGUgcGFkIGNhcHMKCSAganVzdCBsaWtlIHRoYXQuIEl0J3MgbmljZSB0byBoYXZlIHRoZSBidWZmZXIgYW5kIGl0cyB0eXBlIGluIG9udyBuaWNlIGJ1bmRsZQoJICB3aXRob3V0IGhhdmluZyB0byBkcmFnIHRoZSBjb21wbGV0ZSBjb250ZXh0IHdpdGggaXQuCgoyMDExLTA0LTIwIDIyOjUyOjM2ICswMjAwICBNaWd1ZWwgQW5nZWwgQ2FicmVyYSBNb3lhIDxtYWRtYWMyNTAxQGdtYWlsLmNvbT4KCgkqIGdzdC9wYXJzZS90eXBlcy5oOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIHBhcnNlOiBkb24ndCB1bmVzY2FwZSBpbnNpZGUgcXVvdGVzCgkgIEVzY2FwZWQgY2hhcmFjdGVycyBpbnNpZGUgcXVvdGVkIHN0cmluZ3MgYXJlIHN1cHBvc2VkIHRvIGJlIHVuZXNjYXBlZCBieQoJICBkZXNlcmlhbGl6YXRpb24gZnVuY3Rpb25zLCBub3QgYnkgcGFyc2luZyBmdW5jdGlvbnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDgwMjUKCjIwMTEtMDQtMTggMTQ6MjY6MzMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IE9ubHkgcG9zdCBFT1MgbWVzc2FnZXMgYWZ0ZXIgcmVhY2hpbmcgdGhlIFBMQVlJTkcgc3RhdGUKCSAgRml4ZXMgYnVnICM2NDc3NTYuCgoyMDExLTA0LTE4IDEwOjA0OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBSZW1vdmUgdW5uZWNlc3NhcnkgRklYTUUKCSAgUmVzZXR0aW5nIHRoZSByZXN1bHQgaXMgbm90IG5lY2Vzc2FyeSB3aGVuIHJlc3luY2luZyBiZWNhdXNlCgkgIHBhZHMgdGhhdCBwcmV2aW91c2x5IGdvdCB0aGUgZXZlbnQgd2lsbCBiZSBza2lwcGVkIGFuZCB3ZQoJICBuZWVkIHRvIGNvbnNpZGVyIHRoZSByZXN1bHRzIG9mIHRoZSBwcmV2aW91cyBwdXNoZXMuCgoyMDExLTA0LTE4IDA5OjUzOjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IElmIGFjdGl2YXRpbmcgb25lIHBhZCBmYWlsZWQgZXJyb3Igb3V0IGVhcmx5IGluc3RlYWQgb2YgdHJ5aW5nIHRvIGFjdGl2YXRlIHRoZSBuZXh0IHBhZHMKCSAgSWYgb25lIHBhZCBmYWlscyB0byBhY3RpdmF0ZSB0aGUgY29tcGxldGUgYWN0aXZhdGlvbiBwcm9jZXNzIHdpbGwgZmFpbAoJICBhbnl3YXkgYW5kIHRyeWluZyB0byBhY3RpdmF0ZSB0aGUgb3RoZXIgcGFkcyBvbmx5IHdhc3RlcyB0aW1lLgoKMjAxMS0wNC0xOCAwOTo0OTowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogSWYgYWN0aXZhdGluZyBvbmUgcGFkIGZhaWxlZCBlcnJvciBvdXQgZWFybHkgaW5zdGVhZCBvZiB0cnlpbmcgdG8gYWN0aXZhdGUgdGhlIG5leHQgcGFkcwoJICBJZiBvbmUgcGFkIGZhaWxzIHRvIGFjdGl2YXRlIHRoZSBjb21wbGV0ZSBhY3RpdmF0aW9uIHByb2Nlc3Mgd2lsbCBmYWlsCgkgIGFueXdheSBhbmQgdHJ5aW5nIHRvIGFjdGl2YXRlIHRoZSBvdGhlciBwYWRzIG9ubHkgd2FzdGVzIHRpbWUuCgoyMDExLTA1LTA1IDEyOjI4OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBSZW1vdmUgbm93YWRheXMgdW51c2VkIGFuZCB1bmluaXRpYWxpemVkIHNldGNhcHMgdmFyaWFibGUKCjIwMTEtMDUtMDUgMTI6Mjc6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmMKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYwoKMjAxMS0wNS0wNCAxODo1OTo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgY29udGV4dDogdXNlIGNvbnRleHQgb24gYnVmZmVycyBpbnN0ZWFkIG9mIGNhcHMKCSAgUHV0IHRoZSBzcmNwYWQgY29udGV4dCBvbiBidWZmZXJzIGluc3RlYWQgb2YgY2Fwcy4gVGhpcyBhbGxvd3MgdXMgdG8gYXNzb2NpYXRlCgkgIGFsbCB0aGUgcmVsZXZhbnQgaW5mbyBjb250YWluZWQgaW4gZXZlbnRzIHdpdGggYSBidWZmZXIuCgoyMDExLTA1LTA0IDE1OjI5OjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIHRlc3RzOiBmaXggY29tcGlsZXIgd2FybmluZyBpbiBuZXcgbWluaW9iamVjdCB0ZXN0CgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IEluIGZ1bmN0aW9uIOKAmHRlc3RfZHVwX251bGxfbWluaV9vYmplY3TigJk6CgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6NDU5Ojc6IHdhcm5pbmc6IGFzc2lnbm1lbnQgZnJvbSBpbmNvbXBhdGlibGUgcG9pbnRlciB0eXBlCgoyMDExLTA1LTA0IDE1OjUzOjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IHVzZSB0aGUgY29udGV4dCB0byBzdG9yZSBzdGlja3kgZXZlbnRzCgkgIFN0b3JlIHRoZSBzdGlja3kgZXZlbnRzIGluIHRoZSBjb250ZXh0IG9mIGEgc291cmNlIHBhZC4KCjIwMTEtMDUtMDQgMTU6MjA6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkqIGdzdC9nc3RldmVudC5oOgoJICBjb250ZXh0OiBhZGQgaGVscGVyIG9iamVjdCB0byBtYW5hZ2UgZXZlbnRzCgkgIEFkZCBhIGhlbHBlciBvYmplY3QgdG8gbWFuYWdlIHRoZSBldmVudHMgdGhhdCBkZWZpbmUgdGhlIGNvbnRleHQgb2YgYSBidWZmZXIgYW5kCgkgIGEgc3RyZWFtLgoKMjAxMS0wNS0wNCAxMTowNzoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUgZGVmcwoKMjAxMS0wNS0wNCAxMTowMzowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBldmVudDogYWRkIG5ldyBDQVBTIGV2ZW50CgkgIEFkZCBhIG5ldyBDQVBTIGV2ZW50IHRoYXQgd2lsbCBiZSB1c2VkIHRvIG5lZ290aWF0ZSBkb3duc3RyZWFtIGVsZW1lbnRzLiBJdCdsbAoJICBhbHNvIHN0aWNrIG9uIHBhZCBzbyB0aGF0IHdlIGNhbiByZW1vdmUgdGhlIEdzdENhcHMgZmllbGQgb24gcGFkcyBhbmQgdGhlCgkgIEdzdENhcHMgZmllbGQgb24gYnVmZmVycy4KCjIwMTEtMDUtMDMgMTg6NTg6MTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogbW9yZSBzdGlja3kgZXZlbnRzIHdvcmsKCSAgQ29weSB0aGUgc3RpY2t5IGV2ZW50cyBmcm9tIHRoZSBzcmNwYWQgdG8gdGhlIHNpbmtwYWQgd2hlbiBsaW5raW5nIHBhZHMuIFNldCB0aGUKCSAgU1RJQ0tZX1BFTkRJTkcgZmxhZyB0byBtYWtlIHN1cmUgdGhhdCB0aGUgc3RpY2t5IGV2ZW50cyBhcmUgZGlzcGF0Y2hlZCBiZWZvcmUKCSAgcHVzaGluZyB0aGUgbmV4dCBidWZmZXIgdG8gdGhlIGVsZW1lbnQuCgoyMDExLTA1LTAzIDE2OjExOjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogaW1wcm92ZSBwb3J0aW5nIGRvYwoKMjAxMS0wNS0wMiAxODo0NToyNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBwb3J0aW5nIGRvY3VtZW50CgoyMDExLTA1LTAyIDExOjMwOjA2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IEZpeCBkdXBfbWluaV9vYmplY3QgZnVuY3Rpb24gdG8gaGFuZGxlIE5VTEwgZ3ZhbHVlcwoJICBnX3ZhbHVlX2R1cF9vYmplY3QgaGFuZGxlcyBndmFsdWVzIHRoYXQgY29udGFpbiBOVUxMIHBvaW50ZXJzLAoJICBnc3RfdmFsdWVfZHVwX21pbmlfb2JqZWN0IHNob3VsZCBkbyB0aGUgc2FtZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0OTE5NQoKMjAxMS0wNS0wMyAxMzo1NTo0MyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgZG9jczogaXQgaXRzICVUUlVFIChjb25zdGFudCkKCSAgQXMgc3BvdHRlZCBieSBUaW0uCgoyMDExLTA1LTAyIDE2OjIyOjU2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZG9jczogZml4IGNvcHknbidwYXN0ZSBkb2MgaGVhZGVyIG1pc3Rha2UKCjIwMTEtMDUtMDIgMTY6MjA6MjQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgIGRvY3M6IGFkZCB0d28gdHJpdmlhbCBkb2MgYmxvYnMKCjIwMTEtMDUtMDIgMTY6MDM6MjkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGRvY3M6IGFkZCBtaXNzaW5nIHBhcmFtZXRlciBkb2NzCgoyMDExLTA1LTAyIDE2OjAwOjUyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmg6CgkgIGRvY3M6IGFkZCBkb2NzIGZvciBHc3REUFBhY2tldGl6ZXIKCjIwMTEtMDUtMDIgMTU6NTI6NTggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmg6CgkgIGRvY3M6IGltcHJvdmUgdGhlIHN5bnRheCBmb3IgdGhlIGNhcHNpbnRlcnNlY3Rtb2RlIGRvY3MKCjIwMTEtMDUtMDIgMTU6NDg6MDEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGRvY3M6IGZpeHVwIGJyb2tlbiB4cmVmCgoyMDExLTA1LTAyIDE1OjQ2OjU5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgbmV3IGFwaSB0byAtc2VjdGlvbi50eHQKCjIwMTEtMDUtMDIgMTU6MzU6NTIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5oOgoJICBkb2NzOiBmaXggZ3RrLWRvYyBzeW50YXgKCjIwMTEtMDUtMDIgMTU6MzA6MTMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGRvY3M6IGRvbid0IGR1cGxpY2F0ZSBpbmZvIHRoYXQgd2UgdGFrZSBmcm9tIGVsZW1lbnQtZGV0YWlscwoKMjAxMS0wNC0yOCAxNTozNzowMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogcmVtb3ZlIG5vbiBleGlzdGluZyBzeW1ib2wKCjIwMTEtMDQtMjggMTU6MDU6MjggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJICBkb2NzOiB3ZSBkb24ndCBuZWVkIHRvIGRvY3VtZW50IHByaXZhdGUgbWVtYmVycyBpbiBvcGFxdWUgc3RydWN0cwoKMjAxMS0wNC0yOSAxMzo0MzowNyArMDIwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwcmVzZXQuYzoKCSAgY29yZTogc3RvcmUgcHJlc2V0cywgcmVnaXN0cnkgYW5kIHBsdWdpbnMgaW4gWERHIGRpcmVjdG9yaWVzLgoJICBQcmVzZXRzIGFuZCBwbHVnaW5zIG1vdmVkIHRvICRYREdfREFUQV9IT01FL2dzdHJlYW1lci0wLjExLwoJICByb290IGRpcmVjdG9yeS4gUmVnaXN0cnkgbW92ZWQgdG8gJFhER19DQUNIRV9IT01FL2dzdHJlYW1lci0wLjExLy4KCSAgRml4ZXMgYnVnICM1MTg1OTcuCgoyMDExLTA1LTAzIDA5OjQxOjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBjb25maWd1cmUuYWMKCSAgZ3N0L2dzdGJ1cy5jCgoyMDExLTA1LTAyIDE4OjM0OjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgZXZlbnQ6IGFkZCBzdGlja3kgZmxhZ3MgdG8gZXZlbnRzCgkgIEFkZCB0aGUgc3RpY2t5IGZsYWcgdG8gZXZlbnRzIGFuZCBhIHN0aWNreSBpbmRleC4KCSAgS2VlcCBzdGlja3kgZXZlbnRzIGluIGFuIGFycmF5IG9uIGVhY2ggcGFkLgoJICBSZW1vdmUgR1NUX0VWRU5UX1NSQygpLCBpdCBpcyBjYXVzaW5nIHJlZmN5Y2xlcyB3aXRoIHN0aWNreSBldmVudHMsIHdhcyBub3QgdXNlZAoJICBhbmQgaXMgbm90IHZlcnkgaW50ZXJlc3RpbmcgYW55d2F5LgoKMjAxMS0wNS0wMiAxMTowOTo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IGltcHJvdmUgYWxsb2NhdGlvbiBwYXJhbWV0ZXJzIHF1ZXJ5CgkgIFVzZSB0aGUgc2FtZSBwYXJhbWV0ZXJzIGFzIHRob3NlIHVzZWQgZm9yIHRoZSBidWZmZXJwb29sLiBNYWtlIHN1cmUgd2UgY2FuIHBhc3MKCSAgYSBtaW5pbXVtIGFuZCBtYXhpbXVtIGFtb3VudCBvZiBidWZmZXJzIG5lZWRlZC4KCjIwMTEtMDQtMzAgMTY6NTU6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zdGF0aWNlbGVtZW50cy54bWw6CgkqIHBvL2RlLnBvOgoJKiBwby9mci5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjMyLjQgcHJlLXJlbGVhc2UKCjIwMTEtMDQtMjkgMjM6NDQ6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgcGx1Z2luZmVhdHVyZTogaW5jbHVkZSBwbHVnaW4uaCBpbiBoZWFkZXIgd2hlcmUgd2UgdXNlIGEgR3N0UGx1Z2luIHBvaW50ZXIKCSAgU2hvdWxkIGZpeCBpc3N1ZSB3aXRoIGdzdHJlYW1lcm1tIGJ1aWxkIHdoZXJlIDxnc3QvZ3N0aW5kZXguaD4gaXMgaW5jbHVkZWQKCSAgZGlyZWN0bHkgaW5zdGVhZCBvZiBnc3QvZ3N0LmguCgoyMDExLTA0LTI5IDEzOjQyOjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIHRyYW5zZm9ybTogZG8gcGFkX2FsbG9jIGZhbGxiYWNrIGNvcnJlY3RseQoKMjAxMS0wNC0yOSAxMzoyNjoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmFsdmUuYzoKCSogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIFJlbW92ZSBwYWRfYWxsb2MsIHRoaXMgY2FuIG5vdyBiZSBkb25lIGJldHRlcgoJICBSZW1vdmUgcGFkX2FsbG9jIGFuZCBhbGwgcmVmZXJlbmNlcy4gVGhpcyBjYW4gbm93IGJlIGRvbmUgbW9yZSBlZmZpY2llbnRseSBhbmQKCSAgbW9yZSBmbGV4aWJsZSB3aXRoIHRoZSBBTExPQ0FUSU9OIHF1ZXJ5IGFuZCB0aGUgYnVmZmVycG9vbCBvYmplY3RzLiBUaGVyZSBpcyBubwoJICByZXZlcnNlIG5lZ290aWF0aW9uIHlldCBidXQgdGhhdCB3aWxsIGJlIGRvbmUgd2l0aCBhbiBldmVudCBsYXRlci4KCjIwMTEtMDQtMjkgMTI6MTE6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGluaXQgdGhlIEFMTE9DQVRJT04gcXVlcnkgY29ycmVjdGx5CgkgIERvbid0IGFkZCB0aGUgJ3Bvb2wnIHByb3BlcnR5IGluc3RlYWQgb2YgYWRkaW5nIGl0IHdpdGggYSBOVUxMIGFycmF5LgoKMjAxMS0wNC0yOSAxMDo1MDoxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHF1ZXJ5OiBmaXggcGFyc2luZyBvZiB0aGUgQUxMT0NBVElPTiBxdWVyeQoJICBBZGQgbWV0aG9kcyBmb3IgcGFyc2luZyB0aGUgY2FwcyBhbmQgdGhlIG5lZWRfcG9vbCBib29sZWFuLgoKMjAxMS0wNC0yOCAxNjoyMDoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHF1ZXJ5OiBmaXggdHlwbyBpbiBtZXRob2QgbmFtZSBhbmQgaW1wcm92ZSBkb2NzCgkgIEZpeGVkIHR5cG8gaW4gbWV0aG9kIG5hbWUgYW5kIGFkZC9pbXByb3ZlIHRoZSBkb2NzLgoKMjAxMS0wNC0yOCAxNTozMTo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWFsbG9jYXRpb24udHh0OgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBxdWVyeSB0byByZXF1ZXN0IHBvb2wgYW5kIGNvbmZpZ3VyYXRpb24KCSAgQWRkIGEgcXVlcnkgdG8gcmVxdWVzdCBhbGxvY2F0aW9uIHBhcmFtZXRlcnMgYW5kIG9wdGlvbmFsbHkgYSBidWZmZXJwb29sIGFzCgkgIHdlbGwuIFRoaXMgc2hvdWxkIGFsbG93IGVsZW1lbnRzIHRvIGRpc2NvdmVyIGRvd25zdHJlYW0gY2FwYWJpbGl0aWVzIGFuZCBhbHNvCgkgIHVzZSB0aGUgZG93bnN0cmVhbSBhbGxvY2F0b3JzLgoKMjAxMS0wNC0yNyAxODoxMDo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBmaXggdGltZW91dCBoYW5kbGluZwoKMjAxMS0wNC0yNyAxNzo1NjoxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcnBvb2wudHh0OgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBmaXggc29tZSBkb2NzCgoyMDExLTA0LTI3IDE3OjU1OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIGV2ZW50OiBpbXByb3ZlIGFyZ3VtZW50IG5hbWVzIG9mIHNlZ21lbnRzCgoyMDExLTA0LTI3IDExOjQ5OjExICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBwby9iZy5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9ydS5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjMyLjMgcHJlLXJlbGVhc2UKCjIwMTEtMDQtMjYgMTU6NDI6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkgIFJldmVydCBsb2NrZnJlZSBHc3RCdXMgZm9yIHRoZSByZWxlYXNlCgkgIERyb3AgaW4gb2xkIEdzdEJ1cyBjb2RlIGZvciB0aGUgcmVsZWFzZSB0byBwbGF5IGl0IHNhZmUsIHNpbmNlCgkgIHJlZ3Jlc3Npb25zIHRoYXQgYXJlIGFwcGFyZW50bHkgaGFyZCB0byB0cmFjayBkb3duIGFuZCByZXByb2R1Y2UKCSAgaGF2ZSBiZWVuIHJlcG9ydGVkIChvbiB3aW5kb3dzL09TWCBtb3N0bHkpIGFnYWluc3QgdGhlIGxvY2tmcmVlCgkgIHZlcnNpb24sIGFuZCBtb3JlIHRpbWUgaXMgbmVlZGVkIHRvIGZpeCB0aGVtLgoJICBUaGlzIHJldmVydHMgY29tbWl0IDAzMzkxYTg5NzAwMWQzNWQxZDI5MGYyN2RkMTJlOThhOGI3MjlmYjQuCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNDNjZGJjMTdlNmY5NDRjZGYwMmFlZWQ3OGQxZDVmNmJkZTUxOTBjOS4KCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA4MGViMTYwZTBmNjIzNTAyNzFmMDYxZGFhNWYyODlkOWQ0Mjc3Y2Y0LgoJICBUaGlzIHJldmVydHMgY29tbWl0IGM0MWIwYWRlMjg3OTBmZmRiMGU0ODRiNDFjZDc5MjljNGUxNDVkZWMuCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgODc0ZDYwZTU4OTlkZDViODk4NTQ2NzlkMWE0YWQwMTZhNThiYTRlMC4KCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA3OTM3MGQ0YjE3ODFhZjljOWE2NWYyZDFlMzQ5ODEyNGQ4YzRjNDEzLgoJICBUaGlzIHJldmVydHMgY29tbWl0IDJjYjNlNTIzNTE5NmViNzFmYjI1ZTBhNGE0Yjg3NDlkNmQwYTg0NTMuCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYmQxYzQwMDExNDM0YzFlZmFhNjk2ZGM5OGVmODU1ZWY5Y2NlOWIyOC4KCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA0YmY4ZjE1MjRmNmUzMzc0YjNmM2JjNTczMjIzMzc3MjNkMDZiOTI4LgoJICBUaGlzIHJldmVydHMgY29tbWl0IDE0ZDdkYjFiNTI3YjA1ZjAyOTgxOTA1N2FlZjVjMTIzYWM3ZTAxM2QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDc0OTMKCjIwMTEtMDQtMjUgMTE6MTA6NDcgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBTbWFsbCBjb3NtZXRpYyBjbGVhbnVwcwoJICBNYWtlIHN1cmUgdGhlIHJldHVybiB2YWx1ZXMgZnJvbSBnX3JldHVybl8qIGFyZSBvZiB0aGUgcmlnaHQgdHlwZS4KCjIwMTEtMDQtMjUgMTA6NTY6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBtaXhpbmcgb2YgcmV0dXJuIHZhbHVlcwoKMjAxMS0wNC0yNSAxMDozMDo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDQtMTUgMjI6MDA6MTEgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIG1pbm9yIGlubGluZSBkb2N1bWVudGF0aW9uIGZpeAoKMjAxMS0wNC0yNCAxNDowMjo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGMzY2FmZTEgdG8gNDZkZmNlYQoKMjAxMS0wNC0yNCAxMTo0NDoxOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIHRlc3RzOiBjbGVhbiB1cCBwcm9wZXJseSBpbiB0aGUgYmluIHRlc3RfbGlua19zdHJ1Y3R1cmVfY2hhbmdlIHVuaXQgdGVzdAoJICBEb24ndCBmb3JnZXQgdG8gc2V0IHRoZSBwaXBlbGluZSBiYWNrIHRvIE5VTEwgc3RhdGUsIHdoaWNoIG1ha2VzCgkgIHZhbGdyaW5kIGhhcHB5IGFnYWluLgoKMjAxMS0wNC0yNCAwOTo1ODo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IHdoZW4gcmVtb3ZpbmcgYSBjYWNoZWQtYnV0LW5vLWxvbmdlci1leGlzdGluZyBwbHVnaW4sIG9ubHkgcmVtb3ZlIGZlYXR1cmVzIHRoYXQgYmVsb25nIHRvIGl0CgkgIFdoZW4gYSBwbHVnaW4gZmlsZSBubyBsb25nZXIgZXhpc3RzLCBlLmcuIGJlY2F1c2UgaXQncyBiZWVuIHJlbW92ZWQgb3IKCSAgcmVuYW1lZCwgZG9uJ3QgcmVtb3ZlIGFsbCBmZWF0dXJlcyBpbiB0aGUgcmVnaXN0cnkgYmFzZWQgb24gdGhlICpuYW1lKgoJICBvZiB0aGUgcGx1Z2luIHRoZXkgYmVsb25nIHRvLCBidXQgb25seSByZW1vdmUgdGhvc2Ugd2hvIGFjdHVhbGx5IGJlbG9uZwoJICB0byB0aGF0IHBhcnRpY3VsYXIgcGx1Z2luIChvYmplY3QvcG9pbnRlcikuCgkgIFRoaXMgZml4ZXMgaXNzdWVzIG9mIHBsdWdpbiBmZWF0dXJlcyBkaXNhcHBlYXJpbmcgd2hlbiBhIHBsdWdpbiAuc28gZmlsZQoJICBpcyByZW5hbWVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA0MDk0CgoyMDExLTA0LTI0IDA5OjUzOjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgIHBsdWdpbmZlYXR1cmU6IHN0b3JlIHBvaW50ZXIgdG8gcGx1Z2luIGluIGFkZGl0aW9uIHRvIHRoZSBwbHVnaW4gbmFtZQoJICBTbyB3ZSBjYW4gcmVsaWFibHkgcmVtb3ZlIHBsdWdpbiBmZWF0dXJlcyBmb3IgYSBzcGVjaWZpYyBwbHVnaW4gbGF0ZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MDQwOTQKCjIwMTEtMDQtMjQgMTE6MDU6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiB1c2UgVFJBQ0UgbG9nIGxldmVsIHRvIGxvZyBmaWxlcyB0aGF0IGRvbid0IGxvb2sgbGlrZSBwbHVnaW5zCgkgIEN1dHMgZG93biB0aGUgbm9pc2UgaW4gdW5pbnN0YWxsZWQgc2V0dXBzLgoKMjAxMS0wNC0xOSAyMDozNTowNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZml4IG5lZ290aWF0aW9uIHJlZ3Jlc3Npb24KCSAgRml4dXAgcGF0Y2ggZm9yIDgzNTk3NzY3YjE2OWRkNmMzOWEwN2I2MTQ0YTY1MGMxZjA5ODgyNWEKCSAgVXNlIGEgc2VwYXJhdGUgdmFyaWFibGUgZm9yIGtub3dpbmcgaWYgYSBwYWQgYWxsb2MgaGFzIGJlZW4gbWFkZQoJICBpbnN0ZWFkIG9mIGNoZWNraW5nIGZvciB0aGUgZmxvdyByZXR1cm4gdGhhdCBtaWdodCBub3QgYmUgdGhlCgkgIHJlc3VsdCBvZiB0aGUgcGFkIGFsbG9jCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDgyMjAKCjIwMTEtMDQtMjEgMTI6MzM6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHRlc3RzOiBhZGQgc2ltcGxlIHBpcGVsaW5lLWluLXBpcGVsaW5lIHVuaXQgdGVzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ4Mjk3CgoyMDExLTA0LTIwIDE1OjM5OjE2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBhbHNvIGFsbG93IHBvcHBpbmcgYSBtZXNzYWdlIHdpdGhvdXQgdGltZW91dCBpZiBubyBwb2xsIGF2YWlsYWJsZQoJICAuLi4gd2hpY2ggaGFwcGVucyBpbiBwYXJ0aWN1bGFyIGZsdXNoaW5nIGEgYnVzLCBwb3NzaWJseSBhcyBwYXJ0CgkgIG9mIGEgc3RhdGUgY2hhbmdlLCBlLmcuIHdoZW4gaGF2aW5nIGEgcGlwZWxpbmUgaW4gYSBwaXBlbGluZQoJICBhbmQgdGhlbiBjaGFuZ2luZyBzdGF0ZSBiYWNrIHRvIE5VTEwuIFRoZSBpbnRlcmlvciBwaXBlbGluZQoJICB3aWxsL21pZ2h0IHRoZW4gZmx1c2ggdGhlIGJ1cywgd2hpY2ggaXMgYSBjaGlsZCBidXMgZnJvbSB0aGUKCSAgcGFyZW50IHdoaWNoIGRvZXMgbm90IGhhdmUgYSBwb2xsIGFueW1vcmUgdGhlc2UgZGF5cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0ODI5NwoKMjAxMS0wNC0yMCAxOTowODo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUgZGVmcwoKMjAxMS0wNC0yMCAxOTowMzo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IHJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCjIwMTEtMDQtMjAgMTk6MDA6MDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBkb24ndCB0b3VjaCBiYXNlX3RpbWUgb3IgY2xvY2sgaW4gc3RhdGUgY2hhbmdlCgkgIERvbid0IHRvdWNoIHRoZSBiYXNlX3RpbWUgb3IgdGhlIGNsb2NrIHdoZW4gc2V0dGluZyBhbiBlbGVtZW50IHRvIHRoZSBSRUFEWSBvcgoJICBOVUxMIHN0YXRlLiBJdCBpcyB0aGUgcGFyZW50IHRoYXQgd2lsbCBtYW5hZ2UgdGhpcyBmb3IgdXMuCgoyMDExLTA0LTE5IDIwOjUyOjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IEltcGxlbWVudCBnc3RfYnVmZmVyX2xpc3RfZm9yZWFjaCgpCgoyMDExLTA0LTE5IDE5OjMwOjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNC0xOSAxODo1Nzo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGFkZCBtZXRob2QgdG8gY29tcGFyZSBidWZmZXIgZGF0YQoJICBBZGQgbWV0aG9kIHRvIGNvbXBhcmUgdGhlIGRhdGEgaW4gYSBidWZmZXIuCgoyMDExLTA0LTE5IDE2OjIxOjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGNvbmZpZ3VyZS5hYwoKMjAxMS0wNC0xOSAxNDowNToyMyArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHVubG9jayBiZWZvcmUgZnJlZWluZyB0aGUgY2FjaGUgdG8gYXZvaWQgZGVhZGxvY2sKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0ODE5OQoKMjAxMS0wNC0xNCAxMDoxNToyNiArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGRvbid0IHVucmVmIHRyYW5zIHVudGlsIHRoZSBmdW5jdGlvbiBpcyBkb25lIHVzaW5nIGl0CgkgIHRyYW5zLT5wcml2LT5mb3JjZV9hbGxvYyA9IEZBTFNFIHdvdWxkIGNyYXNoIGlmIHRoZSByZWYgaGVsZCBpcyB0aGUgbGFzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ4MjE1CgoyMDExLTA0LTE5IDEzOjIzOjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmRleC5jOgoJICBkb2NzOiBhZGQgbm90ZS93YXJuaW5nIHRvIGdzdF9pbmRleF9nZXRfd3JpdGVyX2lkKCkgZG9jcyBhYm91dCB0aGUgT0JKRUNUX0xPQ0sKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NjgxMQoKMjAxMS0wNC0xOSAxMzowNTo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGRvbid0IGRlYWRsb2NrIHdoZW4gc2V0dGluZyBleHRlcm5hbCBpbmRleAoJICBQcm90ZWN0IGluZGV4IHdpdGggaXRzIG93biBsb2NrLiBnc3RfaW5kZXhfZ2V0X3dyaXRlcl9pZCgpIG1heSB0YWtlCgkgIHRoZSBvYmplY3QgbG9jayBpbnRlcm5hbGx5ICh0aGUgZGVmYXVsdCByZXNvbHZlciwgR1NUX0lOREVYX1JFU09MVkVSX1BBVEgsCgkgIHdpbGwgYW55d2F5KSwgc28gaWYgd2UncmUgdXNpbmcgdGhhdCB0byBwcm90ZWN0IHRoZSBpbmRleCBhcyB3ZWxsLAoJICB3ZSdsbCBkZWFkbG9jay4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NjgxMQoKMjAxMS0wNC0xOSAxMTo1MTozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG1ha2UgZm10bGlzdCBjb25zdGFudAoKMjAxMS0wNC0xOSAxMTo0ODowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIHF1ZXJ5OiBjb25zdC1pZnkgZm9ybWF0cyBhcmd1bWVudHMgdG8gZ3N0X3F1ZXJ5X3NldF9mb3JtYXRzdigpCgoyMDExLTA0LTE4IDE4OjE5OjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYXJhbXNwZWNzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWdzZXR0ZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIHRlc3RzOiBVc2UgR19ERUZJTkVfVFlQRSBpbnN0ZWFkIG9mIEdTVF9CT0lMRVJQTEFURQoKMjAxMS0wNC0xOCAxODoxOToyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNle3Npbmssc3JjfTogRG9uJ3QgdHJ5IHRvIGZpeGF0ZSBBTlkgY2FwcwoKMjAxMS0wNC0xOCAxODowNzowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZWxlbWVudHM6IFVzZSBHX0RFRklORV9UWVBFIGluc3RlYWQgb2YgR1NUX0JPSUxFUlBMQVRFCgoyMDExLTA0LTE4IDE3OjMzOjM0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXQ6IFVzZSBHX0RFRklORV9UWVBFIGluc3RlYWQgb2YgR1NUX0JPSUxFUlBMQVRFCgoyMDExLTA0LTE4IDE3OjMyOjE3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJICBiYXNlOiBVc2UgR19ERUZJTkVfVFlQRSBpbnN0ZWFkIG9mIEdTVF9CT0lMRVJQTEFURQoKMjAxMS0wNC0xOCAxNzoyODozNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IFJlbW92ZSBHU1RfQk9JTEVSUExBVEUgYW5kIGZyaWVuZHMKCjIwMTEtMDQtMTggMTA6NDc6MjYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogTWFrZSB0aGUgc2l6ZSBwYXJhbWV0ZXIgb2YgZ3N0X3BhZF9hbGxvY19idWZmZXIoKSB1bnNpZ25lZAoJICBJbnRlcm5hbGx5IGd1aW50cyB3ZXJlIHVzZWQgZXZlcnl3aGVyZSBhbHJlYWR5LgoKMjAxMS0wNC0xOCAxMDo0MToxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRG9uJ3QgYWxsb3cgZml4YXRpbmcgQU5ZIGNhcHMgYW5kIHJlbW92ZSBGSVhNRQoKMjAxMS0wNC0xOCAxMDozNjo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogRW5hYmxlIERVUkFUSU9OIHF1ZXJ5IGNhY2hpbmcKCSAgRWxlbWVudHMgbXVzdCBub3cgcG9zdCBhIERVUkFUSU9OIG1lc3NhZ2Ugb24gdGhlIGJ1cyBpZiB0aGV5CgkgIGNoYW5nZSB0aGUgZHVyYXRpb24gaW4gUEFVU0VEIG9yIFBMQVlJTkcuCgoyMDExLTA0LTE2IDE1OjIwOjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGRvY3M6IHJlbW92ZSByZWZlcmVuY2UgdG8gYmFzZXBhcnNlIEFQSSB0aGF0IGRpZG4ndCBtYWtlIGl0CgoyMDExLTA0LTE2IDE2OjA2OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDQtMTYgMTU6Mjg6NTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogQWRkIHRlc3QgZm9yIGluaGVyaXRpbmcgbWV0YWRhdGEvcGFkIHRlbXBsYXRlcwoKMjAxMS0wNC0xNiAxNToyNDowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlOiBVcGRhdGUgZG9jcyB0byBzYXkgY2xhc3NfaW5pdCBpbnN0ZWFkIG9mIGJhc2VfaW5pdAoJICBBbmQgcmVtb3ZlIGEgdXNlbGVzcyBiYXNlX2luaXQgaW4gYmFzZXNyYwoKMjAxMS0wNC0xNiAxNToyMzo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIG5ldDogVXNlIEdfREVGSU5FX1RZUEUKCjIwMTEtMDQtMTYgMTU6MjM6MTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgZ3N0OiBEb24ndCB1c2UgYmFzZV9pbml0IGFuZCB1c2UgR19ERUZJTkVfVFlQRSBpbnN0ZWFkIG9mIEdTVF9CT0lMRVJQTEFURQoKMjAxMS0wNC0xNiAxNTowMzozMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgZWxlbWVudDogSW5oZXJpdCBlbGVtZW50IG1ldGFkYXRhIGFuZCBwYWQgdGVtcGxhdGVzIGZyb20gcGFyZW50IGNsYXNzZXMKCSAgVGhpcyBhbGxvd3MgdG8gYWRkIHBhZCB0ZW1wbGF0ZXMgYW5kIHNldCBtZXRhZGF0YSBpbiBjbGFzc19pbml0IGluc3RlYWQgb2YKCSAgYmFzZV9pbml0LiBiYXNlX2luaXQgaXMgYSBjb25jZXB0IHRoYXQgaXMgbm90IHN1cHBvcnRlZCBieSBhbG1vc3QgYWxsCgkgIGxhbmd1YWdlcyBhbmQgY29weWluZyB0aGUgdGVtcGxhdGVzL21ldGFkYXRhIGZvciBzdWJjbGFzc2VzIGlzIHRoZSBtb3JlCgkgIGludHVpdGl2ZSB3YXkgb2YgZG9pbmcgdGhpbmdzLgoJICBTdWJjbGFzc2VzIGNhbiBvdmVycmlkZSBwYWQgdGVtcGxhdGVzIG9mIHBhcmVudCBjbGFzc2VzIGJ5IGFkZGluZyBhIG5ldwoJICB0ZW1wbGF0ZSB3aXRoIHRoZSBzYW1lIG5vdy4KCSAgQWxzbyBnc3RfZWxlbWVudF9jbGFzc19hZGRfcGFkX3RlbXBsYXRlKCkgbm93IHRha2VzIG93bmVyc2hpcCBvZiB0aGUKCSAgcGFkIHRlbXBsYXRlLCB3aGljaCB3YXMgYXNzdW1lZCBieSBhbGwgY29kZSBiZWZvcmUgYW55d2F5LgoJICBGaXhlcyBidWcgIzQ5MTUwMS4KCjIwMTEtMDQtMTYgMTQ6NTY6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjMyLjIgcHJlLXJlbGVhc2UKCjIwMTEtMDQtMTYgMTQ6NTQ6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDExLTA0LTE2IDE0OjUyOjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogcmVtb3ZlIG5ld2xpbmUgZnJvbSB0cmFuc2xhdGFibGUgc3RyaW5nCgoyMDExLTA0LTE2IDEzOjQ5OjQ1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgZ3N0OiBnb2JqZWN0LWludHJvc3BlY3Rpb24gc2Nhbm5lciBkb2Vzbid0IG5lZWQgdG8gc2NhbiBvciB1cGRhdGUgcGx1Z2luIGluZm8KCjIwMTEtMDQtMTYgMTQ6MzQ6MDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBnc3Q6IG1ha2Ugc3VyZSBnb2JqZWN0LWludHJvc3BlY3Rpb24gc2Nhbm5lciBjYWxscyBnc3RfaW5pdCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDc5MjIKCjIwMTEtMDQtMTYgMTA6NDU6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBsaWJzOiBnb2JqZWN0LWludHJvc3BlY3Rpb24gc2Nhbm5lciBkb2Vzbid0IG5lZWQgdG8gc2NhbiBvciB1cGRhdGUgcGx1Z2luIGluZm8KCSAgTWFrZSBzdXJlIHRoZSBzY2FubmVyIGRvZXNuJ3QgbG9hZCBvciBpbnRyb3NwZWN0IG9yIGNoZWNrIGFueSBwbHVnaW5zLAoJICAoZXNwZWNpYWxseSBub3Qgb3V0c2lkZSB0aGUgYnVpbGQgZGlyZWN0b3J5KS4KCjIwMTEtMDQtMTYgMTA6MzM6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBsaWJzOiBtYWtlIHN1cmUgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHNjYW5uZXIgY2FsbHMgZ3N0X2luaXQoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ3OTIyCgoyMDExLTA0LTE2IDEwOjE3OjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgYmFzZXBhcnNlIEFQSSB0byBsaWJnc3RiYXNlLmRlZgoKMjAxMS0wNC0xNiAwOTozMzowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA0LTE2IDA5OjMyOjE3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogQWRkIGV4cG9ydHMgZm9yIHRoZSBHc3RQYXJzZUNvbnRleHQgYW5kIEdzdEJ1ZmZlckxpc3RJdGVyYXRvciB0eXBlcwoKMjAxMS0wNC0xNiAwODo1OTo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA0LTE1IDIwOjU4OjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBvbmx5IHJ1biBnc3QtcGx1Z2luLXNjYW5uZXIgd2l0aCAvdXNyL2Jpbi9hcmNoIHdyYXBwZXIgb24gT1MgWCA+PSAxMC41CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBEYW5pZWwgTWFja3MgPGRtYWNrc0BuZXRzcGFjZS5vcmc+CgkgIEVhcmxpZXIgdmVyc2lvbnMgb2YgT1NYIGRvbid0IHN1cHBvcnQgcHJvcGVyIG11bHRpYXJjaCBhbmQKCSAgdHJ5aW5nIHRvIHVzZSAvdXNyL2Jpbi9hcmNoIC1mb28gd2l0aCB0aG9zZSB2ZXJzaW9ucyB3b3VsZAoJICBqdXN0IGJyZWFrIHRoaW5ncy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxNTM1NwoKMjAxMS0wNC0xNSAxOTowNzo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGV4cG9zZSBnc3RfYmFzZV9wYXJzZV9mcmFtZV9mcmVlKCkgZm9yIGNvbXBsZXRlbmVzcwoJICBBUEk6IGdzdF9iYXNlX3BhcnNlX2ZyYW1lX2ZyZWUoKQoKMjAxMS0wNC0xNSAxODo1MjoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGluaXQgZnJhbWVzIG9uIHRoZSBzdGFjayB3aXRoIGdzdF9iYXNlX3BhcnNlX2ZyYW1lX2luaXQoKQoJICBGcmFtZXMgbXVzdCBub3cgYmUgaW5pdGVkIHRoaXMgd2F5LCBjYW4ndCBqdXN0IHplcm8gdGhlbQoJICBvdXQgYW5kIHVzZSB0aGVtLgoKMjAxMS0wNC0xNSAxODozODo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG1vcmUgZGVidWcgbG9nZ2luZywgbWlub3IgY2xlYW4tdXAKCSAgVHJhY2UgZnJhbWVzLCBzcGxpdCBvdXQgY29kZSB0byBxdWV1ZSBhIGZyYW1lIGZvciBsYXRlci4KCjIwMTEtMDQtMTUgMTg6MDA6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBjaGFuZ2UgZ3N0X2Jhc2VfcGFyc2VfZnJhbWVfaW5pdCgpIHRvIG5vdCB0YWtlIGEgR3N0QmFzZVBhcnNlIGFyZ3VtZW50CgoyMDExLTA0LTE1IDE3OjQxOjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogbWFrZSBHc3RCYXNlUGFyc2VGcmFtZSBoYW5kbGluZyBtb3JlIGJpbmRpbmdzLWZyaWVuZGx5CgkgIENoYW5nZSBzZW1hbnRpY3Mgb2YgZ3N0X2Jhc2VfcGFyc2VfcHVzaF9mcmFtZSgpIGFuZCBtYWtlIGl0IHRha2UKCSAgb3duZXJzaGlwIG9mIHRoZSB3aG9sZSBmcmFtZSwgbm90IGp1c3QgdGhlIGZyYW1lIGNvbnRlbnRzLiBUaGlzCgkgIGlzIG1vcmUgaW4gbGluZSB3aXRoIGhvdyBnc3RfcGFkX3B1c2goKSBldGMuIHdvcmsuIEp1c3QgdHJhbnNmZXJpbmcKCSAgdGhlIGNvbnRlbnQsIGJ1dCBub3QgdGhlIGNvbnRhaW5lciBvZiBzb21ldGhpbmcgdGhhdCdzIG5vdCByZWFsbHkKCSAga25vd24gdG8gYmUgYSBjb250YWluZXIgaXMgaGFyZCB0byBhbm5vdGF0ZSBwcm9wZXJseSBhbmQgcHJvYmFibHkKCSAgd29uJ3Qgd29yay4gV2UgbWFyayBmcmFtZXMgYWxsb2NhdGVkIG9uIHRoZSBzdGFjayBub3cgd2l0aCBhIHByaXZhdGUKCSAgZmxhZyBpbiBnc3RfYmFzZV9wYXJzZV9mcmFtZV9pbml0KCksIHNvIGdzdF9iYXNlX3BhcnNlX2ZyYW1lX2ZyZWUoKQoJICBvbmx5IGZyZWVzIHRoZSBjb250ZW50cyBpbiB0aGF0IGNhc2UgYnV0IG5vdCB0aGUgZnJhbWUgc3RydWN0IGl0c2VsZi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTUxODg1NwoJICBBUEk6IGdzdF9iYXNlX3BhcnNlX2ZyYW1lX25ldygpCgoyMDExLTA0LTE1IDE1OjAyOjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogcmVnaXN0ZXIgYm94ZWQgdHlwZSBmb3IgR3N0QmFzZUZyYW1lUGFyc2UKCSAgVG8gbWFrZSB0aGlzIHVzYWJsZSBmb3IgYmluZGluZ3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01MTg4NTcKCjIwMTEtMDQtMTUgMTM6NTc6NDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBBZGQgbWlzc2luZyApIHRvIHRoZSByaW5nLWJ1ZmZlci1tYXgtc2l6ZSBwcm9wZXJ0eSBkZXNjcmlwdGlvbgoKMjAxMS0wNC0xNSAxMDo1Mzo1NiArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBSZW1vdmUgdW51c2VkIGJ1dCBzZXQgdmFyaWFibGUKCSAgR0NDIDQuNi4wIHNwaXRzIHdhcm5pbmdzIGFib3V0IHRoZXNlLgoKMjAxMS0wNC0xNCAxNjowNjoxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkgIGJ1ZmZlcmxpc3Q6IEFkZCBib3hlZCB0eXBlIGZvciBHc3RCdWZmZXJMaXN0SXRlcmF0b3IgZm9yIGdvYmplY3QtaW50cm9zcGVjdGlvbgoKMjAxMS0wNC0xNCAxNTo1OToyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0cGFyc2UuaDoKCSAgcGFyc2U6IEFkZCBib3hlZCB0eXBlIGZvciBHc3RQYXJzZUNvbnRleHQgZm9yIGdvYmplY3QtaW50cm9zcGVjdGlvbgoKMjAxMS0wNC0xNCAxNTo1MToyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0ZmlsdGVyLmM6CgkqIGdzdC9nc3RpbnRlcmZhY2UuYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3Q6IEFkZCBzb21lIG1vcmUgZ29iamVjdC1pbnRyb3NwZWN0aW9uIGFubm90YXRpb25zCgoyMDExLTA0LTE0IDA5OjA3OjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBEb24ndCBsZWFrIHRoZSBzaW5rcGFkIG5hbWUKCjIwMTEtMDQtMTQgMDk6MDc6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBEb24ndCBsZWFrIHBhZHMgaW4gdGhlIG5hbWVkIHBhZHMgdW5pdCB0ZXN0CgoyMDExLTA0LTE0IDA4OjU5OjE0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogRml4IGNhcHMgbGVha3MgaW4gZ3N0X2VsZW1lbnRfZmFjdG9yeV9jYW5fYWNjZXB0X3thbnksYWxsfV9jYXBzX2luX2RpcmVjdGlvbigpCgoyMDExLTA0LTEzIDA5OjIwOjEzIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9wYXJzZS9wYXJzZS5sOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIHBhcnNlcjogQWxsb3cgZWxlbWVudCBuYW1lcyB0byBiZWdpbiB3aXRoIGRpZ2l0cwoKMjAxMS0wNC0xMyAxMDoyNDozMyAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdGVzdHM6IEFkZCB0ZXN0IGZvciBncmVhdGVzdCBjb21tb24gZGl2aXNvcgoKMjAxMS0wMS0wNiAxODoxMTozMSArMDEwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvcmF2bmFzQGNpc2NvLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgZWxlbWVudHM6IEZpeCBwYWQgY2FsbGJhY2tzIHNvIHRoZXkgaGFuZGxlIHdoZW4gcGFyZW50IGdvZXMgYXdheQoJICAxKSBXZSBuZWVkIHRvIGxvY2sgYW5kIGdldCBhIHN0cm9uZyByZWYgdG8gdGhlIHBhcmVudCwgaWYgc3RpbGwgdGhlcmUuCgkgIDIpIElmIGl0IGhhcyBnb25lIGF3YXksIHdlIG5lZWQgdG8gaGFuZGxlIHRoYXQgZ3JhY2VmdWxseS4KCSAgVGhpcyBpcyBuZWNlc3NhcnkgaW4gb3JkZXIgdG8gc2FmZWx5IG1vZGlmeSBhIHJ1bm5pbmcgcGlwZWxpbmUuIEhhcyBiZWVuCgkgIG9ic2VydmVkIHdoZW4gYSBzdHJlYW1pbmcgdGhyZWFkIGlzIGRvaW5nIGEgYnVmZmVyX2FsbG9jKCkgd2hpbGUgYW4KCSAgYXBwbGljYXRpb24gdGhyZWFkIHNlbmRzIGFuIGV2ZW50IG9uIGEgcGFkIGZ1cnRoZXIgZG93bnN0cmVhbSwgYW5kIGZyb20KCSAgd2l0aGluIGEgcGFkIHByb2JlIChob2xkaW5nIFNUUkVBTV9MT0NLKSBjYXJyaWVzIG91dCB0aGUgcGlwZWxpbmUgcGx1bWJpbmcKCSAgd2hpbGUgdGhlIHN0cmVhbWluZyB0aHJlYWQgaGFzIGl0cyBidWZmZXJfYWxsb2MoKSBpbiBwcm9ncmVzcy4KCjIwMTEtMDEtMDYgMTg6MTE6MzEgKzAxMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b3Jhdm5hc0BjaXNjby5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNlOiBGaXggcGFkIGNhbGxiYWNrcyBzbyB0aGV5IGhhbmRsZSB3aGVuIHBhcmVudCBnb2VzIGF3YXkKCSAgMSkgV2UgbmVlZCB0byBsb2NrIGFuZCBnZXQgYSBzdHJvbmcgcmVmIHRvIHRoZSBwYXJlbnQsIGlmIHN0aWxsIHRoZXJlLgoJICAyKSBJZiBpdCBoYXMgZ29uZSBhd2F5LCB3ZSBuZWVkIHRvIGhhbmRsZSB0aGF0IGdyYWNlZnVsbHkuCgkgIFRoaXMgaXMgbmVjZXNzYXJ5IGluIG9yZGVyIHRvIHNhZmVseSBtb2RpZnkgYSBydW5uaW5nIHBpcGVsaW5lLiBIYXMgYmVlbgoJICBvYnNlcnZlZCB3aGVuIGEgc3RyZWFtaW5nIHRocmVhZCBpcyBkb2luZyBhIGJ1ZmZlcl9hbGxvYygpIHdoaWxlIGFuCgkgIGFwcGxpY2F0aW9uIHRocmVhZCBzZW5kcyBhbiBldmVudCBvbiBhIHBhZCBmdXJ0aGVyIGRvd25zdHJlYW0sIGFuZCBmcm9tCgkgIHdpdGhpbiBhIHBhZCBwcm9iZSAoaG9sZGluZyBTVFJFQU1fTE9DSykgY2FycmllcyBvdXQgdGhlIHBpcGVsaW5lIHBsdW1iaW5nCgkgIHdoaWxlIHRoZSBzdHJlYW1pbmcgdGhyZWFkIGhhcyBpdHMgYnVmZmVyX2FsbG9jKCkgaW4gcHJvZ3Jlc3MuCgoyMDExLTAxLTA2IDE4OjExOjMxICswMTAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9yYXZuYXNAY2lzY28uY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBGaXggcGFkIGNhbGxiYWNrcyBzbyB0aGV5IGhhbmRsZSB3aGVuIHBhcmVudCBnb2VzIGF3YXkKCSAgMSkgV2UgbmVlZCB0byBsb2NrIGFuZCBnZXQgYSBzdHJvbmcgcmVmIHRvIHRoZSBwYXJlbnQsIGlmIHN0aWxsIHRoZXJlLgoJICAyKSBJZiBpdCBoYXMgZ29uZSBhd2F5LCB3ZSBuZWVkIHRvIGhhbmRsZSB0aGF0IGdyYWNlZnVsbHkuCgkgIFRoaXMgaXMgbmVjZXNzYXJ5IGluIG9yZGVyIHRvIHNhZmVseSBtb2RpZnkgYSBydW5uaW5nIHBpcGVsaW5lLiBIYXMgYmVlbgoJICBvYnNlcnZlZCB3aGVuIGEgc3RyZWFtaW5nIHRocmVhZCBpcyBkb2luZyBhIGJ1ZmZlcl9hbGxvYygpIHdoaWxlIGFuCgkgIGFwcGxpY2F0aW9uIHRocmVhZCBzZW5kcyBhbiBldmVudCBvbiBhIHBhZCBmdXJ0aGVyIGRvd25zdHJlYW0sIGFuZCBmcm9tCgkgIHdpdGhpbiBhIHBhZCBwcm9iZSAoaG9sZGluZyBTVFJFQU1fTE9DSykgY2FycmllcyBvdXQgdGhlIHBpcGVsaW5lIHBsdW1iaW5nCgkgIHdoaWxlIHRoZSBzdHJlYW1pbmcgdGhyZWFkIGhhcyBpdHMgYnVmZmVyX2FsbG9jKCkgaW4gcHJvZ3Jlc3MuCgoyMDExLTA0LTEzIDE3OjI2OjU0ICswMjAwICBKYW5uZSBHcnVuYXUgPGphbm5lLmdydW5hdUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHByZXZlbnQgY2FsY3VsYXRpb24gd2l0aCBHU1RfQ0xPQ0tfVElNRV9OT05FIGluIHVwZGF0ZV90aW1lX2xldmVsKCkKCjIwMTEtMDQtMTEgMTU6MDg6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzoKCSAgdGVzdHM6IGZpeCB1bnVzdWVkLWJ1dC1hc3NpZ25lZC12YXJpYWJsZSB3YXJuaW5ncyB3aXRoIGdjYyA0LjYKCjIwMTEtMDQtMTEgMTM6MDQ6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICB0ZXN0czogZGlzYWJsZSB0ZXN0X21hbnlfYmlucyB1bml0IHRlc3QgZm9yIG5vdwoJICBJdCBmYWlscyBvbiB0aGUgT1NYIGJvdCAoYm90aCB3aXRoIGdpdCBhbmQgdGhlIGxhc3QgcmVsZWFzZSksIGFuZAoJICBpdCBkb2Vzbid0IHJlYWxseSB0ZXN0IGFueXRoaW5nIHVzZWZ1bCwgc28gbWF5IGp1c3QgYXMgd2VsbCBkaXNhYmxlCgkgIGl0IGZvciBub3cuCgoyMDExLTA0LTExIDEyOjUxOjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBmaXggY29tcGlsZXIgd2FybmluZ3MKCSAgQ2FzdCBzdHJpbmcgY29uc3RhbnRzIHRvIG1ha2UgY29tcGlsZXIgaGFwcHkuCgoyMDExLTA0LTExIDEyOjA0OjM0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgdGVzdHM6IGFsbG93IG1vcmUgdGltZSBmb3IgdGhlIHRlc3RfbWFueV9iaW5zIHBpcGVsaW5lIHRvIHByZXJvbGwKCSAgSG9wZWZ1bGx5IG1ha2VzIHRoaXMgdGVzdCB3b3JrIG9uIHRoZSBPU1ggYnVpbGQgYm90IGFuZCBvdGhlcgoJICBub3Qtc28tcG93ZXJmdWwgbWFjaGluZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDY2MjQKCjIwMTEtMDQtMTEgMTE6Mjk6MDAgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IG1ha2Ugc3VyZSBnc3QtcGx1Z2luLXNjYW5uZXIgaXMgY2FsbGVkIHdpdGggdGhlIHJpZ2h0IGFyY2ggb24gT1NYCgkgIE9uIE9TWCwgR1N0cmVhbWVyIG1pZ2h0IGJlIGJ1aWx0IGFzIGEgJ2ZhdC91bml2ZXJzYWwnIGJpbmFyeSBjb250YWluaW5nCgkgIGJvdGggMzItYml0IGFuZCA2NC1iaXQgY29kZS4gV2UgbXVzdCB0YWtlIGNhcmUgdGhhdCBnc3QtcGx1Z2luLXNjYW5uZXIKCSAgaXMgZXhlY3V0ZWQgd2l0aCB0aGUgc2FtZSBhcmNoaXRlY3R1cmUgYXMgdGhlIEdTdHJlYW1lciBjb3JlLCBvdGhlcndpc2UKCSAgYmFkIHRoaW5ncyBtYXkgaGFwcGVuIGFuZCBjb3JlL3NjYW5uZXIgd2lsbCBub3QgYmUgYWJsZSB0byBjb21tdW5pY2F0ZQoJICBwcm9wZXJseS4KCSAgU2hvdWxkIGZpeCBpc3N1ZXMgd2l0aCAoMzItYml0KSBmaXJlZm94IHVzaW5nIGEgMzItYml0IEdTdHJlYW1lciBjb3JlCgkgIHdoaWNoIHRoZW4gc3Bhd25zIGEgJ3VuaXZlcnNhbCcgZ3N0LXBsdWdpbi1zY2FubmVyIGJpbmFyeSB3aGljaCBnZXRzCgkgIHJ1biBpbiA2NC1iaXQgbW9kZSwgY2F1c2luZyAxMDAlIGNwdSB1c2FnZSAvIGJ1c3kgbG9vcHMgb3IganVzdCBoYW5naW5nCgkgIGZpcmVmb3ggdW50aWwga2lsbGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE1MzU3CgoyMDExLTA0LTExIDExOjA1OjI0ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogQWxsb3cgdHJhY2tpbmcgb2YgYnVmZmVycyBpbiBHU1RfU0NIRURVTElORyBkZWJ1ZyBvdXRwdXQKCSAgQXMgR1NUX1NDSEVEVUxJTkcgcmVwb3J0cyB3aGVuIGJ1ZmZlcnMgcGFzcyB0aHJvdWdoIHBhZHMgZHVlIHRvCgkgIGdzdF9wYWRfcHVzaCBjYWxscywgdGhleSBhcmUgYSBnb29kIHdheSBvZiB0cmFja2luZyB0aGUgcHJvZ3Jlc3Mgb2YKCSAgYnVmZmVycyB0aHJvdWdoIHBpcGVsaW5lcy4gQXMgc3VjaCwgYWRkaW5nIG91dHB1dCBvZiB0aGUgYnVmZmVyIHBvaW50ZXJzCgkgIHRvIHRoZXNlIG1lc3NhZ2VzIGFsbG93cyB0cmFja2luZyBvZiBzcGVjaWZpYyBidWZmZXJzLCBlYXNpbmcgZGVidWdnaW5nLgoKMjAxMS0wNC0xMSAxMDo1MzozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcG9ydCB0byAwLjExCgoyMDExLTA0LTExIDEwOjI2OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGFuZHJvaWQvYmFzZS5tawoJICBhbmRyb2lkL2NvbnRyb2xsZXIubWsKCSAgYW5kcm9pZC9kYXRhcHJvdG9jb2wubWsKCSAgYW5kcm9pZC9lbGVtZW50cy5tawoJICBhbmRyb2lkL2dzdC1pbnNwZWN0Lm1rCgkgIGFuZHJvaWQvZ3N0LWxhdW5jaC5tawoJICBhbmRyb2lkL2dzdC1wbHVnaW4tc2Nhbm5lci5tawoJICBhbmRyb2lkL2dzdC5tawoJICBhbmRyb2lkL2luZGV4ZXJzLm1rCgkgIGFuZHJvaWQvbmV0Lm1rCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZgoKMjAxMS0wNC0xMSAxMDoyMDoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBhZGQgRklYTUUKCjIwMTEtMDEtMjcgMTQ6MzM6MDggKzAxMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogLmdpdGlnbm9yZToKCSogQW5kcm9pZC5tazoKCSogYW5kcm9pZC9OT1RJQ0U6CgkqIGFuZHJvaWQvYmFzZS5tazoKCSogYW5kcm9pZC9jb250cm9sbGVyLm1rOgoJKiBhbmRyb2lkL2RhdGFwcm90b2NvbC5tazoKCSogYW5kcm9pZC9lbGVtZW50cy5tazoKCSogYW5kcm9pZC9nc3QtaW5zcGVjdC5tazoKCSogYW5kcm9pZC9nc3QtbGF1bmNoLm1rOgoJKiBhbmRyb2lkL2dzdC1wbHVnaW4tc2Nhbm5lci5tazoKCSogYW5kcm9pZC9nc3QubWs6CgkqIGFuZHJvaWQvZ3N0L2dzdGNvbmZpZy5oOgoJKiBhbmRyb2lkL2dzdC9nc3RlbnVtdHlwZXMuYzoKCSogYW5kcm9pZC9nc3QvZ3N0ZW51bXR5cGVzLmg6CgkqIGFuZHJvaWQvZ3N0L2dzdG1hcnNoYWwuYzoKCSogYW5kcm9pZC9nc3QvZ3N0bWFyc2hhbC5oOgoJKiBhbmRyb2lkL2dzdC9nc3R2ZXJzaW9uLmg6CgkqIGFuZHJvaWQvZ3N0L3BhcnNlL2dyYW1tYXIub3V0cHV0OgoJKiBhbmRyb2lkL2dzdC9wYXJzZS9ncmFtbWFyLnRhYi5jOgoJKiBhbmRyb2lkL2dzdC9wYXJzZS9ncmFtbWFyLnRhYi5oOgoJKiBhbmRyb2lkL2dzdC9wYXJzZS9sZXguX2dzdF9wYXJzZV95eS5jOgoJKiBhbmRyb2lkL2luZGV4ZXJzLm1rOgoJKiBhbmRyb2lkL25ldC5tazoKCSogYW5kcm9pZC90b29scy5tazoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9pbmRleGVycy9NYWtlZmlsZS5hbToKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkgIGFuZHJvaWQ6IG1ha2UgaXQgcmVhZHkgZm9yIGFuZHJvZ2VuaXplcgoJICBSZW1vdmUgdGhlIGFuZHJvaWQvIHRvcCBkaXIKCSAgRml4ZSB0aGUgTWFrZWZpbGUuYW0gdG8gYmUgYW5kcm9nZW5pemVkCgkgIFRvIGJ1aWxkIGdzdHJlYW1lciBmb3IgYW5kcm9pZCB3ZSBhcmUgbm93IHVzaW5nIGFuZHJvZ2VuaXplciB3aGljaCBnZW5lcmF0ZXMgdGhlIG5lZWRlZCBBbmRyb2lkLm1rIGZpbGVzLgoJICBBbmRyb2dlbml6ZXIgY2FuIGJlIGZvdW5kIGhlcmU6IGh0dHA6Ly9naXQuY29sbGFib3JhLmNvLnVrLz9wPXVzZXIvZGVyZWsvYW5kcm9nZW5pemVyLmdpdAoKMjAxMS0wNC0wOSAyMzo1NDoyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSAgdHJhY2U6IGRvbid0IHB1dCBjb2RlIHdpdGggc2lkZSBlZmZlY3RzIGludG8gZ19yZXR1cm5faWZfZmFpbCgpCgoyMDExLTA0LTA5IDIyOjU3OjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGRvY3M6IG1pbm9yIGZpeGVzIGZvciBiYXNlcGFyc2UgZG9jcwoJICBDbGFzcyB2ZnVuYyByZWZlcmVuY2VzIHN0aWxsIGFyZW4ndCByaWdodCwgbm8gaWRlYSB3aGF0CgkgIHRoZSBjb3JyZWN0IG1hcmt1cCBmb3IgdGhvc2UgaXMuCgoyMDExLTA0LTA5IDE4OjA0OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IHVucmVmIGV2ZW50IGluIGRlZmF1bHRfc2VuZF9ldmVudCBpbiBjYXNlIGVsZW1lbnQgaGFzIG5vIHBhZHMKCSAgU3BvdHRlZCBieSAgSGFha29uIFNwb3JzaGVpbS4KCjIwMTEtMDQtMDkgMDQ6MDc6MDQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkgIGNoZWNrOiBJZ25vcmUgbmV3IGdzdG1ldGEgYmluYXJ5CgoyMDExLTA0LTA5IDA0OjA1OjQ4ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJICBkZXNpZ246IGRyYWZ0LWJ1ZmZlcjIudHh0IG5vIGxvbmdlciBleGlzdHMKCjIwMTEtMDQtMDkgMDQ6MDU6MjAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBnc3Q6IERvbid0IGZvcmdldCB0byBkaXN0IGdzdGVsZW1lbnRtZXRhZGF0YS5oCgoyMDExLTA0LTA4IDE5OjA3OjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbWlub3IgdmFyaWFibGUgbmFtZSBjbGVhbi11cAoKMjAxMS0wNC0wOCAxNTozMToxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBiYXNlcGFyc2U6IHJlbmFtZSBfc2V0X2ZyYW1lX3Byb3BzKCkgdG8gX3NldF9mcmFtZV9yYXRlKCkKCSAgU2VlbXMgbGlrZSB0aGUgYmVzdCBmaXQgdG8gd2hhdCBpdCBkb2VzLCBhbmQgaXMgc2hvcnRlciB0aGFuCgkgIHNldF9mcmFtZV9wcm9wZXJ0aWVzKCkgd2hpY2ggbWlnaHQgYWxzbyBoYXZlIGJlZW4gY29uZnVzaW5nCgkgIGJlY2F1c2Ugb2YgR3N0QmFzZVBhcnNlRnJhbWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01MTg4NTcKCjIwMTEtMDQtMDYgMTc6NDM6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiByZXBsYWNlIGZvcm1hdCBmbGFncyB3aXRoIGdzdF9iYXNlX3BhcnNlX3NldF97cGFzc3Rocm91Z2gsc3luY2FibGUsaGFzX3RpbWluZ19pbmZvfQoJICBUaGlzIGlzIG1vcmUgaW4gbGluZSB3aXRoIGUuZy4gR3N0QmFzZVRyYW5zZm9ybSdzIEFQSSwgYW5kIG1ha2VzIGZvciBuaWNlcgoJICB0byByZWFkIGNvZGUuIE5vIGdldHRlcnMgZm9yIG5vdyBzaW5jZSBJIGRvbid0IHNlZSBhbnkgdXNlIGNhc2UgZm9yIHRoZW0sCgkgIHRoZSBBUEkgaXMgZm9yIHN1YmNsYXNzZXMsIHdoaWNoIHVzdWFsbHkga25vdyB3aGF0IGZvcm1hdCB0aGV5J3JlCgkgIGRlYWxpbmcgd2l0aCBhbHJlYWR5IGFuZCBoZW5jZSBrbm93IHdoYXQgdGhleSd2ZSBzZXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01MTg4NTcKCjIwMTEtMDQtMDQgMTc6NTg6NTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBtYWtlIERSQUlOIGFuZCBTWU5DIGZsYWdzIG9uIGJhc2VwYXJzZSwgbm90IHRoZSBmcmFtZSwgYW5kIGNoYW5nZSB0byBEUkFJTklORyBhbmQgTE9TVF9TWU5DCgkgIFRoZSBmaXJzdCBiZWNhdXNlIGl0IHNlZW1zIGEgYmV0dGVyIGZpdCBjb25jZXB0dWFsbHksIHRoZSBzZWNvbmQKCSAgdG8gZXhwcmVzcyBib29sZWFubmVzcy4gQWxzbyBjaGFuZ2UgdGhlIGFjY2Vzc29yIG1hY3JvcyBmb3Igc3ViY2xhc3NlcwoJICB0byBHU1RfQkFTRV9QQVJTRV9EUkFJTklORyBhbmQgR1NUX0JBU0VfUEFSU0VfTE9TVF9TWU5DLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE4ODU3CgoyMDExLTA0LTAyIDE0OjE4OjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogYWRkIHNvbWUgcGFkZGluZyB0byBHc3RCYXNlUGFyc2VGcmFtZQoJICBFc3AuIHNpbmNlIGl0J3MgdXN1YWxseSBhbGxvY2F0ZWQgb24gdGhlIHN0YWNrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE4ODU3CgoyMDExLTA0LTAyIDE0OjA4OjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogZml4IHR5cG8gaW4gZG9jcyBmb3IgR1NUX0JBU0VfUEFSU0VfRk9STUFUX0ZMQUdfUEFTU1RIUk9VR0gKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTUxODg1NwoKMjAxMS0wNC0wMiAxNDowNDo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHVzZSBHUXVldWUgaW5zdGVhZCBvZiBHTGlzdCBmb3IgcXVldWVkIGZyYW1lcwoJICBhbmQgbWFrZSBidWZmZXIgbWV0YWRhdGEgd3JpdGFibGUgYmVmb3JlIHNldHRpbmcgY2FwcyBvbiBxdWV1ZWQKCSAgYnVmZmVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2MzQxCgoyMDExLTA0LTAyIDEzOjAyOjAxICswMTAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJtZXJhbGlAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBhZGQgR1NUX0JBU0VfUEFSU0VfRkxPV19RVUVVRUQgdG8gcXVldWUgYnVmZmVycyB1bnRpbCBjYXBzIGFyZSBrbm93bgoJICBUaGlzIGlzIHVzZWZ1bCBmb3IgcGFyc2VyIGxpa2UgZmxhY3BhcnNlIG9yIGgyNjRwYXJzZSB3aGljaCBtYXkgbmVlZCB0byBwcm9jZXNzCgkgIHNvbWUgYnVmZmVycyBiZWZvcmUgdGhleSBjYW4gY29uc3RydWN0IHRoZSBmaW5hbCBjYXBzLCBpbiB3aGljaCBjYXNlIHRoZXkgbWF5CgkgIHdhbnQgdG8gZGVsYXkgcHVzaGluZyB0aGUgaW5pdGlhbCBidWZmZXJzIHVudGlsIHRoZSBmdWxsIGFuZCBwcm9wZXIgY2FwcyBhcmUKCSAga25vd24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDYzNDEKCjIwMTEtMDMtMzEgMTU6NTA6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBhZGQgdG8gZG9jcyBhbmQgZml4IHVwIGd0ay1kb2MgbWFya3VwIGEgbGl0dGxlCgkgIEFuZCBhZGQgU2luY2UgbWFya2Vycy4KCjIwMTEtMDMtMzEgMTQ6NDg6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiByZXBsYWNlIHNldF9zZWVrKCkgd2l0aCBfc2V0X2F2ZXJhZ2VfYml0cmF0ZSgpIGFuZCBGTEFHX1NZTkNBQkxFCgkgIFRoaXMgbWFrZXMgbW9yZSBzZW5zZSBjb25jZXB0dWFsbHksIHNpbmNlIHRoZSBiaXRyYXRlIG1heSBiZSB1c2VkCgkgIHRvIGVzdGltYXRlIGEgc2VlayBwb3NpdGlvbiBpZiB0aGVyZSdzIG5vIHNlZWsgdGFibGUgb3IganVzdCBmb3IKCSAgZHVyYXRpb24gcmVwb3J0aW5nL2VzdGltYXRpb24gaWYgd2UgY2FuJ3Qgc2Vlay4gQWxzbywgZXZlbiBpZiB0aGUKCSAgZm9ybWF0IGlzIG5vdCBzeW5jYWJsZSwgd2UgY291bGQgc3RpbGwgc2VlayBieSBwdXNoaW5nIGRhdGEgZnJvbSB0aGUKCSAgc3RhcnQgYW5kIHVzaW5nIHRoZSBzZWdtZW50IHRvIG1ha2UgZG93bnN0cmVhbSBjbGlwLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE4ODU3CgoyMDExLTAzLTI0IDE3OjMwOjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogcmVuYW1lIEdzdEJhc2VGb3JtYXQgdG8gR3N0QmFzZUZvcm1hdEZsYWdzIGFuZCBmaXggdXAgYXNzb2NpYXRlZCBBUEkKCSAgQWxzbyBjaGFuZ2UgZ3N0X2Jhc2VfcGFyc2Vfc2V0X2Zvcm1hdChwYXJzZSxmbGFncyxzd2l0Y2hfb24pIHRvCgkgIGdzdF9iYXNlX3BhcnNlX3NldF9mb3JtYXRfZmxhZ3MocGFyc2UsZmxhZ3MpIHdoaWNoIGlzIG1vcmUgaW4gbGluZQoJICB3aXRoIHRoZSByZXN0IG9mIG91ciBBUEkgYW5kIGhvdyB0aGUgZnVuY3Rpb24gaXMgdXNlZC4KCjIwMTEtMDMtMTMgMjM6NDM6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBkb24ndCBleHBvc2UgR3N0QWRhcHRlciBpbiBwdWJsaWMgaGVhZGVyCgkgIE5vbmUgb2YgdGhlIGV4aXN0aW5nIHN1YmNsYXNzZXMgbmVlZHMgYWNjZXNzIHRvIHRoYXQsIHNvIHRoZXJlJ3MKCSAgbm8gcmVhc29uIHRvIGV4cG9zZSBpdCBmb3Igbm93LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE4ODU3CgoyMDExLTAzLTEzIDIzOjM4OjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogbW92ZSB2YXJpb3VzIHNlZ21lbnQtcmVsYXRlZCBtZW1iZXJzIGludG8gdGhlIHByaXZhdGUgaW5zdGFuY2Ugc3RydWN0CgkgIElmIG5vbmUgb2YgdGhlIGV4aXN0aW5nIHN1YmNsYXNzZXMgdXNlcyB0aGVzZSwgdGhlcmUncyBwcm9iYWJseSBubwoJICBuZWVkIHRvIGV4cG9zZSB0aGVtIGF0IHRoZSBtb21lbnQuIEtlZXAgdGhlIHNlZ21lbnQgaXRzZWxmIGV4cG9zZWQKCSAgdGhvdWdoLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE4ODU3CgoyMDExLTAzLTEzIDIzOjMwOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogcmVtb3ZlIHVudXNlZCBHU1RfQkFTRV9QQVJTRV97U0lOSyxTUkN9X05BTUUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTUxODg1NwoKMjAxMS0wMy0xMiAxNjoxNjoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHJlLWluZGVudCBoZWFkZXIKCjIwMTEtMDMtMTIgMTU6MzQ6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggdXAgR1R5cGUgbmFtZSBhbmQgbWFrZSBfZ2V0X3R5cGUoKSBmdW5jdGlvbiB0aHJlYWQtc2FmZQoJICBSZW5hbWUgR1R5cGUgZnJvbSBHc3RCYXNlUGFyc2VCYWQgdG8gR3N0QmFzZVBhcnNlLgoKMjAxMS0wMy0xMiAxNToyOTozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJICBsaWJzOiBhZGQgR3N0QmFzZVBhcnNlIHdoaWNoIHdhcyBtb3ZlZCBmcm9tIC1iYWQKCjIwMTEtMDItMjMgMTc6MjQ6MTQgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBtYWtlX21ldGFkYXRhX3dyaXRhYmxlKCkgZml4CgoyMDExLTAyLTIxIDEzOjI0OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVuYW1lIEdUeXBlIGZyb20gR3N0QXVkaW9CYXNlUGFyc2VCYWQgdG8gR3N0QmFzZVBhcnNlQmFkCgkgIFdlIHVzZSBpdCBmb3IgdmlkZW8gYXMgd2VsbCBub3cuCgoyMDExLTAyLTE4IDE1OjA1OjMxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHRyaW0gdHJhaWxpbmcgd2hpdGVzcGFjZQoKMjAxMS0wMi0xOCAxNTowNTowMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB1c2UgZGVsdGEtdW5pdCBmbGFncyBpbnN0ZWFkIG9mIG5vbmUKCjIwMTEtMDItMTcgMTM6MjI6MjggLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiB1cGRhdGUgZG9jdW1lbnRhdGlvbiBmb3IgQVBJIGNoYW5nZXMKCjIwMTAtMTAtMTMgMTU6Mzk6NTUgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBDcmVhdGUgYmFzZXBhcnNlIGxpYnJhcnkKCjIwMTEtMDItMDcgMTQ6NDY6NTcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB0dW5lIFFVRVJZX1NFRUtJTkcgcmVzcG9uc2UKCSAgRXZlbiBpZiB3ZSBjdXJyZW50bHkgZG8gbm90IGhhdmUgYSBkdXJhdGlvbiB5ZXQsIGFzc3VtZSBzZWVrYWJsZSBpZgoJICBpdCBsb29rcyBsaWtlIHdlJ2xsIGxpa2VseSBiZSBhYmxlIHRvIGRldGVybWluZSBpdCBsYXRlciBvbgoJICAod2hpY2ggY29pbmNpZGVzIHdpdGggbmVlZGVkIGluZm9ybWF0aW9uIHRvIHBlcmZvcm0gc2Vla2luZykuCgkgIEZpeGVzICM2NDEwNDcuCgoyMDExLTAyLTA4IDIzOjM5OjI0ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogVXBkYXRlIG1pbi9tYXggYml0cmF0ZSBiZWZvcmUgZmlyc3QgcG9zdGluZyB0aGVtCgkgIFRoaXMgYXZvaWRzIHBvc3RpbmcgYW4gaW5pdGlhbCBtaW4tYml0cmF0ZSBvZiBHX1VJTlRNQVggYW5kIG1heC1iaXRyYXRlCgkgIG9mIDAuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDE4NTcKCjIwMTEtMDEtMjEgMTQ6NTM6MzkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB0dW5lIGRlZmF1bHQgZHVyYXRpb24gZXN0aW1hdGUgdXBkYXRlIGludGVydmFsCgkgIFJhdGhlciB0aGFuIGEgZml4ZWQgZGVmYXVsdCBmcmFtZSBjb3VudCwgZXN0aW1hdGUgZnJhbWUgY291bnQgdG8gYWltIGZvcgoJICBhbiBpbnRlcnZhbCBkdXJhdGlvbiBkZXBlbmRpbmcgb24gZnBzIGlmIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIHVzZSBvbGQKCSAgZml4ZWQgZGVmYXVsdC4KCjIwMTEtMDEtMTQgMTU6MTY6MDQgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZXZlcnNlIHBsYXliYWNrOyBtaW5kIGtleWZyYW1lcyBmb3IgZnJhZ21lbnQgYm91bmRhcnkKCjIwMTEtMDEtMTIgMTQ6NDA6MzcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBlbnN1cmUgbm9uLWVtcHR5IGNhbmRpZGF0ZSBmcmFtZXMKCjIwMTEtMDEtMTEgMTU6MjQ6MjMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBjbGFyaWZ5IHNvbWUgZGVidWcgc3RhdGVtZW50cwoKMjAxMS0wMS0xMSAxNToyNDowMiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHByb3Blcmx5IHRyYWNrIHVwc3RyZWFtIHRpbWVzdGFtcHMKCSAgLi4uIHJhdGhlciB0aGFuIHdpdGggYSBkZWxheS4KCjIwMTEtMDEtMTEgMTU6MjM6MjkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBuZWVkIHByb3BlciBmcmFtZSBkdXJhdGlvbiB0byBvYnRhaW4gc2Vuc2libGUgZnJhbWUgYml0cmF0ZQoKMjAxMS0wMS0xMSAxNToyMjo1MSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHByb3BlciBpbml0aWFsIHZhbHVlcyBmb3IgaW5kZXggdHJhY2tpbmcgdmFyaWFibGVzCgoyMDExLTAxLTExIDEyOjA1OjEzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYXJyYW5nZSBmb3IgY29uc2lzdGVudCBldmVudCBoYW5kbGluZwoKMjAxMS0wMS0xMCAxNjo1OTo1OSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGhlYWRlciBzdHlsZSBjbGVhbmluZwoKMjAxMS0wMS0xMCAxNzowNzozOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHByb3ZpZGUgc29tZSBtb3JlIGluaXRpYWwgZnJhbWUgbWV0YWRhdGEgaW4gcGFyc2VfZnJhbWUKCSAgLi4uIGFuZCBkb2N1bWVudCBhY2NvcmRpbmdseS4KCjIwMTEtMDEtMTAgMTY6NTY6MzYgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiByZWZhY3RvciBwYXNzdGhyb3VnaCBpbnRvIGZvcm1hdCBmbGFncwoJICBBbHNvIGFkZCBhIGZvcm1hdCBmbGFnIHRvIHNpZ25hbCBiYXNlcGFyc2UgdGhhdCBzdWJjbGFzcy9mb3JtYXQgY2FuIHByb3ZpZGUKCSAgKHBhcnNlZCkgdGltZXN0YW1wIHJhdGhlciB0aGFuIGFuIGVzdGltYXRlZCBvbmUuICBJbiBwYXJ0aWN1bGFyLCBzdWNoICJzdHJvbmciCgkgIHRpbWVzdGFtcCB0aGVuIGFsbG93cyB0byBlLmcuIGRldGVybWluZSBkdXJhdGlvbi4KCjIwMTEtMDEtMTAgMTU6MzQ6NDggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBpbnRyb2R1Y2UgYSBiYXNlcGFyc2UgZnJhbWUgdG8gc2VydmUgYXMgY29udGV4dAoJICAuLi4gYW5kIGFkanVzdCBzdWJjbGFzcyBwYXJzZXJzIGFjY29yZGluZ2x5CgoyMDExLTAxLTA3IDE2OjM5OjUxICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogcmVzdHJpY3QgZHVyYXRpb24gc2Nhbm5pbmcgdG8gcHVsbCBtb2RlIGFuZCBhdm9pZCBleHRyYSBzZXRfY2FwcyBjYWxsCgoyMDExLTAxLTA3IDE1OjU4OjQ5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogdXBkYXRlIHNvbWUgZG9jdW1lbnRhdGlvbgoJICBBbHNvIGFkZCBzb21lIG1vcmUgZGVidWcuCgoyMDExLTAxLTA2IDExOjQxOjQ0ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYWxsb3cgaW5jcmVhc2luZyBtaW5fc2l6ZSBmb3IgY3VycmVudCBmcmFtZSBwYXJzaW5nIG9ubHkKCSAgQWxzbyBjaGVjayB0aGF0IHN1YmNsYXNzIGFjdHVhbGx5IGVpdGhlciBkaXJlY3RzIHRvIHNraXAgYnl0ZXMgb3IKCSAgaW5jcmVhc2VzIGV4cGVjdGVkIGZyYW1lIHNpemUgdG8gYXZvaWQgZ29pbmcgbm93aGVyZSBpbiBib2d1cwoJICBpbmRlZmluaXRlIGxvb3BpbmcuCgoyMDExLTAxLTE0IDE1OjI2OjM3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhZXNwYXJzZTogZml4IHJlZmFjdG9yIHJlZ3Jlc3Npb24gaW4gbG9vcCBiYXNlZCBwYXJzaW5nCgoyMDExLTAxLTA2IDExOjE2OjU2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcGFzcyBhbGwgYXZhaWxhYmxlIGRhdGEgdG8gc3ViY2xhc3MgcmF0aGVyIHRoYW4gbWluaW11bQoJICBBbHNvIHJlZHVjZSBzb21lIGFkYXB0ZXIgY2FsbHMgYW5kIGFkZCBhIGZldyBkZWJ1ZyBzdGF0ZW1lbnRzLgoKMjAxMC0xMi0xMCAxNTo1OTo0OSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCByZXZlcnNlIHBsYXliYWNrIGhhbmRsaW5nCgoyMDEwLTEyLTEwIDE0OjU2OjEzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbWlub3IgdHlwbyBhbmQgZGVidWcgc3RhdGVtZW50IGNsZWFudXAKCjIwMTAtMTItMTAgMTQ6NDA6MDUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiByZWR1Y2UgbG9ja2luZwoJICAuLi4gd2hpY2ggaXMgZWl0aGVyIGFscmVhZHkgbXV0ZSBhbmQvb3IgaW1wbGljaXRseSBoYW5kbGVkIGJ5IFNUUkVBTV9MT0NLLgoKMjAxMS0wMS0xNCAxNDowODozOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGF2b2lkIGxvb3AgaW4gZnJhbWUgbG9jYXRpbmcgaW50ZXJwb2xhdGlvbgoKMjAxMS0wMS0xNCAxNjozMDoxMSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBhdWRpb3BhcnNlcnM6IGJhc2VwYXJzZTogQmUgY2FyZWZ1bCB0byBub3QgbG9zZSB0aGUgZXZlbnQgcmVmCgkgIERvbid0IHVucmVmIHRoZSBldmVudCBpZiBpdCBoYXNuJ3QgYmVlbiBoYW5kbGVkLCBiZWNhdXNlIHRoZSBjYWxsZXIKCSAgYXNzdW1lcyBpdCBpcyBzdGlsbCB2YWxpZCBhbmQgbWlnaHQgcmV1c2UgaXQuCgkgIEkgcmFuIGludG8gdGhpcyBwcm9ibGVtIHdoZW4gdHJhbnNjb2RpbmcgYW4gQVZJICh3aXRoIG1wMyBpbnNpZGUpCgkgIHRvIGdwcC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzOTU1NQoKMjAxMS0wMS0xMyAxNjoyNzowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBkb2NzOiBtaW5vciBiYXNlcGFyc2UgZG9jcy9jb21tZW50IGZpeGVzCgkgIFJlbW92ZSBjb3B5J24ncGFzdGUgbGVmdG92ZXJzLgoKMjAxMC0xMS0wOCAxOTo1ODozMSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGluY3JlYXNlIGtleWZyYW1lIGF3YXJlbmVzcwoJICAuLi4gd2hpY2ggaXMgbm90IHBhcnRpY3VsYXIgcmVsZXZhbnQgZm9yIGF1ZGlvIHBhcnNpbmcsIGJ1dCBtb3JlIHNvCgkgIGluIHZpZGVvIGNhc2VzLiAgSW4gcGFydGljdWxhciwgYXV0by1kZXRlcm1pbmUgaWYgZGVhbGluZyB3aXRoIHZpZGVvIChjYXBzKS4KCjIwMTAtMTEtMzAgMTU6NDE6MDIgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhdm9pZCB1bmV4cGVjdGVkIHN0cmF5IG1ldGFkYXRhCgoyMDEwLTExLTMwIDE1OjQwOjI4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdXNlIHByb3BlciBfTk9ORSBvdXRwdXQgdmFsdWUgd2hlbiBhcHBsaWNhYmxlCgoyMDEwLTExLTI1IDE4OjU2OjQyICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYXVkaW9wYXJzZXJzOiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50cwoKMjAxMC0xMS0yNSAxNzoxNDoyMyArMDEwMCAgQW5kb25pIE1vcmFsZXMgQWxhc3RydWV5IDxhbW9yYWxlc0BmbHVtb3Rpb24uY29tPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYXVkaW9wYXJzZTogZml4IHBvc3NpYmxlIGRpdmlzaW9uLWJ5LXplcm8KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNTc4NgoKMjAxMC0xMS0xNyAxNjoyMzo0MiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHVzZSBjb3JyZWN0IG9mZnNldCB3aGVuIGFkZGluZyBpbmRleCBlbnRyeQoJICAuLi4gYmVhcmluZyBpbiBtaW5kIHRoYXQgQlVGRkVSX09GRlNFVCBpcyBtZWRpYSBzcGVjaWZpYyBhbmQgbWF5IG5vdAoJICByZWZsZWN0IHRoZSBiYXNpYyBvZmZzZXQgYWZ0ZXIgaGF2aW5nIGJlZW4gcGFyc2VkLgoKMjAxMC0xMS0xNyAxNDozMDowOSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGVuaGFuY2VtZW50cyBmb3IgdGltZXN0YW1wIG1hcmtlZCBmcmFtZWQgZm9ybWF0cwoJICBUaGF0IGlzLCBhcyBzdWNoIGZvcm1hdHMgYWxsb3cgc3ViY2xhc3MgdG8gZXh0cmFjdCBwb3NpdGlvbiBmcm9tIGZyYW1lLAoJICBpdCBpcyBwb3NzaWJsZSB0byBleHRyYWN0IGR1cmF0aW9uIChpZiBub3Qgb3RoZXJ3aXNlIHByb3ZpZGVkKQoJICBmcm9tIChuZWFyKSBsYXN0IGZyYW1lLCBhbmQgYSBzZWVrIGNhbiBmYWlybHkgYWNjdXJhdGVseSB0YXJnZXQgdGhlIHJlcXVpcmVkCgkgIHBvc2l0aW9uLgoJICBGaXhlcyAjNjMxMzg5LgoKMjAxMC0xMS0xNiAxNzowNjoxNCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlZmFjdG9yIGZyYW1lIHNjYW5uaW5nIHBlZm9ybWVkIGJ5IF9sb29wCgoyMDEwLTExLTE2IDE4OjA0OjAwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogc2xpZ2h0bHkgb3B0aW1pemUgc2VuZGluZyBvZiBwZW5kaW5nIG5ld3NlZ21lbnQgZXZlbnRzCgoyMDEwLTExLTE2IDE3OjA0OjM1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbWlub3IgZml4ZXMgYW5kIGVuaGFuY2VtZW50cwoJICBBcnJhbmdlIGZvciB1cHN0cmVhbSBhcyB3ZWxsIGFzIGRvd25zdHJlYW0gZmx1c2hpbmcgd2hlbiBzZWVraW5nLgoJICBBbHNvIGRldGVybWluZSB1cHN0cmVhbSBzaXplIGFzIHdlbGwgYXMgc2Vla2FiaWxpdHkuICBBZGp1c3Qgc29tZSBjb21tZW50cwoJICB0byByZWFsaXR5IGFuZCBlbXBsb3kgZGVidWcgc3RhdGVtZW50IGluIHByb3BlciBvcmRlci4KCjIwMTAtMTAtMjkgMTQ6MDg6NTggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB1c2Ugb25seSB1cHN0cmVhbSBkdXJhdGlvbiBpZiBpdCBwcm92aWRlcyBvbmUKCjIwMTAtMTAtMjUgMTQ6MTU6NTAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZWZsb3cgdXBkYXRlX2JpdHJhdGUgY29kZQoJICAuLi4gd2hpY2ggbWFrZXMgbG9jYWwgdmFyaWFibGVzIHJlcHJlc2VudCByZWFsIHN0YXRlIGJldHRlciwgYW5kIGF2b2lkcwoJICB0cmlnZ2VyaW5nIHVubmVlZGVkIHVwZGF0ZXMvYWN0aW9ucy4KCjIwMTAtMTAtMjUgMTQ6MTM6NTEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhZGQgc29tZSBkZWJ1ZyBzdGF0ZW1lbnRzCgoyMDEwLTEwLTExIDE3OjQ5OjQ2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcGVyZm9ybSBiaXRyYXRlIGhhbmRsaW5nIGFuZCBwb3N0aW5nIGFmdGVyIG5ld3NlZ21lbnQgc2VuZGluZwoKMjAxMC0xMC0xMSAxNzozNjoxOSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGltbWVkaWF0ZWx5IHBvc3Qgc3ViY2xhc3MgcHJvdmlkZWQgYml0cmF0ZQoKMjAxMC0xMC0wNSAxMToxNzo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBSZXZlcnQgImJhc2VwYXJzZTogYWRkIHNraXAgcHJvcGVydHkiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYjVhM2Q2MDM2M2Q4MzdhMTBmMDUzM2MxNDFlYzkzZDEwYjc0MjMxMi4KCSAgUmV2ZXJ0aW5nIHRoaXMgZm9yIG5vdywgc2luY2Ugbm8gb25lIHJlYWxseSBzZWVtcyB0byByZW1lbWJlciB3aHkgdGhpcwoJICBwcm9wZXJ0eSBleGlzdHMgb3Igd2hhdCBpdCBjb3VsZCBwb3NzaWJseSBiZSBnb29kIGZvci4gSXQgc2VlbXMgdG8gaGF2ZQoJICBiZWVuIGluIHRoZSBvcmlnaW5hbCBtcDNwYXJzZSBzaW5jZSB0aGUgYmVnaW5uaW5nIG9mIHRpbWUgYW5kIHdhcyBiYWNrLQoJICBwb3J0ZWQgZnJvbSB0aGVyZS4KCjIwMTAtMTAtMDMgMjM6NTA6MjkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYXVkaW9wYXJzZXI6IExldCB0aGUgZm9ybWF0IHN0cmluZyBhZ3JlZSB3aXRoIHRoZSBwYXJhbWV0ZXJzIHRvIGZpeCBjb21waWxlciB3YXJuaW5nCgoyMDEwLTA5LTIyIDE1OjQ0OjQzICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRml4IGRlYnVnIG91dHB1dAoJICBXZSBsb3NlIHRoZSByZWZlcmVuY2UgdG8gdGhlIGJ1ZmZlciBhZnRlciBnc3RfcGFkX3B1c2goKSwgc28gdGhlIGRlYnVnCgkgIHByaW50IHNob3VsZCBoYXBwZW4gYmVmb3JlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIyMjc2CgoyMDEwLTA5LTI5IDE2OjEyOjQyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogc3VwcG9ydCByZXZlcnNlIHBsYXliYWNrCgkgIC4uLiBpbiBwdWxsIG1vZGUgb3IgdXBzdHJlYW0gZHJpdmVuLgoKMjAxMC0wOS0yNyAxMjoxNjo0MyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlbW92ZSBkb25lIFRPRE9zIGFuZCB1cGRhdGUgZG9jdW1lbnRhdGlvbgoKMjAxMC0wOS0yNSAxNDo0MDo1NCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHVzZSBkZXRlcm1pbmVkIHNlZWthYmlsaXR5IGluIGFuc3dlcmluZyBTRUVLSU5HIHF1ZXJ5CgoyMDEwLTA5LTI1IDE0OjMyOjA2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYWRkIHNraXAgcHJvcGVydHkKCjIwMTAtMDktMjIgMTU6MDc6MDkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiB1c2UgX3NldF9mcmFtZV9wcm9wcyB0byBjb25maWd1cmUgZnJhbWUgbGVhZF9pbiBhbmQgbGVhZF9vdXQKCSAgLi4uIHByb3ZpZGVkIGEgY29ycmVzcG9uZGluZyBkZWNvZGVyIHdpdGggc3VmZmljaWVudCBsZWFkaW5nIGFuZCBmb2xsb3dpbmcKCSAgZnJhbWVzIHRvIGNhcnJ5IG91dCBmdWxsIGRlY29kaW5nIGZvciBhIHBhcnRpY3VsYXIgc2VnbWVudC4KCjIwMTAtMDktMjIgMTQ6MTM6MTcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiB1c2UgX3NldF9kdXJhdGlvbiB0byBjb25maWd1cmUgZHVyYXRpb24gdXBkYXRlIGludGVydmFsCgkgIC4uLiBhcyBpdCBsb2dpY2FsbHkgYmVsb25ncyB0aGVyZSBhcyBvbmUgb3IgdGhlIG90aGVyOyBlaXRoZXIgc3ViY2xhc3MKCSAgY2FuIHByb3ZpZGUgYSBkdXJhdGlvbiwgb3IgYW4gZXN0aW1hdGUgbXVzdCBiZSBtYWRlIChyZWd1YXJseSB1cGRhdGVkKS4KCjIwMTAtMDktMjIgMTM6NTU6MjAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBsb2NhbGl6ZSB1c2Ugb2YgcHJvdmlkZWQgZnBzIGluZm9ybWF0aW9uCgoyMDEwLTA5LTIyIDEyOjEzOjEyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogc2VlayB0YWJsZSBhbmQgYWNjdXJhdGUgc2VlayBzdXBwb3J0CgoyMDEwLTA5LTIxIDEzOjU3OjEwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHJvcGVyIGFuZCBtb3JlIGV4dGVuZGVkIHNlZ21lbnQgYW5kIHNlZWsgaGFuZGxpbmcKCSAgVGhhdCBpcywgbG9vcCBwYXVzZSBoYW5kbGluZywgc2VnbWVudCBzZWVrIHN1cHBvcnQsIG5ld3NlZ21lbnQgZm9yIGdhcHMsIGV0YwoKMjAxMC0wOS0yMSAxMDo1NzowNCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGFkZCBpbmRleCBzdXBwb3J0CgoyMDEwLTA5LTIxIDA5OjU5OjU2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVmYWN0b3Igc3RhdGUgcmVzZXQKCjIwMTAtMDktMjAgMTY6Mzk6MzcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwcmV2ZW50IGluZGVmaW5pdGUgcmVzeW5jaW5nCgoyMDEwLTA5LTIwIDEzOjU3OjU1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogc3BlY2lmaWMgRU9TIGhhbmRsaW5nIGlmIG5vIG91dHB1dCBzbyBmYXIKCjIwMTAtMDktMjAgMTM6MzE6NTcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhZGp1c3QgX3NldF9mcmFtZV9wcm9wIGRvY3VtZW50YXRpb24gYW5kIHNldCBkZWZhdWx0IGFzIGNsYWltZWQKCjIwMTAtMDktMjAgMTM6MzA6NTQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggYml0cmF0ZSBjb3B5LWFuZC1wYXN0ZSBhbmQgdXBkYXRlIGhldXJpc3RpYwoKMjAxMC0wOS0xNyAxODozMzoyOSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHBvc3QgZHVyYXRpb24gbWVzc2FnZSBpZiBhdmVyYWdlIGJpdHJhdGVzIGlzIHVwZGF0ZWQKCjIwMTAtMDktMTcgMTg6MjQ6MjIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiByZW1vdmUgaXNfc2Vla2FibGUgdm1ldGhvZCBhbmQgdXNlIGEgc2V0X3NlZWsgaW5zdGVhZAoJICBTZWVrYWJpbGl0eSwgbGlrZSBkdXJhdGlvbiwgZXRjIGlzIHVubGlrZWx5IHRvIGNoYW5nZSAoZnJlcXVlbnRseSksIGFuZAoJICB0aGUgZGVmYXVsdCBhc3N1bXB0aW9uIGNvdmVycyBtb3N0IGNhc2VzLCBzbyBsZXQgc3ViY2xhc3Mgc2V0IHdoZW4gbmVlZGVkLgoJICBBdCB0aGUgc2FtZSB0aW1lLCBhbGxvdyBzdWJjbGFzcyB0byBpbmRpY2F0ZSBpZiBpdCBoYXMgc2Vlay1tZXRhZGF0YSAodGFibGUpCgkgIGF2YWlsYWJsZSwgYW5kIHBvc3NpYmx5IGhhdmUgaXQgcHJvdmlkZSBhbiBhdmVyYWdlIGJpdHJhdGUuCgoyMDEwLTA5LTE3IDE3OjIxOjQ2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogYWRkIGFub3RoZXIgaG9vayBmb3Igc3ViY2xhc3MgcHJpb3IgdG8gcHVzaGluZyBidWZmZXIKCSAgLi4uIGFuZCBhbGxvdyBzdWJjbGFzcyB0byBwZXJmb3JtIGN1c3RvbSBzZWdtZW50IGNsaXBwaW5nLCBvciB0bwoJICBlbWl0IHRhZ3Mgb3IgbWVzc2FnZXMgYXQgdGhpcyB0aW1lLgoKMjAxMC0wOS0xNyAxNzoxOTozNyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IDAgY29udmVydHMgdG8gMCBieSBkZWZhdWx0CgoyMDEwLTA5LTE2IDE4OjU2OjQ2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogcmVmYWN0b3IgY29udmVyc2lvbiB1c2luZyBoZWxwZXIgZnVuY3Rpb24gYW5kIGV4cG9ydCBkZWZhdWx0IGNvbnZlcnQKCjIwMTAtMDktMTYgMTg6MzU6NDcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBzdHJlYW1saW5lIHF1ZXJ5IGhhbmRsaW5nCgoyMDEwLTA5LTE2IDExOjUxOjIwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogY2xlYW51cCBzdHJ1Y3QgYW5kIHJlbW92ZSB1bnVzZWQgbWVtYmVyCgoyMDEwLTA5LTIyIDE2OjA3OjI0ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogQWxsb3cgY2hhaW5pbmcgb2Ygc3ViY2xhc3MgZXZlbnQgaGFuZGxlcnMKCSAgVGhpcyBhbGxvd3MgdGhlIGNoaWxkIGNsYXNzIHRvIGNoYWluIGl0cyBldmVudCBoYW5kbGVyIHdpdGgKCSAgR3N0QmFzZVBhcnNlLCBzbyB0aGF0IHN1YmNsYXNzZXMgZG9uJ3QgaGF2ZSB0byBkdXBsaWNhdGUgYWxsIHRoZSBkZWZhdWx0CgkgIGV2ZW50IGhhbmRsaW5nIGxvZ2ljLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIyMjc2CgoyMDEwLTA4LTI3IDE4OjM1OjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRG9uJ3QgdXNlIEdTVF9GTE9XX0lTX0ZBVEFMKCkKCSAgQWxzbyBkb24ndCBwb3N0IGFuIGVycm9yIG1lc3NhZ2UgZm9yIFVORVhQRUNURUQgYW5kIGRvIGl0CgkgIGZvciBOT1RfTElOS0VELgoKMjAxMC0wOS0wNiAxNDoxMjowMCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG5vbi1USU1FIHNlZWsgZXZlbnQgaXMgc2ltcGx5IG5vdCBoYW5kbGVkCgoyMDEwLTA2LTE1IDE1OjM0OjA1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IHNlZWsgZXZlbnQgcmVmIGhhbmRsaW5nCgoyMDEwLTA2LTE1IDE1OjMzOjM3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHJldmVudCBhcml0aG1ldGljIG92ZXJmbG93cyBpbiBwdWxsIG1vZGUgYnVmZmVyIGNhY2hlIGhhbmRsaW5nCgoyMDEwLTA2LTE1IDE1OjMyOjM0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IHNlZWsgaGFuZGxpbmcKCSAgQWxsb3cgYSBmZXcgbW9yZSBzZWVrIGV2ZW50IHR5cGUgY29tYmluYXRpb25zLCBhbmQgcmVhbGx5IHVzZSB0aGUgcmVzdWx0CgkgIG9mIGdzdF9zZWdtZW50X3NldF9zZWVrIHRvIHBlcmZvcm0gdGhlIHNlZWsuICBBbHNvIGFkZCBzb21lIGRlYnVnLgoKMjAxMC0wMy0yNiAxODo1Njo0OSArMDAwMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IERvbid0IGVtaXQgYml0cmF0ZSB0YWdzIHRvbyBlYXJseQoJICBXZSB3YWl0IHRvIHBhcnNlIGEgbWluaW11bSBudW1iZXIgb2YgZnJhbWVzICgxMCwgYXJiaXRyYXJpbHkpIGJlZm9yZQoJICBlbWl0aW5nIGJpdHJhdGUgdGFncyBzbyB0aGF0IG91ciBlYXJseSBlc3RpbWF0ZXMgYXJlIG5vdCB3aWxkbHkKCSAgaW5hY2N1cmF0ZSBmb3Igc3RyZWFtcyB0aGF0IHN0YXJ0IHdpdGggYSBzaWxlbmNlLiBJZiB0aGUgc3RyZWFtIGVuZHMKCSAgYmVmb3JlIHRoYXQsIHdlIGp1c3QgZW1pdCB0aGUgdGFncyBhbnl3YXkuCgkgIFdoaWxlIGl0IF93b3VsZF8gYmUgbmljZXIgdG8gYmUgc3BlY2lmeSB0aGUgdGhyZXNob2xkIHRvIHN0YXJ0IHB1c2hpbmcKCSAgdGhlIHRhZ3MgaW4gdGVybXMgb2YgZHVyYXRpb24sIHRoaXMgd291bGQgaW50cm9kdWNlIG1vcmUgY29tcGxleGl0eSB0aGFuCgkgIHRoaXMgbWVyaXRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE0OTkxCgoyMDEwLTAzLTI2IDE4OjIwOjI0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogU2V0IHRoZSBsYXN0IHN0b3AgdG8gdGhlIGJ1ZmZlciBzdGFydHRpbWUgaWYgdGhlIGR1cmF0aW9uIGlzIGludmFsaWQKCSAgLi4uaW5zdGVhZCBvZiBub3Qgc2V0dGluZyBpdCBhdCBhbGwuCgoyMDEwLTAzLTI2IDE4OjE5OjAwICswMTAwICBKb3NodWEgTS4gRG9lIDxqb3NoQGpvc2hkb2UuY29tPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBTZW5kIE5FV1NFR01FTlQgZXZlbnQgd2l0aCBjb3JyZWN0IHN0YXJ0IGFuZCBwb3NpdGlvbgoJICBJbnN0ZWFkIG9mIHRha2luZyB0aGUgbGFzdCBzdG9wICh3aGljaCBjb3VsZCBiZSBidWZmZXIgZW5kdGltZSBpbnN0ZWFkCgkgIG9mIHN0YXJ0dGltZSkgYWx3YXlzIHRha2UgdGhlIGJ1ZmZlciBzdGFydHRpbWUuCgkgIEZpeGVzIGJ1ZyAjNjE0MDE2LgoKMjAxMC0wMy0yNSAxNzowOToxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBhdWRpb3BhcnNlcnM6IHJlbW92ZSB1bnVzZWQgR3N0QmFzZVBhcnNlQ2xhc3NQcml2YXRlIHN0cnVjdHVyZQoKMjAxMC0wMy0yNSAxMToyMjo1OCArMDAwMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBhdWRpb3BhcnNlcnM6IEFkZCBiaXRyYXRlIGNhbGN1bGF0aW9uIHRvIGJhc2VwYXJzZQoJICBUaGlzIG1ha2VzIGJhc2VwYXJzZSBrZWVwIGEgcnVubmluZyBhdmVyYWdlIG9mIHRoZSBzdHJlYW0gYml0cmF0ZSwgYXMKCSAgd2VsbCBhcyB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBiaXRyYXRlcy4gU3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUgYQoJICB2ZnVuYyB0byBtYWtlIHN1cmUgdGhhdCBwZXItZnJhbWUgb3ZlcmhlYWQgZnJvbSB0aGUgY29udGFpbmVyIGlzIG5vdAoJICBhY2NvdW50ZWQgZm9yIGluIHRoZSBiaXRyYXRlIGNhbGN1bGF0aW9uLgoJICBXZSB0YWtlIGNhcmUgbm90IHRvIG92ZXJyaWRlIHRoZSBiaXRyYXRlLCBtaW5pbXVtLWJpdHJhdGUsIGFuZAoJICBtYXhpbXVtLWJpdHJhdGUgdGFncyBpZiB0aGV5IGhhdmUgYmVlbiBwb3N0ZWQgdXBzdHJlYW0uIFdlIGFsc28KCSAgcmF0ZS1saW1pdCB0aGUgZW1pc3Npb24gb2YgYml0cmF0ZSBzbyB0aGF0IGl0IGlzIG9ubHkgdHJpZ2dlcmVkIGJ5IGEKCSAgY2hhbmdlIG9mID4xMCBrYnBzLgoKMjAxMC0wMS0xNCAxMTo1MDozMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBhdWRpb3BhcnNlcnM6IHJlbmFtZSBiYXNlcGFyc2UgR1R5cGUgbmFtZSB0byBhdm9pZCBwb3NzaWJsZSBjb25mbGljdHMKCjIwMTAtMDEtMDUgMTU6MDU6MDUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYXVkaW9wYXJzZXJzOiBkb2N1bWVudGF0aW9uIGZpeGVzCgoyMDA5LTEyLTIxIDE4OjE4OjM5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYWRqdXN0IHNlZWsgaGFuZGxpbmcgYW5kIG5ld3NlZ21lbnQgc2VuZGluZwoJICBQZXJmb3JtIHNhbml0eSBjaGVjayBvbiB0eXBlIG9mIHNlZWssIGFuZCBvbmx5IHBlcmZvcm0gb25lIHRoYXQgaXMKCSAgYXBwcm9wcmlhdGVseSBzdXBwb3J0ZWQuICBBZGp1c3QgZG93bnN0cmVhbSBuZXdzZWdtZW50IGV2ZW50CgkgIHRvIGZpcnN0IGJ1ZmZlciB0aW1lc3RhbXAgdGhhdCBpcyBzZW50IGRvd25zdHJlYW0uCgoyMDA5LTEyLTIxIDExOjU5OjQ1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbWlub3IgcmVmYWN0b3IgY2xlYW51cAoJICBBbHNvIGFkZCBzb21lIGRlYnVnIGxvZ2dpbmcuCgoyMDA5LTEyLTE4IDIxOjAyOjQwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogaW1wbGVtZW50IGxlZnRvdmVyIGRyYWluaW5nIGluIHB1bGwgbW9kZQoKMjAwOS0xMi0xNiAxODozODozMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHByb3ZpZGUgZGVmYXVsdCBjb252ZXJzaW9uIHVzaW5nIGJwcyBpZiBubyBmcHMgYXZhaWxhYmxlCgkgIEFsc28gc3RvcmUgZXN0aW1hdGVkIGR1cmF0aW9uIGFzIHN1Y2gsIHJhdGhlciB0aGFuIHByZXRlbmRpbmcgb3RoZXJ3aXNlCgkgIChlLmcuIHNldCBieSBzdWJjbGFzcykuCgoyMDA5LTEyLTE4IDEzOjMwOjI5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogY2hlY2sgZm9yIHJlbWFpbmluZyBkYXRhIHdoZW4gZHJhaW5pbmcgaW4gcHVzaCBtb2RlCgoyMDA5LTEyLTE4IDEzOjMwOjA3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IHB1bGwgbW9kZSBjYWNoZSBzaXplIGNvbXBhcmlzb24KCjIwMDktMTItMTEgMTA6MjU6MTYgLTA4MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEBzb25nYmlyZG5lc3QuY29tPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYXVkaW9wYXJzZTogZml4IGEgZm9ybWF0IHN0cmluZyBhcyByZXBvcnRlZCBvbiBpcmMuCgoyMDA5LTEwLTI5IDE1OjE4OjM3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogY3VzdG9tIGJ1ZmZlcmZsYWcgaW5kaWNhdGVzIG5vdCB0byBjb3VudCBmcmFtZSBpbiBzdGF0cwoKMjAwOS0xMS0yNyAxNzoyNzozMiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBhdWRpb3BhcnNlcnM6IHJlZmVyZW5jZSBHc3RCYXNlUGFyc2Ugbm93IGxpdmVzIGhlcmUKCjIwMDktMTEtMjggMTg6MTM6MzEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYXVkaW9wYXJzZXJzOiByZW5hbWUgJ2FhY3BhcnNlJyBwbHVnaW4gdG8gZ2VuZXJpYyAnYXVkaW9wYXJzZXJzJyBwbHVnaW4KCjIwMDktMTAtMjkgMTY6MDU6MDAgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlc2V0IHBhc3N0aHJvdWdoIG1vZGUgdG8gZGVmYXVsdCAoZGlzYWJsZWQpIG9uIGFjdGl2YXRpb24KCjIwMDktMTAtMjkgMTU6MTY6NTkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGVuc3VyZSBidWZmZXIgbWV0YWRhdGEgaXMgd3JpdGFibGUKCjIwMDktMTAtMjggMTQ6MDY6MTMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogZml4L2VuaGFuY2UgRElTQ09OVCBtYXJraW5nCgkgIEluIHBhcnRpY3VsYXIsIGNvbnNpZGVyIERJU0NPTlQgPT0gIXN5bmMsIGFuZCBhbGxvdyBzdWJjbGFzcyB0byBxdWVyeQoJICBzeW5jIHN0YXRlLCBhcyBpdCBtYXkgd2FudCB0byBwZXJmb3JtIGFkZGl0aW9uYWwgY2hlY2tzIGRlcGVuZGluZwoJICBvbiB3aGV0aGVyIHN5bmMgd2FzIGFjaGlldmVkIGVhcmxpZXIgb24uCgkgIEFsc28gYXJyYW5nZSBmb3Igc3ViY2xhc3MgdG8gcXVlcnkgd2hldGhlciBsZWZ0b3ZlciBkYXRhIGlzIGJlaW5nIGRyYWluZWQuCgoyMDA5LTExLTIzIDE1OjQ4OjI1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGFkZCB0aW1lc3RhbXAgaGFuZGxpbmcsIGFuZCBkZWZhdWx0IGNvbnZlcnNpb24KCSAgSW4gcGFydGljdWxhciwgKG9wdGlvbmFsbHkpIHByb3ZpZGUgYmFzZXBhcnNlIHdpdGggYSBub3Rpb24gb2YgZnJhbWVzIHBlciBzZWNvbmQKCSAgKGFuZCB0aGVyZWZvcmUgYWxzbyBmcmFtZSBkdXJhdGlvbikgYW5kIGhhdmUgaXQgdHJhY2sgZnJhbWUgYW5kIGJ5dGUgY291bnRzLgoJICBUaGlzIHdheSwgc3ViY2xhc3MgY2FuIHByb3ZpZGUgYmFzZXBhcnNlIHdpdGggZnBzIGFuZCBoYXZlIGl0IHByb3ZpZGUgZGVmYXVsdAoJICBidWZmZXIgdGltZSBtZXRhZGF0YSBhbmQgY29udmVyc2lvbnMsIHRob3VnaCBzdWJjbGFzcyBjYW4gc3RpbGwgaW5zdGFsbAoJICBjYWxsYmFja3MgdG8gaGFuZGxlIHN1Y2ggaXRzZWxmLgoKMjAwOS0xMC0yOCAxMjowMjowMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZG9jdW1lbnRhdGlvbiBmaXhlcwoKMjAwOS0xMC0yOCAxMjowMDowOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdXNlX2ZpeGVkX2NhcHMgZm9yIHNyYyBwYWQKCSAgQWZ0ZXIgYWxsLCBzdHJlYW0gaXMgYXMtaXMsIGFuZCB0aGVyZSBpcyBsaXR0bGUgbW9sZGluZyB0byBkb3duc3RyZWFtJ3MKCSAgdGFzdGUgdGhhdCBjYW4gYmUgZG9uZS4gIElmIHN1YmNsYXNzIGNhbiBhbmQgd2FudHMgdG8gZG8gc28sIGl0IGNhbgoJICBzdGlsbCBvdmVycmlkZSBhcyBzdWNoLgoKMjAwOS0xMS0yMCAxNzozMjoxMyArMDEwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQGZsdWVuZG8uY29tPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBhYWNwYXJzZTogRml4IGNvbXBpbGF0aW9uIHdhcm5pbmdzCgoyMDA5LTEwLTExIDExOjIyOjExICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGFhY3BhcnNlOiBmaXggd2FybmluZ3MgaW4gbWFjb3N4IHNub3cgbGVvcGFyZAoKMjAwOS0wOS0yNSAxNzowMjo1MyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYWFjcGFyc2U6IGZvcmVnbyAoYm9ndXMpIHBhcnNpbmcgb2YgYWxyZWFkeSBwYXJzZWQgKHJhdykgaW5wdXQKCjIwMDktMDgtMDcgMTM6MDc6MTcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHByZXZlbnQgaW5maW5pdGUgbG9vcCB3aGVuIGRyYWluaW5nCgoyMDA5LTA4LTA3IDEzOjA2OjI4ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggbWlub3IgbWVtb3J5IGxlYWsKCjIwMDktMDctMTQgMTQ6MDg6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGFhY3BhcnNlOiBBZGQgZnVuY3Rpb24gZm9yIHRoZSBiYXNlcGFyc2Ugc3ViY2xhc3MgdG8gcHVzaCBidWZmZXJzIGRvd25zdHJlYW0KCSAgQWxzbyBoYW5kbGUgdGhlIGNhc2UgZ3JhY2VmdWxseSB3aGVyZSB0aGUgc3ViY2xhc3MgZGVjaWRlcyB0byBkcm9wCgkgIHRoZSBmaXJzdCBidWZmZXJzIGFuZCBoYXMgbm8gY2FwcyBzZXQgeWV0LiBJdCdzIHN0aWxsIHJlcXVpcmVkIHRvCgkgIGhhdmUgdmFsaWQgY2FwcyBzZXQgd2hlbiB0aGUgZmlyc3QgYnVmZmVyIHNob3VsZCBiZSBwYXNzZWQgZG93bnN0cmVhbS4KCjIwMDktMDctMTQgMTQ6MDc6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCBzZWVrIGV2ZW50IGxlYWtpbmcKCjIwMDktMDYtMDEgMTM6NTY6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHByb3BhZ2F0ZSByZXR1cm4gdmFsdWUgb2YgR3N0QmFzZVBhcnNlOjpzZXRfc2lua19jYXBzKCkKCSAgZ3N0X2Jhc2VfcGFyc2Vfc2lua19zZXRjYXBzKCkgcHJlc3VtYWJseSBzaG91bGQgZmFpbCBpZiB0aGUgc3ViY2xhc3MKCSAgcmV0dXJucyBGQUxTRSBmcm9tIGl0cyA6OnNldF9zaW5rX2NhcHMoKSBmdW5jdGlvbi4KCjIwMDktMDYtMDEgMTM6NDc6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGRvbid0IHRyeSB0byBHU1RfTE9HIGFuIGFscmVhZHktZnJlZWQgY2FwcyBzdHJpbmcKCSAgVGhlIHByb3BlciB3YXkgdG8gbG9nIGNhcHMgaXMgdmlhIEdTVF9QVFJfRk9STUFUIGFueXdheS4KCjIwMDktMDUtMjYgMTk6NDM6NTMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBkZWJ1ZyBjYXRlZ29yeQoKMjAwOS0wNC0yNyAyMjozOToxNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IChyZWdyZXNzaW9uIGluKSBuZXdzZWdtZW50IGhhbmRsaW5nCgkgIChhYWNwYXJzZSwgYW1ycGFyc2UsIGZsYWNwYXJzZSkuICBGaXhlcyAjNTgwMTMzLgoKMjAwOS0wNC0wNyAwNDo1MzowMiArMDMwMCAgUmVuw6kgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXggc2xpZ2h0bHkgYnJva2VuIGJ1ZmZlci1pbi1zZWdtZW50IGNoZWNrIChhYWNwYXJzZSwgYW1ycGFyc2UsIGZsYWNwYXJzZSkKCjIwMDktMDQtMDUgMDM6NTA6MTkgKzAzMDAgIFJlbsOpIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRml4IHB1c2ggbW9kZSBzZWVraW5nIChhYWNwYXJzZSwgYW1ycGFyc2UpCgkgIFNlbmRpbmcgdGhlIGZsdXNoLXN0YXJ0IGV2ZW50IGZvcndhcmQgYmVmb3JlIHRha2luZyB0aGUgc3RyZWFtIGxvY2sgYWN0dWFsbHkKCSAgd29ya3MsIGluIGNvbnRyYXN0IHRvIGRlYWRsb2NraW5nIGluIGRvd25zdHJlYW0gcHJlcm9sbF93YWl0IChodW5rIDEpLgoJICBBZnRlciB0aGF0IHdlIGdldCB0aGUgY2hhaW4gZnVuY3Rpb24gYmVpbmcgc3R1Y2sgaW4gYSBidXN5IGxvb3AuIFRoaXMgaXMgZml4ZWQKCSAgYnkgdXBkYXRpbmcgdGhlIG1pbmltdW0gZnJhbWUgc2l6ZSBpbnNpZGUgdGhlIHN5bmNocm9uaXphdGlvbiBsb29wIGJlY2F1c2UgdGhlCgkgIHN1YmNsYXNzIGFza3MgZm9yIG1vcmUgZGF0YSBpbiB0aGlzIHdheSAoaHVuayAyKS4KCSAgRmluYWxseSwgdGhpcyBsZWFkcyB0byBhIHZlcnkgcHJvYmFibGUgY3Jhc2ggYmVjYXVzZSB0aGUgc3ViY2xhc3MgY2FuIGZpbmQgYQoJICB2YWxpZCBmcmFtZSB3aXRoIGEgc2l6ZSBncmVhdGVyIHRoYW4gdGhlIGN1cnJlbnRseSBhdmFpbGFibGUgZGF0YSBpbiB0aGUKCSAgYWRhcHRlci4gVGhpcyBtYWtlcyB0aGUgc3Vic2VxdWVudCBnc3RfYWRhcHRlcl90YWtlX2J1ZmZlciBjYWxsIHJldHVybiBOVUxMLAoJICB3aGljaCBpcyBub3QgZXhwZWN0ZWQgKGh1bmsgMykuCgoyMDA5LTAzLTMxIDE2OjA3OjQ2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBEZWxheSBuZXdzZWdtZW50IGFzIGxvbmcgYXMgcG9zc2libGUuCgkgIElmIG5ld3NlZ21lbnQgaXMgc2VudCAodG9vKSBlYXJseSwgY2FwcyBtYXkgbm90IHlldCBiZSBmaXhlZC9zZXQsCgkgIGFuZCBkb3duc3RyZWFtIG1heSBub3QgaGF2ZSBiZWVuIGxpbmtlZC4KCjIwMDktMDItMjcgMTE6MjQ6MzcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZXZlcnQgbGFzdCBjaGFuZ2UgYW5kIHByb3Blcmx5IGZpeAoJICBCYXNlcGFyc2UgaW50ZXJuYWx5IGJyZWFrcyB0aGUgc2VtYW50aWNzIG9mIGEgX2NoYWluIGZ1bmN0aW9uIGJ5IGNhbGxpbmcgaXQgd2l0aAoJICBidWZmZXI9PU5VTEwuIFRoZSByZXNvbiBJIGJlbGl2ZWQgaXQgd2FzIG9rYXkgdG8gcmVtb3ZlIGl0IHdhcyB0aGF0IHRoZXJlIGlzCgkgIGFsc28gYW4gdW5jaGVja2VkIGFjY2VzcyB0byBidWZmZXIgbGF0ZXIgaW4gX2NoYWluLiBBY3R1YWxseSB0aGF0IGNvZGUgaXMgd3JvbmcsCgkgIGFzIGl0IG1vc3QgcHJvYmFibHkgd2FudHMgdG8gc2V0IGRpc2NvbnQgb24gdGhlIG91dGdvaW5nIGJ1ZmZlci4KCjIwMDktMDItMjYgMTE6MDI6MDYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZW1vdmUgY2hlY2tzIGZvciBidWZmZXI9PU5VTEwKCSAgQWNjb3JkaWZuIHRvIGRvY3MgZm9yIEdzdFBhZENoYWluRnVuY3Rpb24gYnVmZmVyIGNhbm5vdCBiZSBOVUxMLiBJZiB3ZSB3b3VsZAoJICBsZWF2ZSB0aGUgY2hlY2ssIHdlIHdvdWxkIGFsc28gbmVlZCBtb3JlIHN1Y2ggY2hlY2sgYmVsb3cuCgoyMDA5LTAxLTMwIDE4OjE4OjEwICswMDAwICBKYW4gU2NobWlkdCA8amFuLnNjaG1pZHRAc3VuLmNvbT4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgRml4IHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGRlZmF1bHQgcGFyc2VfZnJhbWUgZnVuY3Rpb24uCgkgIEZpeCB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBkZWZhdWx0IHBhcnNlX2ZyYW1lIGZ1bmN0aW9uIGluIGJvdGgKCSAgY29waWVzIG9mIEdzdEJhc2VQYXJzZQoKMjAwOC0xMS0xMyAxNDoyMTozOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0LzogRml4IGJhc2VwYXJzZSB0eXBlIG5hbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgKiBnc3QvYW1ycGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIEZpeCBiYXNlcGFyc2UgdHlwZSBuYW1lLgoKMjAwOC0xMS0xMyAxMjo1OTozNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQWRkIHR3byBuZXcgYmFzZXBhcnNlIGJhc2VkIHBhcnNlcnMgKGFhYyBhbmQgYW1yKSBmcm9tIEJ1ZyAjNTE4ODU3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2FhY3BhcnNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9hYWNwYXJzZS9nc3RhYWNwYXJzZS5jOgoJICAqIGdzdC9hYWNwYXJzZS9nc3RhYWNwYXJzZS5oOgoJICAqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmg6CgkgICogZ3N0L2FtcnBhcnNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9hbXJwYXJzZS9nc3RhbXJwYXJzZS5jOgoJICAqIGdzdC9hbXJwYXJzZS9nc3RhbXJwYXJzZS5oOgoJICAqIGdzdC9hbXJwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgKiBnc3QvYW1ycGFyc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIEFkZCB0d28gbmV3IGJhc2VwYXJzZSBiYXNlZCBwYXJzZXJzIChhYWMgYW5kIGFtcikgZnJvbSBCdWcgIzUxODg1Ny4KCjIwMTEtMDMtMjAgMDA6NTY6MDggKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWVbMl06IE1ha2Ugc3JjIHF1ZXJ5IE1ULXNhZmUKCSAgSXQgaXMgcG9zc2libGUgdGhhdCB0aGUgZWxlbWVudCBtaWdodCBiZSBnb2luZyBkb3duIHdoaWxlIHRoZSBldmVudCBhcnJpdmVzCgoyMDExLTAzLTIwIDAwOjU2OjA4ICswMTAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogTWFrZSBzcmMgcXVlcnkgTVQtc2FmZQoJICBJdCBpcyBwb3NzaWJsZSB0aGF0IHRoZSBlbGVtZW50IG1pZ2h0IGJlIGdvaW5nIGRvd24gd2hpbGUgdGhlIGV2ZW50IGFycml2ZXMKCjIwMTEtMDQtMDggMTQ6NTY6MzcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZVsyXTogVW5yZWYgZXZlbnRzIGlmIHRoZSBwYXJlbnQgZWxlbWVudCBkaXNhcHBlYXJlZAoKMjAxMS0wMy0yMSAxNjowMTowNSArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZVsyXTogTWFrZSB1cHN0cmVhbSBldmVudHMgTVQtc2FmZQoKMjAxMS0wNC0wOCAxNDo1NTowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2U6IFVucmVmIGV2ZW50cyBpZiB0aGUgcGFyZW50IGVsZW1lbnQgZGlzYXBwZWFyZWQKCSAgQW5kIGFsc28gdW5yZWYgZXZlbnRzIGlmIHRoZSBiYXNldHJhbnNmb3JtIHN1YmNsYXNzIGhhcyBubwoJICBldmVudCBoYW5kbGVyIGFuZCB0aGUgZXZlbnQgaXMgbm90IGZvcndhcmRlZCBhdCBhbGwuCgoyMDExLTAzLTIxIDE2OjAxOjA1ICswMTAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2U6IE1ha2UgdXBzdHJlYW0gZXZlbnRzIE1ULXNhZmUKCjIwMTEtMDMtMjkgMTE6NTc6MDYgKzAyMDAgIFN0aWFuIFNlbG5lcyA8c3RpYXNlbG5AY2lzY28uY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBnc3RxdWV1ZSwgZ3N0cXVldWUyOiBjaGVjayBpZiBwYXJlbnQgb2YgcGFkIGlzIE5VTEwgaW4gX2dldGNhcHMKCSAgUGFyZW50IG9mIHRoZSBwYWQgKHRoZSBxdWV1ZSkgbWF5IGJlIHNldCB0byBOVUxMIHdoaWxlIHRoZXJlIGlzCgkgIGEgYnVmZmVyIGFsbG9jIGdvaW5nIG9uLgoKMjAxMS0wNC0wOCAxNDo1MDoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogRml4IGdldGNhcHMgYW5kIGV2ZW50IGZ1bmN0aW9uIGZyb20gbGFzdCBjb21taXQKCSAgUmV0dXJuIEFOWSBjYXBzIGlmIHRoZSBwYXJlbnQgZGlzYXBwZWFyZWQsIGkuZS4gdGhlIHRlbXBsYXRlIGNhcHMKCSAgYW5kIGRvbid0IGxlYWsgZXZlbnRzIGlmIHRoZSBwYXJlbnQgZGlzYXBwZWFyZWQuCgoyMDExLTA0LTAxIDA4OjQ2OjE0ICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogUHJvdGVjdCBhZ2FpbnN0IHBhZC1wYXJlbnQgZGlzYXBwZWFyaW5nCgoyMDEwLTEyLTE0IDE2OjA2OjQ2ICswMTAwICBTdGlhbiBTZWxuZXMgPHN0aWFuLnNlbG5lc0B0YW5kYmVyZy5jb20+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IHJlc3luYyB0byBhdm9pZCBpbmZpbml0ZSBsb29wCgoyMDExLTA0LTA4IDA5OjIwOjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB1dGlsczogRml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgY29tcGlsZXIgd2FybmluZ3MKCjIwMTEtMDQtMDggMDk6MTU6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IFJlbW92ZWQgdW51c2VkIEdDb25kCgoyMDExLTA0LTA4IDA5OjA3OjU5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBBZGQgYW5vdGhlciBjaGVjayBmb3IgdGhlIGZsdXNoaW5nIGZsYWcgYWZ0ZXIgdGFraW5nIHRoZSBsb2NrCgkgIFRoaXMgcHJldmVudHMgYW5vdGhlciBwb3RlbnRpYWwgZGVhZGxvY2sgd2hlbiBmbHVzaGluZyB0aGUgcGFkCgkgIGF0IGV4YWN0bHkgdGhlIHJpZ2h0IHRpbWUuCgoyMDExLTA0LTA3IDExOjI0OjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBJbW1lZGlhdGVseSBkcm9wIG1lc3NhZ2VzIGFmdGVyIGNhbGxpbmcgdGhlIHN5bmMgaGFuZGxlciBpZiB0aGlzIGlzIGEgc3luY2hyb25vdXMgYnVzCgkgIE90aGVyd2lzZSB3ZSBtaWdodCB3YWl0IGZvcmV2ZXIgZm9yIHRoZSBtZXNzYWdlIHRvIGJlIHBvcHBlZCBmcm9tCgkgIHRoZSBxdWV1ZSBpZiBhIHN5bmMgaGFuZGxlciByZXR1cm5lZCBHU1RfQlVTX0FTWU5DLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ3MDA1CgoyMDExLTA0LTA3IDExOjE5OjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBVc2UgYSBjb25zdHJ1Y3Qtb25seSBwcm9wZXJ0eSB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIGNoaWxkIGJ1c2VzIGFuZCBub3JtYWwgYnVzZXMKCSAgVGhpcyBhbGxvd3MgdG8gb25seSBjcmVhdGUgdGhlIHNvY2tldHBhaXIgd2hlbiBpdCBpcyByZWFsbHkgcmVxdWlyZWQgaW5zdGVhZAoJICBvZiBhbHdheXMgY3JlYXRpbmcgaXQgYW5kIGltbWVkaWF0ZWx5IGRlc3Ryb3lpbmcgaXQgYWdhaW4gZm9yIGNoaWxkIGJ1c2VzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ3MDA1CgoyMDExLTA0LTA3IDIwOjQ3OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSAgdGVzdHM6IGFkZCBzb21lIGJhc2ljIHVuaXQgdGVzdHMgZm9yIHF1ZXVlMgoKMjAxMS0wNC0wNyAyMDo0NToyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBidWZmZXIgbGVhayBvbiBlb3Mgd2hlbiB1c2luZyB0aGUgcmluZyBidWZmZXIKCjIwMTEtMDEtMTEgMTQ6Mjc6MzUgKzAxMDAgIElkYXIgVG9sbGVmc2VuIDxpdG9sbGVmc0BjaXNjby5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEZpeGVzIG1lbW9yeSBsZWFrIG9uIG91dF9mbHVzaGluZyBlcnJvciBpbiBnc3RfcXVldWUyX2NyZWF0ZV9yZWFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2OTcyCgoyMDExLTA0LTA3IDE5OjQ0OjQ0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IG1pbm9yIG1lbW9yeSBsZWFrCgoyMDExLTA0LTA3IDE3OjM0OjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogbWlub3IgZWxlbWVudCBkZXNjcmlwdGlvbiBmaXgKCjIwMTEtMDQtMDcgMTY6MTM6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA0LTA3IDE2OjAyOjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogYWRkIE5PX1NIQVJFIGZsYWcgdG8gbWVtb3J5CgkgIEFkZCBhIE5PX1NIQVJFIGZsYWcgdG8gbWVtb3J5IHRvIGluZGljYXRlIHRoYXQgaXQgc2hvdWxkIG5vdCBiZSBzaGFyZWQKCSAgYmV0d2VlbiBidWZmZXJzLgoKMjAxMS0wNC0wNyAxNjowODozNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDoKCSAgZG9jczogcmVtb3ZlIGZpbGUgYXMgd2UgaGF2ZSBkb2NzL2Rlc2lnbi9wYXJ0LW1pc3NpbmctcGx1Z2lucy50eHQKCjIwMTEtMDQtMDcgMTA6NDg6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IEhhbmRsZSB0YWcgYW5kIGN1c3RvbSBkb3duc3RyZWFtIGV2ZW50cyB0aGUgc2FtZQoJICBFc3BlY2lhbGx5IGRyb3AgdGFnIGV2ZW50cyB3aGVuIGZsdXNoaW5nIHRvIG5vdCBzZW5kIHRoZW0gb3ZlcgoJICBhbmQgb3ZlciBhZ2Fpbi4KCSAgU2hvdWxkJ3ZlIGJlZW4gaW4gdGhlIGxhc3QgY29tbWl0IGFscmVhZHkgYnV0IEkgZm9yZ290IHRvIGNhbGwKCSAgZ2l0IHJlYmFzZSAtLWNvbnRpbnVlLi4uCgoyMDExLTA0LTA3IDEwOjQwOjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBibGEKCjIwMTEtMDQtMDcgMTA6Mjk6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IFNlbmQgc3luY3Jvbml6ZWQgY3VzdG9tIGRvd25zdHJlYW0vYm90aCBldmVudHMgZG93bnN0cmVhbSBmcm9tIHRoZSBzdHJlYW1pbmcgdGhyZWFkCgkgIEluc3RlYWQgb2YganVzdCBzaWxlbnRseSBkcm9wcGluZyB0aGVtLiBUaGUgc2FtZSB3YXMgZG9uZSBmb3IgdGFnIGV2ZW50cwoJICBiZWZvcmUgYWxyZWFkeS4KCSAgRml4ZXMgYnVnICM2MzU3MTguCgoyMDExLTA0LTA2IDE5OjE5OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGRvbid0IGZvbGxvdyB0aGUgcGFyZW50IGluIHRoZSBmYWxsYmFjayBzaGFyZQoKMjAxMS0wNC0wNiAxODo1Nzo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgYnVmZmVyOiBtYWtlIG1lbW9yeSB3cml0YWJsZSBpbiBfcGVlawoJICBNYWtlIHRoZSBtZW1vcnkgd3JpdGFibGUgd2hlbiB3ZSBhcmUgYXNrZWQgdG8gX3BlZWsgd2l0aCBNQVBfV1JJVEUuCgkgIEltcHJvdmUgZGVidWdnaW5nIG9mIG1pbmlvYmplY3QuCgoyMDExLTA0LTA2IDE2OjM3OjQwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogZml4IGRlYnVnCgoyMDExLTA0LTA2IDE0OjIwOjU5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDQtMDYgMTQ6MDY6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IEFkZCBwcml2YXRlIEFQSSB0byBzZXQgYSBHc3RCdXMgaW4gY2hpbGQgbW9kZQoJICBUaGlzIGlzIHVzZWQgYnkgR3N0QmluIHRvIGNyZWF0ZSBhIGNoaWxkIGJ1cyB3aXRob3V0CgkgIGEgc29ja2V0cGFpciBiZWNhdXNlIGNoaWxkIGJ1c2VzIHdpbGwgYWx3YXlzIHdvcmsKCSAgc3luY2hyb25vdXMuIE90aGVyd2lzZSB0b28gbWFueSBzb2NrZXRzIGNvdWxkIGJlCgkgIGNyZWF0ZWQgYW5kIHRoZSBsaW1pdCBvZiBmaWxlIGRlc2NyaXB0b3JzIGZvciB0aGUKCSAgcHJvY2VzcyBjb3VsZCBiZSByZWFjaGVkLgoJICBGaXhlcyBidWcgIzY0NjYyNC4KCjIwMTEtMDQtMDYgMTM6NTY6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBSZXZlcnQgImJ1czogT25seSBjcmVhdGUgdGhlIHNpZ25hbGxpbmcgc29ja2V0IHBhaXIgd2hlbiByZXF1aXJlZCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA0YmY4ZjE1MjRmNmUzMzc0YjNmM2JjNTczMjIzMzc3MjNkMDZiOTI4LgoKMjAxMS0wNC0wNiAxMzo1Njo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIFJldmVydCAiYnVzOiBDaGVjayBpZiBwZW5kaW5nIG1lc3NhZ2VzIGFyZSBpbiB0aGUgcXVldWUiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYmQxYzQwMDExNDM0YzFlZmFhNjk2ZGM5OGVmODU1ZWY5Y2NlOWIyOC4KCjIwMTEtMDQtMDYgMTE6Mzg6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBjaGVja3M6IG1ha2UgdGVzdHNfbWFueV9iaW5zIGluIGJpbiB1bml0IHRlc3QgYSBiaXQgZmFzdGVyCgkgIE5vdCBkb2luZyBleHBlbnNpdmUgY2hlY2tzIHdoZW4gbGlua2luZyBlbGVtZW50cyBtYWtlcyB0aGluZ3MKCSAgbXVjaCBmYXN0ZXIuCgoyMDExLTA0LTA2IDExOjMwOjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgY2hlY2tzOiBhZGQgc29tZSBxdWV1ZXMgdG8gdGVzdF9tYW55X2JpbnMgdW5pdCB0ZXN0CgkgIFRvIGxpbWl0IHRoZSBudW1iZXIgb2YgY2FsbHMgaW4gYSByb3cgcGVyIHRocmVhZC4KCjIwMTEtMDQtMDYgMTI6MDM6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IENoZWNrIGlmIHBlbmRpbmcgbWVzc2FnZXMgYXJlIGluIHRoZSBxdWV1ZQoJICBXZSBjYW4ndCByZWx5IGNvbXBsZXRlbHkgb24gdGhlIHBvbGwgZmQgYmVjYXVzZSB0aGUgZmQgbWlnaHQgYmUKCSAgY3JlYXRlZCBhZnRlciBtZXNzYWdlcyB3ZXJlIHBvc3RlZCB0byB0aGUgYnVzLgoKMjAxMS0wNC0wNiAxMTo0NToyNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IEdzdERhdGUvR0RhdGUgaGFzIGEgYWJicmV2aWF0aW9uIG5vdwoKMjAxMS0wNC0wMyAxNjoxMTo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGNoZWNrczogYWRkIEdzdEJpbiB1bml0IHRlc3QgdGhhdCBjcmVhdGVzIGEgbG90IG9mIGJpbnMKCSAgQ3VycmVudGx5IGZhaWxzIChpbiBub3JtYWwgY2lyY3Vtc3RhbmNlcykgYmVjYXVzZSB3ZSBjcmVhdGUgYQoJICBzb2NrZXQgcGFpciBmb3IgZWFjaCBiaW4ncyBidXMgYW5kIGV4aGF1c3QgdGhlIG51bWJlciBvZiBhdmFpbGFibGUKCSAgZmlsZSBkZXNjcmlwdG9ycy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NjYyNAoKMjAxMS0wNC0wNSAxNjoyMjo0OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogT25seSBjcmVhdGUgdGhlIHNpZ25hbGxpbmcgc29ja2V0IHBhaXIgd2hlbiByZXF1aXJlZAoJICBPdGhlcndpc2UgYSBuZXcgb25lIHdvdWxkIGJlIGNyZWF0ZWQgZm9yIGV2ZXJ5IHNpbmdsZSBidXMgYW5kCgkgIHRoZSBwcm9jZXNzIGNvdWxkIGVhc2lseSBydW4gb3V0IG9mIGZpbGUgZGVzY3JpcHRvcnMuCgkgIEZpeGVzIGJ1ZyAjNjQ2NjI0LgoKMjAxMS0wNC0wNSAxNDozNjo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogQWRkIGRhdGUgYXMgYSB0eXBlIGFiYnJldmlhdGlvbiBvZiBHRGF0ZQoJICBTZWUgYnVnICM2NDY2OTYuCgoyMDExLTA0LTA0IDE1OjU2OjMwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDFjY2JlMDkgdG8gYzNjYWZlMQoKMjAxMS0wNC0wNCAxMToxNzoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDQtMDQgMDM6MzM6NDYgKzAyMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8eWxhdHV5YUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBnc3Rwb2xsOiByZXRyeSByZWFkaW5nIHRoZSBjb250cm9sIHNvY2tldCB0byByZWxlYXNlIHByb3Blcmx5IGFsbCB3YWtldXBzCgkgIGlmIHNldC0+Y29udHJvbF9wZW5kaW5nIGlzIHNldCB0byAwIGJ1dCB3ZSBkaWRuJ3Qgbm90IHN1Y2NlZCByZWFkaW5nCgkgIHRoZSBjb250cm9sIHNvY2tldCwgZnV0dXJlIGNhbGxzIHRvIGdzdF9wb2xsX3dhaXQoKSB3aWxsIGJlIGF3YWlrZW4KCSAgYnkgdGhlIGNvbnRyb2wgc29ja2V0IHdoaWNoIHdpbGwgbm90IGJlIHJlbGVhc2VkIHByb3Blcmx5IGJlY2F1c2UKCSAgc2V0LT5jb250cm9sX3BlbmRpbmcgaXMgYWxyZWFkeSAwLCBjYXVzaW5nIGFuIGluZmluaXRlIGxvb3AuCgoyMDExLTA0LTA0IDEwOjE4OjE0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBEb24ndCBhbGxvdyBpbnZhbGlkIEdEYXRlcyBpbiBhbGwgc3RydWN0dXJlcyBhbmQgZG9uJ3QgYWxsb3cgTlVMTCBHRGF0ZXMgaW4gdGFnbGlzdHMKCSAgU29tZSBjb2RlIChlLmcuIGdzdHZvcmJpc3RhZy5jKSBhc3N1bWVzIG5vbi1OVUxMIEdEYXRlcyBpbiB0YWdsaXN0cyBhbmQKCSAgZXhwbG9kZXMgb3RoZXJ3aXNlIGFuZCBOVUxMIG9yIGludmFsaWQgR0RhdGVzIGRvbid0IG1ha2UgbXVjaCBzZW5zZSBhbnl3YXkuCgoyMDExLTAzLTI1IDE1OjU2OjA3ICswMTAwICBUaG9tYXMgS3Jpc3RlbnNlbiA8dGhvbWFzLmtyaXN0ZW5zZW5AY2lzY28uY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogZG9uJ3QgY2FsbCBXU0FXYWl0Rm9yTXVsdGlwbGVFdmVudHMgd2l0aCBubyBldmVudHMKCSAgRml4ZXMgZXJyb3IgY2F1Z2h0IGJ5IE1pY3Jvc29mdCBBcHBsaWNhdGlvbiBWZXJpZmllci4KCjIwMTEtMDQtMDMgMTY6MTg6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGRvY3M6IGFkZCBwb2ludGVyIHRvIHBhcnQtc2Vla2luZy50eHQgZGVzaWduIGRvY3MgdG8gZXZlbnQgc2VlayBmbGFncyBkb2NzCgoyMDExLTA0LTAzIDE2OjE4OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkgIGNoZWNrczogaWdub3JlIG5ldyBmdW5uZWwgdW5pdCB0ZXN0IGJpbmFyeQoKMjAxMS0wNC0wMiAxNDo1MToxOCArMDEwMCAgQmFzdGllbiBOb2NlcmEgPGhhZGVzc0BoYWRlc3MubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiBBdm9pZCB1c2luZyAidHlwZSIgYXMgbmFtZSBmb3IgYSB2YXJpYWJsZSBhbmQgYSBtYWNybyBhcmd1bWVudCBpbiBHU1RfQk9JTEVSUExBVEUKCSAgVGhpcyBjYXVzZWQgInJlLWRlY2xhcmF0aW9uIiBwcm9ibGVtcy4KCSAgLi9jbHV0dGVyLWdzdC12aWRlby1zaW5rLmM6IEluIGZ1bmN0aW9uIOKAmGNsdXR0ZXJfZ3N0X3ZpZGVvX3NpbmtfaW5pdF9pbnRlcmZhY2Vz4oCZOgoJICAuL2NsdXR0ZXItZ3N0LXZpZGVvLXNpbmsuYzoyMzE6MTogd2FybmluZzogZGVjbGFyYXRpb24gb2Yg4oCYQ2x1dHRlckdzdFZpZGVvU2lua+KAmSBzaGFkb3dzIGEgZ2xvYmFsIGRlY2xhcmF0aW9uIFstV3NoYWRvd10KCSAgLi9jbHV0dGVyLWdzdC12aWRlby1zaW5rLmg6NjQ6NDQ6IHdhcm5pbmc6IHNoYWRvd2VkIGRlY2xhcmF0aW9uIGlzIGhlcmUgWy1Xc2hhZG93XQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2NTMxCgoyMDExLTA0LTAxIDEzOjU2OjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IFdoZW4gcmVxdWVzdGluZyBhbiBleGlzdGluZyBwYWQgcHJpbnQgYSBnX2NyaXRpY2FsKCkgaW5zdGVhZCBvZiB1c2luZyBhbiBhc3NlcnRpb24KCSAgU29tZSBhcHBsaWNhdGlvbnMgYXJlIHJlcXVlc3RpbmcgdGhlIHNhbWUgcGFkIG5hbWUgbXVsdGlwbGUgdGltZXMKCSAgYW5kIHRoZSBiZWhhdmlvdXIgaXMgdW5kZWZpbmVkIGFuZCBkaWZmZXJlbnQgZnJvbSBlbGVtZW50IHRvIGVsZW1lbnQKCSAgYnV0IHdlIGRvbid0IHdhbnQgdG8gYnJlYWsgYXBwbGljYXRpb25zIHRoYXQgd29yayBqdXN0IGZpbmUuCgkgIEluIDAuMTEgdGhpcyBjaGVjayBzaG91bGQgYmUgYW4gYXNzZXJ0aW9uIGFnYWluLCBhbHRob3VnaCBlbGVtZW50cwoJICBoYXZlIHRvIGRvIG1hbnVhbCBjaGVja2luZyBpZiB0aGUgcGFkIGFscmVhZHkgZXhpc3RzIGFnYWluIGJlY2F1c2UKCSAgaXQgY2FuJ3QgYmUgZG9uZSBpbiBhIHRocmVhZHNhZmUgd2F5IGhlcmUuCgoyMDExLTA0LTAxIDEzOjUzOjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IFVzZSBnaW50NjQvZ3VpbnQ2NCBzdHJpbmcgcGFyc2luZyBmdW5jdGlvbnMKCSAgQW5kIGNoZWNrIHRoYXQgdGhlIHJlcXVlc3RlZCBwYWQgbmFtZXMgYXJlIGluc2lkZSB0aGUgdmFsaWQKCSAgZ2ludC9ndWludCByYW5nZS4KCjIwMTEtMDQtMDEgMTM6NTE6MzEgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IHN0cnRvW3VdbCgpIHJldHVybnMgYSBnW3VdbG9uZwoKMjAxMS0wNC0wMSAxMDo0Nzo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDQtMDEgMTA6NDY6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiB1cGRhdGUgcG9ydGluZyBndWlkZSB3aXRoIGJ1ZmZlcmxpc3QgY2hhbmdlcwoKMjAxMS0wMy0zMSAxOToyNTozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJICBkZXNpZ24gZG9jczogZG9jdW1lbnQgZXhwZWN0ZWQgYmVoYXZpb3VyIGZvciBBQ0NVUkFURSBhbmQgS0VZX1VOSVQgc2VlayBmbGFncwoKMjAxMS0wMy0zMSAxODozOTo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJICBieXRld3JpdGVyOiBkb24ndCBhZGQgTlVMTCBkYXRhCgoyMDExLTAzLTMxIDE3OjU1OjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0LmgKCjIwMTEtMDMtMzEgMTc6NTE6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJsaXN0OiBzaW1wbGlmeSBidWZmZXJsaXN0cwoJICBXZSBub3cgaGF2ZSBtdWx0aXBsZSBtZW1vcnkgYmxvY2tzIGFzIHBhcnQgb2YgdGhlIGJ1ZmZlcnMgYW5kIHdlIGNhbiB0aGVyZWZvcmUKCSAgcmVkdWNlIHRoZSBidWZmZXJsaXN0IHRvIGEgc2ltcGxlIGFycmF5IG9mIGJ1ZmZlcnMuCgoyMDExLTAzLTMxIDEwOjUzOjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIGdzdGFiaTogQWRkIHNvbWUgbmV3IHN0cnVjdHVyZXMgZm9yIHg4Ni02NAoKMjAxMS0wMy0zMSAxMDo0Njo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIGxpYnNhYmk6IEFkZCBsb3RzIG9mIG5ldyBzdHJ1Y3R1cmVzIGZvciB4ODYtNjQKCjIwMTEtMDMtMzEgMTA6MzE6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiB1cGRhdGUgcG9ydGluZyBkb2MKCjIwMTEtMDMtMzAgMjA6MDU6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IGZpeCBmb3IgQVBJIGNoYW5nZQoKMjAxMS0wMy0zMCAxOTo1ODo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEtZmRvCgkgIENvbmZsaWN0czoKCSAgZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeQoJICBnc3QvZ3N0ZWxlbWVudC5jCgoyMDExLTAzLTMwIDE5OjAxOjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZXRhLmM6CgkgIGRvY3M6IHVwZGF0ZSBkb2NzCgoyMDExLTAzLTMwIDE4OjQ1OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkb2NzOiB1cGRhdGUgZG9jdW1lbnRhdGlvbgoKMjAxMS0wMy0zMCAxNjo0Nzo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBtb3JlIEFQSSB0d2Vha3MKCSAgX3RyaW0gLT4gX3Jlc2l6ZQoJICBfY3JlYXRlX3N1YiAtPiBjb3B5X3JlZ2lvbgoKMjAxMS0wMy0zMCAxNToyOTozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJsaXN0LnR4dDoKCSAgZGVzaWduOiB1cGRhdGUgZGVzaWduIGRvY3MKCjIwMTEtMDMtMzAgMTM6MDQ6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1ldGEudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGRlc2lnbjogdXBkYXRlIGRvY3MKCjIwMTEtMDMtMzAgMTA6NDg6NDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogTWFrZSBhc3NpZ25tZW50IG9mIHF1ZXVlIElEcyBhbmQgcGFkIG5hbWVzIHRocmVhZHNhZmUKCSAgQWxzbyBhZGQgYSB0ZXN0IGZvciBuYW1pbmcgcGFkcyBieSB0aGUgY2FsbGVyIGFuZCByZXR1cm4gTlVMTAoJICB3aGVuIHJlcXVlc3RpbmcgYW4gYWxyZWFkeSBleGlzdGluZyBwYWQuCgoyMDExLTAzLTI5IDIzOjU4OjQzICswMjAwICBBbmRyZWFzIEZyaXNjaCA8ZnJheGluYXNAb3BlbmRyZWFtYm94Lm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBTZXQgdGhlIHNpbmdsZSBxdWV1ZSBJRCB0byB0aGUgSUQgb2YgdGhlIHJlcXVlc3RlZCBwYWQgaWYgb25lIHdhcyBnaXZlbiBieSB0aGUgY2FsbGVyCgoyMDExLTAzLTI5IDE5OjE3OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVtb3J5OiBmdXJ0aGVyIG1lbW9yeSB0d2Vha2luZwoJICBBbGxvdyBmb3IgYXV0b21hdGljIG1lcmdpbmcgb2YgbWVtb3J5IGJsb2NrIGluIHRoZSBfbWFwIGZ1bmN0aW9uIGFuZCBhdXRvbWF0aWMKCSAgZnJlZWluZyBvZiB0aGUgdGVtcG9yYXJ5IG1lbW9yeS4KCSAgUmVtb3ZlIHNvbWUgdW5uZWVkZWQgZnVuY3Rpb25zLgoJICBBZGQgcG9zc2liaWxpdHkgdG8gZm9yY2Ugd3JpdGFibGUgc3Bhbm5lZCBtZW1vcnkuCgoyMDExLTAzLTI5IDE3OjE3OjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGltcGxlbWVudCBDT1BZX01FUkdFCgoyMDExLTAzLTI5IDE2OjUyOjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogY2xlYW4gdXAgX3NwYW4gYW5kIGFkZCBtb3JlIGdfcmV0dXJuX2lmLi4KCjIwMTEtMDMtMjkgMTY6MjI6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogRml4IHNhbml0eSBjaGVja3MgZm9yIHJlcXVlc3QgcGFkIHRlbXBsYXRlcyB3aXRob3V0ICUKCjIwMTEtMDMtMjkgMTM6NTE6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBvcHRpbWl6ZSBtZW1vcnkgaGFuZGxpbmcKCjIwMTEtMDMtMjkgMTE6NTc6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogQWRkIHNvbWUgbW9yZSBzYW5pdHkgY2hlY2tzIHRvIHRoZSBwYWQgbmFtZSBjaGVja2luZyBvZiByZXF1ZXN0IHBhZHMgaW4gYWxsIGNhc2VzCgkgIEVzcGVjaWFsbHkgY2hlY2sgaWYgYSBwYWQgd2l0aCB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMuCgoyMDExLTAzLTI5IDExOjUyOjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IENoZWNrICV1IHRvbyB3aGVuIHRyeWluZyB0byBmaW5kIGEgcGFkIHRlbXBsYXRlIGZvciBhIHJlcXVlc3QgcGFkCgoyMDExLTAzLTI5IDExOjMxOjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogbW92ZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIGluIHByaXZhdGUgc3RydWN0CgoyMDExLTAzLTI4IDIxOjAxOjEzICswMjAwICBGcmF4aW5hcyA8YW5kcmVhcy5mcmlzY2hAbXVsdGltZWRpYS1sYWJzLmRlPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEZpeCBhcmJpdHJhcnkgc2luayArIHNvdXJjZSBwYWQgbmFtaW5nCgkgIFVzZSB0aGUgc3RyaW5nIHByb3ZpZGVkIGJ5IHRoZSBjYWxsZXIgZm9yIHRoZSBzaW5rcGFkIG5hbWUKCSAgaWYgcG9zc2libGUuIE5vdGUgdGhhdCBhbGwgc2FuaXR5IGNoZWNraW5nIGZvciB0aGlzIG5hbWUKCSAgaXMgYWxyZWFkeSBkb25lIGluIEdzdEVsZW1lbnQuCgkgIEZpeGVzIEJ1ZyAjNjQ1OTMxCgoyMDExLTAzLTI5IDExOjE4OjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogQWRkIHNvbWUgbW9yZSBkb2N1bWVudGF0aW9uIGFib3V0IHRoZSBiZWhhdmlvdXIgb2YgZnVubmVsCgoyMDExLTAzLTI5IDExOjA4OjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogU2VuZCBhIG5ld3NlZ21lbnQgZXZlbnQgYWZ0ZXIgZmx1c2gtc3RvcAoKMjAxMS0wMy0yOSAxMTowNzo0OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IFNvbWUgcmFuZG9tIGNsZWFudXAKCjIwMTEtMDMtMjkgMTA6NTY6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBVc2UgYSBHc3RQYWQgc3ViY2xhc3MgZm9yIHRoZSBzaW5rcGFkcyBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBwYWQncyBlbGVtZW50IHByaXZhdGUgZGF0YQoKMjAxMS0wMy0yOSAxMDo0MjozMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXN0YXRpY2VsZW1lbnRzLnhtbDoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkgIGZ1bm5lbDogSW50ZWdyYXRlIGludG8gdGhlIGJ1aWxkIHN5c3RlbSBhbmQgcmVuYW1lIHRoZSB0eXBlcwoKMjAxMS0wMy0yOSAxMDozOTo0MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSAgZnVubmVsOiBJbXBvcnQgZnVubmVsIGVsZW1lbnQgZnJvbSBmYXJzaWdodDIKCjIwMTEtMDMtMjkgMTE6MDc6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IG1vcmUgYnVmZmVyIHVwZGF0ZXMKCjIwMTEtMDMtMjggMjA6MjA6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogZml4IGRlZnMKCjIwMTEtMDMtMjggMjA6MTE6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExLWZkbwoJICBDb25mbGljdHM6CgkgIGdzdC9nc3QuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmMKCjIwMTEtMDMtMjggMTk6MTk6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJ1ZmZlcjogZml4IHN1YmJ1ZmZlcnMKCjIwMTEtMDMtMjggMTY6NDA6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogaW1wbGVtZXQgdHJpbSBhbmQgc2V0X3NpemUKCjIwMTEtMDMtMjggMTU6NTI6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IG1vcmUgZml4ZXMKCjIwMTEtMDMtMjggMTA6Mjg6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBidWZmZXI6IGFkZCBtb3JlIG1ldGhvZHMKCjIwMTEtMDMtMjQgMjE6MjE6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogYWRkIGNsYXNzIGluaXQKCjIwMTEtMDMtMjQgMjE6MTg6NTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBmaXggcmVtYWluaW5nIHVuaXQgdGVzdHMKCjIwMTEtMDMtMjQgMjA6MDk6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBmaXggdW5pdCB0ZXN0CgoyMDExLTAzLTI0IDEzOjAxOjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBtZW1vcnk6IHJlbW92ZSBtZW1vcnkgbWV0YWRhdGEgYWdhaW4KCjIwMTEtMDMtMjQgMTE6NDk6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIG1lbW9yeTogbW9yZSBmaXhlcwoJICBBdXRvbWF0aWNhbGx5IG1ha2UgdGhlIG1lbW9yeSBvZiBhIGJ1ZmZlciB3cml0YWJsZSB3aGVuIHRoZSBidWZmZXIgaXMgd3JpdGFibGUKCSAgYW5kIHRoZSBtZW1vcnkgaXMgYXNrZWQgdG8gbWFwcGVkIFdSSVRFLgoJICBBZGQgZG9jcwoKMjAxMS0wMy0yMyAyMDo1MjoyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iaXRyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHlwZWZpbmRoZWxwZXIuYzoKCSAgbWVtb3J5OiBtb3JlIHdvcmsgb24gaW1wbGVtZW50aW5nIGJ1ZmZlciBtZW1vcnkKCjIwMTEtMDMtMjIgMjA6NTE6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iaXRyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkgIG1lbW9yeTogbW9yZSB3b3JrIG9uIHBvcnRpbmcgdGhlIHVuaXQgdGVzdHMKCjIwMTEtMDMtMjEgMTk6MTU6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svbGlicy90eXBlZmluZGhlbHBlci5jOgoJICB0ZXN0czogbWFrZSBzb21lIHRlc3RzIGNvbXBpbGUKCjIwMTEtMDMtMjEgMTg6MTM6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkqIHRlc3RzL2V4YW1wbGVzL2FkYXB0ZXIvYWRhcHRlcl90ZXN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgbWVtb3J5OiBwb3J0IGNvZGUgdG8gbmV3IGJ1ZmZlciBkYXRhIEFQSQoKMjAxMS0wMy0yMSAxMzowNzo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBtZW1vcnk6IG1vcmUgZml4ZXMKCSAgRml4IHNwYW4gYW5kIGlzX3NwYW4KCSAgSW1wbGVtZW50IGJ1ZmZlciBtZW1vcnkKCjIwMTEtMDMtMjEgMDk6NTE6NTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBXSVAgdXNlIG1lbW9yeSBpbiBidWZmZXIKCjIwMTEtMDMtMjAgMTE6NDI6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBtb3JlIGltcHJvdmVtZW50cwoKMjAxMS0wMy0xOSAxMDo0NTozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IG1vcmUgbWVtb3J5IGltcHJvdmVtZW50cwoKMjAxMS0wMy0xOCAyMTo0NTozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGFkZCBtb3JlIG1lbW9yeSBvcGVyYXRpb25zCgoyMDExLTAzLTE4IDE5OjI4OjE3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGFkZCBtZW1vcnkgaW1wbGVtZW50YXRpb24KCjIwMTEtMDMtMTggMTg6MzU6NDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogYWRkIEFQSSBmb3IgaGFuZGxpbmcgbWVtb3J5IGJsb2NrcwoJICBBZGRzIHNvbWUgQVBJIHRvIGhhbmRsZSBtZW1vcnkgYmxvY2tzLgoKMjAxMS0wMy0wOCAxODoxODoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmg6CgkgIG1ldGE6IGZpeCBkb2NzCgoyMDExLTAzLTI4IDIxOjIxOjAwICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IFJldHVybiBGQUxTRSBpZiB3ZSBkb24ndCBoYW5kbGUgYW4gZXZlbnQKCSAgYmFzZXNyYydzIGRlZmF1bHQgZXZlbnQgaGFuZGxlciByZXR1cm5zIFRSVUUgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZQoJICBldmVudCBpcyBoYW5kbGVkIG9yIG5vdC4gVGhpcyBmaXhlcyB0aGUgaGFuZGxlciB0byBjb25mb3JtIHdpdGggdGhlCgkgIGV4cGVjdGVkIGJlaGF2aW91ciAod2hpY2ggaXMgdG8gb25seSByZXR1cm4gVFJVRSB3aGVuIHRoZSBldmVudCBoYXMKCSAgYWN0dWFsbHkgYmVubiBoYW5kbGVkKS4gZ3N0X2Jpbl9kb19sYXRlbmN5X2Z1bmMoKSBkZXBlbmRlZCBvbiB0aGlzCgkgIChpbmNvcnJlY3QpIGJlaGF2aW91ciwgYW5kIGlzIG5vdyBtb2RpZmllZCBhcyB3ZWxsLgoJICAoUmVtYWluaW5nIDEtbGluZXIgY2hhbmdlIGluIGdzdGJhc2VzcmMuYyBpcyB0byBrZWVwIGdzdC1pbmRlbnQgaGFwcHkpCgoyMDExLTAzLTI1IDIyOjA4OjQxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMTkzYjcxNyB0byAxY2NiZTA5CgoyMDExLTAzLTI1IDE0OjU1OjM5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGI3N2UyYmYgdG8gMTkzYjcxNwoKMjAxMS0wMy0yNSAwOToyNzo1OCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGQ4ODE0YjYgdG8gYjc3ZTJiZgoKMjAxMS0wMy0yNSAwODo1OTozNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDZhYWEyODYgdG8gZDg4MTRiNgoKMjAxMS0wMy0yNCAxODo0ODo0MSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA2YWVjNmI5IHRvIDZhYWEyODYKCjIwMTEtMDMtMjQgMTg6Mjc6MDkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgZG9jczogZml4IHNvbWUgZ3RrLWRvYyB3YXJuaW5ncwoJICBEb2N1bWVudCB0aGUgcXVldWUgbGVha3kgZW51bXMuCgoyMDExLTAzLTI0IDE4OjI1OjA4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHNldCBtYXggdmFsdWUgZm9yIHRvIHRoZSBtYXRjaGluZyBvbmUgZm9yIHRoZSBkYXRhdHlwZQoJICBUaGUgcHJvcGVydHkgaXMgZ3VpbnQ2NCwgc28gdXNlIEdfTUFYVUlOVDY0IGluc3RlYWQgb2YgR19NQVhVSU5ULgoKMjAxMS0wMy0yNCAxMzoyMjo1NyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBkb2NzOiBjbGVhbnVwIGFuZCB4cmVmIGZpeGVzCgkgIERlYWwgd2l0aCB0aGUgaGludHMgZnJvbSBndGstZG9jIGFuZCBmaXggdGhlIHhyZWZzLiBBcHBseSBhIHdvcmstYXJvdW5kIGZvciAoKQoJICBwcmVjZWRlbmNlIG92ZXIgQC4gTW92ZSAiTVQgU2FmZSIgdGV4dCB0byBkb2MgYm9keSBpbiBtYW55IHBsYWNlcy4gVHJpbSBlb2wKCSAgd2hpdGVzcGFjZXMuCgoyMDExLTAzLTIzIDE2OjQyOjI0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBwcmludCBmbG93IHJldHVybiBhcyBhIG5hbWUgaW4gZGVidWcgbG9nCgoyMDExLTAzLTIzIDE3OjEzOjU4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgZG9jczogZG8geHJlZnMgZm9yIG5vbiBpbnN0YWxsZWQgYm9va3MgdG9vCgkgIEdldCB0aGUgeHJlZnMgZnJvbSB0aGUgYnVpbGRkaXIgZm9yIHRoZSBib29rcyBpbiB0aGUgc2FtZSBwYWNrYWdlcy4gVGhpcyBmaXhlcwoJICB0aGUgY3Jvc3MgcmVmZXJlbmNlcyBpZiBvbmUgZG9lcyBub3QgaGF2ZSB0aGUgZG9jcyBhbHJlYWR5IGluc3RhbGxlZC4KCjIwMTAtMDQtMTkgMjA6Mzk6NTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogS2VlcCBkb3duc3RyZWFtIGNhcHMgb3JkZXIgd2hlbiBmaXhhdGluZwoJICBUaGlzIGFsbG93cyB1c2UgdG8gdXNlIHRoZSBmaXJzdCBpbnRlcnNlY3RpbmcgZm9ybWF0IHByZWZlcmVkIGJ5IGRvd25zdHJlYW0uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTcwNDUKCjIwMTAtMDQtMTkgMjA6NDA6NTYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogUmV0YWluIGNhcHMgb3JkZXIgd2hlbiBnZXR0aW5nIGNhcHMKCSAgSWYgdGhlIGVsZW1lbnQgZ2F2ZSB1cyBjYXBzIGluIGEgc3BlY2lmaWMgb3JkZXIsIGxldCdzIHJldGFpbiB0aGF0CgkgIGJ5IGludGVyc2VjdGluZyBhZ2FpbnN0IHRoZSB0ZW1wbGF0ZSBidXQgcmV0YWluaW5nIHRoZSBvcmRlciBnaXZlbgoJICBieSB0aGUgZWxlbWVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxNzA0NQoKMjAxMS0wMi0yNSAxMDoyNToyNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICB0ZXN0czogY2FwczogVGVzdHMgZm9yIHRoZSBuZXcgY2FwcyBpbnRlcnNlY3Rpb24gbW9kZQoJICBBZGRzIHRlc3QgY2FzZXMgZm9yIHRoZSBjYXBzICdmaXJzdCcgaW50ZXJzZWN0IG1vZGUKCSAgQWRkcyBhbm90aGVyIHRlc3QgZm9yIHRoZSAnemlnemFnJyBtb2RlCgkgIEZpeGVzICM2MTcwNDUKCjIwMTEtMDItMjUgMDg6NTA6MTIgLTAzMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RjYXBzOiBuZXcgQVBJIDogZ3N0X2NhcHNfaW50ZXJzZWN0X2Z1bGwKCSAgSnVzdCBsaWtlIGdzdF9jYXBzX2ludGVyc2VjdCwgYnV0IGFkZHMgYSBuZXcgcGFyYW1ldGVyICdtb2RlJwoJICB0aGF0IGFsbG93cyBzZWxlY3RpbmcgdGhlIGludGVyc2VjdGlvbiBhbGdvcml0aG0gdG8gdXNlLgoJICBDdXJyZW50bHkgd2UgaGF2ZSBHU1RfQ0FQU19JTlRFUlNFQ1RfTU9ERV9aSUdfWkFHIChkZWZhdWx0KSBhbmQKCSAgR1NUX0NBUFNfSU5URVJTRUNUX01PREVfRklSU1QuCgkgIEFQSTogZ3N0X2NhcHNfaW50ZXJzZWN0X2Z1bGwKCSAgQVBJOiBHc3RDYXBzSW50ZXJzZWN0TW9kZQoJICBBUEk6IEdTVF9DQVBTX0lOVEVSU0VDVF9NT0RFX1pJR19aQUcKCSAgQVBJOiBHU1RfQ0FQU19JTlRFUlNFQ1RfTU9ERV9GSVJTVAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE3MDQ1CgoyMDExLTAzLTEyIDE3OjAxOjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bGlic2NwcC5jYzoKCSAgdGVzdHM6IGFkZCBsaWJzY3BwIHVuaXQgdGVzdCB0byBtYWtlIHN1cmUgZysrIGxpa2VzIG91ciBsaWJyYXJ5IGhlYWRlcnMKCjIwMTEtMDMtMTIgMTY6NTg6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBieXRlcmVhZGVyLCBieXRld3JpdGVyOiBmaXggdXAgaW5saW5lIGZ1bmN0aW9ucyB0byBtYWtlIGcrKyBoYXBweQoJICBnc3RieXRlcmVhZGVyLmg6IEluIGZ1bmN0aW9uIOKAmGd1aW50OCogZ3N0X2J5dGVfcmVhZGVyX2R1cF9kYXRhX3VuY2hlY2tlZChHc3RCeXRlUmVhZGVyKiwgZ3VpbnQp4oCZOgoJICBnc3RieXRlcmVhZGVyLmg6MjQ5Ojc1OiBlcnJvcjogaW52YWxpZCBjb252ZXJzaW9uIGZyb20g4oCYdm9pZCrigJkgdG8g4oCYZ3VpbnQ4KuKAmQoJICBnc3RieXRld3JpdGVyLmg6IEluIGZ1bmN0aW9uIOKAmGdib29sZWFuIF9nc3RfYnl0ZV93cml0ZXJfZW5zdXJlX2ZyZWVfc3BhY2VfaW5saW5lKEdzdEJ5dGVXcml0ZXIqLCBndWludCnigJk6CgkgIGdzdGJ5dGV3cml0ZXIuaDoxOTY6NzU6IGVycm9yOiBpbnZhbGlkIGNvbnZlcnNpb24gZnJvbSDigJh2b2lkKuKAmSB0byDigJhndWludDgq4oCZCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU1OTUKCjIwMTEtMDMtMjIgMTY6MjY6NTYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZ3N0ZWxlbWVudDogRml4IHR5cG8gaW4gdGhlIGRvY3MKCSAgR1NUX0VMRU1FTlRfSU5GTyB3aWxsIHBvc3QgYSBJTkZPIG1lc3NhZ2UsIG5vdCBhIFdBUk5JTkcKCjIwMTEtMDMtMTggMDg6MjI6MjMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICB0YWdzZXR0ZXI6IFJlbW92aW5nIHVudXNlZCBkZWJ1ZyBjYXRlZ29yeQoJICB0YWdzZXR0ZXIncyBkZWJ1ZyBjYXRlZ29yeSBoYWQgYSB0eXBvIGFuZCB3YXMgdW51c2VkLiBSZW1vdmluZyBpdC4KCjIwMTEtMDMtMTggMTk6MzQ6NTcgKzAxMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNAZGViZXRoZW5jb3VydC5jb20+CgoJKiBhdXRvZ2VuLnNoOgoJICBhdXRvZ2VuOiB3aW5nbyBzaWduZWQgY29tbWVudAoKMjAxMS0wMy0yMiAxMTowNDoyMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRG9uJ3QgbGVhayBvYmplY3RzIHdoZW4gZmx1c2hpbmcgYWZ0ZXIgZGVxdWV1ZWluZyBhbmQgYmVmb3JlIHB1c2hpbmcgdGhlIG9iamVjdAoKMjAxMS0wMy0yMSAxNzo1NDoxMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogUmVhbGx5IHJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCjIwMTEtMDMtMjEgMTc6NTI6MTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBJbmNyZW1lbnQgdW5pcXVlIGl0ZW0gY291bnRlciB3aXRoIGF0b21pYyBvcGVyYXRpb25zCgkgIEJlZm9yZSBpdCB3YXMgb25seSBwcm90ZWN0ZWQgYnkgdGhlIHN0cmVhbSBsb2NrIGJ1dCBldmVyeSBwYWQKCSAgaGFzIGl0cyBvd24gc3RyZWFtIGxvY2ssIG1ha2luZyB0aGUgcHJvdGVjdGlvbiByYXRoZXIgdXNlbGVzcy4KCjIwMTEtMDMtMjEgMTc6MTc6MjIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFVuYmxvY2sgYWxsIHdhaXRpbmcgcGFkcyB3aGVuIHNodXR0aW5nIGRvd24KCjIwMTEtMDMtMjEgMTI6Mzk6MzQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCjIwMTEtMDMtMjEgMTY6Mjg6MzcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEV4aXQgbG9vcCBmdW5jdGlvbiBpZiB0aGUgcGFkIGlzIGZsdXNoaW5nCgkgIEZpeGVzIHBvc3NpYmxlIGRlYWRsb2NrcyB3aGVuIGZsdXNoaW5nIGFuIHVubGlua2VkIHBhZCB0aGF0IHdhaXRzCgkgIGZvciBvdGhlciBwYWRzIHRvIGFkdmFuY2UuCgoyMDExLTAzLTE5IDE3OjA2OjEyIC0wNTAwICBKYXNvbiBELiBDbGludG9uIDxtZUBqYXNvbmNsaW50b24uY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBidWlsZDogZml4IGJ1aWxkIHdpdGggLVdlcnJvciB3aXRoIEdDQyA0LjYuMAoJICBUaGlzIHRvdWNoZXMgdGhyZWUgYXJlYXMgb2YgY29kZSwgcmVtb3ZlcyB1bnVzZWQgdmFyaWFibGVzIGFuZCBkaXNjYXJkcwoJICByZXR1cm4gdmFsdWVzIGZyb20gdHdvIGZ1bmN0aW9ucyB3aXRoICh2b2lkKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTI2NwoKMjAxMS0wMy0xOSAxMDozOToyOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IEFkZCBzaW5jZSBtYXJrZXIgdG8gR1NUX0VWRU5UX1NJTktfTUVTU0FHRQoKMjAxMS0wMy0xOSAwODo1NTo1NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogU3RvcCB3YWl0aW5nIGZvciBhIHBhZCBzd2l0Y2ggd2hlbiB0aGUgcGFkIGlzIGZsdXNoaW5nCgoyMDExLTAzLTE5IDA4OjUwOjA2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBNb3ZlIGxvY2tpbmcgYW5kIHNpZ25hbGxpbmcgbWFjcm9zIGZyb20gdGhlIGhlYWRlciB0byB0aGUgc291cmNlIGZpbGUKCjIwMTEtMDMtMTcgMjM6NDI6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suaDoKCSAgdGFzazogZml4IEdTVF9UQVNLX0JST0FEQ0FTVAoJICBTdXJwcmlzaW5nbHkgZW5vdWdoLCB5b3UgY2FuJ3QgImJyZWFkY2FzdCIgb24gYSBHQ29uZC4KCSAgU3BvdHRlZCBieSBSdW5lIFPDpnRyZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTAyMgoKMjAxMS0wMy0xNyAxNDoyMToxNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogSG9sZCB0aGUgc2VsZWN0b3IgbG9jayB3aGlsZSByZWFkaW5nIHByb3BlcnRpZXMgb2YgdGhlIGFjdGl2ZSBwYWQKCjIwMTEtMDMtMTcgMTQ6MTA6NDkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IE1ha2Ugc3VyZSB0aGF0IEVPUyBpcyBhbHdheXMgc2VudCBkb3duc3RyZWFtIGZvciB0aGUgYWN0aXZlIHBhZAoJICBJdCBjYW4gaGFwcGVuIHRoYXQgdGhlIGN1cnJlbnRseSBhY3RpdmUgcGFkIGdvdCB0aGUgRU9TIGV2ZW50CgkgIGJlZm9yZSBpdCB3YXMgYWN0aXZhdGVkIGFuZCB0aGUgcHJldmlvdXNseSBhY3RpdmUgcGFkIGdvdCB0aGUKCSAgRU9TIGV2ZW50IGFmdGVyIGl0IHdhcyBkZWFjdGl2YXRlZC4gSW4gdGhhdCBjYXNlIHdlIGhhdmUgdG8KCSAgc2VuZCB0aGUgRU9TIGV2ZW50IGZyb20gYW4gaW5hY3RpdmUgcGFkIGRvd25zdHJlYW0uCgoyMDExLTAzLTE2IDE4OjE5OjExICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBSZXR1cm4gR1NUX0ZMT1dfT0sgdW50aWwgdGhlIHNlbGVjdGVkIHBhZCBwdXNoZWQgc29tZXRoaW5nIGRvd25zdHJlYW0KCSAgVGhpcyBtYWtlcyBzdXJlIHRoYXQgZHVyaW5nIHN3aXRjaGVzIGF0IG5vIHBvaW50IGluIHRpbWUgYWxsIHBhZHMKCSAgaGF2ZSByZXR1cm5lZCBub3QtbGlua2VkLCB3aGljaCBjYW4gaGFwcGVuIHdoZW4gcGxheWluZyBhbiBhdWRpby1vbmx5CgkgIGZpbGUgd2l0aCBwbGF5YmluMiBhbmQgc3dpdGNoaW5nIGJldHdlZW4gdGhlIHN0cmVhbXMgZm9yIGV4YW1wbGUuCgkgIEZpeGVzIGJ1ZyAjNjQ0OTM1LgoKMjAxMS0wMy0xNyAxMDo1Mzo0OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1dGlsczogUmVtb3ZlIGRlcHJlY2F0ZWQgZ3N0X2VsZW1lbnRfZmFjdG9yeV9jYW5fe3Npbmssc3JjfV9jYXBzKCkKCjIwMTEtMDMtMTcgMTA6NTA6NDMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RidWZmZXJsaXN0LmMKCjIwMTEtMDMtMTYgMTI6MDE6MjEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IERvY3VtZW50IHRoYXQgcGFkIGJsb2NrcyBvbmx5IG1ha2Ugc2Vuc2UgZm9yIHNpbmsgcGFkcyBpbiBwdWxsIG1vZGUgYW5kIHNyYyBwYWRzIGluIHB1c2ggbW9kZQoJICBTZWUgYnVnICM2NDQ5MDcuCgoyMDExLTAzLTE2IDExOjUzOjUzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogVGhlIGludGVybmFsbHkgbGlua2VkIHBhZCBvZiB0aGUgcHJveHlwYWQgaXMgdGhlIGdob3N0cGFkCgkgIFByZXZpb3VzbHkgd2Ugd2VyZSByZXR1cm5pbmcgdGhlIHBlZXJwYWQsIHdoaWNoIGlzIHRoZSB0YXJnZXQKCSAgb2YgdGhlIGdob3N0cGFkLgoKMjAxMS0wMi0yNSAxNjoyMDo0OSArMDEwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnQGF4aXMuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogVXNlIGEgR1F1ZXVlIGluc3RlYWQgb2YgYSBHTGlzdAoJICBBZGRpbmcgYSBidWZmZXIgdG8gdGhlIGVuZCBvZiBhIEdzdEJ1ZmZlckxpc3QgaXMgc3VwcG9zZWQgdG8gYmUgYSBmYXN0CgkgIG9wZXJhdGlvbiwgYnV0IGl0IHdhcyBub3Qgc2luY2UgdGhlIGl0ZXJhdG9yIGRvZXMgbm90IGFkdmFuY2UgaXRzCgkgIG5leHRwb2ludGVyIHdoZW4gYWRkaW5nIGJ1ZmZlcnMgYW5kIEdMaXN0IGRvZXMgbm90IGhhdmUgYSB0YWlsIHBvaW50ZXIuCgkgIFVzaW5nIGEgR1F1ZXVlIHRvIHN0b3JlIHRoZSBidWZmZXJzIG1ha2VzIGl0IGVhc2llciB0byBhZGQgYnVmZmVycyB0bwoJICB0aGUgZW5kIG9mIHRoZSBsaXN0IGFuZCB0aGlzIG9wZXJhdGlvbiB3aWxsIG5vdyBiZSBtdWNoIG1vcmUgZWZmaWNpZW50LgoJICBBZGRpbmcgYW4gZW50aXJlIEdMaXN0IG9mIGJ1ZmZlcnMgdXNpbmcKCSAgZ3N0X2J1ZmZlcl9saXN0X2l0ZXJhdG9yX2FkZF9saXN0KCkgd2lsbCBob3dldmVyIGhhdmUgdG8gaXRlcmF0ZSBvdmVyCgkgIHRoZSBsaXN0IGJlaW5nIGFkZGVkIHRvIGJlIGFibGUgdG8gdXBkYXRlIHRoZSB0YWlsIHBvaW50ZXIgaW4gdGhlCgkgIEdRdWV1ZS4KCjIwMTEtMDMtMTAgMTc6NDg6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1dGlsczogZml4IEFCSSBicmVhayB3aGVuIGNvbXBpbGluZyBnc3RyZWFtZXIgd2l0aCAtREdTVF9ESVNBQkxFX0RFUFJFQ0FURUQKCSAgR1NUX0RJU0FCTEVfREVQUkVDQVRFRCBzaG91bGQgb25seSBhZmZlY3QgdmlzaWJpbGl0eSBvZiBkZWNsYXJhdGlvbnMgaW4gaGVhZGVycywKCSAgbm90IGFjdHVhbGx5IHJlbW92ZSBzeW1ib2xzLiBTZWUgR2l0RGV2ZWxvcGVyR3VpZGVsaW5lcyBhbmQgRGVwcmVjYXRpbmdBUEkKCSAgcGFnZXMgaW4gd2lraS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTQwMjE0MQoKMjAxMS0wMy0xMCAxNjo0NjowNCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSAuZGVmIGZpbGUgZm9yIEFQSSBhZGRpdGlvbgoKMjAxMS0wMy0xMCAxMDoyNTowNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDMtMDkgMTY6MTU6MzMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgcHdnOiBmaXggZWxlbWVudCBuYW1lICJ2aWRlb2Ryb3AiIHRvICJ2aWRlb3JhdGUiCgoyMDExLTAzLTA4IDEyOjExOjA4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgdGVzdDogYWRkIHRlc3RzIGZvciBuZXcgZWxlbWVudF9mYWN0b3J5IGFwaS4KCjIwMTAtMDYtMjMgMjI6MDA6MDQgKzAyMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3R1dGlsczogcmVwbGFjZSBnc3RfZWxlbWVudF9mYWN0b3J5X2Nhbl97c2luayxzcmN9X2NhcHMKCSAgQWRkIG5ldyBmdW5jdGlvbnMgdG8gY2xhcmlmeSBob3cgdGhlIGNhcHMgYXJlIGNvbXBhcmVkIHRvIHRoZSB0ZW1wbGF0ZSBjYXBzIG9mCgkgIHRoZSBlbGVtZW50IGZhY3RvcnkuIEltcHJvdmUgdGhlIGRvY3MgdG8gcG9pbnQgb3V0IHRoZSBkaWZmZXJlbmNlLgoJICBEZXByZWNhdGU6IGdzdF9lbGVtZW50X2ZhY3RvcnlfY2FuX3tzcmN8c2lua31fY2FwcwoJICBBUEk6IGFkZCBnc3RfZWxlbWVudF9mYWN0b3J5X2Nhbl97c3JjfHNpbmt9X3thbnl8YWxsfV9jYXBwcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAyMTQxCgoyMDExLTAzLTA3IDIzOjEzOjU2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICB0ZXN0czogYWRkIGEgdW5pdCB0ZXN0IGZvciBnc3RfY2Fwc19uZXdfc2ltcGxlCgkgIEFkZCBhIHRlc3QgZm9yIHRoZSBjcmFzaCBpbiBidWcgIzY0MjI3MS4KCjIwMTEtMDMtMDggMTg6MDU6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1ldGEudHh0OgoJICBkb2NzOiByZW5hbWUgZHJhZnQgdG8gb2ZmaWNpYWwgZG9jCgoyMDExLTAzLTA4IDE2OjU4OjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJICBtZXRhOiBpbXBsZW1lbnQgdHJhbnNmb3JtIGZ1bmN0aW9uCgkgIFJlcGxhY2Ugc3ViYnVmZmVyIGFuZCBjb3B5IHZtZXRob2RzIGJ5IGEgbW9yZSBnZW5lcmljIHRyYW5zZm9ybSBmdW5jdGlvbiB0aGF0CgkgIGNhbiB0aGVuIGJlIHBhcmFtZXRyaXNlZCBieSB0cmFuc2Zvcm0gc3BlY2lmaWMgZGF0YS4gVGhpcyBzaG91bGQgYWxsb3cgdXMgdG8KCSAgaW1wbGVtZW50IG1ha2Utd3JpdGFibGUgYW5kIG1vcmUgZnV0dXJlIHRyYW5zZm9ybSBmdW5jdGlvbnMuCgoyMDExLTAzLTA4IDE3OjA2OjMwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wMy0wOCAxMTo1NToyOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIHRlc3RzOiBhZGQgdGVzdCB0byBjcmVhdGUgYSBmYWN0b3J5CgoyMDExLTAzLTA4IDEwOjM2OjMwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICB0ZXN0czogc3RhcnQgYSBuZXcgdGVzdCBzdWl0ZSBmb3IgZWxlbWVudCBmYWN0b3JpZXMKCSAgTW92ZSBvbmUgdGVzdCBmcm9tIGdzdGVsZW1lbnQgc3VpdGUuCgoyMDExLTAzLTA4IDExOjM0OjE5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgcGFkdGVtcGxhdGU6IGFkZCBtaXNzaW5nIDsgaW4gZXhhbXBsZSAoYW5kIHRyaW0gd2hpdGVzcGFjZSkKCjIwMTEtMDMtMDggMDk6NTg6NTUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBnc3Rfc3RydWN0dXJlX2VtcHR5X25ldygpIGRvZXMgYmV0dGVyIGVycm9yIGNoZWNraW5nCgkgIE5vIG5lZWQgdG8gY2hlY2sgZm9yIG1lZGlhX3R5cGUhPU5VTEwgYXMgdGhlIGZ1bmN0aW9uIHdlIGNhbGwgdGhhdCBhY3R1YWwgY3JlYXRlCgkgIHRoZSBzdHJ1Y3R1cmUgZG9lcyBhIGZ1bGwgY2hlY2sgYW55d2F5LgoKMjAxMS0wMy0wOCAxMDowNjoyMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBjYXBzLHN0cnVjdHVyZTogdHJpbSB0cmFpbGluZyB3aGl0ZXNwYWNlCgoyMDExLTAzLTA0IDA4OjI4OjI1ICsxMDAwICBKb25hdGhhbiBNYXR0aGV3IDxqb25hdGhhbkBkMTRuLm9yZz4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGRvbid0IGNyZWF0ZSBicm9rZW4gY2FwcyBmb3IgaW52YWxpZCBtZWRpYSB0eXBlcwoJICBDaGVjayBpZiBzdHJ1Y3R1cmUgaGFzIGJlZW4gY3JlYXRlZCBiZWZvcmUgYXBwZW5kaW5nIGl0IHRvIHRoZSBjYXBzLiBGcmVlIHRoZQoJICBjYXBzIGluIHRoZSBjYXNlIG9mIGFuIGVycm9yIHRvIG5vdCBjb25jZWFsIGl0IGJlIHJldHVybmluZyBlbXB0eSBjYXBzLgoJICBGaXhlcyAjNjQyMjcxCgoyMDExLTAzLTA3IDE2OjIxOjQ3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzoKCSAgZXhhbXBsZXM6IHVwZGF0ZSBoZWxsbyB3b3JsZCBleGFtcGxlCgkgIE91ciBoZWxsb3dvcmxkIGV4YW1wbGUgdGhhdHcgZSByZWZlcmVuY2UgZnJvbSB0aGUgbWFudWFsIGhhcyBiZWVuIGEgYml0CgkgIGNvbXBsaWNhdGVkIHRvIHNlcnZlIGEgZmlyc3QgY29udGFjdCB3aXRoIGdzdHJlYW1lci4gU2luY2Ugd2UgaGF2ZSBhbmQKCSAgcHJvbW90ZSBwbGF5YmluMiBhcyBhIHBsYXliYWNrIGFwaSB1c2UgaXQgaGVyZS4KCSAgQmFzZWQgb24gd29yayBmcm9tIE1hdGhpYXMgSGFzc2VsbWFubiA8bWF0aGlhcy5oYXNzZWxtYW5uQGdteC5kZT4KCSAgRml4ZXMgIzQyNDE0MwoKMjAxMS0wMy0wNCAxOTowMjozMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcjIudHh0OgoJICBkb2NzOiB1cGRhdGUgbWV0YWRhdGEgZHJhZnQKCjIwMTEtMDMtMDQgMTg6MTE6MTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiByZW1vdmUgRklYTUUKCSAgTm93IHRoYXQgd2UgZG9uJ3Qgc3ViY2xhc3MgYnVmZmVycyBhbnltb3JlLCB0aGUgRklYTUUgYWJvdXQgbGltaXRlZAoJICBmdW5jdGlvbmFsaXR5IG9mIHRoZSBjb3B5IGZ1bmN0aW9uIGlzIGlycmVsZXZhbnQuCgoyMDExLTAzLTA0IDE3OjQzOjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGFkZCBmbGFnIHJlZ2lzdHJhdGlvbgoKMjAxMS0wMy0wNCAxNzoyNTowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgcGFkOiBtb3JlIHByZXJvbGwgbG9jayB0byBiYXNlc2luawoJICBNb3ZlIHRoZSBwcmVyb2xsIGxvY2sgdG8gYmFzZXNpbmsgd2hlcmUgaXQgYmVsb25ncy4KCjIwMTEtMDMtMDQgMTY6MDU6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXJwb29sLnR4dDoKCSAgZG9jczogdXBkYXRlIGJ1ZmZlcnBvb2wgZHJhZnQKCjIwMTEtMDMtMDQgMTI6MDY6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBtb3JlIGRlYnVnIGluZm8KCjIwMTEtMDMtMDMgMTg6Mzg6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBhZGQgZGVidWcKCjIwMTEtMDMtMDMgMTg6MjE6MzEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBhZGQgc29tZSBtb3JlIGRlYnVnIGluZm8KCjIwMTEtMDMtMDMgMTY6MzE6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBjYXBzIHRvIHRoZSBjb25maWcKCSAgQWRkIHRoZSBjYXBzIHRvIHRoZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgb2YgdGhlIHBvb2wuCgkgIEluaXRpYWxpemUgdGhlIHByaXZhdGUgZGF0YQoKMjAxMS0wMy0wMiAxMTo1Nzo0MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUgZGVmcwoKMjAxMS0wMy0wMiAxMTo1NzowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiByZWxlYXNlIGJ1ZmZlciB0byBwb29sIGluIGRpc3Bvc2UKCSAgVXNlIHRoZSBkaXNwb3NlIG1ldGhvZCB0byByZWxlYXNlIHRoZSBidWZmZXIgdG8gdGhlIHBvb2wgd2hlbiBpdCBpcyBjb25maWd1cmVkLgoKMjAxMS0wMi0yMiAxMjozNTo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXI6IGFkZCBwb29sIHRvIGJ1ZmZlciBzdHJ1Y3R1cmUKCSAgS2VlcCBhIHBvaW50ZXIgdG8gdGhlIGJ1ZmZlcnBvb2wuIFJlbGVhc2UgdGhlIGJ1ZmZlciB0byB0aGUgcG9vbCB3aGVuCgkgIGZpbmFsaXppbmcuIE1ha2Ugc3VyZSB0aGUgcG9vbCBzZXRzIGl0c2VsZiBhcyB0aGUgcG9vbCBtZW1iZXIgb2YgYnVmZmVycyB0aGF0IGl0CgkgIHNlbmRzIG91dC4KCjIwMTEtMDItMjIgMTI6MzU6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogYWRkIHBvb2wgZmxhZ3MgdHlwZQoKMjAxMS0wMi0yMiAxMTowNTowOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkb2NzOiB1cGRhdGUgYnVmZmVycG9vbCBkb2NzCgoyMDExLTAyLTIxIDE4OjQzOjE5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogUmVmYWN0b3Igc3RvcHBpbmcgb2YgdGhlIHBvb2wKCSAgTW92ZSBzb21lIG1ldGhvZHMgYXJvdW5kLgoJICBNYWtlIHN1cmUgd2UgY2hlY2sgZm9yIGNvbmZpZyBwYXJzaW5nIGVycm9ycy4KCSAgSW5jcmVtZW50IHRoZSBvdXRzdGFuZGluZyBidWZmZXJzIGJlZm9yZSBjYWxsaW5nIGFjcXVpcmUgc28gdGhhdCB3ZSBjYW4gYmUgc3VyZQoJICB0aGF0IHNldF9hY3RpdmUoKSBkb2Vzbid0IGZyZWUgdGhlIHBvb2wgZnJvbSB1bmRlciB1cy4KCjIwMTEtMDItMjEgMTc6MzM6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiBSZXdvcmsgYnVmZmVyIG1hbmFnZW1lbnQgYSBsaXR0bGUKCSAgQWRkIHN0YXJ0L3N0b3AgbWV0aG9kcyB0byBhbGxvdyBmb3IgYnVsayBhbGxvY2F0aW9uIG9mIGJ1ZmZlcnMuCgkgIEZyZWUgYnVmZmVycyBvbmx5IHdoZW4gYWxsIG91dHN0YW5kaW5nIGJ1ZmZlcnMgcmV0dXJuZWQuCgkgIE1ha2UgdGhpbmdzIG1vcmUgdGhyZWFkc2FmZSB3cnQgZmx1c2hpbmcgYW5kIHN0YXJ0aW5nL3N0b3BwaW5nIGJ5CgkgIGtlZXBpbmcgdHJhY2sgb2Ygc3RhcnQgYW5kIHN0b3AgbWV0aG9kIGNhbGxzLgoKMjAxMS0wMi0yMSAxMjoxODo0MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IG1lbW9yeSBtYW5hZ2VtZW50IGNsZWFudXBzCgkgIFVzZSBhIGxvY2sgdG8gcHJvdGVjdCBjb25jdXJyZWN0IGV4ZWN1dGlvbiBvZiBzZXRfY29uZmlnIGFuZCBzZXRfYWN0aXZlLgoJICBTdGFydCBmcmVlaW5nIHRoZSBidWZmZXJzIHdoZW4gZmx1c2hpbmcgYW5kIGFsbCBidWZmZXJzIGFyZSByZXR1cm5lZCB0byB0aGUKCSAgcG9vbC4KCSAgTWFrZSBhIGNvcHkgb2YgdGhlIGNvbmZpZyB0byBhdm9pZCBjcmFzaGluZyB3aXRoIGNvbmN1cnJlbnQgYWNjZXNzLgoKMjAxMS0wMi0xOCAxNjozNTo0NiArMDEwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogYWxzbyBhbGxvdyBOVUxMIHBhcmFtcyBpbiBfYWNxdWlyZQoKMjAxMS0wMi0xOCAxNjoxNTozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IG1vcmUgdXBkYXRlcwoJICBLZWVwIHRyYWNrIGlmIHRoZSBidWZmZXIgaXMgY29uZmlndXJlZCBhbmQgYmxvY2sgYWN0aXZhdGlvbiB3aGVuIG5vdCBjb25maWd1cmVkCgkgIHlldC4KCSAgS2VlcCB0cmFjayBvZiBvdXRzdGFuZGluZyBidWZmZXJzIGFuZCBkaXNhbGxvdyBjb25maWd1cmF0aW9uIHdoZW4gbm90IGFsbAoJICBidWZmZXJzIGFyZSByZXR1cm5lZCB0byB0aGUgcG9vbC4gV2UgbmVlZCB0byBkbyB0aGlzIG9yIGVsc2Ugd2UgbWlnaHQgZW5kIHVwCgkgIHdpdGggd3JvbmcgYnVmZmVycyBpbiB0aGUgcG9vbC4KCSAgQWRkIHJldHVybiB2YWx1ZSB0byBzZXRfYWN0aXZlLgoJICBTbWFsbCBjbGVhbnVwcy4gRml4IGZpbmFsaXplLgoKMjAxMS0wMi0xOCAxMjo1MDoyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IHJlbmFtZSAnZmx1c2hpbmcnIHRvICdhY3RpdmUnCgkgIFJlbmFtZSB0aGUgZmx1c2hpbmcgdmFyaWFibGUgYW5kIG1ldGhvZHMgdG8gYWN0aXZlIHRvIGJldHRlciBtYXRjaAoJICB0aGUgb3RoZXIgZ3N0cmVhbWVyIG5hbWUgY29udmVudGlvbnMKCjIwMTEtMDItMTcgMTg6Mzc6MTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBwcmVhbGxvYyB3aGVuIHVuc2V0IGZsdXNoaW5nCgkgIEFjY29yZGluZyB0byB0aGUgZGVzaWduIGRvYyB3ZSBuZWVkIHRvIHByZWFsbG9jIGJ1ZmZlcnMgd2hlbiB3ZSB1bnNldCB0aGUKCSAgZmx1c2hpbmcgc3RhdGUsIG5vdCBpbiBzZXRfY29uZmlnLgoJICBTZXQgdGhlIGZsdXNoaW5nIHN0YXRlIGJldHRlci4KCjIwMTEtMDItMTcgMTc6Mjk6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIGJ1ZmZlcnBvb2w6IHVzZSBxdWFya3MgZm9yIHN0cnVjdHVyZSBmaWVsZHMKCjIwMTEtMDItMTcgMTY6NDY6NTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVycG9vbDogdXNlIEdzdFN0cnVjdHVyZSB0byBjb25maWd1cmUgdGhlIHBvb2wKCSAgVXNlIGEgR3N0U3RydWN0dXJlIHRvIHByb3ZpZGUgdGhlIHBvb2wgd2l0aCB0aGUgcmlnaHQgY29uZmlndXJhdGlvbi4gQWxzbwoJICBwcm92aWRlIHNvbWUgaGVscGVyIG1ldGhvZHMgdG8gY29uZmlndXJlIHN1Y2ggYSBzdHJ1Y3R1cmUuCgkgIGRvbid0IHBhc3MgdGhlIGNvbmZpZyBpbiBhbGxvY19idWZmZXIsIHBvb2wgaW1wbGVtZW50YXRpb24gd2lsbCBhbHJlYWR5IGhhdmUKCSAgcGFyc2VkIGl0IGR1cmluZyBzZXRfY29uZmlnLgoJICBVcGRhdGUgZGVmcwoKMjAxMS0wMi0xNyAxMjo1NTozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBmaXggZGVmcwoKMjAxMC0xMS0wMiAxODo1NjoyOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiBhZGQgc2ltcGxlIGJ1ZmZlcnBvb2wgaGVscGVyIG9iamVjdAoKMjAxMS0wMy0wMiAxMTowODozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0cmVnaXN0cnkuaAoKMjAxMS0wMy0wMiAxMzo1NTozNiArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9naXQueG1sOgoJICBmYXE6IE1pbm9yIHVwZGF0ZSB0byBzc2gga2V5IGdlbmVyYXRpb24gY29tbWFuZHMKCSAgZmQubyByZXF1aXJlcyBSU0Ega2V5cywgYW5kIGluIGdlbmVyYWwsIHVzZXJzIHdvdWxkIHByb2JhYmx5IHdhbnQgdG8KCSAgbWFrZSBhIHBlci1zZXJ2ZXIga2V5IGZpbGUgcmF0aGVyIHRoYW4gb3ZlcndyaXRlIGlkX3JzYSwgaWRfcnNhLnB1Yi4KCjIwMTEtMDItMjggMTg6NDM6NDEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmUuYWM6IGV4cG9ydCBwbHVnaW4gZGVzY3JpcHRpb24gbW9yZSBwbGF0Zm9ybSBpbmRlcGVuZGVudAoJICBGaXhlcyAjNjQyNTA0LgoKMjAxMS0wMi0yOCAxODozMjowNyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDFkZTdmNmEgdG8gNmFlYzZiOQoKMjAxMS0wMi0yOCAxNTowMTo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkgIGRvY3M6IHR5cG8gZml4ZXMKCSAgY29udmluaWVuY2UgLT4gY29udmVuaWVuY2UKCjIwMTEtMDItMjggMTQ6NTY6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IHByaW50ICJwYWQtYWRkZWQiLCAicGFkLXJlbW92ZWQiIGFuZCAibm8tbW9yZS1wYWRzIiBzaWduYWxzIGZvciBlbGVtZW50cyB3aXRoIHNvbWV0aW1lcyBwYWRzCgkgIEl0J3Mgb2Z0ZW4gbm90IG9idmlvdXMgdG8gcGVvcGxlIHRoYXQgZWxlbWVudHMgbGlrZSBlLmcuIHVyaWRlY29kZWJpbgoJICAob3IgZGVtdXhlcnMpIGF1dG9tYXRpY2FsbHkgc3VwcG9ydCB0aGUgc3RhbmRhcmQgc2lnbmFscyBvZiB0aGUKCSAgR3N0RWxlbWVudCBjbGFzcywgc28gbGV0J3MgcHJpbnQgdGhlIHVzZWZ1bCBwYWQtcmVsYXRlZCBvbmVzIGZvcgoJICBlbGVtZW50cyB3aXRoIHNvbWV0aW1lcyBwYWRzLgoKMjAxMS0wMi0yOCAxNjoyNzowMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGRvY3M6IHNtYWxsIHVwZGF0ZXMgYXMgc3VnZ2VzdGVkIG9uIGEgYmxvZwoJICBMaW5rIGZyb20gY29udmluaWVuY2UgYXBpIHRvIHRoZSB1bmRlcmx5aW5nIGFwaS4KCjIwMTEtMDItMjggMTA6MDU6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJICBtZXRhOiBhZGQgdGltaW5nIG1ldGFkYXRhCgoyMDExLTAyLTI4IDEwOjA1OjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgbWluaW9iamVjdDogZml4IHdoaXRlc3BhY2UKCjIwMTEtMDItMjggMDk6Mzk6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJICB0ZXN0czogYWRkIG1lbW9yeSB1bml0IHRlc3QKCjIwMTEtMDItMjcgMjA6NTQ6NTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJICBtZXRhOiBzaW1wbGlmeSBhIGJpdAoKMjAxMS0wMi0yNyAyMDo0MjoxNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXRhOiBhZGQgZGVmYXVsdCBtZW1vcnkgbWV0YWRhdGEKCSAgQWRkIGEgbWV0YWRhdGEgaW1wbGVtZW50YXRpb24gZm9yIG5vcm1hbGwgbWFsbG9jZWQgbWVtb3J5LgoKMjAxMS0wMi0yNyAxOTo0MDo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWV0YTogc2VwYXJhdGUgYWRkIGFuZCBnZXQgbWV0aG9kcwoJICBNYWtlIHNlcGFyYXRlIGFwaSBmb3IgZ2V0dGluZyBhbmQgYWRkaW5nIG1ldGFkYXRhLiBUaGlzIGFsbG93cyB1cyB0byBwYXNzIGV4dHJhCgkgIHBhcmFtZXRlcnMgdG8gdGhlIGluaXQgZnVuY3Rpb25zIHdoZW4gY3JlYXRpbmcgbWV0YWRhdGEsIHdoaWNoIGlzIG5lZWRlZCBmb3IKCSAgc3BlY2lmaWMgQVBJIGltcGxlbWVudGF0aW9ucy4KCSAgQWRkIGJlZ2lubmluZ3Mgb2YgbWVtb3J5IG1ldGFkYXRhLgoKMjAxMS0wMi0yNyAxMjoyMTozMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcjIudHh0OgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZG9jczogdXBkYXRlIGRvY3MgYW5kIGRlZnMKCjIwMTEtMDItMjYgMTg6MTQ6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiByZW1vdmUgdXNlbGVzcyBtZXRob2QKCSAgUmVtb3ZlIHRoZSBtZXRob2QgdG8gcmV0cmlldmUgbWV0YWRhdGEgYnkgYXBpLiBPbmUgd2lsbCBhbHdheXMgdXNlIHRoZQoJICBHc3RNZXRhSW5mbyB0byBnZXQgbWV0YWRhdGEuCgoyMDExLTAyLTI1IDE2OjMxOjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogcmVtb3ZlIG93bmVyX3ByaXYgbm93IHRoYXQgd2UgaGF2ZSBtZXRhZGF0YQoJICBOb3cgdGhhdCB3ZSBoYXZlIG1ldGFkYXRhIHdlIGNhbiByZW1vdmUgdGhlIG93bmVyX3ByaXYgZmllbGQuCgoyMDExLTAyLTI1IDEzOjIzOjE5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IGZpeCBkZWZzCgoyMDExLTAyLTI1IDEzOjE1OjI1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSAgbWV0YWRhdGE6IFJlbmFtZSB0byBHc3RNZXRhCgkgIFJlbmFtZSB0byB0aGUgc2hvcnRlciBHc3RNZXRhCgkgIEFkZCBkb2NzCgkgIEFkZCBhcGkgdG8gZ2V0IG1ldGFkYXRhIGJ5IEFQSQoKMjAxMS0wMi0yNSAxMDozNzowNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiBmaXggZGVmcwoKMjAxMC0xMS0xNSAxMTo0OToyNCArMDEwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cGhpbCBhdCBiYXNlLWFydC5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZml4IG1lbW9yeSBjb3JydXB0aW9uCgoyMDEwLTA0LTA3IDExOjM0OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlcm1ldGEuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcm1ldGEuYzoKCSAgYnVmZmVybWV0YTogZml4IGNvbXBpbGF0aW9uCgoyMDEwLTAyLTI2IDEzOjExOjQzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQ6CgkqIGdzdC9nc3RidWZmZXJtZXRhLmg6CgkgIHVwZGF0ZXMKCjIwMDktMTItMjcgMjI6MDM6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybWV0YS5jOgoJICBtZXRhOiBpbXByb3ZlIHRlc3QgYSBsaXR0bGUKCjIwMDktMTItMTcgMTI6MzQ6NDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJtZXRhLmM6CgkqIGdzdC9nc3RidWZmZXJtZXRhLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybWV0YS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVybWV0YTogYWRkIGJlZ2lubmluZ3Mgb2YgYnVmZmVyIG1ldGFkYXRhCgkgIEFkZCBmaXJzdCBpbXBsZW1lbnRhdGlvbiBvZiBhcmJpdHJhcnkgYnVmZmVyIG1ldGFkYXRhLiBXZSB1c2UgYSBzaW1wbGUgbGlua2VkCgkgIGxpbmtlZCBvZiBzbGljZSBhbGxvY2F0ZWQgbWV0YWRhdGEgY2h1bmtzLiBGdXR1cmUgaW1wbGVtZW50YXRpb25zIGNvdWxkIHVzZQoJICBzb21ldGhpbmcgbW9yZSBwZXJmb3JtYW50LgoJICBBZGQgZ2V0LCByZW1vdmUsIGl0ZXJhdGUgbWV0aG9kcyB0byBoYW5kbGUgdGhlIG1ldGFkYXRhLgoKMjAxMS0wMi0yNSAxMDoxOToyNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcjIudHh0OgoJICBkZXNpZ246IGFkZCBhcGkgdGFnCgkgIFdlIHdhbnQgdG8gZmluZCBtZXRhZGF0YSBiYXNlZCBvbiB0aGUgQVBJIGl0IGltcGxlbWVudHMgYW5kIGJhc2VkIG9uIHRoZQoJICBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbi4KCjIwMTEtMDItMjQgMTc6MTE6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHVyaS5jOgoJICB1cmk6IG1ha2Ugd2luMzIgYnVpbGRib3QgaGFwcHkKCSAgZ3N0dXJpLmM6ODU0OjE2OiBlcnJvcjogdW51c2VkIHZhcmlhYmxlICdhYnNfY2xlYW4nCgkgIGdzdHVyaS5jOjc4ODoxOiBlcnJvcjogJ2dzdF9maWxlX3V0aWxzX2Nhbm9uaWNhbGlzZV9wYXRoJyBkZWZpbmVkIGJ1dCBub3QgdXNlZAoKMjAxMS0wMi0yNCAxNTozMjowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkgIGZpbGVzcmMsIGZpbGVzaW5rOiBmaXggVVJJIGNyZWF0aW9uIHJlZ3Jlc3Npb24gZm9yIG5vbi1hYnNvbHV0ZSBsb2NhdGlvbnMKCSAgUGFzc2luZyBlLmcuIGxvY2F0aW9uPWZvbyB3b3VsZCBsZWFkIHRvIHdhcm5pbmdzIGJlY2F1c2UgZ19maWxlbmFtZV90b191cmkoKQoJICB3YW50cyBhbiBhYnNvbHV0ZSBmaWxlIHBhdGggYW5kIHJldHVybnMgTlVMTCBvdGhlcndpc2UuIFVzZSBicmFuZC1uZXcKCSAgZ3N0X2ZpbGVuYW1lX3RvX3VyaSgpIGluc3RlYWQsIHdoaWNoIHdpbGwgdHJ5IGhhcmRlciB0byBjcmVhdGUgYSBwcm9wZXIKCSAgVVJJIGZvciB1cy4KCSAgQWxzbyBhZGQgdW5pdCB0ZXN0LgoKMjAxMS0wMi0yNCAxNToxODo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1cmkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHVyaTogYWRkIGdzdF9maWxlbmFtZV90b191cmkoKSB0aGF0IHRha2VzIHJlbGF0aXZlIGZpbGVuYW1lcwoJICBBZGQgZnVuY3Rpb24gdGhhdCAodW5saWtlIHRoZSBHTGliIGVxdWl2YWxlbnQpIGFsc28gYWNjZXB0cyBwYXRocyB0aGF0CgkgIGFyZW4ndCBhYnNvbHV0ZSBhbmQgd2lsbCBjbGVhbiB1cCByZWxhdGl2ZSBtYXJrZXJzIHN1Y2ggYXMgLi8gYW5kIC4uLwoJICBiZWZvcmUgZm9ybWluZyBhIFVSSS4KCSAgRml4ZXMgd2FybmluZ3Mgd2l0aCBlLmcuIGZpbGVzcmMgbG9jYXRpb249Zm9vICEgdHlwZWZpbmQgY2F1c2VkIGJ5IHRoZQoJICByZWNlbnQgc3dpdGNoIHRvIGdfZmlsZW5hbWVfdG9fdXJpKCksIGJ1dCBhbHNvIGFjdHVhbGx5IGNyZWF0ZXMgdmFsaWQKCSAgVVJJcyBmb3IgdGhlIGZpcnN0IHRpbWUuCgkgIFdpbmRvd3MgY29kZSBwYXRocyBjb3VsZCBuZWVkIHNvbWUgbW9yZSB3b3JrLCBlLmcuIHdlIGRvbid0IGNsZWFuIHVwCgkgIHRoZSByZWxhdGl2ZSBtYXJrZXJzIHRoZXJlIGZvciBub3cgKGJlY2F1c2UgcGF0aCBjb3VsZCBoYXZlIFwgYW5kIC8KCSAgYXMgc2VwYXJhdG9ycykuCgkgIEFQSTogZ3N0X2ZpbGVuYW1lX3RvX3VyaSgpCgoyMDExLTAyLTI0IDE2OjIwOjAxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJICB0ZXN0czogcmVmaXggdGhlIHRlc3RzIChtaXNzaW5nICNlbmRpZikKCjIwMTEtMDItMjQgMTY6MTE6MTcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBNYWtlZmlsZS5hbTogYWRkIG5ldyBhYmkgaGVhZGVycyB0byBub2Rpc3RfSEVBREVSUwoKMjAxMS0wMi0yMSAxMToyNDo0NSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGFkZCBpbmRleCBzdXBwb3J0CgkgIFdoZW4gb3B0aW9uICItaSIgaXMgZ2l2ZW4sIHNldCBhbiBpbmRleCBvYmplY3Qgb24gdGhlIHBpcGVsaW5lIGFuZCBjb21wdXRlCgkgIHN0YXRpc3RpY3MgZm9yIGFsbCBpbmRleCB3cml0ZXJzLiBQcmludCBhIHN1bWFyeSB3aGVuIHNodXR0aW5nIGRvd24gdGhlCgkgIHBpcGVsaW5lLgoKMjAxMS0wMi0yNCAxNToxMjoxNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2FybS5oOgoJICB0ZXN0czogYWRkIGFiaSBjaGVjayBkYXRhIGZvciBBUk0gKGxpYnMpCgoyMDExLTAyLTI0IDE1OjAyOjM3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfYXJtLmg6CgkgIHRlc3RzOiBhZGQgYWJpIGNoZWNrIGRhdGEgZm9yIEFSTQoKMjAxMS0wMi0yNCAxMzo1NTozNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBhZGQgb3duZXIgcHJpdmF0ZSBhcyBpbnRlcm1lZGlhdGUgc29sdXRpb24KCSAgQWRkIGFuIG93bmVyIHByaXZhdGUgZmllbGQgd2hlcmUgdGhlIG93bmVyIG9mIGEgYnVmZmVyIGNhbiBzdG9yZSBzb21lIGV4dHJhCgkgIGluZm9ybWF0aW9uLiBXZSBjYW4gdXNlIHRoaXMgdG8gaW1wbGVtZW50IG1vc3Qgb2YgdGhlIHN1YmNsYXNzaW5nIHRoYXQgaGFwcGVucwoJICBub3cuIExhdGVyIHRoaXMgd2lsbCBiZSByZW1vdmVkIGFuZCByZXBsYWNlZCBieSBhcmJpdHJhcnkgYnVmZmVyIG1ldGFkYXRhLgoKMjAxMS0wMi0yNCAxMDoyODoyMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHJlbW92ZSBwb2lzb25pbmcKCjIwMTEtMDItMjMgMTY6NDg6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgbWluaW9iamVjdDogY2xlYW51cHMKCSAgVXNlIHRoZSBzdG9yZWQgc2l6ZSBpbiB0aGUgbWluaW9iamVjdCB0byBmcmVlIHRoZSBtaW5pb2JqZWN0LgoJICBSZWZhY3RvciBzb21lIGluaXQgbWV0aG9kcy4KCjIwMTEtMDItMjMgMTU6NDM6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiB1cGRhdGUgcG9ydGluZyBndWlkZQoKMjAxMS0wMi0yMyAxMjo1NDoyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBwb3J0aW5nIGd1aWRlCgoyMDExLTAyLTIzIDEyOjQ0OjU0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgY2Fwczogd2FybiB3aGVuIG1ha2Vfd3JpdGFibGUgcmVzdWx0IGlzIGlnbm9yZWQKCjIwMTEtMDItMjMgMTI6MDg6MDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogZml4IGRlZnMKCjIwMTEtMDItMjMgMTI6MDE6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogZml4IHR5cGUgcmVnaXN0cmF0aW9uCgkgIFdlIG5lZWQgdG8gaGF2ZSB0aGUgdHlwZXMgb2YgdGhlIG1pbmlvYmplY3RzIGJlZm9yZSByZWdpc3RlcmluZyB0aGUKCSAgdHJhbmZvcm1zLgoKMjAxMS0wMi0yMyAxMjowMToxNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogaW1wcm92ZSBjYXBzIHN0cmluZyBtYW5hZ2VtZW50CgoyMDExLTAyLTIzIDEyOjAwOjQyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogY2xlYXIgZmxhZ3MgaW4gaW5pdAoKMjAxMS0wMi0yMyAxMjozMzo1OCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgIGRvY3M6IHRlbGwgdGhhdCBPUkNfQ09ERSBjYW4gY29udGFpbiBhIGxpc3Qgb2YgZmxhZ3MKCjIwMTEtMDItMjMgMTA6MzE6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIG1pbmlvYmplY3Q6IGZpeCBmbGFncwoKMjAxMS0wMi0yMiAxOTozMDo1OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBmaXggY29tcGlsYXRpb24gYWZ0ZXIgcmViYXNlCgoyMDEwLTExLTAyIDEzOjMxOjI1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIGltcHJvdmUgdHlwZSByZWdpc3RyYXRpb24KCjIwMTAtMTEtMDIgMTI6NTg6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgZml4IGNvbXBpbGF0aW9uCgoyMDA5LTEyLTA3IDIwOjMyOjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIGZpeCBtYWNyb3MKCjIwMDktMTItMDUgMTU6MTg6MDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogc2V0IGJveGVkIHR5cGUgY29ycmVjdGx5CgoyMDA5LTEyLTA1IDE0OjE2OjU3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIG1pbmlvYmplY3Q6IHNtYWxsIGZpeGVzCgkgIE1ha2UgZGF0YWZsb3cgaGFwcGVuLgoKMjAwOS0xMi0wNCAyMzo1MjozMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBtaW5pb2JqZWN0OiBtb3JlIGJveGVkIHR5cGUgZml4aW5nCgkgIE1vcmUgbWluaW9iamVjdCBmaXhpbmcsIGxlYWtzIGhvcnJpYmx5IHNvbWV3aGVyZS4uCgoyMDA5LTEyLTA0IDIyOjMyOjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtYXJzaGFsLmxpc3Q6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgbWluaW9iamVjdDogbWFrZSBxdWVyaWVzIGEgYm94ZWQgdHlwZQoJICBNb3JlIG1pbmlvbmplY3Qgc3R1ZmYuCgoyMDA5LTEyLTAzIDIwOjQ5OjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZXM6IG1ha2UgbWVzc2FnZSBhIHNpbXBsZSBib3hlZCB0eXBlCgoyMDA5LTEyLTAyIDIxOjIxOjQ4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIG1pbmlvYmplY3Q6IHdvcmsgb24gbWFraW5nIGNhcHMgYSBib3hlZCB0eXBlCgkgIE1vcmUgd29yayBvbiBtYWtpbmcgbWluaW9iamVjdCBhIHNpbXBsZSBhbGxvY2F0ZWQgc3RydWN0LgoKMjAwOS0xMS0yOSAwMDoyMToyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIG1pbmlvYmplY3Q6IG1ha2UgbWluaW9iamVjdCBhIGJveGVkIHR5cGUKCSAgRmlyc3QgYXR0ZW1wdCBhdCBtYWtpbmcgbWluaW9iamVjdCBhIHNpbXBsZSBib3hlZCB0eXBlLgoKMjAxMS0wMi0yMiAxOTowOTo0OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSAgbGliczogY2xlYW51cHMgZm9yIDAuMTEKCSAgUmVtb3ZlIGRlcHJlY2F0ZWQgc3R1ZmYsIGZpeCBwYWRkaW5nLCByZWFycmFuZ2UgbWV0aG9kcy4KCjIwMTEtMDItMjIgMTY6MDQ6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RpbmRleC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkgIGNsZWFudXBzCgkgIEZpeCBwYWRkaW5nLCByZW1vdmUgZGVwcmVjYXRlZCBzeW1ib2xzLgoKMjAxMS0wMi0yMiAxNTowODo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDItMjIgMTQ6MTE6NTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgY29uZmlndXJlLmFjCgkgIGdzdC9nc3RlbGVtZW50LmMKCSAgZ3N0L2dzdGVsZW1lbnQuaAoJICBnc3QvZ3N0cGFkLmMKCSAgZ3N0L2dzdHV0aWxzLmMKCSAgbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbQoJICBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbQoJICBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbQoJICBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW0KCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWYKCjIwMTEtMDItMTQgMTg6MDU6MDkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJICBiYXNldHJhbnNmb3JtOiBCZSBzbWFydGVyIHdpdGggcGFkIGFsbG9jcwoJICBBdm9pZCBkb2luZyB1bm5lY2Vzc2FyeSBwYWQtYWxsb2NzIHdoZW4gb24gcGFzc3Rocm91Z2ggbW9kZS4KCSAgSWYgbXVsdGlwbGUgYmFzZXRyYW5zZm9ybSBlbGVtZW50cyBhcmUgb24gYSBwaXBlbGluZSwgdGhleQoJICB3b3VsZCBkbyBhIHBhZC1hbGxvYyBmb3IgZWFjaCByZWNlaXZlZCBidWZmZXIsIGVhY2ggZWxlbWVudAoJICB3b3VsZCBkbyB0aGlzLCBzbyB3ZSB3b3VsZCBoYXZlIGxvdHMgb2YgcGFkIGFsbG9jcyBvbiB0aGUKCSAgcGlwZWxpbmUgZm9yIGEgc2luZ2xlIGJ1ZmZlciBiZWluZyBwdXNoZWQgdGhyb3VnaCBpdC4KCSAgVGhpcyBwYXRjaCBhdHRlbXB0cyB0byByZWR1Y2UgdGhpcyBhbW91bnQgYnkgYXZvaWRpbmcKCSAgZG9pbmcgcGFkLWFsbG9jcyBpZiB0aGUgZWxlbWVudCBoYXMgYWxyZWFkeSBkb25lIGl0CgkgIGFmdGVyIHRoZSBsYXN0IHB1c2hlZCBidWZmZXIuIFNvIGl0IHdpbGwgb25seSBiZSBhbGxvd2VkCgkgIHRvIGRvIGEgbmV3IHBhZC1hbGxvYyBhZnRlciBpdCBoYXMgcHVzaGVkIGEgYnVmZmVyLCBzbyB3ZSBnZXQKCSAgMXgxIHBhZC1hbGxvYyBhbmQgYnVmZmVyIHJhdGlvCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDIzNzMKCjIwMTEtMDItMjEgMTM6Mzk6MzggKzAxMDAgIFBoaWxpcCBKw6RnZW5zdGVkdCA8cGhpbGlwakBvcGVyYS5jb20+CgoJKiBnc3QvZ3N0aW5kZXguYzoKCSAgZG9jczogZml4IHR5cG8gaW4gZ3N0X2luZGV4X25ldygpIGRvY3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0Mjg2OQoKMjAxMS0wMi0yMSAxMjo0NDowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIGZha2VzaW5rOiBwcmludCBuZXcgTUVESUE0IGZsYWcgYXMgd2VsbAoKMjAxMS0wMS0wMyAxMTozNzowNSArMDEwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBtaW5pb2JqZWN0LCBidWZmZXI6IHN0ZWFsIG1pbmlvYmplY3QgZmxhZyBmb3IgdXNlIGFzIE1FRElBNCBidWZmZXIgZmxhZwoJICBUaGlzIHdhcyByZXF1aXJlZCB0byBhZGQgYSBuZXcgTUVESUE0IGJ1ZmZlciBmbGFnIGZvciBpbmRpY2F0aW5nCgkgIHByb2dyZXNzaXZlL21peGVkIHRlbGVjaW5lIHZpZGVvIGJ1ZmZlcnMuIFRoZXJlIGlzIG5vIHNwYWNlIGZvcgoJICBhZGRpdGlvbmFsIGZsYWdzIGluIEdzdEJ1ZmZlciwgc28gc3RlYWwgb25lIGZyb20gR3N0TWluaU9iamVjdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MjY3MQoKMjAxMS0wMi0yMCAxNjoxMToyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmg6CgkgIGRvY3M6IGFkZCBzb21lIG1vcmUgU2luY2U6IG1hcmtlcnMgdG8gYXRvbWljIHF1ZXVlIGRvY3MKCjIwMTEtMDItMjEgMTE6NTU6NTAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgUmV2ZXJ0ICJlbGVtZW50OiBDYWxsIC0+cmVsZWFzZV9wYWQoKSB0byBjbGVhbiB1cCBwYWQiCgkgIFRoaXMgY29tbWl0IGNoYW5nZXMgdGhlIHJlcXVlc3QgcGFkIGJlaGF2aW91ciBmb3IgcGx1Z2lucyBhbmQgYXBwbGljYXRpb25zLgoJICBSZW9wZW5zIEJ1ZyAjNDAyNTYyCgkgIFRoZSBwcm9wZXIgZml4IGZvciB0aGF0IGJ1ZyBpcyB0byBrZWVwIHRyYWNrIG9mIGNyZWF0ZWQgcmVxdWVzdCBwYWRzLgoJICBUaGlzIHJldmVydHMgY29tbWl0IGE1ZTQ0ZmZmZmFhNmQ3YThkN2FmOGRjYjc3ZTM3OTkwOTk2MjUzYTUuCgoyMDExLTAyLTIxIDEwOjAzOjE2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5kZXguYzoKCSAgaW5kZXg6IGFkZCBGSVhNRS0wLjExOiBjb21tZW50cwoKMjAxMS0wMi0xNSAxMDo1NzowOCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZGV4LmM6CgkgIGRvY3M6IGltcHJvdmUgaW5kZXggZG9jcwoKMjAxMS0wMi0xOCAxNzowOToxNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC1wcm9ncmVzcy50eHQ6CgkgIGRvY3M6IHNwZWxsLWNoZWNrCgoyMDExLTAyLTE1IDE5OjE1OjE2IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IHByaW50IGJ1ZmZlciBmbGFncwoKMjAxMC0xMi0wNCAxODo1Mzo1NSAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBDYWxsIC0+cmVsZWFzZV9wYWQoKSB0byBjbGVhbiB1cCBwYWQKCSAgRml4ZXMgIzYzNjAxMSBhbmQgIzQwMjU2Mi4KCjIwMTEtMDItMTcgMTQ6NTA6NDAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmRleC5jOgoJICBpbmRleDogZml4IGNyZWF0aW9uIG9mIHdyaXRlciBpZCBmb3IgdW5wYXJlbnRlZCBwYWRzCgkgIEFsc28gZG8gc29tZSBjbGVhbnVwIGluIHRoZSBpbXBsLgoKMjAxMS0wMi0xNyAxMDozNDozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBhZGQgKGRlKXNlcmlhbGlzYXRpb24gZnVuY3Rpb24gZm9yIHVjaGFyCgkgIC4uIHNpbmNlIHdlIHNhZGx5IGhhdmUgYSBwbHVnaW4gaW4gLWdvb2QgdGhhdCBoYXMgYSB1Y2hhciBwcm9wZXJ0eQoJICAoY21tbGVuYykKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MjUyMgoKMjAxMS0wMi0xNiAxOTo1NDo1NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJICBhdG9taWNxdWV1ZTogZml4IGluY2x1ZGUgb3JkZXIgYXRvbWljcXVldWU6IGZpeCBpbmNsdWRlIG9yZGVyIyBQbGVhc2UgZW50ZXIgdGhlIGNvbW1pdCBtZXNzYWdlIGZvciB5b3VyIGNoYW5nZXMuIExpbmVzIHN0YXJ0aW5nCgoyMDEwLTEwLTI4IDEzOjI3OjQzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkgIGJ1czogbWFrZSB0aGUgYnVzIGFsbW9zdCBsb2NrZnJlZQoJICBVc2UgbmV3IEdzdFBvbGwgZnVuY3Rpb25hbGl0eSB0byB3YWtldXAgdGhlIG1haW5sb29wLgoJICBVc2UgYW4gYXRvbWljIHF1ZXVlIG9uIHRoZSB3cml0ZXIgc2lkZSB0byBwb3N0IHRoZSBtZXNzYWdlcy4KCSAgVGhlIHJlYWRlciBzaWRlIGl0IHByb3RlY3RlZCB3aXRoIHRoZSBsb2NrIHN0aWxsIGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCBtdWx0aXBsZQoJICBjb25jdXJyZW50IHJlYWRlcnMuCgoyMDExLTAyLTE2IDE3OjIxOjUyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IGZpeCBkZWZzIGZpbGUgZm9yIG5ldyBzeW1ib2xzCgoyMDExLTAyLTE2IDE3OjE0OjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkgIGF0b21pY3F1ZXVlOiB1c2UgY29ycmVjdCBhcnJheSBzaXplcwoKMjAxMS0wMi0xNiAxNjoyMTo1OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJICBhdG9taWNxdWV1ZTogZml4IGRvY3Mgc29tZSBtb3JlCgoyMDExLTAyLTE2IDE2OjE5OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5oOgoJICBhdG9taWNxdWV1ZTogYWRkIHJlZmNvdW50aW5nIGFuZCBkb2NzCgoyMDExLTAyLTE2IDEyOjQ4OjU5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkgIGF0b21pY3F1ZXVlOiBtYWtlIHN1cmUgYSBtaW4gaW5pdGlhbF9zaXplIGlzIHVzZWQKCjIwMTAtMTAtMjggMTY6MDI6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuaDoKCSAgYXRvbWljcXVldWU6IGFkZCBhbiBhdG9taWMgcXVldWUKCSAgQWRkIGFuIGF0b21pYyBxdWV1ZS4gVGhlIHF1ZXVlIGNhbiBiZSB1c2VkIGZyb20gbXVsdGlwbGUgdGhyZWFkcyBzaW11bHRhbmVvdXNseQoJICBhbmQgd2l0aG91dCB0YWtpbmcgYW55IGxvY2tzIG9yIGRvaW5nIGFueSBibG9ja2luZyBvcGVyYXRpb25zLiBUaGlzIG1ha2VzIGl0CgkgIGhpZ2hseSBzY2FsYWJsZSBmb3IgdGhpbmdzIGxpa2UgdGhlIGJ1cywgYnVmZmVycG9vbHMgYW5kIG9iamVjdCByZWN5Y2xpbmcuCgoyMDExLTAyLTE2IDE3OjE0OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJICBjaGVjazogZml4IGEgbGVhayBpbiB0aGUgYnVzIHVuaXQgdGVzdAoKMjAxMS0wMi0xNiAxNzoyODoxNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZGVpbml0OiBhZGQgcHJvZ3Jlc3MgdHlwZSBjbGFzcyB1bnJlZgoKMjAxMS0wMi0xNiAxNToxMzowNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiB0ZWxsIGFsc28gd2hhdCBwYWQgYSBwYWQgaXMgYWxyZWFkeSBsaW5rZWQgYWdhaW5zdAoKMjAxMS0wMi0xNSAyMjo1NjozNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkgIGZpbGV7c2luayxzcmN9OiBDaGVjayBpZiBub24tVVJJIGNoYXJhY3RlcnMgYXJlIGVzY2FwZWQsIGJ1dCBvbmx5IGZvciB0aGUgVVJJIG5vdCB0aGUgbG9jYXRpb24gcHJvcGVydHkKCjIwMTEtMDItMTUgMjI6NDk6MjYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJICBmaWxle3NyYyxzaW5rfTogRml4IHVuaXQgdGVzdHMKCSAgZmlsZXNpbmsgYW5kIGZpbGVzcmMgc2hvdWxkIHJldHVybiBleGFjdGx5IHRoZSBzYW1lIFVSSSBhcyBwYXNzZWQKCSAgYW5kIG11c3Qgbm90IGVzY2FwZSBwYXRoIHNlcGFyYXRvcnMuCgoyMDExLTAyLTE1IDIyOjQ4OjQ0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IEZpeCBlc2NhcGluZyBvZiBVUklzCgkgIEVzcGVjaWFsbHkgZG9uJ3QgZXNjYXBlIC8gYXMgcGF0aCBzZXBhcmF0b3JzCgoyMDExLTAyLTE1IDIyOjA1OjMxICswMTAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPHlsYXR1eWFAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IEZpeCBlc2NhcGluZyBvZiBmaWxlIHVyaXMKCSAgRml4ZXMgYnVnICM2NDIzOTMuCgoyMDExLTAyLTE1IDE4OjI2OjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBtZXNzYWdlOiBhZGQgdGltZW91dCB0byBwcm9ncmVzcyBtZXNzYWdlCgkgIEFkZCBhIHRpbWVvdXQgbWVtYmVyIHRvIHRoZSBwcm9ncmVzcyBtZXNzYWdlcyB0byBsZXQgdGhlIGFwcGxpY2F0aW9uIGtub3cgYWJvdXQKCSAgdGhlIHRpbWVvdXQgc28gdGhhdCBpdCBjYW4gZG8gc29tZSBndWkgdGhpbmdzIHdpdGggaXQuCgoyMDExLTAyLTE1IDE4OjE0OjE2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1wcm9ncmVzcy50eHQ6CgkgIGRlc2lnbjogbWVudGlvbiB0aW1lb3V0IGluIHRoZSBwcm9ncmVzcyBtZXNzYWdlCgoyMDExLTAyLTE1IDE3OjIwOjA4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1wcm9ncmVzcy50eHQ6CgkgIGRlc2lnbjogbWFrZSBwcm9ncmVzcyBkcmFmdCBvZmZpY2lhbAoKMjAxMS0wMS0wNiAxODo1NTo0MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXByb2dyZXNzLnR4dDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBtZXNzYWdlOiByZW5hbWUgY2F0ZWdvcnkgdG8gY29kZQoKMjAxMS0wMS0wNiAxNTo1ODo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IGFkZCBuZXcgbWVzc2FnZSBxdWFyawoKMjAxMS0wMS0wNiAxNTo1ODoyMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXByb2dyZXNzLnR4dDoKCSAgZG9jczogYWRkIG1vcmUgc3RhbmRhcmQgY2F0ZWdvcmllcwoKMjAxMS0wMS0wNSAxMzo1MzowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiByZWdpc3RlciBuZXcgdHlwZQoKMjAxMS0wMS0wNSAxMzo0ODo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkgIGNoZWNrOiBhZGQgcHJvZ3Jlc3MgbWVzc2FnZSB1bml0IHRlc3QKCjIwMTEtMDEtMDUgMTM6NDE6MDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXNzYWdlOiBhZGQgcHJvZ3Jlc3MgbWVzc2FnZSBmdW5jdGlvbnMKCjIwMTEtMDEtMDUgMTM6Mzk6MTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1wcm9ncmVzcy50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBwcm9ncmVzcyBmaWVsZAoJICBBdm9pZCBuYW1pbmcgdGhlIHByb2dyZXNzIGZyZWUgdGV4dCBmaWVsZCAnbWVzc2FnZScgYXMgaXQgY29uZmxpY3RzIHdpdGggdGhlCgkgIG1lc3NhZ2UgaXRzZWxmLgoKMjAxMS0wMi0xNSAxNDo0Mjo1OCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGRvbid0IHJlYWQgYmV5b25kIHRoZSBlbmQgb2YgZmlsZSB1cHN0cmVhbSBpbiBwdWxsIG1vZGUKCSAgLi4uIHdoaWNoIGNvdWxkIGxlYWQgdG8gYSBwcmVtYXR1cmUgZW9zIGJlaW5nIHJlcG9ydGVkIGRvd25zdHJlYW0sCgkgIHJhdGhlciB0aGFuIGEgc3VjY2Vzc2Z1bCBwYXJ0aWFsIHJlYWQgd2hpY2ggd291bGQgcmVzdWx0IHdoZW4KCSAgcGVyZm9ybWVkIGRpcmVjdGx5IG9uIGUuZy4gYmFzZXNyYy4KCjIwMTEtMDEtMjYgMTY6NDY6MjUgKzA4MDAgIENoZW4gUnVpIDxydWkuY2hlbkB0aWV0by5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHJldHVybiByZWFsIGVycm9yIGluIGNvbXBhdGlibGUgbGluayBjaGVjawoJICBXZSBuZWVkIHRvIGVuc3VyZSB3ZSBjYWxsIGdzdF9wYWRfY2hlY2tfbGluaygpIHdpdGggdGhlIHR3byBwYWRzIGluIHRoZSBjb3JyZWN0CgkgIG9yZGVyLiBUaGUgb3JkZXIgZGVwZW5kcyBvbiB3aGV0ZXIgd2UgaXRlcmF0ZSBzcmMgb3Igc2luayBwYWRzLgoJICBTaWduZWQtb2ZmLWJ5OiBDaGVuIFJ1aSA8cnVpLmNoZW5AdGlldG8uY29tPgoKMjAxMS0wMi0xNCAxNzozMToyNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBDaGVjayBzaW5rcGFkIGZvciBmbHVzaGluZwoJICBDaGVjayB0aGUgc2lua3BhZCBmb3IgdGhlIGZsdXNoaW5nIHN0YXRlIGJlZm9yZSBjYWxsaW5nIHRoZSBjaGFpbmZ1bmN0aW9uIG9uIHRoZQoJICBwYWQuIFdlIGRvIHRoaXMgYnkgY2hlY2tpbmcgdGhlIGNhY2hlICh3aGljaCBpcyBhbHNvIGNsZWFyZWQgb24gdGhlIHNyY3BhZCB3aGVuCgkgIHRoZSBzaW5rIGlzIHNldCB0byBmbHVzaGluZykuCgkgIEZpeGVzICM2NDE5MjgKCjIwMTEtMDItMTEgMTc6NDc6MTcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IENoZWNrIGZvciBwYWQgYWxsb2MgY2FwcyB3aGVuIHN1Z2dlc3Rpb24gaXMgbm90IGZpeGVkCgkgIElmIGFmdGVyIGNvbXB1dGluZyB0aGUgc3VnZ2VzdGlvbiB3aXRoIGRvd25zdHJlYW0gY2FwcyB3ZSBzdGlsbCBoYXZlCgkgIGEgbm9uLWZpeGVkIHN1Z2dlc3Rpb24gY2FwcyB0cnkgdG8gaW50ZXJzZWN0IHdpdGggdGhlIGlucHV0IGNhcHMKCSAgb2YgdGhlIHBhZCBhbGxvYyB0byBhdm9pZCB1c2VsZXNzIHJlbmVnb3RpYXRpb25zLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQyMTMwCgoyMDExLTAyLTE0IDE0OjAwOjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogaW1wcm92ZSBkdXJhdGlvbiBjYWxjdWxhdGlvbgoJICBLZWVwIHRyYWNrIG9mIHRoZSBhdmVyYWdlIGRpc3RhbmNlIGJldHdlZW4gaW5jb21taW5nIHRpbWVzdGFtcHMgYW5kCgkgIHVzZSB0aGF0IHRvIGVzdGltYXRlIHRoZSBmcmFtZSBkdXJhdGlvbiB3aGVuIGJ1ZmZlcnMgaGF2ZSBubyBkdXJhdGlvbiBzZXQgb24KCSAgdGhlbS4KCjIwMTEtMDItMTQgMTM6NDk6MTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBpbXByb3ZlIHJhdGUgY2FsY3VsYXRpb24KCSAgV2hlbiB0aGVyZSBpcyBubyBkdXJhdGlvbiBvbiBpbnB1dCBidWZmZXJzLCBhc3N1bWUgdGhlIHJhdGUgaXMgMS4wCgkgIGluc3RlYWQgb2YgKHRoZSB1bmRlZmluZWQpIDAuMC4KCjIwMTEtMDItMTQgMTM6NDc6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBpbXByb3ZlIGF2ZXJhZ2UgZHVyYXRpb24gY2FsY3VsYXRpb24KCSAgSW1wcm92ZSB0aGUgY2FsY3VsYXRpb24gb2YgdGhlIGR1cmF0aW9uLiBXaGVuIHdlIGhhdmUgbm8gaW5wdXQgZHVyYXRpb24gc2V0IG9uCgkgIHRoZSBpbnB1dCBidWZmZXJzIHN0b3AgaXMgc2V0IHRvIHN0YXJ0IGFuZCB0aGVuIHdlIGVuZCB1cCB1c2luZyBhIDAgZHVyYXRpb24gaW4KCSAgdGhlIGF2ZXJhZ2UgY2FsY3VsYXRpb24uCgoyMDExLTAyLTE0IDEyOjIxOjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogcmVuYW1lIHZhcmlhYmxlCgkgIFJlbmFtZSBhbiBpbnRlcm5hbCB2YXJpYWJsZSB0byBiZXR0ZXIgcmVmbGFjdCB3aGF0IGl0cyB2YWx1ZSBtZWFucy4KCjIwMTEtMDItMTQgMTU6Mzk6MjEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlLWxhdW5jaDogdHJpbSB3aGl0ZXNwYWNlcwoKMjAxMS0wMi0xNCAxNTozNzoyMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2UtbGF1bmNoOiBmaXggdHlwbyBpbiBwYWQtbGlzdCBsZW5ndGggY29tcGFyaXNpb24KCSAgSXQgd2FzIGNvbXBhcmluZyB0aGUgbGVuZ3RoIHdpdGggaXRzZWxmLgoJICBGaXhlcyAjNjQyMDcxLgoKMjAxMS0wMi0xNCAxMjo1MjozMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmOTRkNzM5IHRvIDFkZTdmNmEKCjIwMTEtMDItMTMgMjI6NTY6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBwcmV0dHktcHJpbnQgZGF0ZXRpbWUgdGFncwoKMjAxMS0wMi0xMCAyMzozMDoyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3RyZWFtZXIuZG9hcDoKCSAgZ3N0cmVhbWVyLmRvYXA6IHVwZGF0ZSBtYWlsaW5nIGxpc3QgaG9zdAoKMjAxMS0wMi0xMCAxNDo1MzozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpeCBzb21lIGNvbW1lbnRzCgoyMDExLTAyLTEwIDE0OjUwOjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazoga2VlcCB0cmFjayBvZiBlYXJsaWVzdCBRb1MgdGltZXN0YW1wCgkgIEtlZXAgdHJhY2sgb2YgdGhlIGVhcmxpZXN0IGFsbG93ZWQgdGltZXN0YW1wIGFjY29yZGluZyB0byB0aGUgbGF0ZXN0CgkgIFFvUyByZXBvcnQgYW5kIGRyb3AgYnVmZmVycyBiZWZvcmUgdGhhdCB0aW1lLiBBY3RpdmF0ZSB0aGlzIGZpbHRlcgoJICB3aGVuIHRocm90dGxpbmcgaXMgZW5hYmxlZC4gV2UgY291bGQgbGF0ZXIgYWxzbyBhY3RpdmF0ZSB0aGlzIGluIHRoZQoJICBvdGhlciBRb1MgY2FzZXMuCgkgIFNlZSAjNjM4ODkxCgoyMDExLTAyLTEwIDE0OjE3OjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogdXNlIG5ldyBRb1MgdHlwZQoJICBVc2UgdGhlIG5ldyBRb1MgdHlwZSBhbmQgc2VuZCB0aHJvdHRsaW5nIFFvUyBtZXNzYWdlcy4KCjIwMTEtMDItMTAgMTM6NDI6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBiYXNlc2luazogYWRkIHByb3BlcnR5IHRvIGNvbmZpZ3VyZSBhIHRocm90dGxlLXRpbWUKCSAgQWRkIGEgcHJvcGVydHkgdG8gY29uZmlndXJlIHRoZSB0aHJvdHRsZSB0aW1lIG9uIGEgc2luay4gVGhlCgkgIHByb3BlcnR5IGlzIG5vdCB5ZXQgdXNlZC4KCSAgU2VlICM2Mzg4OTEKCjIwMTEtMDItMTAgMTI6MDI6MDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBldmVudDogYWRkIFFvUyBldmVudCB0eXBlCgkgIEFkZCBhIHBhcmFtZXRlciB0byB0aGUgUW9TIGV2ZW50IHRvIHNwZWNpZnkgdGhlIFFvUyBldmVudCB0eXBlLgoJICBVcGRhdGUgZG9jcyBhbmQgYWRkIHVuaXQgdGVzdC4KCSAgU2VlICM2Mzg4OTEKCjIwMTEtMDItMTAgMTI6MDA6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IGZpeCBwYXJhbWV0ZXIgZG9jcwoKMjAxMS0wMi0xMCAxMDo0OToyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgZGVzaWduOiB0d2VhayBkb2NzIGEgbGl0dGxlCgoyMDExLTAyLTEwIDEwOjM0OjU3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICBkZXNpZ246IHVwZGF0ZSBRb1MgZG9jdW1lbnQKCSAgQWRkIG5ldyBRb1MgdHlwZXMgYW5kIHRhbGsgYWJvdXQgdGhlIG5ldyB0aHJvdHRsZSBRb1MgbWVzc2FnZS4KCjIwMTEtMDItMTAgMTM6NDY6MDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVycG9vbC50eHQ6CgkgIGRvY3M6IGZpeCBzb21lIHR5cG9zIGluIHRoZSBidWZmZXJwb29sIGRyYWZ0CgoyMDExLTAyLTEwIDEwOjE5OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudHM6IGZpeCBnLWkgYW5ub3RhdGlvbiBmb3IgZ3N0X2V2ZW50X25ld190YWcoKSB3aGljaCB0YWtlcyBvd25lcnNoaXAgb2YgdGhlIHRhZyBsaXN0CgoyMDExLTAyLTEwIDAwOjAyOjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGRvY3M6IG1lbnRpb24gdGhhdCBpdCdzIG5lY2Vzc2FyeSB0byBzZXQgdGhlIHN0YXRlIG9mIGVsZW1lbnRzIGFkZGVkIHRvIGFuIGFscmVhZHktcnVubmluZyBwaXBlbGluZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQxNjMxCgoyMDExLTAyLTA5IDE2OjIyOjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVycG9vbC50eHQ6CgkgIGRlc2lnbjogYWRkIGRyYWZ0IGZvciBmaXJzdCBpZGVhcyBmb3IgYSBidWZmZXJwb29sIGZlYXR1cmUKCSAgQWRkIGEgZmlyc3QgZHJhZnQgd2l0aCBzb21lIGlkZWFzIGFuZCB1c2UgY2FzZXMgZm9yIHRoZSBpbXBsZW1lbnRhdGlvbgoJICBmb3IgYnVmZmVycG9vbHMuIFRoZSBwdXJwb3NlIGlzIHRvIGJlIGFibGUgdG8gbWFrZSBlbGVtZW50cyBuZWdvdGlhdGUKCSAgdGhlaXIgYnVmZmVyIHJlcXVpcmVtZW50cyBhcyB3ZWxsIGFzIHByb3ZpZGUgYW4gaW5mcmFzdHJ1Y3R1cmUgdG8KCSAgcHJlYWxsb2NhdGUgYW5kIHJldXNlIGJ1ZmZlcnMgaW4gYW4gZWFzeSB3YXkuCgoyMDExLTAyLTA5IDE1OjIzOjEzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBkb2NzOiBjbGFyaWZ5IHRoZSBOT01JTkFMX0JJVFJBVEUgZG9jcwoJICBUZWxsIHRoYXQgaXRzIGEgdGFyZ2V0IGJpdHJhdGUgYW5kIGFjdHVhbCB2YWx1ZXMgbWlnaHQgYmUgZGlmZmVyZW50LgoKMjAxMS0wMi0wMyAxNToxNzoxMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiB0cmlnZ2VyIHJlYnVpbGQgc2V0dXAgaW4gX25ldwoJICBGYWlsaW5nIHRvIGRvIHNvIGluIHRoZSBXaW5kb3dzIGNhc2UgKGltcGxpY2l0bHkgdHJpZ2dlcmVkIG90aGVyd2lzZSkKCSAgd291bGQgaGF2ZSBhIHN1YnNlcXVlbnQgX3dhaXQgcmV0dXJuIGltbWVkaWF0ZWx5IGxlYWRpbmcgdG8gaGlnaCBDUFUKCSAgdXNhZ2UgdGltZW91dCBsb29wcy4KCSAgRml4ZXMgIzY0MDY3NS4KCjIwMTEtMDItMDMgMTA6NTM6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogbWFrZSBhZGRpbmcvcmVtb3Zpbmcgb2YgZ3N0X2RlYnVnX2xvZ19kZWZhdWx0KCkgd29yayBwcm9wZXJseQoJICBNYWtlIGFkZGluZy9yZW1vdmluZyBnc3RfZGVidWdfbG9nX2RlZmF1bHQoKSB3b3JrIHJlbGlhYmx5IGluIGFsbAoJICBjaXJjdW1zdGFuY2VzLiBUaGUgcHJvYmxlbSB3YXMgdGhhdCBkZXBlbmRpbmcgb24gcGxhdGZvcm0gYW5kIGxpbmtlcgoJICBmbGFncyB0aGUgZnVuY3Rpb24gYXJndW1lbnQgbWlnaHQgcmVzb2x2ZSB0byBkaWZmZXJlbnQgYWRkcmVzc2VzLAoJICB3aGljaCBtYWRlIGl0IGltcG9zc2libGUgdG8gcmVtb3ZlIHRoZSBkZWZhdWx0IGxvZyBmdW5jdGlvbiBhZGRlZAoJICBpbiBnc3RfaW5pdCgpIGZyb20gYXBwbGljYXRpb24gY29kZSAoYmVjYXVzZSB0aGUgcG9pbnRlciB2YWx1ZXMKCSAgZGlkbid0IG1hdGNoKS4gVGhlIG5ldyBhcHByb2FjaCBzaG91bGQga2VlcCB0aGluZ3Mgc2ltcGxlIGJ5IHBhc3NpbmcKCSAgTlVMTCBmb3IgdGhlIGRlZmF1bHQgZnVuY3Rpb24sIHdoaWNoIHRoZSBjb2RlIGluIGxpYmdzdHJlYW1lciBjYW4KCSAgdGhlbiBoYW5kbGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjUzOTYKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MDc3MQoKMjAxMS0wMi0wMyAxMDoyODowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBSZXZlcnQgImluZm86IHVzZSB0aGUgcHVibGljbHkgdmlzaWJsZSBhZGRyZXNzIHRvIGZpeCB0aGUgdGVzdHMiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZWI1NjY4N2E2ZGZkMjA3NTA3YTRjYTAwMGVhZTUzZjkzYjVlMzNlYS4KCSAgV2hpbGUgdGhpcyBjb21taXQgbWF5IGhhdmUgZml4ZWQgYSBwcm9ibGVtIG9uIG9uZSBvZiB0aGUgYnVpbGQgYm90cywKCSAgaXQgZGlkbid0IGFjdHVhbGx5IGZpeCB0aGUgb3JpZ2luYWwgYnVnIHJlcG9ydGVkIGZvciB3aW4zMi4KCSAgQWxzbywgaXQgY2F1c2VzIG90aGVyIHByb2JsZW1zLCBzdWNoIGFzIHRoZSBsb29rdXAgZmFpbGluZyB3aGVuCgkgIGNhbGxlZCBmcm9tIEMrKyBjb2RlIChnc3QtcGhvbm9uLCBhbWFyb2spLgoJICBUaGlzIG5lZWRzIHRvIGJlIGZpeGVkIGRpZmZlcmVudGx5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQwNzcxCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjUzOTYKCjIwMTEtMDItMDIgMTU6MzU6NDUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBwcm9wZXJseSBpZGVudGl0eSBkZXF1ZXVlZCBldmVudCBhcyBzdWNoCgkgIC4uLiB3aGljaCBhdm9pZHMgdGVybWluYXRpbmcgd2l0aCBFUlJPUiByYXRoZXIgdGhhbiBVTkVYUEVDVEVELgoKMjAxMS0wMi0wMiAwMjowNzo1OCArMDAwMCAgUGV0ZXIgQ29sbGluZ2JvdXJuZSA8cGV0ZXJAcGNjLm1lLnVrPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogdXNlICRHU1RfUFJFRklYIHZhcmlhYmxlCgkgIFRoaXMgbWFrZXMgaXQgZWFzaWVyIHRvIGNoYW5nZSB0aGUgcHJlZml4IGJ5IGVkaXRpbmcgdGhlIHNjcmlwdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MTIxMgoKMjAxMC0wOC0xOSAyMjo0MzowNyArMDMwMCAgU3JlZXJlbmogQmFsYWNoYW5kcmFuIDxzcmVlcmVuai5iYWxhY2hhbmRyYW5Abm9raWEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogYWRkIGEgbmV3ICJlbmNvZGVkLWJ5IiB0YWcKCSAgVXNlY2FzZTogSUQzdjIgVEVOQyAoIkVuY29kZWQgYnkiKSBmcmFtZS4KCSAgQVBJOiBHU1RfVEFHX0VOQ09ERURfQlkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyNzI2OAoKMjAxMS0wMS0yOSAxODowMjoxMSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSAgbmV0OiB1c2Ugc29ja2xlbl90IHdoZXJlIGFwcHJvcHJpYXRlIHJhdGhlciB0aGFuIHNwZWNpZmljIHR5cGUKCSAgSW4gcGFydGljdWxhciwgZml4ZXMgQ3lnd2luIGJ1aWxkIHdoZXJlIHNvY2tsZW5fdCBpcyBkZWZpbmVkIGFzIGludAoJICBpbiBsaW5lIHdpdGggbmF0aXZlIHdpbjMyIGFwaSBkZWZpbml0aW9uLgoKMjAxMS0wMS0zMSAxNTo1ODoxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSAgYnVzOiBob25vdXIgYW55IHBlci10aHJlYWQgZGVmYXVsdCBtYWluIGNvbnRleHQgc2V0IHZpYSBnX21haW5fdGhyZWFkX3B1c2hfdGhyZWFkX2RlZmF1bHQoKQoJICBNYWtlcyBnc3RfYnVzX2FkZF93YXRjaCgpLCBnc3RfYnVzX2FkZF93YXRjaF9mdWxsKCksIGdzdF9idXNfYWRkX3NpZ25hbF93YXRjaCgpLAoJICBhbmQgZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoX2Z1bGwoKSBjb252ZW5pZW5jZSBmdW5jdGlvbnMgYXV0b21hdGljYWxseSBwaWNrIHVwCgkgIGFueSBub24tZGVmYXVsdCBtYWluIGNvbnRleHRzIHNldCBmb3IgdGhlIGN1cnJlbnQgdGhyZWFkIHZpYQoJICBnX21haW5fdGhyZWFkX3B1c2hfdGhyZWFkX2RlZmF1bHQoKS4KCjIwMTEtMDEtMjggMTU6MzY6MzMgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IE9ubHkgc2V0IGRpc2NvbnQgb24gdGhlIGZpcnN0IGJ1ZmZlciBhZnRlciBkcm9wcwoJICBSZXNldCB0aGUgZGlzY29udCBtZW1iZXIgYWZ0ZXIgc2V0dGluZyBkaXNjb250IG9uIHRoZSBmaXJzdCBidWZmZXIgYWZ0ZXIKCSAgZHJvcHBpbmcuCgoyMDExLTAxLTI4IDE5OjA4OjA4ICswMDAwICBCYXN0aWVuIE5vY2VyYSA8aGFkZXNzQGhhZGVzcy5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBHc3RFbGVtZW50OiBGaXggd2FybmluZyB3aXRoIEdDQyA0LjYKCSAgZ3N0ZWxlbWVudC5jOiBJbiBmdW5jdGlvbiDigJhnc3RfZWxlbWVudF9nZXRfcmVxdWVzdF9wYWTigJk6CgkgIGdzdGVsZW1lbnQuYzoxMDUyOjE4OiBlcnJvcjogdmFyaWFibGUg4oCYdG1w4oCZIHNldCBidXQgbm90IHVzZWQgWy1XZXJyb3I9dW51c2VkLWJ1dC1zZXQtdmFyaWFibGVdCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDA4NTAKCjIwMTEtMDEtMjcgMDk6Mjg6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogcHJpbnQgdW5zZXQgYnVmZmVyIHRpbWVzdGFtcHMgb3IgZHVyYXRpb25zIGFzICdub25lJwoJICBMaWtlIGZha2VzaW5rIGFuZCBmYWtlc3JjIGRvLgoKMjAxMS0wMS0xMiAxNjowMzozMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGRvbid0IHRha2Ugb2JqZWN0IGxvY2sgZm9yIHJlYWRpbmcgdGhlIGZvdW5kIGNhcHMKCSAgT25jZSB3ZSBzd2l0Y2ggdG8gbm9ybWFsIG1vZGUsIHdlJ3JlIG5vdCB0eXBlZmluZGluZyBhbnltb3JlIGFuZCB0aHVzIHRoZSBjYXBzCgkgIHdpbGwgbm90IGNoYW5nZS4gVGhlcmVmb3JlIGNhbiBhdm9pZCB0aGUgb2JqZWN0IGxvY2sgaW4gdGhlIGRhdGEtZmxvdyBwYXRoLgoJICBUaGUgbG9ja2luZyB3YXMgYWRkZWQgaW4gb3JkZXIgdG8gZml4IGJ1ZyAjNjA4ODc3LgoKMjAxMS0wMS0yNSAwOTozOTo0NSArMDgwMCAgWmhhbmcgV2FubWluZyA8V2FubWluZy5aaGFuZ0B0aWV0by5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJpbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OgoJKiBkb2NzL3JhbmRvbS9jYXBzOgoJKiBkb2NzL3JhbmRvbS9vbWVnYS9UT0RPLTAuMS4wOgoJKiBkb2NzL3JhbmRvbS90aG9tYXN2cy9jYXB0dXJpbmc6CgkqIGRvY3MvcmFuZG9tL3d0YXkvZXZlbnRzOgoJKiBkb2NzL3JhbmRvbS93dGF5L2V2ZW50czM6CgkqIGRvY3Mvc2xpZGVzL291dGxpbmU6CgkgIGRvY3M6IGZpeCBhIGZldyBtb3JlIHR5cG9zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDA1MDIKCjIwMTEtMDEtMjUgMTg6NDg6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgZG9jczogZmxlc2ggb3V0IHR5cGVmaW5kZWxlbWVudCBkb2NzIHNvbWUgbW9yZQoJICBNZW50aW9uIHRoYXQgaGF2ZS10eXBlIHNpZ25hbCBtYXkgYmUgZW1pdHRlZCBmcm9tIHN0cmVhbWluZwoJICB0aHJlYWQgb3IgYXBwbGljYXRpb24gdGhyZWFkLCBhbmQgZml4IGEgdHlwby4KCjIwMTEtMDEtMTIgMTY6MDM6NTcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBjb2RlIGFuZCBjb21tZW50IGNsZWFudXBzCgkgIE1ha2UgY29kZSB0d28gcGxhY2VzIG9mIHRoZSBjb2RlIHRoZSBwdXNoZXMgdGhlIGJ1ZmZlciBzdG9yZSBtb3JlIHNpbWlsYXIuIE1vcmUKCSAgY29tbWVudHMgYW5kIGRlYnVnIGxvZ2dpbmcuCgoyMDExLTAxLTEyIDEzOjA1OjA2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSAgdHJhY2U6IGVuc3VyZSBtZXNzYWdlcyBhcmUgXDAgdGVybWluYXRlZAoKMjAxMS0wMS0xMiAxMjo1ODo0NCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBuZXR0aW1lcHJvdmlkZXI6IGhhbmRsZSBpbnZhbGlkIG5ldHdvcmsgYWRkcmVzc2VzIGVhcmxpZXIKCSAgSGFuZGxlIGluZXRfYXRvbigpIHJldHVybiBjb2RlLgoKMjAxMS0wMS0xMiAxMjo0NDo1OSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkgIGNoZWNrczogYWRkIGEgY29tbWVudCB0byBpbmRpY2F0ZSB0aGF0IHdlIGludGVudGlvbmFsbHkgbGVhdmUgb3V0IHRoZSAnYnJlYWsnCgoyMDExLTAxLTEyIDEyOjQzOjA0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IHJlbW92ZSBkZWFkIGNvZGUKCSAgVGhlIEdFcnJvciBpcyBvbmx5IHVzZWQgZm9yIHRoZSBtbWFwIG9wZXJhdGlvbnMuIElmIHdlIGhhdmUgYW4gZXJyb3Igd2UgaGFuZGxlCgkgIGFuZCBjbGVhbiBpdCB0aGVyZSBhbHJlYWR5LgoKMjAxMS0wMS0xMiAwOTozMzo1MyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIGRvY3M6IHNtYWxsIGNvbnRyb2xsZXIgYXBpIGRvY3MgaW1wcm92ZW1lbnQKCjIwMTEtMDEtMTEgMTU6MDk6NTIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBjYW5vbmljYWxpemUgc2lnbmFsIG5hbWUKCjIwMTEtMDEtMTEgMTU6MDk6MzAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIGRvY3M6IG1lbnRpb24gaGF2ZS10eXBlIHNpZ25hbCBpbiB0aGUgZG9jcy4KCjIwMTEtMDEtMjUgMDk6MTU6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBkb2NzOiBtaW5vciBnc3QtbGF1bmNoIG1hbiBwYWdlIGZpeAoJICBUcmFuc21pdHRlci9yZWNlaXZlciBwaXBlbGluZXMgd2VyZSBtaXNsYWJlbGxlZC4gU3BvdHRlZCBieSBNYWppbi4KCjIwMTEtMDEtMjUgMTY6MDk6MTggKzEwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZSB0ZXN0OiBSZW1vdmUgd29ya2Fyb3VuZCBmb3IgcGFkX3Rhc2sgaGFuZ3MKCSAgUmVtb3ZlIGNvZGUgdGhhdCBpc24ndCBuZWVkZWQgYW55IGxvbmdlciwgd2hpY2ggc2V0cyB0aGUgbXVsdGlxdWV1ZQoJICB0byBQTEFZSU5HIGFuZCBiYWNrIGJlZm9yZSB1bnJlZmZpbmcsIGluIG9yZGVyIHRvIGF2b2lkIGEgZGVhZGxvY2sKCSAgd2FpdGluZyBmb3IgZ3N0cGFkIHRhc2tzIHRoYXQgd2VyZSBuZXZlciBzdGFydGVkLiBUaGUgcHJvYmxlbSBzZWVtcwoJICB0byBoYXZlIGJlZW4gZml4ZWQgbG9uZyBhZ28uCgoyMDExLTAxLTI1IDAwOjIwOjM0ICswODAwICBDYWkgWXVhbnFpbmcgPGNramFja2V0QGdtYWlsLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtTVQtcmVmY291bnRpbmcudHh0OgoJICBkZXNpZ24gZG9jczogZml4IDIgdHlwb3MgaW4gcGFydC1NVC1yZWZjb3VudGluZwoKMjAxMS0wMS0yNCAxNzo0NjoxNSArMDgwMCAgWWFuZyBYaWNodWFuIDx4aWNodWFuLnlhbmdAdGlldG8uY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RiaW4udHh0OgoJICBkZXNpZ24gZG9jczogcGFydC1nc3RiaW4udHh0IGZpeCB0eXBvCgkgIFNpZ25lZC1vZmYtYnk6IFlhbmcgWGljaHVhbiA8eGljaHVhbi55YW5nQHRpZXRvLmNvbT4KCjIwMTEtMDEtMTkgMTU6NDg6MjYgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVybGlzdC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1wcmVyb2xsLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1wdXNoLXB1bGwudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNjaGVkdWxpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkgIGRlc2lnbiBkb2NzOiBmaXggYSBmZXcgdHlwb3MgYW5kIGEgdGhpbmtvCgoyMDExLTAxLTExIDE3OjQzOjU3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNsb2NrOiBBUEk6IEFkZCBmdW5jdGlvbiB0byByZS1pbml0IHBlcmlvZGljIEdzdENsb2NrSURzCgoyMDExLTAxLTIwIDE0OjM3OjI1ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgZ3N0cGx1Z2lubG9hZGVyOiBkbyBub3QgbGVhayB0aGUgZGVzY3JpcHRpb24gc3RyaW5nCgkgIFRoZSBkZXNjcmlwdGlvbiBzdHJpbmcgd2FzIGNoYW5nZWQgdG8gYW4gaW5saW5lZCBzdHJpbmcgYSB3aGlsZSBiYWNrLgoJICAoQnV0OiBubyBuZWVkIHRvIGludGVybiB0aGUgY29uc3Qgc3RyaW5ncyBoZXJlLCB3ZSBqdXN0IHVzZSB0aGUgaW50ZXJuaW5nCgkgIHRvIGF2b2lkIGFsbG9jYXRpbmcgZHVwbGljYXRlcyBhbmQgbWFrZSBtZW1vcnkgbWFuYWdlbWVudCBlYXNpZXIsCgkgIHNpbmNlIHRoZSBzdHJpbmdzIHdpbGwgYmUgYXJvdW5kIGZvciB0aGUgbGlmZS10aW1lIG9mIHRoZSBhcHAgYW55d2F5KS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MDA3MQoKMjAxMS0wMS0yMiAxNTozMzo1OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBjbGFyaWZ5IGRvY3MKCjIwMTEtMDEtMTEgMTA6MzM6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkgIGRlc2lnbjogdXBkYXRlIGJ1ZmZlcmluZyBkb2MKCSAgQWRkIHN0cmF0ZWdpZXMgdG8gYnVmZmVyaW5nIGRvYwoKMjAxMS0wMS0yNCAxMTo1MzoxMiArMDIwMCAgTWFydCBSYXVkc2VwcCA8bWFydC5yYXVkc2VwcEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGRvY3M6IGFkZCBtaXNzaW5nICJTaW5jZTogMC4xMC4zMiIgbWFya2VycyBmb3IgR3N0Q2xvY2sKCSAgU2luY2UgdGFncyB3ZXJlIG1pc3NpbmcgZm9yIGdzdF9jbG9ja19zaW5nbGVfc2hvdF9pZF9yZWluaXQoKQoJICBhbmQgR1NUX0NMT0NLX0RPTkUuCgoyMDExLTAxLTI0IDEwOjU2OjIxICswMjAwICBNYXJ0IFJhdWRzZXBwIDxtYXJ0LnJhdWRzZXBwQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIGRvY3M6IEZpeCBHc3RRdWV1ZTI6cmluZy1idWZmZXItbWF4LXNpemUgcHJvcGVydHkgU2luY2UgdGFnICgwLjEwLjMxLCBub3QgMC4xMC4zMCkKCjIwMTEtMDEtMjQgMTA6MjY6NDUgKzAyMDAgIE1hcnQgUmF1ZHNlcHAgPG1hcnQucmF1ZHNlcHBAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBkb2NzOiBhZGQgbWlzc2luZyAiU2luY2U6IDAuMTAuMzEiIG1hcmtlciBmb3IgZ3N0X3N0cnVjdHVyZV9nZXRfZGF0ZV90aW1lKCkKCjIwMTEtMDEtMjQgMTQ6MjI6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICB0ZXN0czogYWRkIHVuaXQgdGVzdCBmb3IgcmVhZC1iZXlvbmQtZW5kLW9mLXN0cmluZyBidWcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzOTY3NAoKMjAxMS0wMS0yNCAxNDoxNjozNyArMDAwMCAgTWlndWVsIEFuZ2VsIENhYnJlcmEgTW95YSA8bWFkbWFjMjUwMUBnbWFpbC5jb20+CgoJKiBnc3QvcGFyc2UvdHlwZXMuaDoKCSAgcGFyc2UtbGF1bmNoOiBkb24ndCByZWFkIHBhc3QgZW5kIG9mIHN0cmluZyBpZiBsYXN0IGNoYXJhY3RlciBpcyBhbiBlc2NhcGUgY2hhcgoJICBXaGVuIHRoZSBsYXN0IGNoYXJhY3RlciBvZiBhIHByb3BlcnR5IHZhbHVlIGlzIGEgYmFja3NsYXNoCgkgIHRoZSB1bmVzY2FwaW5nIGNvZGUgcmVhZHMgb25lIGJ5dGUgcGFzcyB0aGUgZW5kIG9mIHRoZSBzdHJpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzk2NzQKCjIwMTEtMDEtMTQgMDk6MjE6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWxzLm1hazoKCSAgZG9jczogaGFjayBhIGNoYXJzZXQ9dXRmLTggaW50byBwd2cvYWRtIGh0bWwgdmVyc2lvbnMKCSAgU28gdGhlIGVuY29kaW5nIG9mIHRoZSBvcmlnaW5hbCBkb2N1bWVudCBpcyByZXNwZWN0ZWQgYW5kCgkgIGRpc3BsYXlzIHByb3Blcmx5IGluIGJyb3dzZXJzIHdoZXJlIHRoZSBlbmNvZGluZyBhdXRvZGV0ZWN0aW9uCgkgIGZhaWxzIHRvIHJlY29nbmlzZSB0aGF0IGl0J3MgdXRmLTguCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzk0NDgKCjIwMTEtMDEtMTMgMTU6NDE6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IGRvbid0IGxlYWsgeG1sIGZpbGUgbmFtZSBpZiBHU1RfQ0hFQ0tfWE1MIGlzIHNldAoJICBTcG90dGVkIGJ5IG52aW5lZXRoQGdtYWlsLmNvbQoKMjAxMS0wMS0yMyAyMzo0NTo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAwLjEwLjMyID09PQoKMjAxMS0wMS0yMSAxMDoyNTozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDAuMTAuMzIKCjIwMTEtMDEtMjAgMTk6MDc6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBSZXZlcnQgImNvbmZpZ3VyZTogcmVxdWlyZSBnb2JqZWN0LWludHJvc3BlY3Rpb24gPj0gMC45LjEyIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDNhNTlkNDE2YWY2ZDBmOGI2MWUyNDYwODMwZWI2ZjExMzg5MjllYzIuCgkgIFJldmVydGluZyB0aGlzLCBhcyB0aGUgZmVhdHVyZSB3ZSBidW1wZWQgdGhlIHJlcXVpcmVtZW50IGZvcgoJICBkaWRuJ3QgYWN0dWFsbHkgd29yayBwcm9wZXJseSBvciBoZWxwIHdpdGggdGhlIGlzc3VlIHdlIHdlcmUKCSAgdHJ5aW5nIHRvIGZpeCAoYW5kIGl0IHdhcyBmaXhlZCBkaWZmZXJlbnRseSBpbiB0aGUgZW5kKS4KCjIwMTEtMDEtMTggMjI6NTE6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtdGhyZWFkcy54bWw6CgkgIGRvY3M6IGZpeCBzcGVsbGluZyBvZiAndGhyZXNob2xkJyBpbiBhcHAgZGV2IG1hbnVhbAoKMjAxMS0wMS0xOCAxMDoxMDowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjMxLjQgcHJlLXJlbGVhc2UKCjIwMTEtMDEtMTggMDk6MDQ6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBnb2JqZWN0LWludHJvc3BlY3Rpb246IHRyeSBoYXJkZXIgdG8gbWFrZSBnLWlyLXNjYW5uZXIgdXNlIHRoZSByaWdodCBsaWJnc3RyZWFtZXIKCSAgQXBwbHkgZml4IGZyb20gbGliZ3N0YmFzZSB0byBhbGwgY29yZSBsaWJzIG5vdyB0aGF0IHdlIGtub3cgdGhhdCBpdAoJICB3b3Jrcy4gU2hvdWxkIGZpeCBwcm9ibGVtcyB3aXRoIGctaXItc2Nhbm5lciB1c2luZyB0aGUgd3JvbmcKCSAgKGllLiBzeXN0ZW0pIGxpYmdzdHJlYW1lciwgbGVhZGluZyB0byBsaW5raW5nIGVycm9ycyBzdWNoIGFzCgkgIHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGdzdF9jbG9ja19zaW5nbGVfc2hvdF9pZF9yZWluaXQnLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM3NTQ5CgoyMDExLTAxLTE0IDAwOjIwOjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFscy5tYWs6CgkqIGRvY3MvcHdnL3B3Zy54bWw6CgkgIGRvY3M6IGZpeCBnYXJibGVkIFVURi04IGNoYXJhY3RlcnMgd2hlbiBnZW5lcmF0aW5nIGFwcCBkZXYgbWFudWFsIHBzL3BkZgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM5NDQ4CgoyMDExLTAxLTEzIDIwOjEyOjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgIGdvYmplY3QtaW50cm9zcGVjdGlvbjogYW5vdGhlciBhdHRlbXB0IHRvIG1ha2UgZy1pIGZpbmQgdGhlIHJpZ2h0IGxpYmdzdHJlYW1lcgoJICBUdXJucyBvdXQgZy1pIHB1dHMgdGhlIGFkZGl0aW9uYWwgLUwgd2Ugc3BlY2lmeSBhdCB0aGUgZW5kLCBoZWxwZnVsbHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzc1NDkKCjIwMTEtMDEtMTIgMTU6NDY6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IHJlcXVpcmUgZ29iamVjdC1pbnRyb3NwZWN0aW9uID49IDAuOS4xMgoJICBFYXJsaWVyIHZlcnNpb25zIGRvbid0IGhvbm91ciB0aGUgLUwvLS1saWJyYXJ5LXBhdGggb3B0aW9uLAoJICB3aGljaCB3ZSBuZWVkLiBTZWUgY29tbWl0IDRkMGNjZGFkIGluIGdvYmplY3QtaW50cm9zcGVjdGlvbiBnaXQuCgoyMDExLTAxLTEyIDEwOjE3OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgIGNvbnRyb2xsZXI6IHVwZGF0ZSBnLWkgaW5jbHVkZSBwYXRocyBhcyB3ZWxsIGZvciBoZWFkZXIgY2hhbmdlcwoJICBIb3BlZnVsbHkgbWFrZXMgTHVjaWQgYW5kIE1hdmVyaWNrIGJ1aWxkIGJvdHMgaGFwcHkgYWdhaW4KCjIwMTEtMDEtMTEgMTg6Mzk6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4zMS4zIHByZS1yZWxlYXNlCgoyMDExLTAxLTExIDE4OjM4OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL0xJTkdVQVM6CgkqIHBvL2dsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vc3YucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDExLTAxLTExIDE5OjI2OjQwICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVycHJpdmF0ZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5oOgoJICBjb250cm9sbGVyOiBGaXggaGVhZGVycyB0byB1c2UgPCA+IGluICNpbmNsdWRlIHN0YXRlbWVudHMKCSAgVGhlIGJlaGF2aW9yIG9mICIgIiBpbiBpbmNsdWRlIHN0YXRlbWVudHMgaXMgaW1wbGVtZW50YXRpb24tZGVmaW5lZCAtCgkgIHNlZSB0aGUgQyBzdGFuZGFyZCwgc2VjdGlvbiA2LjEwLjIgb3IKCSAgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yMTU5MwoKMjAxMS0wMS0xMSAxOToxNDoyOCArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBnc3RuZXQ6IEZpeCAtLWMtaW5jbHVkZSBmb3IgZ2lyIGdlbmVyYXRpb24KCSAgUHJldmlvdXNseSBpdCB3YXMgLSBwcm9iYWJseSBkdWUgdG8gY29weS9wYXN0ZSBlcnJvciAtIGxvb2tpbmcgZm9yCgkgIGdzdGJhc2UgaGVhZGVycy4KCSAgSXQncyBjaGFuZ2VkIG5vdyB0byBvbmx5IGluY2x1ZGUgdGhlIG9uZSBwdWJsaWMgaGVhZGVyIGZvciBnc3RuZXQuaAoKMjAxMS0wMS0xMSAxMzo0NzozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGdvYmplY3QtaW50cm9zcGVjdGlvbjogbWFrZSBnLWlyLXNjYW5uZXIgdHJ5IGhhcmRlciB0byBmaW5kIHRoZSByaWdodCBsaWJnc3RyZWFtZXIKCSAgSXQncyBub3QgcXVpdGUgY2xlYXIgdG8gbWUgd2h5IGctaXItc2Nhbm5lciBkb2Vzbid0IGdldCB0aGlzIGluZm8gZnJvbQoJICB0aGUgcGtnLWNvbmZpZyBmaWxlLCBub3Igd2h5IGxpYnRvb2wgZG9lc24ndCBnZXQgaXQgZnJvbSB0aGUgLmxhLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM3NTQ5CgoyMDExLTAxLTExIDEzOjA1OjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkgIHBrZ2NvbmZpZzogYWxzbyBhZGQgbGliZGlyIHRvIC11bmluc3RhbGxlZCAucGMgZmlsZXMKCSAgVGhpcyB3YXkgd2UgY2FuIGZpbmQgdGhlIHBhdGhzIHRvIHBhc3MgZS5nLiBnLWlyLXNjYW5uZXIgZm9yCgkgIHVuaW5zdGFsbGVkIHNldHVwcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzOTAzOQoKMjAxMS0wMS0xMSAxNTo0OToyMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBlNTcyYzg3IHRvIGY5NGQ3MzkKCjIwMTEtMDEtMTEgMTU6MTA6MzIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IGZpeGUgdGhlIHByb3BlcnR5IGxpbmsgYW5kIHRoZSBzaWNlIGRvY3MKCjIwMTEtMDEtMTEgMTI6NDY6MzEgKzAwMDAgIFJhaW1vIErDpHJ2aSA8cmFpbW8uamFydmlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgZ3N0cG9sbDogZml4IGNvbXBpbGVyIHdhcm5pbmcgd2l0aCBNaW5nVwoJICBnc3Rwb2xsLmM6IEluIGZ1bmN0aW9uICdnc3RfcG9sbF9nZXRfcmVhZF9ncG9sbGZkJzoKCSAgZ3N0cG9sbC5jOjY5MjoxMDogd2FybmluZzogYXNzaWdubWVudCBtYWtlcyBpbnRlZ2VyIGZyb20gcG9pbnRlciB3aXRob3V0IGEgY2FzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM4OTAwCgoyMDExLTAxLTEwIDE0OjM3OjQxIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkgIHRlc3Q6IG91dHB1dHNlbGVjdG9yOiBBZGQgYW5vdGhlciBuZWdvdGlhdGlvbiB0ZXN0CgkgIEFkZHMgYW4gdW5pdCB0ZXN0IHRvIGNoZWNrIHRoYXQgdGhlIG91dHB1dC1zZWxlY3RvciB3b3JrcwoJICB3aGVuIG5lZ290aWF0aW5nIGJlZm9yZSBzcmNwYWRzIGFyZSByZXF1ZXN0ZWQKCjIwMTEtMDEtMTAgMTQ6MTk6MTcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogSW1wcm92ZSBnZXQgYW5kIHNldCBjYXBzIGZ1bmN0aW9ucwoJICBJbXByb3ZlIHNpbmsgcGFkIGdldGNhcHMgYW5kIHNldGNhcHMgYnkgaGFuZGxpbmcgdGhlIGNhc2Ugd2hlcmUKCSAgbm8gc3JjIHBhZHMgZXhpc3QgeWV0CgoyMDExLTAxLTEwIDE2OjM1OjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gY2NiYWE4NSB0byBlNTcyYzg3CgoyMDExLTAxLTEwIDE0OjUyOjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNDY0NDVhZCB0byBjY2JhYTg1CgoyMDExLTAxLTEwIDA5OjU5OjE5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkgIHRlc3RzOiBzZWxlY3RvcjogdW5yZWYgcGVlciBwYWQKCSAgRG8gbm90IGZvcmdldCB0byB1bnJlZiBwZWVyJ3MgcGFkIG9uIG91dHB1dC1zZWxlY3RvciBuZWdvdGlhdGlvbgoJICB0ZXN0cwoKMjAxMS0wMS0xMCAxMzoxODoxNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBtYWtlIHN1cmUgd2Ugd2FpdCBhbmQgcmVsZWFzZSB0aGUgbGl2ZSBsb2NrCgkgIE1ha2Ugc3VyZSB3ZSByZWxlYXNlIHRoZSBsaXZlIGxvY2sgYW5kIHdhaXQgaW4gYWxsIGNhc2VzIHdoZW4gd2UgbmVlZCB0byB3YWl0CgkgIGZvciB0aGUgcGxheWluZyBvciBmbHVzaGluZyBzdGF0ZSBjaGFuZ2UuCgkgIEZpeGVzICM2MzU3ODUKCjIwMTEtMDEtMDggMTQ6NTI6MjcgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IERvbid0IHJlcGxhY2UgdmFsaWQgZXhpc3RpbmcgcGx1Z2lucyBieSBibGFja2xpc3RlZCBvbmVzCgkgIE9ubHkgcmVwbGFjZSBleGlzdGluZyBwbHVnaW5zIGJ5IGJsYWNrbGlzdGVkIG9uZXMgaWYgdGhleSBjb3JyZXNwb25kCgkgIHRvIHRoZSBleGFjdCBzYW1lIHBsdWdpbi4gSWYgdGhleSdyZSBub3QgdGhlIHNhbWUsIGtlZXAgdGhlIGV4aXN0aW5nCgkgIHZhbGlkIG9uZS4KCSAgRml4ZXMgIzYzODk0MQoKMjAxMS0wMS0wOCAwMjoxOTozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC1lbGVtZW50LWNoZWNrLm00LmluOgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgY29uZmlndXJlLCBnc3QtdW5pbnN0YWxsZWQ6IHJlbW92ZSBhIGZldyBiYXNoaXNtCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzg5NjEKCjIwMTEtMDEtMDcgMTI6MTM6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4zMS4yIHByZS1yZWxlYXNlCgoyMDExLTAxLTA3IDAyOjE4OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSAgaW5kZXhlcnM6IGZpeCB0d28gc21hbGwgbGVha3MKCSAgZWxlbWVudCBmYWN0b3J5IHBsdWdpbl9uYW1lcyBhcmUgaW50ZXJuZWQgc3RyaW5ncyB0aGVzZSBkYXlzLgoKMjAxMS0wMS0wNyAwMDo1MzoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IG5ldmVyIGRpc2FibGUgZ19hc3NlcnQoKSBhbmQgY2FzdCBjaGVja3MgZm9yIHRoZSB1bml0IHRlc3RzCgkgIFRoZSB1bml0IHRlc3RzIGFyZSByaWRkbGVkIHdpdGggZ19hc3NlcnQoKSBhbmQgZnJpZW5kcywgbWFrZSBzdXJlIHdlCgkgIGRvbid0IGRpc2FibGUgYXNzZXJ0IGFuZCBjYXN0IGNoZWNrcyBmb3IgdGhlIHVuaXQgdGVzdHMgZXZlbiBpZgoJICB0aGlzIGhhcyBiZWVuIHNwZWNpZmllZCBmb3IgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgYmFzZSwgZS5nLiB2aWEKCSAgLS1kaXNhYmxlLWdsaWItYXNzZXJ0cy4KCjIwMTEtMDEtMDYgMTk6NDA6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBpZ25vcmUgb2xkIGxpYmdzdHZhbHZlLnNvIGFuZCBsaWJnc3RzZWxlY3Rvci5zbyBwbHVnaW5zIHRvIG1pbmltaXplIHVwZ3JhZGUgcGFpbgoJICBJZ25vcmUgcGx1Z2lucyB3aGljaCBoYXZlIGJlZW4gbW92ZWQgaW50byBjb3JlZWxlbWVudHMsIHNvIGl0J3MKCSAgc3RpbGwgcG9zc2libGUgdG8ganVzdCB1cGdyYWRlIEdTdHJlYW1lciBjb3JlIHdpdGhvdXQgaGF2aW5nIHRvCgkgIHVwZ3JhZGUgdGhlIHdob2xlIHN0YWNrLgoKMjAxMS0wMS0wNiAxOToyMTo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgUmV2ZXJ0ICJwYWR0ZW1wbGF0ZTogYWxsb3cgZGlzYWJsaW5iZyB0aGUgdGVtcGxhdGUgbmFtZSBjb25mb3JtYW5jZSBjaGVja3MiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZjkwMzljMjIwNDBlMWEzOGEzNjkxYmM0ZDI5OWFmNDI3Yzk2MzI1NS4KCSAgV2UgdXNlIC1ER19ESVNBQkxFX0FTU0VSVFMgZm9yIHJlbGVhc2VzIGFuZCBwcmUtcmVsZWFzZXMsIGJ1dAoJICBkb24ndCB3YW50IHRvIGRpc2FibGUgcGFkIG5hbWUgY2hlY2tpbmcgZm9yIHJlbGVhc2VzIGluIGdlbmVyYWwsCgkgIEkgdGhpbmsuIE5lZWQgYSBiZXR0ZXIgc29sdXRpb24gaGVyZS4gRml4ZXMgcGFkIHVuaXQgdGVzdCBpbgoJICBwcmUtcmVsZWFzZS9yZWxlYXNlIG1vZGUuCgoyMDExLTAxLTA0IDEyOjQyOjUwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkgIG91dHB1dC1zZWxlY3RvcjogQWRkIHBhZC1uZWdvdGlhdGlvbi1tb2RlIHByb3BlcnR5CgkgIEFkZHMgZ2V0Y2Fwcy9zZXRjYXBzIHRvIG91dHB1dC1zZWxlY3RvciBhbmQgYWRkcyBhIHByb3BlcnR5CgkgIHRvIHNlbGVjdCB3aGljaCB0eXBlIG9mIG5lZ290aWF0aW9uIHNob3VsZCBiZSBkb25lLgoJICBUaGUgYXZhaWxhYmxlIG1vZGVzIGFyZToKCSAgKiBub25lOiAgIG5vIG5lZ290aWF0aW9uIChjdXJyZW50IGJlaGF2aW9yKSwgZ2V0Y2FwcyByZXR1cm4gQU5ZIGFuZAoJICBzZXRjYXBzIGFyZW4ndCBzZXQgb24gYW55IG9mIHRoZSBwZWVycwoJICAqIGFsbDogICAgdXNlIGFsbCBwYWRzIChkZWZhdWx0KSwgZ2V0Y2FwcyByZXR1cm5zIHRoZSBpbnRlcnNlY3Rpb24gb2YKCSAgcGVlciBwYWRzIGFuZCBzZXRjYXBzIGlzIHNldCBvbiBhbGwgcGVlcnMKCSAgKiBhY3RpdmU6IGdldGNhcHMgYW5kIHNldGNhcHMgYXJlIHByb3hpZWQgdG8gdGhlIGFjdGl2ZSBwYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzODM4MQoKMjAxMS0wMS0wNiAxODoxODoyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgZG9jczogbWVudGlvbiBleHRyYSBpbnB1dC1zZWxlY3RvciBwYWQgcHJvcGVydGllcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM4MzgxCgoyMDExLTAxLTA2IDE3OjQ3OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL0xJTkdVQVM6CgkqIHBvL2VsLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMC0wOS0yMyAxMjo0OTo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBhdm9pZCB1bm5lY2Vzc2FyeSBtYWxsb2MvZnJlZSBmb3IgZWFjaCBsb2cgZnVuY3Rpb24gY2FsbCBvbiBNU1ZDCgkgIEF2b2lkIHVubmVjZXNzYXJ5IG1hbGxvYy9mcmVlIHRvIGdldCB0aGUgZmlsZSBiYXNlbmFtZSBvbiBNU1ZDIHRvIGF2b2lkCgkgIHVubmVjZXNzYXJ5IG92ZXJoZWFkIHdoZW4gZG9pbmcgR1NUX0RFQlVHPWZvbzo1IG9yIHNvIChzaW5jZSBpdCB3b3VsZCBiZQoJICBkb25lIGJlZm9yZSB0aGUgY2F0ZWdvcnkgbG9nIGxldmVsIGZpbHRlcmluZykuCgoyMDExLTAxLTA2IDE3OjI5OjQ2ICswMDAwICBjaHJpc3RpYW4gc2NoYWxsZXIgPGNocmlzdGlhbi5zY2hhbGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgVXBkYXRlIHNwZWMgZmlsZSB3aXRoIGxhdGVzdCBjaGFuZ2VzIGFuZCBlbmFibGUgR0lSCgoyMDExLTAxLTA1IDEyOjU5OjQ4IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgb2JqZWN0OiBGaXggY3JlYXRpb24gb2YgZGVmYXVsdCBuYW1lCgkgIENoYW5nZSB0aGUgZml4ZWQgYWxsb2NhdGlvbiAoISkgdG8gZ19zdHJkdXBfcHJpbnRmKCkuCgoyMDEwLTEyLTIwIDEzOjMwOjQzICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgR3N0RWxlbWVudDogQWRkIGEgbW9yZSBmbGV4aWJsZSB3YXkgdG8gZ2V0IHJlcXVlc3QgcGFkcy4KCSAgVGhlIG5ldyByZXF1ZXN0X25ld19wYWRfZnVsbCB2bWV0aG9kIHByb3ZpZGVzIGFuIGFkZGl0aW9uYWwgY2FwcyBmaWVsZCwKCSAgd2hpY2ggYWxsb3dzIGVsZW1lbnRzIHRvIHRha2UgYmV0dGVyIGRlY2lzaW9uIHByb2Nlc3MuCgkgIEFsc28sIGFkZCBhIGdzdF9lbGVtZW50X3JlcXVlc3RfcGFkKCkgZnVuY3Rpb24gdG8gYWxsb3cgZGV2ZWxvcGVycyB0byBiZQoJICBhYmxlIHRvIHNwZWNpZnkgd2hpY2ggcGFkIHRlbXBsYXRlIHRoZXkgd2FudCBhIHBhZCBvZi4KCSAgQ29udmVydCBnc3R1dGlscyB0byB1c2UgdGhhdCBuZXcgbWV0aG9kIGluc3RlYWQgb2YgdGhlIG9sZCBvbmUgd2hlbiBtb3JlCgkgIGVmZmljaWVudC4KCSAgVGhpcyBpcyB1c2VmdWwgZm9yIGJlaW5nIGFibGUgdG8gcmVxdWVzdCBwYWRzIGluIGEgbW9yZSBmbGV4aWJsZSB3YXksCgkgIGVzcGVjaWFsbHkgd2hlbiB0aGUgZWxlbWVudCBjYW4gcHJvdmlkZSBwYWRzIHdob3NlIGNhcHMgZGVwZW5kIG9uCgkgIHJ1bnRpbWUgY29uZmlndXJhdGlvbiBhbmQgdGhlcmVmb3JlIGNhbid0IHByb3ZpZGUgcHJlLXJlZ2lzdGVyZWQKCSAgcGFkIHRlbXBsYXRlcy4KCSAgQVBJOiBHc3RFbGVtZW50OjpyZXF1ZXN0X25ld19wYWRfZnVsbAoJICBBUEk6IGdzdF9lbGVtZW50X3JlcXVlc3RfcGFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzczMDAKCjIwMTEtMDEtMDUgMTU6NTM6MjggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJICBpbnB1dHNlbGVjdG9yOiByZW1vdmUgInNlbGVjdC1hbGwiIHByb3BlcnR5CgkgIHNlbGVjdC1hbGwgbW9kZSBpcyBhIGJpdCBicm9rZW4gKGUuZy4gbmV3c2VnbWVudCBldmVudAoJICBoYW5kbGluZyksIHNvIHJlbW92ZSB0aGF0IGZvciBub3cuIFRoZSBmdW5uZWwgZWxlbWVudAoJICBpbiBmYXJzaWdodCBwcm92aWRlcyBzaW1pbGFyIGZ1bmN0aW9uYWxpdHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01MzkwNDIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzODM4MQoKMjAxMS0wMS0wNSAxNTozNjo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogcmVtb3ZlIHNhZmV0eSBjaGVjayBmb3IgR0xpYiA8IDIuOAoJICBEb24ndCB3b3JyeSBhYm91dCBhY2NpZGVudGFsbHkgdXNpbmcgR0xpYiA8IDIuOCBhdCBydW50aW1lIGFueW1vcmUuCgoyMDExLTAxLTA1IDExOjI2OjEzICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJICBnc3RkYXRldGltZTogRGlzYWJsZSB1c2FnZSBvZiBHRGF0ZVRpbWUgb24gTWFjT1NYCgkgIEdMaWIncyBHRGF0ZVRpbWUgZG9lc24ndCBoYW5kbGUgcHJvcGVybHkgdGhlIGdtdCBvZmZzZXQuIFRoZXJlZm9yZQoJICB1c2Ugb3VyIG93biBpbnRlcm5hbCB2ZXJzaW9uIGluc3RlYWQgb24gTWFjT1NYLgoJICBTZWUgYnVnICM2Mzg2NjYKCjIwMTEtMDEtMDUgMTA6NTY6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1wcm9ncmVzcy50eHQ6CgkgIGRlc2lnbjogbW9yZSB1cGRhdGVzIGZvciB0aGUgcHJvZ3Jlc3MgbWVzc2FnZXMKCjIwMTEtMDEtMDQgMTg6MzY6NDEgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctc2lnbmFscy54bWw6CgkgIHB3ZzogRml4IGxpbmsgdG8gR09iamVjdCBkb2N1bWVudGF0aW9uCgkgIEJldHRlciBoYXZlIGdub21lLm9yZyB0aGFuIHZpYWdyYSA6KQoKMjAxMS0wMS0wMyAyMDozMjoyMyArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogQWx3YXlzIG1hcmsgcmVjZXB0aW9uIGFzIGNvbXBsZXRlIGFmdGVyIEVYSVQKCSAgQXZvaWRzIHdhaXRpbmcgZm9yZXZlciBvbiBnc3RfcG9sbF93YWl0IHdoZW4gdXNpbmcgdGhlIHNlbGVjdAoJICBiYWNrZW5kLgoJICBGaXhlcyAjNjM3MDU3CgoyMDExLTAxLTA0IDAwOjQ4OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgZ3N0aW5mbzogZG9uJ3QgdXNlIHByaW50ZiBleHRlbnNpb25zIGlmIEdMaWIgaXNuJ3QgdXNpbmcgdGhlIHN5c3RlbSBwcmludGYKCSAgTWlnaHQgaGVscCB3aXRoIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzg1OTkKCjIwMTEtMDEtMDMgMjA6MTk6MDUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgZ3N0cG9sbDogRml4IGZvciAocClzZWxlY3QgYmFja2VuZAoJICBXZSBuZWVkIHRvIHJlc2V0IHRoZSByZXZlbnRzIGZpZWxkIG9mIGVhY2ggcG9sbGZkIHdoZW4gcmVhZGluZyB0aGUgcmVzdWx0cwoJICBmcm9tIHNlbGVjdCBlbHNlIHdlJ2xsIGVuZCB1cCB3aXRoIHN0cmF5IGluZm8gZnJvbSBwcmV2aW91cyBjYWxscyB0bwoJICBzZWxlY3QuCgoyMDExLTAxLTAzIDAxOjA2OjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogbWFrZSBuZXcgZ3N0X3ZhbHVlX2xpc3RfbWVyZ2UoKSB3b3JrIHByb3Blcmx5CgkgIEZpeCBmcmVlaW5nIG9mIHBhcnRpYWxseS1pbml0ZWQgbGlzdCB2YWx1ZSB3aGVuIGJvdGggdmFsdWVzCgkgIHBhc3NlZCBhcmUgZXF1YWwgYW5kIHdlIHdhbnQgdG8gcmV0dXJuIGEgc2luZ2xlIG5vbi1saXN0CgkgIHZhbHVlIGFzIHJlc3VsdC4gRml4ZXMgdW5pdCB0ZXN0LiBBbHNvIGZpeCB1cCBkb2NzIGEgYml0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM3Nzc2CgoyMDEwLTEyLTIxIDIzOjAzOjEyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0YWdzOiBkb24ndCBwcm9kdWNlIGR1cGxpY2F0ZWQgZW50cmllcyB3aGVuIG1lcmdpbmcgc2FtZSB2YWx1ZSB0d2ljZQoJICBBZGQgYSB2YXJpYW50IG9mIGdzdF92YWx1ZV9saXN0X2NvbmNhdCgpIHRoYXQgc2tpcHMgZHVwbGljYXRlcyBhbmQgdXNlIHRoYXQgd2hlbgoJICBtZXJnaW5nIHRhZ2xpc3RzLgoJICBBUEk6IGdzdF92YWx1ZV9saXN0X21lcmdlKCkKCjIwMTEtMDEtMDIgMTY6NTg6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYywgYmFzZXNpbms6IGFkZCBzb21lIEZJWE1FcyBmb3IgdGhlIHR5cGUgb2YgdGhlIGJsb2Nrc2l6ZSBwcm9wZXJ0eQoKMjAxMC0xMi0zMSAxMjowODoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogbWFrZSBwYWQncyBnZXRfdHlwZSBmdW5jdGlvbiB0aHJlYWQtc2FmZQoKMjAxMC0xMi0zMSAxMTozNzo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNlbGVjdG9yLW1hcnNoYWwubGlzdDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzZWxlY3Rvci5jOgoJICBjb3JlZWxlbWVudHM6IHJlbW92ZSB1bnVzZWQgZmlsZXMKCjIwMTAtMTItMzEgMTI6Mjc6NDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFByb3RlY3RlZCBnX29iamVjdF9ub3RpZnkoKSBjYWxscyBmb3IgdGhlIGFjdGl2ZS1wYWQgd2l0aCBhIHJlY3Vyc2l2ZSBtdXRleAoJICBUaGlzIHdvcmtzIGFyb3VuZCBhIHRocmVhZCBzYWZldHkgcHJvYmxlbSBpbiBHTGliIDwgMi4yNi4wIGFuZCBzaG91bGQKCSAgYmUgcmVtb3ZlZCB3aGVuIHdlIGRlcGVuZCBvbiAyLjI2LjAuCgkgIEZpeGVzIGJ1ZyAjNjA3NTEzLgoKMjAxMC0xMi0zMSAxNjo1Mjo1NCArMDgwMCAgWmhhbmcgV2FubWluZyA8V2FubWluZy5aaGFuZ0B0aWV0by5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdGVzdHM6IGZpeCB0eXBvCgkgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdhbm1pbmcgPFdhbm1pbmcuWmhhbmdAdGlldG8uY29tPgoKMjAxMC0xMi0zMSAxNjo1MDo1NyArMDgwMCAgWmhhbmcgV2FubWluZyA8V2FubWluZy5aaGFuZ0B0aWV0by5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICBnc3RmZHNpbms6IGZpeCB0eXBvCgkgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdhbm1pbmcgPFdhbm1pbmcuWmhhbmdAdGlldG8uY29tPgoKMjAxMC0xMi0zMSAxNjo1MDoxNyArMDgwMCAgWmhhbmcgV2FubWluZyA8V2FubWluZy5aaGFuZ0B0aWV0by5jb20+CgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL2RyYWZ0LWJ1ZmZlcnBvb2xzLnR4dDoKCSAgZG9jczogZml4IHR5cG8KCSAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2FubWluZyA8V2FubWluZy5aaGFuZ0B0aWV0by5jb20+CgoyMDEwLTEyLTMwIDE4OjAyOjA2IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5jOgoJICBkYXRhdXJpc3JjOiB1c2UgZ19hc2NpaV9zdHJjYXNlY21wKCkKCjIwMTAtMTItMzEgMDE6MDk6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvaWNsZXMvb3V0cHV0LXNlbGVjdG9yLXRlc3QuYzoKCSAgdGVzdHM6IHJlbW92ZSBvdXRwdXQtc2VsZWN0b3IgdGVzdCB3aGljaCBuZWVkcyBlbGVtZW50cyBmcm9tIC1iYXNlCgkgIE1vdmUgaXQgdG8gLWJhc2UgaW5zdGVhZC4KCjIwMTAtMTItMzEgMDA6NTk6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkgIGNoZWNrczogZW5hYmxlIGlucHV0LXNlbGVjdG9yIGFuZCBvdXRwdXQtc2VsZWN0b3IgdW5pdCB0ZXN0cyBhZnRlciBtb3ZlCgoyMDEwLTEyLTMxIDAwOjQ4OjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5zaWduYWxzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSAgZG9jczogYWRkIGlucHV0LXNlbGVjdG9yIGFuZCBvdXRwdXQtc2VsZWN0b3IgdG8gZG9jcwoKMjAxMC0xMi0zMSAwMDo0NTo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBjb3JlZWxlbWVudHM6IEdTVF9CT0lMRVJQTEFURSBhbHJlYWR5IHNldHMgcGFyZW50X2NsYXNzCgoyMDEwLTEyLTMxIDAwOjQzOjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yLCBvdXRwdXQtc2VsZWN0b3I6IG1pbm9yIGNsZWFuLXVwcwoKMjAxMC0xMi0zMCAxODo1NzoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBjb3JlZWxlbWVudHM6IG1vdmUgaW5wdXQtc2VsZWN0b3IgYW5kIG91dHB1dC1zZWxlY3RvciB0byBjb3JlCgkgIE1vdmVkIHRvIGNvcmUgZnJvbSBnc3QtcGx1Z2lucy1iYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTQzMDYKCjIwMTAtMTEtMjQgMTI6MjI6MDEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2ljbGVzL291dHB1dC1zZWxlY3Rvci10ZXN0LmM6CgkgIG91dHB1dC1zZWxlY3Rvci10ZXN0OiBkb24ndCBoYXJkY29kZSB2aWRlb3NpbmtzIGFuZCB1c2UgbW9yZSBjb2xvcnNwYWNlIGNvbnYuCgkgIFVzZSBhdXRvdmlkZW9zaW5rIGluc3RlYWQgb2YgaGFyZGNvZGVkIHNpbmtzLiBVc2UgYW4gYWRkaXRpb25hbCBjb2xvcnNwYWNlCgkgIGNvbnZlcnRlciBiZXR3ZWVuIHZpZGVvdGVzdHNyYyBhbmQgdGltZW92ZXJsYXkuCgoyMDEwLTA5LTE3IDA5OjUyOjEyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IEF2b2lkIGxvc2luZyB0aGUgbGFzdF9idWZmZXIgd2hlbiBzd2l0Y2hpbmcKCSAgVGhpcyBwYXRjaCBtYWtlcyBvdXRwdXRzZWxlY3RvciB0YWtlIGFuIGV4dHJhIHJlZiB3aGVuIHB1c2hpbmcKCSAgdGhlIGxhc3RfYnVmZmVyIHRvIGF2b2lkIGl0IGxvc2luZyBpdCBkdXJpbmcgdGhlIHN3aXRjaCBmdW5jdGlvbi4KCSAgVGhpcyBtYWtlcyByZXNlbmQtbGF0ZXN0IHByb3Blcmx5IHdvcmsgaWYgdGhlIGFjdGl2ZS1wYWQgaXMgY2hhbmdlZAoJICBkdXJpbmcgdGhlIHN3aXRjaCBmdW5jdGlvbiBidWZmZXIgcHVzaGluZyAob24gYSBwYWQgcHJvYmUsIGZvciBleGFtcGxlKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyOTkxNwoKMjAxMC0wOS0xNyAwOTo0NDowMiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBSZWNoZWNrIHBlbmRpbmcgc3dpdGNoIGFmdGVyIHB1c2hpbmcgYnVmZmVyCgkgIFRoaXMgcGF0Y2ggbWFrZXMgb3V0cHV0LXNlbGVjdG9yIGFsd2F5cyByZWNoZWNrIGlmIHRoZXJlJ3MgYQoJICBwZW5kaW5nIHBhZCBzd2l0Y2ggYWZ0ZXIgcHVzaGluZyBhIGJ1ZmZlciwgcHJldmVudGluZyB0aGF0CgkgIGl0IHB1c2hlcyBhIGJ1ZmZlciBvbiB0aGUgJ3dyb25nJyBwYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mjk5MTcKCjIwMTAtMTEtMDEgMjM6MDQ6NDQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBsb2cgdGltZXMgaW4gaHVtYW4gcmVhZGFibGUgZm9ybQoKMjAxMC0xMS0wMSAyMjo0MDozNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IG1vdmUgcmVvY2N1cmluZyBsb2dzIHRvIExPRyBhbmQgcmVtb3ZlIGEgZG91YmxlIGluZm8KCSAgTGVzcyBkZWJ1ZyBzcGV3IGluIERFQlVHIGNhdGVnb3J5LiBObyBuZWVkIHRvIGxvZyBwYWQgYWdhaW4gaWYgd2UgdXNlCgkgIEdTVF9MT0dfT0JKRUNUKHBhZCwuLi4pLgoKMjAxMC0xMC0xOSAxMzo0MzoxNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgdmFyaW91cyAoZ3N0KTogYWRkIG1pc3NpbmcgR19QQVJBTV9TVEFUSUNfU1RSSU5HUyBmbGFncwoJICBDYW5vbmljYWxpemUgcHJvcGVydHkgbmFtZXMgYXMgbmVlZGVkLgoKMjAxMC0wOS0wNiAxMTowMzowNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IHN5bmMgd2l0aCBjb3B5IGluIC1iYXNlCgkgIFVzZSBfZ2V0X2NhcHNfcmVmZmVkIHRvIGF2b2lkIGNvcGllcy4KCjIwMTAtMDgtMjQgMTE6NTA6NDcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IG1vdmUgdGhlIGRlYnVnIGluaXQgdG8gdGhlIGJvaWxlcnBsYXRlIG1hY3JvCgoyMDEwLTA4LTI0IDExOjUwOjA5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogdXNlIEdTVF9CT0lMRVJQTEFURSBtYWNybwoKMjAxMC0wMy0yMiAxMzoxNjozMyArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgQWRkIC1Xd3JpdGUtc3RyaW5ncwoJICBhbmQgZml4IGl0cyB3YXJuaW5ncwoKMjAxMC0wMy0yMSAyMTozOToxOCArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgQWRkIC1XbWlzc2luZy1kZWNsYXJhdGlvbnMgLVdtaXNzaW5nLXByb3RvdHlwZXMgdG8gY29uZmlndXJlIGZsYWdzCgkgIEFuZCBmaXggYWxsIHdhcm5pbmdzCgoyMDEwLTAzLTE4IDE3OjMwOjI2ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlscyA9PiBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUKCjIwMTAtMDEtMjUgMTI6MjE6MzQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIFJldmVydCAiaW5wdXRzZWxlY3RvcjogUHJvdGVjdCBnX29iamVjdF9ub3RpZnkoKSB3aXRoIHRoZSBvYmplY3QncyBtdXRleCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA3ZTA2NzYxNWZmYjU2MTRmMDY4Zjc3NTNjMTBkZGU5OWFmZTQ5YzNjLCBpdCdzIGNhdXNpbmcKCSAgZGVhZGxvY2tzIHdpdGggcGxheWJpbjIuCgoyMDEwLTAxLTI0IDIwOjUzOjAwICswMTAwICBLaXBwIENhbm5vbiA8a2Nhbm5vbkBsaWdvLmNhbHRlY2guZWR1PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFByb3RlY3QgZ19vYmplY3Rfbm90aWZ5KCkgd2l0aCB0aGUgb2JqZWN0J3MgbXV0ZXgKCSAgVGhpcyB3b3JrcyBhcm91bmQgdGhlIHRocmVhZCB1bnNhZmV0eSBvZiBnX29iamVjdF9ub3RpZnkoKQoJICBGaXhlcyBidWcgIzYwNzUxMy4KCjIwMDktMTEtMDkgMTE6NDk6MTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFJlbW92ZSB1c2VsZXNzIHZhcmlhYmxlcyBhbmQgZml4IGEgdW5pbml0aWFsaXplZCB2YXJpYWJsZSBjb21waWxlciB3YXJuaW5ncwoJICBNZXJnZWQgZnJvbSBnc3QtcGx1Z2lucy1iYXNlLCBkZmQ1MWFhODJhOWUxYzk5MjQzNzUxODM3OTZlYWI3MGU1NzRhMjMxLgoKMjAwOS0xMS0wOSAxMTo0ODozOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogTWFrZSBzdXJlIHRoYXQgcnVubmluZ190aW1lLT50aW1lc3RhbXAgY2FsY3VsYXRpb24gbmV2ZXIgYmVjb21lcyBuZWdhdGl2ZQoJICBNZXJnZWQgZnJvbSBnc3QtcGx1Z2lucy1iYXNlLCBmMzY1Mzg1NDU4NTg2NGEwOWQzNWUwMzc4NTM0MDczMzJlYTY5MDFmLgoKMjAwOS0xMS0wOSAxMTo0ODowMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogVXNlIHRoZSBzdGFydCB0aW1lIChpLmUuIHRpbWVzdGFtcCkgYXMgdGhlIGxhc3Qgc3RvcAoJICBVc2luZyB0aGUgZW5kIHRpbWUgbWFrZXMgaXQgaW1wb3NzaWJsZSB0byByZXBsYWNlIGJ1ZmZlcnMsIHdoaWNoIGlzCgkgIGEgYmlnIHByb2JsZW0gZm9yIHN1YnRpdGxlcyB0aGF0IGNvdWxkIGhhdmUgdmVyeSBsb25nIGR1cmF0aW9ucy4KCSAgTWVyZ2VkIGZyb20gZ3N0LXBsdWdpbnMtYmFzZSwgMjcwMzRiZTQ2MTEyMzFjYzU1ZmEzZDNlMjUzYmFhNDBjNmJmZjQxZC4KCjIwMDktMTEtMDkgMTE6NDc6MTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IEltcHJvdmUgZGVidWdnaW5nCgkgIE1lcmdlZCBmcm9tIGdzdC1wbHVnaW5zLWJhc2UuCgoyMDA5LTExLTA1IDEzOjUzOjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIFJldmVydCAiaW5wdXRzZWxlY3RvcjogdXNlIGdldF9jYXBzX3JlZmZlZCgpIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDQ5ZWM0Zjc5NmEwZTNmODhhODUxNzA4NzgyYzg1M2JhZjRiMDU3MjQuCgkgIFdlIGNhbid0IHVzZSB0aGlzIG5ldyBmdW5jdGlvbiB5ZXQuCgoyMDA5LTExLTA1IDEzOjI5OjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IHVzZSBnZXRfY2Fwc19yZWZmZWQoKQoKMjAwOS0xMS0wNCAwMDoyMToxOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGFsc28gYWRkIGlubGluZSB0byB0aGUgcHJvdG8gdG8gZml4IHRoZSBidWlsZAoKMjAwOS0xMS0wMyAxODoxNDoxMiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBnc3Q6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnRzIGFuZCByZXN1bHRpbmcgdW51c2VkIHZhcmlhYmxlcwoJICBNZXJnZWQgZnJvbSBnc3QtcGx1Z2lucy1iYXNlLCA4Y2QxYjUyMDliNjg5NDRlMWJlNTZjYThiYjY5ZTQ2ZDRhYmI3YTM0LgoKMjAwOS0xMS0wMyAxODoxMjoyMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogVXNlIHRoZSBzYW1lIGl0ZXJhdGUgaW50ZXJuYWwgbGlua3MgZnVuY3Rpb24gYXMgaW4gZ3N0LXBsdWdpbnMtYmFzZQoKMjAwOS0xMS0wMyAxODoxMToxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IFJlbW92ZSBHU1RfREVCVUdfRlVOQ1BUUiB3aGVyZSB0aGV5J3JlIHBvaW50bGVzcwoJICBUaGVyZSdzIG5vdCBtdWNoIHBvaW50IGluIHVzaW5nIEdTVF9ERUJVR19GVU5DUFRSIHdpdGggR09iamVjdAoJICB2aXJ0dWFsIGZ1bmN0aW9ucyBzdWNoIGFzIGdldF9wcm9wZXJ0eSwgc2V0X3Byb3BlcnksIGZpbmFsaXplIGFuZAoJICBkaXNwb3NlLCBzaW5jZSB0aGV5J2xsIG5ldmVyIGJlIHVzZWQgYnkgYW55b25lIGFueXdheS4gU2F2ZXMgYQoJICBmZXcgYnl0ZXMgYW5kIHBvc3NpYmx5IGEgc2l4dGVlbnRoIG9mIGEgcG9sYXIgYmVhci4KCSAgTWVyZ2VkIGZyb20gZ3N0LXBsdWdpbnMtYmFzZSwgNmY0YzFhYzU4MzQxZWUxODkyMjVkMzEzZGRmZTlhZTI0YTY1Yzg4Yy4KCjIwMDktMTEtMDMgMTg6MDk6NTUgKzAxMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBSZW1vdmUgUm9uYWxkIEJ1bHRqZSBmcm9tIEF1dGhvcnMgZmllbGQKCSAgUmVwbGFjZWQgd2l0aCAiR1N0cmVhbWVyIG1haW50YWluZXJzCgkgIDxnc3RyZWFtZXItZGV2ZWxAbGlzdHMuc291cmNlZm9yZ2UubmV0PiIgb3IganVzdCByZW1vdmVkLAoJICBkZXBlbmRpbmcgb24gdGhlIG51bWJlciBvZiBvdGhlciBhdXRob3JzLgoJICBNZXJnZWQgZnJvbSBnc3QtcGx1Z2lucy1iYXNlLCAwZTliYzUxMjVhY2E1NDZkNzczZWQxMDAyZGY1NzNkZDhlMmRjMTM2LgoKMjAwOS0xMS0wMyAxODowODowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBzZXQgb3V0cHV0IGNhcHMgYmVmb3JlIHB1c2hpbmcKCSAgU2V0IHRoZSBvdXRwdXQgY2FwcyBvbiB0aGUgc3JjcGFkIGJlZm9yZSBwdXNoaW5nIHRoZSBidWZmZXIgYmVjYXVzZSBlbHNlIGNvcmUKCSAgd2lsbCBkbyBhIHJhdGhlciBleHBlbnNpdmUgY2hlY2sgdG8gc2VlIGlmIHdlIGNhbiBhY3R1YWxseSBhY2NlcHQgdGhvc2UgY2FwcyBvbgoJICB0aGUgc3JjcGFkLgoJICBNZXJnZWQgZnJvbSBnc3QtcGx1Z2lucy1iYXNlLCBiZGZiNGI0NmQ3NDZlZjI5OGZjZjQ0MjYwODc5YzM0MmFmNGNhZmEzLgoKMjAwOS0xMS0wMyAxODowNjoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBpbnN0YWxsIGFuIGFjY2VwdGNhcHMgZnVuY3Rpb24KCSAgSW5zdGFsbCBhIGN1c3RvbSBhY2NlcHRjYXBzIGZ1bmN0aW9uIGluc3RlYWQgb2YgdXNpbmcgdGhlIGRlZmF1bHQgZXhwZW5zaXZlCgkgIGNoZWNrLiBXZSBhY2NlcHQgd2hhdGV2ZXIgZG93bnN0cmVhbSBhY2NlcHRzIHNvIHdlIHBhc3MgYWxvbmcgdGhlIGFjY2VwdGNhcHMKCSAgY2FsbCB0byB0aGUgZG93bnN0cmVhbSBwZWVyLgoJICBNZXJnZWQgZnJvbSBnc3QtcGx1Z2lucy1iYXNlLCA1YjcyZjJhZGY5OTY3MzkwMzZlOGQ5YjVmOTEwMDU0NTVkMWZmYWNlLgoKMjAwOS0xMC0yNyAxMTo1MTowNSAtMDcwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHNvbmdiaXJkbmVzdC5jb20+CgoJKiB0ZXN0cy9pY2xlcy9vdXRwdXQtc2VsZWN0b3ItdGVzdC5jOgoJICBSZW1vdmUgZXhlY3V0YWJsZSBiaXRzIGZyb20gbm9uLWV4ZWN1dGFibGUgZmlsZXMuCgoyMDA5LTA5LTI1IDExOjA3OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBVc2UgbmV3IHNpbmdsZSBpdGVyYXRvciBmb3IgdGhlIGludGVybmFsbHkgbGlua2VkIHBhZHMKCSAgVGhpcyBmaXhlcyBhIGRlYWRsb2NrIGFuZCByZW1vdmVzIHNvbWUgdXNlbGVzcyBjb2RlLgoKMjAwOS0wOC0zMSAxOTozMTo1NyArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogbWFrZSBHU1RfRk9STUFUX1RJTUUgdGhlIGRlZmF1bHQgc2VnbWVudCBmb3JtYXQKCjIwMDktMDgtMTkgMTc6MDU6MzIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFVzZSBpdGVyYXRlIGludGVybmFsIGxpbmtzIGluc3RlYWQgb2YgZGVwcmVjYXRlZCBnZXQgaW50ZXJuYWwgbGlua3MKCjIwMDktMDctMzEgMTE6Mjc6MDMgKzAzMDAgIFRvbW1pIE15w7Zow6RuZW4gPGV4dC10b21taS4xLm15b2hhbmVuQG5va2lhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IGNoZWNrIGZvciBwZW5kaW5nIHNyY3BhZCBpbiBfZ2V0X3Byb3BlcnR5KCkKCSAgSWYgdGhlcmUgaXMgYSBwZW5kaW5nIHNyY3BhZCwgcmV0dXJuIGl0IGluc3RlYWQgb2YgYWN0aXZlIHNyY3BhZAoJICBpbiBnc3Rfb3V0cHV0X3NlbGVjdG9yX2dldF9wcm9wZXJ0eSgpIGZ1bmN0aW9uLgoKMjAwOS0wNi0xMiAxMDoxNDoyNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogZG8gdGhlIHBhZF9hbGxvYyBmb3IgdGhlIHBhZCB0aGF0IGlzIHBlbmRpbmcgYW5kIGhhdmUgYSBmYWxsYmFjawoJICBXZSBzaG91bGQgZG8gdGhlIHBhZF9hbGxvYyBmb3IgdGhlIHBlbmRpbmcgcGFkIGlmIGFueSwgYXMgd2Ugd2lsbCBzd2l0Y2ggdG8gdGhhdAoJICBwYWQgb24gbmV4dCBfY2hhaW4oKSBjYWxsLiBBbHNvIGRvIGEgZmFsbGJhY2sgYWxsb2MsIGlmIHRoZXJlIGlzIG5vIG91dHB1dCB5ZXQgdG8KCSAgbm90IGZhaWwgc3RhdGUgdHJhbnNpdGlvbnMgaW4gZHluYW1pYyBwaXBlbGluZXMuCgoyMDA5LTA2LTAxIDE2OjMxOjQyICswMzAwICBMYXNzZSBMYXVra2FuZW4gPGV4dC1sYXNzZS4yLmxhdWtrYW5lbkBub2tpYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dC1zZWxlY3Rvcjogc2VyaWFsaXplIHNldHRpbmcgYW5kIGFjdHVhbCBjaGFuZ2luZyBvZiBuZXcgYWN0aXZlIHBhZAoKMjAwOS0wNS0wNCAxMjoyOTo1NCArMDMwMCAgTGFzc2UgTGF1a2thbmVuIDxleHQtbGFzc2UuMi5sYXVra2FuZW5Abm9raWEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXQtc2VsZWN0b3I6IHVucmVmIGxhdGVzdCBidWZmZXIgYWxzbyB3aGVuIHJlc2VuZGluZyBoYXMgYmVlbiBkaXNhYmxlZAoKMjAwOS0wNC0xNiAxNzozMjowMyArMDMwMCAgTGFzc2UgTGF1a2thbmVuIDxleHQtbGFzc2UuMi5sYXVra2FuZW5Abm9raWEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXQtc2VsZWN0b3I6IGtlZXAgcmVmIHRvIGJ1ZmZlciBmb3IgcmVzZW5kaW5nIG9ubHkgaWYgZXhwbGljaXRseSByZXF1ZXN0ZWQKCjIwMDktMDYtMDQgMTk6MDg6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogZG9uJ3QgbGVhayBwYWRzIGluIGl0ZXJhdG9yCgoyMDA5LTA2LTA0IDA4OjU2OjI5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBOb3RpZnkgd2hlbiB0aGUgdGFncyBwcm9wZXJ0eSBvZiB0aGUgc2VsZWN0b3Igc2lua3BhZHMgY2hhbmdlcwoJICBGaXJzdCBwYXJ0IG9mIGJ1ZyAjNTg0Njg2LgoKMjAwOS0wNS0yOCAxMDozODo1MCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5oOgoJICBzZWxlY3RvcjogcmVtb3ZlIG5vdCBuZWVkZWQgaW5zdGFuY2UgdmFyIChwcmV2aW91cyBjb21taXQpLgoKMjAwOS0wNS0yOCAxMDoxMjo1OCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmg6CgkgIG91dHB1dHNlbGVjdG9yOiBpbXBsZW1lbnQgcGFkX2FsbG9jIG9uIGFjdGl2ZSBwYWQuCgoyMDA5LTA0LTIzIDExOjA0OjQ2ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IEZvcndhcmQgc2VnbWVudCBldmVudHMgZm9yIHRoZSBhY3RpdmUgcGFkIGltbWVkaWF0ZWx5LgoJICBXaGVuIGEgc2VnbWVudCBldmVudCBpcyByZWNlaXZlZCBvbiB0aGUgYWN0aXZlIHBhZCwgZm9yd2FyZCBpdCBkb3duc3RyZWFtCgkgIGltbWVkaWF0ZWx5IGluc3RlYWQgb2YgZGVmZXJyaW5nIGl0IHVudGlsIHRoZSBuZXh0IGRhdGEgYnVmZmVyIGFycml2ZXMuIFRoaXMKCSAgZml4ZXMgcHJvYmxlbXMgd2l0aCBzZWdtZW50IHVwZGF0ZXMgbmV2ZXIgYmVpbmcgc2VudCBkb3duc3RyZWFtLCBsaWtlIHRob3NlCgkgIG5lZWRlZCBmb3Igc3BhcnNlIHN0cmVhbXMsIG9yIGZvciBjbG9zaW5nIHByZXZpb3VzbHkgb3BlbmVkIHNlZ21lbnRzLgoJICBUaGlzIGZpeGVzIHBsYXliYWNrIG9mIERWRCBtZW51cyB3aXRoIGEgc3RpbGwgdmlkZW8gZnJhbWUgYW5kIGFuIGF1ZGlvIHRyYWNrLAoJICBmb3IgZXhhbXBsZS4KCSAgRml4ZXM6ICM1Nzc4NDMKCjIwMDktMDMtMjcgMTE6MjA6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiByZXNldCBzdGF0ZSB3aGVuIGdvaW5nIHRvIFJFQURZCgkgIFJlc2V0IHRoZSBsYXN0LWJ1ZmZlciwgdGhlIHBlbmRpbmcgcGFkIGFuZCB0aGUgc2VnbWVudCB3aGVuIGdvaW5nIHRvIHRoZSBSRUFEWQoJICBzdGF0ZS4KCSAgRml4ZXMgIzU3NjcxMi4KCjIwMDktMDMtMjQgMTU6MjM6MDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgc2VsZWN0b3I6IG1lcmdlIHRoZSB0YWdzCgkgIE1lcmdlIHRoZSB0YWdzIHJlY2VpdmVkIG9uIHRoZSBpbnB1dC1zZWxlY3RvciBzaW5rcGFkcyBpbnN0ZWFkIG9mIG9ubHkga2VlcGluZwoJICB0aGUgbGFzdCBvbmUgd2Ugc2F3LgoKMjAwOS0wMi0yNSAxMTo0NTowNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGRvY3M6IHZhcmlvdXMgZG9jIGZpeGVzCgkgIE5vIHNob3J0LWRlc2MgYXMgd2UgaGF2ZSB0aGVtIGluIHRoZSBlbGVtZW50IGRldGFpbHMuCgkgIEFsc28ga2VlcCB0aGluZ3MgKE1ha2VmaWxlLmFtIGFuZCBzZWN0aW9ucy50eHQpIHNvcnRlZC4KCSAgUmV3b3JkIGFtYmlnb3VzIHJldHVybnMuIE5vIHRleHQgYWZ0ZXIgc2luY2UgcGxlYXNlLgoKMjAwOS0wMi0xMSAxNzoyMToyMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogRml4IGNvbXBpbGF0aW9uLCBhY3RpdmF0ZV9zaW5rcGFkKCkgaGFzIG5vIG5vdGlmeSBwYXJhbWV0ZXIKCjIwMDktMDItMTAgMTY6MjI6NTQgLTA4MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEBzb25nYmlyZG5lc3QuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBBY3RpdmF0ZSBhbmQgbm90aWZ5IHBhZCBiZWZvcmUgcHJvY2Vzc2luZyBldmVudHMuCgkgIEV2ZW50cyBzaG91bGQgdHJpZ2dlciBwYWQgc2VsZWN0aW9uIGlmIHdlIGRvbid0IGFscmVhZHkgaGF2ZSBhbgoJICBleHBsaWNpdGx5IHNlbGVjdGVkIHBhZCwgc28gdGhhdCBldmVudHMgcHJpb3IgdG8gZmlyc3QgYnVmZmVyIGRvbid0IGdldAoJICBsb3N0LgoKMjAwOS0wMS0zMCAxODoyNzowMyAtMDgwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHNvbmdiaXJkbmVzdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgVW5yZWYgZXZlbnQgaWYgd2UgZG9uJ3QgZm9yd2FyZCBpdCwgdW5yZWYgcGFkcyB3aGVuIGRvbmUgd2l0aCB0aGVtLgoKMjAwOC0xMi0wNCAxNzo1MTozNyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IEVuc3VyZSB3ZSBlbWl0IG5vdGlmeTo6YWN0aXZlLXBhZCB3aGVuIGF1dG8tc2VsZWN0aW5nIGEgcGFkIGR1ZSB0byBpdCBoYXZpbmcgYWN0aXZpdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgRW5zdXJlIHdlIGVtaXQgbm90aWZ5OjphY3RpdmUtcGFkIHdoZW4gYXV0by1zZWxlY3RpbmcgYSBwYWQKCSAgZHVlIHRvIGl0IGhhdmluZyBhY3Rpdml0eSBhbmQgdXMgbm90IGhhdmluZyBhbiBleGlzdGluZyBhY3RpdmUKCSAgcGFkLiBGaXhlcyAjNTYzMTQ3CgoyMDA4LTEwLTE1IDE3OjQ1OjM3ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IEdyYWNlZnVsbHkgaGFuZGxlIHRoZSBjYXNlcyB3aGVuIHdlIGRvbnQnIGhhdmUgb3RoZXJwYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiAoZ3N0X2lucHV0X3NlbGVjdG9yX2V2ZW50KSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9xdWVyeSk6CgkgIEdyYWNlZnVsbHkgaGFuZGxlIHRoZSBjYXNlcyB3aGVuIHdlIGRvbnQnIGhhdmUgb3RoZXJwYWQuCgkgIEZpeGVzICM1NTY0MzAKCjIwMDgtMTAtMDcgMTM6MTQ6NDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzogQ2hvb3NlIHJpZ2h0IHBhZCBmb3Igc2VuZGluZyBldmVudHMuIEZpeGVzICM1NTUyNDQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBDaG9vc2UgcmlnaHQgcGFkIGZvciBzZW5kaW5nIGV2ZW50cy4gRml4ZXMgIzU1NTI0NAoKMjAwOC0wOS0wOCAyMDoyNzoyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiBSZXNldCB0aGUgc2VsZWN0b3Igc3RhdGUgd2hlbiBnb2luZyB0byBSRUFEWS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IChnc3Rfc2VsZWN0b3JfcGFkX3Jlc2V0KSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9yZXNldCksIChnc3RfaW5wdXRfc2VsZWN0b3JfY2hhbmdlX3N0YXRlKToKCSAgUmVzZXQgdGhlIHNlbGVjdG9yIHN0YXRlIHdoZW4gZ29pbmcgdG8gUkVBRFkuCgoyMDA4LTA5LTAxIDEzOjIzOjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IFJldXNlIHRoZSBnZXRfbGlua2VkX3BhZHMgZm9yIGJvdGggc291cmNlIGFuZCBzaW5rcGFkcyBiZWNhdXNlIHRoZXkgYXJlIHRoZSBzYW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogKGdzdF9pbnB1dF9zZWxlY3Rvcl9pbml0KSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9ldmVudCksIChnc3RfaW5wdXRfc2VsZWN0b3JfcXVlcnkpOgoJICBSZXVzZSB0aGUgZ2V0X2xpbmtlZF9wYWRzIGZvciBib3RoIHNvdXJjZSBhbmQgc2lua3BhZHMgYmVjYXVzZSB0aGV5IGFyZQoJICB0aGUgc2FtZS4KCSAgSW1wbGVtZW50IGEgY3VzdHVtIGV2ZW50IGhhbmRsZXIgYW5kIGdldCB0aGUgaW50ZXJuYWxseSBsaW5rZWQgcGFkCgkgIGRpcmVjdGx5IGluc3RlYWQgb2YgcmVseWluZyBvbiB0aGUgZGVmYXVsdCAoc2xvd2VyKSBpbXBsZW1lbnRhdGlvbi4KCjIwMDgtMDgtMjcgMTU6NDU6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogSW1wbGVtZW50IHRoZSBMQVRFTkNZIHF1ZXJ5IGluIGEgYmV0dGVyIHdheSBieSB0YWtpbmcgdGhlIGxhdGVuY3kgb2YgYWxsIHNpbmtwYWRzIGFuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiAoZ3N0X2lucHV0X3NlbGVjdG9yX2luaXQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3F1ZXJ5KToKCSAgSW1wbGVtZW50IHRoZSBMQVRFTkNZIHF1ZXJ5IGluIGEgYmV0dGVyIHdheSBieSB0YWtpbmcgdGhlIGxhdGVuY3kgb2YgYWxsCgkgIHNpbmtwYWRzIGFuZCB0YWtpbmcgdGhlIG1pbi9tYXggaW5zdGVhZCBvZiBqdXN0IHRha2luZyBhIHJhbmRvbSBwYWQuCgoyMDA4LTA4LTA1IDA5OjA1OjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IE1vdmUgdGhlIHNlbGVjdC1hbGwgbG9naWMgaW50byB0aGUgYWN0aXZhdGlvbiBvZiB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHBhZC4gV2Ugd2FudC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogKGdzdF9zZWxlY3Rvcl9wYWRfYnVmZmVyYWxsb2MpLAoJICAoZ3N0X3NlbGVjdG9yX3BhZF9jaGFpbiksIChnc3RfaW5wdXRfc2VsZWN0b3JfZ2V0Y2FwcyksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfYWN0aXZhdGVfc2lua3BhZCk6CgkgIE1vdmUgdGhlIHNlbGVjdC1hbGwgbG9naWMgaW50byB0aGUgYWN0aXZhdGlvbiBvZiB0aGUgY3VycmVudGx5IHNlbGVjdGVkCgkgIHBhZC4gV2Ugd2FudCB0byByZW1lbWJlciB0aGUgbGFzdCBwYWQgd2l0aCBhY3Rpdml0eSBpbiBzZWxlY3QtYWxsIG1vZGUuCgkgIEZpeCB0aGUgZ2V0Y2FwcyBmdW5jdGlvbiwgd2UgY2FuIHByb2R1Y2UgdGhlIHVuaW9uIG9mIHRoZSB1cHN0cmVhbSBjYXBzCgkgIGluIHNlbGVjdC1hbGwgbW9kZSwgbm90IHRoZSBpbnRlcnNlY3Rpb24gbGlrZSBwcm94eV9nZXRjYXBzKCkgZG9lcy4KCjIwMDgtMDYtMTkgMTM6MTg6MjQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG91dHB1dC1zZWxlY3RvcjogVXNlIEJPSUxFUlBMQVRFIG1hY3JvIGFuZCB1cGRhdGUgdGVzdCB0byB0aGUgbGF0ZXN0IGFwaSBjaGFuZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgICogdGVzdHMvaWNsZXMvb3V0cHV0LXNlbGVjdG9yLXRlc3QuYzoKCSAgVXNlIEJPSUxFUlBMQVRFIG1hY3JvIGFuZCB1cGRhdGUgdGVzdCB0byB0aGUgbGF0ZXN0IGFwaSBjaGFuZ2VzLgoKMjAwOC0wNi0xMiAxNDo0OToxOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgRG8gbm90IHVzZSBzaG9ydF9kZXNjcmlwdGlvbiBpbiBzZWN0aW9uIGRvY3MgZm9yIGVsZW1lbnRzLiBXZSBleHRyYWN0IHRoZW0gZnJvbSBlbGVtZW50IGRldGFpbHMgYW5kIHRoZXJlIHdpbGwgYmUgd2FyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9kYzEzOTQvZ3N0ZGMxMzk0LmM6CgkgICogZXh0L2l2b3JiaXMvdm9yYmlzZGVjLmM6CgkgICogZXh0L2phY2svZ3N0amFja2F1ZGlvc2luay5jOgoJICAqIGV4dC9tZXRhZGF0YS9nc3RtZXRhZGF0YWRlbXV4LmM6CgkgICogZXh0L215dGh0di9nc3RteXRodHZzcmMuYzoKCSAgKiBleHQvdGhlb3JhL3RoZW9yYWRlYy5jOgoJICAqIGdzdC1saWJzL2dzdC9hcHAvZ3N0YXBwc2luay5jOgoJICAqIGdzdC9iYXllci9nc3RiYXllcjJyZ2IuYzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSAgKiBnc3QvcmF3cGFyc2UvZ3N0YXVkaW9wYXJzZS5jOgoJICAqIGdzdC9yYXdwYXJzZS9nc3R2aWRlb3BhcnNlLmM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwY2xpZW50LmM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwcHRkZW11eC5jOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzc3JjZGVtdXguYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgICogZ3N0L3ZpZGVvc2lnbmFsL2dzdHZpZGVvYW5hbHlzZS5jOgoJICAqIGdzdC92aWRlb3NpZ25hbC9nc3R2aWRlb2RldGVjdC5jOgoJICAqIGdzdC92aWRlb3NpZ25hbC9nc3R2aWRlb21hcmsuYzoKCSAgKiBzeXMvb3NzNC9vc3M0LW1peGVyLmM6CgkgICogc3lzL29zczQvb3NzNC1zaW5rLmM6CgkgICogc3lzL29zczQvb3NzNC1zb3VyY2UuYzoKCSAgRG8gbm90IHVzZSBzaG9ydF9kZXNjcmlwdGlvbiBpbiBzZWN0aW9uIGRvY3MgZm9yIGVsZW1lbnRzLiBXZSBleHRyYWN0CgkgIHRoZW0gZnJvbSBlbGVtZW50IGRldGFpbHMgYW5kIHRoZXJlIHdpbGwgYmUgd2FybmluZ3MgaWYgdGhleSBkaWZmZXIuCgkgIEFsc28gZml4aW5nIHVwIHRoZSBDaGFuZ2VMb2cgb3JkZXIuCgoyMDA4LTAzLTIwIDE4OjEwOjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IERvIGdfb2JqZWN0X25vdGlmeSgpIG9ubHkgd2hlbiBub3QgaG9sZGluZyB0aGUgbG9jayB0byBnZXQgdGhlIHByb3BlcnR5IGJlY2F1c2Ugb3RoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9zZXRfYWN0aXZlX3BhZCksIChnc3RfaW5wdXRfc2VsZWN0b3Jfc3dpdGNoKToKCSAgRG8gZ19vYmplY3Rfbm90aWZ5KCkgb25seSB3aGVuIG5vdCBob2xkaW5nIHRoZSBsb2NrIHRvIGdldCB0aGUgcHJvcGVydHkKCSAgYmVjYXVzZSBvdGhlcndpc2Ugd2UgcnVuIGludG8gYSBkZWFkbG9jayB3aXRoIHRoZSBkZWVwLW5vdGlmeSBoYW5kbGVycwoJICB0aGF0IGFyZSBwb3NzaWJseSBpbnN0YWxsZWQuCgoyMDA4LTAzLTIwIDE3OjQ4OjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IFJlbGVhc2UgdGhlIHNlbGVjdG9yIGxvY2sgd2hlbiBwYWQgYWxsb2MgaGFwcGVucyBvbiBhIG5vbiBzZWxlY3RlZCBwYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiAoZ3N0X3NlbGVjdG9yX3BhZF9jbGFzc19pbml0KSwKCSAgKGdzdF9zZWxlY3Rvcl9wYWRfZXZlbnQpLCAoZ3N0X3NlbGVjdG9yX3BhZF9idWZmZXJhbGxvYyksCgkgIChnc3Rfc2VsZWN0b3JfcGFkX2NoYWluKSwgKGdzdF9pbnB1dF9zZWxlY3Rvcl9zZXRfYWN0aXZlX3BhZCk6CgkgIFJlbGVhc2UgdGhlIHNlbGVjdG9yIGxvY2sgd2hlbiBwYWQgYWxsb2MgaGFwcGVucyBvbiBhIG5vbiBzZWxlY3RlZCBwYWQuCgoyMDA4LTAzLTIwIDE3OjA3OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IEFkZCBwYWQgcHJvcGVydHkgdG8gY29uZmlndXJlIGJlaGF2aW91ciBvZiB0aGUgdW5zZWxlY3RlZCBwYWQsIGl0IGNhbiByZXR1cm4gT0sgb3IgTi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogKGdzdF9zZWxlY3Rvcl9wYWRfY2xhc3NfaW5pdCksCgkgIChnc3Rfc2VsZWN0b3JfcGFkX2luaXQpLCAoZ3N0X3NlbGVjdG9yX3BhZF9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3NlbGVjdG9yX3BhZF9nZXRfcHJvcGVydHkpLCAoZ3N0X3NlbGVjdG9yX3BhZF9ldmVudCksCgkgIChnc3Rfc2VsZWN0b3JfcGFkX2J1ZmZlcmFsbG9jKSwgKGdzdF9zZWxlY3Rvcl9wYWRfY2hhaW4pLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3NldF9hY3RpdmVfcGFkKToKCSAgQWRkIHBhZCBwcm9wZXJ0eSB0byBjb25maWd1cmUgYmVoYXZpb3VyIG9mIHRoZSB1bnNlbGVjdGVkIHBhZCwgaXQgY2FuCgkgIHJldHVybiBPSyBvciBOT1RfTElOS0VELCBiYXNlZCBvbiB0aGUgdXNlIGNhc2UuCgoyMDA4LTAzLTIwIDE2OjQ4OjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLio6IEZpZ3VyZSBvdXQgdGhlIGxvY2tpbmcgYSBiaXQgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIChnc3Rfc2VsZWN0b3JfcGFkX2dldF9ydW5uaW5nX3RpbWUpLCAoZ3N0X3NlbGVjdG9yX3BhZF9yZXNldCksCgkgIChnc3Rfc2VsZWN0b3JfcGFkX2V2ZW50KSwgKGdzdF9zZWxlY3Rvcl9wYWRfYnVmZmVyYWxsb2MpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3dhaXQpLCAoZ3N0X3NlbGVjdG9yX3BhZF9jaGFpbiksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfY2xhc3NfaW5pdCksIChnc3RfaW5wdXRfc2VsZWN0b3JfaW5pdCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfZGlzcG9zZSksIChnc3Rfc2VnbWVudF9zZXRfc3RhcnQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3NldF9hY3RpdmVfcGFkKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfZ2V0X2xpbmtlZF9wYWQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX2lzX2FjdGl2ZV9zaW5rcGFkKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9hY3RpdmF0ZV9zaW5rcGFkKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9yZXF1ZXN0X25ld19wYWQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3JlbGVhc2VfcGFkKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X2lucHV0X3NlbGVjdG9yX2Jsb2NrKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9zd2l0Y2gpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJICBGaWd1cmUgb3V0IHRoZSBsb2NraW5nIGEgYml0IG1vcmUuCgkgIE1hcmsgYnVmZmVycyB3aXRoIGRpc2NvbnQgYWZ0ZXIgc3dpdGNoaW5nLgoJICBGaXggaW5pdGlhbCBzZWdtZW50IGZvcndhcmRpbmcsIG1ha2Ugc3VyZSB0byBvbmx5IGZvcndhcmQgb25lIHNlZ21lbnQKCSAgcmVnYXJkbGVzcyBvZiB3aGF0IHRoZSBzZXF1ZW5jZSBvZiBidWZmZXJzL3NlZ21lbnRzIGlzLiBTZWUgIzUyMjIwMy4KCSAgSW1wcm92ZSBmbHVzaGluZyB3aGVuIGJsb2NrZWQuCgkgIFJldHVybiBOT1RfTElOS0VEIHdoZW4gYSBzdHJlYW0gaXMgbm90IHNlbGVjdGVkLgoJICBOb3QgQVBJIGNoYW5nZSBmb3IgdGhlIHN3aXRjaCBzaWduYWwgaW4gdGhlIGRvY3MuCgkgIEZpeCBzdGFydC90aW1lL2FjY3VtIHZhbHVlcyBvZiB0aGUgbmV3IHNlZ21lbnQuCgkgIENvcnJlY3RseSB1bmxvY2sgYW5kIGZsdXNoIGEgYmxvY2tpbmcgc2VsZWN0b3Igd2hlbiBnb2luZyB0byBSRUFEWS4KCjIwMDgtMDMtMTQgMTc6MjI6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogQWRkIGxvdHMgb2YgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogKGdzdF9zZWxlY3Rvcl9wYWRfZXZlbnQpLAoJICAoZ3N0X3NlbGVjdG9yX3BhZF9idWZmZXJhbGxvYyksIChnc3Rfc2VsZWN0b3JfcGFkX2NoYWluKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9jbGFzc19pbml0KSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9zZXRfYWN0aXZlX3BhZCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3Jfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9wdXNoX3BlbmRpbmdfc3RvcCk6CgkgIEFkZCBsb3RzIG9mIGRlYnVnZ2luZy4KCSAgRml4IHRpbWUgbWVtYmVyIGluIHRoZSBuZXdzZWdtZW50IGV2ZW50LgoKMjAwOC0wMy0xMyAxNjo0NjowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci4qOiBWYXJpb3VzIGNsZWFudXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogKGdzdF9zZWxlY3Rvcl9wYWRfY2xhc3NfaW5pdCksCgkgIChnc3Rfc2VsZWN0b3JfcGFkX2ZpbmFsaXplKSwgKGdzdF9zZWxlY3Rvcl9wYWRfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9zZWxlY3Rvcl9wYWRfZXZlbnQpLCAoZ3N0X2lucHV0X3NlbGVjdG9yX2NsYXNzX2luaXQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX2luaXQpLCAoZ3N0X2lucHV0X3NlbGVjdG9yX3NldF9hY3RpdmVfcGFkKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfcmVxdWVzdF9uZXdfcGFkKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9yZWxlYXNlX3BhZCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfcHVzaF9wZW5kaW5nX3N0b3ApLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3N3aXRjaCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkgIFZhcmlvdXMgY2xlYW51cHMuCgkgIEFkZGVkIHRhZ3MgdG8gdGhlIHBhZHMuCgkgIFNlbGVjdCBhY3RpdmUgcGFkIGJhc2VkIG9uIHRoZSBwYWQgb2JqZWN0IGluc3RlYWQgb2YgaXRzIG5hbWUuCgkgIEZpeCByZWZjb3VudCBpbiBzZXRfYWN0aXZlX3BhZC4KCSAgQWRkIHByb3BlcnR5IHRvIGdldCB0aGUgbnVtYmVyIG9mIHBhZHMuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICAoZ3N0X291dHB1dF9zZWxlY3Rvcl9jbGFzc19pbml0KSwKCSAgKGdzdF9vdXRwdXRfc2VsZWN0b3Jfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9vdXRwdXRfc2VsZWN0b3JfZ2V0X3Byb3BlcnR5KToKCSAgVmFyaW91cyBjbGVhbnVwcy4KCSAgU2VsZWN0IHRoZSBhY3RpdmUgcGFkIGJhc2VkIG9uIHRoZSBwYWQgb2JqZWN0IGluc3RlYWQgb2YgaXRzIG5hbWUuCgkgIEZpeCBsb2NraW5nIHdoZW4gc2V0dGluZyB0aGUgYWN0aXZlIHBhZC4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNlbGVjdG9yLW1hcnNoYWwubGlzdDoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOiAoY2xlYW51cF9wYWQpLAoJICAoc2VsZWN0b3Jfc2V0X2FjdGl2ZV9wYWQpLCAocnVuX2lucHV0X3NlbGVjdG9yX2J1ZmZlcl9jb3VudCk6CgkgIEZpeGVzIGZvciBwYWQgaW5zdGVhZCBvZiBwYWRuYW1lIGZvciBwYWQgc2VsZWN0aW9uLgoKMjAwOC0wMi0yNiAxMjowMTozNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOiBGaXggY2hhbmdpbmcgdG8gc2FtZSBwYWQgdHdpY2UgYmVmb3JlIGEgY2hhaW4gY2FsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBGaXggY2hhbmdpbmcgdG8gc2FtZSBwYWQgdHdpY2UgYmVmb3JlIGEgY2hhaW4gY2FsbC4KCjIwMDgtMDItMjUgMDg6NTM6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci4qOiBBZGRlZCAic2VsZWN0LWFsbCIgcHJvcGVydHkgdG8gbWFrZSBpdCB3b3JrIGxpa2UgYWdncmVnYXRvciBpbiAwLjguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJICBBZGRlZCAic2VsZWN0LWFsbCIgcHJvcGVydHkgdG8gbWFrZSBpdCB3b3JrIGxpa2UgYWdncmVnYXRvciBpbiAwLjguCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBGaXggcmVzZW5kLWxhdGVzdCBiZWhhdm9pdXIuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJICBBZGQgdW5pdCB0ZXN0cyBmb3Igc2VsZWN0b3IuCgoyMDA4LTAyLTA3IDEzOjQ4OjIwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvbXVsdGlmaWxlL2dzdG11bHRpZmlsZXNpbmsuYzogQWRkIGEgZml4bWUgY29tbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzaW5rLmM6CgkgIEFkZCBhIGZpeG1lIGNvbW1lbnQuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBGaXggc2FtZSBsZWFrIGFzIGluIGlucHV0LXNlbGVjdG9yLgoJICAqIHRlc3RzL2ljbGVzL291dHB1dC1zZWxlY3Rvci10ZXN0LmM6CgkgIEltcHJvdmUgdGhlIHRlc3QuCgoyMDA4LTAyLTAxIDE3OjA4OjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IERvbid0IGxlYWsgZXZlbnQgb24gcGFkcyB0aGF0IGFyZSBub3QgbGlua2VkLiBGaXhlcyAjNTEyODI2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogKGdzdF9zZWxlY3Rvcl9wYWRfZXZlbnQpOgoJICBEb24ndCBsZWFrIGV2ZW50IG9uIHBhZHMgdGhhdCBhcmUgbm90IGxpbmtlZC4gRml4ZXMgIzUxMjgyNi4KCjIwMDgtMDEtMjkgMDc6Mzg6MzEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIFJlcGxhY2UgdGhlIHN3aXRjaCBwbHVnaW4gd2l0aCB0aGUgc2VsZWN0b3IgcGx1Z2luLiBBZGQgb3V0cHV0LSBzZWxlY3RvciBhcyB0aGUgb3Bwb3NpdGUgb2YgaW5wdXQtc2VsZWN0b28gKHdhcyBzd2l0Yy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMuYXJnczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMuaGllcmFyY2h5OgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy5pbnRlcmZhY2VzOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy5zaWduYWxzOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tZXRhZGF0YS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNlbGVjdG9yLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc291bmR0b3VjaC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXN3aXRjaC54bWw6CgkgICogcGx1Z2lucy9lbGVtZW50cy8uY3ZzaWdub3JlOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNlbGVjdG9yLW1hcnNoYWwubGlzdDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNlbGVjdG9yLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9zZWxlY3Rvci52Y3Byb2o6CgkgICogZ3N0L3N3aXRjaC8uY3ZzaWdub3JlOgoJICAqIGdzdC9zd2l0Y2gvTWFrZWZpbGUuYW06CgkgICogZ3N0L3N3aXRjaC9nc3Rzd2l0Y2gtbWFyc2hhbC5saXN0OgoJICAqIGdzdC9zd2l0Y2gvZ3N0c3dpdGNoLmM6CgkgICogZ3N0L3N3aXRjaC9nc3Rzd2l0Y2guaDoKCSAgKiBnc3Qvc3dpdGNoL3N3aXRjaC52Y3Byb2o6CgkgICogdGVzdHMvaWNsZXMvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9pY2xlcy9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9pY2xlcy9vdXRwdXQtc2VsZWN0b3ItdGVzdC5jOgoJICBSZXBsYWNlIHRoZSBzd2l0Y2ggcGx1Z2luIHdpdGggdGhlIHNlbGVjdG9yIHBsdWdpbi4gQWRkIG91dHB1dC0KCSAgc2VsZWN0b3IgYXMgdGhlIG9wcG9zaXRlIG9mIGlucHV0LXNlbGVjdG9vICh3YXMgc3dpdGNoKS4gQWRkIGEgdGVzdAoJICBmb3Igb3V0cHV0LXNlbGVjdG9yLiBBZGQgZG9jcyBmb3IgdGhlIGVsZW1lbnRzLiBUaGUgdmNwcm9qIG5lZWRzCgkgIHVwZGF0ZS4gRml4ZXMgIzUwMDE0Mi4KCjIwMTAtMTItMzAgMDA6NDY6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkgIGRvY3M6IGFkZCB2YWx2ZSBlbGVtZW50IHRvIGRvY3VtZW50YXRpb24KCjIwMTAtMTItMzAgMDA6NDE6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmg6CgkgIHZhbHZlOiBzb21lIG1pbm9yIGNsZWFuLXVwcwoKMjAxMC0xMi0zMCAwMDozMDoxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBmaXggdHlwbyBpbiBwcm9wZXJ0eSBkZXNjcmlwdGlvbgoJICBBbmQgcmVwaHJhc2Ugd2hpbGUgYXQgaXQsIHRvIG1ha2UgaXQgbW9yZSBjb25jaXNlLgoKMjAxMC0xMi0zMCAwMDoyNjo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmFsdmUuYzoKCSAgdGVzdHM6IGVuYWJsZSB2YWx2ZSB1bml0IHRlc3QKCjIwMTAtMTItMzAgMDA6MjI6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGVsZW1lbnRzOiBhZGQgbmV3IHZhbHZlIGVsZW1lbnQgdG8gYnVpbGQKCSAgTW92ZWQgZnJvbSBnc3QtcGx1Z2lucy1iYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzMDgwOAoKMjAxMC0xMC0xOSAyMzo0MDozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJICB0ZXN0czogZml4IHZhbHZlIHVuaXQgdGVzdAoJICBnc3RfYnVmZmVyX3BhZF9hbGxvYygpIG5lZWRzIHNpbXBsZSBjYXBzIG9yIE5VTEwgY2FwcywKCSAgQU5ZIGNhcHMgYXJlIG5vdCBhbGxvd2VkLgoKMjAxMC0wOS0yOCAxMzo1MjoyOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogbm8gbmVlZCB0byByZWYgdGhlIG9iamVjdCBpbiBfY2hhaW4KCSAgRG9uJ3QgcmVmIHRoZSBwYWQgaW4gY2hhaW4sIGxpa2UgZWxzZXdoZXJlCgoyMDEwLTA5LTMwIDE3OjQ4OjM1IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJICB0ZXN0czogRml4IGNhcHMgbGVhayBpbiB0aGUgdmFsdmUgdGVzdAoKMjAxMC0wOS0zMCAxNzoyNDoyOSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmFsdmUuYzoKCSAgdmFsdmU6IEFkZCB1bml0IHRlc3RzCgkgIEFkZCBhIHVuaXQgdGVzdCBmb3IgdGhlIHZhbHZlIGVsZW1lbnQuCgoyMDEwLTA5LTMwIDE2OjI2OjE5IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuaDoKCSAgdmFsdmU6IE1ha2UgdGhlIGRyb3AgdmFyaWFibGUgaW50byBhbiBhdG9taWMuCgkgIFVzaW5nIGFuIGF0b21pYyBhbGxvd3MgdXMgdG8gYXZvaWQgbG9ja2luZyB0aGUgd2hvbGUgb2JqZWN0IGFsbCB0aW1lIHRpbWUuCgkgIEFzIHN1Z2dlc3RlZCBieSBTdGVmYW4gS29zdC4KCjIwMTAtMDktMzAgMTY6MjI6MDQgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IENvcnJlY3RseSBzZXQgdGhlIERJU0NPTlQgZmxhZyBhZnRlciBkcm9wcGluZyBidWZmZXJzCgoyMDEwLTA5LTMwIDE2OjE2OjQ3IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBSZW1vdmUgc3VwZXJmbG91cyBjaGVja2luZyBjYXN0cwoKMjAxMC0wOS0zMCAxNjoxMzoyMyAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogRml4IHN0eWxlLCBpbXByb3ZlIGNvbW1lbnRzCgkgIE1pbm9yIGltcHJvdmVtZW50cyB0byB0aGUgY29tbWVudHMgYW5kIGJyZWFrIGEgZmV3IG92ZXJseSBsb25nIGxpbmVzCgoyMDEwLTA5LTI4IDE0OjI2OjExICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBtb3ZlIGRlZmF1bHQ6IHBhcnN0IGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50IHRvIHRoZSBlbmQKCSAgTm93IHN1cmUgaWYgaXQgbWF0dGVycywgYnV0IHRoZSBwcmV2aW91cyBmb3JtIGxvb2tzIHdlaXJlZC4KCjIwMTAtMDktMjggMTQ6MjM6MDEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IG1vdmUgZGVidWctY2F0ZWdvcnkgcmVnaXN0cmF0aW9uIHRvIHR5cGUgaW5pdAoKMjAxMC0wOS0yOCAxNDoxNToxMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogdXNlIEdfUEFSQU1fU1RBVElDX1NUUklOR1Mgb24gcHJvcGVydGllcwoKMjAxMC0wOS0yOCAxNDowNzozOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogR1NUX0JPSUxFUlBMQVRFIGFscmVhZHkgc2V0cyBwYXJlbnRfY2xhc3MKCjIwMTAtMDMtMTggMTc6MzA6MjYgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzID0+IGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZQoKMjAwOS0wMi0xMCAxODo1Mjo1NCArMDAwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmg6CgkgIGRvY3M6IGRvY3VtZW50IHZhbHZlIGVsZW1lbnQKCjIwMDktMDItMTAgMTc6NTc6MTYgKzAwMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZnN2YWx2ZTogcmVuYW1lIHRvIHZhbHZlCgoyMDA5LTAyLTEwIDE3OjU1OjQ3ICswMDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuaDoKCSAgZnN2YWx2ZTogcmUtaW5kZW50IGdzdCBzdHlsZQoKMjAwOC0xMi0xMyAwMDozMTo0NSAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBmc3ZhbHZlOiBJZ25vcmUgZXJyb3JzIGlmIGRyb3BwaW5nIGlzIHNldCB0byB0cnVlCgoyMDA4LTEyLTEwIDE3OjAwOjMzIC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGZzdmFsdmU6IEFkZCBnZXRjYXBzIHByb3h5aW5nIHRvIHRoZSB2YWx2ZQoKMjAwOC0wOC0yMCAxNDoxMTowMiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmg6CgkgIGZzdmFsdmU6IFJlYmFzZSB2YWx2ZSBvbnRvIGdzdGVsZW1lbnQgaW5zdGVhZCBvZiBiYXNldHJhbnNmb3JtCgoyMDA4LTA4LTE5IDE4OjQ5OjUxIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGZzdmFsdmU6IFJldmVydCAiRml4IHJlZmNvdW50aW5nIGlzc3VlcyBpbiBwcmVwYXJlX291dHB1dF9idWZmZXIiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNjVkZDQ2MGYwYTNhOWM0ODgyZTYzOGM4NjIwOGY3NGVmNjJjMzQ2MC4KCjIwMDgtMDgtMDUgMTE6MzA6NTcgKzAwMDAgIHNqb2VyZEBsdW9uLm5ldCA8c2pvZXJkQGx1b24ubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBmc3ZhbHZlOiBGaXggcmVmY291bnRpbmcgaXNzdWVzIGluIHByZXBhcmVfb3V0cHV0X2J1ZmZlcgoJICAyMDA4MDgwNTExMzA1Ny1iZTBmMi05ZGMyNzA3ODFmMGEwZjIxYzYxNmVkMTFkYmQxZjE5OGZkMWIzMjZlLmd6CgoyMDA4LTA0LTA5IDE2OjMyOjIxICswMDAwICBPbGl2aWVyIENyZXRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZnN2YWx2ZTogUmVtb3ZlIHVudXNlZCBkaXNwb3NlIG1ldGhvZCBpbiB2YWx2ZQoJICAyMDA4MDQwOTE2MzIyMS0zZTJkYy05MmNjYjJkYjg3NGU0NmUwZDkyYzE1NTIwNTc3YzFiZTBlMmJjNjE3Lmd6CgoyMDA3LTEyLTE5IDIwOjMyOjMwICswMDAwICBPbGl2aWVyIENyZXRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZnN2YWx2ZTogRG9udCBob2xkIHRoZSBvYmplY3QgbG9jayB3aGlsZSBjYWxsaW5nIGJhc2UgYWxsb2MgZnVuY3Rpb24KCSAgMjAwNzEyMTkyMDMyMzAtM2UyZGMtNjUxOTE3NWQ4ZDgxNDk2NTE1YjJkOTA2MGFjMzE2NjUwNTYwZjY5MS5negoKMjAwNy0xMi0xOSAyMDozMjoxOCArMDAwMCAgT2xpdmllciBDcmV0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuaDoKCSAgZnN2YWx2ZTogU2V0IHRoZSBESVNDT05UIGZsYWcgYWZ0ZXIgZHJvcHBpbmcgYnVmZmVycwoJICAyMDA3MTIxOTIwMzIxOC0zZTJkYy1iYzVmMDNkODhmZjU4MzcwNDBiOTIxNGRlMDE2Y2MxNDI3NzZkZmMyLmd6CgoyMDA3LTEyLTE5IDAwOjU3OjM5ICswMDAwICBPbGl2aWVyIENyZXRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5oOgoJICBmc3ZhbHZlOiBVc2UgZG8gdGhlIGFsbG9jX2J1ZmZlciBmdW5jdGlvbiBpbiB0aGUgdmFsdmUKCSAgMjAwNzEyMTkwMDU3MzktM2UyZGMtMmEwZmRmYTJmMzhmMDNhYjQ3OTFmZTVjNGFiODVlODc5MDExMzY4My5negoKMjAwNy0xMS0yMSAyMDowODo1OCArMDAwMCAgT2xpdmllciBDcmV0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGZzdmFsdmU6IE9ubHkgc2V0IHBhc3N0aHJvdWdoIHRvIFRSVUUgb24gbmV3ZXIgdmVyc2lvbnMgb2YgZ3N0CgkgIDIwMDcxMTIxMjAwODU4LTNlMmRjLWIxNmNkZWFiYmMzYzA1NjJjNmZjN2IxMWI5Yjk3OTJjOTEwZjU2OWUuZ3oKCjIwMDctMTEtMjEgMTg6MTc6MjkgKzAwMDAgIE9saXZpZXIgQ3JldGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBmc3ZhbHZlOiBDb21wYXJlIG1pbm9yLCBub3QgbWFqb3IKCSAgMjAwNzExMjExODE3MjktM2UyZGMtYTU5OTdjM2I3ZjVjODY5NjYzNzA5Njk3MTRmYWNmOGVlMjQyNjU5ZC5negoKMjAwNy0xMC0yNiAyMjozNzo0OSArMDAwMCAgT2xpdmllciBDcmV0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGZzdmFsdmU6IE1ha2UgdGhlIHZhbHZlIGVsZW1lbnQgd29yayB3aXRoIGdzdCA8IDAuMTAuMTMKCSAgMjAwNzEwMjYyMjM3NDktM2UyZGMtMThmNjg1YTRlNDVmYmRjZTY3N2FjNzc3NTg2ODc2ZmM3MTlkNzIyMi5negoKMjAwNy0xMC0yNCAyMjo0Mjo0NiArMDAwMCAgT2xpdmllciBDcmV0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGZzdmFsdmU6IFJlbmFtZSB2YWx2ZSB0byBmc3ZhbHZlCgkgIDIwMDcxMDI0MjI0MjQ2LTNlMmRjLWM1NDIxNmFmMmVmMGVmM2YxYTIyMDZkNzIzZTg3YmUyYTIzYWI4ZWQuZ3oKCjIwMDctMTAtMjQgMjI6NDE6NDcgKzAwMDAgIE9saXZpZXIgQ3JldGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmg6CgkgIGZzdmFsdmU6IEFkZCB2YWx2ZSBlbGVtZW50CgkgIDIwMDcxMDI0MjI0MTQ3LTNlMmRjLWYyOGFiMGMwNzNlMjgzODk0YjY1YzIyYzRmNDQzOTdjODk3ZGVjMDEuZ3oKCjIwMTAtMTItMzAgMTg6MzE6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBmYWtlc2luazogbWFrZSB2YXJpYWJsZSBzdGF0aWMKCjIwMTAtMTItMjkgMTE6NDg6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZml4IGRlYWRsb2NrCgkgIE9ubHkgZ28gaW50byBMSVZFX1dBSVQgd2hlbiB0aGUgYXJlIG5vdCBsaXZlX3J1bm5pbmcgYW5kIG9ubHkgc3RvcCB3YWl0aW5nIHdoZW4KCSAgbGl2ZV9ydW5uaW5nIGlzIFRSVUUuIElmIHdlIGRvbid0IGxvb3AsIHdlIGNvdWxkIGRlYWRsb2NrIHdoZW4gY2FsbGVkIGZyb20KCSAgb3V0c2lkZSBvZiBiYXNlc3JjLCBzdWNoIGFzIGJhc2VhdWRpb3NyYy4KCSAgRml4ZXMgIzYzNTc4NQoKMjAxMC0xMi0yOCAxNjo0MDoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSAgY2hlY2s6IGFkZCBtb3JlIHNpbmsgdW5pdCB0ZXN0cwoKMjAxMC0xMi0yOCAxNjoyMzozMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGFsc28gcHJlcm9sbCBhc3luYz1mYWxzZSBzaW5rcwoJICBBbHNvIHByZXJvbGwgYXN5bmM9ZmFsc2Ugc2lua3MgYWZ0ZXIgYSBmbHVzaC4KCjIwMTAtMTItMjIgMTY6NTU6MzMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1wcm9ncmVzcy50eHQ6CgkgIGRvY3M6IGZpeCB0eXBvCgoyMDEwLTEyLTI2IDIxOjIwOjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBSZXZlcnQgIm1pY3JvLW9wdGltOiBpZiAoeCkgaXMgY2hlYXBlciB0aGFuIGlmICh4ID4gMCkgZm9yIHVuc2lnbmVkIGludGVnZXJzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDZhYThjYTM3ZWViOWRlYmZhNjkxOTc0MWEwMjMyNTBiZjI3ODI0OGYuCgkgIFNlZSBodHRwOi8vYXJ0aWNsZS5nbWFuZS5vcmcvZ21hbmUuY29tcC52aWRlby5nc3RyZWFtZXIuZGV2ZWwvMzIyODIKCjIwMTAtMTItMjQgMTQ6MDI6MDggLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgZWxlbWVudHM6IHJlZW5hYmxlIGZkc3JjL2Zkc2luayBvbiBNU1ZDCgoyMDEwLTEyLTIyIDE2OjM2OjA5IC0wODAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAc29uZ2JpcmRuZXN0LmNvbT4KCgkqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkgIEZpeCBHU3RhdEJ1ZiBkZWZpbml0aW9uIGZvciB3aW4zMiB3aGVuIGJ1aWxkaW5nIGFnYWluc3Qgb2xkZXIgZ2xpYi4gTm93IG1hdGNoZXMgdXBzdHJlYW0gZ2xpYiBkZWZpbml0aW9uLgoKMjAxMC0xMi0yMiAyMjozNjowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBhZGQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIGFubm90YXRpb24KCjIwMTAtMTItMjIgMTY6NDI6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1wcm9ncmVzcy50eHQ6CgkgIGRvY3M6IGFkZCBkcmFmdCBpZGVhIGZvciBwcm9ncmVzcyByZXBvcnRpbmcKCjIwMTAtMTItMjEgMTA6MzM6NTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBmaXggdHlwbwoKMjAxMC0xMi0yMCAxNzo0NjozNiArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDE2OTQ2MmEgdG8gNDY0NDVhZAoKMjAxMC0xMi0xOSAxMjo0OTo1OCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IERvbid0IGxlYWsgY29waWVzIG9mIGVtcHR5IHN0cmluZ3MKCjIwMTAtMTItMTcgMTk6MTk6NDAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIGJhc2U6IGRvY3VtZW50YXRpb24gZml4dXBzIGFuZCBhbm5vdGF0aW9uCgoyMDEwLTEyLTE3IDE5OjE0OjQxICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0OiBkb2N1bWVudGF0aW9uIGZpeHVwcyBhbmQgYW5ub3RhdGlvbgoJICBSZXBvcnRlZCBieSBlbmFibGluZyB0aGUgLS13YXJuLWFsbCBvcHRpb24gb2YgZy1pci1zY2FubmVyCgoyMDEwLTEyLTE3IDE1OjQ4OjM0ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJICBnc3RkYXRldGltZTogRml4IGRvY3VtZW50YXRpb24KCSAgc2Vjb25kID0+IHNlY29uZHMKCSAgbWljcm9zZWNvbmQgYXJndW1lbnQgd2FzIGRyb3BwZWQKCjIwMTAtMTItMDQgMTU6MzI6MDYgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogVXNlIGFuIGF0b21pYyBpbnRlZ2VyIGluc3RlYWQgb2YgYSBsb2NrIGZvciBjaGVja2luZyB0YWdzIHByZXNlbmNlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzY0NTUKCjIwMTAtMTItMTYgMTA6NTU6MjAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEhhbmRsZSBkb3duc3RyZWFtIGdpdmluZyBhIGJ1ZmZlciB3aXRoIG5ldyBjYXBzIGJ1dCBpbnZhbGlkIHNpemUKCSAgVGhpcyBjYW4gaGFwcGVuIGZvciBleGFtcGxlIHdoZW4gZG93bnN0cmVhbSBwcm9wb3NlZCBuZXcgY2FwcywgbGF0ZXIgcHJvcG9zZWQKCSAgdGhlIHByZXZpb3VzIGNhcHMgYWdhaW4gd2hpY2ggaW4gdHVybiBlbmFibGVzIHBhc3N0aHJvdWdoIG1vZGUgaW4gdXBzdHJlYW0KCSAgZWxlbWVudHMgYW5kIHRoZSB3cm9uZy1zaXplZCBidWZmZXIgYXBwZWFycyBpbiBhbiBlbGVtZW50IHdoZXJlIHRoZSBjYXBzCgkgIGNoYW5nZSBuZXZlciBoYXBwZW5lZC4gU2ltcGx5IGFsbG9jYXRlIGEgbmV3IGJ1ZmZlciBpbiB0aGlzIGNhc2UuCgkgIFNlZSBidWcgIzYzNTQ2MS4KCjIwMTAtMTItMTUgMjM6MTk6NTQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHVzZSB0aGUgcHVibGljbHkgdmlzaWJsZSBhZGRyZXNzIHRvIGZpeCB0aGUgdGVzdHMKCSAgVGhlIC1Cc3ltYm9saWMgY2hhbmdlIGNhdXNlcyB1cyB0byBnZXQgYSBkaWZmZXJlbnQgYWRkcmVzcyB3aGVuIGludGVybmFseQoJICBsb29raW5nIHVwIHRoZSBmdW5jdGlvbiB0aGFuIHdoYXQgYXBwbGljYXRpb24gd291bGQgZ2V0IHdoZW4gdGhlIHVzZSB0aGUgc3ltYm9sCgkgIHRoYXQgdGhleSBzZWUuIFRoaXMgbWFkZSByZW1vdmluZyB0aGUgZGVmYXVsdCBsb2doYW5kbGVyIHRvIGZhaWwsIGFzIGl0IGlzIHNldAoJICBpbnRlcm5hbGx5IGFuZCByZW1vdmVkIGV4dGVybmFseS4KCjIwMTAtMTItMTUgMTQ6NTU6MTIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMjA3NDJhZSB0byAxNjk0NjJhCgoyMDEwLTEyLTE1IDEyOjEwOjAyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogdXNlIHRoZSAtQnN5bWJvbGljLWZ1bmN0aW9ucyBsaW5rZXIgZmxhZyBpZiBzdXBwb3J0ZWQKCSAgVGhpcyBmZWF0dXJlIHR1cm5zIGludHJhIGxpYnJhcnkgY2FsbHMgaW50byBkaXJlY3QgZnVuY3Rpb24gY2FsbHMgYW5kIHRodXMgbWFrZXMKCSAgdGhlbSBhIGxpdHRsZSBmYXN0ZXIuIFRoZSBkb3duc2lkZSBpcyB0aGF0IHRoaXMgY2F1c2VzIHByb2JsZW1zIGZvciBlLmcuCgkgIExEX1BSRUxPQUQgYmFzZWQgdG9vbHMuIFRodXMgYWRkIGEgY29uZmlndXJlIG9wdGlvbiB0byB0dXJuIGl0IG9mZi4KCjIwMTAtMTItMTQgMTk6MDA6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBpbXByb3ZlIGxhc3Rfc3RvcCBjYWxjdWxhdGlvbgoJICBPbmx5IHVwZGF0ZSB0aGUgbGFzdF9zdG9wIHZhbHVlIHdoZW4gd2UgaGFkIGEgdmFsaWQgc3RvcCBwb3NpdGlvbiBmb3IgdGhlCgkgIGNsaXBwaW5nIG9yIGVsc2UgdGhlIGNsaXBwaW5nIGNvZGUgYXNzdW1lcyB0aGUgc3RvcCBwb3NpdGlvbiBleHRlbmRzIHRvIHRoZSBlbmQKCSAgb2YgdGhlIHNlZ21lbnQsIHdoaWNoIG1ha2VzIHRoZSBwb3NpdGlvbiByZXBvcnRpbmcgcmV0dXJuIHdlaXJkIHZhbHVlcy4KCjIwMTAtMTItMTQgMTU6NTI6MjIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBmaXggb2JqZWN0IHR5cGUgaGFuZGxpbmcgaW4gcXVldWVkIHByZXJvbGwKCSAgRmFjdG9yIG91dCB0aGUgbWV0aG9kIHRvIGdldCB0aGUgb2JqZWN0IHR5cGUuCgkgIFdoZW4gcHJlcm9sbC1xdWV1ZS1sZW4gPiAwLCB1c2UgdGhlIHJpZ2h0IG9iamVjdCB0eXBlIGluc3RlYWQgb2YgaWdub3JpbmcKCSAgYnVmZmVyLWxpc3RzLgoKMjAxMC0xMi0xMyAxNjoyMjo0NiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAwMTFiY2M4IHRvIDIwNzQyYWUKCjIwMTAtMTItMTEgMTA6MTA6MDQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGxpYnM6IEZpeCBHSVIgYnVpbGQgZm9yIHNyY2RpciAhPSBidWlsZGRpcgoKMjAxMC0xMi0wOCAxNzo1MToxMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBjb21taXQgJzBlYWEyNWNiZjVjMGU0YmY4NjU0NWZiNjdjMTgxYTBlY2QyZjE5YzcnIGludG8gMC4xMQoKMjAxMC0xMi0wOCAxMjoxNzozNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBkb2NzOiBmaXggd3JvbmcgdXNlIG9mIFNpbmNlOiBrZXl3b3JkCgoyMDEwLTEyLTA4IDExOjUyOjMxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnk6IG1haW50YWluIHRoZSB0eXBlZmluZCBleHRlbnNpb24gbGlzdCBvcmRlcgoKMjAxMC0xMi0wOCAxMTo1MTo1OSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJICBkb2NzOiBhZGQgKCkgdG8geHJlZiB0aGUgZnVuY3Rpb24uCgoyMDEwLTEyLTA3IDE5OjM1OjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogcmVtb3ZlIHNvbWUgZGVhZCBjb2RlLCBHU1RfREVCVUdfQ09MT1IgaXMgbmV2ZXIgZGVmaW5lZAoKMjAxMC0xMi0wNyAxOTozNToyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiBjb25zdC1pZnkgYXJndW1lbnRzIHRvIGdzdF9vYmplY3RfZGVmYXVsdF9lcnJvcigpCgoyMDEwLTEyLTA3IDE4OjQ2OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlcnJvci5jOgoJICBkb2NzOiBnc3RfZXJyb3JfZ2V0X21lc3NhZ2UoKSByZXR1cm5zIHN0cmluZyBpbiBVVEYtOCwgbm90IGN1cnJlbnQgbG9jYWxlCgkgIFdlIHRlbGwgZ2V0dGV4dCB0byByZXR1cm4gZXZlcnl0aGluZyBpbiBVVEYtOCBlbmNvZGluZy4KCjIwMTAtMTItMDUgMjA6MTc6MDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHJlZ2lzdGVyIGdzdF9wYWRfZ2V0X2ZpeGVkX2NhcHNfZnVuYygpIHdpdGggdGhlIGRlYnVnIGxvZyBzeXN0ZW0KCjIwMTAtMTItMDcgMTg6MzU6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgZG9jczogbGliZ3N0YmFzZTogbW9yZSBnb2JqZWN0IGludHJvc3BlY3Rpb24gYW5ub3RhdGlvbnMKCSAgTWFueSBvZiB0aGVzZSBhcmUgc3VwZXJmbHVvdXMgYW5kIHdlcmUgYWRkZWQgZm9yIGNsYXJpdHkuCgoyMDEwLTEyLTA3IDE4OjM1OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0ZmlsdGVyLmM6CgkqIGdzdC9nc3RmaWx0ZXIuaDoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHRyYWNlLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJICBkb2NzOiBnc3Q6IG1vcmUgZ29iamVjdCBpbnRyb3NwZWN0aW9uIGFubm90YXRpb25zCgkgIE1hbnkgb2YgdGhlc2UgYXJlIHN1cGVyZmx1b3VzLCBhZGRlZCBmb3IgY2xhcml0eS4KCjIwMTAtMTItMDcgMTg6NDA6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiB1cGRhdGUgZG9jcwoKMjAxMC0xMi0wNyAxODozMzo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdGRhdGFwcm90b2NvbC5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUgZGVmcwoKMjAxMC0xMi0wNyAxODozMjo1MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBjaGVjazogZGlzYWJsZSBBQkkgY2hlY2tzCgoyMDEwLTEyLTA3IDE4OjMyOjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIHBvcnRpbmcgZG9jdW1lbnQKCjIwMTAtMTItMDcgMTg6MTQ6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHJlbW92ZSBnZXRfY2Fwc19yZWZmZWQgdmFyaWFudHMKCSAgTWFrZSB0aGUgX2dldF9jYXBzIGZ1bmN0aW9ucyBiZWhhdmUgbGlrZSB0aGUgX2dldF9jYXBzX3JlZmZlZCB2YXJpYW50cyBhbmQKCSAgcmVtb3ZlIHRoZSBfcmVmZmVkIHZhcmlhbnRzLiBUaGlzIG1lYW5zIHRoYXQgX2dldF9jYXBzIGRvZXNuJ3QgcmV0dXJuIGEgd3JpdGFibGUKCSAgY2FwcyBhbnltb3JlIGFuZCBhbiBleHBsaWNpdCBfbWFrZV93cml0YWJsZSgpIGlzIG5lZWRlZCBiZWZvcmUgbW9kaWZ5aW5nIHRoZQoJICBjYXBzLgoKMjAxMC0xMi0wNyAxODoxMjo1MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBwb3J0aW5nIGRvYwoKMjAxMC0xMi0wNyAxNjo1Mjo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IENsZWFuIHVwIC5oIGZpbGUKCjIwMTAtMTItMDcgMTU6NTM6NTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDEwLTEyLTA3IDE1OjMzOjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGRldGFpbHMuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZWxlbWVudG1ldGFkYXRhLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgZWxlbWVudDogcmV3b3JrIEdzdEVsZW1lbnREZXRhaWxzCgkgIENsZWFuIHVwIHRoZSBHc3RFbGVtZW50IHN0cnVjdHVyZQoJICBSZXBsYWNlIEdzdEVsZW1lbnREZXRhaWxzIHdpdGggbWV0YWRhdGEKCjIwMTAtMTItMDcgMTU6MzE6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiByZW1vdmUgZGVwcmVjYXRlZCBtZXRob2RzCgkgIFJlbW92ZSBtb3JlIGRlcHJlY2F0ZWQgbWV0aG9kcyBhbmQgZml4IHVuaXQgdGVzdC4KCjIwMTAtMTItMDcgMTU6MjE6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOgoJICBjaGVjazogcmVtb3ZlIGRlcHJlY2F0ZWQgdGVzdHMKCjIwMTAtMTItMDcgMTU6MjA6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIGNoZWNrOiBmaXggb2JqZWN0IHVuaXQgdGVzdAoKMjAxMC0xMi0wNyAxNToxOTozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJICBvYmplY3Q6IGZpeCBkb2NzCgoyMDEwLTEyLTA3IDEzOjE5OjEwICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGxpYnM6IEFkZCAtSSQodG9wX3NyY2RpcikvbGlicyB0byBnLWlyLXNjYW5uZXIgY29tbWFuZHMKCSAgV2l0aG91dCB0aGlzLCBpdCB3aWxsIGZhaWwgZmluZGluZyBhbGwgaGVhZGVycy4KCjIwMTAtMTItMDcgMTI6NTc6NDAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiByZWNvbW1lbmQgIi0tZ3N0LWRpc2FibGUtcmVnaXN0cnktZm9yayIgYXMgd2VsbAoJICBEaXNhYmxpbmcgZm9ya2luZyBoZWxwcyB3aXRoIGRlYnVnZ2luZyB0aGUgY2F1c2Ugb2YgdGhlIGNyYXNoIGluIGdkYi4KCjIwMTAtMTItMDcgMTI6NTY6NDQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL2Vuc29uaWMvcGx1Z2luZG9jcy50eHQ6CgkgIGRvY3M6IHNvbWUgbm90ZXMgYWJvdXQgb3VyIHBsdWdpbiBkb2NzIHdvcmtmbG93CgoyMDEwLTEyLTA3IDExOjU4OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBvYmplY3Q6IFJlbW92ZWQgZGVwcmVjYXRlZCBmaWVsZHMgYW5kIG1ldGhvZHMKCSAgTWFrZSBHc3RPYmplY3QgZXh0ZW5kIGZyb20gR0luaXRpYWxseVVub3duZWQsIHJlbW92ZSB0aGUgRkxPQVRJTkcgZmxhZyBhbmQgdXNlCgkgIEdPYmplY3QgbWV0aG9kcyBmb3IgbWFuYWdpbmcgdGhlIGZsb2F0aW5nIHJlZi4KCSAgUmVtb3ZlIGNsYXNzIGxvY2ssIGl0IHdhcyBhIHdvcmthcm91bmQgZm9yIGEgZ2xpYiA8IDIuOCBidWcuCgkgIFJlbW92ZSB0aGUgcGFyZW50LXNldCBhbmQgcGFyZW50LXVuc2V0IHNpZ25hbHMsIGF0dGVtcHQgdG8gaW1wbGVtZW50IHdpdGggbm90aWZ5CgkgIGJ1dCBkaXNhYmxlZCBiZWNhdXNlIGRlYWRsb2NrcyBpbiBkZWVwLW5vdGlmeS4KCjIwMTAtMTItMDYgMjA6MDM6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBwb3J0aW5nOiBtZW50aW9uIHJlbW92YWwgb2YgcHJvdG9jb2wgcHJvcGVydHkKCjIwMTAtMTItMDYgMTk6NDA6MDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJICBsaWJzOiByZW1vdmUgZGVwcmVjYXRlZCBjb2RlCgoyMDEwLTEyLTA2IDE5OjI0OjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogdXBkYXRlIHBvcnRpbmcgZG9jCgoyMDEwLTEyLTA2IDE5OjE4OjMxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHhtbC5jOgoJKiBnc3QvZ3N0eG1sLmg6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgcmVtb3ZlIGRlcHJlY2F0ZWQgc3ltYm9scyBhbmQgbWV0aG9kcwoKMjAxMC0xMi0wNiAxMzo1MTo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHBvcnRpbmc6IEFkZCBwb3J0aW5nIGRvYwoKMjAxMC0xMi0wNiAxMzo0ODozMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BsYW4tMC4xMS50eHQ6CgkgIHBsYW46IGZpeCB0eXBvCgoyMDEwLTExLTExIDEwOjM4OjU3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcGxhbi0wLjExLnR4dDoKCSAgcGxhbjogYWRkIHNvbWV0aGluZyBhYm91dCBHVmFyaWFudCByZWdpc3RyeQoKMjAxMC0xMS0wOCAxODozOTozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3VzZS1jYXNlcy0wLjExLnR4dDoKCSAgYWRkIHNvbWUgdXNlLWNhc2VzCgoyMDEwLTExLTA4IDE0OjA4OjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcGxhbi0wLjExLnR4dDoKCSAgbW9yZSB1cGRhdGVzCgoyMDEwLTExLTA4IDEyOjE0OjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcGxhbi0wLjExLnR4dDoKCSAgbW9yZSB1cGRhdGVzCgoyMDEwLTExLTA4IDExOjE4OjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcGxhbi0wLjExLnR4dDoKCSAgbW9yZSB1cGRhdGVzCgoyMDEwLTExLTA0IDE5OjMwOjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcGxhbi0wLjExLnR4dDoKCSAgd29yayBvbiB0b2RvIGxpc3QgZm9yIDAuMTEgd29yawoKMjAxMC0xMi0wNiAxMzoyMTo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGFuZHJvaWQvYmFzZS5tazoKCSogYW5kcm9pZC9jb250cm9sbGVyLm1rOgoJKiBhbmRyb2lkL2RhdGFwcm90b2NvbC5tazoKCSogYW5kcm9pZC9lbGVtZW50cy5tazoKCSogYW5kcm9pZC9nc3QtaW5zcGVjdC5tazoKCSogYW5kcm9pZC9nc3QtbGF1bmNoLm1rOgoJKiBhbmRyb2lkL2dzdC1wbHVnaW4tc2Nhbm5lci5tazoKCSogYW5kcm9pZC9nc3QubWs6CgkqIGFuZHJvaWQvaW5kZXhlcnMubWs6CgkqIGFuZHJvaWQvbmV0Lm1rOgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiB0b29scy9nc3QtZmVlZGJhY2stbS5tOgoJKiB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjoKCSAgbW9yZSAwLjEwIC0+IDAuMTEKCjIwMTAtMTItMDYgMTI6MDM6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogb3BlbiAwLjExIGJyYW5jaAoKMjAxMC0xMi0wNiAxMToxODowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IHJldHVybiB3YWtldXAgZXZlbnQgaW4gR1BvbGxGRAoKMjAxMC0xMi0wNiAxMTowNzozOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkIHNvbWUgZGVidWcgdG8gZmFzdCBwdXNoIHBhdGgKCSAgLi4uIHNvIHdlIGRvbid0IGxvb3NlIHRyYWNrIGF0IHRpbWVzIGl0IGlzIG5lZWRlZCB0aGUgbW9zdC4KCjIwMTAtMTItMDUgMTU6NTg6NDggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBEb24ndCBmb3JnZXQgdG8gdW5yZWYgdGhlIGNhY2hlZCBDbG9ja0lkCgoyMDEwLTEyLTA1IDE0OjQ2OjI4ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgZ3N0Y2hlY2s6IERvbid0IGNoZWNrIHBhZCByZWZjb3VudCB0b28gZWFybHkKCSAgQmVjYXVzZSBvZiB0aGUgbmV3IHBhZCBjYWNoaW5nIHN5c3RlbSwgdGhlIHBlZXIgcGFkIG1pZ2h0IHN0aWxsCgkgIGhhdmUgYSByZWZlcmVuY2Ugb24gYSBwYWQuIFdlIHRoZXJlZm9yZSBkZWxheSB0aGUgcmVmY291bnQgY2hlY2tpbmcKCSAgdGlsICdhZnRlcicgd2UgdW5saW5rIHRoZSBwYWQgZnJvbSBhbnkgcG90ZW50aWFsIHBlZXIuCgoyMDEwLTEyLTA1IDE0OjExOjQ1ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBnc3RiaW46IE1ha2UgZWxlbWVudCBuYW1lcyBjbGVhcmVyIGluIGRlYnVnIHN0YXRlbWVudHMKCSAgUmVwbGFjZXMgY29uZnVzaW5nIG1lc3NhZ2VzIGxpa2U6CgkgICJOYW1lIG5hbWUgaXMgbm90IHVuaXF1ZSBpbiBiaW4gYmluLCBub3QgYWRkaW5nIgoJICBieQoJICAiTmFtZSAnbmFtZScgaXMgbm90IHVuaXF1ZSBpbiBiaW4gJ2JpbicsIG5vdCBhZGRpbmciCgoyMDEwLTEyLTA0IDIxOjA2OjM0IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogRml4IHBlcm1pc3Npb25zIGlmIHVtYXNrIGlzIGJyb2tlbgoJICBGaXhlczogIzU2NDA1Ni4KCjIwMTAtMTItMDQgMTQ6MjM6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiByZW1vdmUgdHJhaWxpbmcgd2hpdGVzcGFjZXMgYWZ0ZXIgYmFja3NsYXNoIGluIE1ha2VmaWxlLmFtCgoyMDEwLTEyLTA0IDEzOjE0OjM5ICswMDAwICBLb29wIE1hc3QgPGt3bUBGcmVlQlNELm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBmaXggdGVzdCBzbyBpdCB3b3JrcyB3aXRoIEZyZWVCU0QncyAvYmluL3NoCgkgIFVzZSAnPScgaW5zdGVhZCBvZiAnPT0nLiBGaXhlczoKCSAgY29uZmlndXJlOiB3b3JraW5nIGMrKyBjb21waWxlciBmb3VuZDogeWVzCgkgIHRlc3Q6IHh5ZXM6IHVuZXhwZWN0ZWQgb3BlcmF0b3IKCSAgaHR0cDovL2J1Z3ppbGxhLWF0dGFjaG1lbnRzLmdub21lLm9yZy9hdHRhY2htZW50LmNnaT9pZD0xNzU2OTIKCjIwMTAtMTItMDMgMTE6Mjk6MzAgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBVc2UgZ19zbnByaW50ZigpIGluc3RlYWQgb2Ygc25wcmludGYoKQoKMjAxMC0xMi0wMyAxNjo0NDoyMyArMDEwMCAgQmVuamFtaW4gR2FpZ25hcmQgPGJlbmphbWluLmdhaWduYXJkQHN0ZXJpY3Nzb24uY29tPgoKCSogQW5kcm9pZC5tazoKCSogYW5kcm9pZC9OT1RJQ0U6CgkqIGFuZHJvaWQvYmFzZS5tazoKCSogYW5kcm9pZC9jb250cm9sbGVyLm1rOgoJKiBhbmRyb2lkL2RhdGFwcm90b2NvbC5tazoKCSogYW5kcm9pZC9lbGVtZW50cy5tazoKCSogYW5kcm9pZC9nc3QtaW5zcGVjdC5tazoKCSogYW5kcm9pZC9nc3QtbGF1bmNoLm1rOgoJKiBhbmRyb2lkL2dzdC1wbHVnaW4tc2Nhbm5lci5tazoKCSogYW5kcm9pZC9nc3QubWs6CgkqIGFuZHJvaWQvZ3N0L2dzdGNvbmZpZy5oOgoJKiBhbmRyb2lkL2dzdC9nc3RlbnVtdHlwZXMuYzoKCSogYW5kcm9pZC9nc3QvZ3N0ZW51bXR5cGVzLmg6CgkqIGFuZHJvaWQvZ3N0L2dzdG1hcnNoYWwuYzoKCSogYW5kcm9pZC9nc3QvZ3N0bWFyc2hhbC5oOgoJKiBhbmRyb2lkL2dzdC9nc3R2ZXJzaW9uLmg6CgkqIGFuZHJvaWQvZ3N0L3BhcnNlL2dyYW1tYXIub3V0cHV0OgoJKiBhbmRyb2lkL2dzdC9wYXJzZS9ncmFtbWFyLnRhYi5jOgoJKiBhbmRyb2lkL2dzdC9wYXJzZS9ncmFtbWFyLnRhYi5oOgoJKiBhbmRyb2lkL2dzdC9wYXJzZS9sZXguX2dzdF9wYXJzZV95eS5jOgoJKiBhbmRyb2lkL2luZGV4ZXJzLm1rOgoJKiBhbmRyb2lkL25ldC5tazoKCSogYW5kcm9pZC90b29scy5tazoKCSAgQWRkIGJ1aWxkIHN5c3RlbSBmb3IgQW5kcm9pZAoKMjAxMC0xMi0wMyAxNjowMjowOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBjbG9jazogaW5pdCB2YXJpYWJsZXMgaW4gX3JlaW5pdCgpCgkgIFByb3Blcmx5IGluaXRpYWxpemUgdmFyaWFibGVzIGluIF9yZWluaXQoKSB0b28KCjIwMTAtMTAtMjEgMTg6MDg6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBjbG9jazogbWFrZSBzeW5jIGNsb2NrIHdhaXQgbG9ja2ZyZWUKCSAgTWFrZSB0aGUgY29tbW9uIGNhc2UgbG9ja2ZyZWUuCgoyMDEwLTEyLTAzIDEyOjA0OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBiaW5hcnlyZWdpc3RyeTogdXNlIGZ1bmN0aW9uIGludHJvZHVjZWQgaW4gR0xpYiAyLjIyIHVuY29uZGl0aW9uYWxseQoKMjAxMC0xMi0wMyAxMjo0MjoxMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IHNtYWxsIGNsZWFudXBzCgoyMDEwLTExLTAzIDE4OjM4OjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogbWFrZSBzdXJlIHdlIHJlbW92ZSB0aGUgcmVhZGZkIG1lc3NhZ2VzCgoyMDEwLTExLTAzIDE4OjE2OjA4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHBvbGwuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBvbGw6IGFkZCBtZXRob2QgdG8gZ2V0IGEgR1BvbGxGRAoKMjAxMC0xMS0wMyAxNzo1NjoyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IFJlZmFjdG9yIGFuZCBtYWtlIG1vcmUgbG9ja2ZyZWUKCSAgUmVmYWN0b3IgdGhlIHdha2V1cCBvZiB0aGUgcG9sbCB0aHJlYWQuCgkgIEFsd2F5cyBtYWtlIGEgY29udHJvbCBzb2NrZXQgdG8gbWFrZSB0aGluZ3MgZWFzaWVyLgoJICBNYWtlIG1vcmUgbWV0aG9kcyBsb2NrZnJlZS4KCjIwMTAtMTAtMjEgMDI6MDI6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBtb3ZlIGxvY2sgdG8gd2hlcmUgaXQgbWFrZXMgbW9yZSBzZW5zZQoKMjAxMC0xMC0yMSAwMToxNTo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IG1ha2UgdGltZXIgcG9sbHMgbG9ja2ZyZWUKCSAgTWFrZSBzdXJlIHdlIGRvbid0IHRha2UgYSBtdXRleCBpbiB0aGUgbm9ybWFsIGNvZGUgcGF0aCBvZiB0aGUgdGltZXIKCSAgcG9sbC4KCjIwMTAtMTItMDIgMTc6NTE6NTggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHJldHVybiB1cG9uIGlucHV0IHdoZW4gYWxyZWFkeSBlb3MKCSAgLi4uIHJhdGhlciB0aGFuIGhhbmdpbmcgaW5jb21pbmcgdGhyZWFkIChhcyBjb25zaWRlcmVkIGZ1bGwgaW4gZW9zKS4KCjIwMTAtMTItMDIgMTc6NDk6MDQgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogZml4IGRvYyB0eXBvCgoyMDEwLTEwLTE2IDE2OjE2OjE3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiByZW1vdmUgc29tZSBjb21tZW50ZWQgY29kZQoKMjAxMC0xMi0wMyAxMzo1MjowMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IGFkZCBzdGRpby5oIGZvciBzbnByaW50CgoyMDEwLTEyLTAzIDExOjI3OjE3ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiBVc2UgYW4gb2JqZWN0IGFzIGZpcnN0IGFyZ3VtZW50IHRvIEdTVF9XQVJOSU5HX09CSkVDVAoKMjAwOS0wNC0xMSAxNTowNDo0MSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBtaWNyby1vcHRpbTogaWYgKHgpIGlzIGNoZWFwZXIgdGhhbiBpZiAoeCA+IDApIGZvciB1bnNpZ25lZCBpbnRlZ2VycwoKMjAwOS0wNC0xMCAwOTowMToyMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBnc3RxdWVyeTogVXNlIHN0cnVjdHVyZSBwcm9wZXJ0eSBkaXJlY3RseSwgYXZvaWQgZnVuY3Rpb24gdmFyaWFibGUuCgkgIEFsbCBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlIGNhbiBhY2Nlc3MgdGhlIHN0cnVjdHVyZSBmaWVsZCBvZiBhIHF1ZXJ5IGRpcmVjdGx5LgoJICBUaGlzIGF2b2lkcyBoYXZpbmcgdG8gY2FsbCBnc3RfcXVlcnlfZ2V0X3N0cnVjdHVyZSgpIHRvIGdldCBpdCwgYWxvbmcgd2l0aCBiZWluZwoJICBhYmxlIHRvIHJlbW92ZSBzb21lIGZ1bmN0aW9uIHZhcmlhYmxlcyB0aGF0IHdlcmUgdXNlZCB0byBzdG9yZSB0aGUgcmVzdWx0IG9mIHRoYXQKCSAgZnVuY3Rpb24uCgoyMDA5LTA0LTEwIDA4OjUxOjAyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZ3N0aW5mbzogcmVtb3ZlIHVzZWxlc3MgdGVybmFyeSBvcGVyYXRvciB1c2FnZS4KCjIwMTAtMDktMTQgMTM6MDg6NTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZ3N0ZXZlbnQ6IFVzZSBzdHJ1Y3R1cmUgcHJvcGVydHkgZGlyZWN0bHksIGF2b2lkIGZ1bmN0aW9uIHZhcmlhYmxlLgoJICBBbGwgZnVuY3Rpb25zIGluIHRoaXMgZmlsZSBjYW4gYWNjZXNzIHRoZSBzdHJ1Y3R1cmUgZmllbGQgb2YgYW4gZXZlbnQgZGlyZWN0bHkuCgkgIFRoaXMgYXZvaWRzIGhhdmluZyB0byBjYWxsIGdzdF9xdWVyeV9nZXRfc3RydWN0dXJlKCkgdG8gZ2V0IGl0LCBhbG9uZyB3aXRoIGJlaW5nCgkgIGFibGUgdG8gcmVtb3ZlIHNvbWUgZnVuY3Rpb24gdmFyaWFibGVzIHRoYXQgd2VyZSB1c2VkIHRvIHN0b3JlIHRoZSByZXN1bHQgb2YgdGhhdAoJICBmdW5jdGlvbi4KCjIwMTAtMTItMDMgMTE6MTk6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkIHB1c2ggY2FjaGUgdG8gYnVmZmVybGlzdHMKCSAgQWRkIHRoZSBwdXNoIGNhaGNlIGZvciB0aGUgYnVmZmVybGlzdCBwdXNoIGNvZGUgcGF0aCBhcyB3ZWxsLgoKMjAxMC0xMi0wMyAxMToxMToyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBjYWNoZSB0aGUgcGVlciBjaGFpbmZ1bmMKCSAgVGhlcmUgaXMgbm8gbmVlZCB0byBjYWNoZSB0aGUgcGVlciBjaGFpbmZ1bmN0aW9uIGFzIHdlIGNhbiBqdXN0IGFzIGVmZmljaWVudGx5CgkgIGdldCB0byBpdCBmcm9tIHRoZSBwZWVyIG9iamVjdC4gQWxzbyBub3QgY2FjaGluZyB0aGUgY2hhaW4gZnVuY3Rpb24gd29ya3MgYmV0dGVyCgkgIGJlY2F1c2UgdGhlbiB3ZSBhdXRvbWF0aWNhbGx5IGdldCB0aGUgbmV3IGNoYWluZnVuY3Rpb25zIHdoZW4gdGhleSBjaGFuZ2UuCgoyMDEwLTEyLTAzIDEwOjUyOjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHBhZDogY2xlYXIgcGFkIGNhY2hlIHdoZW4gaW5zdGFsbGluZyBwcm9iZXMKCSAgTW92ZSB0aGUgbWV0aG9kIHRvIGNsZWFyIHRoZSBwYWQgY2FjaGUgaW50byBfcHJpdmF0ZS5oCgkgIENsZWFyIHRoZSBwYWQgY2FjaGUgd2hlbiBpbnN0YWxsaW5nIHBhZCBwcm9iZXMuCgoyMDEwLTEwLTIwIDE3OjExOjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGV4cGxpY2l0bHkgaW5saW5lIHNvbWUgZnVuY3Rpb25zCgoyMDEwLTEwLTEzIDAyOjQ4OjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCjIwMTAtMTAtMTMgMDI6NDI6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogaW52YWxpZGF0ZSBjYWNoZXMgb24gZmx1c2ggYW5kIHBhZCBibG9jawoKMjAxMC0xMC0xMyAwMjoyMDo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCB1bnJlZiBOVUxMIGNhcHMKCjIwMTAtMTAtMTMgMDI6MTc6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkIGludmFsaWRhdGUgZnVuY3Rpb24KCSAgTW9yZSBzbWFsbCBvcHRpbWlzYXRpb25zLCByZW1vdmUgdGhlIHVubmVlZGVkIHZhbGlkIGJvb2xlYW4uCgkgIEFkZCBmdW5jdGlvbiB0byBpbnZhbGlkZSB0aGUgY2FjaGUuCgkgIEludmFsaWRhdGUgdGhlIGNhY2hlIG9uIHVubGluay4KCjIwMTAtMTAtMTMgMDE6Mzc6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogc21hbGwgY2xlYW51cAoKMjAxMC0xMC0xMyAwMToyNToyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBpbXByb3ZlIHBhZCBwdXNoIGNhY2hpbmcKCSAgQnVpbGQgdGhlIGNhY2hlIHdoaWxlIHdlIHB1c2ggZGF0YS4gV2hlbiB3ZSBkb24ndCBoYXZlIGEgY2FjaGUsIHdlIHJ1biB0aGUKCSAgc2xvd3BhdGggYW5kIGNvbGxlY3QgY2FjaGVhYmxlIHByb3BlcnRpZXMuIFdoZW4gYWxsIGNvbmRpdGlvbnMgYXJlIG1ldCwga2VlcCB0aGUKCSAgY2FjaGVkIGRhdGEgYXJvdW5kIHNvIHRoYXQgd2UgY2FuIG1vcmUgZWZmaWNpZW50bHkgcHVzaCBkYXRhIGFyb3VuZC4KCjIwMTAtMTAtMTIgMTI6Mjk6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogcHJvdG90eXBlIG9mIHBhZCBwdXNoIGNhY2hlCgkgIFByb3RvdHlwZSBvZiBob3cgd2UgY2FuIGNhY2hlIHRoZSBwZWVyIGFuZCBjYXBzIGZvciBhIHBhZCBsaW5rLgoKMjAxMC0xMi0wMyAxMjoyMzoyNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL2V4dHJhY3QucGw6CgkgIGRvY3M6IGZpeCBwcmV2aW91cyBleHRyYWN0LnBsIGNvbW1pdAoJICBNYWtlIGl0IGFsc28gd29yayBpbiB0aGUgc3JjZGlyPWJ1aWxkZGlyIGNhc2UgYWdhaW4uCgoyMDEwLTEwLTIwIDExOjU4OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogYXZvaWQgdGFzayBsb2NrIGZvciBlYWNoIGl0ZXJhdGlvbgoJICBNYWtlIHRoZSB0YXNrIHN0YXRlIGFuIGF0b21pYyB2YXJpYWJsZSBzbyB0aGF0IHdlIGNhbiBhdm9pZCB0YWtpbmcgYW5kIHJlbGVhc2luZwoJICB0aGUgdGFzayBsb2NrIGZvciBlYWNoIGl0ZXJhdGlvbi4KCjIwMTAtMTItMDMgMTA6MTg6MTkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9leHRyYWN0LnBsOgoJICBkb2NzOiBmaXggZXhhbXBsZSBtYXRjaGluZyBpbiBleHRyYWN0LnBsCgkgIFdoZW4gYnVpbGRpbmcgd2l0aCAkc3JjZGlyICE9ICRidWlsZGRpciBvdXRwdXQgd291bGQgY29udGFpbiB0aGUgYnVpbGRkaXIgcGF0aC4KCSAgU3RyaXAgdGhlIHBhdGggd2hlbiBzY2FubmluZyB0aGUgeG1sIGZvciB0aGUgZXhhbXBsZSBtYXJrZXJzLgoKMjAxMC0xMS0xOSAxNTowNjowNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZG9jczogcXVlcnkgZG9jIGltcHJvdmVtZW50cwoJICBNb3JlIHhyZWZzLiBNZW50aW9uZWQgdGhhdCBzb21lIHF1ZXJpZXMgbmVlZCBhIHJ1bm5pbmcgcGlwZWxpbmUuCgoyMDEwLTExLTE5IDExOjQzOjQwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgZWxlbWVudGZhY3Rvcnk6IGNsYXJpZnkgbGlzdCBpdGVtIHR5cGVzIGluIGNvbW1lbnRzCgoyMDEwLTExLTE5IDEwOjI5OjM0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkgIHBhZHRlbXBsYXRlOiBhZGQgdHdvIEZJWE1FMC4xMTogY29tbWVudHMKCjIwMTAtMTEtMTkgMTA6MjM6NTQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBwYWR0ZW1wbGF0ZTogYWxsb3cgZGlzYWJsaW5iZyB0aGUgdGVtcGxhdGUgbmFtZSBjb25mb3JtYW5jZSBjaGVja3MKCjIwMTAtMTEtMTggMTY6MzE6MzAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBwYWR0ZW1wbGF0ZTogdGhlIHN1cHBsaWVkIGNhcHMgbWF5IG5vdCBiZSBOVUxMCgkgIFRoZXJlIGlzIGEgZWFybGllciBnX3JldHVybl92YWxfaWZfZmFpbCBjaGVjay4gQWxzbwoJICBnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXQgZG9lcyBub3QgaGF2ZSBzdWNoIGEgY2hlY2suCgoyMDEwLTExLTAzIDE2OjM3OjEwICswMTAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPGFtb3JhbGVzQGZsdW1vdGlvbi5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIGZha2VzaW5rOiBQcmludCBzaW5rLW1lc3NhZ2UgZXZlbnRzIGxpa2UgYSBtZXNzYWdlIGFuZCB0aGUgR3N0TWVzc2FnZSBzdHJ1Y3R1cmUKCjIwMTAtMTEtMDEgMTU6MzI6NDMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXIyLnR4dDoKCSogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1tZXRhZGF0YS50eHQ6CgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRhZ3JlYWRpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LU1ULXJlZmNvdW50aW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1hY3RpdmF0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJsaXN0LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnZlbnRpb25zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1keW5hbWljLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc291cmNlLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXRyYW5zZm9ybS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1mcmFtZXN0ZXAudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJpbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YnVzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RlbGVtZW50LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0b2JqZWN0LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbGF0ZW5jeS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbGl2ZS1zb3VyY2UudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1taXNzaW5nLXBsdWdpbnMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHJlcm9sbC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHVzaC1wdWxsLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXF1ZXJ5LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1yZWxhdGlvbnMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNjaGVkdWxpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zcGFyc2VzdHJlYW1zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdGFuZGFyZHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtLXN0YXR1cy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgZGVzaWduLWRvY3M6IGFkZCBodG1sIG91dHB1dCB1c2luZyBhc2NpaWRvYwoJICBVbmlmeSB0aGUgYWQtaG9jIG1hcmt1cCB0byBiZSBhc2NpaWRvYyBzdHlsZSBpbiBtYW55IHBsYWNlcy4gQWRkIGEgImh0bWwiIHRhcmdldAoJICB0byBNYWtlZmlsZSB0byBnZW5lcmF0ZSB0aGUgb3V0cHV0LgoKMjAxMC0xMC0xOSAxNDoyNzoyMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IG1vcmUgZGVmYXVsdCBuYW1lIGdlbmVyYXRpb24gbW9yZSBlZmZpY2llbnQKCSAgU2F2ZSB+MjAwMCBtYWxsb2MvbWVtY3B5L2ZyZWUgcGFpcnMgYXQgc3RhcnR1cCBieSBydW5uaW5nIHRvX2xvd2VyIGluLXBsYWNlLgoJICBBbHNvIHNraXAgdGhlIG51bWJlcnMgYXMgd2UgY2FuLgoKMjAxMC0xMC0xOCAxNDo0NToxNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgcGx1Z2luZmVhdHVyZTogdXNlIHRoZSBwYXJlbnRfY2xhc3MgZnJvbSBHX0RFRklORV9UWVBFIG1hY3JvIGFuZCBkcm9wIGV4dHJhIGNvcHkKCjIwMTAtMTAtMjAgMTQ6Mjc6MTYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogdXNlIGdfaW50ZXJuX3N0cmluZyBmb3IgaW50ZXJmYWNlIG5hbWVzCgoyMDEwLTEwLTE4IDEzOjI5OjUzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5OiBhbHNvIGludGVybiB0aGUgc3RhdGljIGNhcHMKCjIwMTAtMTItMDMgMDA6MDA6MDkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogbWV0YS1kYXRhIGNhbiBiZSBOVUxMCgoyMDEwLTEyLTAyIDE2OjI4OjQzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZ3N0ZGF0ZXRpbWU6IEZpeCBoYW5kbGluZyBvZiB0aW1lem9uZXMKCSAgRml4IHJldHVybmluZyBvZiB0aW1lem9uZXMgb24gc3lzdGVtcyB3aXRoIGdkYXRldGltZQoJICB0byB1c2UgZmxvYXRzIG9uIHRoZSBtYXRoIGV4cHJlc3Npb24gdG8gYXZvaWQKCSAgdHJ1bmNhdGluZyB0aGUgZnJhY3Rpb25hbCBwYXJ0LgoJICBBbHNvIGFkZHMgYSB0ZXN0IGZvciBjb3ZlcmluZyB0aGlzIGNhc2UuCgoyMDEwLTEyLTAyIDE5OjQ0OjQxICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSAgZ3N0ZGF0YXF1ZXVlOiBEb24ndCBicmVhayBBQkkKCSAgVGhlIG9yZGVyIG9mIHRoZSBmaWVsZCB3YXMgd3JvbmcsIGFuZCB0aGUgc2l6ZSBvZiB0aGUgc3RydWN0dXJlIGRpZG4ndAoJICBlbmQgdXAgYmVpbmcgdGhlIHNhbWUuCgoyMDEwLTExLTI1IDE4OjQ4OjA5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkgIGJhc2VzaW5rOiByZXdvcmsgcG9zaXRpb24gcmVwb3J0aW5nIGNvZGUKCSAgVW5pZnkgdGhlIGRpZmZlcmVudCBwb3NpdGlvbiByZXBvcnRpbmcgY29kZSBwYXRocyB0byBtYWtlIGl0IG1vcmUKCSAgdW5kZXJzdGFuZGFibGUuCgkgIFVzZSBzdGFydF90aW1lIHRvIGdldCBtb3JlIGFjY3VyYXRlIHBvc2l0aW9uIHJlcG9ydGluZyBpbiBwYXVzZWQuCgkgIEZpeCB1bml0IHRlc3RzIGZvciBtb3JlIGFjY3VyYXRlIHJlcG9ydGluZy4KCjIwMTAtMTEtMjUgMTY6MDY6MDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBwZXJmb3JtIHdhaXRfcHJlcm9sbCBpbiBhIHdoaWxlIGxvb3AKCSAgV2UgbmVlZCB0byBjb250aW51ZSBjYWxsaW5nIHdhaXRfcHJlcm9sbCgpIGFzIGxvbmcgYXMgdGhlIG5lZWRfcHJlcm9sbCB2YXJpYWJsZQoJICBpcyB0cnVlLgoKMjAxMC0xMS0xNyAxNjo0NjozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogcmV0dXJuIGltbWVkaWF0ZWx5IGZvciAtMSBjb252ZXJzaW9uCgkgIFdoZW4gd2UgYXJlIGFza2VkIHRvIGNvbnZlcnQgLTEsIHdlIGNhbiByZXR1cm4gaW1tZWRpYXRlbHkgd2l0aCBhIC0xIHJldHVybgoJICB2YWx1ZS4KCjIwMTAtMTEtMTcgMTY6NDI6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGEgY29udmVydCBxdWVyeSBjYW4gaGF2ZSBhIC0xIGlucHV0IHZhbHVlCgkgIEl0IGlzIGFsbG93ZWQgdG8gcGFzcyAtMSB0byB0aGUgc3JjX3ZhbCBmb3IgYSBjb252ZXJ0LgoKMjAxMC0xMS0xNiAxMjoyMDozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJICBiYXNlc2luazogYWxzbyBwcmVyb2xsIGFmdGVyIGEgZmx1c2ggd2l0aCBhc3luYz1mYWxzZQoJICBNYWtlIHN1cmUgdG8gcHJlcm9sbCBhZnRlciBhIGZsdXNoIGV2ZW4gd2hlbiB3ZSBhcmUgYXN5bmM9ZmFsc2UuCgkgIEFkZCB1bml0IHRlc3QuCgkgIEZpeGVzICM2MzQ5NjUKCjIwMTAtMTEtMTUgMTg6MjA6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogaW1wcm92ZSBkb2NzIGEgbGl0dGxlLgoKMjAxMC0xMS0xNSAxODoxNzozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSAgY2hlY2s6IGxvY2sgc3JjIHN0YXRlIHRvIGF2b2lkIGVycm9yIGNhc2VzCgkgIExvY2sgdGhlIHN0YXRlIG9mIHRoZSBzcmMgZWxlbWVudCBvciBlbHNlIHRoZSBwaXBlbGluZSBtaWdodCBnbyBpbnRvIHRoZSBlcnJvcgoJICBzdGF0ZSB3aGVuIHdlIHNldCBpdCB0byBQQVVTRUQgbGF0ZXIuCgoyMDEwLTExLTE1IDEyOjQ5OjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiBhdm9pZCB1c2luZyBpbnZhbGlkIGNsb2NrIHRpbWVzCgkgIEJlIGV4dHJhIGNhcmVmdWwgdG8gbm90IHVzZSBpbnZhbGlkIGNsb2NrIHRpbWVzIGJ1dCBnaXZlIGEgd2FybmluZyBpbnN0ZWFkLiBUaGlzCgkgIHNob3VsZCBtYWtlIHRoaW5ncyB3b3JrIGJldHRlciB3aXRoIGZhdWx0eSBjbG9jayBpbXBsZW1lbnRhdGlvbnMuCgoyMDEwLTExLTExIDEwOjQxOjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogaW1wcm92ZSBzb21lIGNvbW1lbnRzIGFib3V0IHRoZSB6aWd6YWcgaW50ZXJzZWN0aW9uCgoyMDEwLTEyLTAyIDEzOjA0OjMwICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogQWRkIHVudXNlZCBzeW1ib2xzIHRvIHByb3BlciBzZWN0aW9ucwoKMjAxMC0xMi0wMiAxMzowMzo1NyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IEFkZCBHc3REYXRlVGltZSBzZWN0aW9uIGFuZCB1cGRhdGUgaXQgZm9yIGxhdGVzdCBzeW1ib2xzCgoyMDEwLTEwLTE5IDE4OjA5OjUzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBPbmx5IGNhbGwgdXBkYXRlX2J1ZmZlcmluZyBpZiBuZWVkZWQuCgkgIHVwZGF0ZV9idWZmZXJpbmcgaXMgc28gYmlnIGl0IHdpbGwgbmV2ZXIgYmUgaW5saW5lZCAoYW5kIHNob3VsZG4ndCksCgkgIHdlIHRoZXJlZm9yZSBtb3ZlIHRoZSBjaGVjayBvdXRzaWRlIG9mIGl0LgoKMjAxMC0xMC0xOSAxNzo0NToxNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogQXZvaWQgcmUtY2hlY2tpbmcgbWFueSB0aW1lcyB3aGV0aGVyIGFuIGl0ZW0gaXMgYSBidWZmZXIKCSAgQXZvaWRzIGNhbGxpbmcgNiB0aW1lcyBnc3RfYnVmZmVyX2dldF90eXBlKCkgZm9yIGV2ZXJ5IGl0ZW0gY29taW5nCgkgIHRocm91Z2ggcXVldWUyCgoyMDEwLTEwLTE5IDE3OjQzOjU2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBSZWR1Y2UgYW1vdW50IG9mIHRpbWUgbG9ja3MgYXJlIHRha2VuCgoyMDEwLTEwLTE5IDE3OjQyOjM5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBGaXh1cCBkb2N1bWVudGF0aW9uIG9mIHNvbWUgcHJvcGVydGllcwoKMjAxMC0xMC0xOSAxNzo0MDoxMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogQXZvaWQgdXNlbGVzcyBzZWdtZW50X3RvX3J1bm5pbmdfdGltZSgpIGNhbGN1bGF0aW9ucy4KCSAgKiBDYWNoZSBzcmMgYW5kIHNpbmsgdGltZQoJICAqIFVzZSBhIGJvb2xlYW4gdG8ga25vd24gd2hldGhlciBzcmMvc2luayB0aW1lIG5lZWRzIHRvIGJlIHJlY2FsY3VsYXRlZAoJICBBdm9pZHMgNTAlIG9mIGNhbGxzIHRvIGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSgpCgoyMDEwLTEwLTIwIDE3OjQxOjI4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogUmUtdXNpbmcgR3N0Q2xvY2tJRCBpbnN0ZWFkIG9mIGNvbnN0YW50bHkgcmVjcmVhdGluZyBvbmUKCSAgTWFrZXMgX3Npbmtfd2FpdF9jbG9jayBhdCBsZWFzdCAyIHRpbWVzIGZhc3Rlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzMjc3OAoKMjAxMC0xMC0yMCAxNzo0MDo0MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdGNsb2NrOiBOZXcgQVBJIHRvIHJlLXVzZSBhIHNpbmdsZSBzaG90IEdzdENsb2NrSUQKCSAgQVBJOiBnc3RfY2xvY2tfc2luZ2xlX3Nob3RfaWRfcmVpbml0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzI3NzgKCjIwMTAtMTAtMjAgMTM6NTI6MDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBQYXNzIGFsb25nIG1pbmlvYmplY3QgdHlwZSB0aHJvdWdoIHZhcmlvdXMgZnVuY3Rpb25zCgkgIEF2b2lkcyBkb2luZyB1c2VsZXNzIEdTVF9JU18qCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzI3NzgKCjIwMTAtMTAtMjAgMTM6MDg6MDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBTd2l0Y2ggZW5hYmxlX2xhc3RfYnVmZmVyIHRvIGFuIGF0b21pYyBpbnQKCSAgQXZvaWRzIGhhdmluZyB0byB0YWtlIGEgbG9jayB0byByZWFkL3dyaXRlIGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMyNzc4CgoyMDEwLTEwLTE5IDE1OjUzOjI2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogUmVtb3ZlIHVzZWxlc3MgY2hlY2tzIGZyb20gZTQwNmY3CgkgIHNyY3Jlc3VsdCB3YXMgYmVpbmcgcmVjaGVja2VkIGluIHBsYWNlcyBpdCBjb3VsZG4ndCBoYXZlIGNoYW5nZWQuCgkgIHF1ZXVlIGxldmVsIHdhcyBiZWluZyByZWNoZWNrZWQgaW4gcGxhY2VzIGl0IGNvdWxkbid0IGhhdmUgY2hhbmdlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzMjc4MAoKMjAxMC0xMC0xMyAxMzo1MDoyMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkgIGdzdGRhdGFxdWV1ZTogT25seSBlbWl0IGdfY29uZF9zaWduYWwgd2hlbiBuZWVkZWQKCSAgS2VlcCB0cmFjayBvZiB3aGljaCBjb25kIHdlJ3JlIHdhaXRpbmcgZm9yIGFuZCBvbmx5IGVtaXQgd2hlbiBuZWVkZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzI3NzkKCjIwMTAtMTAtMjAgMTc6MTI6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBtb3ZlIGdfcmV0dXJuX2lmX2ZhaWwgdG8gd2hlcmUgaXQgaXMgbmVlZGVkCgoyMDEwLTExLTAzIDExOjE0OjAzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2ZXJzaW9uLmguaW46CgkgIHZlcnNpb246IFRha2UgbmFubyB2ZXJzaW9uIGludG8gYWNjb3VudCBpbiBHU1RfQ0hFQ0tfVkVSU0lPTigpCgkgIElmIHRoZSBuYW5vIGlzID4gMCB0aGUgY3VycmVudCB2ZXJzaW9uIHNob3VsZCBiZSBoYW5kbGVkIHRoZSBzYW1lIGFzCgkgIG1pY3JvICsgMS4KCjIwMTAtMTEtMDEgMTY6MzQ6NDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFNldCB0aGUgZXZlbnQgc291cmNlIG9iamVjdCBpZiBub25lIGlzIHNldCB5ZXQgaW4gZ3N0X3BhZF9wdXNoX2V2ZW50KCkKCSAgT3RoZXJ3aXNlIHRoZSBzb3VyY2Ugd2lsbCBzdGF5IGF0IE5VTEwsIHRoZSBldmVudCBpcyBwYXNzZWQgdG8gdGhlCgkgIHBlZXJwYWQgdmlhIGdzdF9wYWRfc2VuZF9ldmVudCgpIGFuZCB0aGVuIHRoZSBwZWVycGFkIGlzIHNldCBhcwoJICBzb3VyY2Ugb2YgdGhlIGV2ZW50IGluc3RlYWQgb2YgdGhlIG9yaWdpbmF0aW5nIHBhZC4KCjIwMTAtMTAtMzEgMTg6NDg6MTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50IGFuZCB1bnVzZWQgdmFyaWFibGUKCjIwMTAtMTAtMzEgMTg6NDY6NDMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50IGFuZCBtb3ZlIHZhcmlhYmxlIGRlY2xhcmF0aW9uIGludG8gaW5uZXIgYmxvY2sKCjIwMTAtMTAtMzEgMTg6MjM6MDAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBSZW1vdmUgcmVkdW5kYW50IHZhcmlhYmxlCgkgIE90aGVyIHRoYW4gc2F2aW5nIGFuIGltbWVuc2UgYW1vdW50IG9mIDQgYnl0ZXMgb2YgbWVtb3J5IHRoaXMKCSAgcHJldmVudHMgY2xhbmcgZnJvbSBjb21wbGFpbmluZyBhbmQga2VlcHMgdGhlIHJpbmcgYnVmZmVyIHN0YXRlCgkgIGluIGEgc2luZ2xlIHZhcmlhYmxlIGluc3RlYWQgb2YgdHdvLgoKMjAxMC0xMC0yMCAxMDoxODoxOCArMDIwMCAgRGF2aWQgSG95dCA8ZGhveXRAbGxubC5nb3Y+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICBnc3R0YXNrOiBTZXQgdGhyZWFkIG5hbWVzIG9uIFdpbmRvd3Mgd2l0aCBNU1ZDIGlmIGEgZGVidWdnZXIgaXMgYXR0YWNoZWQKCSAgRml4ZXMgYnVnICM2MzIxNjguCgoyMDEwLTEwLTE5IDE1OjUyOjMwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtYWNyb3MuaDoKCSAgbWFjcm9zOiBEZWZpbmUgcmVzdHJpY3Qga2V5d29yZCBpZiBub3QgYXZhaWxhYmxlCgkgIFRoaXMgY2hhbmdlIGFsd2F5cyBkZWZpbmVzIHRoZSByZXN0cmljdCBrZXl3b3JkIGlmIGEKCSAgbm9uLUM5OSBDIGNvbXBpbGVyIGlzIHVzZWQuIEluIHRoZSBjYXNlIG9mIEdDQyA+PSA0CgkgIGl0IHdpbGwgYmUgZGVmaW5lZCB0byBfX3Jlc3RyaWN0X18sIGluIGFsbCBvdGhlcgoJICBjYXNlcyB0byBub3RoaW5nLiBUaGlzIGFsbG93cyB0byB1c2UgdGhlIHJlc3RyaWN0CgkgIGtleXdvcmQgdW5jb25kaXRpb25hbGx5LgoKMjAxMC0xMi0wMSAyMzo1NzozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJ1bXAgR0xpYiByZXF1aXJlbWVudCB0byA+PSAyLjIyCgkgIFNlZSBodHRwOi8vZ3N0cmVhbWVyLmZyZWVkZXNrdG9wLm9yZy93aWtpL1JlbGVhc2VQbGFubmluZy9HTGliUmVxdWlyZW1lbnQKCjIwMTAtMTItMDEgMjM6NTY6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMC4xMC4zMSA9PT0KCjIwMTAtMTEtMzAgMTc6NDA6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAwLjEwLjMxCgoyMDEwLTExLTI3IDE5OjEzOjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsczogYXZvaWQgJ3VudXNlZCBhcmd1bWVudCcgd2FybmluZ3MgY2F1c2VkIGJ5IEdTVF9CT0lMRVJQTEFURV9GVUxMCgkgIFRoZSB1bnVzZWQgZGF0YSBwYXJhbWV0ZXIgaW4gdGhlIGNsYXNzX2luaXQgdHJhbXBvbGluZSBmdW5jdGlvbgoJICBzZWVtcyB0byBjYXVzZSB3YXJuaW5ncyB3aXRoIHNvbWUgYysrIGNvbXBpbGVycy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNTg2OQoKMjAxMC0xMS0wOSAyMzoyNzoxNyAtMDMwMCAgcmV5bmFsZG8gPHJleW5hbGRvQG9wZW5kb3QuY2w+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICBkb2NzOiBzb21lIHNtYWxsIGZpeGVzIHRvIHRoZSBwbHVnaW4gd3JpdGVyJ3MgZ3VpZGUKCSAgRml4IHdyb25nbHkgcGxhY2VkIGV4YW1wbGUgYW5kIHdlaXJkbHkgcGhyYXNlZCAnbm90ZScgbGFja2luZyBwcm9wZXIKCSAgZm9ybWF0dGluZy4gRml4IG1pc3NpbmcgaGludCBmb3IgYXV0b2dlbi5zaCBsb2NhdGlvbiBhbmQgcmVwaHJhc2UKCSAgJ2J1aWx0IGFuZCBpbnN0YWxsZWQnIHNlbnRlbmNlLiBGaXggd3JvbmdseSBwaHJhc2VkIGFuZCByZWR1bmRhbnQKCSAgcGFyYWdyYXBoIGluIFBXRwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM0OTIxCgoyMDEwLTExLTI3IDExOjAyOjQ4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkgIG1hbnVhbDogSW1wcm92ZSBzdGF0ZXMgZG9jdW1lbnRhdGlvbgoJICBCZSBtb3JlIGV4cGxpY2l0IGFib3V0IGJlaW5nIG9uIE5VTEwgYmVmb3JlIHVucmVmcwoKMjAxMC0xMS0yMCAxNDo1NDoyMyAtMDgwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgaW50cm9zcGVjdGlvbjogSW5jbHVkZSBleHBvcnRlZCBwYWNrYWdlcyBpbmZvcm1hdGlvbiBpbiBHSVJzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzUzODkKCjIwMTAtMTEtMTggMDA6Mjk6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMzAuNSBwcmUtcmVsZWFzZQoKMjAxMC0xMS0xOCAwMDoyOToxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IGZpeCBjYXBzIGxlYWsgaW4gZWxlbWVudCBmYWN0b3J5IGxpc3QgdXRpbGl0eSBmdW5jdGlvbnMKCjIwMTAtMTEtMTcgMjM6NTU6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9odS5wbzoKCSogcG8vc2sucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEwLTExLTE3IDA5OjM5OjM0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRhdGV0aW1lOiBBZGQgX2Zyb21fdW5peF9lcG9jaCB2YXJpYW50cwoJICBBZGRzIDIgdmFyaWFudHMgZm9yIHRoZSBnc3RfZGF0ZV90aW1lX2Zyb21fdW5peF9lcG9jaCBmdW5jdGlvbiwKCSAgb25lIGZvciBVVEMgYW5kIGFub3RoZXIgZm9yIGxvY2FsIHRpbWUuCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9uZXdfZnJvbV91bml4X2Vwb2NoX3V0YwoJICBBUEk6IGdzdF9kYXRlX3RpbWVfbmV3X2Zyb21fdW5peF9lcG9jaF9sb2NhbF90aW1lCgkgIEZpeGVzICM2NTMwMzEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNTAzMQoKMjAxMC0xMS0wMyAxNDoyMTowMiArMDAwMCAgVmxhZGltaXIgRXJlbWVldiA8d2wyNzc2QGdtYWlsLmNvbT4KCgkqIGdzdC9tYXRoLWNvbXBhdC5oOgoJICBtYXRoLWNvbXBhdDogZG9uJ3QgcmUtZGVmaW5lIF9VU0VfTUFUSF9ERUZJTkVTIGlmIGFscmVhZHkgZGVmaW5lZAoJICBUaGlzIGF2b2lkcyBjb21waWxlciB3YXJuaW5ncy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzMzg4NgoKMjAxMC0xMS0wMSAxNjowNjo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4zMC40IHByZS1yZWxlYXNlCgoyMDEwLTExLTAxIDE1OjM2OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2RlLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTAtMTAtMzEgMjA6MTc6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBkb24ndCBsZWFrIHBhZCByZWYgaW4gcHVsbCBtb2RlIHdoZW4gZmx1c2hpbmcKCSAgRml4IHBhZCBsZWFrIHdoZW4gcXVldWUyIGlzIGZsdXNoaW5nIG9yIGJlaW5nIHNodXQgZG93bi4KCjIwMTAtMTAtMzEgMTk6NDc6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBkb24ndCBzZW5kIHNlZWtzIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBmaWxlIHVwc3RyZWFtIGluIHB1bGwgbW9kZQoJICBJZiBkb3duc3RyZWFtIGlzIG9wZXJhdGluZyBpbiBwdWxsIG1vZGUsIHNob3J0LWNpcmN1aXQgYW55IHB1bGxzIGJleW9uZAoJICB0aGUgZW5kIG9mIHRoZSBmaWxlIGFuZCByZXR1cm4gRkxPV19VTkVYUEVDVEVEIGltbWVkaWF0ZWx5IGluc3RlYWQgb2YKCSAgc2VuZGluZyBhIHNlZWsgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGZpbGUgdXBzdHJlYW0sIHNpbmNlIHRoaXMgbWlnaHQKCSAgY29uZnVzZSB1cHN0cmVhbSBlbGVtZW50cyAoYW5kL29yIGh0dHAgc2VydmVycywgZm9yIGV4YW1wbGUpLiBGaXhlcwoJICBwbGF5YmFjayBvZiBhcHBsZSB0cmFpbGVycyBpbiB0b3RlbSBhbmQgeW91dHViZS9odG1sNSBjbGlwcyBpbgoJICBXZWJraXRHVEsrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMyOTc3CgoyMDEwLTEwLTI4IDIzOjI4OjE1ICsxMDAwICBKb25hdGhhbiBNYXR0aGV3IDxqb25hdGhhbkBkMTRuLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiB1c2UgaW5wdXQgcG9zaXRpb24gZm9yIHF1ZXJpZXMgaWYgd2UgaGF2ZSBubyBvdXRwdXQgcG9zaXRpb24KCjIwMTAtMTAtMjggMTM6Mjk6MzEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZml4IHJldmVyc2UgbmVnb3RpYXRpb24KCSAgV2hlbiB0aGUgZG93bnN0cmVhbSBlbGVtZW50IHN1Z2dlc3RzIGEgbmV3IGZvcm1hdCwgcGFzcyB0aGUgc3VnZ2VzdGlvbgoJICB1cHN0cmVhbSBpZiB3ZSBjYW4ndCBjb252ZXJ0IHRvIGl0LgoJICBGaXhlcyAjNjMzMTQ3CgoyMDEwLTEwLTI3IDE4OjEyOjM2ICswMjAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRml4IHRyYWNraW5nIG9mIHVubGlua2VkIHN0cmVhbXMuCgkgIDMzMDgyZWI5ZTQyYzUyZTRkZjg0ODE5NTk0NmYxYjdiYmNlNzY4YzUgaW50cm9kdWNlZCBhIGJ1ZwoJICBwcmV2ZW50aW5nIHNwYXJzZSB1bmxpbmtlZCBzdHJlYW1zIGZyb20gYWR2YW5jaW5nIHByb3Blcmx5LAoJICBsZWFkaW5nIHRvIHRoZSBxdWV1ZSBibG9ja2luZy4KCSAgRml4ZXM6ICM2MzMxNzYKCjIwMTAtMTAtMjcgMTg6MTE6MzUgKzAyMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgdGVzdHM6IEFkZCBhIG11bHRpcXVldWUgc3BhcnNlIHN0cmVhbXMgdGVzdAoKMjAxMC0xMC0yNyAxMzoxNjoxMSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA3YmJkNzA4IHRvIDAxMWJjYzgKCjIwMTAtMTAtMjIgMTc6MzU6MjMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMzAuMyBwcmUtcmVsZWFzZQoKMjAxMC0xMC0xOCAxNzo0MjoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkgIGJ5dGVyZWFkZXI6IGNvbnN0LWlmeSBieXRlIHJlYWRlciBhcmd1bWVudCBpbiBwZWVrL3NjYW4gQVBJCgkgIEJlY2F1c2Ugd2UgY2FuLgoKMjAxMC0xMC0yMiAxMTo1Mjo0NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBlbGVtZW50ZmFjdG9yeTogRml4IDY0Yml0IGNvbnN0YW50CgkgIEJhc2ljYWxseSB3ZSdyZSBub3QgbWVhbnQgdG8gcHV0IGFueXRoaW5nIG1vcmUgY29tcGxleCB0aGFuIHNpbXBsZSBudW1iZXJzLAoJICBkdWUgdG8gdGhlIGRlZmluaXRpb24gb2YgR19HVUlOVDY0X0NPTlNUQU5UOgoJICBHX0dVSU5UNjRfQ09OU1RBTlQodmFsKQkodmFsIyNVTCkKCSAgV2hpY2ggcHJldmlvdXNseSByZXN1bHRlZCBpbiAuLi4uIDEgPDwgNDlVTAoKMjAxMC0xMC0xOCAxMDo0Njo1OSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiByZWNvbXB1dGUgY29ycmVjdCBydW5uaW5nIHRpbWUgZm9yIGJ1ZmZlciBlbmRpbmcgZmx1c2hpbmcgc3RlcAoJICBQcmV2ZW50cyBkZWxheWluZy9oYW5naW5nIHdoZW4gcmVzdW1pbmcgUExBWUlORy4KCSAgRml4ZXMgIzYzMjQzMy4KCjIwMTAtMTAtMTYgMTk6MTk6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJICBkb2NzOiBmaXggbWlzYy4gZ3RrLWRvYyB3YXJuaW5ncyBpbiBsaWJzCgkgIChmb3IgZ3RrLWRvYyAxLjE1KQoKMjAxMC0xMC0xNiAxODoyNjoyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJICBSZXZlcnQgImxpYnMvZ3N0L2RhdGFxdWV1ZTogRG9jdW1lbnQgZ3N0X2RhdGFfcXVldWVfbmV3X2Z1bGwiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgODA3MjdjMTE3NzAzNTA3Zjc5MGE4NmIwOTYyYWIzZDkxNWU1YTQ5MS4KCSAgVGhpcyBkb2Vzbid0IG1ha2Ugc2Vuc2UuIGdzdF9kYXRhX3F1ZXVlX25ld19mdWxsKCkgaXMgYWxyZWFkeQoJICBkb2N1bWVudGVkIGFib3ZlLiBBbmQgd2UgbmVlZCB0aGUgZG9jIGJsdXJiIGZvciBfbmV3KCkgaGVyZS4KCjIwMTAtMTAtMTYgMTc6MDA6MTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgZG9jczogZmxlc2ggb3V0IHJlbGVhc2UgaW5zdHJ1Y3Rpb25zIGEgYml0IG1vcmUKCjIwMTAtMTAtMTYgMTY6NTM6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGRvY3M6IGFkZCBzb21lIGd0ay1kb2MgU2luY2U6IG1hcmtlcnMKCSAgQWRkIHNvbWUgZ3RrLWRvYyBTaW5jZTogbWFya2VycywgZml4IG9uZSBTaW5jZTogbWFya2VyLAoJICBmaXggdHlwby4KCjIwMTAtMTAtMTYgMDA6MjU6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4zMC4yIHByZS1yZWxlYXNlCgoyMDEwLTEwLTE2IDAwOjE0OjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL0xJTkdVQVM6CgkqIHBvL2VzLnBvOgoJKiBwby9mci5wbzoKCSogcG8vbHQucG86CgkqIHBvL25sLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMC0xMC0xNSAxOTo0NToxNCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogdXNlZnVsIGZhY3RvcnkgbmFtZXMgZm9yIHVyaS1oYW5kbGVycyBvdXRwdXQKCSAgRml4ZXMgIzYzMjIzNi4KCjIwMTAtMTAtMTQgMTI6MzE6MzIgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA1YTY2OGJmIHRvIDdiYmQ3MDgKCjIwMTAtMTAtMTIgMTU6MTM6NDggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICBkYXRldGltZTogVXNlIHNlY29uZHMgYXMgZG91YmxlCgkgIFVzZSBzZWNvbmRzIGFzIGRvdWJsZSB0byBtYWtlIEFQSSBzaW1pbGFyIHRvIGdsaWIncwoJICBnZGF0ZXRpbWUuIEFsc28gbW92ZSB0aW1lem9uZSBwYXJhbWV0ZXIgdG8gdGhlCgkgIGZpcnN0IHBvc2l0aW9uLCBqdXN0IGxpa2UgZ2xpYidzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI4NDA4CgoyMDEwLTEwLTExIDE2OjE1OjI5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJICBnc3RkYXRldGltZTogTW92ZSBkb2Mgb3V0c2lkZSB0aGUgaWZkZWZzCgkgIE1vdmUgdGhlIGRhdGV0aW1lIGRvY3VtZW50YXRpb24gb2YgdGhlIGZ1bmN0aW9ucyBvdXRzaWRlIHRoZQoJICBpZmRlZnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyODQwOAoKMjAxMC0wOS0yNyAxOTozNTowOCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkgIGRhdGV0aW1lOiBVc2UgR0RhdGVUaW1lIGlmIGF2YWlsYWJsZQoJICBVc2UgR0RhdGVUaW1lIGludGVybmFsbHkgb24gR3N0RGF0ZVRpbWUgaWYgZ2xpYiBhbHJlYWR5CgkgIHByb3ZpZGVzIGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI4NDA4CgoyMDEwLTA5LTI4IDE3OjQ2OjI5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkgIGdsaWItcHJpdmF0ZTogQWRkIGluY2x1ZGUgcHJvdGVjdGlvbiBtYWNybwoKMjAxMC0xMC0xMyAxMjo1MTowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogYWRkIGd1YXJkIHRvIGJ1ZmZlcl9zZXRfY2FwcygpIHRoYXQgY2hlY2tzIGlmIGNhcHMgYXJlIHNpbXBsZQoKMjAxMC0xMC0xMyAxNTo1NjoyNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBhZGQgYSBtaXNzaW5nIEdfUEFSQU1fU1RBVElDX1NUUklOR1MKCjIwMDktMTAtMDEgMTE6MTQ6MDYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJICBsaWJzL2dzdC9kYXRhcXVldWU6IERvY3VtZW50IGdzdF9kYXRhX3F1ZXVlX25ld19mdWxsCgoyMDA5LTA5LTI4IDEzOjM1OjM1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSAgYmFzZS9nc3RkYXRhcXVldWU6IGlubGluZSBzb21lIGZ1bmN0aW9ucywgZ2V0IGxldmVscyB3aXRoIG1lbWNweS4KCjIwMTAtMTAtMTMgMTE6NTQ6MDQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFJlbW92ZSB1bnVzZWQgYXJndW1lbnQgZnJvbSBmaW5kX3JhbmdlKCkKCjIwMTAtMTAtMTMgMTE6NTI6MjUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICBmZHNpbms6IGNsZWFudXAgZ2V0X3Byb3BlcnR5L3NldF9wcm9wZXJ0eQoKMjAxMC0xMC0xMiAxODo0ODoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBxdWV1ZTogYXZvaWQgZ19jb25kX3NpZ25hbCB3aGVuIHdlIGNhbgoJICBLZWVwIHRyYWNrIG9mIHdoYXQgY29uZCB3ZSBhcmUgd2FpdGluZyBvbiBhbmQgb25seSBzaWduYWwgd2hlbiBzb21lIG90aGVyIHRocmVhZAoJICBpcyB3YWl0aW5nLgoKMjAxMC0xMC0xMSAxOToyNzo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBhdm9pZCBkdXBsaWNhdGUgdHlwZSBjaGVjayB3aGVuIGZyZWVpbmcgbWluaW9iamVjdAoJICBnc3RfbWluaV9vYmplY3RfdW5yZWYoKSBoYXMgZ3VhcmRzIHRoYXQgY2hlY2sgdGhlIHR5cGUgYWxyZWFkeSwgc28KCSAgd2UgZG9uJ3QgcmVhbGx5IG5lZWQgdG8gcmUtY2hlY2sgaXQgaGVyZSBhZ2FpbiB3aGlsZSBnZXR0aW5nIHRoZQoJICBjbGFzcyAodGhlcmUncyBub3QgcmVhbGx5IG11Y2ggcG9pbnQgdG8gdGhhdCBhbnl3YXksIHNpbmNlIHdlIGRvbid0CgkgIGNoZWNrIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGdldF9jbGFzcywgc28gd2UnZCBjcmFzaCBhbnl3YXkgaWYKCSAgd2UncmUgbm90IGRlYWxpbmcgd2l0aCBhIG1pbmkgb2JqZWN0LCB0aGUgb25seSBxdWVzdGlvbiB3b3VsZAoJICBiZSBpZiB0aGVyZSdkIGJlIGEgd2FybmluZyBiZWZvcmUgdGhlIGNyYXNoIG9yIG5vdCkuCgoyMDEwLTEwLTExIDE4OjU1OjE0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogRGlyZWN0bHkgaW5jcmVhdGUgbWluaV9vYmplY3QgaW4gbWluaV9vYmplY3RfZnJlZSgpCgkgIFNwZWVkcyB1cCBtaW5pX29iamVjdF91bnJlZiBieSAyNSUgYnkgYXZvaWRpbmcgdGhlIHR5cGVjaGVjayB3aGljaAoJICBpcyBhdm9pZGFibGUgaGVyZSBzaW5jZSBpdCBpcyBvbmx5IGNhbGxlZCBvbiBleGlzdGluZyBtaW5pb2JqZWN0cy4KCjIwMTAtMTAtMTEgMTg6MzA6NTQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBSZW1vdmUgY29uZnVzaW5nIERFQlVHX1JFRkNPVU5UIGRlZmluZQoJICB0aGUgZGVidWdnaW5nIHN0YXRlbWVudHMgd2lsbCBiZSBzaWxlbmNlZCBhdXRvbWF0aWNhbGx5IGlmIGRlYnVnZ2luZwoJICBpcyBkaXNhYmxlZCwgYW5kIHRoZSB0eXBlIGNoZWNrIGlzIGFjdHVhbGx5IHJlcXVpcmVkLgoKMjAxMC0xMC0xMSAxODoxMDowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcmVsZWFzZSBxdWV1ZTIgbG9jayBiZWZvcmUgbm90aWZ5CgkgIE1ha2Ugc3VyZSB0aGF0IHdlIGRvbid0IGhvbGQgdGhlIGxvY2sgd2hlbiB3ZSBub3RpZnkgdGhlIHRlbXAtbG9jYXRpb24KCSAgcHJvcGVydHksCgkgIEZpeGVzICM2MzE4NTMKCjIwMTAtMTAtMTEgMTY6NDU6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBhZGQgZGVidWcgc3RhdGVtZW50CgoyMDEwLTEwLTExIDEwOjI3OjUyICswMjAwICBPZ255YW4gVG9uY2hldiA8b2dueWFuQGF4aXMuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkgIHF1ZXVlOiBhcHBseSBzaW5rIHNlZ21lbnQgb24gdGhlIHNvdXJjZSBpZiBxdWV1ZSBpcyBlbXB0eQoJICBBcHBseSB0aGUgc2luayBzZWdtZW50IG9uIHRoZSBzb3VyY2UgaW1tZWRpYXRseSB3aGVuIGl0IGlzIHJlY2VpdmVkCgkgIGFuZCB0aGVyZSBpcyBub3RoaW5nIGluIHRoZSBxdWV1ZS4KCSAgU29sdmVzICM0ODIxNDcKCjIwMTAtMTAtMTEgMTU6NTE6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogZml4IGRvY3VtZW50YXRpb24gZm9yIGl0ZXJhdGVfc291cmNlcwoKMjAxMC0xMC0xMSAxNjo0MToyNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGRvY3M6IHVzZSB0aGUgZ3RrLWRvYyBzaG9ydGN1dHMgdG8gZ2V0IGNvbG91cmVkIGFuZCB4cmVmZWQgZXhhbXBsZQoKMjAxMC0xMC0xMSAxNDoyMDoxNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogSW5pdGlhbGl6ZSB2YXJpYWJsZQoKMjAxMC0xMC0xMSAxMDo1Njo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBJbXByb3ZlIHRyYWNraW5nIG9mIHNvdXJjZSBlbGVtZW50cwoJICBUcmFjayBlbGVtZW50cyB0YWdnZWQgd2l0aCB0aGUgSVNfU09VUkNFIGZsYWcgaW4gYSBzaW1pbGFyIHdheSB3ZSB0cmFjayB0aGUgc2luawoJICBlbGVtZW50cy4gVGhpcyBhbGxvd3MgdXMgdG8gZWZmaWNpZW50bHkgZGlzcGF0Y2ggZG93bnN0cmVhbSBldmVudHMgdG8gdGhlIHJpZ2h0CgkgIGVsZW1lbnRzLgoKMjAxMC0xMC0xMSAxMDo1NTowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiB0YWcgYXMgYSBTT1VSQ0UgZWxlbWVudAoJICBUYWcgYWxsIGVsZW1lbnRzIGRlcml2aW5nIGZyb20gdGhlIGJhc2VzcmMgd2l0aCB0aGUgSVNfU09VUkNFIGZsYWcuCgoyMDEwLTEwLTExIDEwOjUzOjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDogYWRkIElTX1NPVVJDRSBmbGFnCgkgIEFkZCB0aGUgR1NUX0VMRU1FTlRfSVNfU09VUkNFIGZsYWcgc28gdGhhdCB3ZSBjYW4gdGFnIHNvdXJjZSBlbGVtZW50cyBsaWtlIHdlCgkgIGNhbiB3aXRoIHNpbmsgZWxlbWVudHMuCgoyMDEwLTEwLTA5IDE0OjE4OjQ0ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPG9nZy5rLm9nZy5rQGdvb2dsZW1haWwuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiBnX21hcHBlZF9maWxlX3VucmVmIGV4aXN0cyBhbHJlYWR5IHNpbmNlIEdMaWIgMi4yMS4zCgoyMDEwLTEwLTEwIDE4OjE0OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBSZXBvcnQgdGhlIG91dHB1dCBwb3NpdGlvbiBvbiBQT1NJVElPTiBxdWVyaWVzIG9uIHRoZSBzcmNwYWQKCSAgVGhlcmUgY2FuIGJlIGEgZGlmZmVyZW5jZSBiZXR3ZWVuIGlucHV0IGFuZCBvdXRwdXQgbGFzdF9zdG9wLgoJICBGaXhlcyBidWcgIzYyOTQxMC4KCjIwMTAtMTAtMDggMTI6NDM6MjAgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBjNGE4YWRjIHRvIDVhNjY4YmYKCjIwMTAtMTAtMDggMTI6NTQ6NTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBhbmQgc2ltcGxpZnkgY29kZQoJICBvbGRpZCB3YXMgb25seSB1c2VkIHdoZW4gd2Ugd2VyZSBkb2luZyBtdWx0aXBsZSBwb3BzIHBlciBsb29wLgoKMjAxMC0xMC0wOCAxMjo1MDoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDVlM2M5YmYgdG8gYzRhOGFkYwoKMjAxMC0xMC0wOCAxMjo0ODo0MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXItZG9jcy5oOgoJICBieXRld3JpdGVyOiBBZGQgbWlzc2luZyBmaWxlCgoyMDEwLTEwLTA4IDEyOjE4OjIzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBieXRld3JpdGVyOiBBZGQgdW5jaGVja2VkIHZhcmlhbnRzIG9mIHRoZSB3cml0aW5nIGZ1bmN0aW9ucwoJICBUaGVzZSBkb24ndCBjaGVjayBpZiB0aGVyZSdzIGVub3VnaCBmcmVlIHNwYWNlIGF2YWlsYWJsZSBhbmQgYXJlCgkgIGF2YWlsYWJsZSBhcyBpbmxpbmUgZnVuY3Rpb25zIG9ubHkuCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9pbnQ4X3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfaW50MTZfYmVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9pbnQxNl9sZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2ludDI0X2JlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfaW50MjRfbGVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9pbnQzMl9iZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2ludDMyX2xlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfaW50NjRfYmVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9pbnQ2NF9sZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X3VpbnQ4X3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfdWludDE2X2JlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfdWludDE2X2xlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfdWludDI0X2JlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfdWludDI0X2xlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfdWludDMyX2JlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfdWludDMyX2xlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfdWludDY0X2JlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfdWludDY0X2xlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfZmxvYXQzMl9iZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2Zsb2F0MzJfbGVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9mbG9hdDY0X2JlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfZmxvYXQ2NF9sZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2RhdGFfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX2ZpbGxfdW5jaGVja2VkCgoyMDEwLTEwLTA4IDA5OjM0OjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIGNvbnRyb2xsZXIsIGRhdGFwcm90b2NvbDogbWFrZSBwdWJsaWMgZW51bSBfZ2V0X3R5cGUoKSBmdW5jdGlvbnMgdGhyZWFkLXNhZmUKCSAgTm90IHRoYXQgaXQgaXMgbGlrZWx5IHRvIG1hdHRlciBpbiBwcmFjdGljZSwgYnV0IHNpbmNlIHRoZXNlIGFyZSBwdWJsaWMKCSAgQVBJIHRoZXkgc2hvdWxkIHByb2JhYmx5IGJlIHRocmVhZC1zYWZlLgoKMjAxMC0xMC0wOCAwMDozODozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICBkYXRhcHJvdG9jb2wsIGxmb2NvbnRyb2xzb3VyY2U6IGZpeCBlbnVtIHZhbHVlIG5hbWUgaW4gZW51bXMgdGhhdCBhcmUgcHVibGljIEFQSQoJICBTbyBydW4tdGltZSBiaW5kaW5ncyBjYW4gaW50cm9zcGVjdCB0aGUgbmFtZXMgY29ycmVjdGx5ICh3ZSBhYnVzZSB0aGlzCgkgIGZpZWxkIGFzIGRlc2NyaXB0aW9uIGZpZWxkIG9ubHkgaW4gZWxlbWVudHMsIG5vdCBmb3IgcHVibGljIEFQSQoJICAod2hlcmUgdGhlIGRlc2NyaXB0aW9uIGJlbG9uZ3MgaW50byB0aGUgZ3RrLWRvYyBjaHVuaykuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mjk5NDYKCjIwMTAtMTAtMDggMDk6NDc6MTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGJ5dGV3cml0ZXI6IEZpeCBwb3NzaWJsZSBpbmZpbml0ZSBsb29wIGNhdXNlZCBieSBhbiBvdmVyZmxvdwoKMjAxMC0xMC0wNyAxODo0NjoyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIGVsZW1lbnRzOiBtaW5vciBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCB3aGVuIGRvaW5nIGdfb2JqZWN0X25vdGlmeSgpIGZvciB0aGUgImxhc3QtbWVzc2FnZSIgcHJvcGVydHkKCSAgTWFrZSBzdXJlIHByb3BlcnR5IG5hbWVzIHBhc3NlZCB0byBnX29iamVjdF9ub3RpZnkoKSBhcmUgaW4gdGhlIGNhbm9uaWNhbCBmb3JtCgkgIChpZS4gImxhc3QtbWVzc2FnZSIgbm90ICJsYXN0X21lc3NhZ2UiKSwgc28gdGhhdCBnX3BhcmFtX3NwZWNfcG9vbF9sb29rdXAoKQoJICBkb2Vzbid0IGhhdmUgdG8gZG8gc3RyZHVwL2Nhbm9uaWNhbGl6ZS9mcmVlIGZvciBldmVyeSBzaW5nbGUgbm90aWZ5IGNhbGwuCgkgIFRoaXMgb25seSBhcHBsaWVzIHdoZW4gYnVpbGRpbmcgYWdhaW5zdCBvbGRlciBHTGliIHZlcnNpb25zICg8IDIuMjYpLgoKMjAxMC0xMC0wNyAxODoyNzowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSAgZmFrZXNpbms6IHVzZSBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoKSBhbmQgcmVtb3ZlIHdvcmstYXJvdW5kIGZvciBvbGQgR0xpYiB2ZXJzaW9ucyBpZiBwb3NzaWJsZQoJICBVc2UgbW9yZSBlZmZpY2llbnQgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKCkgaWYgd2UncmUgY29tcGlsaW5nIGFnYWluc3QKCSAgR0xpYiA+PSAyLjI2LCBhbmQgYWxzbyByZW1vdmUgd29yay1hcm91bmQgZm9yIGdfb2JqZWN0X25vdGlmeSgpIHRocmVhZC0KCSAgc2FmZXR5IGlzc3VlcyB3aXRoIG9sZGVyIEdMaWIgdmVyc2lvbnMgaWYgaXQncyBub3QgbmVlZGVkIGFueSBtb3JlLgoKMjAxMC0xMC0wNyAxODoyMToxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IHVzZSBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoKSBpZiBwb3NzaWJsZQoJICBVc2UgbW9yZSBlZmZpY2llbnQgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKCkgaWYgd2UncmUgY29tcGlsaW5nIGFnYWluc3QKCSAgR0xpYiA+PSAyLjI2LgoKMjAxMC0xMC0wNyAxODoxOTozMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgZmFrZXNyYzogdXNlIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYygpIGlmIHBvc3NpYmxlCgkgIFVzZSBtb3JlIGVmZmljaWVudCBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoKSBpZiB3ZSdyZSBjb21waWxpbmcgYWdhaW5zdAoJICBHTGliID49IDIuMjYuCgoyMDEwLTEwLTA3IDE3OjUzOjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICBpZGVudGl0eTogdXNlIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYygpIGFuZCByZW1vdmUgd29yay1hcm91bmQgZm9yIG9sZCBHTGliIHZlcnNpb25zIGlmIHBvc3NpYmxlCgkgIFVzZSBtb3JlIGVmZmljaWVudCBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoKSBpZiB3ZSdyZSBjb21waWxpbmcgYWdhaW5zdAoJICBHTGliID49IDIuMjYsIGFuZCBhbHNvIHJlbW92ZSB3b3JrLWFyb3VuZCBmb3IgZ19vYmplY3Rfbm90aWZ5KCkgdGhyZWFkLQoJICBzYWZldHkgaXNzdWVzIHdpdGggb2xkZXIgR0xpYiB2ZXJzaW9ucyBpZiBpdCdzIG5vdCBuZWVkZWQgYW55IG1vcmUuCgoyMDEwLTEwLTA3IDE3OjIzOjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZHM6IHVzZSBuZXcgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKCkgZm9yIGNhcHMgbm90aWZpZXMgaWYgYXZhaWxhYmxlCgkgIElmIHdlJ3JlIGJ1aWxkaW5nIGFnYWluc3QgR0xpYiA+PSAyLjI2LjAsIHdlIGNhbiB1c2UgdGhlIG1vcmUgZWZmaWNpZW50CgkgIGdfb2JqZWN0X25vdGlmeV9ieV9jYXBzKCksIHdoaWNoIGF2b2lkcyB0aGUgcGFyYW0gc3BlYyBsb29rdXAuCgoyMDEwLTEwLTA3IDE2OjI3OjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBjbG9jazogcmVtb3ZlIHVubmVjZXNzYXJ5IGdfb2JqZWN0X25vdGlmeSgpIGNhbGwKCSAgR09iamVjdCB3aWxsIGRvIHRoYXQgZm9yIHVzIHdoZW4gZ19vYmplY3Rfc2V0KigpIGlzIGNhbGxlZC4KCjIwMTAtMTAtMDcgMTk6MTg6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBxb3MgZGVzaWduIGRvYwoJICBGaXggc29tZSB0eXBvcy4KCSAgY2hhbmdlIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBxdWFsaXR5IGZpZWxkIGZvciB2aWRlbyBkZWNvZGVycyB0byBzb21ldGhpbmcgdGhhdAoJICBtYWtlcyBtb3JlIHNlbnNlLgoKMjAxMC0xMC0wNSAxNzowMjo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSAgQWRkIGdvYmplY3QtaW50cm9zcGVjdGlvbiB0ZW1wIGRpcmVjdG9yaWVzIHRvIENSVUZUX0RJUlMKCjIwMTAtMTAtMDUgMTU6MDU6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIGxmb2NvbnRyb2xzb3VyY2U6IHVzZSBtYXRoLWNvbXBhdC5oIGZvciBNX1BJCgoyMDEwLTEwLTA1IDE0OjQ1OjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RpbmZvLmg6CgkgIGdzdGluZm86IHJlbW92ZSByYW5kb20gTVNWQyBjb21wYXRpYmlsaXR5IGRlZmluZSBmb3IgTV9QSSB0aGF0IGRvZXNuJ3QgYmVsb25nIGhlcmUKCSAgQ29kZSB0aGF0IG5lZWRzIHRoaXMgc2hvdWxkIGluY2x1ZGUgZ3N0L21hdGgtY29tcGF0Lmggb3IgdXNlIEdfUEkuCgoyMDEwLTEwLTA1IDE0OjE2OjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9tYXRoLWNvbXBhdC5oOgoJICBnc3Q6IGFkZCBtYXRoLWNvbXBhdC5oIGhlYWRlcgoJICBBZGQgbWluaW1hbCBtYXRoLWNvbXBhdGguaCBoZWFkZXIgd2hlcmUgd2UgY2FuIGRlZmluZSBmYWxsYmFjawoJICB2ZXJzaW9ucyBmb3IgbWlzY2VsbGFuZW91cyBtYXRoIGZ1bmN0aW9ucyB0aGF0IGFyZW4ndCBhbHdheXMKCSAgYXZhaWxhYmxlLCBzbyB3ZSBkb24ndCBoYXZlIHRvIGR1cGxpY2F0ZSB0aGlzIGluIHBsdWdpbnMuCgkgIFRoZSBoZWFkZXIgaXMgbm90IGluY2x1ZGVkIGJ5IGRlZmF1bHQsIHNvIG5lZWRzIHRvIGJlCgkgIGluY2x1ZGVkIGV4cGxpY2l0bHkgZm9yIG5vdy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzMDgwMgoKMjAxMC0xMC0wNSAxMTo0Nzo1OSArMDIwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIHRvb2xzL2dzdC1wbG90LXRpbWVsaW5lLnB5OgoJICB0b29sczogZml4IHBhcnNpbmcgb2YgdGltZXN0YW1wIGluIGdzdC1wbG90LXRpbWVsaW5lCgoyMDEwLTA5LTI1IDE0OjI0OjQ2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBkb24ndCB0YWtlIHByZXJvbGwtbG9jayBpbiBnZXRfcHJvcGVydHkKCSAgVXNlIGF0b21pYyBvcHMgdG8gcmVhZCBhbmQgd3JpdGUgbW9yZSBwcm9wZXJ0aWVzLiBUYWtpbmcgdGhlIHByZXJvbGwgbG9jayBpbiBnZXRfcHJvcGVydHkKCSAgY2FuIGxvY2sgdXAgYXBwbGljYXRpb25zIHJlYWRpbmcgdGhlIHByb3BlcnR5IGR1cmluZyBwcmVyb2xsLgoKMjAxMC0xMC0wMiAxODoxMTozMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBiYXNlc2luazogYWRkIGEgZml4bWUgZm9yIDAuMTEKCjIwMTAtMTAtMDQgMTU6NDk6MTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBmb3JtYXQgbmVnYXRpdmUgdmFsdWVzIGJldHRlcgoJICBGb3JtYXQgbmVnYXRpdmUgdmFsdWVzIHByb3Blcmx5IGluIHRoZSBkZWJ1ZyBsb2cuCgoyMDEwLTEwLTAzIDIzOjQxOjI2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYml0cmVhZGVyLmM6CgkgIGJpdHJlYWRlcjogRml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgY29tcGlsZXIgd2FybmluZ3MKCSAgZ2NjIGRvZXNuJ3Qgbm90aWNlIHRoYXQgdGhlIGNoZWNrIGFzc2VydGlvbiBtYWNyb3Mgd2lsbCBhYm9ydAoJICBmdXJ0aGVyIGV4ZWN1dGlvbiBvZiB0aGUgdGVzdHMuCgoyMDEwLTEwLTAzIDIzOjMyOjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSAgYnl0ZXdyaXRlcjogQWRkIGlubGluZSB2YXJpYW50cyBvZiBhbGwgaW1wb3J0YW50IGZ1bmN0aW9ucwoKMjAxMC0xMC0wMyAxNToyNzozNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYml0cmVhZGVyLmM6CgkgIGJpdHJlYWRlcjogQWRkIGlubGluZWQgYW5kIHVuY2hlY2tlZCB2ZXJzaW9ucyBvZiB0aGUgaW1wb3J0YW50IGZ1bmN0aW9ucwoJICBBUEk6IGdzdF9iaXRfcmVhZGVyX3NraXBfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2JpdF9yZWFkZXJfc2tpcF90b19ieXRlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9iaXRfcmVhZGVyX2dldF9iaXRzX3VpbnQxNl91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYml0X3JlYWRlcl9nZXRfYml0c191aW50MzJfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2JpdF9yZWFkZXJfZ2V0X2JpdHNfdWludDY0X3VuY2hlY2tlZAoJICBBUEk6IGdzdF9iaXRfcmVhZGVyX2dldF9iaXRzX3VpbnQ4X3VuY2hlY2tlZAoJICBBUEk6IGdzdF9iaXRfcmVhZGVyX3BlZWtfYml0c191aW50MTZfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2JpdF9yZWFkZXJfcGVla19iaXRzX3VpbnQzMl91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYml0X3JlYWRlcl9wZWVrX2JpdHNfdWludDY0X3VuY2hlY2tlZAoJICBBUEk6IGdzdF9iaXRfcmVhZGVyX3BlZWtfYml0c191aW50OF91bmNoZWNrZWQKCSAgVGhpcyBhbG9uZSBtYWtlcyBmbGFjcGFyc2UgYWJvdXQgMyB0aW1lcyBmYXN0ZXIuCgoyMDEwLTEwLTAzIDE0OjU5OjQ3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSAgYnl0ZXdyaXRlcjogQWRkIGd1YXJkcyB0byB0aGUgaW5saW5lZCBnZXRfcG9zL2dldF9yZW1haW5pbmcvZ2V0X3NpemUvZXRjIGZ1bmN0aW9ucwoKMjAxMC0xMC0wMyAxNDoyNDowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJICBiaXRyZWFkZXI6IE9wdGltaXplIHBlZWtfYml0cy9nZXRfYml0cyBhIGJpdAoJICBVc2UgbG9jYWwgdmFyaWFibGVzIGluc3RlYWQgb2YgZGVyZWZlcmVuY2luZyB0aGUgYml0cmVhZGVyCgkgIHBvaW50ZXIgYWxsIHRoZSB0aW1lIGFuZCBkb24ndCBjb3B5IHRoZSByZWFkZXIgZm9yIHBlZWtfYml0cy4KCjIwMTAtMDktMjcgMTk6Mjk6MjQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICBnc3RkYXRldGltZTogRml4IHN0cmluZyBzZXJpYWxpemF0aW9uCgkgIENvcnJlY3RseSBzZXJpYWxpemUgdHpvZmZzZXQgYXMgYSBnc3R2YWx1ZQoKMjAxMC0wOS0yNCAxMjoyMjozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGltcHJvdmUgYWRqdXN0X3RpbWUoKQoJICBBZGQgc29tZSBtb3JlIGNvbW1lbnRzLgoJICBNYWtlIHN1cmUgd2UgZG9uJ3QgZW5kIHVwIHdpdGggbmVnYXRpdmUgdGltZXN0YW1wcy4KCjIwMTAtMDUtMjYgMjA6Mjk6MjIgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHJlbmRlcmRlbGF5IG5lZWRzIHRvIGJlIHN1YnRyYWN0ZWQgaW4gYWRqdXN0X3RpbWUoKQoJICBsYXRlbmN5IGlzIGFscmVhZHkgc2luay1sYXRlbmN5ICsgcmVuZGVyLWRlbGF5LCBhbmQgaGVyZSB3ZSBvbmx5CgkgIHdhbnQgdG8gZGVhbCB3aXRoIHRoZSBzaW5rLWxhdGVuY3kuCgkgIEZpeGVzICM2MzA0MzYKCjIwMTAtMDktMjQgMDA6MTM6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0bWFyc2hhbC5jOgoJICB3aW4zMjogZGVmaW5lIEdTVF9QQUNLQUdFX1JFTEVBU0VfREFURVRJTUUgaW4gd2luMzIgY29uZmlnLmggYXMgd2VsbAoKMjAxMC0wOS0yMyAyMDo1Nzo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIGZvciBuZXcgc3RyaW5ncwoKMjAxMC0wOS0yMyAyMDo0ODoyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogcHJpbnQgR1NUX1BBUkFNX01VVEFCTEVfKiBwcm9wZXJ0eSBmbGFncwoKMjAxMC0wNS0wNCAwOTozNjo0MyArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IE1ha2UgYSBXQVJOSU5HIGludG8gYSBERUJVRyBzdGF0ZW1lbnQKCSAgRml4ZXMgYnVnICM2MzA0MzcuCgoyMDEwLTAxLTEyIDE3OjEwOjU5ICswMTAwICBUcm9uZCBBbmRlcnNlbiA8dHJvbmQuYW5kZXJzZW5AdGFuZGJlcmcuY29tPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIGNsb2NrOiBmaXggcmFjeSBzaHV0ZG93biBjbG9jayBpZCBsZWFrCgkgIENsb2NrIElEcyB3ZXJlIGxlYWtlZCBpZiB0aGUgY2xvY2sgZ290IGRpc3Bvc2VkIGJlZm9yZSB0aGUgd29ya2VyIHRocmVhZAoJICBnb3QgYSBjaGFuY2UgdG8gcmVhcCB1bnNjaGVkdWxlZCBlbnRyaWVzLgoJICBGaXhlcyBidWcgIzYzMDQzOS4KCjIwMTAtMDktMjMgMTg6MTg6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogYXZvaWQgdXNlbGVzcyBtZW1jcHkKCSAgQmVjYXVzZSBvZiB0aGUgYXdrd2FyZCByZWZjb3VudGluZyBpbiBwcmVwYXJlX291dHB1dF9idWZmZXIsIHdlIG1pZ2h0IGVuZCB1cAoJICB3aXRoIHdyaXRhYmxlIGJ1ZmZlcnMgdGhhdCBwb2ludCB0byB0aGUgc2FtZSBkYXRhLiBDaGVjayBmb3IgdGhvc2UgY2FzZXMgc28gdGhhdAoJICB3ZSBhdm9pZCBhIHVzZWxlc3MgbWVtY3B5IGFuZCBrZWVwIHZhbGdyaW5kIHF1aWV0LgoJICBGaXhlcyAjNjI4MTc2CgoyMDEwLTA5LTIzIDE0OjM3OjQ1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBmaXggJ21ha2UgY2hlY2snIGJ1aWxkIGZvciBzZXR1cHMgd2hlcmUgbm8gYysrIGNvbXBpbGVyIGlzIGF2YWlsYWJsZQoJICBPbmx5IHRyeSB0byBidWlsZCAocHNldWRvLSlDKysgdW5pdCB0ZXN0IGlmIGEgd29ya2luZyBDKysgY29tcGlsZXIgaGFzIGJlZW4KCSAgZm91bmQsIG90aGVyd2lzZSB0aGUgYnVpbGQgd2lsbCBmYWlsLiAoV2UgZG8gdGhpcyB0byBtYWtlIHN1cmUgb3VyIGhlYWRlcnMKCSAgYXJlICdDKysgY2xlYW4nKS4KCjIwMTAtMDktMjMgMTA6MDg6MDUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnOiBBZGRzIEdTVF9UQUdfR0VPX0xPQ0FUSU9OX0hPUklaT05UQUxfRVJST1IKCSAgQWRkcyBhIG5ldyB0YWcgdG8gaW5kaWNhdGUgdGhlIGVycm9yIGluIGhvcml6b250YWwgcG9zaXRpb25pbmcKCSAgaW4gbWV0ZXJzLiBUaGlzIGlzIG9uZSBvZiB0aGUgYXZhaWxhYmxlICdncHMgZXJyb3InIGZpZWxkcyBpbgoJICBleGlmLCBmb3IgZXhhbXBsZS4KCSAgQVBJOiBHU1RfVEFHX0dFT19MT0NBVElPTl9IT1JJWk9OVEFMX0VSUk9SCgoyMDEwLTA5LTIzIDE1OjM0OjU0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIFJldmVydCAicGFkOiB1c2UgYSBuZXN0ZWQgbG9jayB0byBhdm9pZCByZWZmaW5nIHRoZSBwZWVyIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDliNDI0YjE1NzAzNjZiMTA3NDZhNzYyZThjOWM0YzFiMzViMjFlOTEuCgoyMDEwLTA5LTIzIDE1OjEyOjMyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHJlbW92ZSB2YXIgb25seSB1c2VkIGZvciBkZWJ1ZyBzdGF0ZW1lbnQKCjIwMTAtMDktMDcgMTY6NTY6MzggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiB1c2UgYSBuZXN0ZWQgbG9jayB0byBhdm9pZCByZWZmaW5nIHRoZSBwZWVyCgkgIEZpeGVzICM1MDM1OTIKCjIwMTAtMDctMTUgMTU6NDc6MzYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y3BwLmNjOgoJICB0ZXN0czogcmVidWlsZCBvbmUgdGVzdCB1c2luZyBjcHAKCSAgVGhpcyBhaW1zIHRvIGNhdGNoIGNwcCBpc3N1ZXMgaW4gY29yZS4gQWRkIGMrKyBib2lsZXJwbGF0ZSB0byBjb25maWd1cmUuCgoyMDEwLTA5LTIxIDE4OjMzOjI2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBhYTBkMWQwIHRvIDVlM2M5YmYKCjIwMTAtMDktMTkgMTY6MTA6MTYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgdGVzdHM6IEhhbmRsZSBuZXcgYXNzZXJ0aW9uIGluIGdzdF9hZGFwdGVyX21hc2tlZF9zY2FuX3VpbnQzMgoKMjAxMC0wOS0xOCAxOToyOTowOSAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogQWRkIGNoZWNrIGZvciBwYXR0ZXJuIGJpdHMgbm90IGluIG1hc2sKCjIwMTAtMDktMTcgMTk6NTM6MzMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBVc2UgZ19maWxlX3Rlc3QoKSBpbnN0ZWFkIG9mIGFjY2VzcygpIHdoaWNoIGRvZXMgbm90IGV4aXN0IG9uIE1TVkM2CgkgIEZpeGVzIGJ1ZyAjNjI5NDk0LgoKMjAxMC0wOS0xNyAxNzozNDo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJsaXN0OiBhZGQgZnVuY3Rpb24gdG8gYWRkIGEgbGlzdCBvZiBidWZmZXJzCgkgIEFkZCBhIGZ1bmN0aW9uIHRvIGFkZCBhIGxpc3Qgb2YgYnVmZmVycyB0byB0aGUgYnVmZmVybGlzdC4KCjIwMTAtMDktMTcgMTU6NTE6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGFkYXB0ZXI6IGFkZCBmdW5jdGlvbiB0byBnZXQgYSBsaXN0IG9mIGJ1ZmZlcnMKCSAgQWRkIGEgZnVuY3Rpb24gdG8gcmV0cmlldmUgYSBsaXN0IG9mIGJ1ZmZlcnMgY29udGFpbmluZyB0aGUgZmlyc3QgTiBieXRlcyBmcm9tCgkgIHRoZSBhZGFwdGVyLiBUaGlzIGNhbiBiZSBkb25lIHdpdGhvdXQgYSBtZW1jcHkgYW5kIHNob3VsZCBtYWtlIGl0IHBvc3NpYmxlIHRvCgkgIHRyYW5zZmVyIHRoZSBsaXN0IHRvIGEgR3N0QnVmZmVyTGlzdCBsYXRlci4KCjIwMTAtMDktMTcgMTU6MDc6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogcmV1c2UgbW9yZSBkYXRhIGluIF9wZWVrKCkKCSAgT3B0aW1pemUgX3BlZWsoKSBzb21lIG1vcmUgYnkgcmV1c2luZyBhbHJlYWR5IGFzc2VtYmxlZCBkYXRhIHdoZW4gd2UgY2FuLgoKMjAxMC0wOS0xNyAxMzo1NzozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBvcHRpbWl6ZSBfdGFrZSgpIGEgbGl0dGxlIG1vcmUKCSAgV2hlbiB3ZSBoYXZlIGFscmVhZHkgYXNzZW1ibGVkIHNvbWUgZGF0YSBiZWZvcmUsIHJldXNlIHRoaXMgZGF0YSBhbmQgb25seSBjb3B5CgkgIHRoZSBwYXJ0IHRoYXQgaXMgbmV3LgoKMjAxMC0wOS0xNyAxMjo0ODo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiByZWZhY3RvciBhZGFwdGVyIHRha2UKCSAgTW92ZSBzb21lIGNvbW1vbiBjb2RlIGludG8gb25lIHBsYWNlCgoyMDEwLTA5LTE3IDEyOjQwOjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICBhZGFwdGVyOiBhZGQgc3VwcG9ydCBmb3IgMCBzaXplZCBidWZmZXJzCgkgIEFkZCBzdXBwb3J0IGZvciAwIHNpemVkIGJ1ZmZlcnMuIFRoaXMgaXMgaW50ZXJlc3RpbmcgaW4gY29tYmluYXRpb24gd2l0aCB0aGUKCSAgdGltZXN0YW1wIGZ1bmN0aW9ucy4KCSAgRml4ZXMgIzYyOTU1MwoKMjAxMC0wOS0xNyAxMDowMTowMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXNjaGVkdWxpbmcueG1sOgoJICBwd2c6IE1ha2UgYSBzZW50ZW5jZSBjbGVhcmVyLgoKMjAxMC0wOS0xNiAxOToyNzo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IG1ha2Ugc3VyZSBnc3RyZWFtZXIgaGFzIGJlZW4gaW5pdGlhbGl6ZWQgd2hlbiBjcmVhdGluZyBlbGVtZW50cwoJICBBZGQgZ3N0X2lzX2luaXRpYWxpemVkKCkgZ3VhcmQgdG8gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCksIHNvCgkgIHBlb3BsZSB3aG8gZm9yZ290IHRvIGNhbGwgZ3N0X2luaXQoKSBnZXQgYSB1c2VmdWwgd2FybmluZyBmb3Igd2hhdAoJICBzZWVtcyB0byBiZSBhIGNvbW1vbiBlbm91Z2ggbWlzdGFrZS4KCjIwMTAtMDktMTYgMDA6Mzc6NTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBtaW5vciBnc3RfcXVlcnlfYWRkX2J1ZmZlcmluZ19yYW5nZSgpIGNvZGUgcmVmbG93CgkgIFNwcmlua2xlIHNvbWUgR19VTkxJS0VMWSgpLCByZXR1cm4gVFJVRS9GQUxTRSBjb25zdGFudHMsIGF2b2lkIGFuCgkgIHVubmVjZXNzYXJ5IGdfdmFsdWVfdW5zZXQoKSwgbW92ZSBnX3ZhbHVlX2luaXQoKStzZXRfaW50NjRfcmFuZ2UoKQoJICBjbG9zZXIgdG8gd2hlcmUgdGhleSdyZSBuZWVkZWQuCgoyMDEwLTA5LTE2IDAwOjMwOjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogZ3N0X3F1ZXJ5X2FkZF9idWZmZXJpbmdfcmFuZ2UoKSBvcHRpbWlzYXRpb25zCgkgIERvbid0IGNyZWF0ZSBhIG5ldyBHVmFsdWVBcnJheSBjb3B5IGZvciBldmVyeSBzaW5nbGUgX2FkZF9idWZmZXJpbmdfcmFuZ2UoKQoJICBjYWxsLCBidXQgYXBwZW5kIHRvIHRoZSBleGlzdGluZyB2YWx1ZSBhcnJheSBvd25lZCBieSB0aGUgc3RydWN0dXJlIGluc3RlYWQuCgoyMDEwLTA5LTE2IDAwOjAzOjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBtaWNyby1vcHRpbWlzYXRpb24gZm9yIHNvbWUgc2V0dGVyIGZ1bmN0aW9ucwoJICBTcGxpdCBvdXQgZnVuY3Rpb25zIHRoYXQgZG8gdGhlIGFjdHVhbCB3b3JrLCBzbyB3ZSBhdm9pZCBkb2luZwoJICB0aGUgc2FtZSBnX3JldHVybl9pZl9mYWlsKCkgY2hlY2tzIG11bHRpcGxlIHRpbWVzIGZvciBlYWNoIGNhbGwuCgoyMDEwLTA5LTE1IDIzOjQyOjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc3RydWN0dXJlOiBhZGQgZ3N0X3N0cnVjdHVyZV97aWRffXRha2VfdmFsdWUoKQoJICBBZGQgX3NldF92YWx1ZSgpIHZhcmlhbnRzIHRoYXQgdGFrZSBvd25lcnNoaXAgb2YgdGhlIHZhbHVlIHBhc3NlZAoJICBpbnN0ZWFkIG9mIG1ha2luZyBhIGNvcHkgb2YgdGhlIHZhbHVlLiBUaGlzIGlzIHVzZWZ1bCBmb3Igc2V0dGluZwoJICB2YWx1ZXMgdG8gdGhpbmdzIHRoYXQgYXJlbid0IHJlZmNvdW50ZWQgKGUuZy4gR1ZhbHVlQXJyYXlzIG9yCgkgIHN0cmluZ3Mgb3Igc3RyaW5nIGFycmF5cywgZXRjLikuCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV90YWtlX3ZhbHVlKCkKCSAgQVBJOiBnc3Rfc3RydWN0dXJlX2lkX3Rha2VfdmFsdWUoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI5ODMxCgoyMDEwLTA5LTE2IDE5OjE5OjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGZpeCBkb2Mgc3RyaW5nLCB3ZSBwb3N0IGVsZW1lbnQgbWVzc2FnZXMKCjIwMTAtMDktMTYgMTk6MDY6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogYWRkIG1lc3NhZ2UtZm9yd2FyZCBvcHRpb24KCSAgQWRkIGFuIG9wdGlvbiB0byBmb3J3YXJkIGFsbCB0aGUgaW50ZXJuYWwgbWVzc2FnZXMgdGhhdCB3b3VsZCBvdGhlcndpc2UgYmUKCSAgZmlsdGVyZWQgc3VjaCBhcyBFT1MsIFNFR01FTlQgYW5kIEFTWU5DIG1lc3NhZ2VzLgoJICBUaGlzIGFsbG93cyB0aGUgYXBwbGljYXRpb24gdG8sIGZvciBleGFtcGxlLCBkZXRlY3QgdGhhdCBhIHBhcnRpYWwgcGlwZWxpbmUgaXMKCSAgcHJlcm9sbGVkIG9yIHJlYWNoZWQgZW9zLgoJICBUaGUgb3JpZ2luYWwgbWVzc2FnZXMgYXJlIHdyYXBwZWQgaW5zaWRlIGFuIGVsZW1lbnQgbWVzc2FnZSBiZWNhdXNlIHRoZSBwYXJlbnQKCSAgYmlucyBhcmUgbm90IHN1cHBvc2VkIHRvIHNlZSB0aG9zZSBpbnRlcm5hbCBtZXNzYWdlcyBlc2NhcGUuCgoyMDEwLTA5LTEyIDE2OjUwOjExICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiB1c2Ugc3Ryc3RyKCkgaW5zdGVhZCBvZiBnX3N0cnN0cl9sZW4oKQoJICBTYXZlcyB1cyBhIHN0cmxlbigpIGNhbGwuCgoyMDEwLTA5LTE1IDEzOjI5OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBvbmx5IHBvc3QgYnVmZmVyaW5nIG1lc3NhZ2Ugd2hlbiBwZXJjZW50IGNoYW5nZWQKCjIwMTAtMDktMTUgMTM6MTU6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGFsd2F5cyB1cGRhdGUgYnVmZmVyaW5nIHN0YXR1cwoJICBVcGRhdGUgdGhlIGJ1ZmZlcmluZyBzdGF0dXMgZXZlbiB3aGVuIHdlIGFyZSBub3QgdXNpbmcgYSBxdWV1ZSBzbyB0aGF0IEVPUyBjYW4KCSAgcHJvcGVybHkgZmluaXNoIHRoZSBidWZmZXJpbmcuCgoyMDEwLTA5LTEzIDIwOjM5OjUwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBGaXggZmx1c2gtc3RvcCBldmVudCBoYW5kbGluZwoJICBBIGZsdXNoLXN0b3AgZXZlbnQgd291bGQgbWFrZSBhIHBhZCB1bmZsdXNoaW5nLCBjYXVzaW5nIGl0CgkgIHRvIHN0YXJ0IGFjdGluZyBhcyBhbiBhY3RpdmF0ZWQgcGFkLiBUaGlzLCBmb3IgZXhhbXBsZSwKCSAgY291bGQgbGVhZCB0byB0aGUgY2hhaW4gZnVuY3Rpb24gYmVpbmcgY2FsbGVkIHdoZW4gc3R1ZmYKCSAgaXNuJ3QgaW5pdGlhbGl6ZWQuCgkgIFRoaXMgY291bGQgaGFwcGVuZCB3aGVuIHNldHRpbmcgcXRkZW11eCB0byBOVUxMIHdoaWxlIGEgc2VlawoJICB3YXMgYmVpbmcgaGFuZGxlZCBpbiB0aGUgdXBzdHJlYW0gZmlsZXNyYyAoaW4gcHVzaCBtb2RlKS4KCSAgVGhpcyBwYXRjaCBtYWtlcyBpdCBjaGVjayBpZiBpdCBpcyBhY3RpdmF0ZWQgYmVmb3JlIHNldHRpbmcKCSAgaXQgdG8gdW5mbHVzaGluZy4KCjIwMTAtMDktMTMgMTE6MTc6MzQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBkb2NzOiBmaXggd2FybmluZ3MgcG9pbnRlZCBvdXQgYnkgZ3RrLWRvYwoKMjAxMC0wOS0xMyAwOTo1MDo1MyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkgIHRhc2twb29sOiBtYWtlIGRlYnVnIG9ubHkgY29kZSBjb25kaXRpb25hbAoKMjAxMC0wOS0xMCAxNTowNzowMyAtMDQwMCAgQ29saW4gV2FsdGVycyA8d2FsdGVyc0B2ZXJidW0ub3JnPgoKCSogZ3N0L2dzdGVycm9yLmg6CgkgIGludHJvc3BlY3Rpb246IEJ1aWxkIHdpdGggbGF0ZXN0IGctaQoJICBIaWRlIGEgY29tcGF0aWJpbGl0eSB0eXBlZGVmLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI5MjQxCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01NTA2MTYKCjIwMTAtMDktMDkgMjI6MjQ6MzggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBkb24ndCBsZWFrIGVudHJpZXMgZm9yIGJsYWNrbGlzdGVkIGZpbGVzCgoyMDEwLTA5LTA5IDIxOjU5OjI5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJICBjaGVja3M6IGFuZCBjaGVjayB0aGUgcmlnaHQgZW52LXZhciAoZml4dXAgbGFzdCBjb21taXQpCgoyMDEwLTA5LTA5IDIxOjU2OjI4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzoKCSAgdGVzdHM6IGFsbG93IHJ1bm5pbmcgc3RhdGUgdGVzdHMgZm9yIGFsbCBlbGVtZW50cwoJICBOb3cgb25lIGNhbiB1c2UgR1NUX05PX1NUQVRFX0lHTk9SRV9FTEVNRU5UUz0xIG1ha2UgZ2VuZXJpYy9zdGF0ZXMuY2hlY2sKCSAgdG8gdHJ5IGVsZW1lbnRzIHRoYXQgd291bGQgbm9ybWFseSBiZSBza2lwcGVkLgoKMjAxMC0wOS0wNiAxNToxNjoxNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBhdm9pZCBzdHJpbmcgY3JlYXRpb24gd2hlbiBub3QgbmVlZGVkCgoyMDEwLTA5LTA5IDE2OjExOjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IGlkZW50aXR5IGlzIEdBUCBmbGFnIGF3YXJlLCBubyBuZWVkIHRvIGxldCBpdCBiZSB1bnNldCBieSBiYXNldHJhbnNmb3JtCgoyMDEwLTA5LTA5IDE1OjU3OjE1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGFkZCBhIHN5bmMgYnVzIGhhbmRsZXIgYW5kIG1vdmUgc3RhdGUtY2hhbmdlIGxvZ2dpbmcgdGhlcmUKCSAgVGhlIHN5bmMgaGFuZGxlciBpcyBjYWxsZWQgZm9yIGFsbCBtZXNhZ2VzLCB0aGUgZXZlbnQgbG9vcCB3ZSBwcmV2aW91c2x5IHVzZWQKCSAgd2FzIG5vdC4gSW4gdGhlIHN5bmMgaGFuZGxlciB0cmlnZ2VyIHBpcGVsaW5lIGRvdCBkdW1wcyBhbmQgY2FsbCBhY2Nlc3MgZm9yIGEKCSAgZmlsZSBpbiB0bXAtZGlyIHRvIGFkZCBtYXJrZXJzIGludGVyY2VwdGFibGUgYnkgc3RyYWNlIGFuZCBjby4KCjIwMTAtMDktMDggMTg6NDE6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2Fwczogc2ltcGxpZnkgY29kZSBhIGJpdAoJICBObyBuZWVkIHRvIGNhbGwgZ19zbGlzdF9sZW5ndGgoKSBoZXJlLgoKMjAxMC0wOS0wOCAwOTozNzo0MiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFkZCBhIHVuY2hlY2tlZCB2YXJpYW50IGZvciBwdWxsCgkgIEFkZCBpbnRlcm5hbCBfZ2V0X3JhbmdlX3VuY2hlY2tlZCB0aGF0cyBpcyBjYWxsZWQgZnJvbSBfZ2V0X3JhbmdlIGFuZAoJICBfcHVsbF9yYW5nZS4KCjIwMTAtMDktMDcgMjM6NDg6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIHVnbHkvYmFkL2ZmbXBlZyBwa2ctY29uZmlnIGRpcnMgdG8gUEtHX0NPTkZJR19QQVRICgkgIFNvIHdlIGNhbiBmaWd1cmUgb3V0IHBsdWdpbiBkaXJlY3RvcmllcyBvZiBvdGhlciBtb2R1bGVzIHByb3Blcmx5IGluCgkgIHRoZSB1bmluc3RhbGxlZCBzZXR1cCBjYXNlLCBmb3IgdW5pdCB0ZXN0cyB0aGF0IG5lZWQgZWxlbWVudHMgZnJvbQoJICBvdGhlciBtb2R1bGVzLgoKMjAxMC0wOS0wNyAxMjowMToxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSAgZG9jczogdXBkYXRlIHBsdWdpbiBkb2NzIGZvciByZWNlbnQgY2hhbmdlcwoJICBBbmQgc29ydGVkIGhpZXJhcmNoeQoKMjAxMC0wOS0wNyAxMTo0MTozNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGMyZTEwYmYgdG8gYWEwZDFkMAoKMjAxMC0wOS0wNyAxMTowOToxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogZG9uJ3QgdXNlIGdzdF9zdHJ1Y3R1cmVfZm9yZWFjaCgpIG9uIE5VTEwgcG9pbnRlcnMKCjIwMTAtMDktMDYgMjA6MTk6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMgZm9yIG5ldyBzdHJpbmdzCgoyMDEwLTA5LTA2IDIwOjE2OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlcnJvci5jOgoJICBnc3RlcnJvcjogYWRkIGRlZmF1bHQgZXJyb3IgbWVzc2FnZSBmb3IgR1NUX0xJQlJBUllfRVJST1JfRU5DT0RFCgkgIE5vIGlkZWEgdGhvdWdoIHdoeSB3ZSBldmVuIGhhdmUgR1NUX0xJQlJBUllfRVJST1JfRU5DT0RFIG9yIHdoZW4gb25lCgkgIHdvdWxkIHdhbnQgdG8gdXNlIHRoYXQgaW5zdGVhZCBvZiBHU1RfU1RSRUFNX0VSUk9SX0VOQ09ERS4KCjIwMTAtMDktMDYgMjA6MDY6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVycm9yLmM6CgkgIGdzdGVycm9yOiBhdm9pZCBwb2ludGxlc3Mgc3RyaW5nIGNvcHlpbmcKCSAgVGhlcmUncyBubyBuZWVkIHRvIGNyZWF0ZSB0aGVzZSB0YWJsZXMgd2l0aCBkdXBsaWNhdGVzIG9mIHRoZQoJICB1bnRyYW5zbGF0ZWQgZXJyb3IgbWVzc2FnZSBzdHJpbmcgY29uc3RhbnRzLCB3ZSBjYW4ganVzdCB1c2UKCSAgb2xkLWZhc2hpb25lZCBzd2l0Y2gvY2FzZSBhbmQgY2FsbCBnZXR0ZXh0IGRpcmVjdGx5LiBUaGlzIGFsc28KCSAgbWFrZXMgdGhpbmdzIHNsaWdodGx5IG1vcmUgdGhyZWFkIHNhZmUgYW5kIG1vcmUgcm9idXN0IHRvIGJhZAoJICBpbnB1dCAoaW52YWxpZCBlcnJvciBjb2RlcykuCgoyMDEwLTA5LTA2IDE4OjMzOjUxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIGNoZWNrOiBBdm9pZCBlcnJvcjogYXJyYXkgc3Vic2NyaXB0IGlzIGFib3ZlIGFycmF5IGJvdW5kcwoJICBDb3VsZCBoYXZlIGNvbWUgdXAgd2l0aCBzb21ldGhpbmcgYmV0dGVyIGZvciBteSAyMDAwdGggY29tbWl0CgkgIHRvIEdTdHJlYW1lci4uLgoKMjAxMC0wOS0wNiAxNzowMToxOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBkb2NzOiBnaXZlIGEgcHJhY3RpY2FsIGV4YW1wbGUgZm9yIHRoZSBnc3Rfb2JqZWN0X2hhc19hbmNoZXN0b3IKCjIwMTAtMDktMDYgMTQ6MzM6NDQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogdXNlIHRoZSBwYXJlbnRfY2xhc3MgZGVmaW5lZCBieSBHX0RFRklORV9UWVBFCgoyMDEwLTA5LTA2IDE0OjMyOjAwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBNYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHRlc3RzOiB0dW5lIHNraXBwaW5nIGNoZWNrcyBpZiB3ZSBoYXZlIGRpc2FibGVkIHN1YnN5c3RlbXMKCSAgU2tpcCBBQkkgdGVzdHMgaWYgc29tZSBzdWJzeXN0ZW1zIGFyZSBvZmYuIFJlbW92ZSBESVNBQkxFX0dTVF9ERUJVRyBmcm9tCgkgIHNraXBwaW5nIGV4cG9ydCBjaGVja3MgYXMgdGhpcyBpcyBzYWZlIG5vdy4KCjIwMTAtMDktMDYgMTQ6MDk6NTIgKzAzMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rczogVXNlIHRoZSBjb3JyZWN0IHZhcmlhYmxlIGZvciBkZWJ1ZyBtZXNzYWdlCgkgIERlYnVnIHByaW50IHdhcyB1c2luZyBhIHZhcmlhYmxlIHRoYXQgd2FzIG5vdCBpbml0aWFsaXplZC4KCjIwMTAtMDgtMTAgMTQ6MDU6MjIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBlbGVtZW50LWRldGFpbHM6IGFsbG93IGZvciBhcmJpdHJhcnkgZWxlbWVudCBkZXRhaWxzCgkgIEFkZCBhIEdzdFN0cnVjdHVyZSB0byBHc3RFbGVtZW50Q2xhc3MgYW5kIEdzdEVsZW1lbnRGYWN0b3J5LiBBZGQgc2V0dGVycy9nZXR0ZXIuCgkgIEhhbmRsZSBpdCBpbiB0aGUgcmVnaXN0cnkgY29kZS4gUHJpbnQgaXRlbXMgaW4gZ3N0LWluc3BlY3QuCgkgIEZpeGVzICMzOTY3NzQuCgkgIEFQSTogZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X21ldGFfZGF0YSgpLCBnc3RfZWxlbWVudF9mYWN0b3J5X2dldF9tZXRhX2RhdGFfZGV0YWlsKCkKCjIwMTAtMDktMDUgMTg6NTc6NTYgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBkM2Q5YWNmIHRvIGMyZTEwYmYKCjIwMTAtMDktMDUgMTI6MTM6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBjYTFjODY3IHRvIGQzZDlhY2YKCjIwMTAtMDktMDUgMTA6MjI6MjAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IEFkZCBuZXcgc3ltYm9scyBmcm9tIEdzdEVsZW1lbnRGYWN0b3J5TGlzdAoJICBBbmQgaGVyZSdzIGEgcmVtaW5kZXIgc2luY2UgSSBmb3Jnb3QgdG8gcHV0IHRoZW0gaW4gbXkgcHJldmlvdXMKCSAgY29tbWl0LgoJICBBUEk6IGdzdF9lbGVtZW50X2ZhY3RvcnlfbGlzdF9maWx0ZXIKCSAgQVBJOiBnc3RfZWxlbWVudF9mYWN0b3J5X2xpc3RfZ2V0X2VsZW1lbnRzCgkgIEFQSTogZ3N0X2VsZW1lbnRfZmFjdG9yeV9saXN0X2lzX3R5cGUKCSAgQVBJOiBnc3RfcGx1Z2luX2ZlYXR1cmVfbGlzdF9kZWJ1ZwoJICBBUEk6IGdzdF9wbHVnaW5fZmVhdHVyZV9yYW5rX2NvbXBhcmVfZnVuYwoJICBBUEk6IEdzdEVsZW1lbnRGYWN0b3J5TGlzdFR5cGUKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfQU5ZCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX0FVRElPVklERU9fU0lOS1MKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfQVVESU9fRU5DT0RFUgoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9ERUNPREFCTEUKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfREVDT0RFUgoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9ERU1VWEVSCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX0RFUEFZTE9BREVSCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX0VOQ09ERVIKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfRk9STUFUVEVSCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX01BWF9FTEVNRU5UUwoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9NRURJQV9BVURJTwoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9NRURJQV9JTUFHRQoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9NRURJQV9NRVRBREFUQQoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9NRURJQV9TVUJUSVRMRQoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9NRURJQV9WSURFTwoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9NRURJQV9BTlkKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfTVVYRVIKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfUEFSU0VSCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX1BBWUxPQURFUgoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9TSU5LCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX1NSQwoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9WSURFT19FTkNPREVSCgoyMDEwLTA4LTMxIDExOjM3OjQyICswMjAwICBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBidWZmZXJpbmdfcmFuZ2VzIHF1ZXJ5IHN1cHBvcnQKCSAgRml4ZXMgYnVnIDYyMzEyMQoKMjAxMC0wOS0wMyAxOTo1ODo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZ3N0cXVlcnk6IE9ubHkgZmlsbCB0aGUgc3RhcnQvc3RvcCB2YWx1ZXMgb2YgdGhlIGJ1ZmZlcmluZyByYW5nZXMgaWYgYSBub24tTlVMTCBwb2ludGVyIHdhcyBwcm92aWRlZAoKMjAxMC0wOC0zMSAxMTozNToxMiArMDIwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHF1ZXJ5OiBuZXcgYnVmZmVyaW5nX3JhbmdlcyBBUEkKCSAgQWRkZWQgYSBuZXcgcXVlcnkgdHlwZSB0byByZXRyaWV2ZSBpbmZvcm1hdGlvbnMgYWJvdXQgdGhlIGFyZWFzIG9mIHRoZQoJICBtZWRpYSBjdXJyZW50bHkgYnVmZmVyZWQuIFNlZSBidWcgNjIzMTIxLgoJICBBUEk6IGdzdF9xdWVyeV9hZGRfYnVmZmVyaW5nX3JhbmdlCgkgIEFQSTogZ3N0X3F1ZXJ5X2dldF9uX2J1ZmZlcmluZ19yYW5nZXMKCSAgQVBJOiBnc3RfcXVlcnlfcGFyc2VfbnRoX2J1ZmZlcmluZ19yYW5nZQoKMjAxMC0wOC0xNiAxOTowMToxNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgIEdzdEVsZW1lbnRGYWN0b3J5OiBBZGQgbGlzdGluZyBmZWF0dXJlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI2MTgxCgoyMDEwLTA5LTAyIDEyOjQ0OjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICBkb2NzOiBtZW50aW9uIEdTVF9ERUJVR19PUFRJT05TLCBPUkNfQ09ERSwgR19ERUJVRyBhbmQgR19TTElDRSBlbnZpcm9ubWVudCB2YXJpYWJsZXMKCSAgTWVudGlvbiBhIGZldyBtb3JlIHVzZWZ1bCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgaW4gdGhlICdSdW5uaW5nIEdTdHJlYW1lcgoJICBhcHBsaWNhdGlvbnMnIHNlY3Rpb24gb2YgdGhlIEFQSSByZWZlcmVuY2UuCgoyMDEwLTA5LTAyIDE0OjE1OjI5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgZmFrZXNyYzogZml4IHVzZSBvZiBlbXB0eSBzdWJidWZmZXJzCgkgIFJlbW92ZSBhIHNob3J0IGN1dCB0aGF0IHdhcyBpZ25vcmluZyBzcmMtPmRhdGEgYWxsb2NhdGlvbiBtb2RlLiBBbGwKCSAgdGhlIGNhbGxlZCBjb2RlLXBhdGggYmVsb3cgaGFuZGxlIHNpemU9PTAuCgoyMDEwLTA5LTAyIDAwOjAxOjI1ICswMTAwICBKZWZmcmV5IFMuIFNtaXRoIDx3aHlkb3VidEB5YWhvby5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBGaXggY2FzdHMgaW4gYSBidW5jaCBvZiBpbmxpbmUgZnVuY3Rpb25zIHRvIG1haW50YWluIGNvcnJlY3QgY29uc3QtbmVzcwoJICBNYWtlIGNvZGUgaW5jbHVkaW5nIEdTdHJlYW1lciBoZWFkZXJzIGNvbXBpbGUgd2l0aCAtV2Nhc3QtcXVhbCBieQoJICBtYWludGFpbmluZyBjb25zdC1uZXNzIHdoZW4gY2FzdGluZy4gQWxzbyBmaXggZnVuY3Rpb24gc2lnbmF0dXJlIG9mCgkgIGdzdF9ieXRlX3dyaXRlcl9zZXRfcG9zKCk6IHRoZSBieXRlIHdyaXRlciBzaG91bGQgbm90IGJlIG1hcmtlZCBhcwoJICBjb25zdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyNzkxMAoKMjAxMC0wOC0zMSAxODo0MDo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBidWlsZDogdXNlIG5ldyBBR19HU1RfUEtHX0NPTkZJR19QQVRIIG00IG1hY3JvIGZyb20gY29tbW9uCgkgIFNldHMgdXAgYSBHU1RfUEtHX0NPTkZJR19QQVRIIHZhcmlhYmxlIGZvciB1c2UgaW4gTWFrZWZpbGUuYW0KCSAgKGF2b2lkcyB0cmFpbGluZyAnOicgaW4gUEtHX0NPTkZJR19QQVRIIHVzZWQpLiBBIHVzZWZ1bCBzaWRlCgkgIGVmZmVjdCBvZiB0aGlzIGlzIGFsc28gdGhhdCB0aGUgUEtHX0NPTkZJR19QQVRIIGVudmlyb25tZW50CgkgIGlzIG5vdyBsb2dnZWQgaW4gdGhlIGNvbmZpZ3VyZSBvdXRwdXQuCgoyMDEwLTA5LTAxIDExOjM0OjAxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtY2xvY2tzLnhtbDoKCSAgbWFudWFsOiBpbXByb3ZlIGNsb2NrIGRvY3MgYSBsaXR0bGUKCjIwMTAtMDktMDEgMTE6MDY6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBGaXggbWVtb3J5IGxlYWtzIGluIHRoZSBpbnQ2NHJhbmdlIHRlc3RzCgoyMDEwLTA4LTI0IDEyOjI3OjMwICswMjAwICBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0dmFsdWU6IEFkZCBuZXcgR3N0SW50NjRSYW5nZSB0eXBlCgkgIG5ldyBHc3RJbnQ2NFJhbmdlIHRvIHN0b3JlIGdpbnQ2NCByYW5nZXMuCgkgIEFQSTogR1NUX1RZUEVfSU5UNjRfUkFOR0UKCSAgQVBJOiBnc3RfdmFsdWVfc2V0X2ludDY0X3JhbmdlCgkgIEFQSTogZ3N0X3ZhbHVlX2dldF9pbnQ2NF9yYW5nZV9taW4KCSAgQVBJOiBnc3RfdmFsdWVfZ2V0X2ludDY0X3JhbmdlX21heAoJICBGaXhlcyBidWcgIzYyNzgyNi4KCjIwMTAtMDgtMzAgMjE6MjY6MTggLTAzMDAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZG9jczogVHJpdmlhbCBjbGVhbnVwIGZvciBHU1RfREVCVUdfQ0FURUdPUllfR0VUCgoyMDEwLTA4LTMwIDE2OjAyOjU1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogUmUtaW5zdGF0ZSB0aGUgZGVmYXVsdCBmb3IgY29sb3IgdXNhZ2UKCSAgVGhpcyB3YXMgYWNjaWRlbnRseSByZW1vdmVkIGluIDdhNzIyMDkxYjZkMWI1ZDdmOTQwNGZkZWY0YzY5NWEyOWE2NWE5ODkKCjIwMTAtMDgtMzAgMTI6NDc6MzEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogVXNlIGdfc3RyY21wMCBpbnN0ZWFkIG9mIHN0cmNtcAoJICBBdm9pZHMgc2VnZmF1bHRzIHdoZW4gdXNpbmcgTlVMTCBhcmd1bWVudHMuCgoyMDEwLTA4LTI3IDE1OjM1OjQ5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgcXVldWU6IGFkZCBzaWxlbnQgcHJvcGVydHkgdG8gc3VwcHJlc3Mgc2lnbmFsIGVtaXNzaW9uCgkgIEFsbG93IHRvIHR1cm4gb2ZmIHNpZ25hbCBlbWlzc2lvbiBhbmQgdGhlcmVmb3JlIGV4dHJhIGxvY2tpbmcgaWYgdGhpcyBpcyBub3QgbmVlZGVkLgoJICBGaXhlcyAjNjIxMjk5CgoyMDEwLTA4LTI4IDEwOjE2OjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1dGlsczogQWRkIGdzdF91dGlsX2ZyYWN0aW9uX2NvbXBhcmUoKSB0byB0aGUgZG9jcyBhbmQgZXhwb3J0ZWQgc3ltYm9scwoKMjAxMC0wOC0yOCAxNzo1MToxNCArMTAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogUmVtb3ZlIGNoZWNrcyBmb3IgZGVwcmVjYXRlZCBmbG93IGNoZWNrIG1hY3JvcwoJICBHU1RfRkxPV19JU19GQVRBTCgpIGFuZCBHU1RfRkxPV19JU19TVUNDRVNTKCkgYXJlIGRlcHJlY2F0ZWQsCgkgIHNvIGFyZW4ndCBhdmFpbGFibGUgZm9yIHRoZSB0ZXN0c3VpdGUgYW55IG1vcmUuCgoyMDEwLTA4LTI4IDA5OjM1OjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogRml4IGludmVydGVkIGFzc2VydGlvbiBsb2dpYyBpbiBnc3RfdXRpbF9mcmFjdGlvbl9jb21wYXJlKCkKCjIwMTAtMDgtMjggMDk6MzA6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdXRpbHM6IEFkZCBnc3RfdXRpbF9mcmFjdGlvbl9jb21wYXJlKCkgdG8gY29tcGFyZSBmcmFjdGlvbnMKCSAgQW5kIHVzZSBpdCBmb3IgdGhlIGZyYWN0aW9uIGNvbXBhcmlzb25zIGluIGdzdHZhbHVlLmMgaW5zdGVhZAoJICBvZiB1c2luZyBjb21wYXJpc29ucyBieSBmaXJzdCBjb252ZXJ0aW5nIHRoZSBmcmFjdGlvbnMgdG8gZG91YmxlLgoJICBTaG91bGQgZml4IGJ1ZyAjNjI4MTc0LgoJICBBUEk6IGdzdF91dGlsX2ZyYWN0aW9uX2NvbXBhcmUoKQoKMjAxMC0wOC0yOCAxNzowNDo0MyArMTAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2NhcHNsaXN0Lmg6CgkgIHRlc3RzOiBBZGQgYSBjb3VwbGUgb2YgZXh0cmEgY2FwcyBzdHJpbmdzIHRvIHRlc3QKCjIwMTAtMDgtMjcgMTY6NTI6MTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IERvbid0IGRvIGFuIGluZmluaXRlIGxvb3AgaW4gdGhlIGxvb3AgZnVuY3Rpb24KCSAgSW5zdGVhZCByZXR1cm4gYWZ0ZXIgZXZlcnkgaXRlcmF0aW9uLCB3aGljaCBtYWtlcyBzdXJlIHRoYXQgdGhlCgkgIHN0cmVhbSBsb2NrIGlzIHJlbGVhc2VkIGZvciBhIHNob3J0IHRpbWUgYWZ0ZXIgZXZlcnkgaXRlcmF0aW9uLAoJICB0YXNrIHN0YXRlIGNoYW5nZXMgYXJlIGNoZWNrZWQsIGV0YyBhbmQgdGhpcyBhbGxvd3MgdGhlIHRhc2sKCSAgdG8gYmUgc3RvcHBlZCBwcm9wZXJseS4KCjIwMTAtMDgtMjcgMTY6NDk6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEZsdXNoIHRoZSBkYXRhIHF1ZXVlIGlmIGRvd25zdHJlYW0gcmV0dXJuIFdST05HX1NUQVRFIHRvbwoKMjAxMC0wOC0yNiAyMzozOTowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBlbGVtZW50czogU3RvcCB1c2luZyBHU1RfRkxPV19JU19GQVRBTCgpCgoyMDEwLTA4LTI2IDIzOjM3OjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2U6IFN0b3AgdXNpbmcgR1NUX0ZMT1dfSVNfRkFUQUwoKQoJICBBbmQgZG9jdW1lbnQgdGhlIHNwZWNpYWwgaGFuZGxpbmcgb2YgV1JPTkdfU1RBVEUuCgoyMDEwLTA4LTI2IDIzOjA3OjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBEZXByZWNhdGUgR1NUX0ZMT1dfSVNfRkFUQUwoKSBhbmQgR1NUX0ZMT1dfSVNfU1VDQ0VTUygpCgkgIFRoZSBwcm9ibGVtIHdpdGggYm90aCBtYWNyb3MgaXMsIHRoYXQgdGhleSBzdWdnZXN0IHNvbWV0aGluZyB0aGF0IGlzbid0IHRydWUuCgkgIElmIEdTVF9GTE9XX0lTX0ZBVEFMIGlzIHRydWUsIHRoZXJlIGNvdWxkIHN0aWxsIGJlIGEgcHJvYmxlbSBmb3IgbWFueSBlbGVtZW50cwoJICBhbmQgdGhleSBzaG91bGQgc3RvcCB3aGF0IHRoZXkncmUgY3VycmVudGx5IGRvaW5nIGFuZCByZXR1cm4gdGhhdCB2YWx1ZQoJICB1cHN0cmVhbSAoZS5nLiBub3QtbGlua2VkIGluIGEgcGFyc2VyKS4gSWYgR1NUX0ZMT1dfSVNfU1VDQ0VTUyBpcyBmYWxzZSwgaXQKCSAgY291bGQgc3RpbGwgYmUgdGhhdCB0aGlzIGlzICJvayIgZm9yIHRoZSBlbGVtZW50IChlLmcuIG5vdC1saW5rZWQgZm9yIGEgZGVtdXhlcgoJICBvbiBhIGZldyBvZiBpdHMgcGFkcyBidXQgbm90IGFsbCkuCgkgIEl0J3MgYmV0dGVyIHRvIG5vdCBoYXZlIHRoZXNlICJjb252ZW5pZW5jZSIgbWFjcm9zIGJ1dCBpbnN0ZWFkIGxldCBwZW9wbGUKCSAgKnRoaW5rKiBhYm91dCB0aGUgaGFuZGxpbmcgb2YgZGlmZmVyZW50IGZsb3cgcmV0dXJucywgdGhhdCBtYWtlcyBzZW5zZSBmb3IKCSAgdGhlaXIgZWxlbWVudC4gQW5kIHdlIHNob3VsZCBkb2N1bWVudCB0aGUgZXhwZWN0ZWQgaGFuZGxpbmcgb2YgZmxvdyByZXR1cm5zIGZvcgoJICBkaWZmZXJlbnQgY2xhc3NlcyBvZiBlbGVtZW50cyBpbiB0aGUgcGx1Z2luIHdyaXRlcidzIGd1aWRlLgoJICBGaXhlcyBidWcgIzYyODAxNC4KCjIwMTAtMDgtMjcgMTE6MTE6MDAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IGtlZXAgcHJvcGVydGllcyBpbiBvcmRlcgoKMjAxMC0wOC0yNyAxMDoyMjoyNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogQVJHXyAtPiBQUk9QXyBmb3IgcHJvcGVydHkgY29uc3RhbnRzCgoyMDEwLTA4LTI2IDE3OjA0OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggb24tZGlzayBidWZmZXJpbmcgYWdhaW4KCjIwMTAtMDgtMjYgMTU6MTI6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogcmVjb3ZlciBmcm9tIGludmFsaWQgZG93bnN0cmVhbSBzdWdnZXN0aW9ucwoJICBXaGVuIHdlIGFyZSBoYW5kbGluZyBhIGJ1ZmZlciBhbmQgbmVlZCB0byBhbGxvY2F0ZSBhbiBvdXRwdXQgYnVmZmVyLCBoYW5kbGUgdGhlCgkgIGNhc2Ugd2hlbiBkb3duc3RyZWFtIHN1Z2dlc3RzIHVzIGEgZm9ybWF0IHRoYXQgd2UgY2FuJ3QgY29udmVydCB0aGUgaW5wdXQgYnVmZmVyCgkgIHRvLiBJbiB0aGF0IGNhc2UsIGNoZWNrIGlmIHRoZXJlIGlzIGFub3RoZXIgZm9ybWF0IGF2YWlsYWJsZSBkb3duc3RyZWFtIGluc3RlYWQKCSAgb2YgZmFpbGluZy4KCSAgRml4ZXMgIzYyMTMzMiBhbmQgc2VlIGFsc28gIzYxNDI5NgoKMjAxMC0wOC0yNiAxMzo0NjozNCArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZGVjaW5hQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgZ3N0cGx1Z2luOiBsb2FkIHRoZSBnc3QtcHl0aG9uIHBsdWdpbiBsb2FkZXIgd2l0aCBHX01PRFVMRV9CSU5EX0xBWlkuCgoyMDEwLTA4LTE2IDE0OjEyOjM1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZzogQWRkcyBHU1RfVEFHX0FQUExJQ0FUSU9OX0RBVEEKCSAgQWRkcyBHU1RfVEFHX0FQUExJQ0FUSU9OX0RBVEEgZm9yIHJlcHJlc2VudGluZyBhcmJpdHJhcnkgcHJpdmF0ZQoJICBkYXRhIHRoYXQgYXBwbGljYXRpb25zIG1pZ2h0IHdhbnQgdG8gc3RvcmUgaW50byB0YWdzLiBFeGlmL2lkMywKCSAgZm9yIGV4YW1wbGUsIGhhdmUgdGFncyBmb3IgdGhpcy4KCSAgQVBJOiBHU1RfVEFHX0FQUExJQ0FUSU9OX0RBVEEKCSAgRml4ZXMgIzYyNjY1MQoKMjAxMC0wOC0yNCAxMjo0NjozOCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGdzdC1sYXVuY2g6IEZpeCBPSUxfQ1BVX0ZMQUdTIGRvY3MgZm9yIE9yYwoKMjAxMC0wOC0yNCAxNjoyNDoxOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBtYW46IHJlbW92ZSBPSUxfQ1BVX0ZMQUdTIGZyb20gbWFuIHBhZ2UKCSAgV2UncmUgdXNpbmcgT1JDIGluc3RlYWQgb2YgbGliT2lsIG5vdy4KCjIwMTAtMDgtMjMgMTg6MjA6MjMgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgVmFsZ3JpbmQgZGVmaW5lIGlzIEhBVkVfVkFMR1JJTkRfVkFMR1JJTkRfSAoKMjAxMC0wNy0yNyAxODoyNDo0NCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBBbGxvdyBnc3RfZGVidWdfc2V0X2RlZmF1bHRfdGhyZXNob2xkKCkgYmVmb3JlIGdzdF9pbml0KCkKCSAgQ2FsbGluZyBnc3RfZGVidWdfc2V0X2RlZmF1bHRfdGhyZXNob2xkKCkgYmVmb3JlIGluaXRpYWxpemF0aW9uCgkgIHNlZW1zIGxpa2UgdGhlICJvYnZpb3VzIiBvcmRlci4KCjIwMTAtMDgtMjMgMTM6MDY6MTkgKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZ0BheGlzLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkgIHF1ZXVlOiBmaXggc2VnZmF1bHQgaW4gdGVzdAoKMjAxMC0wOC0yMyAxMDo1ODoxNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnljaHVua3M6IGludGVybiBhbGwgR3N0UGx1Z2luRGVzYyBtZW1iZXJzIHdoZW4gdW5wYWNraW5nCgoyMDEwLTA4LTIzIDEwOjU2OjMwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBmaXggbGVhayB3aGVuIG5hbWluZyBwYXJlbnRlZCBvYmplY3QKCjIwMTAtMDgtMjAgMDM6MDc6NTggKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3Q6IEFkZCBhIGdzdF9pc19pbml0aWFsaXplZCgpIEFQSQoJICBGb3Igb25lLCB0aGlzIHdpbGwgYWxsb3cgbGlicmFyaWVzIHRoYXQgZXhwZWN0IGFwcGxpY2F0aW9ucyB0bwoJICBpbml0aWFsaXplIEdTdHJlYW1lciBiZWZvcmUgdXNpbmcgdGhlaXIgQVBJIHRvIGhhdmUgYSBjaGVjayBmb3IgdGhpcwoJICBjb25kaXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mjc0MzgKCjIwMTAtMDgtMjAgMTg6MDQ6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogcmVsYXggdGhlIHNvdXJjZSBlbGVtZW50IGNoZWNrCgkgIFdoZW4gdGhlcmUgaXMgYSBzaW5rIGluc2lkZSBhIGJpbiwgdGhlIFNJTksgZmxhZyBpcyBzZXQgb24gdGhlIGJpbi4gV2hlbiB3ZSBhcmUKCSAgdHJ5aW5nIHRvIGl0ZXJhdGUgdGhlIHNvdXJjZSBlbGVtZW50cywgYWxzbyBpbmNsdWRlIHRoZSBiaW5zIHdpdGggdGhlIFNJTksgZmxhZwoJICBiZWNhdXNlIHRoZXkgY291bGQgYWxzbyBjb250YWluIHNvdXJjZSBlbGVtZW50cywgaW4gd2hpY2ggY2FzZSB0aGV5IGFyZSBhbHNvIGEKCSAgc291cmNlLgoJICBUaGlzIHNvbHZlcyB0aGUgY2FzZSB3aGVyZSBzZW5kaW5nIGFuIEVPUyB0byBhIHBpcGVsaW5lIGRpZG4ndCBnZXQgZGlzcGF0Y2hlZCB0bwoJICBhbGwgc291cmNlIGVsZW1lbnRzLgoJICBTZWUgIzYyNTU5NwoKMjAxMC0wOC0xOSAxNzowNzowMCArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnQGF4aXMuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgcXVldWU6IGFkZGVkIHVuaXQgdGVzdCBmb3IgbmV3c2VnbWVudCBldmVudHMKCjIwMTAtMDMtMDUgMTc6MTg6MjMgKzAxMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZ0BheGlzLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBxdWV1ZTogUHVzaCBuZXdzZWdtZW50IHdoZW4gbGlua2luZyBpbiBQTEFZSU5HCgkgIEZpeGVzICM2MTE5MTgKCjIwMTAtMDgtMTIgMjA6MjM6NDUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGVsZW1lbnQ6IGxpbmtfbWFueSBzaG91bGQgYWN0aXZhdGUgcGFkcyBpZiBuZWVkZWQKCSAgZ3N0X2VsZW1lbnRfbGlua19tYW55IGRvZXMgc29tZSBtYWdpYyBhbmQgY3JlYXRlcyBnaG9zdHBhZHMKCSAgaWYgbmVlZGVkLCBidXQgaXQgZGlkbid0IHNldCB0aGUgbmV3bHkgY3JlYXRlZCBnaG9zdHBhZCB0bwoJICBhY3RpdmUgaWYgbmVlZGVkLiBUaGlzIHBhdGNoIGZpeGVzIGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI2Nzg0CgoyMDEwLTA4LTE5IDExOjExOjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRldGltZS5jOgoJICBkYXRldGltZTogRml4IG1lbW9yeSBsZWFrIGluIHRoZSB1bml0IHRlc3QgYnkgdW5yZWZmaW5nIEdzdERhdGVUaW1lIGluc3RhbmNlIGFmdGVyIHVzYWdlCgoyMDEwLTA4LTE5IDEwOjAzOjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgdGVzdHM6IGZpeCBjb21tZW50cyBpbiB0ZXN0CgoyMDEwLTA4LTE5IDA5OjU4OjU1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBVc2UgR19HVUlOVDY0X0ZPUk1BVCB3aGVyZSBuZWVkZWQKCSAgRml4ZXMgYnVpbGQgb24gbWFjb3N4CgoyMDEwLTA4LTE4IDE1OjMxOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiBlbmFibGUgcXVldWUgdGVzdCBhZ2FpbgoKMjAxMC0wOC0xOCAxNToxMjo0NSArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnQGF4aXMuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgcXVldWU6IGZpeGVkIHJhY3kgdW5pdCB0ZXN0cwoJICBGaXhlcyAjNjAwMDA0CgoyMDEwLTA4LTE2IDE4OjAxOjI3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBwbHVnaW5zOiBhZGQgZXhhbXBsZSBsYXVuY2ggbGluZXMgYW5kIG1vcmUgZXhwbGFuYXRpb24gdG8gdGhlIGRvY3MuCgkgIFRoZSBwbHVnaW5zIHdoZXJlIGFsbW9zdCB1bmRvY3VtZW50ZWQgOi8gLi4uCgoyMDEwLTA4LTEzIDE2OjE5OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggY29tcGlsYXRpb24KCjIwMTAtMDctMDcgMDg6MjA6MjEgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRml4IGEgc3BlY2lhbCBjYXNlIGR1cmluZyByYW5nZSBtYW5hZ2VtZW50CgkgIFdoZW4gYSByYW5nZSBjb250YWluZWQgbm8gZGF0YSwgaWYgaXQgd2FzIG5ldyBvciBuZXdseSBlbXB0eSwgaXQgd291bGQKCSAgYmUgbWlzaGFuZGxlZCBpZiBpdCB3ZXJlIHRoZSBjdXJyZW50IHJhbmdlLgoKMjAxMC0wNy0wNSAxMzo0MzowNSArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggbG9ja2luZyBhcm91bmQgaW5pdF9yYW5nZXMKCSAgVGhpcyBmaXhlcyBhIHNlZ2ZhdWx0IHdoZXJlIHRoZSByZWFkeSB0byBwYXVzZWQgc3RhdGUgY2hhbmdlIGNhdXNlcwoJICBmcmVlaW5nIGFuZCBhbGxvY2F0aW9uIG9mIG5ldyByYW5nZXMgd2hpbGUgYW5vdGhlciB0aHJlYWQgaXMgdHJ5aW5nIHRvCgkgIHVzZSB0aGVtLgoKMjAxMC0wNy0wMiAxNzo0MDowOCArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBNb3JlIHJpbmcgYnVmZmVyIGZpeGVzCgkgIC0gU2V0IHJlYWRpbmdfcG9zIGNvcnJlY3RseSBpbiBfY3JlYXRlX3JlYWQgKCkKCSAgLSBTZWVrIHRvIGRhdGEgaWYgaXQgaXMgZnVydGhlciB0aGFuIFFVRVVFX01BWF9CWVRFUyAocXVldWUpIC0KCSAgY3VyX2xldmVsLmJ5dGVzIGF3YXkuIFRoaXMgc2hvdWxkIGF2b2lkIGEgc2l0dWF0aW9uIHdoZXJlIHRoZSByaW5nCgkgIGJ1ZmZlciBpcyBmdWxsIGJ1dCB0aGUgZGF0YSBvZmZzZXQgZnJvbSB3aGljaCB3ZSBzaGFsbCByZWFkIGlzIG5vdCBpbgoJICB0aGUgcmluZyBidWZmZXIuCgkgIC0gT25seSB1cGRhdGUgdGhlIG1heF9yZWFkaW5nX3BvcyB0byBhIGxvd2VyIHZhbHVlIHRvIHByb3RlY3QgZGF0YSB3aGVuCgkgIG5lY2Vzc2FyeQoJICAtIEFsd2F5cyBzaWduYWwgYW4gQUREIGluIF9sb2NrZWRfZW5xdWV1ZSAoKSBzbyB0aGF0IGFuIEVPUyB1bmxvY2tzIHRoZQoJICByZWFkZXIKCSAgLSBNb3JlIHVzZWZ1bCBkZWJ1ZyBvdXRwdXQKCjIwMTAtMDYtMjggMTc6NTA6MDYgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcmluZyBidWZmZXIgZml4ZXMKCSAgT25lIG11c3Qgbm90IGFmZmVjdCB0aGUgdmFsdWVzIG9mIHRoZSBjdXJyZW50IHJhbmdlIGJhc2VkIG9uIGEgcmVhZAoJICByZXF1ZXN0IGJlZm9yZSB0aGUgY29ycmVjdCByYW5nZSBpcyBhY3RpdmF0ZWQuCgoyMDEwLTA2LTI1IDEyOjU4OjI3ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEZpeCBidWdzCgkgIHVwZGF0ZV9idWZmZXJpbmcgKCkgbmVlZHMgdG8gYmUgY2FsbGVkIGV2ZXJ5IHRpbWUgd2Ugd3JpdGUgdG8gdGhlIHJpbmcKCSAgYnVmZmVyIHNvIHRoYXQgYXBwbGljYXRpb25zIGRvbid0IGdldCBzdHVjayB3YWl0aW5nIGZvciBhIDEwMCUgYnVmZmVyZWQKCSAgbWVzc2FnZSB3aGlsZSBxdWV1ZTIgaXMgd2FpdGluZyBmb3Igc3BhY2UKCSAgX2NyZWF0ZV93cml0ZSAoKSBtdXN0IG9ubHkgYmUgY2FsbGVkIGZvciB0ZW1wIGZpbGUvcmluZyBidWZmZXIgY2FzZXMKCjIwMTAtMDYtMTggMTc6NDM6NDAgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogZXh0ZW5kIHJpbmcgYnVmZmVyIHRvIHN1cHBvcnQgcmFtIG1vZGUKCjIwMTAtMDYtMTggMTQ6MzY6MzMgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogbWVyZ2Ugd3JpdGUgYnVmZmVyIGZ1bmN0aW9ucyBhbmQgZml4IGJ1Z3MKCSAgQ2FjaGVkIGRhdGEgY291bGQgaGF2ZSBiZWVuIG92ZXJ3cml0dGVuIHNvIGl0IGlzIG5vdyBwcm90ZWN0ZWQgdW50aWwKCSAgaXQgaXMgcmVhZC4gU2ltaWxhcmx5IGRhdGEgd2FzIG92ZXJyZWFkIGFzIF9oYXZlX2RhdGEgKCkgd2FzIGFsd2F5cwoJICBsb29raW5nIGZvciB0aGUgb3JpZ2luYWxseSByZXF1ZXN0ZWQgZGF0YSBldmVuIGlmIHBhcnQgb2YgaXQgaGFkIGJlZW4KCSAgcmVhZCBhbHJlYWR5LgoKMjAxMC0wNi0xNyAxMDoxODo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogc21hbGwgY2xlYW51cAoKMjAxMC0wNi0xNiAxODoyNTozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogY2xlYW51cCB3cml0ZV90b19yaW5nX2J1ZmZlcgoJICBVc2UgY3VyX2xldmVsLmJ5dGVzIHRvIHNlZSBob3cgbXVjaCBzcGFjZSBpcyBmcmVlIGluIHRoZSByaW5nYnVmZmVyLgoJICBTaW1wbHlmeSB0aGUgd3JpdGUgZnVuY3Rpb24sIGF2b2lkIHRha2luZyBzdWJidWZmZXJzLCBtb3ZlIHdhaXRpbmcgZm9yIGZyZWUKCSAgc3BhY2UgaW4gb25lIHNwb3QsIHVzZSBzaW1wbHkgY291bnRlciB0byB3cml0ZSBkYXRhIG9mIGEgYnVmZmVyLgoKMjAxMC0wNi0xNiAxNzowMzo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogY2xlYW51cHMKCSAgQWRkIGEgbWFjcm8gdG8gZ2V0IHRoZSBtYXggc2l6ZSBvZiB0aGUgcXVldWUgaW4gYnl0ZXMsIHdoaWNoIGRlcGVuZHMgb24gdGhlCgkgIG1heF9sZXZlbC5ieXRlcyBhbmQgdGhlIHJpbmdfYnVmZmVyX21heF9zaXplLgoJICBTb21lIGNsZWFudXBzLgoKMjAxMC0wNi0xNiAxNjoyMzowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogcmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKMjAxMC0wNi0xNiAxNjoxMzoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogY2xlYW51cHMKCSAgTWFrZSBzdXJlIHRoZSBjdXJfbGV2ZWwuYnl0ZXMgaXMgdXBkYXRlZCBhZnRlciB3ZSBjaGFuZ2UgdGhlIHdyaXRpbmdfcG9zIG9yIHRoZQoJICBtYXhfcmVhZGluZ19wb3MuCgkgIFJlZmFjdG9yIGdldF9mcmVlX3NwYWNlKCkKCSAgQWRkIHNvbWUgY29tbWVudHMKCjIwMTAtMDYtMTYgMTI6MDA6NDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHJlbW92ZSB1bm5lZWRlZCBzaWduYWwKCjIwMTAtMDYtMTYgMTI6MDA6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHNldCBidWZmZXJpbmcgbW9kZSBjb3JyZWN0bHkKCjIwMTAtMDYtMTYgMTE6MjA6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBjYWxjdWxhdGlvbiBvZiBhdmFpbGFibGUgcmluZ2J1ZmZlciBkYXRhCgoyMDEwLTA2LTE2IDExOjExOjMyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiByZWFkaW5nX3BvcyBpcyB1cGRhdGVkIGluIGNyZWF0ZV9yZWFkIG9ubHkKCjIwMTAtMDYtMTYgMTE6MTE6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHJlZmFjdG9yIGFuZCBhZGQgZGVidWcKCjIwMTAtMDYtMTYgMTE6MTA6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBmbHVzaGluZwoKMjAxMC0wNi0xNiAxMTowOToyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIGRlYnVnCgoyMDEwLTA2LTE1IDE3OjI2OjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBkb24ndCB0cnkgdG8gd3JpdGUgMCBieXRlcwoKMjAxMC0wNi0xNSAxNjoxMjowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjsgY2xlYW51cHMgYW5kIGZpeGVzCgkgIE1ha2UgYSBtYWNybyBmb3Igc29tZSBmcmVxdWVudCBjaGVja3MKCSAgRW1pdCB0aGUgcmVtb3ZlZCBzaWduYWwgaW4gYWxsIGNhc2VzIHdoZW4gd2UgcmVtb3ZlIHNvbWV0aGluZwoKMjAxMC0wNi0xNSAxMjozNzozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcmVmYWN0b3JpbmdzCgkgIENoZWNrIGFuZCBoYW5kbGUgc2VlayBlcnJvcnMKCSAgUmVmYWN0b3IgdGhlIHdhaXRfZnJlZV9zcGFjZSBmdW5jdGlvbi4KCjIwMTAtMDYtMTYgMTI6MjQ6MjUgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogVXNlIHJpbmctYnVmZmVyLW1heC1zaXplIHByb3AgdG8gY29udHJvbCByaW5nIGJ1ZmZlcgoKMjAxMC0wNi0wNiAwOTozMDo0OCArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBDbGVhbiB1cCBhbmQgaW1wcm92ZSBjb2RlCgoyMDEwLTA1LTI2IDA0OjExOjQ4ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEZpeCBjb25kaXRpb25zIHdoZXJlIGJlaGF2aW91ciBzaG91bGQgZGlmZmVyIGJldHdlZW4gcmluZyBidWZmZXIgYW5kIHRlbXAgZmlsZQoKMjAxMC0wNS0xOSAxNjowNDoxNSArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGQgdXNlZnVsIGRlYnVnIG1lc3NhZ2VzIGFuZCBmaXggYW4gYXNzdW1wdGlvbiBpbiBfaGF2ZV9kYXRhICgpCgoyMDEwLTA1LTE4IDE3OjQyOjA3ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBidWZmZXJpbmcgcGVyY2VudGFnZSBpbiByaW5nIGJ1ZmZlciBtb2RlCgoyMDEwLTA1LTE4IDE3OjIxOjQwICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHZhcmlvdXMgcmluZyBidWZmZXIgZml4ZXMKCSAgLSBtYWtlIF9nZXRfcmFuZ2UgKCkgZW1pdCB0aGUgZGVsIHNpZ25hbCBvbmNlIGEgYnVmZmVyIGhhcyBiZWVuIHJlYWQKCSAgLSB1c2UgZG8ge30gd2hpbGUgKCk7IGZvciB3YWl0IGNvZGUgYXMgcXVldWUgaXMgbG9ja2VkIGFuZCBubyBkYXRhIGNvdWxkCgkgIGhhdmUgYmVlbiByZWFkIGluIHRoZSBtZWFuIHRpbWUgc28gaXQgbWFrZXMgbm8gc2Vuc2UgdG8gY2hlY2sgYmVmb3JlCgkgIHdhaXRpbmcKCSAgLSBtYWtlIF9pc19maWxsZWQgKCkgbW9yZSByb2J1c3QKCjIwMTAtMDUtMDcgMDk6MzA6NDQgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogcmluZyBidWZmZXIgd29yayBpbiBwcm9ncmVzcwoKMjAxMC0wNS0wNSAxMDoyMTo1NSArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBBZGQgdXNlLXJpbmctYnVmZmVyIGFuZCByaW5nLWJ1ZmZlci1tYXgtc2l6ZSBwcm9wZXJ0aWVzCgoyMDEwLTA2LTE1IDA4OjU5OjExICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZCBTVC1Fcmljc3NvbiBjb3B5cmlnaHQKCjIwMTAtMDgtMTMgMTc6MjM6MzEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gM2U4ZGIxZCB0byBlYzYwMjE3CgoyMDEwLTA4LTEyIDIyOjA4OjQ0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiB4cmVmcyBnbGliIHN5bWJvbCBpbiBkb2NzCgoyMDEwLTA4LTEyIDE2OjA1OjM1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgZ3N0Y29sbGVjdHBhZHM6IEZpeCBkb2NzIGFib3V0IEdzdENvbGxlY3REYXRhIGxpc3QKCSAgQWRkIHRvIHRoZSBkb2NzIHRoZSBmYWN0IHRoYXQgaXMgb25seSBzYWZlIHRvIGl0ZXJhdGUKCSAgR3N0Q29sbGVjdFBhZCdzIGRhdGEgbGlzdCBpbnNpZGUgdGhlIGNvbGxlY3RlZCBjYWxsYmFjay4KCSAgRml4ZXMgIzYxMDM2NgoKMjAxMC0wOC0xMCAxMDo1NjozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGJkMjA1NGIgdG8gM2U4ZGIxZAoKMjAxMC0wOC0wNCAxMToyNDoxMiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWc6IEFkZHMgR1NUX1RBR19BUFBMSUNBVElPTl9OQU1FIHRhZwoJICBBZGRzIGEgbmV3IHRhZyBmb3IgcmVwcmVzZW50aW5nIGFwcGxpY2F0aW9uIHVzZWQgdG8gY3JlYXRlCgkgIGEgbWVkaWEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyNjAyNwoKMjAxMC0wOC0wOCAxNzo1Nzo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBJbml0aWFsaXplIHRoZSBHVHlwZSBjYWNoZSBmb3IgdGhlIGJ1ZmZlcmxpc3QgYWdhaW4KCSAgVGhpcyB3YXMgYWNjaWRlbnRpYWxseSByZW1vdmVkIHdpdGggbGFzdCBjb21taXQuCgoyMDEwLTA4LTA2IDE5OjM4OjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IERvbid0IGNoYWluIHVwIGZpbmFsaXplIHRvIHRoZSBwYXJlbnQgY2xhc3MKCSAgR3N0TWluaU9iamVjdDo6ZmluYWxpemUgZG9lcyBub3RoaW5nIGFuZCB0aGlzIHByZXZlbnRzIGEKCSAgcnVudGltZS10eXBlLWNoZWNrIGNhc3QgYW5kIGZ1bmN0aW9uIGNhbGwgcGVyIGJ1ZmZlciBsaXN0LgoKMjAxMC0wNy0yMCAwOToyMzoxMSAtMDUwMCAgU2hpeGluIFplbmcgPHplbmcuc2hpeGluQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3Q6IG1ha2UgX2dldF90eXBlKCkgaW4gZ3N0LyogdGhyZWFkIHNhZmUKCSAgVGhpcyBpcyBub3QgcmVhbGx5IG5lY2Vzc2FyeSBoZXJlIGJlY2F1c2UgZXZlcnl0aGluZyBpcwoJICBpbml0aWFsaXplZCBmcm9tIGdzdF9pbml0KCkgYWxyZWFkeSBidXQgdXNpbmcgR19ERUZJTkVfVFlQRSgpCgkgIHJlbW92ZXMgc29tZSBjb3B5JnBhc3RlIGJvaWxlcnBsYXRlIGNvZGUuCgoyMDEwLTA4LTA2IDE5OjM0OjQyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6CgkgIHBsdWdpbnM6IEFkZCBkZWNsYXJhdGlvbnMgZm9yIF9nZXRfdHlwZSgpIGZ1bmN0aW9ucyB0byBmaXggY29tcGlsZXIgd2FybmluZ3MKCjIwMTAtMDctMjAgMDk6MjM6NTQgLTA1MDAgIFNoaXhpbiBaZW5nIDx6ZW5nLnNoaXhpbkBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RtZW1pbmRleC5jOgoJICBwbHVnaW5zOiBNYWtlICpfZ2V0X3R5cGUoKSBpbiBwbHVnaW5zLyogdGhyZWFkIHNhZmUKCSAgSXQncyBub3QgcmVhbGx5IG5lZWRlZCBoZXJlIGJ1dCB1c2luZyBHX0RFRklORV9UWVBFKCkgcmVkdWNlcwoJICBzb21lIGNvcHkmcGFzdGUgYm9pbGVycGxhdGUgY29kZS4KCjIwMTAtMDgtMDYgMTg6NDM6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IE1ha2Ugc3VyZSB0aGUgYnVmZmVyIG1ldGFkYXRhIGlzIHdyaXRhYmxlIGJlZm9yZSBjaGFuZ2luZyBpdAoKMjAxMC0wOC0wNSAxMzo1NjoxMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAyMDA0ZDAzIHRvIGJkMjA1NGIKCjIwMTAtMDgtMDUgMTA6MDQ6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBzcGVlZCB1cCBwYWQgbGlua2luZyB1dGlsaXR5IGZ1bmN0aW9ucyBieSBub3QgdHJ5aW5nIHBhZHMgdGhhdCB3aWxsIG5ldmVyIHdvcmsKCSAgSW4gZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkKCksIHdoZW4gdHJ5aW5nIHRvIGZpbmQgYSBjb21wYXRpYmxlIHBhZCBvbiBhbgoJICBlbGVtZW50IGZvciBhIGdpdmVuIHBhZCwgdGhlcmUncyBubyBwb2ludCBpbiBjaGVja2luZyB0aGUgZWxlbWVudCdzIHNpbmsgcGFkcwoJICBpZiB0aGUgcGFkIHRvIGxpbmsgaXMgYSBzaW5rIHBhZCBhcyB3ZWxsLCBvciB0aGUgZWxlbWVudCdzIHNvdXJjZSBwYWRzIGlmIHRoZQoJICBnaXZlbiBwYWQgaXMgYSBzb3VyY2UgcGFkIGFscmVhZHksIHNpbmNlIHRob3NlIHdvdWxkIG5ldmVyIGJlIGFibGUgdG8gbGluawoJICBhbnl3YXkuIFNob3VsZCBzcGVlZCB1cCBsaW5raW5nIHVzaW5nIHRoZSBjb252ZW5pZW5jZSBmdW5jdGlvbnMgYSBsaXR0bGUgYml0LAoJICBvciBhdCBsZWFzdCByZWR1Y2UgZGVidWcgbG9nIG91dHB1dC4KCjIwMTAtMDgtMDUgMTA6MzI6NTMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHRha2UgdGhlIHRpbWVzdGFtcCBhIHRpY2sgbGF0ZXIKCSAgVGhlIGxvZ2dpbmcgaXMgbm90IGFuIGF0b21pYyBvcGVyYXRpb24gYW5kIGJlY2F1c2Ugb2YgdGhlIG11bHRpLXRocmVhZGluZyB3ZSBlbmQKCSAgdXAgd2l0aCBvdXQtb2Ytb3JkZXIgbG9nIGxpbmVzLiBUb29scyB0aGF0IHByZXNlbnQgdGhlIGxvZy1maWxlIHNob3VsZCBwcm9iYWJseQoJICByZXNvcnQgdGhlIGxpbmVzLiBUaGlzIGNoYW5nZSBqdXN0IHRha2VzIHRoZSB0aW1lc3RhbXAgYSBiaXQgY2xvc2VyIHRvIHRoZQoJICBhY3R1YWwgbG9nZ2luZy4KCjIwMTAtMDgtMDUgMDk6MzY6MTYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBkZWJ1ZzogbG9nZ2luZyBpbXByb3ZlbWVudHMKCSAgVXNlIHRoZSBldmVudCBzZXJpYWxpc2F0aW9uLiBMb2cgZm9ybWF0cyBuYW1lIGluc3RlYWQgb2YgbnVtYmVyLgoKMjAxMC0wNy0xNSAxNTo0NjoyNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IGRvbid0IHVzZSBjKysga2V5d29yZHMgYXMgdmFyaWFibGUgbmFtZXMKCjIwMTAtMDctMTUgMTE6Mzc6MzAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBsb2cgc2VlayBldmVudCBkZXRhaWxzCgoyMDEwLTA3LTEyIDEwOjUwOjUzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSAgbWFudWFsOiB1cGRhdGUgZ3N0LWNvbnRyb2xsZXIgY2hhcHRlcgoJICBUaGUgZG9jcyB3ZXJlIHN0aWxsIGRlc2NyaWJpbmcgZGVwcmVjYXRlZCBhcGkuIFVwZGF0ZSBpdCB0byB0ZWxsIGFib3V0CgkgIGNvbnRyb2wtY291cmNlcy4KCjIwMTAtMDctMDkgMTU6NTg6NTAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzoKCSogdGVzdHMvZXhhbXBsZXMvbGF1bmNoL21wM3BhcnNlbGF1bmNoLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3F1ZXVlL3F1ZXVlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3N0ZXBwaW5nL2ZyYW1lc3RlcDEuYzoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9zdHJlYW0tc3RhdHVzLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3R5cGVmaW5kL3R5cGVmaW5kLmM6CgkgIHRlc3RzOiBjbGVhbiB1cCBldmVudGxvb3AgaW4gZXhhbXBsZXMKCSAgRG9uJ3QgbGVhayB0aGUgYnVzLiBEb24ndCBwYXJzZSBtZXNzYWdlcyB3aXRoIHRoZSBtZXRob2QgZm9yIGVycm9ycyAodHJpZ2dlcnMKCSAgZ29iamVjdCB3YXJuaW5nKS4KCjIwMTAtMDctMDggMTQ6MDg6MjcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwc25lZ28uYzoKCSAgYmVuY2htYXJrOiBoYW5kbGUgZXJyb3JzIGZyb20gdGhlIHBpcGVsaW5lCgkgIENhdGNoIGVycm9ycyBhbmQgd2FybmluZ3Mgb24gdGhlIGJ1cy4gVGhpcyBmaXhlcyBoYW5naW5nIHBpcGVsaW5lcyBpbiB0aGUgY2FzZQoJICBvZiBidWdzIGVsc2V3aGVyZS4gQWxzbyBwcmludCBzdGF0ZS1jaGFuZ2UgbWVzc2FnZXMgdG8gZ2l2ZSBtb3JlIGRldGFpbCBvbiB0aGUgcHJvZ3Jlc3MuCgoyMDEwLTA3LTA2IDE4OjIwOjQwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvLmM6CgkgIGJlbmNobWFyazogY2xlYW51cCBsYXN0IGNoYW5nZSBpbiBjYXBzbmVnbyBiZW5jaG1hcmsKCSAgQSBwYWQgbmFtZSBpcyBub3QgYSBmYWN0b3J5IG5hbWUuCgoyMDEwLTA3LTA2IDE0OjI5OjM5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSAgZG9jczogbW9yZSBkb2NzIGZvciBnc3RfcGFyc2VfbGF1bmNoIGFuZCBjbwoJICBUZWxsIGFib3V0IGxpbWl0ZWQgcmV1c2FiaWxpdHkgb2Ygc29tZSBwYXJzZWQgcGlwZWxpbmVzLgoKMjAxMC0wNy0wNSAxNjozMjowMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgaW5zcGVjdDogcGFkIGluZm8gb3V0cHV0IGltcHJvdmVtZW50cwoJICBEb24ndCBwcmludCBlbXB0eSBxdWVyeSB0eXBlcy4gQWxzbyBwcmludCBjYXBzLXZtZXRob2RzLgoKMjAxMC0wNy0wNiAxNjo0NzoyMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGxvZyBlbGVtZW50OnBhZCBuYW1lcyB3aXRoIGNhcHMKCjIwMTAtMDYtMzAgMTE6NDY6MTEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogYmV0dGVyIGVycm9yIGxvZ2dpbmcgaW4gbGlua19wYWRzX2ZpbHRlcmVkCgoyMDEwLTA2LTI0IDEwOjAwOjA0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSAgdGVzdHM6IGFkZCBjb21tZW50cyB0ZWxsaW5nIHRoZSBtZWFuaW5nIG9mIHRoZSBhYmJyZXZpYXRpb25zCgoyMDEwLTA3LTA1IDEyOjE5OjI5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogYXZvaWQgc29tZSBjYXBzIG1hbmlwdWxhdGlvbgoJICBBZnRlciB0aGUgaW50ZXJzZWN0IHdlIGhhdmUgd3JpdGFibGUgY2Fwcy4gQ29weSB0aGUgdGVtcGxhdGUgY2FwcyBzbyB0aGF0IGFsc28KCSAgdGhlcmUgd2UgaGF2ZSB3cml0YWJsZSBjYXBzLgoKMjAxMC0wOC0wNSAwMTowOTowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdGVzdHM6IGFkZCBiYXNpYyB1bml0IHRlc3QgZm9yIGdzdF9wYWRfcHJveHlfZ2V0Y2FwcygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjQyMDMKCjIwMTAtMDgtMDUgMDE6MDY6NTcgKzAxMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3R1dGlsczogTWFrZSBnc3RfcGFkX3Byb3h5X2dldGNhcHMoKSByZXR1cm4gZW1wdHkgY2FwcyBpZiBpdCdzIHdoYXQgdGhlIG90aGVyIHNpZGUgaGFzCgkgIGdzdF9wYWRfcHJveHlfZ2V0Y2FwcygpIHdvdWxkIHJldHVybiB0aGUgcGFkIHRlbXBsYXRlIGNhcHMgaWYgdGhlIG90aGVyIHNpZGUKCSAgcmV0dXJuZWQgZW1wdHkgY2FwcyBvciBpZiB0aGUgaW50ZXJzZWN0aW9uIG9mIGFsbCB0aGUgY2FwcyBvbiB0aGUgb3RoZXIgc2lkZQoJICB3YXMgZW1wdHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjQyMDMKCjIwMTAtMDgtMDQgMTk6MTk6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IENoZWNrIGlmIHRoZSBjb21waWxlciBzdXBwb3J0cyBJU08gQzg5IG9yIEM5OSBhbmQgd2hpY2ggcGFyYW1ldGVycyBhcmUgcmVxdWlyZWQKCSAgVGhpcyBmaXJzdCBjaGVja3Mgd2hhdCBpcyByZXF1aXJlZCBmb3IgSVNPIEM5OSBzdXBwb3J0IGFuZCBzZXRzIHRoZSByZWxldmFudAoJICBjb21waWxlciBwYXJhbWV0ZXJzIGFuZCBpZiBubyBDOTkgY29tcGlsZXIgaXMgZm91bmQsIGl0IGNoZWNrcyBmb3IgYQoJICBDODkgY29tcGlsZXIuIFRoaXMgZW5hYmxlcyB1cyB0byBjaGVjayBmb3IgYW5kIHVzZSBDODkvQzk5IGZ1bmN0aW9ucwoJICB0aGF0IGdjYyBoaWRlcyBmcm9tIHVzIHdpdGhvdXQgdGhlIGNvcnJlY3QgY29tcGlsZXIgcGFyYW1ldGVycy4KCjIwMTAtMDgtMDQgMTM6NDc6MjMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIGJ5dGVyZWFkZXI6IEZpeCBkb2NzCgkgIEZpeCB0eXBvIGluIGRvY3MgZm9yIHRoZSB1bnNpZ25lZCBwZWVrIGZ1bmN0aW9ucwoKMjAxMC0wNy0wNSAxMDowMDowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiByZW1vdmUgXG4gZnJvbSBkZWJ1ZyBzdGF0ZW1lbnRzCgoyMDEwLTA4LTAzIDExOjM3OjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGZpeCBidWlsZCB3aXRoIGd0ay1kb2MgZnJvbSBnaXQKCSAgRm9yIHNvbWUgcmVhc29uIHRoZSBzdGF0aWMgaW5saW5lIGZ1bmN0aW9uIEdTVF9DQVRfTEVWRUxfTE9HX3ZhbGlzdCBpcwoJICBub3cgcGlja2VkIHVwLCB3aGljaCB0aGVuIGJyZWFrcyB0aGUgYnVpbGQgYmVjYXVzZSBpdCdzIG5vdCBkb2N1bWVudGVkLAoJICBzbyBhZGQgaXQgdG8gdGhlIHNlY3Rpb25zIGZpbGUuCgkgIEJhc2VkIG9uIHBhdGNoIGJ5IFbDrWN0b3IgTWFudWVsIErDoXF1ZXogTGVhbCA8dmphcXVlekBpZ2FsaWEuY29tPi4KCSAgRml4ZXMgIzYyNTg2Mi4KCjIwMTAtMDctMTUgMjM6MDU6MDkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBhZGQgY29tbWVudCBhbmQgbW9yZSBsb2dnaW5nCgoyMDEwLTA3LTI5IDE3OjI3OjA2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZG93bmxvYWQgbW9kZTsgcHJldmVudCByYW5nZSBjb3JydXB0aW9uIGR1ZSB0byByYWNlCgkgIEN1cnJlbnQgcmFuZ2Ugd2FzIGJlaW5nIHVwZGF0ZWQgaW4gdGhlIHRocmVhZCBwZXJmb3JtaW5nIHNlZWssIGJ1dCBhcwoJICBubyBsb2NrcyB3ZXJlIGtlcHQgZm9yIGEgc2hvcnQgc2VjdGlvbiwgZGF0YSBmbG93IGNvdWxkIHJlc3VtZSBiZWZvcmUKCSAgY3VycmVudCByYW5nZSB1cGRhdGVkLCBzbyBkYXRhIGZvciB0aGUgbmV3IHJhbmdlIHdvdWxkIGJlIGFjY2VwdGVkIGFzCgkgIGZyb20gdGhlIHByZXZpb3VzIHJhbmdlLgoJICBSYXRoZXIsIHJhbmdlIHNob3VsZCBiZSB1cGRhdGVkIGluIHNlcmlhbGl6ZWQgbWFubmVyIGJhc2VkIG9uCgkgIG5ld3NlZ21lbnQgZXZlbnQuCgoyMDEwLTA1LTIyIDE2OjMzOjExIC0wNTAwICBSb2IgQ2xhcmsgPHJvYkB0aS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybSBmaXggZm9yIHVwc3RyZWFtIGNhcHMtcmVuZWdvdGlhdGlvbgoJICBJZiBpbml0aWFsbHkgcGFzcy10aHJvdWdoIGNhcHMgYXJlIG5lZ290aWF0ZWQgYmV0d2VlbiBhIHRyYW5zZm9ybSBlbGVtZW50J3MKCSAgc2luayBhbmQgc3JjIHBhZHMsIGJ1dCB0aGVuIHRoZSBkb3duc3RyZWFtIGVsZW1lbnQgcmV0dXJucyBkaWZmZXJlbnQgY2FwcwoJICBvbiBhIGJ1ZmZlciBmcm9tIHBhZF9hbGxvYygpLCBiYXNldHJhbnNmb3JtIGdldHMgc3R1Y2sgd2l0aCBwcm94eV9hbGxvYz1UUlVFCgkgIGV2ZW4gdGhvdWdoIHRoZSB1cHN0cmVhbSBwZWVyIGRvZXNuJ3QgYWNjZXB0IHRoZSBjYXBzLCBjYXVzaW5nCgkgIGdzdF9wYWRfcGVlcl9hY2NlcHRfY2FwcygpIHRvIGJlIGNhbGxlZCBvbiBlYWNoIGJ1ZmZlciBpbiBfYnVmZmVyX2FsbG9jKCk6CgkgIGlmICghZ3N0X2NhcHNfaXNfZXF1YWwgKG5ld2NhcHMsIGNhcHMpKSB7CgkgIEdTVF9ERUJVR19PQkpFQ1QgKHRyYW5zLCAiY2FwcyBhcmUgbmV3Iik7CgkgIC8qIHdlIGhhdmUgbmV3IGNhcHMsIHNlZSBpZiB3ZSBjYW4gcHJveHkgZG93bnN0cmVhbSAqLwoJICA+PiAgICBpZiAoZ3N0X3BhZF9wZWVyX2FjY2VwdF9jYXBzIChwYWQsIG5ld2NhcHMpKSB7CgkgIC8qIHBlZXIgYWNjZXB0cyB0aGUgY2FwcywgcmV0dXJuIGEgYnVmZmVyIGluIHRoaXMgZm9ybWF0ICovCgkgIEdTVF9ERUJVR19PQkpFQ1QgKHRyYW5zLCAicGVlciBhY2NlcHRlZCBuZXcgY2FwcyIpOwoJICB3aGljaCBpcyB0YWtpbmcgfjQwbXMvZnJhbWUuCgkgIFRoaXMgcGF0Y2ggZG9lcyB0d28gdGhpbmdzLiAgKDEpIGlmIHRoZSBidWZmZXIgcmV0dXJuZWQgZnJvbSBwYWRfYWxsb2MoKSBoYXMKCSAgbmV3IGNhcHMsIHRyaWdnZXIgdGhlIGRlY2lzaW9uIHdoZXRoZXIgdG8gcHJveHkgdGhlIGJ1ZmZlci1hbGxvYyB0byBiZQoJICByZXZpc2l0ZWQsIGFuZCAoMikgZGlzYWJsZSBwcm94eSBpZiBwZWVyIGRvZXMgbm90IGFjY2VwdCBuZXcgY2Fwcy4gIChUaGUgZmlyc3QKCSAgcGFydCBtYXkgbm90IGJlIHN0cmljdGx5IG5lZWRlZCwgYnV0IHNlZW1lZCBsaWtlIGEgZ29vZCBpZGVhLikKCSAgTm90ZSB0aGF0IHRoaXMgaXNzdWUgd291bGQgbm90IGFyaXNlIGV4Y2VwdCBpbiBjYXNlIG9mIGRvd25zdHJlYW0gZWxlbWVudHMKCSAgd2hvIGhhdmUgb24gdGhlaXIgdGVtcGxhdGUtY2Fwcywgc29tZSB0aGF0IHdvdWxkIGJlIHN1aXRhYmxlIGZvciBwYXNzLXRocm91Z2gsCgkgIGJ1dCBhdCBydW50aW1lIHBpY2sgbW9yZSByZXN0cmljdGl2ZSBjYXBzIChmb3IgZXgsIGFmdGVyIHF1ZXJ5aW5nIGEgZHJpdmVyIGZvcgoJICB3aGF0IGZvcm1hdHMgaXQgYWN0dWFsbHkgc3VwcG9ydHMpLgoKMjAxMC0wNy0yNyAxNDozMDo1MSArMDIwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBmaXggY29tcGlsYXRpb24gb24gd2luZG93cwoJICBGaXggbWlzbWF0Y2hlZCBicmFja2V0cyAoIzYyNTI5NSkuCgoyMDEwLTA3LTI3IDA3OjIxOjE5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJICBnc3RkYXRldGltZTogRml4IGxvY2FsdGltZSB1c2FnZQoJICBsb2NhbHRpbWUgb25seSB0YWtlcyBvbmUgcGFyYW1ldGVyIGFuZCByZXR1cm5zIGEgc3RhdGljYWxseQoJICBhbGxvY2F0ZWQgdG0gc3RydWN0LiBVc2UgaXQgY29ycmVjdGx5LgoJICBGaXhlcyAjNjI1MzY4CgoyMDEwLTAzLTI5IDE4OjA1OjQwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSAgYmFzZXRyYW5zZm9ybTogVHJ5IHN1Z2dlc3RpbmcgY2FwcyBvbiBiYWQgY2FwcyBwYWRfYWxsb2MKCSAgV2hlbiBiYXNldHJhbnNmb3JtIHJlY2VpdmVkIGFuIHVuc3VwcG9ydGVkIGNhcHMgb24gcGFkX2FsbG9jCgkgIGl0IGp1c3QgcmV0dXJuZWQgbm90LW5lZ290aWF0ZWQuIFRoaXMgcGF0Y2ggbWFrZXMgaXQgcXVlcnkKCSAgdGhlIGFsbG93ZWQgY2FwcyBiZXR3ZWVuIGhpcyBzaW5rcGFkIGFuZCB1cHN0cmVhbSdzIHNyY3BhZAoJICB0byBmaW5kIGEgY2FwcyB0byBzdWdnZXN0LgoJICBUaGlzIGhhcHBlbnMgd2hlbiBkaW5hbWljYWxseSBzd2l0Y2hpbmcgcGlwZWxpbmUgZWxlbWVudHMKCSAgYW5kIHVwc3RyZWFtIHBhZF9hbGxvY3Mgd2l0aCB0aGUgcHJldmlvdXMgY2FwcyB0aGF0IHdhcwoJICBiZWluZyB1c2VkLgoJICBGaXhlcyAjNjE0Mjk2CgoyMDEwLTA3LTI2IDE4OjUzOjU3ICswMjAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGZsdXNoIGFnYWluIGFmdGVyIGV2ZXJ5IGxpbmUgb2YgZGVidWcgb3V0cHV0CgkgIGdfcHJpbnRlcnIoKSB1c2VkIHRvIGRvIHRoaXMgZm9yIHVzLiBBbHNvIHVzZSBsaWJjJ3MgZnByaW50ZigpIGZ1bmN0aW9ucywKCSAgdG8gbWFrZSBzdXJlIHRoZSBzdGRlcnIgcG9pbnRlciB3ZSB1c2UgaXMgYWN0dWFsbHkgY29tcGF0aWJsZSB3aXRoIHRoZQoJICBsaWJjIGxpbmtlZCBhZ2FpbnN0IGJ5IEdTdHJlYW1lciAod2hpY2ggYXBwYXJlbnRseSBtYXkgbm90IGFsd2F5cyBiZSB0aGUKCSAgc2FtZSBhcyB3aGF0IEdMaWIgaXMgbGlua2VkIGFnYWluc3Qgb24gd2luZG93cyksIGFuZCB3ZSBkb24ndCBuZWVkIHRoZQoJICBmdW5jdGlvbmFsaXR5IGVuc3VyZWQgYnkgZ19mcHJpbnRmKCkuCgkgIEZpeGVzICM2MjUyOTUuCgoyMDEwLTA3LTI2IDE4OjUzOjM1ICswMjAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIG5ldyBzdHJpbmdzCgoyMDEwLTA2LTIzIDExOjMxOjMzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogQWRkcyB0ZXN0cyBmb3IgZGF0ZXRpbWUKCSAgQWRkcyB0ZXN0cyBmb3IgZGF0ZXRpbWUgZmllbGRzIGluIGdzdHZhbHVlIHRlc3RzCgkgIEZpeGVzICM1OTQ1MDQKCjIwMTAtMDYtMjMgMTE6MzA6MDIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RzdHJ1Y3R1cmU6IEFkZHMgZGF0ZXRpbWUgZ2V0dGVyIGZ1bmN0aW9uCgkgIEFkZHMgZ3N0X3N0cnVjdHVyZV9nZXRfZGF0ZV90aW1lIGZ1bmN0aW9uCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9nZXRfZGF0ZV90aW1lCgkgIEZpeGVzICM1OTQ1MDQKCjIwMTAtMDYtMjEgMjM6NDI6NDQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnOiBBZGRzIEdTVF9UQUdfREFURV9USU1FIHRhZwoJICBBZGRzIGEgbmV3IHRhZyB0aGF0IHJlcHJlc2VudHMgYSBkYXRlIGFuZCB0aW1lIGEgbWVkaWEgd2FzCgkgIGNyZWF0ZWQKCSAgQVBJOiBHU1RfVEFHX0RBVEVfVElNRQoJICBGaXhlcyAjNTk0NTA0CgoyMDEwLTA3LTIxIDIyOjA4OjIxIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0YWdsaXN0OiBBZGQgZGF0ZXRpbWUgZ2V0IGZ1bmN0aW9ucwoJICBBZGRzIF9kYXRlX3RpbWVfZ2V0IGFuZCBfZGF0ZV90aW1lX2dldF9pbmRleCBmdW5jdGlvbnMgdG8KCSAgdGFnbGlzdC4KCSAgQVBJOiBnc3RfdGFnX2xpc3RfZ2V0X2RhdGVfdGltZQoJICBBUEk6IGdzdF90YWdfbGlzdF9nZXRfZGF0ZV90aW1lX2luZGV4CgkgIEZpeGVzICM1OTQ1MDQKCjIwMTAtMDctMjEgMjI6MDQ6MjMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHZhbHVlOiBBZGRzIGRhdGV0aW1lIGZ1bmN0aW9ucwoJICBBZGRzIGEgZGF0ZXRpbWUgZnVuY3Rpb25zIHRvIGdzdHZhbHVlCgkgIEZpeGVzICM1OTQ1MDQKCjIwMTAtMDctMTYgMTQ6MDk6MTIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRldGltZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0ZGF0ZXRpbWU6IEFkZHMgR3N0RGF0ZVRpbWUKCSAgQWRkcyBHc3REYXRlVGltZSB0byByZXByZXNlbnQgZGF0ZXMgKyB0aW1lICsgdGltZXpvbmUKCSAgaW5mb3JtYXRpb24uCgkgIFRlc3RzIGluY2x1ZGVkLgoJICBBUEk6IEdzdERhdGVUaW1lCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9nZXRfZGF5CgkgIEFQSTogZ3N0X2RhdGVfdGltZV9nZXRfbW9udGgKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX2dldF95ZWFyCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9nZXRfaG91cgoJICBBUEk6IGdzdF9kYXRlX3RpbWVfZ2V0X21pY3Jvc2Vjb25kCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9nZXRfbWludXRlCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9nZXRfc2Vjb25kCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9nZXRfdGltZV96b25lX29mZnNldAoJICBBUEk6IGdzdF9kYXRlX3RpbWVfbmV3CgkgIEFQSTogZ3N0X2RhdGVfdGltZV9uZXdfbG9jYWxfdGltZQoJICBBUEk6IGdzdF9kYXRlX3RpbWVfbmV3X2Zyb21fdW5peF9lcG9jaAoJICBBUEk6IGdzdF9kYXRlX3RpbWVfbmV3X25vd19sb2NhbF90aW1lCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9uZXdfbm93X3V0YwoJICBBUEk6IGdzdF9kYXRlX3RpbWVfcmVmCgkgIEFQSTogZ3N0X2RhdGVfdGltZV91bnJlZgoJICBGaXhlcyAjNTk0NTA0CgoyMDEwLTA3LTI2IDE0OjU5OjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBGaXggdXNhZ2Ugb2YgZ2xpYl9jaGVja192ZXJzaW9uKCkKCSAgSXQgcmV0dXJucyBOVUxMIGlmIHRoZSBpbnN0YWxsZWQgR0xpYiB2ZXJzaW9uIGlzIGFzIGxlYXN0IGFzCgkgIG5ldyBhcyB0aGUgcmVxdWlyZWQgdmVyc2lvbiBhbmQgc29tZSBleHBsYW5hdG9yeSBzdHJpbmcgb3RoZXJ3aXNlLgoKMjAxMC0wNy0yMyAyMDo0NjoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogbWFrZSBnc3QtaW5zcGVjdCBwcmludCB0aGUgcmVsZWFzZSBkYXRlIHRpbWUgc3RhbXAKCjIwMTAtMDYtMjEgMTc6MzQ6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogdXNlIG5ldyBBR19HU1RfU0VUX1BBQ0tBR0VfUkVMRUFTRV9EQVRFVElNRV9XSVRIX05BTk8gbWFjcm8KCjIwMTAtMDYtMjAgMDE6NTU6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICBiaW5hcnlyZWdpc3RyeTogc2F2ZSBhbmQgbG9hZCByZWxlYXNlIGRhdGUgdGltZSBpbiBHc3RQbHVnaW5EZXNjCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjMwNDAKCjIwMTAtMDYtMjAgMDA6MzM6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiBhZGQgcmVsZWFzZSBkYXRldGltZSBmaWVsZCB0byBHc3RQbHVnaW5EZXNjIGFuZCBzZXQgaXQgaWYgR1NUX1BBQ0tBR0VfUkVMRUFTRV9EQVRFVElNRSBpcyBkZWZpbmVkCgkgIFRoaXMgaXMgYSBzdHJpbmcgZGVzY3JpYmluZyBhIGRhdGUgYW5kL29yIGRhdGUvdGltZSBpbiBhIHNpbXBsZSBzdWJzZXQgb2YKCSAgdGhlIElTTy04NjAxIGZvcm1hdCwgbmFtZWx5IGVpdGhlciAiWVlZWS1NTS1ERCIgb3IgIllZWVktTU0tRERUSEg6TU1aIiAod2l0aAoJICAnVCcgdGhlIGRhdGUvdGltZSBzZXBhcmF0b3IgYW5kIHRoZSAnWicgaW5kaWNhdGluZyBVVEMpLgoJICBUaGUgbWFpbiBwdXJwb3NlIG9mIHRoaXMgZmllbGQgaXMgdG8ga2VlcCB0cmFjayBvZiBwbHVnaW4gYW5kIGVsZW1lbnQgdmVyc2lvbnMKCSAgb24gYW4gYWJzb2x1dGUgdGltZWxpbmUsIHNvIGl0J3MgcG9zc2libGUgdG8gZGV0ZXJtaW5lIHdoaWNoIG9uZSBpcyBuZXdlciB3aGVuCgkgIGNvbXBhcmluZyB0d28gZGF0ZSB0aW1lIG51bWJlcnMuIFRoaXMgd2lsbCBhbGxvdyB1cyB0byBleHByZXNzICdyZXBsYWNlcyctdHlwZQoJICByZWxhdGlvbnNoaXBzIGJldHdlZWVuIHBsdWdpbnMgYW5kIGVsZW1lbnQgZmFjdG9yaWVzIGluIGZ1dHVyZSwgZXZlbiBhY3Jvc3MKCSAgZGlmZmVyZW50IG1vZHVsZXMgYW5kIHBsdWdpbiBtZXJnZXMgb3Igc3BsaXRzIChzb3VyY2UgbW9kdWxlIHZlcnNpb24gbnVtYmVycwoJICBhcmVuJ3QgcGFydGljdWxhcmx5IHVzZWZ1bCBoZXJlLCBzaW5jZSB0aGV5IGNhbiBvbmx5IG1lYW5pbmdmdWxseSBiZSBjb21wYXJlZAoJICB3aXRoaW4gdGhlIHNhbWUgbW9kdWxlKS4gSXQgYWxzbyBhbGxvd3MgYXBwbGljYXRpb25zIGFuZCBsaWJyYXJpZXMgdG8gcmVsaWFibHkKCSAgY2hlY2sgdGhhdCBhIHBsdWdpbiBpcyByZWNlbnQgZW5vdWdoIHdpdGhvdXQgbWFraW5nIGFzc3VtcHRpb25zIGFib3V0IG1vZHVsZXMKCSAgb3IgbW9kdWxlIHZlcnNpb25zLgoJICBXZSB1c2UgYSBzdHJpbmcgaGVyZSB0byBrZWVwIHRoaW5ncyBzaW1wbGUgYW5kIGNsZWFyLCBlc3AuIG9uIHRoZSBidWlsZCBzeXN0ZW0KCSAgc2lkZSBvZiB0aGluZ3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjMwNDAKCjIwMTAtMDctMjAgMDk6MjU6MjAgLTA1MDAgIFNoaXhpbiBaZW5nIDx6ZW5nLnNoaXhpbkBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwcmVzZXQuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIHRlc3RzOiBtYWtlICpfZ2V0X3R5cGUoKSBpbiB0ZXN0cyB0aHJlYWQgc2FmZQoJICBFdmVuIGlmIGl0IHNob3VsZG4ndCBiZSBuZWVkZWQgaGVyZS4gU2VlICM2MjM0OTEuCgoyMDEwLTA2LTA0IDExOjI0OjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHdyaXRlIGRlYnVnZ2luZyBvdXRwdXQgdG8gZmlsZSBpZiBHU1RfREVCVUdfRklMRSBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBzZXQKCSAgVGhpcyBjaGFuZ2VzIGJlaGF2aW91ciBzbGlnaHRseSBpbiB0aGF0IHdlIG5vIGxvbmdlciBvdXRwdXQgdGhpbmdzCgkgIHZpYSBnX3ByaW50ZXJyKCksIHNvIGFueSBub24tc3RhbmRhcmQgZ2xpYiBwcmludGVyciBoYW5kbGVycyBhcmUgbm8KCSAgbG9uZ2VyIGNhbGxlZCB3aGVuIEdTVF9ERUJVRyBpcyBlbmFibGVkLiBIb3dldmVyLCB0aGlzIHNlZW1zIG5vdAoJICByZWFsbHkgZGVzaXJhYmxlIGluIG1vc3QgY2FzZXMgYW55d2F5LCBhbmQgdGhlIEdMaWIgZG9jcyBhbHNvIHNheQoJICB0aGF0IGxpYnJhcmllcyBzaG91bGQgbm90IHVzZSBnX3ByaW50ZXJyKCkgZm9yIGxvZ2dpbmcuCgkgIE90aGVyIHN0ZGVyciBvdXRwdXQgKGUuZy4gd2FybmluZ3MsIG9yIGFwcGxpY2F0aW9uIG1lc3NhZ2VzKSB3aWxsCgkgIG9mIGNvdXJzZSBub3QgYmUgY2FwdHVyZWQgaW4gdGhlIGxvZyBmaWxlIHRoaXMgd2F5LgoJICBHU1RfREVCVUdfRklMRT0tIHdpbGwgcmVkaXJlY3QgZGVidWcgb3V0cHV0IHRvIHN0ZG91dC4KCjIwMTAtMDctMjAgMjA6NDk6MTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogQXNzdW1lIHBhZHMgYXJlIGNvbXBhdGlibGUgaWYgd2UgZG9uJ3QgaGF2ZSB0ZW1wbGF0ZXMKCSAgVGhpcyBpcyB0aGUgc2FtZSBiZWhhdmlvdXIgYXMgaWYgd2UgaGFkIGEgcGFkIHRlbXBsYXRlIGNhcHMgb2YKCSAgR1NUX0NBUFNfQU5ZIG9uIGFueSBvZiB0aGUgcGFkcyAoaS5lLiB0aGUgYWN0dWFsIGNoZWNrIHdpbGwgYmUgZG9uZQoJICBkdXJpbmcgY2FwcyBuZWdvdGlhdGlvbikuCgoyMDEwLTA3LTE3IDIxOjI4OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBBbGxvdyB0aGUgc3ViY2xhc3MgdG8gYWRkIG5ldyBmaWVsZHMgdG8gY2FwcyB3aGVuIGdldHRpbmcgbmV3IGNhcHMgZnJvbSBkb3duc3RyZWFtCgkgIFRoaXMgd2FzIGFscmVhZHkgZG9uZSBpbiBhbGwgb3RoZXIgY2FzZXMgd2hlcmUgbmV3IGNhcHMgYXJlIGhhbmRsZWQKCSAgZXhjZXB0IHVwc3RyZWFtIG5lZ290aWF0aW9uLgoKMjAxMC0wNy0xMiAxNDozOTowMCArMDIwMCAgTWljaGFlbCBCdW5rIDxidW5rQGlhdC51bmktbGVpcHppZy5kZT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWNsb2Nrcy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLW1ldGFkYXRhLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtdGhyZWFkcy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSogZG9jcy9tYW51YWwvaW50cm8tYmFzaWNzLnhtbDoKCSogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSAgZG9jczogZml4IHNvbWUgdHlwb3MgYW5kIGFkZCBzb21lIG1pc3NpbmcgbGlua3MgaW4gdGhlIGFwcCBkZXYgbWFudWFsCgkgIEZpeGVzICM2MjQxNjQuCgoyMDEwLTA3LTEyIDE0OjIyOjUwICswMjAwICBNaWNoYWVsIEJ1bmsgPGJ1bmtAaWF0LnVuaS1sZWlwemlnLmRlPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuMS5pbjoKCSAgZG9jczogZml4IHR5cG8gb24gZ3N0LWluc3BlY3QgbWFuIHBhZ2UKCSAgU2VlICM2MjQxNjQuCgoyMDEwLTA3LTAzIDE1OjA4OjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGdzdGNoZWNrOiBmaXggc29tZSBzaWxseSBsaXN0IGl0ZXJhdGlvbiBjb2RlCgkgIGdfbGlzdF9sZW5ndGgoKSBpcyBub3QgdGhlIGJlc3Qgd2F5IHRvIGNoZWNrIGlmIGEgbGlzdCBpcyBlbXB0eSBvciBub3QuCgoyMDEwLTA3LTE2IDE3OjUzOjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogdXNlIEdTdGF0QnVmIHVuY29uZGl0aW9uYWxseSBhbmQgYWRkIHR5cGVkZWYgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5CgkgIE5vIG5lZWQgdG8gY2x1dHRlciB0aGUgY29kZSB3aXRoICNpZiAjZWxzZSAjZW5kaWYuCgkgIFNlZSAjNjIzODc1LgoKMjAxMC0wNy0xNiAxNzozMzozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgc3RydWN0dXJlOiBVc2UgYSBjb25zdCBHc3RTdHJ1Y3R1cmUgKiBhcyBwYXJhbWV0ZXIgZm9yIHNvbWUgbW9yZSBnc3Rfc3RydWN0dXJlX2dldCB2YXJpYW50cwoKMjAxMC0wNy0xNCAxOTo0Nzo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIFJldmVydCAiLWxhdW5jaDogZGlzYWJsZSBDTE9DS19MT1NUIG1lc3NhZ2UgaGFuZGxpbmciCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMWY4ZWJhNjExYTYzZjQ1NzY2YzM4YzY0MDI4OGU0MmIyN2IxMGJkNC4KCSAgVGhpcyBzaG91bGQgYmUgZml4ZWQgbm93IChhbmQgaWYgbm90IHNob3VsZCBiZSBmaXhlZCkgYW5kIHRoZQoJICBjbG9jay1sb3N0IGhhbmRsaW5nIGlzIG5vdyBuZWVkZWQgZm9yIHBsYXliaW4yIGdhcGxlc3MgcGxheWJhY2suCgkgIFNlZSBidWcgIzU3OTEyNy4KCjIwMTAtMDctMDggMjE6MDQ6NTQgKzAyMDAgIERhdmlkIEhveXQgPGRob3l0QGxsbmwuZ292PgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5YmluYXJ5OiBGaXggY29tcGF0aWJpbGl0eSB3aXRoIEdMaWIgMi4yNSB3aGVuIHVzaW5nIE1TVkMKCSAgTmV3ZXIgR0xpYiB1c2VzIGEgbmV3IHR5cGUgZm9yIGdfc3RhdCgpIGFuZCBmcmllbmRzIHRvIGltcHJvdmUKCSAgV2luZG93cyBjb21wYXRpYmlsaXR5LiBPbiBQT1NJWCB0aGlzIGlzIGEgdHlwZWRlZiB0byBzdHJ1Y3Qgc3RhdC4KCSAgRml4ZXMgYnVnICM2MjM4NzUuCgoyMDEwLTA3LTA4IDA3OjQ4OjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogSWYgdGhlIGN1cnJlbnRseSB1c2VkIGNsb2NrIGdldHMgbG9zdCB1cGRhdGUgaXQgdGhlIG5leHQgdGltZSB3aGVuIGdvaW5nIGZyb20gUEFVU0VEIHRvIHBsYXlpbmcKCSAgRml4ZXMgYnVnICM2MjM4MDYuCgoyMDEwLTA3LTA1IDE5OjMzOjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBSZXR1cm4gdmFsdWVzIGluIHN0cmVhbSB0aW1lIGZvciB0aGUgUE9TSVRJT04gcXVlcnkKCSAgRml4ZXMgYnVnICM2MjM2MjIuCgoyMDEwLTA3LTA1IDE4OjU0OjQ1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IEltcGxlbWVudCBHc3RFbGVtZW50OjpnZXRfcXVlcnlfdHlwZXMoKQoKMjAxMC0wNy0wNiAxMDoxMzowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBPbmx5IGFuc3dlciB0aGUgU0VHTUVOVCBxdWVyeSBpbiBwdWxsIG1vZGUKCSAgT3RoZXJ3aXNlIHRoZSBlbGVtZW50IGhhbmRsaW5nIHRoZSBzZWVrcyBzaG91bGQgYW5zd2VyIHRoaXMgcXVlcnkuCgkgIEZpeGVzIGJ1ZyAjNjIzNjIyLgoKMjAxMC0wNy0wNSAxMDozNjowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogSW1wbGVtZW50IFBPU0lUSU9OIHF1ZXJ5CgkgIEZpeGVzIGJ1ZyAjNjIzNTQxLgoKMjAxMC0wNi0yNSAxNjozMTowNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgR3N0UGFkOiBEbyBub3QgY2FsbCBnc3RfcGFkX2FjY2VwdF9jYXBzKCkgd2hlbiBjYXBzIGNoYW5nZQoJICBJbnN0ZWFkIGp1c3QgY2hlY2sgdGhhdCB0aGUgY2FwcyBpbnRlcnNlY3Qgd2l0aCB0aGUgcGFkIHRlbXBsYXRlLgoJICBUaGUgZWxlbWVudHMgc2hvdWxkIHByb3Blcmx5IGFjY2VwdC9yZWZ1c2UgdGhlIGNhcHMgaW4gc2V0Y2FwcygpLgoJICBTaGF2ZXMgb2ZmIGNhbGxpbmcgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgYWNjZXB0Y2FwcyB3aGljaCBkb2VzCgkgIGFuIGV4cGVuc2l2ZSBnc3RfcGFkX2dldF9jYXBzKCkgKHNvIGlmIHlvdSBoYXZlIDUwIG9mIHRob3NlIGVsZW1lbnRzIGluCgkgIGEgcm93LCB5b3UnZCBiZSBkb2luZyBmYWN0b3JpYWwoNTApIGdzdF9wYWRfZ2V0X2NhcHMuLi4pLgoJICBEb2VzIG5vdCBicmVhayBhbnkgbW9kdWxlIHVuaXQgdGVzdCBhbmQgbW9zdCBhcHBzIHdvcmsgZmluZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMjc0MAoKMjAxMC0wNy0wOCAxNjoyNDoyMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogQWRkIG1vcmUgZGV0YWlscyBhYm91dCBnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWQKCjIwMTAtMDctMTYgMTE6MTY6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgQmFjayB0byBkZXZlbG9wbWVudC4KCj09PSByZWxlYXNlIDAuMTAuMzAgPT09CgoyMDEwLTA3LTE0IDIzOjU5OjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMC4xMC4zMAoKMjAxMC0wNy0xNCAxNzo1ODoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9kZS5wbzoKCSogcG8vaWQucG86CgkqIHBvL3poX0NOLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMC0wNy0xNSAxMjowMToyNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IHJlbW92ZSBjb21tYSBhdCB0aGUgZW5kIG9mIHRoZSBsYXN0IGVudW0gdmFsdWUKCSAgRml4ZXMgdGhlIGJ1aWxkIGZvciBjKysuCgoyMDEwLTA3LTExIDE5OjAwOjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSAgY2hlY2tzOiBhZGQgdW5pdCB0ZXN0IGZvciByZWNlbnQgdGFnbGlzdCBtZXJnZV9zdHJpbmdzX3dpdGhfY29tbWEgZml4CgkgIFNlZSAjNjI0MTEzLgoKMjAxMC0wNy0xMSAxODo1OTo1MyArMDEwMCAgRWR1YXJkbyBEb2JheSA8ZWR1ZG9iYXlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogZml4IG1lcmdlX3N0cmluZ3Nfd2l0aF9jb21tYSgpIGZvciBtb3JlIHRoYW4gdHdvIHN0cmluZ3MKCSAgRml4ZXMgIzYyNDExMy4KCjIwMTAtMDctMDggMTM6NDY6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJICAuZ2l0aWdub3JlOiBpZ25vcmUgbmV3IGJhc2VzaW5rIHVuaXQgdGVzdCBiaW5hcnkKCjIwMTAtMDctMDggMTM6NDM6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiByZW1vdmUgLXAgc2hvcnRoYW5kIGZvciAtLW5vLXNpZ3Vzci1oYW5kbGVyCgkgIEl0J3Mgbm90IHJlYWxseSBuZWVkZWQsIGFuZCBkb2Vzbid0IG1hcCBhbnkgbG9uZ2VyIGFmdGVyIHRoZSBsb25nIG9wdGlvbgoJICBoYXMgYmVlbiByZW5hbWVkLgoKMjAxMC0wNy0wNiAxNTo0Nzo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4yOS40IHByZS1yZWxlYXNlCgkgIEFsc28gYnVtcCBsaWJ0b29sIHZlcnNpb25zIG5vdyAod2hpY2ggSSBtZWFudCB0byBkbyBmb3IgdGhlIGZpcnN0CgkgIHByZS1yZWxlYXNlIGJ1dCBmb3Jnb3QpLgoKMjAxMC0wNy0wNiAyMzo0NDoyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9MSU5HVUFTOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vemhfQ04ucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEwLTA3LTA2IDE2OjIxOjA1ICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzaW5rLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYmFzZXNpbms6IGFkZCBhY2Nlc3NvcnMgZm9yIHRoZSBlbmFibGUtbGFzdC1idWZmZXIgcHJvcGVydHkuCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19zZXRfbGFzdF9idWZmZXJfZW5hYmxlZAoJICBBUEk6IGdzdF9iYXNlX3NpbmtfaXNfbGFzdF9idWZmZXJfZW5hYmxlZAoKMjAxMC0wNy0wNiAxMjoxODo0NSArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBhZGQgbmV3IGVuYWJsZS1sYXN0LWJ1ZmZlciBwcm9wZXJ0eS4KCSAgQWRkIGEgbmV3IGVuYWJsZS1sYXN0LWJ1ZmZlciBwcm9wZXJ0eS4gV2hlbiBmYWxzZSwgaXQgZGlzYWJsZXMgc3RvcmluZyB0aGUgbGFzdAoJICByZWNlaXZlZCBidWZmZXIgaW4gYmFzZXNpbms6Omxhc3QtYnVmZmVyLiBUaGlzIGNhbiBiZSB1c2VmdWwgaW4gY2FzZXMgd2hlcmUKCSAgYnVmZmVycyBuZWVkIHRvIGJlIHJlbGVhc2VkIGFzYXAuCgkgIEFQSTogR3N0QmFzZVNpbms6OmVuYWJsZS1sYXN0LWJ1ZmZlcgoKMjAxMC0wNy0wNiAxMDo0ODoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnc2V0dGVyLmM6CgkgIGNoZWNrczogcmV3cml0ZSBnc3R0YWdzZXR0ZXIgdGVzdCB0byB1c2UgZmV3ZXIgZ191c2xlZXAoKQoJICBTb21ldGhpbmcgYWJvdXQgdGhhdCBzZWVtcyB0byBpbnRlcmFjdCBiYWRseSB3aXRoIHNvbWUgc2NoZWR1bGVycywKCSAgc28gZG8gdGhpbmdzIGRpZmZlcmVudGx5LgoJICBGaXhlcyAjNjIzNDY5LgoKMjAxMC0wNy0wNiAxMDoxOTowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgbmV3IGFkZCBnc3RfY2xvY2tfaWRfd2FpdF9hc3luY19mdWxsKCkgdG8gZG9jcwoJICBBUEk6IGFkZCBnc3RfY2xvY2tfaWRfd2FpdF9hc3luY19mdWxsCgkgIFNlZSAjNjIzNTg5LgoKMjAxMC0wNy0wNiAxMDoyODoxNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogSW1wcm92ZSBnc3RfdmFsdWVfe3NldHxnZXR9X2NhcHMgZG9jcwoKMjAxMC0wNy0wNiAxMDozNTowOSArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZGVjaW5hQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogZXhwb3J0IGdzdF9jbG9ja19pZF93YWl0X2FzeW5jX2Z1bGwKCjIwMTAtMDctMDYgMTA6MzE6MjUgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRlY2luYUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2hwcGEuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjMzIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGM2NC5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3NwYXJjLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIHRlc3RzOiByZW1vdmUgQUJJIGNoZWNrcyBmb3IgR3N0Q2xvY2tFbnRyeS4KCjIwMTAtMDctMDUgMTg6NDU6NTUgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRlY2luYUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgY2xvY2s6IGRvY3VtZW50IHRoYXQgR3N0Q2xvY2tFbnRyeSBzaG91bGQgYmUgdHJlYXRlZCBhcyBhbmEgb3BhcXVlIHN0cnVjdHVyZS4KCjIwMTAtMDctMDUgMTM6MTA6MDkgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRlY2luYUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgY2xvY2s6IHVzZSB0aGUgbmV3IGdzdF9jbG9ja19pZF93YWl0X2FzeW5jX2Z1bGwuCgkgIFVzZSB0aGUgbmV3IGdzdF9jbG9ja19pZF93YWl0X2FzeW5jX2Z1bGwgaW4gZ3N0X2Nsb2NrX3NldF9tYXN0ZXIuCgkgIEFsc28gYWRkIHNvbWUgdGVzdHMuCgoyMDEwLTA3LTA1IDEzOjAxOjUzICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kZWNpbmFAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGNsb2NrOiBmaXggcmVmY291bnRpbmcgYnVnIGluIGdzdF9jbG9ja19zZXRfbWFzdGVyLgoJICBNYWtlIHN1cmUgY2xvY2stPmNsb2NraWQgaXMgdW5yZWZmZWQgYmVmb3JlIGNsb2NrLT5tYXN0ZXIuCgkgIGdzdF9jbG9ja19pZF91bnNjaGVkdWxlIChjbG9jay0+Y2xvY2tpZCkgdHJpZXMgdG8gYWNjZXNzIGNsb2NrLT5tYXN0ZXIuIElmCgkgIGNsb2NrLT5tYXN0ZXIgaXMgdW5yZWZmZWQgYmVmb3JlIGFuZCBpdCdzIGRlYWxsb2NhdGVkLCBfdW5zY2hlZHVsZSBjb3VsZCBhY2Nlc3MKCSAgZnJlZSdkIG1lbW9yeS4KCjIwMTAtMDctMDUgMTI6NTY6NDAgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRlY2luYUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGNsb2NrOiBhZGQgZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmNfZnVsbC4KCSAgQWRkIGdzdF9jbG9ja19pZF93YWl0X2FzeW5jX2Z1bGwuIEl0J3MgdGhlIHNhbWUgYXMgZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmMgYnV0CgkgIGFsbG93cyBwYXNzaW5nIGEgR0Rlc3Ryb3lOb3RpZnkgdG8gZGVzdHJveSB1c2VyX2RhdGEuCgoyMDEwLTA3LTA1IDE3OjUwOjMzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBkb2NzOiBpbXByb3ZlIHRoZSBhcGkgZG9jcyBmb3IgbmV3IEdzdFBhZExpbmtDaGVja3MgYW5kIGl0cyB1c2UKCjIwMTAtMDctMDUgMTI6MjE6NTEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL1JFQURNRToKCSAgUkVBRE1FOiB1cGRhdGUgYWZ0ZXIgcmVtb3ZhbCBvZiAib2xkIiBkaXIuCgkgIFJlbW92ZSAib2xkIiBhbmQgYWRkIGEgbGluZSBhYm91dCAiZXhhbXBsZXMiLgoKMjAxMC0wNy0wNCAxNzozNDozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9UT0RPOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvYXBwcmVhZGVyLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9hcHByZWFkZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9hcHByZWFkZXIvYXBwcmVhZGVyLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9jdXR0ZXIvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2N1dHRlci9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2N1dHRlci9jdXR0ZXIuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2N1dHRlci9jdXR0ZXIuaDoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2V2ZW50cy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2V2ZW50cy9zZWVrLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9oZWxsb3dvcmxkMi8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvaGVsbG93b3JsZDIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9oZWxsb3dvcmxkMi9oZWxsb3dvcmxkMi5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWFudWFsLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9tYW51YWwvZXh0cmFjdC5wbDoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL21peGVyLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9taXhlci9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL21peGVyL21peGVyLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9taXhlci9taXhlci5oOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcGluZ3BvbmcvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3Bpbmdwb25nL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcGluZ3BvbmcvcGluZ3BvbmcuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3BsdWdpbnMvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9wbHVnaW5zL2V4YW1wbGUuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3BsdWdpbnMvZXhhbXBsZS5oOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcHdnLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9wd2cvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9wd2cvZXh0cmFjdC5wbDoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3F1ZXVlMi8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcXVldWUyL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcXVldWUyL3F1ZXVlMi5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcXVldWUzLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9xdWV1ZTMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9xdWV1ZTMvcXVldWUzLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9xdWV1ZTQvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3F1ZXVlNC9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3F1ZXVlNC9xdWV1ZTQuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3JldGFnLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9yZXRhZy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3JldGFnL3JldGFnLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9yZXRhZy90cmFuc2NvZGUuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3RocmVhZC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvdGhyZWFkL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvdGhyZWFkL3RocmVhZC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvUnVsZXM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9hcHBfZml4YXRlLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9hdWRpb3NjYWxlLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9jYXBzLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9jYXBzLmg6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9jYXBzX3N0cmluZ3M6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9jb21wYXRpYmlsaXR5LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9kZXNlcmlhbGl6ZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvZW51bWNhcHMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2VyYXRvc3RoZW5lcy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvZmlsdGVyY2Fwcy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvZml4ZWQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2ZyYWN0aW9uLWNvbnZlcnQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2ZyYWN0aW9uLW11bHRpcGx5LWFuZC16ZXJvLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9pbnRlcnNlY3QyLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9pbnRlcnNlY3Rpb24uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL25vcm1hbGlzYXRpb24uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL3JhbmRvbS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvcmVuZWdvdGlhdGUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL3NldHMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL3NpbXBsaWZ5LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9zdHJpbmctY29udmVyc2lvbnMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL3N0cnVjdHVyZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvc3VidHJhY3QuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL3VuaW9uLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGVidWcvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kZWJ1Zy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kZWJ1Zy9jYXRlZ29yeS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2RlYnVnL2NvbW1hbmRsaW5lLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGVidWcvZ2xvYmFsLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGVidWcvb3V0cHV0LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGVidWcvcHJpbnRmX2V4dGVuc2lvbi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2Rsb3Blbi8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2Rsb3Blbi9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kbG9wZW4vZGxvcGVuX2dzdC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2Rsb3Blbi9sb2FkZ3N0LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy9nc3QtaW5zcGVjdC1jaGVjay5pbjoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL3N0cnVjdF9zaXplLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvaW5kZXhlcnMvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9pbmRleGVycy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9pbmRleGVycy9jYWNoZTEuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9pbmRleGVycy9pbmRleGR1bXAuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wYXJzZS8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BhcnNlL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BhcnNlL3BhcnNlMS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BhcnNlL3BhcnNlMi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wbHVnaW4vUkVBRE1FOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi9keW5hbWljLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luL2xpbmtlZC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi9sb2FkaW5nLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luL3JlZ2lzdHJ5LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luL3N0YXRpYy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi9zdGF0aWMyLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luL3Rlc3RwbHVnaW4uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wbHVnaW4vdGVzdHBsdWdpbjIuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wbHVnaW4vdGVzdHBsdWdpbjJfcy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi90ZXN0cGx1Z2luX3MuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWZjb3VudGluZy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZmNvdW50aW5nL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZmNvdW50aW5nL2Jpbi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZmNvdW50aW5nL2VsZW1lbnQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWZjb3VudGluZy9lbGVtZW50X3BhZC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZmNvdW50aW5nL21haW5sb29wLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVmY291bnRpbmcvbWVtLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVmY291bnRpbmcvbWVtLmg6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVmY291bnRpbmcvb2JqZWN0LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVmY291bnRpbmcvcGFkLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVmY291bnRpbmcvc2NoZWQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWZjb3VudGluZy90aHJlYWQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zdGF0ZXMvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zdGF0ZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc3RhdGVzL2Jpbi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3N0YXRlcy9sb2NrZWQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zdGF0ZXMvcGFyZW50LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvMTU5NTY2LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy8xNTk4NTIuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvcXVldWUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL3NpZ25hbHMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL3N0YXRpY3JlYy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRiLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRjLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRkLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRlLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRmLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRnLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRoLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRpLmM6CgkgIFJlbW92ZSBvbGQgMC44IHRlc3RzIGFuZCBleGFtcGxlcyBmcm9tIGdpdCB0cmVlCgkgIERvZXNuJ3QgcmVhbGx5IGxvb2sgbGlrZSBhbnl0aGluZydzIHdvcnRoIGtlZXBpbmcuCgoyMDEwLTA3LTAzIDE2OjM5OjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgY2hlY2s6IHNraXAgc2lsbHkgdGVzdCB0aGF0IHNlZ2ZhdWx0cyB3aGVuIGluIGEgQ0tfRk9SSz1ubyBlbnZpcm9ubWVudAoJICBTZWUgIzYyMzQ2OS4KCjIwMTAtMDctMDMgMTU6MTM6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOgoJICBjaGVja3M6IG1ha2UgZmFrZXNyYyBjaGVjayB3b3JrIGluIGEgQ0tfRk9SSz1ubyBlbnZpcm9ubWVudAoJICBSZXNldCBoYXZlX2VvcyBhdCB0aGUgYmVnaW5uaW5nIG9mIGVhY2ggdGVzdC4KCSAgU2VlICM2MjM0NjkuCgoyMDEwLTA3LTAzIDE0OjA5OjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3QuYzoKCSAgY2hlY2tzOiBydW4gdGVzdHMgY2FsbGluZyBnc3RfZGVpbml0KCkgbGFzdCBzbyB0aGluZ3Mgd29yayB3aXRoIENLX0ZPUks9bm8KCSAgQmVjYXVzZSBnc3RfaW5pdCgpIHdpbGwgZmFpbCBvbmNlIGdzdF9kZWluaXQoKSBoYXMgYmVlbiBjYWxsZWQuCgkgIFNlZSAjNjIzNDY5LgoKMjAxMC0wNy0wMyAxNDowNDozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJICBjaGVja3M6IGRvbid0IGFzc3VtZSBlbGVtZW50IGZhY3RvcnkgaXMgbm90IGxvYWRlZCB5ZXQKCSAgSXQgbWF5IGFscmVhZHkgYmUgbG9hZGVkIGlmIGNoZWNrIGlzIGJlaW5nIHJ1biB3aXRoIENLX0ZPUks9bm8uCgkgIFNlZSAjNjIzNDY5LgoKMjAxMC0wNy0wMSAxOTo1ODowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXBvc2l0aW9uLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJICBkb2NzOiBmaXggYSBjb3VwbGUgb2YgdHlwb3MgaW4gdGhlIG1hbnVhbAoJICBTcG90dGVkIGJ5IEFsZXhhbmRlciBTYXByeWtpbi4KCSAgRml4ZXMgIzYyMjM3OS4KCjIwMTAtMDctMDEgMTc6NTY6MzMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBnc3RjYXBzOiBNYWtlIHN1cmUgX25vcm1hbGl6ZSgpIGlzIGFwcGxpZWQgb24gYWxsIHN0cnVjdHVyZXMuCgkgIFdlIG5lZWQgdG8gdXNlIGdzdF9jYXBzX2dldF9zaXplKCkgaW4gdGhlIGxvb3AgY291bnRlciBzaW5jZSBzb21lCgkgIHN0cnVjdHVyZXMgY291bGQgYmUgYWRkZWQgd2hpbGUgaXRlcmF0aW5nLgoJICBGaXhlcyAjNjIzMzAxCgoyMDEwLTA2LTMwIDEzOjE2OjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC14bWwueG1sOgoJICBkb2NzOiB1cGRhdGUgJ1hNTCBpbiBHU3RyZWFtZXInIHNlY3Rpb24gaW4gYXBwbGljYXRpb24gZGV2ZWxvcGVyJ3MgbWFudWFsCgoyMDEwLTA2LTI5IDE4OjQ4OjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMjkuMyBwcmUtcmVsZWFzZQoKMjAxMC0wNi0yNSAxOTowMzoyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBpbXBsZW1lbnQgYWNjZXB0Y2FwcyBmdW5jdGlvbgoJICBPdXIgYWNjZXB0Y2FwcyBmdW5jdGlvbiBjYW4gc2ltcGx5IGZvcndhcmQgdGhlIHF1ZXJ5LgoKMjAxMC0wNi0yOCAxNToyODo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb25maWd1cmUuYWM6CgkgIEJ1bXAgYXV0b21ha2UgcmVxdWlyZW1lbnQgdG8gMS4xMAoJICBGb3IgbWFpbnRhaW5hYmlsaXR5IHJlYXNvbnMgYW5kICQoYnVpbGRkaXIpLgoJICBGaXhlcyAjNjIyOTQ0LgoKMjAxMC0wNi0yOCAxMzo1NjowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIHRvb2xzOiBtZW50aW9uIC0tZW9zLW9uLXNodXRkb3duIG9uIGdzdC1sYXVuY2ggbWFuIHBhZ2UKCjIwMTAtMDYtMjggMTA6MjA6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiBEb24ndCB1c2UgR19HTlVDX0NPTlNUIGZvciB0aGUgdWludDY0IHNjYWxpbmcgZnVuY3Rpb25zCgkgIFRoZXkgYXJlIGFjdHVhbGx5ICpub3QqIGNvbnN0IGZ1bmN0aW9ucyBiZWNhdXNlIG9uIGFyY2hpdGVjdHVyZXMKCSAgd2l0aG91dCBpbnQxMjggaW5zdHJ1Y3Rpb25zIHRoZSBwYXJhbWV0ZXJzIHdlcmUgY2hhbmdlZC4KCSAgZ2NjIHJlLXVzZWQgdGhlIHBhcmFtZXRlcnMgb24gdGhlIHN0YWNrIGZvciBtdWx0aXBsZSBjYWxscyB0aG91Z2gKCSAgYW5kIHRoZSBjaGFuZ2VkIHBhcmFtZXRlcnMgd2VyZSB1c2VkIGZvciB0aGUgc2Vjb25kIGNhbGwgdGhlbi4KCSAgRml4ZXMgYnVnICM2MjMwMDMuCgoyMDEwLTA2LTI2IDE3OjQ4OjMxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4yOS4yIHByZS1yZWxlYXNlCgoyMDEwLTA2LTI2IDE3OjQ3OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTAtMDYtMjYgMTA6MTY6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvZXhhbXBsZXMveG1sLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL3htbC9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMveG1sL2NyZWF0ZXhtbC5jOgoJKiB0ZXN0cy9leGFtcGxlcy94bWwvcnVueG1sLmM6CgkgIGV4YW1wbGVzOiByZW1vdmUgeG1sIGV4YW1wbGUgYnVpbGQgc3lzdGVtIGJpdHMgYW5kIHB1cmdlIGZyb20gdHJlZQoJICBGaXhlcyBtYWtlIGRpc3RjaGVjay4KCjIwMTAtMDYtMjYgMDk6NTk6MzEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHhtbC5jOgoJICB4bWw6IGtlZXAgZHVtbXkgZ3N0X3htbF9nZXRfdHlwZSgpIGZ1bmN0aW9uIGZvciBnLWkgZXZlbiBpZiByZXN0IG9mIEdzdFhNTCBpcyByZW1vdmVkCgkgIEFkZCBhIG1pbmltYWwgZ3N0X3htbF9nZXRfdHlwZSgpIGZ1bmN0aW9uLCBzbyB0aGF0IGdvYmplY3QtaW50cm9zcGVjdGlvbiBkb2Vzbid0CgkgIGJyZWFrIHRoZSBjb21waWxhdGlvbiBpZiB3ZSdyZSBjb21waWxpbmcgd2l0aCBHU1RfUkVNT1ZFX0RFUFJFQ0FURUQgZGVmaW5lZCBvcgoJICAtLWRpc2FibGUtbG9hZHNhdmUgaGF2aW5nIGJlZW4gcGFzc2VkIHRvIGNvbmZpZ3VyZS4gVW50aWwgc29tZW9uZSBmaWd1cmVzIG91dAoJICBhIGJldHRlciB3YXkgYXQgbGVhc3QuCgoyMDEwLTA2LTI2IDAxOjAxOjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R4bWwuYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzoKCSAgRG9uJ3QgaW5jbHVkZSA8bGlieG1sL3BhcnNlci5oPiBmcm9tIHB1YmxpYyBoZWFkZXJzIGlmIEdTVF9ESVNBQkxFX0RFUFJFQ0FURUQgaXMgZGVmaW5lZAoJICBTaW5jZSBldmVyeXRoaW5nIEdzdFhNTCByZWxhdGVkIGhhcyBiZWVuIGRlcHJlY2F0ZWQsIHdlIGNhbiBub3cgc2tpcCB0aGUKCSAgbGlieG1sIGluY2x1ZGVzIGZyb20gdGhlIHB1YmxpYyBoZWFkZXJzIHdoZW4gR1NUX0RJU0FCTEVfREVQUkVDQVRFRCBpcwoJICBkZWZpbmVkLgoJICBTZWUgIzQ2MzQzNS4KCjIwMTAtMDYtMjYgMDA6MTg6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvdHlwZWZpbmQvdHlwZWZpbmQuYzoKCSAgZXhhbXBsZXM6IGFkZCBtaXNzaW5nIHN0ZGxpYi5oIGluY2x1ZGUgaW4gdHlwZWZpbmQgZXhhbXBsZQoKMjAxMC0wNi0yNSAyMToyMzoyMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZG90LWR1bXA6IHRlcm1pbmF0ZSB0cnVuY2F0ZWQgc3RyaW5ncyBhbmQgZXNjYXBlIHNwZWNpYWwgY2hhcnMKCSAgRml4ZXMgc3ludGF4IGVycm9ycyBpbiBnZW5lcmF0ZWQgZG90IGZpbGVzIGZvciBjYXBzIHdpdGggc3RyaW5ncy4KCjIwMTAtMDYtMjUgMTg6NTI6MDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBtb3JlIGRvY3VtZW50YXRpb24gcmVnYXJkaW5nIHRoZSBuZXcgZmxhZ3MKCjIwMTAtMDYtMjUgMTg6MTg6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogbWFrZSB0aGUgTk9USElORyBsaW5rIGNoZWNrIGZsYWcgYmUgMAoJICBNYWtlIHRoZSBwYWQgbGluayBjaGVjayBvZiBOT1RISU5HIGJlIDAuIFRoaXMgd2F5IHdlIGhhdmUgYSBmbGFnIGZvciBlYWNoCgkgIGZlYXR1cmUgYW5kIDAgd2hlbiBubyBmbGFncyBhcmUgc2V0LgoKMjAxMC0wNi0yNSAxODoyNDo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9ocHBhLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzMyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjNjQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9zcGFyYy5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJICB0ZXN0czogUmVtb3ZlIEdzdFhNTCB0ZXN0cwoKMjAxMC0wNi0yNSAxODoxMzo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R4bWwuYzoKCSogZ3N0L2dzdHhtbC5oOgoJKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3R4bWw6IERlcHJlY2F0ZSBHc3RYbWwgYW5kIHJlbGF0ZWQgZnVuY3Rpb25zCgkgIFBpcGVsaW5lIHNlcmlhbGlzYXRpb24gdG8gYW5kIGZyb20gWE1MIGlzIGhvcnJpYmx5IGJyb2tlbiBmb3IgYWxsCgkgIGJ1dCB0aGUgbW9zdCBzaW1wbGUgdXNlIGNhc2VzLCBhbmQgd2lsbCBsaWtlbHkgbmV2ZXIgYmUgZml4ZWQuCgkgIE1ha2Ugc3VyZSBldmVyeW9uZSBwbGF5aW5nIGFyb3VuZCB3aXRoIHRoZXNlIHRvb2xzIGlzIGF3YXJlIG9mCgkgIHRoaXMsIHRvIGF2b2lkIGZydXN0cmF0aW9uLiBTZWUgY291bnRsZXNzIGJ1ZyByZXBvcnRzIGluIGJ1Z3ppbGxhLgoJICBGaXhlcyBidWcgIzYyMjY4NS4KCjIwMTAtMDYtMjUgMTg6MTE6MzAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IEZpeCBidWlsZCB3aXRoIEdTVF9SRU1PVkVfREVQUkVDQVRFRAoKMjAxMC0wNi0yNCAxMjoxOToyMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwc25lZ28uYzoKCSAgYmVuY2htYXJrczogVXNlIGdzdF9lbGVtZW50X2xpbmtfcGFkc19mdWxsCgkgIFdlJ3JlIHRlc3RpbmcgY2FwcyBuZWdvdGlhdGlvbiwgbm90IHBhZCBsaW5raW5nLiBCcmluZ3MgdGhlIHN0YXJ0dXAKCSAgdGltZSBkb3duIDEwMCBmb2xkLgoKMjAxMC0wNi0yNCAxNzo1MzozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC14bWxsYXVuY2guMS5pbjoKCSAgdG9vbHM6IGRlcHJlY2F0ZSBnc3QteG1sbGF1bmNoIGFuZCBwcmludCBmYXQgd2FybmluZyBpZiBzb21lb25lIHRyaWVzIHRvIHVzZSBpdAoJICBQaXBlbGluZSBzZXJpYWxpc2F0aW9uIHRvIGFuZCBmcm9tIFhNTCBpcyBob3JyaWJseSBicm9rZW4gZm9yIGFsbAoJICBidXQgdGhlIG1vc3Qgc2ltcGxlIHVzZSBjYXNlcywgYW5kIHdpbGwgbGlrZWx5IG5ldmVyIGJlIGZpeGVkLgoJICBNYWtlIHN1cmUgZXZlcnlvbmUgcGxheWluZyBhcm91bmQgd2l0aCB0aGVzZSB0b29scyBpcyBhd2FyZSBvZgoJICB0aGlzLCB0byBhdm9pZCBmcnVzdHJhdGlvbi4gU2VlIGNvdW50bGVzcyBidWcgcmVwb3J0cyBpbiBidWd6aWxsYS4KCjIwMTAtMDYtMjQgMTc6MjI6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IHJlbmFtZSBuZXcgLS1uby1wbGF5IGNvbW1hbmQgbGluZSBvcHRpb24gdG8gLS1uby1zaWd1c3ItaGFuZGxlcgoJICAtLW5vLXBsYXkgc2VlbXMgYSBiaXQgY29uZnVzaW5nLgoJICBGaXhlcyAjNjIxODY3LgoKMjAxMC0wNi0yNCAxNTowNzoxMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA3M2ZmOTNhIHRvIGE1MTk1NzEKCjIwMTAtMDYtMjMgMTE6MDI6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmg6CgkgIGJpbmFyeXJlZ2lzdHJ5OiBpZ25vcmUgdGhlIHBsdWdpbiBjYWNoZSBpZiB0aGUgZmlsdGVyIGVudmlyb25tZW50IGhhcyBjaGFuZ2VkCgkgIE1ha2Ugc3VyZSB0aGF0IHdlIHByb3Blcmx5IHVwZGF0ZSB0aGUgcmVnaXN0cnkgYW5kIHRoZSBjYWNoZSBmaWxlIHdoZW5ldmVyCgkgIHRoZSBmaWx0ZXIgZW52aXJvbm1lbnQgY2hhbmdlcyBvciB0aGVyZSdzIG5vIG1vcmUgZmlsdGVyIHNldC4KCjIwMTAtMDUtMjcgMTI6MzY6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2lubG9hZGluZzogYWRkIHN1cHBvcnQgZm9yIHdoaXRlbGlzdGluZyBiYXNlZCBvbiBwbHVnaW4gb3Igc291cmNlIG1vZHVsZSBuYW1lIGFuZCBwYXRoCgkgIFRoaXMgZmVhdHVyZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIHVzZSBpbiBwbHVnaW4gbW9kdWxlcycgdW5pdCB0ZXN0cy4KCSAgQ29uc2lkZXIgdGhlIGZvbGxvd2luZyBzaXR1YXRpb246IGdzdC1wbHVnaW5zLWdvb2QgaXMgYnVpbHQgYWdhaW5zdCBhbgoJICBpbnN0YWxsZWQgR1N0cmVhbWVyIGNvcmUuIEFuIG9sZGVyIHZlcnNpb24gb2YgZ3N0LXBsdWdpbnMtZ29vZCBpcyBhbHNvCgkgIGluc3RhbGxlZCBpbiB0aGF0IHByZWZpeCwgYWxvbmcgd2l0aCByYW5kb20gb3RoZXIgcGx1Z2luIG1vZHVsZXMuIE5vdywKCSAgd2hlbiBkb2luZyAnbWFrZSBjaGVjaycgaW4gdGhlIGp1c3QtYnVpbHQgZ3N0LXBsdWdpbnMtZ29vZCB0cmVlLCB3ZQoJICB3YW50IHRvIG9ubHkgbG9hZCBwbHVnaW5zIGZyb20gR1N0cmVhbWVyIGNvcmUsIGdzdC1wbHVnaW5zLWJhc2UsIGFuZAoJICBnc3QtcGx1Z2lucy1nb29kLCBidXQgbm90IHJhbmRvbSBvdGhlciBtb2R1bGVzICh3ZSBkb24ndCB3YW50IGFueSB1bml0CgkgIHRlc3RzIHRvIGZhaWwganVzdCBiZWNhdXNlIHNvbWUgbW9kdWxlIGluIGdzdC1wbHVnaW5zLWJhZCBoYXMgYSBicm9rZW4KCSAgcGx1Z2luX2luaXQsIGZvciBleGFtcGxlKS4gQWxzbywgd2Ugd2FudCB0byBvbmx5IGxvYWQgZ3N0LXBsdWdpbnMtZ29vZAoJICBtb2R1bGVzIGZyb20gdGhlIGxvY2FsbHktYnVpbHQgc291cmNlIHRyZWUsIGJ1dCBub3QgYW55IG9mIHRoZSBvbGRlcgoJICBnc3QtcGx1Z2lucy1nb29kIG1vZHVsZXMgaW5zdGFsbGVkLiBUaGlzIGlzIHVzdWFsbHkgYXNzdXJlZCBieSBsb2FkaW5nCgkgIHRoZSBvbmVzIGluIHRoZSBzb3VyY2UgdHJlZSBmaXJzdCAoYnkgYWRkaW5nIHRoYXQgcGF0aCBmaXJzdCB0byB0aGUKCSAgcmlnaHQgZW52aXJvbm1lbnQgdmFyaWFibGVzKSwgYnV0IGl0IGdldHMgdHJpY2t5IHdoZW4gcGx1Z2lucyBhcmUKCSAgbW92ZWQsIHJlbW92ZWQsIG1lcmdlZCwgb3IgcmVuYW1lZCwgb3IgdGhlIHBsdWdpbiBmaWxlbmFtZSBjaGFuZ2VzLgoJICBOb3RlIHRoYXQgJ21ha2UgY2hlY2snIHNob3VsZCByZWFsbHkgd29yayByaWdodCB3aXRob3V0IGRvaW5nCgkgICdtYWtlIGluc3RhbGwnIG9yIHVuaW5zdGFsbGluZyB0aGUgb2xkIGdzdC1wbHVnaW5zLWdvb2QgcGFja2FnZSAob3IKCSAgYW55IG90aGVyIGdzdC1wbHVnaW5zLWZvbyBwYWNrYWdlKSBmaXJzdC4KCSAgRW50ZXIgR1NUX1BMVUdJTl9MT0FESU5HX1dISVRFTElTVC4gVGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZSBtYXkKCSAgY29udGFpbiBzb3VyY2UtcGFja2FnZUBwYXRoLXByZWZpeCBwYWlycyBzZXBhcmF0ZWQgYnkgdGhlIHBsYXRmb3JtCgkgIHNlYXJjaCBwYXRoIHNlcGFyYXRvciAoR19TRUFSQ0hQQVRIX1NFUEFSQVRPUl9TKS4gVGhlIHNvdXJjZSBwYWNrYWdlCgkgIGFuZCBwYXRoIHByZWZpeCBhcmUgc2VwYXJhdGVkIGJ5IHRoZSAnQCcgY2hhcmFjdGVyLiBUaGUgcGF0aCBwcmVmaXggaXMKCSAgZW50aXJlbHkgb3B0aW9uYWwsIGFzIGlzIHRoZSAnQCcgc2VwYXJhdG9yIGlmIG5vIHBhdGggaXMgZ2l2ZW4uCgkgIEl0IGlzIGFsc28gcG9zc2libGUgdG8gZmlsdGVyIGJhc2VkIG9uIHBsdWdpbiBuYW1lcyBpbnN0ZWFkIG9mIHRoZSBuYW1lCgkgIG9mIHRoZSBzb3VyY2UtcGFja2FnZSBieSBzcGVjaWZ5aW5nIG9uZSBvciBtb3JlIHBsdWdpbiBuYW1lcyBzZXBhcmF0ZWQKCSAgYnkgY29tbWFzIGJlZm9yZSB0aGUgb3B0aW9uYWwgcGF0aCBwcmVmaXguCgkgIEluIHNob3J0LCB0aGUgZm9sbG93aW5nIG1hdGNoIHBhdHRlcm5zIGFyZSBwb3NzaWJsZToKCSAgcGx1Z2luMSxwbHVnaW4yQHBhdGhwcmVmaXggb3IKCSAgcGx1Z2luMSxwbHVnaW4yQCogb3IganVzdAoJICBwbHVnaW4xLHBsdWdpbjIgb3IKCSAgc291cmNlLXBhY2thZ2VAcGF0aHByZWZpeCBvcgoJICBzb3VyY2UtcGFja2FnZUAqIG9yIGp1c3QKCSAgc291cmNlLXBhY2thZ2UKCSAgU28gZm9yIG91ciBnc3QtcGx1Z2lucy1nb29kIHVuaXQgdGVzdCBleGFtcGxlIGFib3ZlLCB3ZSAgd291bGQgc2V0IHRoZQoJICBlbnZpcm9ubWVudCB2YXJpYWJsZSBvbiAqbml4IHRvIHNvbWV0aGluZyBsaWtlIHRoaXMgKHdpbGwgbGlrZWx5IGJlIGEKCSAgcmVsYXRpdmUgcGF0aCBpbiBwcmFjdGljZSk6CgkgIGdzdHJlYW1lcjpnc3QtcGx1Z2lucy1iYXNlOmdzdC1wbHVnaW5zLWdvb2RAL3BhdGgvdG8vc3JjL2dzdC1wbHVnaW5zLWdvb2QKCSAgRml4ZXMgIzYxOTgxNSBhbmQgIzYxOTcxNy4KCjIwMTAtMDYtMjMgMTc6MjQ6MDcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ3N0Z2hvc3RwYWQ6IFdlIGRvbid0IG5lZWQgYW55IGNoZWNrcyB3aGVuIGxpbmtpbmcgdGFyZ2V0IHBhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIyNTA0CgoyMDEwLTA2LTIzIDE3OjAwOjE3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0dXRpbHM6IE5ldyBnc3RfZWxlbWVudF9saW5rX3BhZHNfZnVsbCBtZXRob2QKCSAgTGlua3MgdGhlIGVsZW1lbnRzIHdpdGggdGhlIHNwZWNpZmllZCBwYWQgbGlua2luZyBjaGVja3MuCgkgIEFQSTpnc3RfZWxlbWVudF9saW5rX3BhZHNfZnVsbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIyNTA0CgoyMDEwLTA2LTIzIDE2OjQ1OjE5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEdzdFBhZDogQWRkIG5ldyBwYWQgbGlua2luZyBtZXRob2Qgd2l0aCBjb25maWd1cmFibGUgY2hlY2tzLgoJICBUbyBiZSB1c2VkIGZvciBjYXNlcyB3aGVyZSB3ZSBkb24ndCBuZWVkIGFsbCBjaGVja3MgdG8gYmUgdmFsaWRhdGVkLgoJICBBUEk6IGdzdF9wYWRfbGlua19mdWxsCgkgIEFQSTogR3N0UGFkTGlua0NoZWNrCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjI1MDQKCjIwMTAtMDYtMTUgMTg6MjY6MDEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnOiBBZGRzIEdTVF9UQUdfSU1BR0VfT1JJRU5UQVRJT04gdGFnCgkgIEFkZHMgYSBuZXcgdGFnIHRvIGluZm9ybSBhYm91dCB0aGUgaW1hZ2Ugb3JpZW50YXRpb24gYW5kIGhvdwoJICB0byByb3RhdGUgYW5kIGZsaXAgaXQgYmVmb3JlIGRpc3BsYXkuCgkgIE5vdGUgdGhhdCB0aGlzIHRhZyBpcyBhIHN0cmluZyB3aXRoIGEgcHJlZGVmaW5lZCBzZXQgb2YKCSAgcG9zc2libGUgdmFsdWVzLgoJICBBUEk6IEdTVF9UQUdfSU1BR0VfT1JJRU5UQVRJT04KCSAgRml4ZXMgIzYxOTUwOAoKMjAxMC0wNi0yMiAxODo1MzoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSAgZ3N0b2JqZWN0OiBkZXByZWNhdGUgZ3N0X29iamVjdF97c2V0fGdldH1fbmFtZV9wcmVmaXgoKQoJICBUaGUgbmFtZSBwcmVmaXggc3R1ZmYgaGFzIG5ldmVyIGJlZW4gdXNlZCBmb3IgYW55dGhpbmcgYW5kIGl0IGRvZXNuJ3QKCSAgbG9vayBsaWtlIHdlJ2xsIGV2ZXIgd2FudCB0byB1c2UgaXQgZm9yIGFueXRoaW5nLgoJICBGaXhlcyAjNjIxMDA2LgoKMjAxMC0wNi0yMiAxMDoyMDo1MyAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIEFkZCBnb2JqZWN0LWludHJvc3BlY3Rpb24gYW5ub3RhdGlvbnMgZm9yIEdzdFBhZEludExpbmtGdW5jdGlvbgoJICBGaXhlcyBidWlsZCB3aXRoIGxhdGVzdCBnb2JqZWN0LWludHJvc3BlY3Rpb24gZnJvbSBnaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjIwMjUKCjIwMTAtMDYtMjEgMTE6NDE6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBtZXJnaW5nIG9mIHJhbmdlcwoJICBXaGVuIHdlIG1lcmdlIHR3byByYW5nZXMsIGRvbid0IHVwZGF0YSB0aGUgY3VycmVudCByYW5nZSB3cml0aW5nX3BvcyB3aXRoCgkgIHdoZXJlZXZlciB3ZSB3ZXJlIHdyaXRpbmcgZWFybGllciBpbiB0aGUgbWVyZ2VkIHJhbmdlLiAgU3BvdHRlZCBieSBiaWxib2VkLgoKMjAxMC0wNi0xOSAxMToxOTozNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IGFsc28gc2tpcCAuZGVwcyBkaXJzIHdoZW4gc2Nhbm5pbmcgZm9yIHBsdWdpbnMKCSAgTm8gbmVlZCB0byBkZXNjZW5kIGludG8gLmRlcHMgZGlycyBpbiB1bmluc3RhbGxlZCBzZXR1cHMsIHdlIGtub3cKCSAgdGhlc2UgZG9uJ3QgY29udGFpbiBhbnkgcGx1Z2lucy4KCjIwMTAtMDYtMTcgMTE6Mzk6MDQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRhZ2xpc3Q6IGFkZCBnc3RfdGFnX2xpc3RfcGVla19zdHJpbmdfaW5kZXggdG8gYXZvaWQgYSBjb3B5CgkgIEFkZHMgYSB2YXJpYXRpb24gb2YgdGhlIF9nZXRfc3RyaW5nX2luZGV4IGZ1bmN0aW9uIHRoYXQgZG9lc24ndCBjb3B5CgkgIHRoZSBzdHJpbmcuCgkgIEFQSTogZ3N0X3RhZ19saXN0X3BlZWtfc3RyaW5nX2luZGV4CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjE4OTYKCjIwMTAtMDYtMTggMTI6MDA6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IG1ha2Ugc3VyZSBidWZmZXJzJyBtZXRhZGF0YSBpcyB3cml0YWJsZSBiZWZvcmUgc2V0dGluZyBjYXBzIG9uIHRoZW0KCSAgRml4ZXMgd2FybmluZ3Mgd2hlbiB1c2luZyBwbGF5YmluMiB3aXRoIGR2YjovLyBzdHJlYW1zLCB3aGVyZSB0eXBlZmluZAoJICBjb21lcyBhZnRlciBtcGVndHNwYXJzZS4KCjIwMTAtMDYtMTcgMTU6NTI6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkgIGRvY3M6IHVwZGF0ZSBpbnRyb3NwZWN0ZWQgcGx1Z2luIGRvY3MgZm9yIGdzdGRvYy1zY2Fub2JqIGNoYW5nZXMKCSAgVXBkYXRlIGNvbW1vbiBmb3IgbGF0ZXN0IGdzdGRvYy1zY2Fub2JqIGFuZCBpbnNwZWN0IHhtbCBmaWxlcyBmb3IKCSAgZXNjYXBpbmcgYW5kIHBhZCB0ZW1wbGF0ZSBvcmRlciBjaGFuZ2VzLgoKMjAxMC0wNi0xNyAxMzoxOToyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBJbml0aWFsaXplIGppdHRlciB0byBwcmV2ZW50IHByaW50aW5nIGFuIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgaWYgd2FpdGluZyBmb3IgdGhlIGNsb2NrIGZhaWxlZAoKMjAxMC0wNi0xNyAxMDozNDo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIG5ldyBzdHJpbmdzCgoyMDEwLTA2LTE3IDA5OjMzOjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2ludHJvLWJhc2ljcy54bWw6CgkgIG1hbnVhbDogZml4IGFub3RoZXIgdHlwbyBhbmQgc29tZSBpbmFjY3VyYWNpZXMKCSAgRml4IGEgd3Jvbmcgc3RhdGVtZW50IGFuZCBmbGVzaCBvdXQgc2VjdGlvbiBvbiBtZXNzYWdlcyBhbmQgcXVlcmllcwoJICBhIGJpdC4KCjIwMTAtMDYtMTcgMDk6MDU6NTggKzAyMDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBkb2NzL21hbnVhbC9pbnRyby1iYXNpY3MueG1sOgoJICBtYW51YWw6IEZpeCBhbm90aGVyIHR5cG8KCjIwMTAtMDYtMTcgMDk6MDU6MjggKzAyMDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBkb2NzL21hbnVhbC9pbnRyby1iYXNpY3MueG1sOgoJICBtYW51YWw6IEZpeCB0eXBvCgoyMDEwLTA2LTE2IDEzOjExOjA2IC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogQWRkIGFuIGFsbG93LW5vbmUgYW5ub3RhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIxNzczCgoyMDEwLTA2LTE2IDEzOjEwOjI2IC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIG1pbmlvYmplY3Q6IEFkZCBpbnRyb3NwZWN0aW9uIGFubm90YXRpb25zCgkgIFRoZXNlIGFyZSByZXF1aXJlZCB0byBrbm93IGhvdyB0byB1bnJlZi9yZWYgYW5kCgkgIGNvbnZlcnQgdG8vZnJvbSBhIEdWYWx1ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMTc3MwoKMjAxMC0wNi0xNiAxMzoxMDoxMyAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IEFkZCBvdXQgYW5ub3RhdGlvbnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMTc3MwoKMjAxMC0wNi0xNiAxMzoxMDowNiAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IEFkZCBvdXQgYW5ub3RhdGlvbnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMTc3MwoKMjAxMC0wNi0xNiAxMzowOTo1NyAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBBZGQgb3V0IGFubm90YXRpb25zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjE3NzMKCjIwMTAtMDYtMTYgMTM6MDA6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICBmZHNpbms6IG1ha2Ugc3luYyBwcm9wZXJ0eSB3b3JrIGNvcnJlY3RseQoJICBEb24ndCBvdmVycmlkZSB0aGUgZGVmYXVsdCBnZXRfdGltZXMgdm1ldGhvZCBzbyB0aGF0IHdlIGNhbiB1c2UgdGhlIHN5bmMKCSAgcHJvcGVydHkuCgkgIFNldCB0aGUgZGVmYXVsdCBzeW5jIHByb3BlcnR5IHRvIEZBTFNFLiBJdCB1c2VkIHRvIGJlIHNldCB0byBUUlVFIGJ1dCBiZWNhdXNlCgkgIHRoZSBnZXRfdGltZXMgd2FzIE5VTEwsIGl0IGFsd2F5cyBiZWhhdmVkIGxpa2UgRkFMU0UuCgkgIEZpeGVzICM2MjE1MzAKCjIwMTAtMDYtMTUgMTg6NDg6NTMgKzAyMDAgIEJlbmphbWluIEdhaWduYXJkIDxiZW5qYW1pbi5nYWlnbmFyZEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OiBJbXByb3ZlIGdzdF9lbGVtZW50X2dldF9uYW1lKCkgZG9jcwoJICBGaXhlcyBidWcgIzYyMTY2MC4KCjIwMTAtMDYtMTUgMTY6NDk6MDQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDkzMzljY2MgdG8gMzU2MTdjMgoKMjAxMC0wNi0xNSAxNjo1MzozNSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA1YWRiMWNhIHRvIDkzMzljY2MKCjIwMTAtMDYtMTUgMTY6MzQ6MzcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNTdjODliNyB0byA1YWRiMWNhCgoyMDEwLTA2LTE1IDE1OjMxOjEyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGM4MDQ5ODggdG8gNTdjODliNwoKMjAxMC0wNi0xNSAxMTo0ODoyNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgUmV2ZXJ0ICJHc3RQYWQ6IEFkZCBHU1RfUEFEX05FR09USUFCTEUgR3N0UGFkRmxhZyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBkYzM4ZTc1ZDg4YmQ4OTIxODk1ODIxZjdhZmVkMDFjYWIzMGU0NmM5LgoJICBib29tCgoyMDEwLTA2LTE1IDExOjQ4OjE3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgUmV2ZXJ0ICJnc3RwYWQ6IFJldHVybiBwYWQgdGVtcGxhdGUgaW4gZ2V0X2NhcHMgaWYgcGFkIGlzIG5vdCBuZWdvdGlhYmxlIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDc0NjAzMjFhNjAwNDM4OTY2ZDcxNTJhYjJiNDMxOGJlNDhlYWRjZTAuCgkgIGNyYWNrCgoyMDEwLTA2LTE1IDExOjQ4OjA3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBSZXZlcnQgInBhZDogZml4IGNvbW1lbnQiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOGU5MmNiNGE3ZDU2Y2RmYTQ2NzQzMTVjNjRiNThjMWIxYjlkODIwOC4KCSAgd2hhdGV2ZXIuLi4KCjIwMTAtMDYtMTUgMTE6NDc6NTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBSZXZlcnQgImVsZW1lbnQ6IG9ubHkgY2xlYXIgbmVnb3RpYWJsZSB3aGVuIGdvaW5nIHRvIE5VTEwiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOGY1ZWMxZjczN2MzYjM3NTM4YjIzMDdhZWYxNjBkOWQyMWYxYzQyMi4KCSAgYmxlZWVlaAoKMjAxMC0wNi0xNSAxMDo0NjowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiBhZGQgZHVtbXkgVFJBQ0UgbG9nIGxldmVsIG1hY3JvcyBmb3Igd2hlbiBkZWJ1Z2dpbmcgaXMgZGlzYWJsZWQKCSAgRm9yZ290IHRob3NlIHdoZW4gYWRkaW5nIHRoZSBvcmlnaW5hbCBBUEksIGp1c3QgbGlrZSB0aGUgQVBJIG1hcmtlcnMKCSAgaW4gdGhlIGNvbW1pdCBtZXNzYWdlOgoJICBBUEk6IEdTVF9UUkFDRQoJICBBUEk6IEdTVF9UUkFDRV9PQkpFQ1QKCSAgQVBJOiBHU1RfQ0FUX1RSQUNFCgkgIEFQSTogR1NUX0NBVF9UUkFDRV9PQkpFQ1QKCSAgQVBJOiBHU1RfTEVWRUxfVFJBQ0UKCSAgRml4ZXMgY29tcGlsYXRpb24gd2l0aCAtLWRpc2FibGUtZ3N0LWRlYnVnCgoyMDEwLTA2LTE1IDAxOjE1OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogcHJpbnQgbW9yZSBlcnJvcnMgdG8gc3RkZXJyIGFuZCBzdXBwcmVzcyBtb3JlIG91dHB1dCBpbiBxdWlldCBtb2RlCgkgIElmIC0tcXVpZXQgaXMgZ2l2ZW4sIGRvbid0IHByaW50IGFueXRoaW5nIGJ1dCBlcnJvcnMuIEFsc28sIG1ha2UKCSAgc3VyZSBlcnJvcnMgYXJlIGFsd2F5cyBwcmludGVkIHRvIHN0ZGVyciBhbmQgbm90IHRvIHN0ZG91dC4KCSAgRml4ZXMgIzYyMTU5NS4KCjIwMTAtMDYtMTQgMTg6MDc6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBvbmx5IGNsZWFyIG5lZ290aWFibGUgd2hlbiBnb2luZyB0byBOVUxMCgkgIERvbid0IGNsZWFyIHRoZSBuZWdvdGlhYmxlIGZsYWcgd2hlbiBnb2luZyB0byBSRUFEWSBiZWNhdXNlIHRoZW4gaXQgd2lsbCBuZXZlcgoJICBiZSBzZXQgdG8gVFJVRSBhZ2Fpbi4KCjIwMTAtMDYtMTQgMTc6MzM6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IGNvbW1lbnQKCjIwMTAtMDUtMTcgMTU6MDY6MzcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBnc3RwYWQ6IFJldHVybiBwYWQgdGVtcGxhdGUgaW4gZ2V0X2NhcHMgaWYgcGFkIGlzIG5vdCBuZWdvdGlhYmxlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTg2NDQKCjIwMTAtMDUtMTcgMTU6MDQ6NDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEdzdFBhZDogQWRkIEdTVF9QQURfTkVHT1RJQUJMRSBHc3RQYWRGbGFnCgkgIEEgcGFkIGlzICduZWdvdGlhYmxlJyB3aGVuIGl0cyBjb250YWluZXIgZWxlbWVudCBpcyBpbiBhIHN0YXRlIGdyZWF0ZXIKCSAgdGhhbiBHU1RfU1RBVEVfUkVBRFkKCSAgQVBJOmdzdF9wYWRfaXNfbmVnb3RpYWJsZQoJICBBUEk6Z3N0X3BhZF9zZXRfbmVnb3RpYWJsZQoJICBBUEk6R1NUX1BBRF9ORUdPVElBQkxFCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTg2NDQKCjIwMTAtMDYtMTQgMTY6NTE6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIGZha2VzaW5rOiB1c2UgbWV0aG9kIHRvIHNldCBzeW5jIHByb3BlcnR5CgkgIFVzZSB0aGUgYmFzZXNpbmsgbWV0aG9kIHRvIGNvbmZpZ3VyZSB0aGUgc3luYyBwcm9wZXJ0eSBpbnN0ZWFkIG9mIHBva2luZyB0aGUKCSAgcGFyZW50IHN0cnVjdHVyZS4KCjIwMTAtMDYtMTQgMTY6NTA6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGZpbGVzaW5rOiB1c2UgdGhlIGRlZmF1bHQgZ2V0X3RpbWVzIGZ1bmN0aW9uCgkgIFVzZSB0aGUgZGVmYXVsdCBnZXRfdGltZXMgZnVuY3Rpb24gb2YgYmFzZXNpbmsgc28gdGhhdCB3ZSBob25vdXIgdGhlIHN5bmMKCSAgcHJvcGVydHkgaW5zdGVhZCBvZiBuZXZlciBzeW5jaHJvbml6aW5nIHRvIHRoZSBjbG9jay4KCSAgRml4ZXMgIzYyMTUzMAoKMjAxMC0wNi0xNCAxNjoyMDoxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiByZWV2YWx1YXRlIHByb3h5X2FsbG9jIHdoZW4gcmVjb25maWd1cmVkCgkgIFdoZW4gd2UgcmVjb25maWd1cmUgdGhlIHRyYW5zZm9ybSBlbGVtZW50LCBtYWtlIHN1cmUgd2UgcmVldmFsdWF0ZSB0aGUgcHJveHlpbmcKCSAgb2YgYnVmZmVyX2FsbG9jIHRoZSBuZXh0IHRpbWUgYXJvdW5kLgoJICBGaXhlcyAjNjIxMzMyCgoyMDEwLTA2LTE0IDE1OjM5OjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9jYXBzbGlzdC5oOgoJICBjYXBzOiBEb24ndCB1c2UgaW52YWxpZCBmcmFjdGlvbiByYW5nZSBpbiB0aGUgdW5pdCB0ZXN0CgoyMDEwLTA2LTE0IDE1OjMwOjA4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogQWRkIHNvbWUgbW9yZSBhc3NlcnRpb25zIGFuZCBjaGVja3MgZm9yIHZhbGlkIGlucHV0IHBhcmFtZXRlcnMKCjIwMTAtMDUtMjcgMTU6MTM6MTggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IG9wdGltaXplIHByb2dyZXNzaXZlIG1hc2tlZF9zY2FuCgkgIFJldGFpbiB0aGUgbGFzdCBzY2FubmVkIGJ1ZmZlciBlbnRyeSBhbmQgb2Zmc2V0LCBzbyB3ZSBjYW4gcmVzdW1lIGJ1ZmZlcgoJICBzY2FubmluZyB0aGVyZSBpbiBjYXNlIG9mIGEgdHlwaWNhbCBwcm9ncmVzc2l2ZSBzY2FuLgoJICBBbHNvIHBvdGVudGlhbGx5IG9wdGltaXplIF9jb3B5IHN1YnNlcXVlbnRseSBvY2N1cnJpbmcgaW4gdGhhdCBhcmVhLgoKMjAxMC0wNS0yNyAxMjoxNToyMiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYWRhcHRlcjogYWRkIGV4dGVuZGVkIG1hc2tlZF9zY2FuX3VpbnQzMl9wZWVrIHRoYXQgYWxzbyBwcm92aWRlcyBtYXRjaGluZyB2YWx1ZQoJICBBbHNvIGFkZCB0byAuZGVmIGFuZCBkb2NzLgoJICBGaXhlcyAjNjE5ODI4LgoJICBBUEk6IGdzdF9hZGFwdGVyX21hc2tlZF9zY2FuX3VpbnQzMl9wZWVrCgoyMDEwLTA2LTE0IDEzOjM4OjQxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBmaXggLmRlZiBmaWxlCgoyMDEwLTA2LTE0IDEyOjI1OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGRvY3M6IGFkZCBTaW5jZTogdGFnIGZvciBuZXcgZ3N0X2NhcHNfc3RlYWxfc3RydWN0dXJlCgoyMDEwLTA2LTExIDE1OjM2OjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGRvY3M6IGZpeCBleGFtcGxlIHRvIHVzZSBhIGNhdGVnb3J5IG5hbWUgdGhhdCBhY3R1YWxseSBleGlzdHMKCjIwMTAtMDYtMTQgMTE6Mzk6NDAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0Y2FwczogTmV3IGdzdF9jYXBzX3N0ZWFsX3N0cnVjdHVyZSgpIG1ldGhvZAoJICBUaGlzIGFsbG93cyByZW1vdmluZyBzdHJ1Y3R1cmVzIGZyb20gY2FwcyB3aXRob3V0IHRoZW0gYmVpbmcgZnJlZWQuIEhlbHBmdWwgd2hlbgoJICBwbHVnaW5zIG5lZWQgdG8gbW92ZSBhcm91bmQgc3RydWN0dXJlcyB3aXRob3V0IGhhdmluZyB0byBkbyBhbiBleHBlbnNpdmUgc3RydWN0dXJlCgkgIGNvcHkuCgkgIEFQSTpnc3RfY2Fwc19zdGVhbF9zdHJ1Y3R1cmUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMTUyNwoKMjAxMC0wNi0xNCAxMzoxMDowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogRG9uJ3QgYWRkIEdfVEhSRUFEU19NQU5EQVRPUlkgdG8gR1NUX0FMTF9DRkxBR1MKCSAgSXQncyBhbHJlYWR5IGluY2x1ZGVkIGluIEdMSUJfRVhUUkFfQ0ZMQUdTCgoyMDEwLTA2LTE0IDEzOjA3OjMzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiB1c2UgR0xJQl9FWFRSQV9DRkxBR1MKCjIwMTAtMDYtMTQgMTM6MDI6MDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA3YTBmZGY1IHRvIGM4MDQ5ODgKCjIwMTAtMDYtMTQgMTM6MDE6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogZml4IHByaW50ZiBmb3JtYXQKCjIwMTAtMDYtMTQgMTI6Mzk6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogaW1wbGVtZW50IGN1c3RvbSBhY2NlcHRfY2FwcyBtZXRob2QKCSAgSW1wbGVtZW50IGEgY3VzdG9tIGFjY2VwdGNhcHMgZnVuY3Rpb24uIFdlIGNhbiBzaW1wbHkgY2hlY2sgaWYgdGhlcmUgaXMgYW4KCSAgaW50ZXJzZWN0aW9uIHdpdGggdGhlIG5ldyBjYXBzLiBUaGlzIG1ha2VzIHRoZSBhY2NlcHQgY2FwcyBmdW5jdGlvbiBtdWNoIGZhc3Rlci4KCSAgU2VlICM2MjExOTAKCjIwMTAtMDYtMTQgMTI6MzY6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IGFkZCBhY2NlcHRfY2FwcyB2bWV0aG9kCgkgIEFsbG93IHN1YmNsYXNzZXMgdG8gb3ZlcnJpZGUgdGhlIGFjY2VwdGNhcHMgZnVuY3Rpb24gYmVjYXVzZSBpbiBzb21lIGNhc2VzIGEKCSAgY3VzdG9tIGltcGxlbWVudGF0aW9uIGNhbiBiZSBtdWNoIG11Y2ggZmFzdGVyIHRoYW4gdGhlIGRlZmF1bHQgb25lLgoJICBTZWUgIzYyMTE5MAoKMjAxMC0wNi0xNCAxMTozMDoyMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDZkYTNiYWIgdG8gN2EwZmRmNQoKMjAxMC0wNi0xMSAxODo0OTowMiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IFJlbW92ZSB0cmFuc2Zvcm1fc2l6ZQoJICBHc3RCYXNlVHJhbnNmb3JtIG5vdyBhc3N1bWVzIHRoYXQgdGhlIHNpemUgaXMgdGhlIHNhbWUgaWYgdGhlcmUgaXMgbm90CgkgIHRyYW5zZm9ybV9zaXplLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIxMzM0CgoyMDEwLTA2LTExIDE4OjQ2OjMwIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogQXNzdW1lIHNpemUgaXMgdGhlIHNhbWUgaWYgbm8gdHJhbnNmb3JtX3NpemUvZ2V0X3VuaXRfc2l6ZQoJICBTdWJjbGFzc2VzIHRoYXQgZG9uJ3QgaW1wbGVtZW4gdHJhbnNmb3JtX3NpemUgc2hvdWxkIGJlIGFzc3VtZWQgdG8gcHJvZHVjZSBvdXRwdXQKCSAgYnVmZmVycyBvZiB0aGUgc2FtZSBzaXplLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIxMzM0CgoyMDEwLTA2LTE0IDA4OjE4OjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogRG9uJ3QgaW5pdGlhbGl6ZSBhcnJheXMgZnJvbSB2YXJpYWJsZXMKCjIwMTAtMDYtMTQgMDg6MTE6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogU3RvcmUgcmVzdWx0IG9mIHN0cnRvbCBpbiBhbiB1bnVzZWQgdmFyaWFibGUgdG8gcmVhbGx5IGZpeCBhIGNvbXBpbGVyIHdhcm5pbmcuLi4KCjIwMTAtMDYtMTMgMjA6NTI6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogQ2FzdCByZXR1cm4gdmFsdWUgdG8gdm9pZCB0byBwcmV2ZW50IGNvbXBpbGVyIHdhcm5pbmcKCjIwMTAtMDYtMTMgMTg6MTI6NDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9ydHBvb2wtdGVzdC5jOgoJICBydHBvb2wtdGVzdDogUHJldmVudCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UKCjIwMTAtMDYtMTMgMTg6MDU6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogTWFrZSBzdXJlIHdlIGhhdmUgYSB2YWxpZCBvYmplY3QgdG8gcmVuZGVyIGluIF9yZW5kZXJfb2JqZWN0KCkKCjIwMTAtMDYtMTMgMTg6MDA6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBBZGQgc29tZSBhc3NlcnRpb24gZ3VhcmRzIGFnYWluc3QgaW52YWxpZCBwYXJhbWV0ZXJzIHRvIHB1YmxpYyBBUEkKCjIwMTAtMDYtMTMgMTc6MDg6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIFJlbW92ZSBzb21lIGRlYWQgYXNzaWdubWVudHMKCjIwMTAtMDYtMTMgMTc6MDY6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RidWZmZXJzdHJlc3MuYzoKCSAgYnVmZmVyc3RyZXNzOiBDaGVjayBpZiB0aGUgbnVtYmVyIG9mIHRocmVhZHMgYW5kIGJ1ZmZlcnMgbWFrZXMgc2Vuc2UKCjIwMTAtMDYtMTMgMTc6MDM6NTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOgoJICByZWFkLW1ldGFkYXRhOiBTdG9wIGlmIHNldHRpbmcgdGhlIHBpcGVsaW5lIHN0YXRlIGJhY2sgdG8gTlVMTCBmYWlscwoKMjAxMC0wNi0xMyAxNjo1OTo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbXBsZXhpdHkuYzoKCSAgY29tcGxleGl0eTogUmVtb3ZlIGRlYWQgYXNzaWdubWVudHMgYW5kIHVudXNlZCB2YXJpYWJsZXMKCjIwMTAtMDYtMTMgMTY6MzE6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBEb24ndCBpZ25vcmUgZmFpbHVyZSB0byBvcGVuIHRoZSB0ZW1wb3JhcnkgZmlsZSBsb2NhdGlvbgoJICBBbmQgaW1tZWRpYXRlbHkgbGVhdmUgdGhlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbiBvbiBmYWlsdXJlcy4KCjIwMTAtMDYtMTMgMTY6Mjc6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEZpeCBpdGVyYXRvciBhZ2dyZWdhdGlvbiBvZiBhbGwgcGFkcyBpbiB0aGUgaW50ZXJuYWwgbGlua3MgZmFsbGJhY2sKCSAgZ19saXN0X3ByZXBlbmQoKSByZXR1cm5zIHRoZSBuZXcgaGVhZCBvZiB0aGUgbGlzdCBhbmQgbm90CgkgIHVzaW5nIHRoaXMgd2lsbCBjcmVhdGUgYSBtZW1vcnkgbGVhayBhbmQgYSBzaW5nbGUtZWxlbWVudCBsaXN0LgoKMjAxMC0wNi0xMyAxNToyNToyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IEFkZCBuZXcgRklYTUUgZm9yIDAuMTEgYW5kIHVwZGF0ZSBnc3RfaXRlcmF0b3JfZmluZF9jdXN0b20gZG9jcwoJICBUaGUgY29tcGFyZSBmdW5jdGlvbiBzaG91bGQgb25seSB1bnJlZiB0aGUgZWxlbWVudCBpZiBpdCdzCgkgIG5vdCB0aGUgbWF0Y2hpbmcgZWxlbWVudC4KCSAgQWxzbyB0aGUgRklYTUUgaW4gX2ZvbGQoKSBpcyBub3QgcmVsZXZhbnQgYmVjYXVzZSB0aGUgcmVmL3VucmVmCgkgIGhhcHBlbnMgaW4gdGhlIGZvbGQgZnVuY3Rpb24uCgoyMDEwLTA2LTEzIDExOjI0OjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogSWYgdGhlIGl0ZXJhdG9yIHJlc3luYyBpbiBmaW5kX2N1c3RvbSgpIGp1c3QgcmV0cnkKCjIwMTAtMDYtMTIgMDg6MjU6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA3MzNmY2E5IHRvIDZkYTNiYWIKCjIwMTAtMDYtMTIgMDg6MDQ6NDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBBZGQgdGVzdCBmb3IgZGVzZXJpYWxpemluZyBmb3VyY2NzCgoyMDEwLTA2LTExIDIyOjU2OjEzICswMDAwICBNYXJ0aW4gQmlzc29uIDxtYXJ0aW4uYmlzc29uQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IEZpeGVkIHNlcmlhbGl6YXRpb24gZm9yIHNob3J0IGZvdXJjY3MuCgkgICJZMTYgIiBhbmQgIlk4ICAiIHdlcmUgbm90IGRpc3BsYXllZCBwcm9wZXJseSBiZWNhdXNlIHRoZSBzcGFjZQoJICBjaGFyYWN0ZXIgaXMgbm90IGFsbnVtLiAgQSB1bml0IHRlc3QgaXMgYWxzbyBpbmNsdWRlZC4KCSAgRml4ZXMgYnVnICM2MjEyODIuCgoyMDEwLTA2LTExIDE2OjEyOjMzIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBwcmludCByYW5rcyB3aXRoIG9mZnNldHMgZnJvbSBuYW1lcwoKMjAxMC0wNi0wOSAxMjozOTo1NCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGZhZDE0NWIgdG8gNzMzZmNhOQoKMjAxMC0wNi0wOSAxMjozMDo0OSAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDQ3NjgzYzEgdG8gZmFkMTQ1YgoKMjAxMC0wNi0wOSAxMjoxNzowMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogZml4IGNvbW1lbnQgdHlwbyBldmVuIG1vcmUKCjIwMTAtMDYtMDkgMTI6MDY6NTIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBkb2NzOiB1cGRhdGUgZG9jcyAoZm9ybWF0IGFuZCBzZWFyY2ggcGF0aCkuCgkgIFJlbW92ZSBvYnNvbGV0ZSB4bWwgcmVnaXN0cnkgY2FjaGUgZXh0ZW5zaW9uLiBUZWxsIHRoYXQgY29udGVudCBhbmQgbG9jYXRpb24gaXMKCSAgaW50ZXJuYWwgZGV0YWlsLiBEb2N1ZW1udCB0aGUgcGx1Z2luIHNlYXJjaCBvcmRlci4KCjIwMTAtMDYtMDkgMTI6MDY6MTYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgY29tbWVudHM6IGFkZCBhIGZldyBjb21tZW50cyB0byB0aGUgc3BhcnNlbHkgZG9jdW1lbnRlZCBwbHVnaW4gbG9hZGVyCgoyMDEwLTA2LTA4IDExOjQxOjExICswMjAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogZml4IGNvbW1lbnQgdHlwbwoKMjAxMC0wNi0wOCAxMjoxMjo0MiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogdXNlIGdzdF9jYXBzX2FwcGVuZF9zdHJ1Y3R1cmVfdW5jaGVja2VkKCkgbWFjcm8gb25jZSBtb3JlCgoyMDEwLTA2LTA4IDEyOjEwOjM2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiB1c2UgYSBzYWZlciBuYW1lIGZvciB0ZW1wb3JhcnkgdmFyLiB0byBub3Qgc2hhZG93IG9uZSBmcm9tIG91dGVyIHNjb3BlCgoyMDEwLTA2LTA3IDEyOjIwOjQxICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IHVzZSBnbGliIHR5cGVzIGluIG1vcmUgcGxhY2VzCgkgIERvIGEgYnVuY2ggb2YgY2hhciAtPiBnY2hhciwgaW50IC0+IGdpbnQsIGRvdWJsZSAtPiBnZG91YmxlIGNoYW5nZXMuCgoyMDEwLTA2LTA3IDEyOjA3OjMwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGp1c3QgY29tcHV0ZSBzdHJsZW4oKSBvbmNlCgoyMDEwLTA2LTA3IDEwOjE2OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBkb24ndCB3YWl0IGZvciBkYXRhIHdoZW4gRU9TCgkgIFdoZW4gaW4gZG93bmxvYWQgbW9kZSBhbmQgd2UgbmVlZCB0byBwcm92aWRlIGRhdGEgZm9yIGFuIG9mZnNldCB0aGF0IHdlIGRvbid0CgkgIGhhdmUsIGFsc28gcGVyZm9ybSBhIHNlZWsgdG8gdGhlIHJlcXVlc3RlZCBsb2NhdGlvbiB3aGVuIHdlIGFyZSBFT1MuIFRoZSByZWFzb24KCSAgd2h5IHdlIHNob3VsZG4ndCB3YWl0IGZvciBtb3JlIGRhdGEgaXMgYmVjYXVzZSBhZnRlciBFT1MsIHRoZXJlIHNpbXBseSB3aWxsIGJlCgkgIG5vIG1vcmUgZGF0YSBhbmQgd2UgZW5kIHVwIHdhaXRpbmcgZm9yZXZlci4KCSAgRml4ZXMgIzYyMDUwMAoKMjAxMC0wNi0wNyAwODoxODo0MCArMDIwMCAgTWFydGluIEJpc3NvbiA8bWFydGluLmJpc3NvbkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IEFkZCBzdXBwb3J0IGZvciBwYXJzaW5nIHNob3J0IGZvdXJjY3MgZnJvbSBzdHJpbmdzCgkgIEZvciBleGFtcGxlICJZMTYgIiBhbmQgIlk4ICAiLgoKMjAxMC0wNi0wNiAyMzoxOTo1OCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IHVzZSBnbG9iYmluZyBmb3Igc2VsZWN0aXZlIHRlc3QgaW52b2NhdGlvbiB2aWEgR1NUX0NIRUNLUwoJICBVc2UgZ2xpYiBnbG9iYmluZyBpbnN0ZWFkIG9mIHNpbXBsZSBzdHJpbmcgbWF0Y2hpbmcgdG8gYWxsb3cgZS5nLgoJICBHU1RfQ0hFQ0tTPSJ0ZXN0X2ludGVyKiIgbWFrZSBnc3QvZ3N0Y2Fwcy5jaGVjawoKMjAxMC0wNi0wNiAyMToyMDoyMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzbmVnby5jOgoJICBjYXBzbmVnbzogYWxzbyBtZWFzc3VyZSBwaXBlbGluZSBidWlsZGluZyB0aW1lCgoyMDEwLTA2LTA1IDIzOjE4OjA5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogYXZvaWQgYSBjYXBzLWNvcHkKCSAgV2UgY2FuIHNpbXBseSB0cnVuY2F0ZSB0aGUgY2FwcywgYXMgJ290aGVyY2FwcycgaXMgdGhlIHJlc3VsdCBvZiBpbnRlcnNlY3QKCSAgb3BlcmF0aW9ucyBhbmQgdGh1cyBvdXJzIGFuZCB3cml0YWJsZS4KCjIwMTAtMDYtMDMgMDE6NDk6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBpbmZvOiBhZGQgbmV3IFRSQUNFIGxvZyBsZXZlbCBhbmQgbW92ZSByZWZjb3VudGluZyB0aGVyZSBmcm9tIExPRyBsZXZlbAoJICBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGVhc2lseSBnZXQgYSAqOjUgZGVidWcgbG9nIHdpdGhvdXQgYWxsCgkgIHRoZSByZWZjb3VudGluZyBub2lzZSwgYW5kIGRyYXN0aWNhbGx5IHJlZHVjZXMgdGhlIG51bWJlciBvZiBsaW5lcwoJICBvdXRwdXQgZm9yIGEgbm9ybWFsIGxvZyAoNDZtIHRvIDI4bSBmb3IgYSAyMG1pbiB2aWRlbykuIFRoZSBmdWxsIGxvZwoJICBpbmNsdWRpbmcgcmVmY291bnRpbmcgaW5mb3JtYXRpb24gY2FuIHN0aWxsIGJlIGdvdHRlbiB1c2luZyAqOjcuCgkgIEZpeGVzICM2MjA0NjAuCgoyMDEwLTA2LTA0IDE3OjEwOjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogVXNlIEdfUEFSQU1fU1RBVElDX1NUUklOR1MgZm9yIHN0YW5kYXJkIHByb3BlcnRpZXMKCjIwMTAtMDYtMDMgMTc6MjE6MDAgKzAyMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxAYmFzZS1hcnQubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogTWFrZSBnc3RfYmFzZV9zaW5rX3F1ZXJ5IHJldHVybiBUUlVFIGlmIHRoZSBzZWdtZW50IHF1ZXJ5IHN1Y2NlZWRlZC4KCSAgRml4ZXMgYnVnICM2MjA0OTAuCgoyMDEwLTA2LTAxIDIzOjQ4OjU5IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMTdmODllNSB0byA0NzY4M2MxCgoyMDEwLTA2LTAxIDIyOjU0OjIwIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZmQ3Y2EwNCB0byAxN2Y4OWU1CgoyMDEwLTA1LTI0IDE3OjI1OjUyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZHM6IEltcHJvdmUgcmVhZGFiaWxpdHkgZm9yIGdzdF9wYWRfZml4YXRlX2NhcHMoKQoJICBKdXN0IHRydW5jYXRlIGFuZCB0aGVuIGZpeGF0ZS4gV2UgY2hlY2sgZm9yIGVtcHR5IGNhcHMgaW4gdGhlIGJlZ2luIGFuZCBhCgkgIGZpeGF0ZS1mdW5jIHRoYXQgZW1wdGllcyBhIGNhcHMgd291bGQgYmUgYnJva2VuLiBJdCBhbHNvIGhlbHBzIGxhenkgY2FwcyBpbXBsLgoJICBpbiBidWcgNjE4ODUzIGJ5IGF2b2lkaW5nIHRoZSBnc3RfY2Fwc19nZXRfc2l6ZSgpLgoKMjAxMC0wNi0wMSAxMTo0NjoxNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogbG9nIHBsdWdpbnMgYXZhaWxhYmxlIHRvIHVuaXQgdGVzdHMgYW5kIHRoZWlyIHBhdGhzCgoyMDEwLTA2LTAxIDExOjQ1OjExICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJICB3aW4zMjogY29tbWl0IE1ha2VmaWxlIGNoYW5nZXMgZm9yIHdpbjMyLXVwZGF0ZSBhcyB3ZWxsCgoyMDEwLTA1LTMxIDE1OjE0OjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9nc3RtYXJzaGFsLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RtYXJzaGFsLmg6CgkgIHdpbjMyOiBhZGQgcHJlLWdlbmVyYXRlZCB2ZXJzaW9ucyBvZiBnc3RtYXJzaGFsLltjaF0gYXMgd2VsbAoJICBhbmQgcHV0IHRoZW0gbmV4dCB0byB0aGUgcHJlLWdlbmVyYXRlZCBlbnVtdHlwZXMgZmlsZXMgZm9yIHRob3NlCgkgIG5vdCB1c2luZyBhdXRvdG9vbHMgZm9yIGJ1aWxkbGluZyBHU3RyZWFtZXIuCgoyMDEwLTA1LTI3IDE1OjEwOjM0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICB0ZXN0czogYWxzbyBjaGVjayBmb3IgYWRhcHRlciBidWZmZXIgbWVyZ2luZyBpbiB1bml0IHRlc3QKCjIwMTAtMDUtMjcgMTI6NTA6MjIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGZpeCBfdHJ5X3RvX21lcmdlX3VwCgkgIFRoYXQgaXMsIHByb3ZpZGUgY29ycmVjdCByZXR1cm4gdmFsdWUgKGFzIGRvY3VtZW50ZWQpLCBhbmQgYWN0dWFsbHkKCSAgbG9vcCB0byBjb25zaWRlciBtb3JlIHRoYW4gdGhlIGZpcnN0IDIgYnVmZmVycy4KCjIwMTAtMDUtMjcgMTI6NDg6MTggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogZml4IGRvY3VtZW50YXRpb24gZ2xpdGNoCgoyMDEwLTA1LTI2IDExOjU0OjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMzU3YjBkYiB0byBmZDdjYTA0CgoyMDEwLTA1LTI1IDE5OjE3OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGdzdGJpbjogdW5sb2NrIF9nZXRfc3RhdGUoKSBvbiBlcnJvcgoJICBXaGVuIGFuIGVycm9yIG1lc3NhZ2UgaXMgcmVjZWl2ZWQgb24gdGhlIGJ1cywgbWFyayB0aGUgYmluIGFzIGJlaW5nIGluIHRoZSBlcnJvcgoJICBzdGF0ZSBhbmQgdW5sb2NrIGFsbCBjdXJyZW50IF9nZXRfc3RhdGUoKSBjYWxscyB3aXRoIGFuIGVycm9yLgoJICBGaXhlcyAjNTA1NzcwCgoyMDEwLTA1LTI0IDE5OjA3OjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgY2hlY2tzOiBhZGQgbXVsdGktdGhyZWFkIHRlc3QgZm9yIHRhZ3NldHRlcgoJICBTZWUgIzYxOTUzMy4KCjIwMTAtMDUtMjQgMTk6MDY6NDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICB0YWdzZXR0ZXI6IG1ha2Ugc3VyZSBvbmx5IG9uZSB0aHJlYWQgY3JlYXRlcyB0aGUgVGFnRGF0YQoKMjAxMC0wNS0yNCAxODoxNjoxOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkgIHRhZ3NldHRlcjogcHJvdGVjdCB0YWdzZXR0ZXIgb3BlcmF0aW9ucyB3aXRoIGEgbG9jawoJICBTbyB3ZSBkb24ndCBjcmFzaCB3aGVuIGEgbXV4ZXIgdHJpZXMgdG8gYWRkIHRhZ3MgZnJvbSB0d28KCSAgdGhyZWFkcyBhdCB0aGUgc2FtZSB0aW1lLCBlZy4gYmVjYXVzZSBpdCByZWNlaXZlZCB0YWcgZXZlbnRzCgkgIG9uIHR3byBpbnB1dCBwYWRzIHNpbXVsdGFuZW91c2x5LgoJICBTZWUgIzYxOTUzMy4KCjIwMTAtMDUtMjIgMjM6MjY6MTYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHVzZSBvdXIgbWFjcm9zIG1vcmUgb2Z0ZW4gaW4gdGhlIGNvZGUKCjIwMTAtMDUtMjIgMjM6MDc6MTAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGFkZCBhcHBlbmRfc3RydWN0dXJlX3VuY2hlY2tlZAoJICBUaGlzIGlzIHVzZWZ1bCB3aGVuIHdlIGtub3cgdGhhdCBjYXBzIGlzICFOVUxMLCB3cml0YWJsZSBhbmQgc3RydWN0dXJlIGlzCgkgICFOVUxMIHRvby4KCjIwMTAtMDUtMjIgMjI6NDY6NDAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIHRlc3RzOiByZW5hbWUgdGVzdHN1aXRlCgkgIFByZXZpb3VzIG5hbWUgd2FzIG9ubHkgYXBwbGljYWJsZSB0byBhIGZldyBvZiB0aGUgdGVzdHMuCgoyMDEwLTA1LTIyIDIyOjQ1OjMzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGRvY3M6IHhyZWYgZnVuY3Rpb24gbmFtZQoKMjAxMC0wNS0yMiAyMjo0NDowMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogdXNlIG91ciBtYWNvcyBtb3JlCgoyMDEwLTA1LTIyIDIyOjMzOjA5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL2xhenljYXBzLnR4dDoKCSAgZGVzaWduOiBtb3JlIHBsYW5uaW5nIG9uIGxhenkgY2Fwcy4KCjIwMTAtMDUtMjIgMTA6MDE6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzdHJ1Y3R1cmU6IEFQSTogQWRkIGdzdF9zdHJ1Y3R1cmVfZml4YXRlX2ZpZWxkX3N0cmluZygpCgoyMDEwLTA1LTE5IDE2OjIxOjQ5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL2xhenljYXBzLnR4dDoKCSAgZGVzaWduOiBjb2xsZWN0IGlkZWFzIGZvciBoYXZpbmcgbGF6eSBjYXBzCgkgIERlc2lnbiBkb2MgZm9yIGhhdmluZyBvbiB0aGUgZmx5IGV2YWx1YXRlZCBjYXBzIChzZWUgYnVnICM2MTg4NTMpLgoKMjAxMC0wNS0xOSAxNTo1NzowOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBkb2NzOiBhZGQgbGlua3MgZm9yIEdTb3VyY2UgcHJpb3JpdGllcwoJICBOb3cgaXQgaXMgeHJlZmZlZCB3aXRoIHRoZSBnbGliIGRvY3MsIHdoZXJlIHRoZSBwcmlvcml0eSBzY2FsZSBpcyBleHBsYWluZWQuCgoyMDEwLTA1LTE5IDE0OjA4OjI2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvLmM6CgkgIGJlbmNobWFyazogYWRkIGNvbW1hbmRsaW5lIHBhcmFtZXRlcnMgZm9yIGNhcHNuZWdvCgkgIEFsbG93IHRvIHNwZWNpZnkgdGhlIGdyYXBoIHNpemUgYW5kIG9mZmVyIHR3byBmbGF2b3VycyAoYXVkaW8vdmlkZW8pLgoKMjAxMC0wNS0xOSAwOTo1Njo1MSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvLmM6CgkgIGJlbmNobWFya3M6IGFkZCBhIGJlbmNobWFyayBmb3IgY2Fwc25lZ290aWF0aW9uCgkgIFRoZSB0ZXN0IGJ1aWxkcyBhIHRyZWUgbGlrZSBncmFwaCBoYXZpbmcgY29udmVyc2lvbiBhbmQgYmFzZXRyYW5zZm9ybSBlbGVtZW50cy4KCjIwMTAtMDUtMTggMTc6NTE6MDEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbXBsZXhpdHkuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RidWZmZXJzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9tYXNzLWVsZW1lbnRzLmM6CgkgIGJlbmNobWFya3M6IHVzZSBnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCkgaW5zdGVhZCBvZiBvd24gaW1wbGVtZW50YXRpb24KCjIwMTAtMDUtMTggMTg6Mzg6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBhZGQgaml0dGVyIHRvIGRlYnVnIG91dHB1dAoKMjAxMC0wNS0xOCAxODozNTo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGNsZWFudXAgdHlwZSByZWdpc3RyYXRpb24gYSBsaXR0bGUKCSAgV2UgY2FuIG1ha2Ugc29tZSBzdHJ1Y3RzIGNvbnN0IHN0YXRpYyB3aXRoIGxpdHRsZSBlZmZvcnQuCgoyMDEwLTA1LTE3IDEzOjA5OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBwcmludCBXQVJOSU5HIGRlYnVnIHN0YXRlbWVudHMgZm9yIG5vcm1hbCB0aGluZ3MgbGlrZSBFT1MsIHBhcnQgSUkKCjIwMTAtMDUtMTQgMTg6MjI6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA0ZDY3YmQ2IHRvIDM1N2IwZGIKCjIwMTAtMDUtMTQgMTE6NTI6MDMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGNvbW1lbnQgYW5kIHdoaXRlc3BhY2UgY2xlYW51cAoJICBNYWtlIGNvbW1lbnQgbW9yZSBzcGVjaWZpYywgcmVwb3NpdGlvbiBpdCBhbmQgYWRkIG1vcmUgb2YgdGhlIGtpbmQuCgkgIE1vdmUgb25lIGlmZGVmJ2VkIGZ1bmN0aW9uIGFyb3VuZC4KCjIwMTAtMDUtMTMgMDg6MjE6MzcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBTaW1wbGlmeSBmcmFjdGlvbnMgYmVmb3JlIGRvaW5nIGNhbGN1bGF0aW9ucyB0aGF0IGNvdWxkIGNhdXNlIG92ZXJmbG93cwoJICAuLi4gdG8gcHJldmVudCBzb21lIHVubmVjZXNzYXJ5IG92ZXJmbG93cyBmcm9tIGhhcHBlbmVuaW5nLgoKMjAxMC0wNS0xMyAwODowMDowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IEdDRCBpcyAwIGlmIGJvdGggcGFyYW1ldGVycyBhcmUgMCwgZG9uJ3QgZGl2aWRlIGJ5IHplcm8KCSAgQW5kIHR1cm4gb3ZlcmZsb3cgY2hlY2tzIGZyb20gYXNzZXJ0aW9ucyBpbnRvIHNpbXBsZSBjaGVja3MgdG8KCSAgcmV0dXJuIEZBTFNFLgoKMjAxMC0wNS0xMyAwNzo1MToxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IFNpbXBsaWZ5IHJlc3VsdCBvZiBnc3RfZnJhY3Rpb25fbXVsdGlwbHkoKQoKMjAxMC0wNS0xMCAxMzoyNTowNCAtMDQwMCAgVHJpc3RhbiBNYXR0aGV3cyA8dHJpc3RhbkBzYXQucWMuY2E+CgoJKiBkb2NzL2ZhcS91c2luZy54bWw6CgkgIGZhcTogdXBkYXRlZCBsaW5lIGFib3V0IGphY2sgb3V0cHV0CgoyMDEwLTA1LTAzIDExOjMyOjIwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkgIHRlc3RzOiBSZWFkIHJldHVybiB2YWx1ZSB0byBtYWtlIGNsYW5nL2ljYyBoYXBweQoKMjAxMC0wNS0wNiAxNjo0MTowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgUmV2ZXJ0ICJwYWQ6IGRvbid0IGNoZWNrIHR3aWNlIGZvciBjaGFuZ2VkIGNhcHMgcGVyIHB1c2giCgkgIFdlIG5lZWQgdG8gY2hlY2sgdGhlIHBhZCBjYXBzIG9uIHRoZSBzcmNwYWQgYXMgd2VsbCBhcyBvbiB0aGUgc2lua3BhZC4gUmV2ZXJ0CgkgIHRoaXMgY29tbWl0IGFzIGl0IHJlbW92ZXMgdGhlIGNoZWNrIG9uIHRoZSBzcmNwYWQgYW5kIGNhbiBsZWF2ZSB0aGUgc3JjcGFkCgkgIHVubmVnb3RpYXRlZCAob3IgbmVnb3RpYXRlZCB3aXRoIHdyb25nIGNhcHMpCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMDdkYzFlNWI0OTU4MGE4OWJmZWYyN2ZmMjc0NzZkNTFmYjNjZTJjMi4KCjIwMTAtMDUtMDYgMTc6MDI6NDkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBjaGVjayB0d2ljZSBmb3IgY2hhbmdlZCBjYXBzIHBlciBwdXNoCgkgIGdzdF9wYWRfY2hhaW5fZGF0YV91bmNoZWNrZWQoKSBkb2VzIHRoZSBzYW1lIGNoZWNrIGFscmVhZHkuCgoyMDEwLTA1LTA2IDE2OjUxOjE2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcmVmbG93IHRvIHRydW5jYXRlIGNhcHMganVzdCBvbmNlCgkgIFdlIGdldCB3cml0YWJsZSBjYXBzIGZyb20gdGhlIGludGVyc2VjdGlvbiAodW5sZXNzIGl0IGZhaWxlZCkuIEFzIHdlIHRydW5jYXRlCgkgIHRob3NlIGFueXdheSwgd2UgZG9uJ3QgbmVlZCB0byBtYW51YWx5IGNvcHkgdGhlIGZpcnN0IHN0cnVjdHVyZS4KCjIwMTAtMDUtMDQgMTM6Mjk6MDIgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogdG9vbHMvZ3N0LXJ1bi5jOgoJICB0b29sczogZml4IGdzdC1ydW4gd3JhcHBlciB0byB3b3JrIG9uIFdpbmRvd3MKCSAgRml4ZXMgIzYxNzYyNQoKMjAxMC0wNS0wMyAwMDoyNjowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGRvY3M6IGRvY3VtZW50IHRoYXQgZ3N0X2J5dGVfd3JpdGVyX3B1dF9zdHJpbmcqKCkgd3JpdGVzIHRoZSB0ZXJtaW5hdG9yIHRvbwoKMjAxMC0wNS0wNSAxMjowMTo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgZG9jczogY2xhcmlmeSB0aGUgcHVsbF9yYW5nZSBmdW5jdGlvbnMKCSAgQ2xhcmlmeSB0aGUgZ3N0X3BhZF9wdWxsX3JhbmdlKCksIEdzdEJhc2VTcmM6OmNyZWF0ZSgpLCBnc3RfcGFkX2dldF9yYW5nZSgpCgkgIGFuZCBHc3RQYWRHZXRSYW5nZSBmdW5jdGlvbnMgYSBsaXR0bGUuCgkgIEZpeGVzICM2MTc3MzMKCjIwMTAtMDUtMDQgMTE6NDU6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaW1wcm92ZSBkZWJ1Z2dpbmcKCjIwMTAtMDQtMzAgMTE6Mjc6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHVzZSByZWZmZWQgX2dldF9jYXBzKCkgdmVyc2lvbgoJICBXZSBkb24ndCBuZWVkIHRvIGhhdmUgYSB3cml0YWJsZSBjb3B5IHNvIHdlIGNhbiB1c2UgdGhlIF9yZWZmZWQKCSAgdmVyc2lvbiBpbnN0ZWFkLgoKMjAxMC0wNC0yOSAyMTo1NzoxNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdzOiBBZGRzIGdlbyBsb2NhdGlvbiBkaXJlY3Rpb24gdGFncwoJICBBZGRzIDMgbmV3IGdlbyBsb2NhdGlvbiB0YWdzIGludm9sdmluZyBkaXJlY3Rpb24gYW5kCgkgIG1vdmVtZW50IG9mIGNhcHR1cmUuIFRob3NlIGFyZToKCSAgQVBJOiBHU1RfVEFHX0dFT19MT0NBVElPTl9DQVBUVVJFX0RJUkVDVElPTgoJICBBUEk6IEdTVF9UQUdfR0VPX0xPQ0FUSU9OX01PVkVNRU5UX0RJUkVDVElPTgoJICBBUEk6IEdTVF9UQUdfR0VPX0xPQ0FUSU9OX01PVkVNRU5UX1NQRUVECgkgIEZpeGVzICM2MTcyMjMKCjIwMTAtMDQtMTYgMDY6NTc6MDUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnczogQWRkcyBHU1RfVEFHX0RFVklDRV9NQU5VRkFDVFVSRVIgYW5kIEdTVF9UQUdfREVWSUNFX01PREVMCgkgIEFkZHMgdGhvc2UgbmV3IHRhZ3MgdG8gZGVzY3JpYmUgdGhlIGRldmljZSBtYW51ZmFjdHVyZXIgYW5kCgkgIG1vZGVsIHVzZWQgdG8gY3JlYXRlIG1lZGlhcy4KCSAgQVBJOiBHU1RfVEFHX0RFVklDRV9NQU5VRkFDVFVSRVIKCSAgQVBJOiBHU1RfVEFHX0RFVklDRV9NT0RFTAoJICBGaXhlcyAjNjE1OTQxCgoyMDEwLTA1LTAyIDE5OjQzOjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXRhZ2dpbmcueG1sOgoJICBwd2c6IHJlbW92ZSBjb25mdXNpbmcgbWV0YWRhdGEgZXhhbXBsZSB3aXRoIDAuOCBjb2RlCgkgIEZpeGVzICM1MzQzMTQuCgoyMDEwLTA1LTAyIDE5OjMwOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLW1ldGFkYXRhLnhtbDoKCSAgbWFudWFsOiBhZGQgbWluaW1hbCB0YWcgcmVhZGluZyBleGFtcGxlCgkgIFNob3VsZCBwcm9iYWJseSBwdXQgdGhhdCBpbnRvIHRlc3RzL2V4YW1wbGVzIGFuZCBmaWd1cmUgb3V0IGhvdyB0bwoJICBnZXQgaXQgaW5jbHVkZWQgYXV0b21hdGljYWxseSwgYnV0IGNhbid0IGJlIGJvdGhlcmVkIHJpZ2h0IG5vdy4KCjIwMTAtMDQtMzAgMTM6MTA6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0LmM6CgkgIEJ1bXAgR0xpYiByZXF1aXJlbWVudCB0byAyLjIwCgkgIFNlZSBodHRwOi8vZ3N0cmVhbWVyLmZyZWVkZXNrdG9wLm9yZy93aWtpL1JlbGVhc2VQbGFubmluZy9HTGliUmVxdWlyZW1lbnQKCjIwMTAtMDQtMjkgMjM6Mjk6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IG9ubHkgd2FybiBpZiBtZXRhZGF0YSBpcyBub3Qgd3JpdGFibGUgd2hlbiBpdCBzaG91bGQgYmUsIGRvbid0IHJldHVybiBhcyB3ZWxsCgkgIE1ha2Ugc3VyZSB3ZSBleGVjdXRlIHRoZSBzYW1lIGNvZGUgcGF0aCBpbiBnaXQgdmVyc2lvbnMgYW5kIGluIHJlbGVhc2VzLAoJICBzbyBqdXN0IHdhcm4gd2hlbiBtZXRhZGF0YSBpc24ndCB3cml0YWJsZSB3aGVuIHdlIHdhbnQgaXQgdG8gYmUgaW5zdGVhZAoJICBvZiBiYWlsaW5nIG91dC4KCjIwMTAtMDQtMjkgMjM6MjY6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogbWFrZSAnYWRkaW5nIGZsdXNoaW5nIHBhZCcgd2FybmluZyBtb3JlIHVzZWZ1bAoJICBUaGlzIGlzIGEgcHJldHR5IGNvbW1vbiBpc3N1ZSB3aXRoIGdob3N0IHBhZHMsIGxldCdzIG1ha2UKCSAgdGhlIHdhcm5pbmcgbW9yZSBoZWxwZnVsIGFuZCB0ZWxsIHBlb3BsZSB3aGF0IHRoZXkgbmVlZAoJICB0byBkbyB0byBmaXggaXQuCgoyMDEwLTA0LTI4IDE3OjE1OjQxICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogYWRkIC1wIG9wdGlvbiB0byBkaXNhYmxlIHBsYXkgaGFuZGxlci4KCSAgU2FtZSBsb2dpYyBhcyBmb3IgdGhlIGZhdWx0IGhhbmRsZXIuIFRoaXMgaXMgdXNlZnVsIGZvciBzb21lIGRlYnVnL3RyYWNpbmcgdG9vbHMKCSAgdGhhdCBuZWVkIHRvIGdyYWIgU0lHVVNSMSBhbmQgU0lHVVNSMiB0aGVtIHNlbGYuCgoyMDEwLTA0LTE1IDEwOjM2OjUyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBpbXBsZW1lbnQgcGVyY2VudGFnZSBwb3NpdGlvbiBhbmQgZHVyYXRpb24gcXVlcmllcwoJICBJZiB1cHN0cmVhbSBkb2VzIG5vdCBoYW5kbGUgdGhlbSwgdGhlbiBpbXBsZW1lbnQgdGhvc2Ugb3Vyc2VsZi4KCjIwMTAtMDQtMTQgMTc6NDc6MzYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHVzZSBnc3RfcGFkX3BlZXJfcXVlcnkgaW5zdGVhZCBvZiByZWludmVudGluZy4KCjIwMTAtMDQtMTQgMTc6NDY6NTUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIHF1ZXJpZXM6IGFkZCBtb3JlIGxvZ2dpbmcKCSAgTG9nIGh1bWFuIHJlYWRhYmxlIGZvcm1hdHMgYW5kIGxvZyBxdWVyeSByZXN1bHQuCgoyMDEwLTA0LTE5IDIwOjM1OjM2ICswMjAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGNhcHM6IERvIG5vdCBhbGxvdyBmaXhhdGluZyBlbXB0eSBjYXBzCgkgIFBhc3NpbmcgZW1wdHkgY2FwcyB0byBnc3RfcGFkX2ZpeGF0ZV9jYXBzKCkgaXMgaW52YWxpZCwgYXMgZW1wdHkgY2FwcwoJICBjYW5ub3QgYmUgZml4YXRlZC4KCjIwMTAtMDQtMjYgMjE6NTI6MDcgKzAyMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IFVzZSBHX0dOVUNfV0FSTl9VTlVTRURfUkVTVUxUIGZvciBtYWtlX3dyaXRhYmxlKCkKCSAgUGVvcGxlIG9mdGVuIGNhbGwKCSAgZ3N0X2NhcHNfbWFrZV93cml0YWJsZSAoY2Fwcyk7CgkgIGluc3RlYWQgb2YKCSAgY2FwcyA9IGdzdF9jYXBzX21ha2Vfd3JpdGFibGUgKGNhcHMpOwoJICBhbmQgY2F1c2UgYSBidWcuIFdhcm5pbmcgYWJvdXQgYW4gdW51c2VkIHJldHVybiB2YWx1ZSBoZWxwcyBoZXJlLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxNjU0MSNjMiBmb3IgYW4gZXhhbXBsZS4KCjIwMTAtMDQtMjMgMDY6MjQ6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVycm9yLmM6CgkgIGdzdDogVXNlIEdFcnJvciBib3hlZCB0eXBlIGZyb20gR09iamVjdCAyLjI1LjIgaW5zdGVhZCBvZiBvdXIgb3duIGlmIHBvc3NpYmxlCgoyMDEwLTA0LTI5IDE0OjUwOjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQuCgoyMDEwLTA0LTE1IDE3OjExOjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGRvY3M6IGFkZCBzb21lIG1vcmUgZG9jcyBmb3IgdGhlIGV2ZW50cwoKPT09IHJlbGVhc2UgMC4xMC4yOSA9PT0KCjIwMTAtMDQtMjcgMjM6NDI6MTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAwLjEwLjI5CgoyMDEwLTA0LTI3IDIzOjQwOjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMC0wNC0yNyAwOTo0MjowNSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIHRlc3RzOiBhZGQgbW9yZSB0ZXN0cyBmb3IgY29udHJvbGxlcgoJICBUaGUgdGVzdHMgdmVyaWZ5IHRoYXQgYnVnICM2MTY4NDYgaXMgaW5kZWVkIGZpeGVkLgoKMjAxMC0wNC0yNiAxNTo0MzoxNyArMDIwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIGNvbnRyb2xsZXI6IEZpeCBnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9maW5kX2NvbnRyb2xfcG9pbnRfaXRlcgoJICBUaGUgbG9naWMgaW4gdGhhdCBmdW5jdGlvbiBpcyBicm9rZW4uIFZhcmlvdXMgTlVMTC1jaGVja2luZyBiYW5kYWlkcyBmb3IKCSAgZ3VhcmFudGVlZCBub24tTlVMTCB2YXJpYWJsZXMgZGlkbid0IGV2ZW4gaGVscCB0aGVyZS4KCSAgVGhpcyBwYXRjaCB1cGRhdGVzIHRoZSBmdW5jdGlvbiB0byBjaGVjayBpZiBhIHByZXZpb3VzIGl0ZW0gZXhpc3RzCgkgIGJlZm9yZSBmZXRjaGluZyBpdCBpbnN0ZWFkIG9mIGFmdGVyLiBUaGlzIG1ha2VzIGFsbCBvdGhlciB0ZXN0cwoJICB1bm5lY2Vzc2FyeS4KCSAgSW4gcGFydGljdWxhciwgaXQgbWFrZXMgdGhlIGNoZWNrIGZvciBhbiBlbXB0eSBsaXN0IHVubmVjZXNzYXJ5LCBiZWNhdXNlCgkgIGZvciBlbXB0eSBsaXN0cyB0aGUgb25seSBpdGVyIGlzIHRoZSBiZWdpbiBpdGVyIChhbmQgdGhlIGVuZCBpdGVyKSBhbmQKCSAgc28gdGhlIG5ldyBjaGVjayBjYXRjaGVzIHRoYXQgY2FzZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxNjg0NgoKMjAxMC0wNC0yNSAyMToxNTo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjI4LjMgcHJlLXJlbGVhc2UKCjIwMTAtMDQtMjAgMTc6MTc6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0cmVhbWVyLmRvYXA6CgkgIGRvYXA6IHVwZGF0ZSByZXBvc2l0b3J5IGluZm8gZnJvbSBjdnMtPmdpdCBhbmQgbWFpbnRhaW5lcnMKCjIwMTAtMDQtMjMgMTQ6Mzk6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmYzg1ODY3IHRvIDRkNjdiZDYKCjIwMTAtMDQtMTYgMjA6MDk6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSogZG9jcy9wd2cvcHdnLnhtbDoKCSAgZG9jczogQ29uc2lzdGVudGx5IHVzZSBNeUZpbHRlciBpbnN0ZWFkIG9mIHNvbWV0aW1lcyBFeGFtcGxlRmlsdGVyIGluIHRoZSBleGFtcGxlCgkgIEZpeGVzIGJ1ZyAjNjE1NTc5LgoKMjAxMC0wNC0xNiAxNDoyMjoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIGVudW1zIGZvciBjdXN0b20gZmxvdyByZXR1cm4gc3VjY2VzcyBhbmQgZXJyb3IgY29kZXMKCSAgVGhpcyB3YXkgcGVvcGxlIGNhbiBqdXN0ICNkZWZpbmUgdGhlaXIgb3duIGN1c3RvbSBmbG93IHJldHVybnMgdG8KCSAgb25lIG9mIHRoZXNlIHdpdGhvdXQgaGF2aW5nIHRoZSBjb21waWxlciAoZXNwLiBnY2MtNC41KSBjb21wbGFpbgoJICBhYm91dCBjb21wYXJpbmcgaW50ZWdlcnMgdG8gYW4gZW51bSBvciB0aGUgZW51bSBub3QgYmVpbmcgbGlzdGVkCgkgIEZpeGVzICM2MTU4ODAuCgkgIEFQSTogR1NUX0ZMT1dfQ1VTVE9NX1NVQ0NFU1NfMQoJICBBUEk6IEdTVF9GTE9XX0NVU1RPTV9TVUNDRVNTXzIKCSAgQVBJOiBHU1RfRkxPV19DVVNUT01fRVJST1JfMQoJICBBUEk6IEdTVF9GTE9XX0NVU1RPTV9FUlJPUl8yCgoyMDEwLTA0LTE1IDIyOjA1OjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICBsZm9jb250cm9sc291cmNlOiBVc2UgY29ycmVjdCBzZXR0ZXIgZm9yIGRvdWJsZSBHVmFsdWVzCgoyMDEwLTA0LTE1IDExOjA4OjAzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ3M6IGRvYyBmaXhlcwoJICBBZGRzIG1pc3NpbmcgJzonIHRvIHRhZ3MgZG9jcwoKMjAxMC0wNC0xNSAxMTozODoxOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogZml4IGJvZ3VzIHZhcmlhYmxlIHR5cGUKCSAgVGhlIHJlc3VsdCBvZiBnc3RfaXRlcmF0b3JfZmluZF9jdXN0b20oKSBpcyBub3QgYSBHc3RJdGVyYXRvciAqLgoKMjAxMC0wNC0xNCAxMjoyMDoxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjI4LjIgcHJlLXJlbGVhc2UKCjIwMTAtMDQtMTQgMTI6MTI6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMC0wNC0xNCAxMjo0Mzo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogbG9nIHdoYXQgc3RydWN0dXJlIHN0cmluZyB3ZSBmYWlsZWQgdG8gcGFyc2UKCjIwMTAtMDQtMTQgMTc6NTY6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgYmluOiBmaXggcmVmY291bnQgd2hlbiByZW1vdmluZyBlbGVtZW50cyBkdXJpbmcgc3RhdGUgY2hhbmdlCgkgIFdoZW4gYW4gZWxlbWVudCBpcyByZW1vdmVkIGZyb20gYSBiaW4gYmVjYXVzZSBpdCBjYXVzZWQgYSBzdGF0ZSBjaGFuZ2UgZXJyb3IsCgkgIGRvbid0IHVucmVmIHRoZSBjaGlsZCB0d2ljZS4KCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICBBZGQgYSB1bml0IHRlc3QgZm9yIHRoaXMgZXJyb3IuCgkgIEZpeGVzICM2MTU3NTYKCjIwMTAtMDQtMTQgMTE6NTA6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IG1vcmUgTERGTEFHUyAtPiBMREFERCBmaXhlcwoKMjAxMC0wNC0xNCAxMTo0MDoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiAkKExJQk0pIGJlbG9uZ3MgaW50byBMSUJBREQgbm90IExERkxBR1MKCjIwMTAtMDQtMDggMDk6MTQ6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiB3aGVuIGJ1aWxkaW5nIGV4ZWN1dGFibGVzLCBwdXQgbGlicyB0byBsaW5rIHRvIGludG8gTERBREQgaW5zdGVhZCBvZiBMREZMQUdTCgkgIFVzZSBmb29fTERBREQgaW5zdGVhZCBvZiBmb29fTERGTEFHUyB0byBzcGVjaWZ5IHRoZSBsaWJyYXJpZXMgdG8gbGluayB0by4KCSAgVGhpcyBzaG91bGQgbWFrZSBzdXJlIGFyZ3VtZW50cyBhcmUgcGFzc2VkIHRvIHRoZSBsaW5rZXIgaW4gdGhlIHJpZ2h0CgkgIG9yZGVyLiBTZWUgIzYxNTY5Ny4KCjIwMTAtMDQtMTQgMTE6MTk6MTQgKzAyMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBSZW1vdmUgLVdjYXN0LWFsaWduCgkgIEFwcGFyZW50bHkgZ2NjIHdhcm5zIHRoYXQgR3N0TWluaU9iamVjdCBpcyBub3QgY2FzdGFibGUgdG8KCSAgR3N0RXZlbnQvTWVzc2FnZS9CdWZmZXIgZHVlIHRvIHRoZW0gY29udGFpbmluZyA2NGJpdCB2YXJpYWJsZXMsIGV2ZW4KCSAgdGhvdWdoIEFSTSBoYWNrZXJzIGNsYWltIHRoYXQgdGhvc2Ugb25seSBuZWVkIDRieXRlIGFsaWdubWVudC4gQW5kIGFzCgkgIGxvbmcgYXMgZ2NjIGJlaGF2ZXMgdGhhdCB3YXksIHRoaXMgd2FybmluZyBpcyBub3QgdmVyeSB1c2VmdWwuCgkgIFNvIHdlJ2xsIHJlbW92ZSB0aGUgd2FybmluZyB1bnRpbCB0aGlzIHByb2JsZW0gaXMgZml4ZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTU2OTgKCjIwMTAtMDQtMTMgMTA6NDg6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IHJlbW92ZSBzdXBlcmZsdW91cyByZXR1cm4gc3RhdGVtZW50cyBhdCBlbmQgb2YgQUNfVFJZX3tMSU5LLENPTVBJTEV9IGJsb2NrcwoJICBTcG90dGVkIGJ5IEpGIE1lcnRlbnMuIFNlZSAjNjE0NzY3LgoKMjAxMC0wNC0wNSAxMzo0NjoyMyAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogQ2hhbmdlIGNoZWNrIGZvciB1aW50MTI4X3QKCSAgQ2hlY2sgZm9yIGFiaWxpdHkgdG8gZGl2aWRlIHVpbnQxMjhfdCB2YWx1ZXMsIHNpbmNlIHRoYXQgd2hhdAoJICB3ZSBhY3R1YWxseSB1c2UgaXQgZm9yIChpbiBnc3R1dGlscy5jKS4gIFRoZSBleGlzdGVuY2Ugb2YgYQoJICB1aW50MTI4X3QgdHlwZSBkb2Vzbid0IG1lYW4gdGhlIGNvbXBpbGVyIGNhbiBhY3R1YWxseSBnZW5lcmF0ZQoJICBjb2RlIGZvciBpdC4gIEFsc28gbWFrZSBzdXJlIHRoYXQgd2UgY2FuIGFjdHVhbGx5IGxpbmsgdGhlCgkgIHJlc3VsdCBzdWNjZXNzZnVsbHkuCgkgIEZpeGVzIGJ1ZyAjNjE0NzY3LgoKMjAxMC0wNC0xMiAxNToxMzo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSAgZG9jczogbWlub3IgbW92aW5nLXBsdWdpbnMgYWRkaXRpb24KCjIwMTAtMDQtMDkgMTU6NDg6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGxhdW5jaDogbWFrZSAtcSBiZSBtb3JlIHF1aWV0CgkgIENvbnZlcnQgc29tZSBnX3ByaW50IGludG8gUFJJTlQgc28gdGhhdCB0aGV5IGFyZSBub3QgcHJpbnRlZCB3aGVuIHRoZSAtcSBvcHRpb24KCSAgaXMgc2VsZWN0ZWQuCgoyMDEwLTA0LTA5IDE1OjE5OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGQgc29tZSBtb3JlIGRlYnVnIGluZm8KCjIwMTAtMDQtMDkgMTM6MTI6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSAgZmRzcmM6IGFsbG93IHNwZWNpZnlpbmcgdGhlIHNpemUgaW4gYnl0ZXMgb24gdGhlIHVyaQoJICBQYXJzZSBhIHNpemU9dmFsdWUgZnJvbSB0aGUgcXVlcnkgc3RyaW5nIHRvIHNwZWNpZnkgYSBzaXplLiBUaGlzIGlzIGludGVyZXN0aW5nCgkgIHdoZW4gcmVhZGluZyBmcm9tIGEgZmlsZSBkZXNjcmlwdG9yIHRoYXQgYWN0dWFsbHkgaGFzIGEgc2l6ZSAoYW5kIGlzIG5vdAoJICBzdGF0LWFibGUsIHN1Y2ggYXMgdGhlIHNvY2tldCBvZiBhbiBodHRwIGNvbm5lY3Rpb24pCgoyMDEwLTA0LTA5IDEyOjM1OjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiB3aGVuIEVPUyB3ZSBrbm93IHRoZSBkdXJhdGlvbgoJICBXaGVuIHdlIGFyZSBFT1MsIHdlIGRvbid0IG5lZWQgdG8gZG8gYW4gdXBzdHJlYW0gcXVlcnkgZm9yIHRoZSBkdXJhdGlvbiBpbiBieXRlcwoJICBiZWNhdXNlIHdlIGFscmVhZHkga25vdyBpdCBpcyB0aGUgb2Zmc2V0IG9mIHRoZSBsYXN0IHdyaXR0ZW4gYnl0ZS4KCjIwMTAtMDQtMDkgMTM6MDg6MTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5Y2h1bmtzOiBJbml0aWFsaXplIHR5cGVmaW5kL2VsZW1lbnQgZmFjdG9yeSByZWdpc3RyeSBjaHVua3Mgd2l0aCB6ZXJvZXMKCSAgVGhpcyBtYWtlcyB2YWxncmluZCBzdG9wIGNvbXBsYWluaW5nIGFib3V0IHJlYWRpbmcgdW5pdGlhbGl6YXRlZCBtZW1vcnksCgkgIHdoaWNoIGlzIG5vdCBpbml0aWFsaXplZCBiZWNhdXNlIGl0J3MganVzdCBjb21waWxlci1hZGRlZCBzdHJ1Y3QgcGFkZGluZy4uLgoKMjAxMC0wNC0wOSAxMToxOTo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGQ2NmE4YzMgdG8gZmM4NTg2NwoKMjAxMC0wNC0wOCAxMDoxMDoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC8uZ2l0aWdub3JlOgoJICAuZ2l0aWdub3JlOiBhZGQgbmV3IC5zdmcgZmlsZSBpbiBkb2NzCgoyMDEwLTA0LTA4IDEwOjQ3OjAzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBkb2NzOiB1c2UgaW5mb3JtYWxmaWd1cmUgdGFnIHRvIG5vdCBzeW50YXggaGlnaGxpZ2h0IHRoZSBjb250ZW50CgoyMDEwLTAzLTI1IDEwOjM1OjEzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9nc3QvZ3N0LXVuaXZlcnNlLmRvdDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgZG9jczogYWRkIGNvbmNlcHQgbWFwCgkgIEFkZCBhIGdyYXBodml6IGRvdCBmaWxlLiBBZGQgcnVsZXMgdG8gcmVuZGVyIGl0IHRvIHN2ZyBhbmQgaW5jbHVkZSBpbiBkb2NzLgoJICBOb2RlcyBhcmUgY2xpY2thYmxlLiBJdCBpcyBhbiBhdHRlbXB0IHRvIHNob3cgaG93IHRoaW5ncyBmaXQgdG9nZXRoZXIuCgoyMDEwLTA0LTA3IDE5OjMwOjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIGRvY3M6IGFkZCBhIGZldyBjb2RlIHNuaXBwZXRzIHRoYXQgc2hvdyBob3cgdG8gdXNlIGdzdF9tZXNzYWdlX3BhcnNlXyooKS4KCjIwMTAtMDQtMDcgMTk6MDU6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogYXV0b2dlbi5zaDoKCSogY29uZmlndXJlLmFjOgoJICBidWlsZDogYnVtcCBhdXRvY29uZiByZXF1aXJlbWVudCB0byAyLjYwIGZvciBnb2JqZWN0LWludHJvc3BlY3Rpb24ubTQKCSAgUmVxdWlyZSBhdXRvY29uZiAyLjYwICh3aGljaCB3YXMgcmVsZWFzZWQgaW4gSnVuZSAyMDA2KS4KCSAgRml4ZXMgIzYwMDcxOC4KCjIwMTAtMDQtMDcgMTI6Mjk6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IGZpeCBtb3JlIGNvbXBpbGVyIHdhcm5pbmdzCgkgIEZpeCAnZ3JhbW1hci50YWIuYzo4MTU6Njogd2FybmluZzogIllZRU5BQkxFX05MUyIgaXMgbm90IGRlZmluZWQnCgkgIGNvbXBpbGVyIHdhcm5pbmcgYW5kIHRoZSBzYW1lIGZvciBZWUxUWVBFX0lTX1RSSVZJQUwuIFRoZSB0d28KCSAgdHJhbnNsYXRlZCBzdHJpbmdzIGFyZW4ndCBwYXJ0aWN1bGFybHkgaGVscGZ1bCwgc28ganVzdCBkZWZpbmUKCSAgWVlFTkFCTEVfTkxTIHRvIDAuCgoyMDEwLTA0LTA3IDEyOjI0OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBmaXggY29tcGlsZXIgd2FybmluZwoJICBGaXggJ2dyYW1tYXIueTo2Njg6IHBhc3NpbmcgYXJndW1lbnQgMSBvZiDigJhnX2ZyZWXigJkgZGlzY2FyZHMgcXVhbGlmaWVycwoJICBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUnIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDEwLTA0LTA3IDE2OjA1OjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgbWVzc2FnZTogYWRkIFNpbmNlOiBtYXJrZXJzCgoyMDEwLTA0LTA3IDA5OjMxOjM5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHRlc3RzOiBnc3RzeXN0ZW1jbG9jazogZG9uJ3QgbGVhayB0aGUgc3lzdGVtIGNsb2NrCgoyMDEwLTA0LTA1IDAwOjAxOjU2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgYnVpbGQ6IGZpeCBvdXQgb2Ygc291cmNlZGlyIGJ1aWxkIGZvciBjaGVjawoJICBNb3ZlIHRoZSBpbnRlcm5hbCBoZWFkZXIgdG8gbm9kaXN0IChhcyB3ZSBjb3B5IGl0IGFyb3VuZCBhbnl3YXkpLgoJICBVc2UgYnVpbGRkaXIgaW4gcGF0dGVybiBzdWJzdGl0dXRpb24gZm9yIGl0LgoJICBGaXhlcyAjNjE0ODMuCgoyMDEwLTA0LTA2IDE3OjQ2OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGRvY3M6IGZpeCBzb21lIHR5cG9zCgoyMDEwLTAyLTIzIDA5OjE2OjU1ICswMTAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmdAYXhpcy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZml4IGdzdF9iYXNlX3NyY19uZXdfc2VhbWxlc3Nfc2VnbWVudCgpCgkgIEtlZXAgdHJhY2sgb2YgcGVuZGluZyBuZXdzZWdtZW50IGluIGdzdF9iYXNlX3NyY19uZXdfc2VhbWxlc3Nfc2VnbWVudCgpCgkgIHRvIGF2b2lkIHB1c2hpbmcgbmV3c2VnbWVudCB1cGRhdGUgYmVmb3JlIG5ld3NlZ21lbnQuCgoyMDEwLTA0LTA0IDE1OjIxOjE2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0BlbnNvbmljLWRlc2t0b3AubG9jYWxkb21haW4+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZG9jczogaW1wcm92ZSBldmVudCBkb2NzCgkgIFJlcGhyYXNlIGZpcnN0IHBhcmFncmFwaCBvZiBzZWN0aW9uIGRvY3MuIEFkZCBkZXRhaWwgdG8gZW9zIGV2ZW50IGRvY3MuCgoyMDEwLTAzLTI5IDA4OjQzOjA1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdG9vbHMvZ3N0LWluZGVudDoKCSAgZ3N0LWluZGVudDogQWRkIC0tbGVhdmUtcHJlcHJvY2Vzc29yLXNwYWNlIGZvciBpbmRlbnQgMi4yLjExCgkgIEl0IHdhcyBwcmV2aW91c2x5IGJyb2tlbiwgd2hpY2ggaXMgd2h5IHdlIG5ldmVyIG5lZWRlZCBpdC4gVGhpcyBrZWVwcyBiYWNrd2FyZAoJICBjb21wYXRpYmlsaXR5IHdpdGggaW5kZW50IDw9IDIuMi4xMQoKMjAxMC0wMy0zMSAxMDo0MzowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgbGliczogcG9pbnQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHNjYW5uZXIgdG8gLmxhIGZpbGVzCgkgIFBvaW50IGctaXItc2Nhbm5lciB0byB0aGUgLmxhIGZpbGUgb2Ygb3VyIGxpYnJhcnksIHdoaWNoIGhvcGVmdWxseQoJICBtYWtlcyBpdCBmaW5kIHRoZSByaWdodCBkZXBlbmRlbmNpZXMgaW4gYWxsIGNhc2VzIChpZS4gb3VyIGxvY2FsbHkKCSAgYnVpbHQgbGliZ3N0cmVhbWVyIGFuZCBub3QgdGhlIHN5c3RlbS1pbnN0YWxsZWQgb25lKS4gVGhpcyBpcyBhbHNvCgkgIGhvdyBpdCdzIGRvbmUgaW4gR3RrKyBhbmQgaG93IGl0J3MgZG9jdW1lbnRlZCBpbiB0aGUgd2lraSwgc2VlCgkgIGh0dHA6Ly9saXZlLmdub21lLm9yZy9HT2JqZWN0SW50cm9zcGVjdGlvbi9BdXRvdG9vbHNJbnRlZ3JhdGlvbgoJICBCYXNlZCBvbiBwYXRjaGVzIGJ5IFZpbmNlbnQgVW50eiBhbmQgQWxhbiBLbm93bGVzLgoJICBGaXhlcyAjNjAzNzEwLgoKMjAxMC0wNC0wMiAwMToxNjoxNiArMDEwMCAgUGhpbGlwIFdpdGhuYWxsIDxwaGlsaXBAdGVjbm9jb2RlLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiBVc2UgR19HTlVDX0NPTlNUIGluc3RlYWQgb2YgR19HTlVDX1BVUkUgZm9yIGNvbnZlcnNpb24gZnVuY3Rpb25zCgkgIEZpeGVzIGJ1ZyAjNjE0NjI5LgoKMjAxMC0wNC0wMSAxMzoxOTowNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJICB0ZXN0czogRG9uJ3QgZm9yZ2V0IHRvIHVucmVmIHRoZSBuZXdzZWdtZW50IGV2ZW50CgoyMDEwLTA0LTAxIDEyOjM0OjUzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBjb21tb246IFVwZGF0ZSB0byBsYXRlc3QgcmV2aXNpb24gZm9yIG5ldyBzdXBwcmVzc2lvbnMKCjIwMTAtMDMtMzEgMjI6MDc6NTcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJICB0ZXN0czogYWRkIHRlc3QgZm9yIHVwZGF0aW5nIHBsYXliYWNrIHJhdGUKCSAgVGVzdHMgaWYgYSBzZWVrIHdpdGggYm90aCBwb3NpdGlvbnMgYmVpbmcgR1NUX1NFRUtfVFlQRV9OT05FIGlzIGhhbmRsZWQuCgoyMDEwLTAzLTMxIDE2OjU1OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQ6CgkgIGRvY3M6IGFkZCBjb3B5IGFuZCBjb252IGZ1bmN0aW9uIHRvIGJ1ZmZlcjIgZHJhZnQKCjIwMTAtMDMtMzEgMTA6NTQ6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXIyLnR4dDoKCSAgZG9jczogdXBkYXRlIGJ1ZmZlcjIgZHJhZnQKCjIwMTAtMDMtMzEgMTE6MjY6MjggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbWFudWFsL2NvbW11bmljYXRpb24ucG5nOgoJKiBkb2NzL21hbnVhbC9kaWFncmFtcy1nZW5lcmFsLnN2ZzoKCSogZG9jcy9tYW51YWwvaW50cm8tYmFzaWNzLnhtbDoKCSAgZG9jczogaW1wcm92ZSBjb21tdW5pY2F0aW9uIHBpY3R1cmUgYW5kIHNlY3Rpb24KCSAgSW5kaWNhdGUgdGhhdCBvbmx5IG1lc3NhZ2VzIGdvIHZpYSBidXMuIEFsc28gYWRkIHF1ZXJpZXMgYmV0d2VlbiBlbGVtZW50cy4KCjIwMTAtMDMtMzEgMTA6MjQ6MTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIGV2ZW50OiBVc2UgY29ycmVjdCB0eXBlIGZvciB0aGUgbWVzc2FnZSBwYXJhbWV0ZXIgaW4gZ3N0X2V2ZW50X3tuZXcscGFyc2V9X3NpbmtfbWVzc2FnZQoJICBUaGUgc3RydWN0IHdvcmthcm91bmQgd2FzIG9ubHkgbmVjZXNzYXJ5IGluIGdzdGV2ZW50LmgsIGdzdHV0aWxzLmgga25vd3MgYWJvdXQgR3N0TWVzc2FnZQoKMjAxMC0wMy0zMSAwOTo1Njo1MCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9tYW51YWwvY29tbXVuaWNhdGlvbi5wbmc6CgkqIGRvY3MvbWFudWFsL2RpYWdyYW1zLWdlbmVyYWwuc3ZnOgoJKiBkb2NzL21hbnVhbC9pbnRyby1iYXNpY3MueG1sOgoJICBkb2NzOiBhZGQgY29tbXVuaWNhdGlvbiBvdmVydmlldyB0byBkb2NzCgkgIEFkZCBhIHNlY3Rpb24gdG8gdGhlIGJhc2ljcyB0aGF0IHNob3cgYnVmZmVycywgZXZlbnRzLCBtZXNzYWdlcyBhbmQgcXVlcmllcwoJICB0b2dldGhlciBhbmQgZGVzY3JpYmUgdGhlIGJhc2ljcy4KCjIwMTAtMDMtMzAgMTU6NTY6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWJhc2UucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2sucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbGxlci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSAgcGtnY29uZmlnOiBhZGQgZ2lyZGlyIGFuZCB0eXBlbGliZGlyIHZhcmlhYmxlcyB0byAucGMgZmlsZXMKCSAgU28gdGhhdCB0aGUgLWJhc2UgbGlicyBjYW4gZmlndXJlIG91dCB0aGUgcmlnaHQgaW5jbHVkZSBwYXRocyBmb3IgdGhlCgkgIGdvYmplY3QtaW50cm9zcGVjdGlvbiB0b29scyBldmVuIGlmIGNvcmUgZ290IGluc3RhbGxlZCBpbnRvIGEgcHJlZml4CgkgIHRoYXQncyBub3QgdGhlIHNhbWUgcHJlZml4IGFzIGdvYmplY3QtaW50cm9zcGVjdGlvbiBpcyBpbnN0YWxsZWQgaW4KCSAgb3IgaXQncyBiZWluZyBidWlsZCBpbiBhbiB1bmluc3RhbGxlZCBnc3RyZWFtZXIgc2V0dXAuCgoyMDEwLTAzLTMwIDE1OjIyOjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSBmb3IgbmV3IHN0cmluZwoKMjAxMC0wMy0zMCAxNToyMDowNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSogYXV0b2dlbi5zaDoKCSogY29uZmlndXJlLmFjOgoJKiBtNC8uZ2l0aWdub3JlOgoJKiBtNC9NYWtlZmlsZS5hbToKCSogbTQvY2hlY2stY2hlY2tzLm00OgoJICBidWlsZDogbWFrZSBhdXRvdG9vbHMgcHV0IGl0cyBtNCBmaWxlcyBpbnRvIG00LyBpbnN0ZWFkIG9mIGNvbW1vbi9tNC8KCSAgVGhpcyBpcyBob3cgd2UgZG8gaXQgaW4gdGhlIG90aGVyIG1vZHVsZXMsIGFuZCBnZXRzIHJpZCBvZiB0aGUgYW5ub3lpbmcKCSAgZGlydHkgc3RhdHVzIGZvciBjb21tb24gd2hlbiBkb2luZyBnaXQgc3RhdHVzIChhdCBsZWFzdCBvbmNlIHlvdSBjbGVhbgoJICBvdXQgdGhlIG9sZCBmaWxlcyBmcm9tIHRoZXJlKS4KCjIwMTAtMDMtMzAgMTI6MzM6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgYnVpbGQ6IGJ1aWxkIGV4YW1wbGVzIHN1YmRpcmVjdG9yaWVzIGluIHBhcmFsbGVsIGlmIHJlcXVlc3RlZAoKMjAxMC0wMy0yOCAyMDo1NTowOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogUmVmYWN0b3IgY2FwcyBzdWdnZXN0aW9uIG9uIHBhZF9hbGxvYwoJICBSZWZhY3RvciB0aGUgaGFuZGxpbmcgb2Ygc2luayBzdWdnZXN0aW9uIGNhcHMgdmFyaWFibGUKCSAgc28gdGhhdCBpdCBhbHdheXMgaGFzIGEgcmVmIHRvIHRoZSBjYXBzIGl0IHBvaW50cyB0by4KCSAgTWFrZXMgdGhlIGNvZGUgY2xlYXJlci4KCjIwMTAtMDMtMjkgMTY6MzQ6MDMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGdzdGluZm86IGFkZCBhIGNvbW1lbnQgZXhwbGFpbmluZyB0aGUgcmVhc29uIGZvciB1c2luZyBmdWNudGlvbiBwcm90b3MgaGVyZS4KCjIwMTAtMDMtMjkgMTY6MTM6NTQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGdzdGluZm86IGFsd2F5cyBkZWZpbmUgZHVtbXkgZGVidWcgY2F0ZWdvcnkgYXMgYSBmdW5jdGlvbiBwcm90b3R5cGUKCSAgSXQgZG9lcyBub3Qgc2VlbSB0byBtYWtlIHNlbnNlIHRvIGRlZmluZSB0aGlzIGFzIGEgZnVuY3Rpb24gb25seSBpZiB3ZSBoYXZlCgkgIHZhcmFyZ3MgbWFjcm9zLgoKMjAxMC0wMy0yOCAxNToxMDoyMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgYnVpbGQ6IGZpeCByZWRlY2xhcmF0aW9uIGVyb3JzIHdoZW4gYnVpbGRpbmcgd2l0aCAtLWdzdC1kaXNhYmxlLWdzdC1kZWJ1ZwoJICBHaXZlIGR1bW15IHN5bWJvbHMgYSB1bmlxZSBuYW1lLgoKMjAxMC0wMy0yOCAxNDo0OTowMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgYnVpbGQ6IG1vdmUgc29tZSBwcm90b3R5cGVzIG91dCBvZiAjaWZuZGVmIEdTVF9ESVNBQkxFX0dTVF9ERUJVRwoJICBNb3ZlIHRoZSBwcm90b3R5cGVzIHVwIHRvZ2V0aGVyLiBXZSBvbmx5IGRlZmluZSB0aGUgbWFjcm9zIGRpZmZlcmVudGx5LgoJICBGaXhlcyBidWcgIzYxNDE2NyBtb3N0bHkuCgoyMDEwLTAzLTI5IDE2OjA1OjQ0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiByZWFkZCB0aGUgdXNlIG9mIEdzdERlYnVnRnVuY1B0ciB0eXBlZGVmIGFuZCB0ZWxsIHdoeQoJICBUaGlzIHJldmVydHMgdGhlIHJlbGF0ZWQgY2hhbmdlcyBmcm9tIDNmNDk1NGU0MmQwNDQwYTdhNTk4YTkwODMyNWM0NWVhOWRiMDc2ZTQKCSAgYW5kIGZmYjBhNGUxOTA1YTg3MzE5MWY4YzgwMjM0NjI2MWU4YzQ0MzUwNjUuCgoyMDEwLTAzLTI5IDEwOjIyOjQzICswMTAwICBBbGFuIEtub3dsZXMgPGFsYW5AYWtia2hvbWUuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkgIG5ldDogZml4IHR5cG8gaW4gbmV0IGNsaWVudCBjbG9jayBzdHJ1Y3R1cmUKCSAgSXQncyBzb2NrYWRkcl9pbiwgbm90IHNvY2thZGRyX2lkLgoKMjAxMC0wMy0yNiAxNzoxMjowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSAgYnVpbGQ6IGFkZCBjcnVmdCBhbGVydCBmb3IgY29tbW9uL3NoYXZlKgoKMjAxMC0wMy0yOCAyMTowMjo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBGaXggYnVpbGQgYXQgbGVhc3QgdW50aWwgdGhlIGNvcnJlY3QgZml4IGlzIGZvdW5kCgkgIFNlZSBidWcgIzYxNDE2Ny4KCjIwMTAtMDMtMjggMTk6MTM6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IE1ha2Ugc3RydWN0dXJlIGFiYnJldmlhdGlvbnMgYXJyYXkgb25lLXRpbWUgaW5pdGlhbGl6YXRpb24gdGhyZWFkc2FmZQoKMjAxMC0wMy0yOCAxODowNTozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IEFkZCBGSVhNRSAwLjExIGZvciB1c2luZyBHU2xpY2UgZm9yIGFsbG9jYXRpb24KCjIwMTAtMDMtMjggMTg6MDU6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0cmFjZS5jOgoJICBnc3Q6IFVzZSBHU2xpY2UgaW5zdGVhZCBvZiBub3JtYWwgZ19tYWxsb2MgaW4gbW9yZSBwbGFjZXMKCjIwMTAtMDMtMjggMTM6MTQ6MDYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6CgkqIGdzdC9nc3RpbmZvLmg6CgkgIGJ1aWxkOiBtb3JlIHNvbWUgcHJvdG90eXBlcyBvdXQgaWYgI2lmbmRlZiBHU1RfRElTQUJMRV9HU1RfREVCVUcKCSAgVGhlIGJ1aWxkIHdhcyBmYWlsaW5nIGJlY2FzdWUgb2YgYSBuZXcgd2FybmluZy4gVGhlcmUgYXJlIHN0aWxsIGZhaWx1cmVzCgkgICh0cmFja2VkIHZpYSBidWcgIzYxNDE2NykuCgoyMDEwLTAzLTI1IDIwOjA0OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMgZm9yIG5ld2x5LWFkZGVkIHN0cmluZ3MKCjIwMTAtMDMtMjUgMTk6NTY6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWxzLm1hazoKCSAgZG9jczogZml4IGludGVybWl0dGVudCBtYWtlIGRpc3RjaGVjayBmYWlsdXJlcwoJICBVc2UgLk5PVFBBUkFMTEVMIHdoZW4gYnVpbGRpbmcgZG9jcy4gVGhpcyBhdm9pZHMgaW50ZXJtaXR0ZW50CgkgIG1ha2UgZGlzdGNoZWNrIGZhaWx1cmVzIGxpa2UgJ2NwOiBjYW5ub3QgY3JlYXRlIHJlZ3VsYXIgZmlsZQoJICBgYnVpbGQvaW1hZ2UuZW50aXRpZXMnOiBGaWxlIGV4aXN0cycgd2hlbiB1c2luZyAtak4uCgkgIEZpeGVzICM1OTA3MTguCgoyMDEwLTAzLTI1IDE4OjU3OjQwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBlbGVtZW50ZmFjdG9yeTogQWRkIEZJWE1FIDAuMTEgdG8gcmVtb3ZlIEdzdEVsZW1lbnREZXRhaWxzIGZyb20gdGhlIHB1YmxpYyBBUEkKCSAgSXQncyBub3QgbmVjZXNzYXJ5IGFueW1vcmUgdG8gZXhwb3NlIHRoaXMgYXMgcHVibGljIEFQSSBhbmQgdGhpcyBhbGxvd3MKCSAgZWFzaWVyIGV4dGVuc2lvbiBvZiB0aGUgZWxlbWVudCBkZXRhaWxzIGJ5IG5ldyBmaWVsZHMuCgoyMDEwLTAzLTI1IDE4OjQzOjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBoYW5kbGUgd3JpdGUgZXJyb3JzCgkgIEhhbmRsZSB3cml0ZSBlcnJvcnMgdG8gdGhlIHRlbXBvcmFyeSBkb3dubG9hZCBmaWxlIGFuZCBwb3N0IGVycm9ycyB3aGVuCgkgIHNvbWV0aGluZyB3ZW50IHdyb25nLgoKMjAxMC0wMy0yNSAxODoxMzowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIGVsZW1lbnQgcXVlcnkgZnVuY3Rpb24KCSAgQWRkIGFuIGVsZW1lbnQgcXVlcnkgZnVuY3Rpb24gdGhhdCBpcyBhIGxpdHRsZSBtb3JlIGVmZmljaWVudCB0aGFuIHRoZSBnZW5lcmljCgkgIGRlZmF1bHQgcXVlcnkgaGFuZGxlci4KCjIwMTAtMDMtMjUgMTg6MTI6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogaW1wcm92ZSBkb2NzIGEgbGl0dGxlCgkgIE1lbnRpb24gdGhhdCBhIERVUkFUSU9OIG1lc3NhZ2UgZG9lcyBub3QgbWVhbiB0aGF0IG9uZSBjYW4gc2FmZWx5IHF1ZXJ5IHRoZQoJICBkdXJhdGlvbiBvbiBhIGJpbiwgdGhhdCBvbmx5IHdvcmtzIHdoZW4gdGhlIGJpbiBpcyBwcmVyb2xsZWQuCgoyMDEwLTAzLTI1IDE4OjA1OjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiByZW1vdmUgZml4ZWQgRklYTUUKCjIwMTAtMDMtMjUgMTc6MzY6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IGFkZCB0aGUgYnVmZmVyaW5nIHBlcmNlbnQgaW4gQlVGRkVSSU5HIHF1ZXJ5CgoyMDEwLTAzLTI1IDE3OjIxOjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBpbXByb3ZlIGJ1ZmZlciBsZXZlbCBtZWFzdXJlbWVudCBpbiBkb3dubG9hZCBtb2RlCgkgIEtlZXAgdHJhY2sgb2YgdGhlIGN1cnJlbnQgYnVmZmVyIGxldmVsIGluIHRoZSBjdXJyZW50IHJhbmdlIGluIGRvd25sb2FkIG1vZGUgc28KCSAgdGhhdCB3ZSBwb3N0IHRoZSBjb3JyZWN0IGJ1ZmZlcmluZyBtZXNzYWdlcy4KCjIwMTAtMDMtMjUgMTU6NTQ6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBsaWJzOiBkb24ndCB1c2UgZmFuY3kgc2hlbGwgZmVhdHVyZXMgd2hlbiBpbnZva2luZyBnb2JqZWN0LWludHJvc3BlY3Rpb24gc2Nhbm5lcgoJICBJdCdzIFBPU0lYLCBidXQgdGNzaCBkb2Vzbid0IHNlZW0gdG8gc3VwcG9ydCBpdC4KCjIwMTAtMDMtMjUgMTM6NDY6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBsaWJzOiBmaXggUEtHX0NPTkZJR19QQVRIIHVzZWQgd2hlbiBjYWxsaW5nIGdvYmplY3QtaW50cm9zcGVjdGlvbiBzY2FubmVyCgkgIE91ciBvd24gcGtnY29uZmlnIGRpcmVjdG9yeSBzaG91bGQgY29tZSBmaXJzdCwgc28gdGhhdCBwa2ctY29uZmlnIHVzZXMKCSAgdGhlIGluLXRyZWUgbGliZ3N0cmVhbWVyIGFuZCBub3Qgc29tZSBleHRlcm5hbCBvbmUgd2hlbiAtLXBrZz1nc3RyZWFtZXItMC4xMAoJICBpcyBwYXNzZWQgdG8gZy1pci1zY2FubmVyLgoJICBTZWUgIzYwMzcxMC4KCjIwMTAtMDMtMjUgMTA6Mjc6MDAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgR3N0QWRhcHRlcjogYWRkIGEgdW5jaGVja2VkIHZhcmlhbnQgb2YgZmx1c2ggZm9yIGludGVybmFsIHVzYWdlCgkgIFRyaW1zIG9mZiAxMC0yMCUgY3B1IHRpbWUgd2hlbiB1c2luZyBnc3RfYWRhcHRlcl90YWtlW19idWZmZXJdCgoyMDEwLTAzLTE5IDE1OjEwOjA3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ3M6IEFkZCBuZXcgX1VTRVJfUkFUSU5HIHRhZwoJICBBZGRzIGEgbmV3IHRhZyBmb3IgdXNlciBmYXZvcml0ZSBtZWRpYSByYXRpbmcuCgkgIFVzZXIgcmF0aW5nIGluZm9ybXMgaG93IG11Y2ggKGZyb20gMCB0byAxMDApIGEgdXNlcgoJICAnbGlrZXMnIGEgbWVkaWEuCgkgIEhhdmluZyBhbiBwZXJjZW50IHVpbnQgcmFuZ2UgZm9yIHRoaXMgaXMgZWFzeSB0byBtYXAgaW50byBvdGhlciBzY2FsZXMsCgkgIGxpa2Ugc29tZSBwbGF5ZXJzIHRoYXQgYWxsb3cgdXNlcnMgdG8gYXR0cmlidXRlICdzdGFycycgdG8gaXRzCgkgIG1lZGlhLgoJICBBUEk6IEdTVF9UQUdfVVNFUl9SQVRJTkcKCSAgRml4ZXMgIzUyMDY5NwoKMjAxMC0wMy0yNCAxOTowMjoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIG1vcmUgaW5mbyBpbiB0aGUgYnVmZmVyaW5nIHF1ZXJ5CgkgIEFkZCB0aGUgZXN0aW1hdGVkIGRvd25sb2FkIHRpbWUgYW5kIGVzdGltYXRlZCB0aW1lIGxlZnQgdG8gdGhlIGJ1ZmZlcmluZyBxdWVyeQoJICByZXN1bHRzIGFsb25nIHdpdGggdGhlIGVzdGltYXRlZCBkb3dubG9hZCBhbmQgcGxheWJhY2sgc3BlZWQuCgoyMDEwLTAzLTI0IDE4OjE4OjEzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBpbXBsZW1lbnQgZmx1c2hpbmcgaW4gZG93bmxvYWQgYnVmZmVyaW5nCgkgIE1haW50YWluIGEgc2VwYXJhdGUgdmFyaWFibGUgdG8gY29udHJvbCBzcmMgYW5kIHNpbmsgZmxvd3JldHVybiB2YWx1ZXMgc28gdGhhdAoJICB3ZSBjYW4gdW5sb2NrIHRoZSBzcmMgcGFydCB3aXRob3V0IHNodXR0aW5nIGRvd24gdGhlIHNpbmsgcGFydC4KCSAgQWRkIGZsdXNoaW5nIGZvciB1cHN0cmVhbSBwdWxsIGJhc2VkIGVsZW1lbnRzIHRoYXQgdW5ibG9ja3Mgb3VyIGdldHJhbmdlCgkgIGZ1bmN0aW9uLiBUaGlzIGltcGxlbWVudHMgc2Vla2luZyB3aGVuIGJsb2NraW5nIGZvciBtb3JlIGRhdGEuCgkgIEFkZCBzb21lIGFyYml0cmFyeSB0aHJlc2hvbGQgYmVmb3JlIGF0dGVtcHRpbmcgYSBzZWVrLiBBZGQgYSBGSVhNRSBmb3IgdGhpcwoJICBiZWNhdXNlIHdlIG5lZWQgdG8gZmluZCBhIHNlbnNpYmxlIHRocmVzaG9sZCBiYXNlZCBvbiB0aGUgaW5wdXQgcmF0ZS4KCjIwMTAtMDMtMjQgMTg6NTA6MDIgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDU1Y2Q1MTQgdG8gYzFkMDdkZAoKMjAxMC0wMy0yNCAxNzozMjo1NCArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBSZW1vdmUgdW51c2VkIGNvZGUKCSAgT1BUX0NGTEFHUyB3YXMgbmV2ZXIgQUNfU1VCU1QoKSdlZCBzbyBpdCB3YXNuJ3QgdXNlZC4gQW5kIHRoZSBsYXN0IHRpbWUKCSAgaXQgd2FzIHRvdWNoZWQgd2FzIGluIDIwMDUuCgoyMDEwLTAzLTI0IDE1OjQ3OjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgYnVpbGQ6IGZpeCBtYWtlIGRpc3RjaGVjawoJICBUaGUgY2hhbmdlIGZyb20gR1NUX0FMTF9DRkxBR1MgdG8gR1NUX09QVElPTl9DRkxBR1MgZHJvcHBlZCB0aGUgaW5jbHVkZXMsCgkgIHB1dHRpbmcgdGhlbSBiYWNrIGZpeGVzIG1ha2UgZGlzdGNoZWNrLgoKMjAxMC0wMy0yNCAxNToxNToyMyArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBGaXggdGVzdHMgYWZ0ZXIgc2V0X2VsZW1lbnRfZGV0YWlscygpIGRlcHJlY2F0aW9uCgoyMDEwLTAzLTI0IDEzOjMzOjU4ICswMTAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dpdC11cGRhdGUuc2g6CgkgIGdpdC11cGRhdGU6IEZpeCBhbmQgcmVzdHJ1Y3R1cmUgbG9naWMKCjIwMTAtMDMtMTkgMjI6MzY6MDcgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIERlcHJlY2F0ZWQgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHMoKQoJICBVc2UgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlKCkgaW5zdGVhZC4gSWYgeW91IHdhbnQgdG8KCSAgY29udmVydCBhdXRvbWF0aWNhbGx5LCBoZXJlJ3MgYSBzY3JpcHQ6CgkgIGZvciBmaWxlIGluIGBnaXQgZ3JlcCAtbCBHc3RFbGVtZW50RGV0YWlsc2A7IGRvCgkgIHNlZCAtaSAtbiAtciAnCgkgIDFoCgkgIDEhSAoJICAkIHsKCSAgZwoJICBzLygoXC9cKlteXG5dKlwqXC8pP1xuKSpbXlxuXSpHc3RFbGVtZW50RGV0YWlscyAuKiA9XHMqR1NUX0VMRU1FTlRfREVUQUlMU1xzKlwoKFwiW15cIl0qXCIsXHMqXCJbXlwiXSpcIixccypcIlteXCJdKlwiLFxzKihcIlteXCJdKlwiXHMqKSopXCk7XG4qKC4qKWdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzIFwoKFteLF0qKSxccypbXildKlwpL1xuXG5cNWdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSAoXDYsIFwzKS8KCSAgcy8oKFwvXCpbXlxuXSpcKlwvKT9cbikqW15cbl0qR3N0RWxlbWVudERldGFpbHMgLiogPVxzKlx7XHMqKFwiW15cIl0qXCIsXHMqXCJbXlwiXSpcIixccypcIlteXCJdKlwiLFxzKihcIlteXCJdKlwiXHMqKSopXH07XG4qKC4qKWdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzIFwoKFteLF0qKSxccypbXildKlwpL1xuXG5cNWdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSAoXDYsIFwzKS8KCSAgcAoJICB9JyAkZmlsZQoJICB+L2dzdC9nc3RyZWFtZXIvdG9vbHMvZ3N0LWluZGVudCAkZmlsZQoJICBkb25lCgoyMDEwLTAzLTI0IDEwOjU3OjA4ICswMTAwICBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBGaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZSBjb21waWxlciB3YXJuaW5nCgoyMDEwLTAzLTIzIDE5OjI1OjA4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICB0ZXN0czogcmVtb3ZlIHVudXNlZCBDSEVDS19DRkxBR1MgYW5kIENIRUNLX0xJQlMgZnJvbSBNYWtlZmlsZS5hbQoKMjAxMC0wMy0yMyAxOToyMzoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBhZGQgbWFwcGluZyBmb3IgKHVpbnQpIHRvIGFsbG93IGRlc2VyaWFsaXNhdGlvbiBvZiB1bnNpZ25lZCBpbnRlZ2VycwoJICBVbnNpZ25lZCBpbnRzIGFyZSB1c2VkIGluIHRhZ2xpc3RzLCB3b3VsZCBiZSBuaWNlIHRvIGJlIGFibGUgdG8KCSAgZGVzZXJpYWxpc2UgdGhlbSwgZXNwLiBpbiBjb25uZWN0aW9uIHdpdGggdGhlIHRhZ2luamVjdCBBUEkuCgoyMDEwLTAzLTIzIDE5OjI1OjI5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBpbXBsZW1lbnQgc2Vla2luZyBpbiBkb3dubG9hZCBtb2RlCgkgIFdoZW4gaW4gZG93bmxvYWQgbW9kZSBhbmQgdGhlIHJlcXVlc3RlZCBvZmZzZXQgaXMgdG9vIGZhciBhd2F5LCBhdHRlbXB0IHRvIGRvIGEKCSAgc2VlayByZXF1ZXN0IHRvIGZldGNoIHRoZSBkYXRhLgoJICBLZWVwIHRyYWNrIG9mIGFsbCBkb3dubG9hZGVkIHBhcnRzIGFuZCBtZXJnZSByYW5nZXMgd2hlbiBuZWVkZWQuCgkgIEZpeGVzICM2MDA4NzcKCjIwMTAtMDMtMjIgMTE6MDY6MjEgLTAzMDAgIEFuZHLDqSBEaWViIE1hcnRpbnMgPGFuZHJlLmRpZWJAZ21haWwuY29tPgoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJICBnaXQtdXBkYXRlLnNoOiB1c2UgYXV0b2dlbi5zaCBpbnN0ZWFkIG9mIGF1dG9yZWdlbi5zaCBvbiBmcmVzaCByZXBvc2l0b3JpZXMuCgkgIEZpeGVzICM2MTM1OTMuCgoyMDEwLTAzLTIyIDE3OjEwOjA2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ2V0dGV4dC5oOgoJICBnZXR0ZXh0OiBidWlsZCBmaXhlczogI2lmIC0+ICNpZmRlZgoKMjAxMC0wMy0yMiAxMzoxNjozMyArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmM6CgkgIEFkZCAtV3dyaXRlLXN0cmluZ3MKCSAgYW5kIGZpeCBpdHMgd2FybmluZ3MKCjIwMTAtMDMtMTggMTA6MjI6MDkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2UtbGF1bmNoOiBtYWtlIGRlbGF5ZWQgc2V0IHJlY3Vyc2l2ZQoJICBSaWdodCBub3cgZGVsZXllZCBzZXQgd291bGQgb25seSB0cnkgZm9yIGZpcnN0IHNldCBvZiBjaGlsZHJlbi4gV2UgbmVlZCB0byBrZWVwCgkgIHRyeWluZyB0byBzdXBwb3J0IGFyYml0cmFyeSBkZWVwIGhpZXJhcmNoaWVzIChsaWtlIGluIHBsYXliaW4yIHdpdGggYXV0bypzaW5rcykuCgkgIEFsc28gR3N0QmluIHdvdWxkIG5lZWQgdG8gYWN0dWFseSBlbWl0IHRoZSBjaGlsZC1hZGRlZC9yZW1vdmVkIHNpZ25hbCBhcyBpdAoJICBpbXBsZW1lbnRzIHRoZSBpZmFjZS4gRml4ZXMgIzYxMzIxNS4KCjIwMTAtMDMtMjIgMDg6NDA6MzQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay5wYy5pbjoKCSAgcGtnY29uZmlnOiBVc2UgQExJQk1AIGluc3RlYWQgb2YgLWxtCgoyMDEwLTAzLTE5IDAxOjAyOjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkgIHBrZ2NvbmZpZzogYWRkIGJhY2sgc3VwcG9ydCBmb3IgYnVpbGRkaXIgIT0gc3JjZGlyIGNhc2UgaW4gdW5pbnN0YWxsZWQgc2V0dXAKCSAgQXR0ZW1wdCB0byBhZGQgYmFjayBzdXBwb3J0IGZvciBidWlsZGRpciAhPSBzcmNkaXIuIFVzZSBhYnNvbHV0ZSBwYXRocwoJICBpbnN0ZWFkIG9mIHJlbGF0aXZlIHBhdGhzIGJhc2VkIG9uIHBjZmlsZWRpciB0aGlzIHRpbWUgdG8gbWFrZSB0aGluZ3MKCSAgY2xlYXJlciAtIHRoZXJlJ3Mgbm90IHJlYWxseSBhbnkgbmVlZCBmb3IgdW5pbnN0YWxsZWQgdHJlZXMgdG8gYmUKCSAgcmVsb2NhdGFibGUgd2l0aG91dCByZS1ydW5uaW5nIGNvbmZpZ3VyZS4KCjIwMTAtMDMtMTggMTE6MTg6MzkgKzAwMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBJbXBsZW1lbnQgUW9TIG1lc3NhZ2UgcG9zdGluZwoJICBBbmQgc29tZSBtb3JlIGZvciBidWcgIzMyMjk0NwoKMjAxMC0wMy0xOCAxMzo0MTozNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBjYXRjaCwgcGFyc2UgYW5kIHN0b3JlIFFvUyBldmVudCB2YWx1ZXMKCSAgQ2F0Y2gsIHBhcnNlIGFuZCBzdG9yZSB0aGUgUW9TIHZhbHVlcyBmcm9tIFFvUyBldmVudHMgZm9yIGxhdGVyIHVzZS4KCjIwMTAtMDMtMTcgMTU6Mjk6NDggKzAwMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IEltcGxlbWVudCBRb1MgbWVzc2FnZSBwb3N0aW5nIGluIGJhc2VzaW5rCgkgIFBvc3QgUW9TIG1lc3NhZ2VzIHdoZW4gZnJhbWVzIGFyZSBkcm9wcGVkLgoJICBUaGlzIGdvZXMgYSBsaXR0bGUgZnVydGhlciB0b3dhcmRzIHJlc29sdmluZyBidWcgIzMyMjk0NwoKMjAxMC0wMy0xNyAxOToyNjozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IGltcHJvdmUgZG9jcyBhIGxpdHRsZQoKMjAxMC0wMy0xNyAxOToxNjo0MiArMDEwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVzc2FnZTogYWRkIFFvUyBtZXNzYWdlIHRvIGluZm9ybSBhcHBzIG9mIGxvc3QgZGF0YQoJICBUaGlzIGhhcyBiZWVuIGltcGxlbWVudGVkIGFzIHBlciBwYXJ0LXFvcy50eHQgYW5kIHBhcnRpYWxseSBhZGRyZXNzZXMKCSAgYnVnICMzMjI5NDcKCjIwMTAtMDMtMTcgMTY6NDQ6MDUgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJICB0ZXN0OiBSZW1vdmUgbmVlZGxlc3MgY2FzdAoJICBHc3RWYWx1ZUFycmF5Lm5hbWUgaXMgY29uc3Qgbm93CgoyMDEwLTAzLTE3IDE0OjMzOjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkgIFJldmVydCAiQWRkIHNyY2RpciB0byBpbmNsdWRlcyBmb3Igb3V0LW9mLXNvdXJjZSBidWlsZHMiCgkgIEkgZG9uJ3Qga25vdyBob3cgdGhpcyBldmVyIHdvcmtlZCwgYXMgaXQgc2VlbXMgdG8gcHV0IC1JLi8uLgoJICBhbmQgLUkuLy4uL2xpYnMgdmVyYmF0aW0gaW50byB0aGUgaW5jbHVkZXMsIGF0IGxlYXN0IHdpdGgKCSAgY3VycmVudCBhdXRvdG9vbHMgdmVyc2lvbnMuCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMjc5YTgwZmYyN2JhNGM5MGY1Mjk4MWU4OWU3MTBlYjExODFiYzIwMS4KCjIwMTAtMDMtMTcgMTU6NDY6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIGRvY3M6IGF2b2lkIGNvbmZ1c2lvbiBiZXR3ZWVuIGV2ZW50cyBhbmQgbWVzc2FnZXMKCjIwMTAtMDMtMTcgMTI6MTg6MTggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sc291cmNlLmg6CgkgIGNvbnRyb2xsZXI6IE1hcmsgcHJvcGVydHlfbmFtZSBpbiBHc3RWYWx1ZUFycmF5IGFzIGNvbnN0CgkgIFRoaXMgd29uJ3QgYW5kIHNob3VsZCBub3QgYmUgY2hhbmdlZCBmcm9tIGFueSBBUEkKCjIwMTAtMDMtMTcgMTI6NDU6NDkgKzAyMDAgIE1hcnQgUmF1ZHNlcHAgPGxlaW9AZ2VudG9vLm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGRvY3M6IGZpeCB0eXBvCgoyMDEwLTAzLTE2IDA5OjU2OjE2ICswMjAwICBNYXJ0IFJhdWRzZXBwIDxsZWlvQGdlbnRvby5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJICBkb2NzOiBhZGQgbWlzc2luZyAiU2luY2U6IDAuMTAuMjYiIG1hcmtlciBmb3IgZ3N0X2RhdGFfcXVldWVfbmV3X2Z1bGwoKQoKMjAxMC0wMy0xNiAwOTo0MjoyMSArMDIwMCAgTWFydCBSYXVkc2VwcCA8bGVpb0BnZW50b28ub3JnPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBkb2NzOiBmaXggc2luY2UgdGFnIGZvciBnc3Rfc3RydWN0dXJlX2lkX2hhc19maWVsZF90eXBlZCgpCgkgIGdzdF9zdHJ1Y3R1cmVfaWRfaGFzX2ZpZWxkX3R5cGVkIHdhcyBhZGRlZCBpbiAwLjEwLjI2LCBub3QgMC4xMC4xNi4KCSAgQXBwYXJlbnQgdHlwbyBpbiBjb21taXQgZjllM2I3MmYgd2hlbiB0aGUgQVBJIHdhcyBhZGRlZC4KCjIwMTAtMDMtMTcgMTA6NTM6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkgIGRvY3M6IGZpeCBTaW5jZSBtYXJrZXJzIGZvciBnc3RfYnl0ZV93cml0ZXJfcHV0X2Zsb2F0KigpCgkgIEFzIHRoZSBoZWFkZXJzIHdlcmUgYnJva2VuIGluIDAuMTAuMjYgdGhlIGZ1bmN0aW9ucyB3ZXJlbid0IHJlYWxseQoJICB1c2FibGUgYmFjayB0aGVuLCBzbyB3ZSBzaG91bGQgYWR2ZXJ0aXNlIHRoZW0gYXMgYmVpbmcgdGhlcmUgb25seQoJICBzaW5jZSAwLjEwLjI3LgoJICBTcG90dGVkIGJ5IE1hcnQgUmF1ZHNlcHAuCgoyMDEwLTAzLTE2IDE3OjU2OjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgZ3N0OiB1c2UgI2lmIEdMSUJfQ0hFQ0tfVkVSU0lPTiBpbnN0ZWFkIG9mICNpZm5kZWYgR0xJQk1BQ1JPCgkgIGZvciBiZXR0ZXIgZ3JlcHBhYmlsaXR5IGF0IHRoZSB0aW1lIHdlIGJ1bXAgR0xpYiB2ZXJzaW9uIHJlcXVpcmVtZW50cy4KCjIwMTAtMDMtMTQgMTE6NDc6MjMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogZGVhY3RpdmF0ZSBwYWQgaWYgd2UgY2FuJ3QgZ2V0IGxlbmd0aCBvciBpdCdzIGEgbGVuZ3RoIG9mIHplcm8uCgkgIEZpeGVzIGlzc3VlcyB3aGVuIHJlLXVzaW5nIHR5cGVmaW5kIGFmdGVyIGEgZmlsZSBvZiBsZW5ndGggemVyby4KCjIwMTAtMDMtMTYgMTA6MzI6MTIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEFjY2VwdCBub24tZml4ZWQgY2FwcyBzdWdnZXN0aW9ucwoJICBXaGVuIGRvaW5nIHBhZF9hbGxvY3MsIHVzZSBub24tZml4ZWQgY2FwcyBzdWdnZXN0aW9ucyBhbmQKCSAgdHJ5IHRvIGZpeGF0ZSB0aGVtIGJlZm9yZSB1c2luZy4gVGhpcyBtYWtlcyBwb3NzaWJsZSB0bwoJICBoYXZlIHN1Z2dlc3RlZCBidWZmZXIgc2l6ZSB3aXRoIDAgaW4gYmFzZXRyYW5zZm9ybSBqdXN0CgkgIHRvIHNpZ25hbCB1cHN0cmVhbSBhIHJlbmVnb3RpYXRpb24gaXMgbmVlZGVkCgkgIEZpeGVzICM1NzYyMzQKCSAgRml4ZXMgIzYwOTA0NgoKMjAxMC0wMy0xNiAxMDo0MDo0MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgZG9jczogbWVyZ2UgUW9TIG1lc3NhZ2UgZmllbGRzCgkgIFRoZXJlIHdhcyBhbHJlYWR5IGEgc2VjdGlvbiBhYm91dCBRb1MgbWVzc2FnZXMgdGhhdCBpcyBub3cgbWVyZ2VkIHdpdGggdGhlIG5ldwoJICBpbmZvcm1hdGlvbi4KCjIwMTAtMDMtMTYgMTA6NDQ6MDEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgIHB3ZzogbWVudGlvbiBob3cgdG8gYnVpbGQgYWZ0ZXIgdXNpbmcgdGhlIHByb2plY3Qgc3RhbXAKCjIwMTAtMDMtMTYgMDk6NTY6NDEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IHNucHJpbnRmIG5lZWRzIHRvIGluY2x1ZGUgInN0ZGlvLmgiCgoyMDEwLTAzLTE1IDE4OjQ4OjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICBkb2NzOiB1cGRhdGUgUU9TIGRvY3MgdG8gaW5jbHVkZSBRT1MgbWVzc2FnZXMKCSAgQWRkIHNvbWUgZG9jcyBhYm91dCB0aGUgdmFsdWVzIG5lZWRlZCBmb3IgYSBRb1MgbWVzc2FnZSBhbmQgc29tZSB1c2UKCSAgY2FzZXMuCgkgIFNlZSAjMzIyOTQ3CgoyMDEwLTAzLTE1IDE3OjA3OjU5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiB1c2UgYmlvbmljL2xpYmMgZnJpZW5kbHkgYXJndW1lbnRzIHRvIHByY3RsCgkgIHByY3RsIGlzIHN1cHBvc2VkIHRvIHRha2UgNSBhcmd1bWVudHMuIEl0IHVzZWQgdG8gd29yayB3aXRoIDIgYXJndW1lbnRzIG9uIHNvbWUKCSAgdmVyc2lvbnMgb2YgbGliYyBiZWNhdXNlIGl0IGlzIGRlZmluZWQgYXMgYSB2YXJhZ3MgZnVuY3Rpb24gdGhlcmUuCgkgIFNlZSAjNjExOTExCgoyMDEwLTAzLTE1IDE1OjA3OjM1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogdXBkYXRlIGRvY3MuCgoyMDEwLTAzLTE1IDE0OjQ0OjUxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IFdvcmsgYXJvdW5kIGd0ay1kb2MgcHJvYmxlbQoKMjAxMC0wMy0xNSAxNDo0NDoxNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSAgYnl0ZXdyaXRlcjogVXNlIGNvcnJlY3QgZ3RrLWRvYyB3b3JrYXJvdW5kCgoyMDEwLTAzLTE1IDE0OjA1OjM1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogSGFuZGxlIGl0ZXJhdG9yIHJlc3luY3MgaW4gZ3N0X3BhZF9wcm94eV9zZXRjYXBzKCkKCSAgRml4ZXMgYnVnICM2MTI4ODEuCgoyMDEwLTAzLTE1IDE0OjQ4OjE5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBjb25maWd1cmUgdGhlIG9iamVjdCBuYW1lIGFzIHRocmVhZCBuYW1lCgkgIFdoZW4gd2UgaGF2ZSBwcmN0bCBhdmFpbGFibGUsIHVzZSBpdCB0byBzZXQgdGhlIGNvbmZpZ3VyZWQgb2JqZWN0IG5hbWUgYXMgdGhlCgkgIHRocmVhZCBuYW1lIGZvciBiZXR0ZXIgZGVidWdnaW5nLgoJICBCYXNlZCBvbiBwYXRjaCBieSBSb2JlcnQgU3dhaW4uCgoyMDEwLTAzLTE1IDEzOjQ4OjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHNldCBhIGdvb2QgbmFtZSBvbiB0aGUgdGFzayBvZiB0aGUgcGFkCgkgIFVzZSB0aGUgZWxlbWVudDpwYWQgbmFtZXMgdG8gY29uZmlndXJlIGEgZ29vZCBuYW1lIGZvciB0aGUgcGFkIHRhc2suCgoyMDEwLTAzLTE1IDEyOjEzOjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suaDoKCSAgdGFzazogcmV0YWIKCjIwMTAtMDMtMTUgMTA6MjY6MTggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgbG9nZ2luZzogcmVtb3ZlIGV4dHJhIG5ld2xpbmUKCjIwMTAtMDMtMDQgMjM6MzY6NTAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiB0dXJuIGdfcmV0dXJuX2lmX2ZhaWwgaW50byBnX2Fzc2VydC4KCSAgVGhpcyBlaXRoZXIgbXVzdCBuZXZlciBoYXBwZW4gKHdoaWNoIG1ha2VzIHNlbnNlIGluIHRoaXMgY2FzZSkgYW5kIHRodXMgc2hvdWxkCgkgIHVzZSBhc3NlcnQoKSBvciB3ZSBzaG91bGQgdXNlIGEgdHJhZGl0aW9uYWwgaWYgKHBvbGxfZGF0YS0+bWVzc2FnZSkgcmV0dXJuOwoJICB0byBhdm9pZCBkaWZmZXJuZXQgYmVoYXZpb3VyIG9mIGludGVuYWwgYXBpIHdoZW4gY29tcGlsaW5nIHdpdGgKCSAgR19ESVNBQkxFX0NIRUNLUy4KCjIwMTAtMDMtMDMgMjM6Mzc6MDEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IG1vdmUgdGhlIGNoZWNrIHRvIHRoZSBwdWJsaWMgYXBpLgoJICBUaGlzIGF2b2lkcyBjcmVhdGluZyBlbXB0eSBjYXBzIGFuZCBkZXN0cm95aW5nIHRoZW0gaW4gdGhlIGNhc2Ugb2YgYW4gZXJyb3IuIFdlCgkgIGFsc28gYXZvaWQgZG91YmxlIGNoZWNraW5nIGluIG90aGVyIGNvZGUgcGF0aCB3aGVyZSB3ZSBjYWxsIHRoZSBpbnRlcm5hbCBhcGkuCgoyMDEwLTAzLTAzIDIzOjM0OjU4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiB0aGlzIGlzIGludGVybmFsIEFQSSB3aGVyZSB3ZSBuZWVkIHRvIGVuc3VyZSAhTlVMTCBoaWdoZXIgdXAKCjIwMTAtMDMtMDMgMjE6NTA6MjEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiB0aGlzIGlzIGFuIGludGVybmFsIGZ1bmN0aW9uIHdoZXJlIHdlIGFscmVhZHkgZW5zdXJlICFOVUxMIHdoZW4gY2FsbGluZwoKMjAxMC0wMi0yNiAwOToyOToyMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogZml4IGNhc2Ugb2YgcGFkIGZsYWcKCSAgRHVlIHRvIGEgdHlwbyB0aGUgY29kZSB3YXMgYWx3YXlzIHNob3dpbmcgdGhlIGZsYWcgYXMgJ3MnIChsb3dlciBjYXNlKS4KCSAgRml4ZXMgIzYxMTA3NQoKMjAxMC0wMi0yMyAyMzo1MDozNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZGVidWc6IGFkZCBwcmV0dHkgcHJpbnRlciBmb3IgZXZlbnRzCgkgIEFkZGVyIGlzIHVzaW5nIEdTVF9QVFJfRk9STUFUIGZvciBldmVudHMgYWxyZWFkeSwgc28gd2UgbWlnaHQgYWN0dWFseQoJICBpbXBsZW1lbnQgdGhpcyBhbmQgcHJpbnQgb3V0IHNvbWUgdXNlZnVsIGluZm8uCgoyMDEwLTAzLTEzIDExOjAzOjU5ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIEFkZCBzb21lIDAuMTEgRklYTUVzIGZvciBHc3RQbHVnaW5Jbml0RnVuYwoJICBTZWUgOGZlNjMwMDBkZTMxYmIyYmNmMzQ2ZDU5MjMwZGVhMDYxMTc5OTdjZCBmb3Igd2h5IGhhdmluZyBhIFRSVUUvRkFMU0UKCSAgcmV0dXJuIHZhbHVlIGlzIGEgYmFkIGlkZWEuCgkgIEkndmUgc2Nhbm5lZCBhIGZldyBwbHVnaW5zIGFuZCB0aGV5IGdlbmVyYWxseSBnZXQgaXQgd3JvbmcgYW5kIGFyZW4ndAoJICB1bmxvYWRhYmxlIHdoZW4gdGhleSByZXR1cm4gRkFMU0UuCgoyMDEwLTAzLTEyIDE5OjA3OjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSBmb3IgbmV3IHN0cmluZ3MKCjIwMTAtMDMtMTIgMTk6MDU6MTYgKzAwMDAgIExlbyBTaW5nZXIgPGxzaW5nZXJAY2FsdGVjaC5lZHU+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBnc3RpbmZvOiBmaXggY29tcGlsYXRpb24gZXJyb3IgaWYgSEFWRV9SRUdJU1RFUl9QUklOVEZfU1BFQ0lGSUVSIGlzIHVuZGVmaW5lZAoJICBVc2UgI2lmIEhBVkVfRk9PIGluc3RlYWQgb2YgI2lmZGVmIEhBVkVfRk9PLgoJICBGaXhlcyAjNjEyNzMzLgoKMjAxMC0wMy0xMiAxNjo0Mjo0NyArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW5zOiBEbyBub3QgZXZlciB1bmxvYWQgYSBwbHVnaW4gYWZ0ZXIgY2FsbGluZyBpbnRvIGl0CgkgIFRoaXMgaXMgd2hhdCBjYW4gaGFwcGVuIGluIGEgcGx1Z2luX2luaXQgZnVuY3Rpb246CgkgIC0gQW4gZWxlbWVudCBiYXNlZCBvbiBHc3RCYXNlU2luayBpcyByZWdpc3RlcmVkCgkgIC0gT3RoZXIgZWxlbWVudHMgZmFpbCB0byByZWdpc3RlcgoJICAtIFRoZSBwbHVnaW5faW5pdCBmdW5jdGlvbiByZXR1cm5zIEZBTFNFCgkgIE5vdyBpZiB0aGlzIHRoZSBwbHVnaW4gaXMgdGhlIGZpcnN0IHBsdWdpbiB0byBsaW5rIGFnYWluc3QKCSAgbGliZ3N0YmFzZS5zbywgaXQgd2lsbCBoYXZlIGNhdXNlZCBsaWJnc3RiYXNlLnNvIHRvIGJlIGxvYWRlZCBhbmQgc3RhdGljCgkgIHN0cmluZ3MgZnJvbSB0aGF0IGxpYnJhcnkgd2lsbCBoYXZlIGJlZW4gYWRkZWQgdG8gZ29iamVjdCB3aGlsZQoJICByZWdpc3RlcmluZyBHc3RCYXNlU2luay4KCSAgU28gdW5sb2FkaW5nIHRoZSBwbHVnaW4gd2lsbCBjYXVzZSB0aG9zZSBzdHJpbmdzIHRvIGdvIHN0YWxlIGFuZCB0aGUKCSAgbmV4dCBwbHVnaW4gdXNpbmcgR3N0QmFzZVNpbmsgd2lsbCBjcmFzaC4gU28gd2UgbXVzdCBub3QgdW5sb2FkIG1vZHVsZXMKCSAgYWZ0ZXIgY2FsbGluZyBpbnRvIHRoZW0gZXZlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD01NzI4MDAKCjIwMTAtMDMtMTIgMTU6MzY6MzggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIGludGVycG9sYXRpb25jb250cm9sc291cmNlOiBEb24ndCBwYXNzIE5VTEwgdG8gdGhlIEdTZXF1ZW5jZSBBUEkKCjIwMTAtMDMtMTIgMTM6MzM6MDAgKzAwMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZ2l0LXVwZGF0ZS5zaDoKCSAgZ2l0LXVwZGF0ZTogRml4IGVycm9yIHJldHVybiB2YWx1ZSBhbmQgbWFrZSB0aGUgc2NyaXB0IGV4aXQgb24gZXJyb3JzCgkgIE5ld2VyIHZlcnNpb25zIG9mIEJBU0ggKDQueD8pIHNlZW0gdG8gZGlzbGlrZSB1c2luZyAtMSBmb3IgYSByZXR1cm4uIEV2ZW4KCSAgdGhvdWdoIGl0J3MgZG9jdW1lbnRlZCBhcyBiZWluZyBzaWduZWQsIEJBU0ggY29tcGxhaW5zIGFib3V0IGl0LCBzbyB1c2UKCSAgMjU1IGluc3RlYWQuCgoyMDEwLTAzLTEyIDEzOjU0OjI5ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBlMjcyZjcxIHRvIDU1Y2Q1MTQKCjIwMTAtMDItMTcgMTM6MDI6NDMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIGdzdDogVXNlIEdfVkFMVUVfQ09MTEVDVF9JTklUIGlmIGF2YWlsYWJsZQoJICBUaGlzIGJyaW5ncyB0b3RhbCBjYWxsIHNwZWVkdXBzIGJldHdlZW4gNSUgYW5kIDI1JS4KCSAgZ3N0X2NhcHNfc2V0X3NpbXBsZV92YWxpc3Q6ICs1JQoJICBnc3Rfc3RydWN0dXJlX3NldF92YWxpc3Q6ICsgMTAlCgkgIGdzdF9zdHJ1Y3R1cmVfaWRfc2V0X3ZhbGlzdDogKzI1JQoJICBnc3RfdGFnX2xpc3RfYWRkX3ZhbGlzdDogKzUlCgkgIE1lYXN1cmVkIHVzaW5nIHZhbGdyaW5kIHdoZW4gcnVuIG92ZXIgdGhlIGRpc2NvdmVyeSBvZiAyMDAgbWVkaWEgZmlsZXMuCgkgIEZpeGVzICM2MTAyNTYKCjIwMTAtMDMtMTEgMjA6Mjk6MjkgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwb2xsLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIHdpbjMyOiBGaXggYnVpbGQgZmFpbHVyZXMgb2YgdGVzdHMKCjIwMTAtMDMtMDkgMjA6Mzg6NDcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnczogQWRkcyBuZXcgZ2VvIGxvY2F0aW9uIHRhZ3MKCSAgQWRkcyBuZXcgdGFncyBHU1RfVEFHX0dFT19MT0NBVElPTl9DT1VOVFJZLAoJICBHU1RfVEFHX0dFT19MT0NBVElPTl9DSVRZIGFuZCBHU1RfVEFHX0dFT19MT0NBVElPTl9TVUJMT0NBVElPTi4KCSAgQVBJOiBHU1RfVEFHX0dFT19MT0NBVElPTl9DT1VOVFJZCgkgIEFQSTogR1NUX1RBR19HRU9fTE9DQVRJT05fQ0lUWQoJICBBUEk6IEdTVF9UQUdfR0VPX0xPQ0FUSU9OX1NVQkxPQ0FUSU9OCgkgIEZpeGVzICM2MTI0MTAKCjIwMTAtMDMtMTEgMTg6MzY6MzIgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgd2luMzI6IEFkZCBwcm90b3R5cGUgZm9yIERsbE1haW4oKQoKMjAxMC0wMy0xMSAxMTo0NjowOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwOS0xMi0yOCAxNzoyNToyMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIGdzdHJlYW1lcjogcmVtb3ZlIHVubmVlZGVkIGNhc3RzCgkgIEdfUEFSQU1fU1BFQ19WQUxVRV9UWVBFIGRvZXMgYW4gZXhwZW5zaXZlIHR5cGUgY2hlY2ssIHdoZXJlYXMgdGhlCgkgIHZhbHVlX3R5cGUgZmllbGQgaXMgYSBwdWJsaWMgZmllbGQsIHNvIHdlIGNhbiBqdXN0IHVzZSBpdCBkaXJlY3RseS4KCjIwMTAtMDMtMTEgMTE6Mzk6NDAgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgUmVtb3ZlIC1XaW5saW5lIGZsYWcgYWdhaW4KCSAgSXQgdHJpZ2dlcnMgZm9yIGEgbG90IG9mIEdTdHJlYW1lciBBUEkgKGV2ZW4gdGhvdWdoIHRob3NlIHRyaWdnZXJzIGFyZQoJICB3cm9uZyBtb3N0IG9mIHRoZSB0aW1lKS4KCSAgSSBtaXNzZWQgaXQgYmVjYXVzZSBpdCBvbmx5IHRyaWdnZXJzIHdpdGggLU8yLCBhbmQgSSB3YXMgdXNpbmcgLU8wLgoKMjAxMC0wMy0xMSAxMToyMDozNSArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBkZjhhN2M4IHRvIGUyNzJmNzEKCjIwMTAtMDMtMTEgMTE6MTA6NDQgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQWRkIGEgYnVuY2ggbW9yZSB3YXJuaW5nIGZsYWdzIHRvIGNvbmZpZ3VyZQoJICBOb25lIG9mIHRoZXNlIGZsYWdzIGNhdXNlIHdhcm5pbmdzIGFueW1vcmUsIHNvIG5vIGZpeGVzIG5lY2Vzc2FyeS4KCSAgVGhlIGZsYWdzIGFyZToKCSAgLVdmb3JtYXQtbm9ubGl0ZXJhbAoJICAtV2Zvcm1hdC1zZWN1cml0eQoJICAtV29sZC1zdHlsZS1kZWZpbml0aW9uCgkgIC1XY2FzdC1hbGlnbgoJICAtV2lubGluZQoJICAtV2luaXQtc2VsZgoJICAtV21pc3NpbmctaW5jbHVkZS1kaXJzCgkgIC1XYWRkcmVzcwoJICAtV2FnZ3JlZ2F0ZS1yZXR1cm4KCSAgLVduby1tdWx0aWNoYXIKCSAgLVduZXN0ZWQtZXh0ZXJucwoKMjAxMC0wMy0wMiAyMjo1ODowNiArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGRldGFpbHMuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9wYXJzZS90eXBlcy5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGluZGV4ZXJzLmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0aW5kZXhlcnMuaDoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RtZW1pbmRleC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svbGlicy90eXBlZmluZGhlbHBlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgRml4ZXMgZm9yIC1XbWlzc2luZy1kZWNsYXJhdGlvbnMgLVdtaXNzaW5nLXByb3RvdHlwZXMKCSAgQWxzbyBhZGRzIHRob3NlIGZsYWdzIHRvIHRoZSBjb25maWd1cmUgd2FybmluZyBmbGFncwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjExNjkyCgoyMDEwLTAzLTExIDA5OjM5OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBmaXggcHJpbnRmIGZvcm1hdAoJICBVc2UgJXUgdG8gcHJpbnQgdW5zaWduZWQgaW50ZWdlcnMuCgoyMDEwLTAzLTExIDEwOjI5OjIzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL3R5cGVmaW5kaGVscGVyLmM6CgkgIHRlc3RzOiBjYXN0IHRoZSBhcmcuIHRvIGZpeCB0aGUgYnVpbGQgd2l0aCBuZXcgY29tcGlsZXIgb3B0cy4KCSAgVGhpcyBpcyB1Z2x5LiBJIGFtIG5vdCBzdXJlIGlmIHdlIHJlYWxseSB3YW50IHRvIGhhdmUgc3VjaCBjYXN0cyBhbGwgb3ZlciB0aGUKCSAgcGxhY2UuCgoyMDEwLTAzLTExIDEwOjE0OjA1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0LWkxOG4tYXBwLmg6CgkqIGdzdC9nc3QtaTE4bi1saWIuaDoKCSAgaTE4bjogZGVmaW5lIGR1bW15IG5nZXR0ZXh0IGlmIGkxOG4gaXMgZGlzYWJsZWQuCgkgIFdlIGNhbm5vdCBibGluZGx5IHVzZSBnZXR0ZXh0IGZ1bmN0aW9uIGFuZCBub3QgZGVmaW5lIHRoZW0gd2hlbiBub3QgdXNpbmcgZ2V0dGV4dC4KCjIwMTAtMDMtMTEgMTA6MDA6NDUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3QtaTE4bi1hcHAuaDoKCSogZ3N0L2dzdC1pMThuLWxpYi5oOgoJICBpMThuOiBmaXggdGhlIGJ1aWxkIHdpdGggaTE4biBkaXNhYmxlZC4KCSAgRG9uJ3QgaW5jbHVkZSBnZXR0ZXh0LmggaWYgIUVOQUJMRV9OTFMuCgoyMDEwLTAzLTA0IDEwOjQ0OjUyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBhbGxvdyBjb25maWd1cmFibGUgbWVtb3J5IGFsaWdubWVudC4gRml4ZXMgIzU5NjgzMgoJICBUaGUgYWxpZ25tZW50IGd1YXJhbnRlZWQgYnkgbWFsbG9jIGlzIG5vdCBhbHdheXMgc3VmZmljaWVudC4gRS5nLiB2ZWN0b3IKCSAgaW5zdHJ1Y3Rpb25zIG9yIGhhcmR3YXJlIHN1YnN5c3RlbXMgd2FudCBzcGVjaWZpY2FsbHkgYWxpZ25lZCBidWZmZXJzLiBUaGUKCSAgYXR0YWNoZWQgcGF0Y2ggd2lsbCB1c2UgcG9zaXhfbWVtYWxpZ24gaWYgYXZhaWxhYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlcnMuCgkgIFRoZSBkZXNpcmVkIGFsaWdubWVudCBjYW4gYmUgc2V0IHdoZW4gcnVubmluZyBjb25maWd1cmUgdXNpbmcgdGhlIG5ldwoJICAtLXdpdGgtYnVmZmVyLWFsaWdubWVudCBvcHRpb24uCgoyMDEwLTAzLTEwIDIxOjUxOjUwICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDk3MjBhN2QgdG8gZGY4YTdjOAoKMjAxMC0wMy0xMCAyMDo1MjowNiArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSAgTWVyZ2UgYnJhbmNoICd3b3JrJwoKMjAxMC0wMy0wMyAxMTo0NTozOCArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSogZ3N0L2dzdGZvcm1hdC5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0cmFjZS5jOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcGx1Z2luLXNjYW5uZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9tYXNzLWVsZW1lbnRzLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwcmVzZXQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy90eXBlZmluZGhlbHBlci5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvY2xlYW51cC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIEZpeGVzIGZvciAtV3dyaXRlLXN0cmluZ3MKCSAgVGhpcyBjaGFuZ2VzIHNvbWUgQVBJcyBpbiBjb21wYXRpYmxlIHdheXM6CgkgIC0gU29tZSBmdW5jdGlvbnMgbm93IHRha2UgImNvbnN0IGNoYXIgKiIgYXJndW1lbnRzLCBub3QgImNoYXIgKiIKCSAgLSBTb21lIHN0cnVjdHMgbm93IGhhdmUgImNvbnRzIGNoYXIgKiIgbWVtYmVycywgbm90ICJjaGFyICoiCgkgIFRoZSBjaGFuZ2VzIG1heSBjYXVzZSB3YXJuaW5ncyB3aGVuIGNvbXBpbGluZyB3aXRoIHRoZSByaWdodCB3YXJuaW5nCgkgIGZsYWdzLiBZb3UndmUgYmVlbiB3YXJuZWQuCgkgIEFsc28gYWRkcyAtV3dyaXRlLXN0cmluZ3MgYXMgYSB3YXJuaW5nIGZsYWcgaW4gY29uZmlndXJlLmFjLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjExNjkyCgoyMDEwLTAzLTAzIDEwOjMxOjI2ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkgIEZpeGVzIC1XdW5kZWYgd2FybmluZ3MKCSAgLi4uIGFuZCBhZGRzIHRoYXQgZmxhZyB0byBjb25maWd1cmUuYWMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxMTY5MgoKMjAxMC0wMy0wMyAxMDozMTowNSArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb2xsc3RyZXNzLmM6CgkgIGJlbmNobWFya3M6IFJlbW92ZSB1bm5lZWRlZCBnX3RocmVhZF9leGl0KCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxMTY5MgoKMjAxMC0wMy0wMyAxMDoyNjoxNCArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBGaXhlcyBmb3IgLVdvbGQtc3R5bGUtZGVmaW5pdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjExNjkyCgoyMDEwLTAzLTAyIDIzOjUxOjE4ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHhtbC5jOgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZHAtcHJpdmF0ZS5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFyYW1zcGVjcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy90ZXN0cnRwb29sLmM6CgkgIE1ha2UgY29kZSBzYWZlIGZvciAtV3JlZHVuZGFudC1kZWNscwoJICBBZGRzIHRoYXQgd2FybmluZyB0byBjb25maWd1cmUuYWMKCSAgSW5jbHVkZXMgYSB0aW55IGNoYW5nZSBvZiB0aGUgR1NUX0JPSUxFUlBMQVRFX0ZVTEwoKSBtYWNybzoKCSAgVGhlIGdldF90eXBlKCkgZnVuY3Rpb24gaXMgbm8gbG9uZ2VyIGRlY2xhcmVkIGJlZm9yZSBiZWluZyBkZWZpbmVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjExNjkyCgoyMDEwLTAzLTEwIDIwOjQzOjM1ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDBiNmUwNzIgdG8gOTcyMGE3ZAoKMjAxMC0wMy0wMyAxMDowMDo0MSArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBNYWtlIHN1cmUgZ2VuZXJhdGVkIGNvZGUgZG9lc24ndCBydW4gd2l0aCAtV2Vycm9yCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTE2OTIKCjIwMTAtMDMtMTAgMTc6MDM6MjkgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgVXBkYXRlIHRvIGNvbW1vbi8gY2hhbmdlcyB0byBFUlJPUl9DRkxBR1MKCjIwMTAtMDMtMTAgMTk6MTc6NDIgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBSZXZlcnQgInJlZ2lzdHJ5OiByZW1vdmUgdW51c2VkIGZ1bmN0aW9uIgoJICBUdXJucyBvdXQgIHRoZSBmdW5jdGlvbiBpcyBub3QgdW51c2VkLCBidXQgd2FzIGluIGFuICNpZmRlZiBXSU4zMgoJICBzZWN0aW9uLgoJICBXaG9vcHMuCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNTdkNWRiNDI0YzY4YWI1YTYxZjMzY2UzNmNlMDE3OWViMzAyNTFhYy4KCjIwMTAtMDMtMTAgMTY6MDk6MzMgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gN2NjNWViNCB0byAwYjZlMDcyCgoyMDEwLTAzLTAyIDIxOjA3OjMzICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IHJlbW92ZSB1bnVzZWQgZnVuY3Rpb24KCSAgQWN0dWFsbHksIHRoZXJlIHdhcyB0d28gZnVuY3Rpb25zIHdpdGggdGhlIHNhbWUgbmFtZSwgYnV0IG9ubHkgb25lIHdhcwoJICB1c2VkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjExNjkyCgoyMDEwLTAzLTAyIDE2OjIwOjE1ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcmVtb3ZlIHVudXNlZCBnc3RfZWxlbWVudF9kZWZhdWx0X2Vycm9yKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxMTY5MgoKMjAxMC0wMy0xMCAwNzoxNToxNSArMDAwMCAgSmVyZW15IEh1ZGRsZXN0b24gPGplcmVteWh1QGZyZWVkZXNrdG9wLm9yZz4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogVXNlIG11bHEgaW5zdGVhZCBvZiBtdWwgYXMgc29tZSBhc3NlbWJsZXJzIGNhbid0IGd1ZXNzIHRoZSBzaXplIG9mIHRoZSBvcGVyYW5kcwoJICBGaXhlcyBidWcgIzYxMjM3MC4KCjIwMTAtMDMtMTAgMDE6MDk6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA3YWE2NWI1IHRvIDdjYzVlYjQKCjIwMTAtMDMtMDkgMjE6MjA6MjcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA0NGVjY2U3IHRvIDdhYTY1YjUKCjIwMTAtMDItMjYgMTY6MDM6NDcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIHBrZ2NvbmZpZy9NYWtlZmlsZS5hbToKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiBNYWtlIHNvbWUgbW9yZSBydWxlcyBzaWxlbnQgaWYgcmVxdWVzdGVkCgoyMDEwLTAyLTI2IDE1OjMyOjE0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBVc2UgYXV0b21ha2UgMS4xMSBzaWxlbnQgcnVsZXMgaW5zdGVhZCBvZiBzaGF2ZSBpZiBhdmFpbGFibGUKCSAgVGhpcyBtYWtlcyBzdXJlIHRoYXQgd2UgdXNlIHNvbWV0aGluZyB0aGF0IGlzIHN0aWxsIG1haW50YWluZWQgYW5kCgkgIGFsc28gYnJpbmdzIGJhY2sgbGlidG9vbCAxLjUgc3VwcG9ydC4KCjIwMTAtMDItMjIgMTY6MjU6NDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIGxmb2NvbnRyb2xzb3VyY2U6IE9wdGltaXplIGdldF92YWx1ZV9hcnJheSgpCgkgIERvbid0IGNvbnZlcnQgZnJvbSBHVmFsdWUgdG8gdGhlIGFjdHVhbCB0eXBlIGZvciBldmVyeSBzaW5nbGUKCSAgdmFsdWUuCgoyMDEwLTAyLTIyIDE1OjE4OjQxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICBpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZTogT3B0aW1pemUgZ2V0X3ZhbHVlX2FycmF5KCkKCSAgVGhpcyBtYWtlcyBpdCA+MTB4IGZhc3RlciBpZiBtb3JlIHRoYW4gYSBzaW5nbGUgdmFsdWUgaXMgcmVxdWVzdGVkCgkgIGJ5IG5vdCBzZWFyY2hpbmcgaW4gdGhlIEdTZXF1ZW5jZSBmb3IgZXZlcnkgdmFsdWUgYW5kIGNvbnZlcnRpbmcKCSAgdGhlIHZhbHVlIGZyb20gR1ZhbHVlIHRvIHRoZSByZWFsIHZhbHVlIHR5cGUuCgoyMDEwLTAyLTIxIDE3OjM2OjU1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBBZGQgYmVuY2htYXJrIGZvciBnZXR0aW5nIGEgdmFsdWUgYXJyYXkgb2YgdGhlIGNvbnRyb2wgcG9pbnRzCgoyMDEwLTAzLTA4IDIzOjI4OjA0ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIEZpeCB0eXBvcyBpbiBkb2N1bWVudGF0aW9uCgoyMDEwLTAzLTA4IDIzOjA0OjI2ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgY2FwczogRmFpbCB3aGVuIGZyYWN0aW9ucyBhcmUgZm9sbG93ZWQgYnkgcmFuZG9tIHRleHQKCSAgUHJldmlvdXMgY29kZSB0cmVhdGVkICIxLzF5b3VybW9tIiB0aGUgc2FtZSBhcyAiMS8xIiBhbmQgIjF3aW1zbW9tIiB0aGUKCSAgc2FtZSBhcyAiMSIuIE5vdyB0aGUgY29kZSBpcyBzdHJpY3RlciBhbmQgd2lsbCBmYWlsIHRvIGNvbnZlcnQgYQoJICBmcmFjdGlvbiB3aGVuIGZvbGxvd2VkIGJ5IGdhcmJhZ2UgdGV4dC4KCjIwMTAtMDMtMDkgMTc6MzI6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMC4xMC4yOCA9PT0KCjIwMTAtMDMtMDggMjM6MDk6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAwLjEwLjI4CgoyMDEwLTAzLTA4IDIzOjA2OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMC0wMy0wOCAyMjowNToyOSArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGNhcHM6IEFsbG93IDEvbWF4IGFzIHRoZSBtaW5pbWFsIGZyYWN0aW9uIHZhbHVlID4gMAoJICBUaGlzIGlzIHVzZWZ1bCBmb3IgZm9ybWF0cyB0aGF0IHJlcXVpcmUgYSB2YWxpZCBmcmFtZXJhdGUgKGxpa2UKCSAgdGhlb3JhZW5jKS4KCjIwMTAtMDMtMDQgMTU6MjE6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBmaXggdHlwbyBpbiBjb21tZW50cwoKPT09IHJlbGVhc2UgMC4xMC4yNyA9PT0KCjIwMTAtMDMtMDUgMjM6NDM6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAwLjEwLjI3CgoyMDEwLTAzLTA1IDIzOjQxOjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMC0wMy0wNCAxODozOTowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBnc3Rwb2xsOiBkb24ndCBwYXNzIG5vbi1vYmplY3RzIGFzIGZpcnN0IGFyZ3VtZW50IHRvIEdTVF9ERUJVR19PQkpFQ1QoKQoJICBUaGlzIG1heSBjYXVzZSBjcmFzaGVzIHdoZW4gbG9nZ2luZyBpcyBlbmFibGVkLCBlc3BlY2lhbGx5IG9uIHdpbmRvd3MuCgkgIEl0J3Mgbm90IHNhZmUgdG8gcGFzcyByYW5kb20gcG9pbnRlcnMgdG8gZ190eXBlX2NoZWNrX2luc3RhbmNlX2lzX2EoKS4KCSAgRml4ZXMgIzYxMTcxOS4KCjIwMTAtMDMtMDMgMTk6NTQ6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMjYuNCBwcmUtcmVsZWFzZQoKMjAxMC0wMy0wMyAxOTo0OTozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEwLTAzLTAzIDEyOjA2OjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJICBkb2NzOiBmaXggdXAgYnl0ZXdyaXRlciBkb2MgY2h1bmtzIGZvciBmbG9hdCBmdW5jdGlvbnMgYXMgd2VsbAoKMjAxMC0wMy0wMyAxMToyODoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSAgYnl0ZXdyaXRlcjogZml4IGhlYWRlcnMgZm9yIGZsb2F0L2RvdWJsZSB3cml0aW5nIGZ1bmN0aW9ucwoJICBUaGUgZnVuY3Rpb25zIGFyZSBjYWxsZWQgZ3N0X2J5dGVfd3JpdGVyX3B1dF97ZmxvYXQzMnxmbG9hdDY0fV8qKCkgYW5kIG5vdAoJICBnc3RfYnl0ZV93cml0ZXJfcHV0X3tmbG9hdHxkb3VibGV9XyooKS4KCSAgU3BvdHRlZCBieTogQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKMjAxMC0wMy0wMSAxMjowMjo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdzOiB0cnkgdG8gbWFrZSBjb21tZW50IGZvciB0cmFuc2xhdG9ycyBtb3JlIGhlbHBmdWwKCjIwMTAtMDItMjYgMTU6NDY6NTAgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZml4IGVtZXJnZW5jeSByZW5kZXJpbmcgdGltZXN0YW1wIHRyYWNraW5nCgkgIFNwZWNpZmljYWxseSwgaWYgYWxsIChpbmNsdWRpbmcgaW5pdGlhbCkgYnVmZmVycyB0dXJuIHVwIGxhdGUsCgkgIGVtZXJnZW5jeSByZW5kZXJpbmcgc2hvdWxkIGFsc28ga2ljayBpbiBhcHByb3ByaWF0ZWx5LgoJICBGaXhlcyAjNjExMDg3LgoKMjAxMC0wMi0yNCAwMDozMDowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4yNi4zIHByZS1yZWxlYXNlCgoyMDEwLTAyLTI0IDAwOjI5OjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2JnLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vbmwucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEwLTAyLTE5IDEzOjI2OjAxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGludGVycG9sYXRpb25jb250cm9sc291cmNlOiBEb24ndCBwYXNzIE5VTEwgcG9pbnRlcnMgdG8gR1NlcXVlbmNlIEFQSQoJICBUaGlzIGNhdXNlcyBhc3NlcnRpb24gZmFpbHVyZXMuIEZpeGVzIGJ1ZyAjNjEwNDQ0LgoKMjAxMC0wMi0xOSAxMzoyMDozNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDoKCSAgaW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2U6IEFkZCBjb25zdCBxdWFsaWZpZXJzIHRvIHZhbHVlcyBpbiB0aGUgX3NldCBmdW5jdGlvbnMKCSAgVGhlIHZhbHVlcyBhcmUgbm90IG1vZGlmaWVkIGFuZCBhcmUgY29waWVkLCBhIGNvbnN0IGJlZm9yZSB0aGUgcGFyYW1ldGVyCgkgIHNob3VsZCBtYWtlIHRoaXMgZXZlbiBtb3JlIG9idmlvdXMuCgoyMDEwLTAyLTE4IDA5OjE3OjA2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkgIGNvbnRyb2xsZXI6IEFkZCBzb21lIEZJWE1FIDAuMTEgY29tbWVudHMKCjIwMTAtMDItMTcgMTA6MDQ6NTQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICBjb3JlbGVtZW50czogQ29tYmluZSByZWR1bmRhbnQgY29kZQoKMjAxMC0wMi0xNyAwMToyNzoyMiArMDEwMCAgQW5kb25pIE1vcmFsZXMgQWxhc3RydWV5IDx5bGF0dXlhQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICBGaXggY29tcGlsYXRpb24gb2YgZmRzaW5rIGFuZCBmZHNyYyB3aXRoIE1TVkMKCjIwMTAtMDItMTggMTQ6NTg6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBwby92aS5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjI2LjIgcHJlLXJlbGVhc2UKCjIwMTAtMDItMTggMTM6MTI6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zLy5naXRpZ25vcmU6CgkgIC5naXRpZ25vcmU6IGlnbm9yZSBzb21lIG1vcmUgdGVtcG9yYXJ5IGRvY3MgY3J1ZnQKCjIwMTAtMDItMTggMTM6MDk6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiBmaXggaW5kZW50aW5nIGluIHdpbjMyLXVwZGF0ZSB0YXJnZXQKCSAgTm8gaWRlYSB3aHkgd2UgbmVlZCB0byBydW4gZ3N0LWluZGVudCB0d2ljZSBvbiB0aGF0IGZpbGUsIGJ1dCBpdAoJICBvbmx5IHNlZW1zIHRvIHNldHRsZSBvbiBhIGZpbmFsIGZvcm1hdCB3aXRoIG1pbmltYWwgZGlmZiB0byB0aGUKCSAgb25lIGluIGdpdCBhZnRlciB0d28gcnVucy4KCjIwMTAtMDItMTggMTM6MDg6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgZ3N0Y2hlY2s6IG1vcmUgZGVidWcgbG9nZ2luZyBmb3IgZ3N0X2NoZWNrX2VsZW1lbnRfcHVzaF9idWZmZXJfbGlzdCgpCgoyMDEwLTAyLTE4IDExOjUyOjI4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgY29sbGVjdHBhZHM6IEltcHJvdmUgZG9jcyBhYm91dCAnZGF0YScgYXR0cmlidXRlCgkgIEFkZHMgYSByZW1pbmRlciB0byAnZGF0YScgYXR0cmlidXRlIGRvYwoJICBGaXhlcyAjNjEwMzY2CgoyMDEwLTAyLTE4IDE3OjE1OjM1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSAgbWVtaW5kZXg6IGF2b2lkIGJ1c3kgbG9vcCB3aGVuIGRvaW5nIEVYQUNUIGxvb2t1cAoJICBGaXhlcyAjNjEwMzY3LgoKMjAwOS0xMi0yMiAxMTowOToxMCArMDgwMCAgSm9oYW4gQmlsaWVuIDxqb2JpQGxpdGwuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgaW50cm9zcGVjdGlvbjogYWRkIGFubm90YXRpb24gZm9yIGdzdF9lbGVtZW50X2dldF9zdGF0ZQoJICBzdGF0ZSBhbmQgcGVuZGluZyBhcmUgIm91dCIgYXJndW1lbnRzLgoJICBGaXhlcyAjNjA1MTg5LgoKMjAxMC0wMi0xNyAxMjoxNjozNyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSAgZmlsZXNyYzogRG9uJ3QgdXNlIGV4cGVuc2l2ZSBjYXN0IGNoZWNrcyBpbiBfY3JlYXRlCgkgIF9jcmVhdGUoKSBpcyBhIHBhZCBmdW5jdGlvbiBzZXQgYnkgb3Vyc2VsdmVzLCB0aGVyZWZvcmUgd2UncmUgc3VyZSBiYXNlc3JjCgkgIGlzIGEgR3N0RmlsZVNyYy4KCSAgU3BlZWRzIHVwIF9jcmVhdGUoKSBieSAxNyUgYW5kIHRoZSB0b3RhbCBjYWxsIGJ5IDglIChpbnN0cnVjdGlvbiBjYWxscyBtZWFzdXJlbWVudHMKCSAgZG9uZSB3aXRoIHZhbGdyaW5kKS4KCSAgRml4ZXMgIzYxMDI0NgoKMjAxMC0wMi0xNyAxMjoxNDowOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBEb24ndCB1c2UgZXhwZW5zaXZlIGNhc3QgY2hlY2tzIGluIGdldF9yYW5nZS4KCSAgX2dldF9yYW5nZSgpIGlzIGEgcGFkIGZ1bmN0aW9uIHNldCBieSBvdXJzZWx2ZXMsIHRoZXJlZm9yZSB3ZSdyZSBjZXJ0YWluIHRoYXQKCSAgdGhlIHBhcmVudCBpcyBhIEdzdEJhc2VTcmMuCgkgIFNwZWVkcyB1cCBfZ2V0X3JhbmdlIGJ5IDM4JSwgYW5kIHRoZSB0b3RhbCBjYWxsIGJ5IDMwJS4gKHZhbGdyaW5kIGluc3RydWN0aW9uCgkgIGNhbGxzIG1lYXN1cmVtZW50cykuCgkgIEZpeGVzICM2MTAyNDYKCjIwMTAtMDItMTcgMTE6MzE6MDcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgZmRzcmM6IGNsZWFudXAgcGFyYW1ldGVyIGluaXRpYWxpc2F0aW9uIGFuZCBhZGQgY29tZW1udCtsb2dnaW5nCgkgIEluaXRpYWxpemUgbmV3X2ZkIHdpdGggREVGQVVMVF9GRCBhbmQgZmQgd2l0aCAtMS4gU2V0dGluZyB0aGUgcHJvcGVydHkgd2lsbCBzZXQKCSAgbmV3X2ZkIGFuZCBpbiBfdXBkYXRlX2ZkKCkgd2UgY2VoY2sgZmQgYWdhaW5zdCAtMS4gQWxzbyBhZGQgYSBjb21lbnQgYWJvdXQgdGhlCgkgIHdhcm5pbmcgd2UgZ2V0IGluIHRoZSBsb2cgZnJvbSBnc3RfcG9sbF9yZW1vdmVfZmQoKS4gV2UgY291bGQgZ2V0IHJpZCBvZiB0aGUKCSAgd2FybmluZyBpZiB3ZSB3YW50IGJ5IHRyYWNraW5nIGlmIGZkIGhhcyBiZWVuIGFkZGVkIHRvIGZkc2V0LgoKMjAxMC0wMi0xNyAwOTo1NTo1MiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtbWV0YWRhdGEudHh0OgoJICBkZXNpZ246IHdyaXRlIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlIG9mIHRhZy1oYW5kbGluZwoJICBEb2N1bWVudCB0aGUgdGFnaGFuZGxpbmcgaW4gZ3N0cmVhbWVyLiBMaXN0IGdhcHMgYW5kIHByb3Bvc2UgbmV3IG1lY2hhbmlzbXMgdG8KCSAgZGVhbCB3aXRoIHRoZW0uCgoyMDEwLTAyLTE2IDEwOjI3OjE4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiByZW1vdmUgYmxhbmsgbGluZXMgaW4gdmFyaWFibGUgZGVjbGFyYXRpb25zCgoyMDEwLTAyLTE2IDExOjMwOjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkqIHRvb2xzL3Rvb2xzLmg6CgkgIHRvb2xzOiBjYWxsIGdfc2V0X3ByZ25hbWUoKSBiZWZvcmUgZG9pbmcgdGhlIG9wdGlvbiBwYXJzaW5nCgkgIGdfc2V0cHJnbmFtZSBpcyBpbXBsaWNpdGx5IGNhbGxlZCBieSBnX29wdGlvbl9jb250ZXh0X25ldygpIHdpdGggYSBjaGVjawoJICB0byBzZWUgaWYgaXQncyBiZWVuIHNldCBhbHJlYWR5LCBzbyBzZXQgaXQgYmVmb3JlIGdfb3B0aW9uX2NvbnRleHRfbmV3KCkKCSAgTW92ZSB2ZXJzaW9uIHByaW50aW5nIGJhY2sgdW50aWwgYWZ0ZXIgdGhlIG9wdGlvbnMgaGF2ZSBiZWVuIHBhcnNlZCwKCSAgb3RoZXJ3aXNlIGl0IHdvbid0IHdvcmssIHNpbmNlIGl0IGV2YWx1YXRlcyBhIGZsYWcgc2V0IGJ5IHRoZQoJICBvcHRpb24gcGFyc2VyLgoKMjAxMC0wMi0xNiAxMToyNDozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIFJldmVydCAidG9vbHM6IE1vdmUgZ3N0X3Rvb2xzX3ByaW50X3ZlcnNpb24gY2FsbCB0byBhdm9pZCB3YXJuaW5nIGZyb20gbmV3IEdMaWIuIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDkzZGQ5NWYwMmVmM2ZhNTMwZjU0Y2U4MWU4ZmZiYTk2ZjNiNjc5Y2IuCgkgIFRoaXMgY29tbWl0IG1hZGUgLS12ZXJzaW9uIG5vdCB3b3JrIGFueSBsb25nZXIuIFRoZSBnX3NldHByZ25hbWUoKQoJICB3YXJuaW5nIGlzIGZpeGVkIGluIHJlY2VudCBHTGliIHZlcnNpb25zLgoKMjAxMC0wMi0xNiAwODoyNjo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgYnVpbGQ6IG1ha2Ugc3VyZSBnc3QtcGx1Z2luLXNjYW5uZXIgZ2V0cyBpbnN0YWxsZWQgd2hlcmUgd2UgZXhwZWN0IGl0CgkgIEFkZCBjaGVjayB0byBtYWtlIHN1cmUgZ3N0LXBsdWdpbi1zY2FubmVyIHJlYWxseSBnZXRzIGluc3RhbGxlZCB3aGVyZQoJICB3ZSB3aWxsIGxvb2sgZm9yIGl0IGxhdGVyLCBpZS4gcGF0aHMgYW5kIHByZWZpeGVzIGFyZSBzZXQgYXQgY29uZmlndXJlCgkgIHRpbWUgYW5kIG5vdCBzcGVjaWZpZWQgdmlhIG1ha2UuCgkgIEZpeGVzICM2MDk5NDEuCgoyMDEwLTAyLTE1IDIzOjAyOjU5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBkb2NzOiBwcmVmZXIgc2hvcnQgZGVzYyBmcm9tIEdzdEVsZW1lbnREZXRhaWxzCgoyMDEwLTAyLTE1IDAxOjI0OjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGRvY3M6IGZpeCBndGstZG9jIGNodW5rIGZvciBnc3RfY2hlY2tfZWxlbWVudF9wdXNoX2J1ZmZlcl9saXN0KCkKCjIwMTAtMDItMTMgMTU6Mjg6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZGF0YXVyaXNyYy5jOgoJICB0ZXN0czogYWRkIHVuaXQgdGVzdCBmb3IgZGF0YXVyaXNyYwoJICBSZXF1aXJlcyBmaXhlcyBmcm9tIGNvcmUgZ2l0LCBzbyBidW1wIGNvcmUgcmVxdWlyZW1lbnQgdG8gZ2l0IGFzIHdlbGwuCgoyMDEwLTAyLTE1IDAwOjMxOjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSBwbyBmaWxlcyBmb3IgbmV3IGNvbW1lbnRzCgoyMDEwLTAyLTE1IDAwOjI5OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ3M6IHdyYXAgbG9uZyBzdHJpbmcgY29uc3RhbnRzCgkgIEFuZCBmaXggaW5kZW50aW5nIGlzc3VlCgoyMDEwLTAyLTE1IDAwOjIxOjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ3M6IGFkZCBzb21lIGNvbW1lbnRzIGZvciB0cmFuc2xhdG9ycyBzbyB0YWcgbW5lbW9uaWNzIGdldCB0cmFuc2xhdGVkIGNvcnJlY3RseQoJICBXZSB3YW50ICdwcmV2aWV3IGltYWdlJyB0cmFuc2xhdGVkIGFzIGEgbm91biwgbm90IGFzICdwcmV2aWV3IFt0aGVdIGltYWdlJy4KCjIwMTAtMDItMDQgMTc6NDM6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IHByaW50IFdBUk4gZGVidWcgc3RhdGVtZW50cyBmb3Igbm9ybWFsIHRoaW5ncyBsaWtlIEVPUwoKMjAxMC0wMi0xNCAyMzoxNTo0NSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDk2ZGM3OTMgdG8gNDRlY2NlNwoKMjAxMC0wMi0xMyAxNToxODowNSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBSZXNldCB0aGUgd29ya2luZyBtb2RlIHdoZW4gZ29pbmcgdG8gUkVBRFkvTlVMTAoJICBUaGlzIGFsbG93cyBwcm9wZXJseSByZS11c2luZyB0eXBlZmluZCAoZWxzZSBpdCB3b3VsZCB0aGluayBpdCdzCgkgIGFscmVhZHkgZG9uZSB0aGUgdHlwZWZpbmRpbmcgd2hlbiBiZWluZyByZS11c2VkIHdpdGggYW5vdGhlcgoJICBzdHJlYW0pLgoKMjAxMC0wMS0yMiAxMTozODo1OSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGV3cml0ZXIuYzoKCSAgYnl0ZXdyaXRlcjogQWRkcyBhIHRlc3QgZm9yIF9maWxsCgoyMDEwLTAxLTIyIDA5OjE5OjMxIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBieXRld3JpdGVyOiBhZGQgX2ZpbGwgZnVuY3Rpb24KCSAgQWRkcyBhIG5ldyBmdW5jdGlvbiB0byBHc3RCeXRlV3JpdGVyIHRoYXQgd3JpdGVzCgkgIGEgY29uc3RhbnQgdmFsdWUgdG8gYSBtZW1vcnkgYXJlYSAoYWthIG1lbXNldCkuCgkgIFVzZWZ1bCBmb3IgYWRkaW5nIHBhZGRpbmcgdG8gYnVmZmVycy4KCSAgQWxzbyB1cGRhdGVzIC5kZWYgZmlsZSBhbmQgZG9jcy4KCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfZmlsbCgpCgoyMDEwLTAxLTI4IDExOjU3OjMzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBBdm9pZCBtZXNzaW5nIHBhZHMgYWN0aXZhdGlvbgoJICBUeXBlZmluZCBtaWdodCBtZXNzIHVwIHBhZHMgbW9kZXMgKHB1bGwvcHVzaCkgaWYgYQoJICBkb3duc3RyZWFtIGVsZW1lbnQgaXMgcGx1Z2dlZCBhbmQgaXRzIHBhZHMgYWN0aXZhdGVkCgkgIGluICdzdGVwIDInIG9mIHR5cGVmaW5kIHBhZHMgYWN0aXZhdGlvbi4KCSAgVGhpcyBoYXBwZW5zIGJlY2F1c2UgdGhlIGZvbGxvd2luZyBzdGVwcyBkb24ndCBjaGVjawoJICBpZiB3ZSBhbHJlYWR5IGVtaXR0ZWQgdHlwZWZvdW5kIGR1ZSB0byB1cHN0cmVhbSBzZXR0aW5nCgkgIGNhcHMgb24gYnVmZmVycyBiZWluZyBwdWxsZWQgaW4gdGhlIHR5cGVmaW5kIGhlbHBlcnMuCgkgIEF2b2lkIHRoYXQgYnkgY2hlY2tpbmcgaWYgdHlwZWZvdW5kIGlzIGFscmVhZHkgZW1taXRlZC4KCSAgRml4ZXMgIzYwODAzNgoKMjAxMC0wMi0xMiAxNDo0OTo1MiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGJhc2VzcmM6IE1ha2UgbG9ja2luZyBvZiB0aGUgc2VnbWVudCBhIGJpdCBtb3JlIHN0cmljdCBhbmQgdXBkYXRlIGRvY3VtZW50YXRpb24KCSAgVXBkYXRpbmcgdGhlIHNlZ21lbnQgdmFsdWVzIG11c3Qgb25seSBiZSBkb25lIHdoaWxlIGhvbGRpbmcgdGhlCgkgIFNUUkVBTV9MT0NLIGFuZCBPQkpFQ1RfTE9DSy4gVGhpcyBtZWFucywgcmVhZGluZyBjYW4gYmUgZG9uZSBhcwoJICBsb25nIGFzIG9uZSBvZiB0aGVtIGlzIGhlbGQsIG5vdCBib3RoLCB3aGljaCByZW1vdmVzIHNvbWUgbG9jay11bmxvY2sKCSAgYmxvY2tzIGZyb20gcGVyZm9ybWFuY2UgY3JpdGljYWwgY29kZSBwYXRocy4KCSAgQWxzbyBkb2N1bWVudCwgdGhhdCBnc3RfYmFzZV9zcmNfc2V0X2Zvcm1hdCgpICptdXN0KiBiZSBjYWxsZWQgaW4KCSAgc3RhdGVzIDw9IFJFQURZIGFuZCBhZGQgYW4gYXNzZXJ0aW9uIGZvciB0aGlzLiBDaGFuZ2luZyB0aGUgZm9ybWF0CgkgIGxhdGVyIHdpbGwgY29tcGxldGVseSBtZXNzIHVwIHRoZSBzZWdtZW50IGluZm9ybWF0aW9uLgoKMjAxMC0wMi0wOCAwOToxMjowMSArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1jbG9jay54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1pbnRlcmZhY2VzLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1yZXF1ZXN0LnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtc2NoZWR1bGluZy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXRhZ2dpbmcueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1jaGFpbmZuLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctcGFkcy54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLXByb3BzLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctdGVzdGFwcC54bWw6CgkqIGRvY3MvcHdnL2ludHJvLWJhc2ljcy54bWw6CgkgIHB3Zzogc2V2ZXJhbCB0eXBvIGZpeGVzCgkgIEZpeGVzICM2MDkyODYuCgoyMDEwLTAyLTA5IDE3OjUyOjEzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBQcm90ZWN0IHNlZ21lbnQgdmFsdWVzIGZyb20gY29uY3VycmVudCBhY2Nlc3MgZnJvbSBkaWZmZXJlbnQgdGhyZWFkcwoJICBUaGlzIGNvdWxkIGhhcHBlbiBlYXNpbHkgaW4gdGhlIHF1ZXJ5IGZ1bmN0aW9ucyBvciB3aGVuIHRoZSBzaXplIGlzIHNldAoJICBvbiBhcHBzcmMgZnJvbSBzb21lIG5vbi1zdHJlYW1pbmcgdGhyZWFkLgoKMjAxMC0wMi0wNCAyMToxMToyNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZGVsZW1lbnQ6IFByb3RlY3QgaW50ZXJuYWwgZmllbGRzIGZyb20gY29uY3VycmVudCBjaGFuZ2VzIGZyb20gZGlmZmVyZW50IHRocmVhZHMKCSAgRml4ZXMgYnVnICM2MDg4NzcuCgoyMDEwLTAyLTExIDIwOjE0OjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogZG9uJ3QgbGVhayB0aW1lb3V0IEdTb3VyY2UKCjIwMTAtMDItMTEgMDA6MTg6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgZG9jczogZmxlc2ggb3V0IHJlbGVhc2UgZG9jIHNvbWUgbW9yZQoKMjAxMC0wMi0xMSAwMToxMDozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNQUlOVEFJTkVSUzoKCSAgVXBkYXRlIE1BSU5UQUlORVJTLCBhZGQgbXlzZWxmCgoyMDEwLTAyLTExIDE5OjQ5OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBiYWNrIHRvIGRldmVsb3BtZW50CgkgIFNsdXNoeSBmcmVlemUgcmVtYWlucyBpbiBlZmZlY3QuCgo9PT0gcmVsZWFzZSAwLjEwLjI2ID09PQoKMjAxMC0wMi0xMCAxOToxNzoyOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAwLjEwLjI2CgoyMDEwLTAyLTEwIDE1OjMyOjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMC0wMi0wOSAxNTo1MjoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogZGVmaW5lIEdTVF9QTFVHSU5fU0NBTk5FUl9JTlNUQUxMRUQgaW4gd2luMzIgY29uZmlnLmgKCSAgRXZlbiBpZiBpdCdzIG5vdCB1c2VkLCBpdCBzdGlsbCBuZWVkcyB0byBiZSBkZWZpbmVkIGZvciB0aGluZ3MgdG8KCSAgY29tcGlsZS4KCjIwMTAtMDItMDkgMTA6MTk6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkgIGdzdF9wcml2YXRlOiBNU1ZDIGRvZXNuJ3Qgc2VlbSB0byBsaWtlICN3YXJuaW5nCgkgIFZpc3VhbCBTdHVkaW8gY29tcGxhaW5zIGFib3V0ICJpbnZhbGlkIHByZXByb2Nlc3NvciBjb21tYW5kICd3YXJuaW5nJyIKCSAgZXZlbiBpZiB0aGUgaWZkZWYgZG9lc24ndCB0cmlnZ2VyLCBzbyBqdXN0IHJlbW92ZSB0aGlzIGFnYWluLgoKMjAxMC0wMi0xMCAxNDo0MDoxNyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgdGVzdHM6IEZpeCBtdWx0aXF1ZXVlIHRlc3QgZm9yIGxhdGVzdCBjb21taXRzLgoJICBUaGUgcHJvYmxlbSBsaWVzIGluIHRoZSBmYWN0IHRoYXQgbXVsdGlxdWV1ZSB3aWxsIG5vdyBvcGVyYXRlIHNvbWV3aGF0CgkgIHNpbWlsYXJseSB0byB0aGUgZmxvdyBhZ2dyZWdhdGlvbiBsb2dpYyBvZiBkZW11eGVycyBhbmQgdGhlcmVmb3JlCgkgIHdpbGwgc3RvcHAgd2hlbmV2ZXIgYWxsIGRvd25zdHJlYW0gcGFkcyByZXR1cm4gTk9UX0xJTktFRCBhbmQvb3IKCSAgVU5FWFBFQ1RFRCBhbmQgdGhlcmUncyBubyBtb3JlIGJ1ZmZlcnMgdG8gcHVzaC4KCSAgVGhlIGxhdGVzdCBjb21taXRzIHNob3VsZCBub3QgYWZmZWN0IGFueSByZWd1bGFyIHVzZS1jYXNlLCBidXQgdGhlIGJ1ZwoJICByZXBvcnQgd2lsbCBiZSBrZXB0IG9wZW4gc28gdGhlIHByZXZpb3VzIGJlaGF2aW91ciBjYW4gYmUgcmUtZXN0YWJsaXNoZWQKCSAgaWYgbmVlZGVkLgoJICBGaXhlcyAjNjA5NDg2CgoyMDEwLTAyLTA5IDE1OjUxOjE4ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IERvbid0IHN0b3AgdGhyZWFkcyBvbiBVTkVYUEVDVEVEIGFuZCBmb3J3YXJkIGZsb3cgcmV0dXJucy4KCSAgV2hlbiBhIGRvd25zdHJlYW0gZWxlbWVudCByZXR1cm5zIEdTVF9GTE9XX1VORVhQRUNURUQgd2Ugd2FudCB0bzoKCSAgKiBsZXQgdGhlIGRhdGFxdWV1ZSB0YXNrIHJ1bm5pbmcKCSAgKiBmb3J3YXJkIHRoZSBmbG93IHJldHVybiB1cHN0cmVhbS4KCSAgVGhpcyBhbGxvd3MgdXBzdHJlYW0gZWxlbWVudHMgdG8gcHVzaCBFT1MsIGFuZCBoYXZlIHRoYXQgRU9TIGV2ZW50IGNvbWUKCSAgZG93bnN0cmVhbS4KCSAgRml4ZXMgIzYwOTI3NAoKMjAxMC0wMi0wOSAxMzozNTowOCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIFJldmVydCAibXVsdGlxdWV1ZTogaGFuZGxlIFVORVhQRUNURUQgZmxvd3JldHVybiBiZXR0ZXIiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZmJkZjRkY2VkYWQ4NjkyZjFlM2Q4ODM4NTUxMTg4OTg3ZTQ2MmU3NC4KCSAgUGFydGx5IGZpeGVzICM2MDkyNzQKCjIwMTAtMDEtMjggMDc6Mjc6NDkgKzAxMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZ2l0LXVwZGF0ZS5zaDoKCSAgZ2l0LXVwZGF0ZS5zaDogRml4IGlzc3VlcwoKMjAxMC0wMi0wNyAwOTo1OToyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBSZXZlcnQgImRvY3M6IGZpeCBBU0NJSSBhcnQgc28gdGhhdCBpdGVyYXRvcnMgYXJlIGFsaWduZWQgcHJvcGVydHkgdG8gdGhlIGRpYWdyYW0iCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYWU2MGQwNmU5ZTQwMWQxZWQ0ZGU1ZWYyNWI1YzI4M2RiMDY5NmEzMSAoZml4ZXM6ICM2MDkxNjYpCgoyMDEwLTAyLTA0IDE4OjMwOjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjI1LjMgcHJlLXJlbGVhc2UKCjIwMTAtMDItMDQgMTc6NDU6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYmcucG86CgkqIHBvL2RlLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3N2LnBvOgoJKiBwby96aF9DTi5wbzoKCSAgcG86IHRyYW5zbGF0aW9uIHVwZGF0ZXMKCjIwMTAtMDItMDEgMTI6NTA6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgZG9jczogZml4IEFTQ0lJIGFydCBzbyB0aGF0IGl0ZXJhdG9ycyBhcmUgYWxpZ25lZCBwcm9wZXJ0eSB0byB0aGUgZGlhZ3JhbQoKMjAxMC0wMi0wMSAxNzo0MDowOCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSAgZ3N0Ynl0ZXdyaXRlcjogRml4IGRpZmZlcmVudCBmdW5jdGlvbiBuYW1lcyBpbiAuaCBhbmQgLmMKCSAgZ3N0X2J5dGVfd3JpdGVyX3Jlc2V0X2FuZF9nZXRfYnVmZmVyIHdhc24ndCBkZWNsYXJlZAoJICBpbiAuaCwgaW5zdGVhZCB0aGVyZSB3YXMgX3Jlc2V0X2FuZF9nZXRfZGF0YV9hc19idWZmZXIuCgkgIFJlcGxhY2UgaXQgd2l0aCB0aGUgcmVhbCBmdW5jdGlvbiBuYW1lLCB0aGF0IGlzIHNtYWxsZXIKCSAgYW5kIG1hdGNoZXMgZ3N0X2J5dGVfd3JpdGVyX2ZyZWVfYW5kX2dldF9idWZmZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYwODcyNgoKMjAxMC0wMS0zMSAxNzozMDo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJICBkb2NzOiBhZGQgc29tZSBtb3JlIFNpbmNlOiBtYXJrZXJzIHRvIGJ1ZmZlciBsaXN0IGRvY3MKCjIwMTAtMDEtMzAgMTg6NTc6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IGZpeCB0eXBvIGluIHdhcm5pbmcgbWVzc2FnZQoJICBTcG90dGVkIGJ5IGJzcmVlcmVuakBnbWFpbC5jb20uCgkgIEZpeGVzICM2MDg0NDIuCgoyMDEwLTAxLTMwIDE1OjE3OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMTVkNDdhNiB0byA5NmRjNzkzCgoyMDEwLTAxLTMwIDEzOjQ1OjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgaW5pdDogZG9uJ3Qgc3BldyB3YXJuaW5nIGFib3V0IGxhdGUgZ190aHJlYWRfaW5pdCgpcyBpZiBHTGliID49IDIuMjMuMgoJICBMYXRlIGdfdGhyZWFkX2luaXQoKSBpcyBmaW5lIHdpdGggbmV3ZXIgR0xpYiB2ZXJzaW9ucyBhbmQgZG9uZSBhdXRvbWF0aWNhbGx5CgkgIGZyb20gZ190eXBlX2luaXQoKSB0aGVyZSwgc28gZG9uJ3Qgd2FybiBpZiB0aGUgYXBwbGljYXRpb24gaGFzbid0IGNhbGxlZAoJICBnX3RocmVhZF9pbml0KCkgeWV0IHdoZW4gZ3N0X2luaXQoKSBpcyBjYWxsZWQgd2l0aCBuZXcgR0xpYiB2ZXJzaW9ucy4KCSAgRml4ZXMgIzYwODM5OC4KCjIwMTAtMDEtMjkgMDk6NDE6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSAgcGtnY29uZmlnOiBkb24ndCBwdXQgLURHX1RIUkVBRFNfTUFOREFUT1JZIGludG8gb3VyIHBrZy1jb25maWcgQ0ZMQUdTCgkgIElmIHdlIGZvcmNlIC1ER19USFJFQURTX01BTkRBVE9SWSBvbnRvIGFwcHMsIHRoZW4gZ190aHJlYWRfc3VwcG9ydGVkKCkKCSAgd2lsbCBhbHdheXMgZXZhbHVhdGUgdG8gVFJVRSwgc28gdGhlIHR5cGljYWwgdGhyZWFkIGluaXRpYWxpc2F0aW9uCgkgIGJvaWxlcnBsYXRlIGNvZGUgaWYgKCFnX3RocmVhZF9zdXBwb3J0ZWQoKSkgZ190aHJlYWRfaW5pdChOVUxMKTsgd2lsbAoJICBubyBsb25nZXIgd29yaywgYW5kIHRoZSB0aHJlYWRpbmcgc3lzdGVtIG5vdCBiZSBpbml0aWFsaXNlZCBhbmQgdXMKCSAgcHJpbnRpbmcgYSB3YXJuaW5nIGluIGdzdF9pbml0LiBUaGlzIG1heSBiZSBmaW5lIGluIG1vc3QgY2FzZXMsIHNpbmNlCgkgIGxhdGUgaW5pdGlhbGlzYXRpb24gaXMgYWxsb3dlZCBhbmQgYXV0b21hdGljYWxseSBkb25lIGluIGdfdHlwZV9pbml0KCkKCSAgc2luY2UgR0xpYiAyLjIzLjIsIGJ1dCBsZXQncyBiZSBjYXV0aW91cyBhbmQgb25seSB1c2UgdGhpcyBkZWZpbmUgd2hlbgoJICBjb21waWxpbmcgR1N0cmVhbWVyIGl0c2VsZi4KCSAgU2VlICM2MDgzOTguCgoyMDEwLTAxLTI4IDE1OjU1OjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiBUYWtlIHN0YXJ0X3RpbWUgYWZ0ZXIgY2hhaW5pbmcgdXAgdG9vCgkgIFJlZmFjdG9yIHRoZSBjb2RlIHRvIHRha2UgdGhlIGN1cnJlbnQgc3RhcnRfdGltZSB3aGVuIGdvaW5nIHRvIFBBVVNFRC4KCSAgTWFrZSBzdXJlIHdlIGFsc28gY2FsbCB0aGUgc3RhcnRfdGltZSB1cGRhdGUgY29kZSBhZnRlciB3ZSBjaGFpbmVkIHVwIHRvIHRoZQoJICBwYXJlbnQgYmluLgoJICBGaXhlcyAjNjA3ODQyCgoyMDEwLTAxLTI4IDAwOjA3OjE0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5jOgoJICBkYXRhdXJpc3JjOiBhZGQgc3RhcnQgZnVuY3Rpb24gc28gd2UgY2FuIGVycm9yIG91dCBwcm9wZXJseSBpZiBubyB1cmkgaXMgc2V0CgkgIEFsc28gc2F2ZSBhIHNldCBVUkkgYWZ0ZXIgaXQgaGFzIGJlZW4gcGFyc2VkIHN1Y2Nlc3NmdWxseSwgc28gdGhhdCBfZ2V0X3VyaSgpCgkgIGFjdHVhbGx5IHdvcmtzLgoKMjAxMC0wMS0yNyAyMzo0NjozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuYzoKCSAgZGF0YXVyaXNyYzogZG9uJ3QgcG9zdCBlcnJvciBtZXNzYWdlIHdoZW4gc2V0dGluZyB0aGUgVVJJIGZhaWxlZAoJICBUaGVyZSdzIGEgZ2Jvb2xlYW4gcmV0dXJuIGZvciB0aGF0LCBhbmQgdGhlIG1lc3NhZ2VzIGRvbid0IHJlYWxseQoJICBhZGQgYW55dGhpbmcgdXNlZnVsLgoKMjAxMC0wMS0yNyAyMzozOToxNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuYzoKCSAgZGF0YXVyaXNyYzogbXVzdCByZWxlYXNlIHRoZSBvYmplY3QgbG9jayBiZWZvcmUgdXNpbmcgR1NUX0VMRU1FTlRfRVJST1IKCjIwMTAtMDEtMjYgMTg6NTk6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICAwLjEwLjI1LjIgcHJlLXJlbGVhc2UKCjIwMTAtMDEtMjcgMDA6MjM6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGNoZWNrczogZml4IHNwdXJpb3VzIGdob3N0IHBhZCBjaGVjayBmYWlsdXJlCgoyMDEwLTAxLTI2IDE5OjM1OjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICB3aW4zMjogdXBkYXRlIHdpbmRvd3MgaGVhZGVycyB0byBsYXRlc3QgdmVyc2lvbgoKMjAxMC0wMS0yNiAxOTozMjo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiBtaW5vciB1cGRhdGUgdG8gcmVsZWFzZSBub3RlcwoKMjAxMC0wMS0yNiAxODo0NTozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb24gZmlsZXMKCjIwMTAtMDEtMjYgMTg6Mzk6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9ydHBvb2wtdGVzdC5jOgoJICB0ZXN0czogZml4IHdhcm5pbmcgaW4gcnRwb29sLXRlc3QKCSAgVGhlIHN0cmVhbSBzdGF0dXMgbWVzc2FnZSBvYmplY3QgbWF5IGJlIG9mIGEgbm9uLUdPYmplY3QgdHlwZSwgZS5nLgoJICBHX1RZUEVfUE9JTlRFUiAoc2VlIEdzdEF1ZGlvU3JjKSwgc28gcHJpbnQgdGhhdCBwcm9wZXJseSBpbnN0ZWFkCgkgIG9mIGFzc3VtaW5nIHRoZSB2YWx1ZSBob2xkcyBhbiBvYmplY3QuCgoyMDEwLTAxLTI2IDEyOjQzOjA5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogaGFuZGxlIFVORVhQRUNURUQgZmxvd3JldHVybiBiZXR0ZXIKCSAgV2hlbiB3ZSByZWNlaXZlIGFuIFVORVhQRUNURUQgZmxvd3JldHVybiBmcm9tIGRvd25zdHJlYW0sIHdlIG11c3Qgbm90IHNodXRkb3duCgkgIHRoZSBwdXNoaW5nIHRocmVhZCBiZWNhdXNlIHVwc3RyZWFtIHdpbGwgYXQgc29tZSBwb2ludCBwdXNoIGFuIEVPUyB0aGF0IHdlIHN0aWxsCgkgIG5lZWQgdG8gcHVzaCBmdXJ0aGVyIGRvd25zdHJlYW0uCgkgIFRvIGFjaGlldmUgdGhpcywgY29udmVydCB0aGUgVU5FWFBFQ1RFRCByZXR1cm4gdmFsdWUgdG8gT0suIEFkZCBhIGZpeG1lIHNvIHRoYXQKCSAgd2UgaW1wbGVtZW50IHRoZSByaWdodCBsb2dpYyB0byBwcm9wYWdhdGUgdGhlIGZsb3dyZXR1cm4gdXBzdHJlYW0gYXQgc29tZSBwb2ludC4KCSAgQWxzbyBjbGVhbiB1cCB0aGUgdW5pdCB0ZXN0IGEgbGl0dGxlLgoJICBGaXhlcyAjNjA4MTM2CgoyMDEwLTAxLTI2IDA4OjUyOjE2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJICBkb2NzOiBGaXggYmFzaWNzLWJ1cyBkb2NzCgkgIEZpeCB3cm9uZyBpbmZvcm1hdGlvbiBhYm91dCBidXMgd2F0Y2ggZnVuY3Rpb25zIGluIHRoZQoJICBhcHBsaWNhdGlvbiBkZXZlbG9wbWVudCBtYW51YWwuCgkgIEZpeGVzICM2MDgxMjcKCjIwMTAtMDEtMjUgMTI6MTI6MzIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmM6CgkgIGRhdGF1cmlzcmM6IFJlbW92ZSByb2xlIGF0dHJpYnV0ZSBmcm9tIGxpbmtzCgoyMDEwLTAxLTI1IDExOjU2OjMzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5jOgoJICBkYXRhdXJpc3JjOiBBZGQgZG9jcyBhbmQgaW50ZWdyYXRlIGludG8gYnVpbGQgc3lzdGVtCgkgIEZpeGVzIGFnYWluIGJ1ZyAjNTk2ODg1LgoKMjAxMC0wMS0yNSAxMToxMjo0NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmg6CgkgIGRhdGF1cmlzcmM6IEFkZCBkYXRhOiBVUkkgc291cmNlIGVsZW1lbnQKCSAgVGhpcyBpcyBzbGlnaHRseSBiYXNlZCBvbiB0aGUgV2ViS2l0IGRhdGE6IFVSSSBzb3VyY2UKCSAgYnV0IHN1cHBvcnRzIG1vcmUgcGFydHMgb2YgUkZDIDIzOTcuCgkgIEZpeGVzIGJ1ZyAjNTk2ODg1LgoKMjAxMC0wMS0yNCAyMzoxMjoyMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJpbjogYWxzbyByZW1vdmUgcHJpdmF0ZSBmdW5jdGlvbiBmcm9tIGRlZiBmaWxlCgoyMDEwLTAxLTI0IDIzOjA0OjI3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogbWFrZSBhIGludGVyZmFjZSB2bWV0aG9kIGltcGxlbWVudGF0aW9uIHN0YXRpYwoJICBUaGlzIHNob3VsZCBub3QgY2F1c2UgYW55IHRyb3VibGVzIC0gdGhlIG1ldGhvZHMgd2Fzbid0IGluIGFueSBoZWFkZXIuCgoyMDEwLTAxLTI0IDIyOjIyOjA3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBjaGlsZHByb3h5OiByZW1vdmUgOyBhZnRlciB9CgoyMDEwLTAxLTIyIDE4OjAwOjUzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGQgc29tZSBkb2NzIHRvIG1hcmsgbmV3IHByb3BlcnR5CgoyMDEwLTAxLTIyIDE3OjU1OjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBhZGQgb3B0aW9uIHRvIHJlbW92ZSB0aGUgdGVtcC1maWxlCgkgIEFkZCBhbiBvcHRpb24gdG8gYXV0b21hdGljYWxseSByZW1vdmUgdGhlIHRlbXAgZmlsZSAoVFJVRSBieSBkZWZhdWx0KS4gVGhpcwoJICBzaG91bGQgbWFrZSBpdCBwb3NzaWJsZSBmb3IgdGhlIGFwcGxpY2F0aW9uIHRvIGtlZXAgdGhlIHRlbXAgZmlsZSBieSBvdGhlciBtZWFucwoJICB0aGFuIGhhcmRsaW5raW5nIG9yIGhvbGRpbmcgYW4gZmQgb3Blbi4KCSAgRml4ZXMgIzYwNzczOQoKMjAxMC0wMS0yMiAwMjowMjowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogZG9uJ3QgbGVhayB1cmkgc3RyaW5nCgoyMDEwLTAxLTIxIDE2OjE5OjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZGV4Lmg6CgkgIGdzdGluZGV4OiByZXRhYiAuaCBmaWxlCgoyMDEwLTAxLTIwIDE0OjEzOjExICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICB0b29sczogUnVuIGdfdGhyZWFkX2luaXQoKSB1bmNvbmRpdGlvbmFsbHkKCSAgU2luY2Ugd2UgZGVmaW5lIEdfVEhSRUFEU19NQU5EQVRPUlksIGdfdGhyZWFkX3N1cHBvcnRlZCgpIGV2YWx1YXRlcyB0bwoJICBUUlVFIHVuY29uZGl0aW9uYWxseSwgc28gY2FsbGluZyBnX3RocmVhZF9pbml0KCkgbmV2ZXIgaGFwcGVuZWQuCgoyMDEwLTAxLTIwIDEwOjU4OjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBmaXggY29tcGlsZXIgd2FybmluZyBvbiB3aW4zMgoJICBNb3ZlIHZhcmlhYmxlIHRoYXQncyBvbmx5IHVzZWQgb24gdW5peCBpbnRvIHRoZSB1bml4IGJsb2NrIHNvIHRoYXQKCSAgdGhlIGNvbXBpbGVyIGRvZXNuJ3QgY29tcGxhaW4gYWJvdXQgdGhlIHVudXNlZCB2YXJpYWJsZSBvbiB3aW4zMgoJICAoc2VlICM1OTc2NjIpLgoKMjAxMC0wMS0yMCAwOTo0NTowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogdHJ5IHNjYW5uZXIgc2V0IHZpYSBlbnYgdmFyIGJlZm9yZSB1c2luZyB0aGUgaW5zdGFsbGVkIG9uZQoJICBJZiB0aGUgR1NUX1BMVUdJTl9TQ0FOTkVSIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHNldCwgd2Ugc2hvdWxkIHRyeQoJICB0aGUgc2Nhbm5lciBzcGVjaWZpZWQgdGhlcmUgZmlyc3QsIHRvIG1ha2Ugc3VyZSB0aGUgcmlnaHQgc2Nhbm5lciBiaW5hcnkKCSAgaXMgdXNlZCBmb3IgdW5pbnN0YWxsZWQgc2V0dXBzIGFuZCBidWlsZHMgZnJvbSBzb3VyY2Ugd2hlbiB0aGVyZSdzCgkgIGFscmVhZHkgYW4gaW5zdGFsbGVkIHZlcnNpb24uCgoyMDEwLTAxLTIwIDA2OjU4OjI4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdC5jOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLnBjLmluOgoJICBidWlsZDogRGVmaW5lIEdfVEhSRUFEU19NQU5EQVRPUlkgZXZlcnl3aGVyZQoJICBXZSByZXF1aXJlIHRocmVhZHMgdG8gYmUgc3VwcG9ydGVkIGluIGFueSBjYXNlIGFuZCBkZWZpbmluZyB0aGlzCgkgIHdpbGwgc2ltcGxpZnkgdGhlIG11dGV4LCBjb25kaXRpb24gdmFyaWFibGUsIGV0Yy4gbWFjcm9zIGZyb20gZ3RocmVhZAoJICB0byBub3QgYWx3YXlzIGNoZWNrIGlmIHRocmVhZHMgYXJlIHJlYWxseSBzdXBwb3J0ZWQuCgkgIEZpeGVzIGJ1ZyAjNjA3NDgxLgoKMjAxMC0wMS0wOCAyMDo1NjoxOCArMDEwMCAgQW5kb25pIE1vcmFsZXMgQWxhc3RydWV5IDx5bGF0dXlhQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHBsdWdpbmxvYWRlcjogZGlzYWJsZSBleHRlcm5hbCBwbHVnaW4gbG9hZGVyIG9uIFdpbmRvd3MgdW50aWwgaXQgaXMgcG9ydGVkIHByb3Blcmx5CgkgIFNlZSAjNTk3NjYyLgoKMjAxMC0wMS0yMCAwMTowOTo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkqIGdzdC9wYXJzZS9wYXJzZS5sOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXBsdWdpbi1zY2FubmVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIGdzdF9wcml2YXRlLmg6IG1ha2Ugc3VyZSBnc3RfcHJpdmF0ZS5oIGlzIGluY2x1ZGVkIGJlZm9yZSBnbGliLmgKCSAgRm9yIHRoZSByZWFzb24gb3V0bGluZWQgYXQgdGhlIGJlZ2lubmluZyBvZiBnc3RfcHJpdmF0ZS5oIChpbmxpbmUKCSAgZnVuY3Rpb25zIGluIGdsaWIgbWF5IG5lZWQgdGhlIGdfbG9nX2RvbWFpbiB2YXJpYWJsZSkuIEFsc28gaW5jbHVkZQoJICBnc3RfcHJpdmF0ZS5oIGJlZm9yZSB1c2luZyBhbnkgR19PU18qIGRlZmluZXMsIGVzcC4gaW4gcGx1Z2luIGxvYWRlci4KCjIwMTAtMDEtMjAgMDE6MzM6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIGRvY3M6IG1pbm9yIGd0ay1kb2MgbWFya3VwIGZpeGVzCgoyMDEwLTAxLTIwIDAwOjUzOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMTRjZWM4OSB0byAxNWQ0N2E2CgoyMDEwLTAxLTE5IDE2OjM5OjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJICBkb2NzOiBzbWFsbCBkb2NzIHVwZGF0ZXMKCjIwMTAtMDEtMTkgMTQ6MDc6MjMgKzAxMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogZGlyZWN0bHkgc2V0IHRoZSBjYXBzIHdoZW4gcHVzaGluZyBidWZmZXIgd2l0aCBkaWZmZXJlbnQgY2Fwcy4KCSAgVGhpcyBjaGVjayBpcyBub3QgbmVjZXNhcnJ5IGFzIHdlIGFyZSBub3QgbmVnb3RpYXRpbmcgYW55bW9yZS4gQW5kIGl0IGNhbgoJICBiZSB3cm9uZyBpZiB1cHN0cmVhbSBjYW4ndCBwcm9kdWNlIHRoaXMgY2FwcyBhbnltb3JlLCBidXQgZG93bnN0cmVhbSBjYW4KCSAgcHJvY2VzcyB0aGVtIGZpbmUuCgoyMDEwLTAxLTE4IDEzOjU3OjI5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IFRoZSBHVmFsdWUgY29sbGVjdGlvbiBmdW5jdGlvbiBjYW4gbm90IGFzc3VtZSB0aGF0IHRoZSBkZXN0aW5hdGlvbiBpcyBpbml0aWFsaXplZAoJICAuLi5hbmQgaXQgd2lsbCB1c3VhbGx5IGJlIGVpdGhlciBmaWxsZWQgYnkgemVyb2VzIG9yIHJhbmRvbSB2YWx1ZXMuCgkgIEZpeGVzIGJ1ZyAjNjA3MjgzLgoKMjAxMC0wMS0xNiAyMTo1MjowNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogT25seSB1c2Ugc3VnZ2VzdGVkIGNhcHMgaW4gYnVmZmVyIGFsbG9jYXRpb24gaWYgYSBzaXplIHdhcyBzdWdnZXN0ZWQgdG9vCgoyMDEwLTAxLTE2IDE5OjQxOjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiByZW1vdmUgc3VwZXJmbHVvdXMgZ3VhcmQgYWdhaW5zdCBOVUxMCgkgIEFsbCBjYWxsZXJzIG9mIHRoaXMgc3RhdGljIGZ1bmN0aW9uIGFscmVhZHkgY2hlY2sgZm9yIE5VTEwtbmVzcwoJICB0aGVtc2VsdmVzLCBzbyBubyBuZWVkIHRvIGRvIGl0IGFnYWluIChhbmQgaWYgd2UgZG8gaXQsIHdlIHNob3VsZAoJICBwcm9iYWJseSBkbyBzbyBiZWZvcmUgZGVyZWZlcmVuY2luZyB0aGUgcG9pbnRlciBmb3IgdGhlIGZpcnN0IHRpbWUpLgoKMjAwOS0xMi0xNyAxOTo0NTozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IG1pY3JvLW9wdGltaXNlIHNvbWUgZ2V0dGVycwoJICBBdm9pZCBjaGVja2luZyB0aGUgR1R5cGUgb2YgdGhlIHZhbHVlIHR3aWNlIChvbmNlIG9uIG91ciBzaWRlIGFuZAoJICBvbmNlIGluIGdfdmFsdWVfZ2V0XyooKSkgYnkgYnktcGFzc2luZyBnX3ZhbHVlX2dldCgpIGFuZCBhY2Nlc3NpbmcKCSAgdGhlIEdWYWx1ZSBzdHJ1Y3R1cmUgZGlyZWN0bHkuCgoyMDEwLTAxLTE1IDE4OjM2OjA3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgbWVzc2FnZTogdXBkYXRlIGRvY3MgYSBsaXR0bGUKCjIwMTAtMDEtMTUgMDA6NDY6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgZG9jczogbWlub3IgcmVsZWFzZSBkb2NzIHVwZGF0ZQoKMjAxMC0wMS0xNCAyMDoxOTowNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogSGFuZGxlIGJ1ZmZlcnMgd2l0aCBOVUxMIGNhcHMgY29ycmVjdGx5CgkgIFRoaXMgbWVhbnMgdGhhdCB0aGUgY2FwcyBkaWRuJ3QgY2hhbmdlIHNvIGRvbid0IHRyeSB0byBoYW5kbGUKCSAgdGhlIE5VTEwgY2FwcyBhcyB0aGUgbmV3IGNhcHMuCgoyMDEwLTAxLTE0IDEwOjQ0OjE2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdHVyaS5oOgoJICBkb2NzOiBNb3ZlIGZpZWxkIHNwZWNpZmljIFNpbmNlIG1hcmtlcnMgYXQgdGhlIHNhbWUgbGluZQoJICBGaXhlcyBnb2JqZWN0LWludHJvc3BlY3Rpb24gd2FybmluZ3MgYWJvdXQgU2luY2UgYmVpbmcgZGVmaW5lZCBtdWx0aXBsZSB0aW1lcy4KCjIwMTAtMDEtMTMgMTA6MTc6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZmFxLnhtbDoKCSAgZmFxOiByZW1vdmUgcmV2aXNpb24gaGlzdG9yeSB0aGF0IG5vIG9uZSB1cGRhdGVzIG9yIGNhcmVzIGFib3V0IGFueXdheQoKMjAxMC0wMS0xMyAwOTozMjo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9kZXZlbG9waW5nLnhtbDoKCSogZG9jcy9mYXEvZ2l0LnhtbDoKCSAgZmFxOiBmaXggbGluayB0byBnc3QtdW5pbnN0YWxsZWQgb24gY2dpdAoJICBGaXggbGluayB0byBnc3QtdW5pbnN0YWxsZWQgbm93IHRoYXQgaXQncyBiZWVuIG1vdmVkLCBhbmQgZml4IGEgdHlwbwoJICB3aGlsZSB3ZSdyZSBhdCBpdC4gQWxzbyBhZGQgYSBuZXcgc2VjdGlvbiB0byAnQnVpbGRpbmcgR1N0cmVhbWVyIGZyb20KCSAgZ2l0JyB0aGF0IHBvaW50cyB0byB0aGUgJ0hvdyBkbyBJIGRldmVsb3AgYWdhaW5zdCBhbiB1bmluc3RhbGxlZCBjb3B5CgkgIG9mIEdTdHJlYW1lcicgc2VjdGlvbi4KCjIwMTAtMDEtMTMgMTA6MzI6NDYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIFJFQURNRToKCSAgZG9jczogd2UncmUgaW4gZ2l0IHNpbmNlIGEgd2hpbGUKCjIwMTAtMDEtMTMgMTA6MzE6MjYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIE1ha2VmaWxlLmFtOgoJKiBSRUFETUU6CgkqIGRvY3MvZmFxL01ha2VmaWxlLmFtOgoJKiBkb2NzL2ZhcS9kZXZlbG9waW5nLnhtbDoKCSogZG9jcy9mYXEvZmFxLnhtbDoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIHNjcmlwdHM6IG1vdmUgZ3N0LXVuaW5zdGFsbGVkIGZyb20gZG9jcy9mYXEgdG8gc2NyaXB0cwoJICBEb24ndCBpbmNsdWRlIHRoZSBsb25nIGdzdC11bmluc3RhbGxlZCBzY3JpcHQgaW4gdmVyYmF0aW0gaW4gdGhlIGZhcSBhbnltb3JlCgkgICh0aGVyZSBpcyBhIGxpbmsgdG8gY2dpdCkuIERpc3QgdGhlIHNjcmlwdCB1bmRlciBpdHMgbmV3IGxvY2F0aW9uLgoKMjAxMC0wMS0xMiAyMTozNDowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnk6IGF2b2lkIHNvbWUgbW9yZSB1bm5lY2Vzc2FyeSBtYWxsb2MvZnJlZXMKCjIwMTAtMDEtMTIgMjA6MjE6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5OiBhdm9pZCBzb21lIHVubmVjZXNzYXJ5IHN0cmR1cC9mcmVlIHdoZW4gcmVhZGluZyB0aGUgYmluYXJ5IHJlZ2lzdHJ5CgkgIFN0cmluZ3MgaW4gdGhlIGJpbmFyeSByZWdpc3RyeSBhcmUgTlVMLXRlcm1pbmF0ZWQsIHNvIHdlIGNhbiBqdXN0IHVzZSB0aGVtCgkgIGRpcmVjdGx5IGlmIHdlIG9ubHkgbmVlZCB0aGVtIHRlbXBvcmFyaWx5LCBhbmQgYXZvaWQgdW5uZWNlc3NhcnkgbWFsbG9jcwoJICBhbmQgZnJlZXMuCgoyMDEwLTAxLTEyIDE3OjM4OjMyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmRlbGVtZW50OiB1c2UgbmV3IHR5cGVmaW5kIGZ1bmN0aW9uCgkgIFJlZmFjdG9yIGEgbGl0dGxlLgoJICBVc2UgdGhlIG5ldyB0eXBlZmluZCBoZWxwZXIgZnVuY3Rpb24gdGhhdCB1c2VzIHRoZSBleHRlbnNpb24gdG8gc3BlZWQgdXAKCSAgdHlwZWZpbmRpbmcuCgoyMDEwLTAxLTEyIDE3OjM0OjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgdHlwZWZpbmQ6IGFkZCBhIG5ldyBtZXRob2QgdGhhdCBhbHNvIHVzZXMgdGhlIGZpbGUgZXh0ZW5zaW9uCgkgIEFkZCBhIG1ldGhvZCB0byBwZXJmb3JtIGdldF9yYW5nZSB0eXBlZmluZGluZyB0aGF0IGFsc28gdXNlcyB0aGUKCSAgdXJpL2xvY2F0aW9uIGV4dGVuc2lvbiBhcyBhbiBleHRyYSBoaW50LiBJdCB3aWxsIGZpcnN0IHRyeSB0byBjYWxsIHRoZQoJICB0eXBlZmluZCBmdW5jdGlvbnMgb2YgdGhlIGZhY3RvcmllcyB0aGF0IGhhbmRsZSB0aGUgZ2l2ZW4gZXh0ZW5zaW9uLiBUaGUgcmVzdWx0CgkgIGlzIHRoYXQgaW4gdGhlIGNvbW1vbiBjYXNlLCB3ZSBvbmx5IGNhbGwgb25lIHR5cGVmaW5kIGZ1bmN0aW9uLCB3aGljaCBzcGVlZHMgdXAKCSAgdGhlIHR5cGVmaW5kaW5nIGEgbG90LgoKMjAxMC0wMS0xMSAxNDo1ODoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgZG9jczogdXBkYXRlIFFvUyBkb2N1bWVlbnQKCSAgQWRkIHNvbWUgaWRlYXMgYWJvdXQgYSBuZXcgUW9TIG1lc3NhZ2UuCgkgIFNlZSBhbHNvICMzMjI5NDcKCjIwMTAtMDEtMTEgMTE6Mzg6MzIgKzAxMDAgIEjDpXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IG1ha2UgcmVsZWFzZV9wYWQgdGhyZWFkc2FmZQoJICBQcm90ZWN0IHRoZSAtPnJlbW92ZWQgZmllbGQgd2l0aCB0aGUgb2JqZWN0IGxvY2sgYXMgd2VsbC4gVGFrZSB0aGUgRFlOIGxvY2sKCSAgZWFybGllciBzbyB0aGF0IHdlIGNhbiBtYXJrIHRoZSBwYWQgcmVtb3ZlZCBhbmQgYXZvaWQgYSByYWNlIGluIHBhZF9hbGxvYy4KCSAgRml4ZXMgIzYwNjQzNQoKMjAwOS0xMi0xMSAxNzo0Njo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJICBidXM6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMTAtMDEtMTAgMjE6NDk6MjUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogZGVmZXIgZ2V0dGluZyB0aGUgY2xhc3NlcyB1bnRpbCB3ZSBhY3R1YWx5IG5lZWQgdGhlbQoJICBUaGlzIGZ1bmN0aW9uIGhhcyBhIGxvdCBvZiBlYXJseSByZXR1cm5zLiBHaXZlIHRoZW0gc29lbSBtb3JlIGJlbmVmaXQuCgoyMDEwLTAxLTEwIDIxOjQwOjI0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGF2b2lkIGV4dHJhIGhvcCBpbiBnc3RfZWxlbWVudF9saW5rCgkgIE5vIG5lZWQgdG8gY2FsbCBnc3RfZWxlbWVudF9saW5rX3BhZHNfZmlsdGVyZWQgd2l0aCBmaWx0ZXI9TlVMTCwgd2hpY2ggd291bGQKCSAgY2FsbCBnc3RfZWxlbWVudF9saW5rX3BhZHMoKSBpbiB0aGF0IHdheS4gQ2FsbCBpdCBkaXJlY3RseSB0byBzYXZlIGEgY2FsbCBhbmQKCSAgZXhwZW5zaXZlIGdvYmplY3QgdHlwZSBjaGVja3MuCgoyMDEwLTAxLTEwIDE3OjM5OjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiByZW1vdmUgc29tZSBjcnVmdCBmcm9tIGhlYWRlciBmaWxlCgkgIFJlbW92ZSBzb21lIGNydWZ0IGZyb20gdGhlIGdzdGNoZWNrIGhlYWRlciBmaWxlIHRoYXQncyBub3QgbmVlZGVkCgkgIGFueSBsb25nZXIgbm93IHRoYXQgd2Ugc2hpcCB3aXRoIG91ciBvd24gY29weSBvZiBsaWJjaGVjay4KCjIwMTAtMDEtMDcgMTc6NDE6MjYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLW1pZGkueG1sOgoJKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBwd2c6IHJlbW92ZSBlbXB0eSBtaWRpIHNlY3Rpb24KCjIwMTAtMDEtMDcgMTM6NDg6MjQgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8Y2hyaXN0aWFuLnNjaGFsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBvZiBzc2g6Ly9naXQuZnJlZWRlc2t0b3Aub3JnL2dpdC9nc3RyZWFtZXIvZ3N0cmVhbWVyCgoyMDEwLTAxLTA3IDEzOjQ3OjUwICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPGNocmlzdGlhbi5zY2hhbGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgVXBkYXRlIHNwZWMgZmlsZQoKMjAxMC0wMS0wNiAyMDowODo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIG5ldyB0cmFuc2xhdGVkIHN0cmluZ3MKCjIwMTAtMDEtMDYgMjA6MDY6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgZG9jczogbWlub3IgZG9jdW1lbnRhdGlvbiBmaXhlcyBmb3IgcmVjZW50bHktYWRkZWQgdGFncwoJICBNZW50aW9uIHRoZSB0eXBlIG9mIHRoZSB0YWcgaW4gdGhlIGd0ay1kb2MgYmx1cmIsIHNvIHBlb3BsZSBrbm93CgkgIHdoaWNoIGFjY2Vzc29yIEFQSSB0byB1c2UsIGFuZCBmaXggdXAgdGhlIGRvYyBibHVyYnMgdG8gbWF0Y2ggdGhlCgkgIGFjdHVhbCB0YWcgZGVmaW5lLgoKMjAxMC0wMS0wNiAyMDowNDoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdzOiBmaXggdXAgdHJhbnNsYXRlZCBzdHJpbmdzIGZvciBzb21lIG5ldyB0YWdzCgkgIEZpeCB1cCB0cmFuc2xhdGVkIHN0cmluZ3MgZm9yIHNvbWUgcmVjZW50bHktYWRkZWQgdGFncyB0byBtYXRjaCB0aGUKCSAgZXhpc3Rpbmcgc3RyaW5nczogd2Ugd2FudCBzaG9ydCBtbmVtb25pYy1saWtlIHN0cmluZ3MgaGVyZSB0aGF0IHN0YXJ0CgkgIHdpdGggYSBsb3dlciBjYXNlIGxldHRlci4KCjIwMTAtMDEtMDYgMTk6MTk6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogZGVwcmVjYXRlIHVzZWxlc3MgZ3N0X3JlZ2lzdHJ5X3htbF97cmVhZHx3cml0ZX1fY2FjaGUoKQoJICBUaGUgb25seSByZWFzb24gdGhlc2UgdHdvIGZ1bmN0aW9ucyBhcmUgc3RpbGwgYXJvdW5kIGlzIHRoYXQgYXQgc29tZQoJICBwb2ludCBpbiB0aGUgcGFzdCB0aGV5IHdlcmUgaW4gYSBwdWJsaWMgaGVhZGVyLCBzbyB3ZSBjYW4ndCByZWFsbHkKCSAgcmVtb3ZlIHRoZW0gbm93IGV2ZW4gdGhvdWdoIHRoZXkgc2hvdWxkIGhhdmUgYmVlbiBwcml2YXRlIGFsbCBhbG9uZwoJICAoYW5kIGFyZW4ndCByZWFsbHkgcGFydGljdWxhcmx5IHVzZWZ1bCkuIFNpbmNlIHRoZXNlIGFyZSBqdXN0IGVtcHR5CgkgIHN0dWJzIG5vdyB0aGF0IGRvIG5vdGhpbmcgYnV0IHJldHVybiBGQUxTRSBhbmQgd2lsbCBiZSByZW1vdmVkIGluCgkgIDAuMTEgYW55d2F5LCB3ZSBtYXkganVzdCBhcyB3ZWxsIGRlcHJlY2F0ZSB0aGVtIGZvcm1hbGx5LgoKMjAxMC0wMS0wNiAxOToxODo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHRhc2twb29sLmg6CgkgIGRvY3M6IGFkZCBTaW5jZSBtYXJrZXJzIHRvIHRhc2sgcG9vbCBkb2NzIGFuZCBkb2N1bWVudCB0YXNrIGZ1bmN0aW9uCgoyMDEwLTAxLTA2IDE4OjUwOjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBtb3ZlIFNIQVZFX0lOSVQgYmVoaW5kIGFsbCBjaGVja3MKCSAgTW92ZSBTSEFWRV9JTklUIGJlaGluZCBhbGwgb3RoZXIgY2hlY2tzLCBpbiBwYXJ0aWN1bGFyIEFHX0dTVF9DSEVDS19DSEVDS1MuCgkgIFRoaXMgc2hvdWxkIGZpeCBwcm9ibGVtcyB3aXRoIGhlYWRlciBjaGVja2luZyBhbmQgY2hlY2tpbmcgZm9yIGxvY2FsdGltZV9yLAoJICB3aGljaCBjYXVzZXMgY29tcGlsYXRpb24gZXJyb3JzIHdpdGggY2xlYW4gY2hlY2tvdXRzIHdoZXJlIGNvbW1vbi9zaGF2ZSBoYXMKCSAgbm90IGJlZW4gY3JlYXRlZCB5ZXQgd2hlbiB0aG9zZSBjaGVja3MgYXJlIHJ1bi4gSXQgc2VlbXMgbGlrZSBTSEFWRV9JTklUCgkgIGNoYW5nZXMgdGhlIGVudmlyb25tZW50IHNvIHRoYXQgY2hlY2tzIGRlcGVuZGluZyBvbiBhIGNvbXBpbGVyIG5lZWQgc2hhdmUKCSAgdG8gZXhpc3QgYXQgdGhhdCBwb2ludCwgd2hpY2ggd2lsbCBmYWlsIGlmIEFDX09VVFBVVCBoYXNuJ3QgY3JlYXRlZCBpdCB5ZXQuCgkgIEZpeGVzICM2MDU5MzAuCgoyMDEwLTAxLTA1IDAxOjM1OjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmM6CgkgIGNoZWNrOiBwYXRjaCBpbnRlcm5hbCBjaGVjayBjb3B5IHNvbWUgbW9yZSBzbyB0aGF0IGZhaWx1cmVzIGFjdHVhbGx5IGZhaWwKCSAgSW5jbHVkZSB1bmlzdGQuaCBzbyB0aGF0IF9QT1NJWF9WRVJTSU9OIGlzIGFjdHVhbGx5IGRlZmluZWQgd2hlbgoJICBpdCBzaG91bGQgYmUgZGVmaW5lZC4gV2l0aG91dCB0aGF0LCBzdHVmZiBsaWtlIGZhaWxfaWYoMSkgZG9lc24ndAoJICBhY3R1YWxseSBmYWlsLCBwcmVzdW1hYmx5IGJlY2F1c2Ugb3RoZXIgcGFydHMgb2YgdGhlIGNvZGUgZG8gaW5jbHVkZQoJICB1bmlzdGQuaCBhbmQgdGhlbiBoYXZlIF9QT1NJWF9WRVJTSU9OIGRlZmluZWQuCgkgIEZpeGVzICM2MDQ1NjUgZXZlbiBtb3JlLgoKMjAxMC0wMS0wNSAwMDowOToxMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGRvY3M6IGFkZCBtaXNzaW5nIHJldHVybnM6IHRhZwoKMjAwOS0xMi0zMCAyMjo1Njo1NyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogc2V0IGl0ZXJhdGVfaW50ZXJhbF9saW5rcyBmdW5jdGlvbiBvbiBzb3VyY2UgcGFkCgoyMDA5LTEyLTI3IDE5OjMzOjI1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IHJlbW92ZSB1bm5lZWRlZCBjYXN0cwoKMjAwOS0xMi0wMiAxOTo0Nzo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IHJlbW92ZSBzdWJidWZmZXIgc3ViY2xhc3MKCSAgTW92ZSB0aGUgcGFyZW50IGJ1ZmZlciBwb2ludGVyIGludG8gdGhlIEdzdEJ1ZmZlciBzdHJ1Y3Qgc28gdGhhdCB3ZSBjYW4KCSAgcmVtb3ZlIHRoZSBzdWJidWZmZXIgY2xhc3MgYW5kIHR5cGUuIFRoaXMgaXMgaW50ZXJlc3RpbmcgYmVjYXVzZSBpdCBhbGxvd3MgdXMgdG8KCSAgbW9yZSBuYXR1cmFsbHkgaW1wbGVtZW50IG1ldGhvZHMgdG8gZ2V0IHRoZSByZWFsIHR5cGUgYW5kIHBhcmVudAoJICBvZiBhIHN1YmJ1ZmZlciAoU2VlICM1NDU1MDEpLgoJICBJdCBzaG91bGQgYWxzbyBiZSBzbGlnaHRseSBmYXN0ZXIgYmVjYXVzZSB0aGVyZSBpcyBubyBleHRyYSBvYmplY3QgaGllcmFyY2h5IHRvCgkgIGluaXRpYWxpemUgYW5kIGZyZWUuCgoyMDA5LTEyLTI0IDE5OjI1OjUyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogZG9uJ3Qga2VlcCBidWZmZXJzIHJlZmZlZCBsb25nZXIgdGhhbiBuZWVkZWQKCSAgTWFrZSBzdXJlIHdlIHRha2Ugb3duZXJzaGlwIG9mIHRoZSBidWZmZXIgZWFybHkgd2l0aG91dCBpbmNyZWFzaW5nIGl0cyByZWZjb3VudAoJICB3aGVuIHdlIGdvIGluIHRoZSBjb2xsZWN0IGZ1bmN0aW9uLiBUaGlzIHJlZHVjZXMgdGhlIGFtb3VudCBvZiBjb3BpZXMgbmVlZGVkIGluCgkgIG9yZGVyIHRvIG1ha2UgdGhlIGJ1ZmZlciB3cml0YWJsZSBpbiBtb3N0IGNhc2VzLgoKMjAwOS0xMi0yNCAxNzoyMjo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGF2b2lkIHVubmVlZGVkIGNhc3RzCgoyMDA5LTEyLTI0IDE2OjUzOjE1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogYXZvaWQgZG9pbmcgc3ViYnVmZmVycyB3aGVuIHdlIGNhbgoJICBJbiBzb21lIGNhc2VzIHdlIGNhbiBhdm9pZCBhbGxvY2F0aW5nIGEgc3ViYnVmZmVyIGFuZCBpbnN0ZWFkIHNpbXBseSByZWYKCSAgdGhlIGJ1ZmZlci4gQ2FsbGVycyBzaG91bGQgcGVyZm9ybSBfbWFrZV9tZXRhZGF0YV93cml0YWJsZSgpIGluIGFsbAoJICBjYXNlcyBub3cuCgoyMDA5LTEyLTI0IDE1OjI1OjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgY29sbGVjdHBhZHM6IGFkZCBhYmlsaXR5IHRvIGluc3RhbGwgY2xpcHBpbmcgZnVuY3Rpb25zCgkgIEFkZCBhIG1ldGhvZCB0byBpbnN0YWxsIGEgY2xpcHBpbmcgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgd2hlbiBhIGJ1ZmZlciBpcwoJICByZWNlaXZlZC4gVXNlcnMgb2YgY29sbGVjdHBhZHMgY2FuIHRoZW4gcGVyZm9ybSBjbGlwcGluZyBvbiB0aGUgaW5jb21taW5nCgkgIGJ1ZmZlcnMuCgkgIEFsc28gcmV0YWIgdGhlIGhlYWRlciBmaWxlIGEgbGl0dGxlLgoJICBTZWUgIzU5MDI2NQoKMjAwOS0xMi0yNCAxNToxMzo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcjIudHh0OgoJICBkb2NzOiBhZGQgc29tZSBtb3JlIGJ1ZmZlcjIgaWRlYXMKCjIwMDktMTItMjQgMTQ6NDA6NTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBhdm9pZCBzb21lIG1vcmUgdHlwZSBjaGVja3MKCjIwMDktMTItMjQgMTQ6MjI6NTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGlwZWxpbmU6IGF2b2lkIHNvbWUgdHlwZSBjaGVja3MKCSAgQXZvaWQgdHlwZSBjaGVja3Mgd2hlbiB3ZSBjYW4KCSAgRG9uJ3QgbmVlZCB0byBwZWVrIHRoZSBwYXJlbnRfY2xhc3MsIHRoZSBib2lsZXJwbGF0ZSBkb2VzIHRoYXQgZm9yIHVzLgoKMjAwOS0xMi0yMyAyMTozOToyMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgbGF1bmNoOiBhbHNvIHByaW50IGxlYWtlZCBvYmplY3RzCgkgIE1ha2UgdGhlIC1UIG9wdGlvbiBhbHNvIHByaW50IHRoZSBsZWFrZWQgb2JqZWN0cwoKMjAwOS0xMi0yMyAyMTozNzo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0cmFjZS5jOgoJICB0cmFjZTogaW5jbHVkZSB0eXBlIG5hbWUgaW4gbGVha2VkIG9iamVjdHMKCSAgV2hlbiB3ZSBhcmUgZGVhbGluZyB3aXRoIGEgR09iamVjdCwgcHJpbnQgdGhlIHR5cGUgbmFtZSBhbG9uZyB3aXRoCgkgIHRoZSBwb2ludGVyIGZvciBlYXNpZXIgZGVidWdnaW5nLgoKMjAwOS0xMi0yMyAyMToyMDoxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEZpeCBwcm9ibGVtIHdpdGggZGVzdHJveSBjYWxsYmFjayBub3QgYmVpbmcgY2FsbGVkCgkgIFdoZW4gd2UgdW5ibG9jayBhIHBhZCB3aXRoIHRoZSBzYW1lIHVzZXJfZGF0YSwgdGhlIGRlc3Ryb3kgY2FsbGJhY2sgaXMgbm90CgkgIGNhbGxlZC4gVGhpcyBsZWFkcyB0byByZWZjb3VudGluZyBsZWFrcyB0aGF0IGNhbm5vdCBiZSBhdm9pZGVkLiBJbnN0ZWFkIGFsd2F5cwoJICBjYWxsIHRoZSBkZXN0cm95IG5vdGlmeSB3aGVuZXZlciB3ZSBpbnN0YWxsIGEgbmV3IHBhZCBibG9jay4KCSAgSW4gcGFydGljdWxhciwgdGhpcyBmaXhlcyBhIG5hc3R5IHBhZCBsZWFrIGluIGRlY29kZWJpbjIuCgkgIEFsc28gdXBkYXRlIHRoZSB1bml0IHRlc3QgdG8gaGF2ZSBtb3JlIGFjY3VyYXRlIGNvbW1lbnRzIGFuZCB0ZXN0IHRoZSByZXF1aXJlZAoJICBiZWhhdmlvdXIuCgoyMDA5LTEyLTIyIDIyOjUyOjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBzbWFsbCBjbGVhbnVwcywgdXNlIHNvbWUgR19MSUtFTFkKCjIwMDktMTItMjIgMTU6Mjk6MjYgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogRG9uJ3QgY3Jhc2ggaWYgdGhlcmUgaXMgbm8gc291cmNlIHBhZAoKMjAwOS0xMi0yMSAxOToxMTo0NSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDQ3Y2IyM2EgdG8gMTRjZWM4OQoKMjAwOS0xMi0yMSAxMTo1ODoxMiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBnc3R0YWdsaXN0OiBBZGRzIG5ldyB0YWdzCgkgIEFkZHMgdGhlIGZvbGxvd2luZyBuZXcgdGFnczoKCSAgR1NUX1RBR19TSE9XX05BTUUKCSAgR1NUX1RBR19TSE9XX1NPUlROQU1FCgkgIEdTVF9UQUdfU0hPV19FUElTT0RFX05VTUJFUgoJICBHU1RfVEFHX1NIT1dfU0VBU09OX05VTUJFUgoJICBHU1RfVEFHX0xZUklDUwoJICBHU1RfVEFHX0NPTVBPU0VSX1NPUlROQU1FCgkgIEdTVF9UQUdfR1JPVVBJTkcKCSAgRml4ZXMgIzU5OTc1OQoKMjAwOS0xMi0xOSAxNDoyNzowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogYWx3YXlzIGNhbGwgb3VyIGNoZWNrIGNoZWNrcyBmb3IgdGhlIFNVQlVOSVQgY29uZGl0aW9uYWwKCSAgVGhlIFNVQlVOSVQgY29uZGl0aW9uYWwgbmVlZHMgdG8gYmUgc2V0IGV2ZW4gaWYgY2hlY2sgaXMgZGlzYWJsZWQuIEFsc28KCSAgcmVtb3ZlIGEgRklYTUUgdGhhdCBpcyBub3QgbmVlZGVkIGFueSBsb25nZXIgLyBhZnRlciBhbGwuCgoyMDA5LTEyLTE4IDIxOjI4OjM1ICswMDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2Vycm9yLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xpc3QuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbG9nLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuYzoKCSAgY2hlY2s6IHBhdGNoIGludGVybmFsIGNoZWNrIGNvcHkgc28gaXQgd29ya3Mgd2l0aCBvdXIgYnVpbGQgc3lzdGVtCgkgIEZpeGVzICM2MDQ1NjUuCgoyMDA5LTEyLTE4IDIxOjI2OjAxICswMDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGNoZWNrLWNoZWNrcy5tNDoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IHVwZGF0ZSBhdXRvdG9vbHMgYW5kIGRvY3Mgc3R1ZmYgZm9yIG5ldyBjaGVjayB2ZXJzaW9uCgoyMDA5LTEyLTE3IDIwOjA5OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNoZWNrLWNoZWNrcy5tNDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suaC5pbjoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfZXJyb3IuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfaW1wbC5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19saXN0LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xvZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbXNnLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcHJpbnQuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3N0ci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuaDoKCSAgY2hlY2s6IHVwZGF0ZSBpbnRlcm5hbCBsaWJjaGVjayB0byAwLjkuOAoKMjAwOS0xMi0xNSAxODo1NTozOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogcHJpbnRmIGZvcm1hdCBmaXhlcwoKMjAwOS0xMi0xNCAxNjoyMjoxNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJICBkb2NzOiBsaW5rIGJ1cyBhbmQgdGFza3MKCSAgQWRkIGEgbGluayBmcm9tIGJ1cyBzZWN0aW9uIGRvY3MgdG8gdGhlIHRhc2sgZG9jcy4gQWRkIGEgcGFyYWdyYXBoIHRvIHRhc2sgZG9jcwoJICB0byB0ZWxsIGFib3V0IG1lc3NhZ2VzIGFuZCB0aGUgYnVzLgoKMjAwOS0xMi0xNCAxNToxMTo0MiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZG9jczogYWRkIG1vcmUgZG9jcyBhcm91bmQgR3N0U3RhdGUgYW5kIEdzdFN0YXRlQ2hhbmdlCgkgIFRha2UgcmV2aWV3ZWQgZG9jcyBmcm9tIGRvY3MvZGVzaWduL3BhcnQtc3RhdGUgdG8gaGF2ZSB0aGF0IG1vcmUgcHJvbWluZW50CgkgIGluc2lkZSB0aGUgYXBpIGRvY3MuIEFkZCBhIGZldyBzZW50ZW5jZXMgdG8gbGluayB0aGluZ3MgYmV0dGVyIHRvZ2V0aGVyLgoKMjAwOS0xMi0xNCAxNToxMToxNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICBkb2NzOiByZXZpZXcgYW5kIGZpeCBzcGVsbGluZwoKMjAwOS0xMi0xNCAxMTowNTo0MSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGdzdGVsZW1lbnRmYWN0b3J5OiBzZXQgb2JqZWN0IG5hbWUgZWFybGllciBpZiBhcHBsaWNhYmxlCgkgIFNldHRpbmcgYW4gb2JqZWN0IG5hbWUgaXMgbmljZSBmb3IgcHJvcGVyIGRlYnVnIGxvZ2dpbmcuIElkZWFsbHkgdGhpcyB3b3VsZAoJICBzdGlsbCBoYXBwZW5zIGVhcmxpZXIgKC5lLmcgd2hlbiBwYWRzIGFyZSBhZGRlZCB0byBhbiBlbGVtZW50LCBpdHMgbm90IHlldCBzZXQpLgoKMjAwOS0xMi0xNCAxMTowNzoyNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IGFkZCBmaXhtZS0wLjExIGNvbW1lbnQKCjIwMDktMTItMDggMTE6MzA6MzkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgY29tbWVudDogc21hbGwgY29tbWVudCBjb3JyZWN0aW9uCgoyMDA5LTEyLTExIDE2OjI2OjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IG5ldmVyIHNraXAgYSBzdGF0ZSBjaGFuZ2UgdG8gUExBWUlORwoJICBOZXZlciBza2lwIHRoZSBzdGF0ZSBjaGFuZ2UgdG8gcGxheWluZywgZXZlbiBpZiB0aGUgZWxlbWVudCBpcyBhbHJlYWR5IGluIHRoZQoJICByaWdodCBzdGF0ZS4gV2UgbmVlZCB0aGlzIGJlY2F1c2Ugd2UgYWxzbyBkaXN0cmlidXRlIHRoZSBiYXNlX3RpbWUgd2hpbGUgZG9pbmcKCSAgdGhlIHN0YXRlIGNoYW5nZSBhbmQgc2tpcHBpbmcgdGhpcyBzdGVwIHdvdWxkIGxlYXZlIHNvbWUgZWxlbWVudHMgd2l0aG91dCBhIG5ldwoJICBiYXNlX3RpbWUuCgkgIEZpeGVzICM2MDAzMTMKCjIwMDktMTItMTEgMTY6MTk6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBhZGQgc29tZSBtb3JlIGRlYnVnZ2luZwoKMjAwOS0xMi0wOCAxNzoyMTo0NyArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiByZWxlYXNlIHBhZHMgaW4gZGlzcG9zZQoJICBNYWtlIHN1cmUgdG8gcmVsZWFzZSBhbGwgcmVxdWVzdC1wYWRzIGluIHRoZSBkaXNwb3NlLW1ldGhvZCwgaW4gY2FzZSBvZiBhCgkgIHNodXRkb3duLXJhY2UsIHdoZXJlIGEgcGFkLWFsbG9jIGlzIGFib3V0IHRvIGhhcHBlbi4KCSAgRml4ZXMgIzYwNDA5MQoKMjAwOS0xMi0wOSAxMzoyNzoyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IHVzZSBOVUxMIGluc3RlYWQgb2YgMCBmb3IgcG9pbnRlcnMKCjIwMDktMTItMDkgMDc6MjU6MzEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIHRvb2xzOiBNb3ZlIGdzdF90b29sc19wcmludF92ZXJzaW9uKCkgZm9yIHRoZSByZW1haW5pbmcgdG9vbHMKCjIwMDktMTItMDMgMTI6MzE6MTkgKzAxMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBNb3ZlIGdzdF90b29sc19wcmludF92ZXJzaW9uIGNhbGwgdG8gYXZvaWQgd2FybmluZyBmcm9tIG5ldyBHTGliLgoJICBnX3NldHByZ25hbWUgaXMgaW1wbGljaXRseSBjYWxsZWQgYnkgZ19vcHRpb25fY29udGV4dF9uZXcoKSB3aXRoIGEgY2hlY2sKCSAgdG8gc2VlIGlmIGl0J3MgYmVlbiBzZXQgYWxyZWFkeS4KCSAgRml4ZXMgYnVnICM2MDQwOTMuCgoyMDA5LTEyLTA4IDE2OjQwOjU3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogRml4IHByb3h5X3NldGNhcHMgdG8gb25seSBpdGVyYXRlIHBhZHMgb2Ygb3RoZXIgZGlyZWN0aW9uCgoyMDA5LTEyLTA4IDE2OjIxOjQxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBmaXggcHJveHlfZ2V0Y2FwcwoJICBNYWtlIGl0IHJldHVybiB0aGUgcGFkdGVtcGxhdGUgY2FwcyBvbiBlcnJvcnMgYW5kIG5vIHBhcmVudC4KCSAgT25seSBpbnRlcnNlY3QgcGFkcyBvZiB0aGUgb3Bvc2l0ZSBkaXJlY3Rpb24gb2YgdGhlIHNvdXJjZSBwYWQuCgoyMDA5LTEyLTA4IDE2OjE0OjI4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogUmVuYW1lIHByb3h5IGl0ZXJhdG9yIGZvbGQgZnVuY3Rpb25zIHRvIGhhdmUgYSBtb3JlIG1lYW5pbmdmdWwgbmFtZQoKMjAwOS0xMi0wOCAxNjowOTowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IElmIG9uZSBpbnRlcnNlY3Rpb24gZ2F2ZSBlbXB0eSBjYXBzIGRvbid0IGNvbnRpbnVlIGl0ZXJhdGluZyBvdmVyIHRoZSBvdGhlciBwYWRzCgoyMDA5LTEyLTA4IDE1OjI0OjQzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IEFsbG93IHVwZGF0ZSBORVdTRUdNRU5UIGV2ZW50cyBhZnRlciBFT1MKCSAgVGhpcyBhbGxvd3MgZGVtdXhlcnMgdG8gdXBkYXRlIHRoZSBzZWdtZW50IHN0b3Agb2YgYW4gYWxyZWFkeQoJICBmaW5pc2hlZCBzdHJlYW0uIFRoaXMgbWlnaHQgYmUgbmVlZGVkIGlmIHNvbWUgc3RyZWFtIGdvZXMgdG8KCSAgRU9TIGJlZm9yZSB0aGUgZHVyYXRpb24gb2YgdGhlIGxvbmdlc3Qgc3RyZWFtIGlzIGtub3duIHRvIHByb3Blcmx5CgkgIHNldCB0aGUgc2VnbWVudCBzdG9wIG9mIGFsbCBzdHJlYW1zIHRvIHRoZSBzYW1lIHZhbHVlIGluIHRoZSBlbmQuCgoyMDA5LTEyLTA3IDIwOjUyOjIyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBVc2UgcGxhaW4gY2FzdGluZyBpbnN0ZWFkIG9mIHR5cGVjaGVja2luZwoKMjAwOS0xMi0wNyAwOTo0NTowMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogVXNlIGZhc3QgZ3N0X3ZhbHVlX2xpc3Rfe3NpemV8Z2V0X3ZhbHVlfSBtYWNybyBhY2Nlc3NvcnMKCSAgZ3N0X3ZhbHVlX2xpc3Rfc2l6ZSBhbmQgZ3N0X3ZhbHVlX2xpc3RfZ2V0X3ZhbHVlIHdpbGwgZG8gYSBzZXJpZXMgb2YKCSAgZXh0cmEgY2hlY2tzIGR1ZSB0byBiZWluZyBwdWJsaWMgbWV0aG9kcy4KCSAgV2hlbiB3ZSB1c2UgdGhlbSBmcm9tIHdpdGhpbiBnc3R2YWx1ZS5jIHdlIGNhbiBkaXJlY3RseSB1c2UgdGhlbSB3aXRob3V0CgkgIHRoZSBleHRyYSBjaGVja3MuCgoyMDA5LTEyLTA3IDA5OjQ0OjA2ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJICBnc3R1cmk6IERvbid0IHVzZSBnX3NpZ25hbF9lbWl0X2J5X25hbWUsIHVzZSB0aGUgc2lnbmFsIElEIGRpcmVjdGx5CgoyMDA5LTExLTE4IDA5OjAxOjM1ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgdGVlOiBhdm9pZCBleHBlbnNpdmUgdHlwZWNoZWNrcywgYW5kIGF2b2lkIGdldHRpbmcgcmVmIHRvIHBhcmVudC4KCSAgU3BlZWRzIHVwIHRlZSBwcm9jZXNzaW5nIDIgdG8gNSB0aW1lcy4KCjIwMDktMTEtMTIgMDk6MDc6MDMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogQXZvaWQgZG91YmxlIHN0cmR1cCB3aGVuIHNldHRpbmcgTlVMTCBuYW1lcy4KCSAgSW5zdGVhZCBvZiBjaGFpbmluZyB1cCB0byBnc3Rfb2JqZWN0X3NldF9uYW1lICh3aGljaCBkb2VzIHR5cGVjaGVja2luZwoJICBhbmQgc3RyZHVwJ3MgdGhlIG5hbWUgYWdhaW4pLCBqdXN0IHVzZSB0aGUgYWxyZWFkeSBhbGxvY2F0ZWQgbmV3CgkgIG5hbWUuCgoyMDA5LTEyLTA0IDEyOjE2OjMyIC0wODAwICBQZXRlciB2YW4gSGFyZGVuYmVyZyA8cHZoQHNvbmdiaXJkbmVzdC5jb20+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1wcm9wcy54bWw6CgkgIHB3ZzogbWFrZSB0aGUgZW51bSBleGFtcGxlIChiYXNlZCBvbiB2aWRlb3Rlc3RzcmMpIGFjdHVhbGx5IG1hdGNoIHZpZGVvdGVzdHNyYwoKMjAwOS0xMi0wNCAxNjoyODoyNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogSWdub3JlIHN0YXRlIGNoYW5nZSBmYWlsdXJlcyBmcm9tIGNoaWxkcmVuIHRoYXQgd2VyZSByZW1vdmVkIGZyb20gdGhlIGJpbiBhbHJlYWR5CgkgIEZpeGVzIGJ1ZyAjNTg0NDQxLgoKMjAwOS0xMi0wNCAxNTowMDo0NCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IFVzZSBHTWFwcGVkRmlsZSBmb3IgcmVhZGluZyB0aGUgcmVnaXN0cnkKCSAgRml4ZXMgYnVnICM2MDM3ODcuCgoyMDA5LTEyLTAzIDE5OjQ4OjExICswMTAwICBKYXZpZXIgSmFyZMOzbiA8amphcmRvbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IFN1YnN0aXR1dGUgZGVwcmVjYXRlZCBHTGliIHN5bWJvbDogZ19tYXBwZWRfZmlsZV9mcmVlCgkgIFVzZSBnX21hcHBlZF9maWxlX3VucmVmIGlmIEdsaWIgPj0gMi4yMiBpcyBhdmFpbGFibGUKCSAgRml4ZXMgYnVnICM1NjA0NDIuCgoyMDA5LTExLTI3IDIwOjE2OjE1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogU2h1dCBkb3duIHRoZSBwYWQgdGFzayB3aGVuIHRoZSBpbml0aWFsIHNlZWsgZmFpbHMuCgkgIFNldCB0aGUgcGFkIGZsdXNoaW5nIGFuZCBzdG9wIHRoZSBwYWQgdGFzayB3aGVuIHRoZSBpbml0aWFsIHNlZWsgZmFpbHMKCSAgZHVyaW5nIGFjdGl2YXRpb24uIEF2b2lkcyByYWN5IGNhbGxzIGludG8gdGhlIF9jcmVhdGUoKSBmdW5jdGlvbiB3aGVuCgkgIEJhc2VTcmM6OnN0b3AoKSBoYXMgYWxyZWFkeSBydW4uCgkgIEZpeGVzOiAjNjAzMDU5CgkgIEFsc28sIGZpeCBzb21lIG1pc3NwZWxsZWQgY29tbWVudHMuCgoyMDA5LTEyLTAzIDIwOjU1OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSAucG8gZmlsZXMgYWZ0ZXIgc3RyaW5nIGNoYW5nZXMKCSAgKFRoZSBxdWV1ZTIgc3RyaW5ncyBjb3VsZCB1c2Ugc29tZSB0aWR5aW5nIHVwKQoKMjAwOS0xMi0wMyAyMDo1MzoyNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc2luaywgZmlsZXNyYzogcHJpbnRmIGZvcm1hdCBmaXhlcwoJICBnc3RmaWxlc2luay5jOjM5OTogZXJyb3I6IGZvcm1hdCDigJglZOKAmSBleHBlY3RzIHR5cGUg4oCYaW504oCZLCBidXQgYXJndW1lbnQgOCBoYXMgdHlwZSDigJhzaXplX3TigJkKCSAgZ3N0ZmlsZXNpbmsuYzozOTk6IGVycm9yOiBmb3JtYXQg4oCYJWTigJkgZXhwZWN0cyB0eXBlIOKAmGludOKAmSwgYnV0IGFyZ3VtZW50IDkgaGFzIHR5cGUg4oCYZ3NpemXigJkKCSAgZ3N0ZmlsZXNyYy5jOjU4ODogZXJyb3I6IGZvcm1hdCDigJglMDhsbHjigJkgZXhwZWN0cyB0eXBlIOKAmGxvbmcgbG9uZyB1bnNpZ25lZCBpbnTigJksIGJ1dCBhcmd1bWVudCA4IGhhcyB0eXBlIOKAmG9mZl904oCZCgoyMDA5LTEyLTAzIDE2OjQ0OjI4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IGFkZCBzcGVjaWFsIGNhc2UgZm9yIG9ubHkgb25lIHBhZCBjb25lY3RlZAoJICBJdCBpcyBub3QgZWFzeSB0byBzZXR1cCBhIHRlZSBvbiB0aGUgZmx5LCB0aHVzIGFwcHMgbmVlZCB0byBhZGQgdGhlbSBhbHdheXMgaWYKCSAgdGhleSBtaWdodCBuZWVkIHRoZW0uIFRoaXMgY2hhbmdlcyB0aGUgY29kZSBzbywgdGhhdCBpZiBvbmx5IG9uZSBzcmMtcGFkIGlzCgkgIGFjdGl2ZSwgd2UgcHVzaCBidWZmZXJzIGRpcmVjdGx5LiBJbiB0aGUgbm9ybWFsIGNvZGUgcGF0aCBhbGwgYnVmZmVycyBhcmUgcHVzaGVkCgkgIHdpdGggYW4gZXh0cmEgcmVmLCB0aGF0IGZvcmNlcyBmb2xsb3d1cCBpbnBsYWNlIGVsZW1lbnRzIHRvIGNvcHkgdGhlIGRhdGEuCgoyMDA5LTEyLTAzIDE2OjExOjU5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IG9ubHkgbWVzc2FnZSBvbmNlIHBlciByZWNlaXZlZCBidWZmZXIKCSAgQXZvaWRzIGNoZWNraW5nIGZvciBlYWNoIHNvdXJjZSBwYWQuIFRoZSBtZXNzYWdlcyB3b3VsZCBiZSBhbG1vc3QgaWRlbnRpY2FsCgkgIGFueXdheS4KCjIwMDktMTItMDMgMTU6Mjc6MjEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHJhZnQtcmVnaXN0cnktY2hhbmdlLWhvb2tzLnR4dDoKCSAgZHJhZnRzOiBwbGFubmluZwoKMjAwOS0xMi0wMyAxNjowNTowMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgdGVlOiByZW1vdmUgdW51c2VkIG9mZnNldCBtZW1iZXIKCjIwMDktMTItMDMgMTY6MDI6MzUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogb25seSBub3RpZnkgYWxsb2MtcGFkIHByb3BlcnR5IGlmIGNoYW5nZWQuCgoyMDA5LTEyLTAyIDEzOjI5OjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBmaXggZG9jcyBmb3IgX2NvcHkoKQoKMjAwOS0xMi0wMSAyMjozNzo1MSAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBGaXggY2hlY2sgZm9yIFdpbmRvd3MKCjIwMDktMTItMDEgMTg6MDk6MDQgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdHRyYWNlLmM6CgkgIE1ha2UgZ2NjIGlubGluZSBhc3NlbWJseSBjb25kaXRpb25hbCBvbiBnY2MKCjIwMDktMTItMDEgMTk6Mjk6MjUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBSZWdpc3RlciBkZWJ1ZyBmdW5jcHRyIG9ubHkgb25jZS4KCSAgTWFrZXMgY3JlYXRpbmcgcXVldWUgZWxlbWVudHMgMy00IHRpbWVzIGZhc3RlciBhbmQgYXZvaWRzIGNvbnRlbnRpb24gb24gdGhlCgkgIGdsb2JhbCBmdW5jcHRyIGxvY2suCgoyMDA5LTEyLTAxIDE5OjI3OjQ3ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYy9iYXNlc2luazogUmVnaXN0ZXIgZGVidWcgZnVuY3B0ciBvbmx5IG9uY2UuCgkgIE1ha2VzIGJhc2VzcmMvYmFzZXNpbmsgaW5pdGlhbGl6YXRpb24gMy00IHRpbWVzIGZhc3RlciBhbmQgYXZvaWRzCgkgIGNvbnRlbnRpb24gb24gdGhlIGdsb2JhbCBmdW5jcHRyIGxvY2sKCjIwMDktMTItMDEgMTc6NTQ6NTYgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ3N0Z2hvc3RwYWQ6IFJlZ2lzdGVyIGRlYnVnIGZ1bmNwdHIgb25seSBvbmNlLgoJICBUaGlzIG1ha2VzIGdob3N0cGFkL3Byb3h5cGFkIGNyZWF0aW9uIDUgdGltZXMgZmFzdGVyIGFuZCBhdm9pZHMgY29udGVudGlvbgoJICBvdmVyIHRoZSBnbG9iYWwgZnVuY3B0ciBsb2NrLgoJICBJIGFsc28gbW92ZWQgdGhlIHR3byBjbGFzcyBpbml0IGRvd24gaW4gdGhlIGNvZGUgdG8gYXZvaWQgaGF2aW5nIHRvIGZvcndhcmQKCSAgZGVjbGFyZSBhbGwgdGhlIHZhcmlvdXMgZnVuY3Rpb25zLgoKMjAwOS0xMi0wMSAxNzo1NDoxNCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBPbmx5IHJlZ2lzdGVyIGRlYnVnIGZ1bmNwdHIgb25jZS4KCSAgVGhpcyBtYWtlcyBwYWQgaW5pdGlhbGl6YXRpb24gMiB0aW1lcyBmYXN0ZXIgYW5kIHdpdGhvdXQgYW55IGNvbnRlbnRpb24KCSAgb3ZlciB0aGUgZGVidWcgZnVuY3B0ciBnbG9iYWwgbG9jay4KCjIwMDktMTItMDEgMTc6NTM6MDMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0aW5mby5oOgoJICBnc3RpbmZvOiBBUEk6IEFkZCBHU1RfREVCVUdfUkVHSVNURVJfRlVOQ1BUUiBtZXRob2QuCgkgIFRoaXMgaXMgYSB2YXJpYW50IG9mIEdTVF9ERUJVR19GVU5DUFRSIHdoaWNoIGRvZXMgbm90IHJldHVybiBhbnl0aGluZy4KCjIwMDktMTItMDEgMTU6MDU6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA4N2JmNDI4IHRvIDQ3Y2IyM2EKCjIwMDktMTItMDEgMTQ6MDg6MjkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IFVzZSBuZXcgQUdfR1NUX1BMQVRGT1JNIG1hY3JvCgoyMDA5LTEyLTAxIDE0OjEwOjU5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZGE0Yzc1YyB0byA4N2JmNDI4CgoyMDA5LTExLTI4IDIyOjI5OjI5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogY2xpcCBzdGVwcGluZyBib3VuZGFyaWVzCgkgIFJvdW5kaW5nIGVycm9ycyB3aXRoIHRoZSBmbG9hdGluZyBwb2ludCByYXRlIGNvdWxkIG1ha2UgaXQgc28gdGhhdCB3ZQoJICBkb24ndCBlbmQgdXAgZXhhY3RseSBhdCB0aGUgcmVxdWlyZWQgc3RlcHBpbmcgZHVyYXRpb24uCgkgIFVzZSB0aGUgc2VnbWVudCBjbGlwcGluZyBib3VuZGFyaWVzLCB3aGljaCBhcmUgbm90IHN1YmplY3QgdG8gcmF0ZQoJICBhZGp1c3RlbWVudHMsIGluc3RlYWQgdG8gZGV0ZWN0IHdoZW4gd2UgcmVhY2hlZCB0aGUgc3RlcHBpbmcgZHVyYXRpb24uCgkgIEFkZCBzb21lIGRlYnVnIGluZm8gcmVsYXRlZCB0byBnb2luZyB0byB0aGUgUEFVU0VEIHN0YXRlLgoKMjAwOS0xMS0yOCAxNzowMjoxNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJICBkb2NzOiBmaXggYW5vdGhlciB0eXBvCgoyMDA5LTExLTI4IDE1OjQwOjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvaW50cm8tYmFzaWNzLnhtbDoKCSAgZG9jczogZml4IHR5cG8KCjIwMDktMTEtMjcgMTg6NTQ6MzMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDUzYTI0ODUgdG8gZGE0Yzc1YwoKMjAwOS0xMS0yNyAxMzo0MjozNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZ3N0ZXZlbnQ6IGZpeCBkb2NzCgkgIEZpeCBmbHVzaCBzdG9wcyBkb2NzLCB0aG9zZSBhcmUgc2VyaWFsaXplZCwgbm90IG91dCBvZiBib3VuZHMuCgkgIFByb2JhYmx5IGEgY29weSBhbmQgcGFzdGUgbWlzdGFrZS4KCjIwMDktMTEtMjcgMTY6Mzk6MzcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGRvY3M6IGZpeCBicm9rZW4geHJlZnMKCjIwMDktMTEtMjcgMTY6Mzk6MzcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBkb2NzOiBmaXggYnJva2VuIHhyZWZzCgoyMDA5LTExLTI3IDE2OjM5OjAxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICBkb2NzOiBhZGQgbWlzc2luZyBzZWN0aW9uIHRvIGxpYnMtZG9jcwoKMjAwOS0xMS0yNyAxNDoxODowMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHhtbC5jOgoJICBkb2NzOiBtYWtlIGxpbmtzIHdvcmsgKG5lZWRzIHJlY2VudCBndGstZG9jKQoKMjAwOS0xMS0yNyAxNDoxNzozNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBkb2NzOiBhZGQgbWlzc2luZyBwYXJhbWV0ZXIgZG9jcwoKMjAwOS0xMS0yNyAxNDoxNjo1NCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG9iamVjdC5oOgoJICBkb2NzOiBlbmFibGUgZG9jcyBmb3IgR3N0T2JqZWN0Q2xhc3MgdG8gZml4IGxpbmtzCgoyMDA5LTExLTI3IDE0OjE1OjA4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIGdzdG9iamVjdDogYWRkIEZJWE1FLTAuMTEgY29tbWVudHMKCjIwMDktMTEtMjUgMTg6MjU6MDEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R4bWwuYzoKCSAgZG9jczogYmV0dGVyIHdheSB0byBsaW5rIGNsYXNzIG1ldGhvZHMKCjIwMDktMTEtMjUgMTg6MjQ6MTYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBkb2NzOiB1c2UgJyonIGluc3RlYWQgb2YgeHh4IHRvIGF2b2lkIGNyZWF0aW5nIGEgYnJvZWtuIHhyZWYKCjIwMDktMTEtMjUgMTc6Mzc6MzMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGRvY3M6IGZpeCBtb3JlIGJvZ3VzIHhyZWZzCgoyMDA5LTExLTI1IDE3OjI3OjMwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIGRvY3M6IGFkZCBkb2NzIGZvciBHc3RQbHVnaW5GbGFncwoJICBUaGlzIGFsc28gbWFrZXMgbGlua3MgdG8gdGhlbSB3b3JrLgoKMjAwOS0xMS0yNSAxNTozOTo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1pbnRlcmZhY2VzLnhtbDoKCSAgZG9jczogaW1wcm92ZSBHc3RNaXhlciBhbmQgR3N0VHVuZXIgZG9jcwoJICBNZW50aW9uIHRoYXQgZWxlbWVudHMgaW1wbGVtZW50aW5nIEdzdE1peGVyIGFuZCBHc3RUdW5lciBuZWVkIHRvIGJlCgkgIGluIHRoZSByaWdodCBzdGF0ZSBiZWZvcmUgdGhleSBjYW4gYmUgdXNlZC4gQWxzbyBtZW50aW9uIEdMaWIKCSAgZnVuY3Rpb25zIGZvciBjb252ZXJ0aW5nIGZpbGVuYW1lcyB0byBhbmQgZnJvbSBVUklzLgoJICBGaXhlcyAjNjAyODc3LgoKMjAwOS0xMS0yNSAxNjo0NDowNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6CgkqIGdzdC9nc3RmaWx0ZXIuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R1cmkuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgZG9jczogZml4IHhyZWZzIGluIGRvY3MKCSAgRml4IHR5cG9zIGluIHhyZWZzLCBsaW5rcyB0byBub24gZXhpc3RpbmcgZnVuY3Rpb25zIGFuZCByZXdvcmsgcGx1cmFsIGZvcm1zLgoKMjAwOS0xMS0yNSAxNDo0MToyNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG1hY3Jvcy5oOgoJICBkb2NzOiByZW1vdmUgZ3RrZG9jIGhlYWRlciBhcyB0aGVzZSB0aGluZ3MgZG9uJ3QgY29tZSB1cCBvbiBvdXIgZG9jcyBldmVuCgoyMDA5LTExLTI1IDE0OjIzOjUzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgZG9jczogYWRkIG1pc3NpbmcgcGFyYW1ldGVyIGRvYyBzdHJpbmcKCjIwMDktMTEtMjUgMTQ6MjE6NTAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBkb2NzOiBkb2N1bWVudCBuZXcgZXZlbnQgaW4gZW51bQoKMjAwOS0xMS0yNSAxNDoxODoxNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGRvY3M6IGZpeCBndGstZG9jIHN5bnRheCBmb3IgZG9jLWJsb2Igc3RhcnQKCjIwMDktMTEtMjMgMTE6MzQ6MDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMTEtMjMgMTE6MzM6NDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXIyLnR4dDoKCSAgZG9jczogZml4IGdyYW1tYXIKCjIwMDktMTEtMjEgMTY6Mzc6MzQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBiYXNlc3JjOiBBZGQgZ3N0X2Jhc2Vfc3JjX25ld19zZWFtbGVzc19zZWdtZW50KCkKCSAgTWVyZ2UgbmV3IGZ1bmN0aW9uIGZyb20gcmVzaW5kdmQgaW50byB0aGUgcHJpbWFyeSBHc3RCYXNlU3JjIGZvcgoJICBzdGFydGluZyBhIG5ldyBzZWFtbGVzcyBzZWdtZW50LgoJICBBUEk6IGdzdF9iYXNlX3NyY19uZXdfc2VhbWxlc3Nfc2VnbWVudCgpCgoyMDA5LTExLTIwIDE2OjAwOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJICBieXRld3JpdGVyOiBmaXggY29tcGlsZXIgd2FybmluZwoJICBTb21lIGdjYyB2ZXJzaW9ucyB3YXJuIGFib3V0IGJ5dGV3cml0ZXIgd3JpdGluZyB0byBtZW1vcnkgYWNjZXNzZWQKCSAgdmlhIGEgY29uc3QgZ3VpbnQ4IHBvaW50ZXIsIGRlc3BpdGUgb3VyIGV4cGxpY2l0IGNhc3QgdG8gZ3VpbnQ4ICouCgkgIFdvcmsgYXJvdW5kIHRoYXQgYnkgdXNpbmcgYW4gaW50ZXJtZWRpYXJ5IHZhcmlhYmxlLgoJICBGaXhlcyAjNTk4NTI2LgoKMjAwOS0xMS0yMCAwOTozMzo0OCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNoZWNrOiBPbmx5IGNoZWNrIGZvciBnbXAvZ3NsIGlmIGJ1aWxkaW5nIG9mIHRlc3RzIGlzIG5vdCBkaXNhYmxlZAoKMjAwOS0xMS0xOSAxOTowMDowNSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogQ2xhbXAgdGhlIGJhc2UgdGltZSBjb3JyZWN0bHkgaW4gcG9zaXRpb24gcmVwb3J0aW5nCgkgIFdoZW4gY2xhbXBpbmcgdGhlIGJhc2UgdGltZSwgY29ycmVjdGx5IHVzZSAnbm93JywgaW5zdGVhZCBvZgoJICAnLW5vdycgLSB0aGUgaW50ZW50IGlzIHRvIHByZXZlbnQgJ25vdy1iYXNlJyBldmVyIGJlaW5nCgkgIG5lZ2F0aXZlLCB3aGljaCB3b3VsZCBjYXVzZSBhIHBvc2l0aW9uIHJlcG9ydCBvdXRzaWRlIHRoZSBzZWdtZW50LgoJICBGaXhlczogIzYwMjQxOQoKMjAwOS0xMS0wOSAxMDo1Mjo0MiAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIGdzdHBsdWdpbjogQWRkIEMrKyBlc2NhcGUgZm9yIGdzdF9wbHVnaW5fZGVzYyBkZWZpbmUKCSAgSW4gb3JkZXIgdG8gcHJvcGVybHkgZXhwb3J0IHRoZSBnc3RfcGx1Z2luX2Rlc2Mgc3ltYm9sCgkgIGZyb20gRExMcyBpbiBNU1ZDLCBpdCBuZWVkcyB0byBiZSBleHRlcm4gIkMiLgoKMjAwOS0xMS0xOSAxMjo1OToyOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZS9ncmFtbWFyLnk6IHJlbW92ZSB1bnVzZWQgRVJST1IgZGVmaW5lCgoyMDA5LTExLTE5IDEwOjI5OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMTg2MTI1MiB0byA1M2EyNDg1CgoyMDA5LTExLTE2IDE1OjQ3OjU3ICswMjAwICBQcmlpdCBMYWVzIDxwbGFlc0BwbGFlcy5vcmc+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IGZpeCBzeW1ib2wgZXhwb3J0aW5nIHdoZW4gYnVpbGRpbmcgdW5kZXIgZXRfRUUgbG9jYWxlCgkgIFtBLVpdIHJlZ2V4cCBmYWlscyB1bmRlciBldF9FRSBsb2NhbGUgYmVjYXVzZSBaIGluIEVzdG9uaWFuIGFscGhhYmV0IGlzCgkgIGxvY2F0ZWQgYWZ0ZXIgUyBhbmQgdGhlcmVmb3JlIGNoYXJhY3RlcnMgc3RhcnRpbmcgd2l0aCAnVFVWLi4uJyBhcmUgbm90CgkgIGluIHRoZSByYW5nZSBhbnltb3JlLgoJICBGaXhlcyBidWcgIzYwMjA5My4KCjIwMDktMTEtMTggMDc6NTk6MzYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogSGFuZGxlIHRoZSBuZXcgc2luay1tZXNzYWdlIGV2ZW50CgoyMDA5LTExLTE4IDA3OjUyOjI0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV2ZW50OiBBUEk6IEFkZCBzaW5rLW1lc3NhZ2UgZXZlbnQKCSAgZ3N0X2V2ZW50X25ld19zaW5rX21lc3NhZ2UoKQoJICBnc3RfZXZlbnRfcGFyc2Vfc2lua19tZXNzYWdlKCkKCSAgVGhpcyBldmVudCBpcyB1c2VkIGZvciBzZW5kaW5nIGEgR3N0TWVzc2FnZSBkb3duc3RyZWFtIGFuZCBzeW5jaHJvbml6ZWQKCSAgd2l0aCB0aGUgc3RyZWFtLCB0byBiZSBwb3N0ZWQgYnkgdGhlIHNpbmsgb25jZSBpdCByZWFjaGVzIHRoZSBzaW5rLgoJICBGaXhlcyBidWcgIzYwMjI3NS4KCjIwMDktMTEtMTYgMDA6MTI6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBsaWJzL2dzdC9oZWxwZXJzLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXBsdWdpbi1zY2FubmVyLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIHBsdWdpbi1zY2FubmVyOiByZW5hbWUgcGx1Z2luLXNjYW5uZXIgaGVscGVyIGJpbmFyeSB0byBnc3QtcGx1Z2luLXNjYW5uZXIKCSAgYW5kIGluc3RhbGwgaW50byBhIGRpZmZlcmVudCBkaXJlY3RvcnkgJChsaWJleGVjZGlyL2dzdHJlYW1lci0wLjEwKSBzbyB0aGF0CgkgIGV2ZXJ5dGhpbmcgaXMgdmVyc2lvbmVkIHByb3Blcmx5LgoJICBOT1RFOiBydW4gJ21ha2UgY2xlYW4nIGFmdGVyIHVwZGF0aW5nOyBpZiB5b3UgYXJlIHJ1bm5pbmcgYW4gdW5pbnN0YWxsZWQgc2V0dXAsCgkgIHlvdSB3aWxsIG5lZWQgdG8gdXBkYXRlIHlvdXIgZ3N0LXVuaW5zdGFsbGVkIHNjcmlwdCAodW5sZXNzIGl0J3Mgc3ltbGlua2VkCgkgIHRvIGdzdHJlYW1lciBjb3JlIG1hc3RlcikgYW5kIGV4aXQvZW50ZXIgeW91ciB1bmluc3RhbGxlZCBlbnZpcm9ubWVudCB0byBnZXQKCSAgdGhlIHVwZGF0ZWQgZW52aXJvbm1lbnQuIElmIHlvdSBhcmUgcnVubmluZyBhbiBpbnN0YWxsZWQgc2V0dXAsIHlvdSBzaG91bGQKCSAgcnVuICdtYWtlIHVuaW5zdGFsbCcgYmVmb3JlIG1lcmdpbmcgdGhpcyBjaGFuZ2Ugb3IgcmVtb3ZlIHRoZSBvbGQKCSAgcGx1Z2luLXNjYW5uZXIgYmluYXJ5IG1hbnVhbGx5LgoJICBGaXhlcyAjNjAxNjk4LgoKMjAwOS0xMS0xOCAwOToxMDozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIFJldmVydCAic3RydWN0dXJlOiBkb24ndCBjaGVjayB0eXBlIHR3aWNlIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGY4NjQxODdiZjVmZGZhZjcxZjJlMDM4OTQ5ZTQwM2E0MmU2ZGFmMGUuCgkgIFJldmVydGluZyB0aGlzIGFzIGl0IGNoYW5nZXMgYmVoYXZpb3VyIGFuZCB0aGUgZG9jdW1lbnRhdGlvbiBpcwoJICBhbWJpZ3VvdXMgYWJvdXQgd2hldGhlciB0aGUgY2FsbGVyIG11c3QgY2hlY2sgdGhlIHR5cGUgZmlyc3Qgb3IKCSAgbm90IChjYWxsIG11c3QgY2hlY2sgdHlwZSB2cy4gcmV0dXJucyBOVUxMIGlmIG5vdCBhIHN0cmluZykuIElmCgkgIEdMaWIgaGFzIGJlZW4gY29tcGlsZWQgd2l0aCBHX0RJU0FCTEVfQ0hFQ0tTIHRoZW4gZ192YWx1ZV9nZXRfc3RyaW5nKCkKCSAgbWF5IHJldHVybiBjb21wbGV0ZSBnYXJiYWdlIGV2ZW4gaWYgdGhlIHZhbHVlIGRvZXMgbm90IGNvbnRhaW4KCSAgYSBzdHJpbmcuIEJldHRlciBwbGF5IGl0IHNhZmUsIGVzcC4gc2luY2UgdGhlIGV4dHJhIGNoZWNrIGlzIGp1c3QKCSAgYW4gaW50ZWdlciBjb21wYXJpc29uLiBGb3IgZnVuZGFtZW50YWwgdHlwZXMgd2UgY291bGQgcmV0dXJuIHZhbHVlcwoJICBmcm9tIHRoZSBHVmFsdWUgc3RydWN0dXJlIGRpcmVjdGx5IGlmIHdlIHJlYWxseSB3YW50ZWQgdG8gYnlwYXNzCgkgIHRoZSBleHRyYSBjaGVjay4KCjIwMDktMTEtMTcgMTc6MDY6MDggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBkb24ndCBjaGVjayB0eXBlIHR3aWNlCgoyMDA5LTExLTE3IDE4OjM1OjU1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogQWRkIHN0ZXAgZXZlbnQgcXVhcmsKCjIwMDktMTEtMTcgMTA6MDI6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCBwYXRocyBmb3IgZ3N0LXFhLXN5c3RlbQoKMjAwOS0xMS0xNyAwOTowNjo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIGRvY3M6IHNldCBHU1RfUExVR0lOX1NDQU5ORVIgd2hlbiBjYWxsaW5nIGd0a2RvYy1zY2FuZ29iagoJICBPdGhlcndpc2UgdGhlIGRvY3MgYnVpbGQgd29uJ3Qgd29yayBwcm9wZXJseQoKMjAwOS0xMS0xNiAxMzo1ODoxMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IHJlbW92ZSBzb21lIGJsYW5rIGxpbmVzIChwcmV2aW91cyBnc3QtaW5kZW50IGZhaWx1cmUpCgoyMDA5LTExLTE2IDEzOjUzOjQ0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogdXNlIGxvY2FsIHZhcmlhYmxlIGVhcmxpZXIKCjIwMDktMTEtMTYgMTM6NDk6MzIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBkb24ndCBjaGVjayBlbnVtIHR5cGVzIHR3aWNlLgoJICBHX1ZBTFVFX0hPTERTX0VOVU0odmFsdWUpIGlzIGRlZmluZWQgYXMgR19UWVBFX0NIRUNLX1ZBTFVFX1RZUEUgKHZhbHVlLAoJICBHX1RZUEVfRU5VTSkuIEp1c3QgY2hlY2sgZm9yIHRoZSByaWdodCBlbnVtLXR5cGUgcmlnaHQgYXdheS4KCjIwMDktMTEtMTQgMjI6MzU6MDcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBjaGVjazogQWRkIGEgZGVidWcgc3RhdHVzIHRvIHRoZSBzeXN0ZW1jbG9jayB0ZXN0CgkgIE5leHQgdGltZSBpdCBmYWlscyBvbiBhIGJ1aWxkYm90IHdlIGNhbiBzZWUgd2hpY2ggY2xvY2sgaWQKCSAgcmV0dXJuIGl0IGlzIGdldHRpbmcuCgoyMDA5LTExLTE2IDE4OjI1OjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgVE9ETzogcmVtb3ZlIHN0ZXBwaW5nIGZyb20gVE9ETwoJICBSZW1vdmUgdGhlIGZyYW1lIHN0ZXBwaW5nIEFQSSBmcm9tIHRoZSBUT0RPIGxpc3QuCgoyMDA5LTExLTE2IDE0OjAyOjA3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZml4IHBvc2l0aW9uIHJlcG9ydGluZwoJICBPbmx5IHVwZGF0ZSB0aGUgY3VycmVudCBzdHJlYW0gdGltZSBhZnRlciB3ZSBjaGVja2VkIGlmIHdlIGdvdCBhIG5ldyBzdGVwCgkgIGV2ZW50LiBUaGlzIGltcHJvdmVzIHRoZSBwb3NpdGlvbiByZXBvcnRpbmcgYnkgdGhlIHNpbmsuCgkgIFNlZSAjNTk1OTU4CgoyMDA5LTExLTE2IDA5OjQ5OjQ2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1dGlsczogQVBJOiBBZGQgbXVsdGlwbGljYXRpb24gYW5kIGFkZGl0aW9uIGZ1bmN0aW9ucyBmb3IgZnJhY3Rpb25zCgkgIGdzdF91dGlsX2ZyYWN0aW9uX2FkZCgpCgkgIGdzdF91dGlsX2ZyYWN0aW9uX211bHRpcGx5KCkKCSAgVGhlc2Ugd29yayBvbiBwbGFpbiBpbnRlZ2VycyBpbnN0ZWFkIG9mIEdWYWx1ZXMgdG8KCSAga2VlcCB0aGUgb3ZlcmhlYWQgYXMgbG93IGFzIHBvc3NpYmxlLgoKMjAwOS0xMS0xNiAwOToyOToxMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0dXRpbHM6IEFQSTogQWRkIGZyYWN0aW9uIGhlbHBlciBmdW5jdGlvbnMKCSAgZ3N0X3V0aWxfZ3JlYXRlc3RfY29tbW9uX2Rpdmlzb3IoKQoJICBnc3RfdXRpbF9kb3VibGVfdG9fZnJhY3Rpb24oKQoJICBnc3RfdXRpbF9mcmFjdGlvbl90b19kb3VibGUoKQoJICBVc2luZyB0aGVzZSBpbnN0ZWFkIG9mIGdvaW5nIG92ZXIgR1ZhbHVlIGhhcyBtdWNoIGxvd2VyIG92ZXJoZWFkLgoJICBBbHNvIGFkZCBmbG9hdDwtPmZyYWN0aW9uIHRyYW5zZm9ybSBmdW5jdGlvbnMgZm9yIEdWYWx1ZS4KCjIwMDktMTEtMTMgMTU6NDU6NTIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZGVidWc6IGFkZCBtb3JlIGRlYnVnIGxvZ2dpbmcgdG8gaGVscCB0cmFja2luZyBwYXJzaW5nIGVycm9ycwoKMjAwOS0xMS0xMyAxMTo0MjowMiArMDEwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGF2b2lkIHJhY2Ugd2hlbiByZWN5Y2xpbmcgYnVmZmVycwoJICBBdm9pZCBhIHJhY2Ugd2hlcmUgYSBtaW5pb2JqZWN0IGlzIHJlY3ljbGVkIGFuZCBxdWlja2x5IGZyZWVkLCB3aGljaCBjYXVzZXMgdGhlCgkgIGdfdHlwZV9mcmVlX2luc3RhbmNlKCkgdG8gYmUgY2FsbGVkIG9uIHRoZSBzYW1lIG9iamVjdCB0d2ljZS4KCSAgUmVmIHRoZSBvYmplY3QgYmVmb3JlIGNhbGxpbmcgdGhlIGZpbmFsaXplIG1ldGhvZCBhbmQgY2hlY2sgaWYgd2Ugc3RpbGwgbmVlZCB0bwoJICBmcmVlIGl0IGFmdGVyd2FyZC4KCSAgQWxzbyBhZGQgYSB1bml0IHRlc3QgZm9yIHRoaXMgY2FzZS4KCSAgRml4ZXMgIzYwMTU4NwoKMjAwOS0xMS0xMiAxNzowMjo0MCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHdoaXRlc3BhY2U6IHJlbW92ZSBibGFua3MgaW4gZG9jLWNvbW1lbnQKCjIwMDktMTEtMDYgMTU6NDI6NTcgKzAzMDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBJbXBvcnQgX3ByaXZfZ3N0X2RsbF9oYW5kbGUgaW50byBnc3RyZWdpc3RyeS5jCgkgIEZpeGVzIGJ1ZyAjNjAxNjY4LgoKMjAwOS0xMS0xMiAxNDoxMDowNiArMDMwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBEbyBub3QgbGlzdCBsaWJnc3RjaGVjayBhcyBhIHJlcXVpcmVtZW50IGZvciB0ZXN0cy9leGFtcGxlcy9tYW51YWwKCSAgRml4ZXMgYnVnICM2MDE2NjkuCgoyMDA5LTExLTExIDE3OjEyOjE5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBGaXggdHJlYXRpbmcgYmFzZV90aW1lIGFzIHVuc2lnbmVkIGluIHBvc2l0aW9uIGNhbGN1bGF0aW9uCgkgIEVsZW1lbnQgYmFzZV90aW1lIGlzIGEgc2lnbmVkIHF1YW50aXR5LCB3aGljaCBsZWFkcyB0byBiYXNlc2luayByZXR1cm5pbmcKCSAgYSBwb3NpdGlvbiBvZiAwIHdoZW4gZGVhbGluZyB3aXRoIGEgbmVnYXRpdmUgYmFzZSB0aW1lIC0gd2hpY2ggYXJlIHF1aXRlCgkgIGxlZ2FsIHdoZW4gY2xvY2tzIChzdWNoIGFzIHRoZSBhdWRpbyBjbG9jaykgYXJlIGNsb3NlIHRvIDAuCgkgIFRoaXMgZG9lc24ndCBtYW5pZmVzdCBpbiBub3JtYWwgcGlwZWxpbmVzLCBvZiBjb3Vyc2UgLSBidXQgY2FuIGhhcHBlbgoJICAoYXQgbGVhc3QpIHdoZW4gbWFudWFsbHkgc2V0dGluZyB0aGUgYmFzZSB0aW1lIG9uIGEgcGlwZWxpbmUuCgoyMDA5LTExLTEwIDE4OjAzOjQzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHJlZ2lzdHJ5OiBBUEk6IEFkZCBnc3Rfe2RlZmF1bHQsfV9yZWdpc3RyeV9nZXRfZmVhdHVyZV9saXN0X2Nvb2tpZSgpCgkgIFRoaXMgcmV0dXJucyB0aGUgaW50ZXJuYWwgZmVhdHVyZSBsaXN0IGNvb2tpZSwgd2hpY2ggY2hhbmdlcyBldmVyeQoJICB0aW1lIGEgZmVhdHVyZSBpcyBhZGRlZCBvciByZW1vdmVkLiBUaGlzIGNhbiBiZSB1c2VkIGJ5IGVsZW1lbnRzCgkgIHRvIGNoZWNrIGlmIHRoZXkgc2hvdWxkIHVwZGF0ZSB0aGVpciBjYWNoZWQgZmVhdHVyZSBsaXN0cy4KCjIwMDktMTEtMTAgMTE6NTU6MzQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggcHJpbnRmIGZvcm1hdAoJICBDYXN0IHRoZSB2YXJpYWJsZSB0byBnaW50IHRvIGNvbmZvcm0gdG8gdGhlIHByaW50ZiBmb3JtYXQgdXNlZC4KCSAgSXQgaXMgY2FzdGVkIHJhdGhlciB0aGFuIGNoYW5naW5nIHRoZSBmb3JtYXQgYmVjYXVzZSB0aGUKCSAgbWVzc2FnZSBpcyBjcmVhdGVkIHdpdGggYSBjYXN0IHRvIGdpbnQgdG9vLgoKMjAwOS0xMS0xMCAxMDoxMDo1NiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGF2b2lkIGNyYXNoaW5nIGR1ZSB0byBuZWdhdGl2ZSBwZXJjZW50CgkgIHF1ZXVlMiB3b3VsZCBjcmFzaCB3aGVuIHVzaW5nIHNtYWxsIGJ1ZmZlciBzaXplcyBiZWNhdXNlCgkgIGl0IHdvdWxkIG92ZXJmbG93IHdoZW4gY2FsY3VsYXRpbmcgdGhlIHBlcmNlbnRhZ2UsIHJlc3VsdGluZwoJICBpbiB0aGUgYnVmZmVyaW5nIEdzdE1lc3NhZ2Ugbm90IGJlaW5nIGNyZWF0ZWQgYW5kIHRyeWluZyB0byBiZQoJICB1c2VkLiBUaGlzIHBhdGNoIHVzZXMgYSBnaW50NjQgaW5zdGVhZCBvZiBhIGdpbnQgdG8gZG8gdGhlCgkgIHBlcmNlbnRhZ2UgbWF0aCwgbWFraW5nIGl0IGhhcmRlciB0byBvdmVyZmxvdy4KCjIwMDktMTEtMTAgMDk6NTI6MzAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBGaXggc21hbGwgZG9jIHR5cG8KCjIwMDktMTEtMTAgMDA6NTc6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5Y2h1bmtzOiBmaXggY29tcGlsYXRpb24gd2l0aCBkZWJ1Z2dpbmcgZGlzYWJsZWQKCSAgQWRkIHVnbHkgaWZkZWYgdG8gZml4IHVudXNlZCB2YXJpYWJsZSB3YXJuaW5nIHdoZW4gY29tcGlsaW5nIHdpdGgKCSAgZGVidWcgbG9nZ2luZyBkaXNhYmxlZC4KCjIwMDktMTEtMDkgMTY6MjA6NTIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHJhZnQtYnVmZmVycG9vbHMudHh0OgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL2RyYWZ0LXJlZ2lzdHJ5LWNoYW5nZS1ob29rcy50eHQ6CgkgIHBsYW5uaW5nOiBhZGQgdGhvdWdodHMgYWJvdXQgZm9yZWlnbiByZWdpc3RyeSBjYWNoZSB1cGRhdGVzCgoyMDA5LTExLTA5IDE0OjU1OjU0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBpbnNwZWN0OiBhbGxvdyB0byBnZXQgcGx1Z2luLWluc3RhbGwtaW5mbyBmb3IgYWxsIGluc3RhbGxlZCBwbHVnaW5zCgkgIElmIG5vIHBsdWdpbiBpcyBnaXZlbiwgcHJpbnQgdGhlIGluZm8gZm9yIGFsbCBwbHVnaW5zLiBUaGlzIGNhbiBiZSB1c2VkIGFzIGEKCSAgc3RhcnRpbmcgcG9pbnQgdG8gZ2VuZXJhdGUgYSBwcm9maWxlIGFib3V0IHdoYXQgdGhlIGdzdHJlYW1lciBpbnN0YWxsYXRpb24gY2FuCgkgIHBvdGVudGlhbHkgaGFuZGxlIChlLmcuIGZvciBNVFAgb3IgRExOQSkuCgoyMDA5LTExLTA5IDEyOjQyOjM1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOgoJICBkb2NzOiBkb24ndCBmb3JnZXQgdG8gdW5yZWYgdGhlIHBhZAoKMjAwOS0xMS0wNyAyMDoyMjo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IHdha2UgdXAgbGVzcyBvZnRlbiB0byBjaGVjayBpZiB3ZSd2ZSBiZWVuIGludGVycnVwdGVkCgkgIENoZWNrIGlmIHdlJ3ZlIGJlZW4gaW50ZXJydXB0ZWQgb25seSBmb3VyIHRpbWVzIHBlciBzZWNvbmQgaW5zdGVhZAoJICBvZiB0d2VudHkgdGltZXMgcGVyIHNlY29uZCwgdG8gd2FrZSB1cCB0aGUgY3B1IGxlc3Mgb2Z0ZW4gYW5kCgkgIHNhdmUgcG93ZXIgKHNlZSBidWcgIzYwMDkyMikuCgoyMDA5LTExLTA1IDIxOjE4OjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgZ3N0Y29uZmlnLmg6IGFkZCBkZWZpbmUgdG8gZm9yY2UgcHJpbnRmIGZvcm1hdCBjaGVja2luZyBmb3IgZGVidWcgbWVzc2FnZXMKCSAgRm9yY2UgcHJpbnRmIGZvcm1hdCBjaGVja2luZyBmb3IgZGVidWcgbWVzc2FnZXMgaWYgR1NUX0RJU0FCTEVfUFJJTlRGX0VYVEVOU0lPTgoJICBpcyBkZWZpbmVkLiBUaGlzIGlzIHVzZWZ1bCB0byBxdWlja2x5IGNoZWNrIGNvZGUgZm9yIHByaW50ZiBmb3JtYXQgbWlzbWF0Y2hlcwoJICBpbiBkZWJ1Z2dpbmcgbWVzc2FnZXMgdGhhdCB3b3VsZCB1c3VhbGx5IG5vdCBiZSBjYXVnaHQgKHdpdGggZ2xpYmMrZ2NjIGFuZAoJICBwcmludGYgZXh0ZW5zaW9ucyBiZWluZyB1c2VkKS4KCSAgVG8gdXNlOiBtYWtlIGNsZWFuOyBtYWtlIENGTEFHUz0nLWcgLU8yIC1ER1NUX0RJU0FCTEVfUFJJTlRGX0VYVEVOU0lPTicKCjIwMDktMTEtMDUgMjE6MDk6MjggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICB0ZXN0czogTWFrZSBzdXJlIHdlIHVzZSB0aGUgbG9jYWwgbGliZ3N0YmFzZSBhbmQgbm90IGEgc3RyYXkgb3V0c2lkZSBvbmUuCgkgIFRoZW9yZXRpY2FsbHkgd2Ugc2hvdWxkIGFsc28gZG8gdGhpcyBmb3IgYWxsIGxvY2FsIGxpYnJhcmllcyB0byBtYWtlIHN1cmUKCSAgd2UgZG9uJ3QgdGVzdCB3aXRoIGEgJ3N0cmF5JyBvdXRzaWRlIGxpYnJhcnkuCgoyMDA5LTExLTA1IDE4OjM2OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5oOgoJICBkb2NzOiBmaXggdHlwbwoKMjAwOS0xMS0wNSAxNTo1OTozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBhdm9pZCBsb29raW5nIHVwIEdzdFRhZ0luZm8gdHdpY2UgaW4gYSByb3cKCSAgUGFzcyB0aGUgaW5mbyBzdHJ1Y3R1cmUgdG8gb3VyIGludGVybmFsIGZ1bmN0aW9uIGlmIGFscmVhZHkgYXZhaWxhYmxlLgoJICBBbHNvIGNsZWFuIHVwIHdhcm5pbmdzIGZvciB1bmtub3duIHRhZ3MuCgoyMDA5LTExLTA1IDE4OjU1OjMwICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIGdzdHJlZ2lzdHJ5Y2h1bmtzOiBXZSdyZSBjZXJ0YWluIHBsdWdpbl9uYW1lIGlzIGFuIGludGVybiBzdHJpbmcuCgkgIFRoZSBvbmx5IHBsYWNlIHRoaXMgbWV0aG9kIGlzIGNhbGxlZCBmcm9tIGNyZWF0ZXMgdGhlIHBsdWdpbl9uYW1lIGFyZ3VtZW50CgkgIHdpdGggZ19pbnRlcm5fc3RyaW5nKCkuCgkgIFNoYXZlcyBvZmYgMSUgZnJvbSByZWdpc3RyeSBsb2FkaW5nLgoKMjAwOS0xMS0wNCAxOTozMzo1OCArMDAwMCAgQmFzdGllbiBOb2NlcmEgPGhhZGVzc0BoYWRlc3MubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgaW1wbGVtZW50IGJ1ZmZlcmluZy1sZWZ0IGFyZ3VtZW50IHRvIGJ1ZmZlciBtZXNzYWdlcwoJICBVc2luZyB0aGUgY3VycmVudCBmaWxsIGxldmVsIG9mIHRoZSBxdWV1ZSwgYW5kIHRoZSBhdmVyYWdlIGlucHV0CgkgIHJhdGUsIHdlIGNhbiBkZXRlcm1pbmUgaG93IGxvbmcgaXQgd2lsbCB0YWtlIHRvIGZpbmlzaCBkb3dubG9hZGluZwoJICB0aGUgd2hvbGUgc3RyZWFtIHRvIHRoZSB0ZW1wb3JhcnkgZmlsZS4KCSAgRml4ZXMgIzYwMDcyNgoKMjAwOS0xMS0wNSAxNToxMzowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0xMS0wNSAxNDowMjoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogZml4IGxvY2tpbmcKCjIwMDktMTEtMDUgMTQ6Mjk6NTAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogZG9uJ3QgcmVsZWFzZSBtdXRleCB0d2ljZQoKMjAwOS0xMS0wNSAxNDoyOToxMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBza2lwIHR5cGUgY2hlY2sgaW4gaW50ZXJuYWwgYXBpCgoyMDA5LTExLTA1IDEyOjM2OjEwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGluZGVudGF0aW9uIGZpeAoKMjAwOS0xMS0wNSAxMjo1NDozMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiByZW5hbWUgbmV3IGFwaSBmcm9tIF9yZWZlZCB0byBfcmVmZmVkLgoJICBEdWUgdG8gcG9wdWxhciBkZW1hbmQgcmVuYW1lIHRoZSBuZXcgYXBpIGFzIHdlIHN0aWxsIGNhbi4KCSAgQVBJOiBnc3RfcGFkX2dldF9jYXBzX3JlZmZlZCgpLCBnc3RfcGFkX3BlZXJfZ2V0X2NhcHNfcmVmZmVkKCkKCjIwMDktMTEtMDQgMjI6NDI6NTIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGFjY2VzcyBwYWR0ZW1wbGF0ZSBsaXN0IGRpcmVjdGx5IHRvIGF2b2lkIGNhbGwgYW5kIHR5cGUgY2hlY2suCgoyMDA5LTExLTA0IDE4OjU4OjI2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogQWRkIGEgRklYTUUgMC4xMSBmb3IgaGF2aW5nIGZsdXNoIGV2ZW50cyB0aGF0IGRvbid0IHJlc2V0IHJ1bm5pbmcgdGltZQoKMjAwOS0xMS0wNCAxNzo1MjoyMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5Y2h1bmtzOiBGaXggYSBwcmludGYgY29tcGlsZSB3YXJuaW5nIG9uIDY0LWJpdCBwbGF0Zm9ybXMKCjIwMDktMTEtMDQgMTc6MTU6NTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBNYWtlIHN1cmUgdGhhdCBub2JvZHkgc2V0cyB0aGUgcHJveHlwYWQgb3IgZ2hvc3RwYWQgaXRzZWxmIGFzIHRhcmdldAoJICBEb2luZyB0aGlzIHdpbGwgbGVhZCB0byB2ZXJ5IGludGVyZXN0aW5nIGNyYXNoZXMsIGxpa2Ugc3RhY2sgb3ZlcmZsb3dzLgoKMjAwOS0xMS0wNCAxMTozNTo0NiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcGx1Z2luIGxvYWRlcjogRG9uJ3QgZmFpbCBhZnRlciBhIHNob3J0IHJlYWQvd3JpdGUKCSAgVGhlIGxvZ2ljIHRvIGhhbmRsZSBzaG9ydCByZWFkcy93cml0ZXMgd2FzIGluY29ycmVjdCwgY2F1c2luZyB0aGUKCSAgcGFja2V0IGhhbmRsZXIgdG8gYXR0ZW1wdCB0byBoYW5kbGUgaW5jb21wbGV0ZSBwYWNrZXRzLgoJICBHcm93IHRoZSBwYWNrZXQgdHJhbnNtaXQgYnVmZmVyIGluIHByb3BvcnRpb24gdG8gb2JzZXJ2ZWQgdXNhZ2UsCgkgIGNhdXNpbmcgZmV3ZXIgcmVhbGxvY3MuCgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW4gdGhlIHJlZ2lzdHJ5IGNodW5rcyBjb2RlLgoKMjAwOS0xMS0wNCAwMTo1MTozOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW4gbG9hZGVyOiBEb24ndCBjcmFzaCBvbiBib2d1cyBwbHVnaW4gZGV0YWlscwoJICBXaGVuIGludmFsaWQgcmVnaXN0cnkgY2h1bmtzIGFyZSByZWNlaXZlZCBmcm9tIHRoZSBjaGlsZCwgYW5kIHBhcnNpbmcKCSAgZmFpbHMsIGRvbid0IGFjY2VzcyBhbiBpbnZhbGlkIHBsdWdpbiBwb2ludGVyLiBJbnN0ZWFkIGF0dGVtcHQgdG8KCSAgZmlndXJlIG91dCB3aGljaCBwbHVnaW4gY2F1c2VkIHRoZSBwcm9ibGVtIGFuZCBibGFja2xpc3QgaXQuCgoyMDA5LTExLTA0IDAxOjU0OjM2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0b29scy9nc3QtaW5kZW50OgoJICBnc3QtaW5kZW50OiBVc2UgdGhlIHNhbWUgbG9naWMgdG8gZmluZCBnbnVpbmRlbnQgYXMgdGhlIGdpdCBob29rCgoyMDA5LTExLTAzIDE3OjMwOjE0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBidWlsZDogaW5jbHVkZSBzdGRpby5oIGZvciBGSUxFCgoyMDA5LTExLTAzIDAxOjE4OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgZG9jczogYWRkIGFub3RoZXIgZXhhbXBsZSB0byB0aGUgZ3N0LWxhdW5jaCBtYW4gcGFnZQoJICBBZGQgYW4gZXhhbXBsZSB0aGF0IHNob3dzIGhvdyB0byByZWZlciB0byBzcGVjaWZpYyBwYWRzIGJ5IG5hbWUKCSAgd2hlbiBjb25zdHJ1Y3RpbmcgYSBwaXBlbGluZSBzdHJpbmcuIEZpeGVzICM2MDAzODIuCgoyMDA5LTExLTAyIDA4OjQ4OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJICBnc3R0eXBlZmluZDogYXZvaWQgb25lIG1vcmUgcnVuLXRpbWUgdHlwZSBjaGVjawoKMjAwOS0xMS0wMiAwOToyMjozNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHN0cnVjdHVyZTogQVBJOiBBZGQgZ3N0X3N0cnVjdHVyZV9pZF9oYXNfZmllbGR7LF90eXBlZH0KCjIwMDktMTEtMDIgMDg6Mjg6MjAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSAgZ3N0dHlwZWZpbmQ6IFVzZSBfQ0FTVCB2YXJpYW50cyB3aGVuIHRoZSB0eXBlIGhhcyBhbHJlZHkgYmVlbiBjaGVja2VkLgoJICBUaGlzIGF2b2lkcyBjaGVja2luZyB0aGUgdHlwZSBuX3R5cGVmaW5kZXJzICogNCB0aW1lcyB3aGVuIGxvYWRpbmcgdGhlCgkgIHJlZ2lzdHJ5LgoKMjAwOS0xMS0wMSAxMToyNDo0MCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IEltcGxlbWVudCBpdGVyYXRlIGludGVybmFsIGxpbmtzCgkgIFRoZSBpbnRlcm5hbGx5IGxpbmtlZCBwYWQgb2YgdGhlIGdob3N0IHBhZCBpcyBpdHMKCSAgcHJveHkgcGFkLCB3aGljaCBpcyB0aGUgcGFkIHRoYXQgaXMgbGlua2VkIHRvIHRoZSBnaG9zdAoJICBwYWRzIHRhcmdldC4KCjIwMDktMTAtMzEgMTY6NTY6MTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2VyOiBNYWtlIHN1cmUgdGhhdCBzaWduYWwgdXNlciBkYXRhIGlzIGZyZWVkIGJ5IHNldHRpbmcgYSBHQ2xvc3VyZU5vdGlmeQoJICAuLi5pbnN0ZWFkIG9mIHVzaW5nIGEgc2Vjb25kIG1lY2hhbmlzbSBhbmQgc3RvcmluZyB0aGUgdXNlciBkYXRhCgkgIGluc2lkZSB0aGUgR09iamVjdHMgcWRhdGEuCgoyMDA5LTEwLTMxIDE2OjQ5OjAzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlcjogVXNlIEdTbGljZSBmb3IgYWxsb2NhdGluZyB0aGUgc3RydWN0cwoKMjAwOS0xMC0zMSAxNjo0MzoyNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZXI6IEFsd2F5cyBnZXQgRGVsYXllZExpbmsgaW5mb3JtYXRpb24gZnJvbSB0aGUgb2JqZWN0cyBxZGF0YQoJICBUaGlzIG1ha2VzIHN1cmUgdGhhdCBpdCBpcyBhbHdheXMgdmFsaWQuCgoyMDA5LTEwLTMxIDA5OjQ4OjE5ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcG8vUE9URklMRVMuaW46CgkgIHBvOiBxdWV1ZTIgaGFzIG1vdmVkIHRvIGNvcmUKCjIwMDktMTAtMjkgMTE6NDE6MzMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJICBxdWV1ZTI6IEFkZCB0byB0aGUgZG9jcwoKMjAwOS0xMC0yOSAxMTozODoyMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFVzZSAiUXVldWUgMiIgYXMgbG9uZyBuYW1lCgoyMDA5LTEwLTI5IDExOjM1OjA4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogVXNlIEdTVF9CT0lMRVJQTEFURV9GVUxMKCkgYW5kIGFkZCBwYWQgdGVtcGxhdGVzL3NldCBkZXRhaWxzIGluIGJhc2VfaW5pdAoKMjAwOS0xMC0yOSAxMTozMDo1NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFVzZSBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUoKQoKMjAwOS0xMC0yOSAxMTozMDoxMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogSW50ZWdyYXRlIGludG8gY29yZXBsdWdpbnMKCjIwMDktMTAtMjkgMTE6MjE6MzYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBNb3ZlIHN0cnVjdCBkZWNsYXJhdGlvbnMgdG8gYSBzZXBhcmF0ZSBoZWFkZXIKCjIwMDktMTAtMjkgMTE6MTg6MjAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBNb3ZlIHF1ZXVlMiB0byBnc3RyZWFtZXIgY29yZXBsdWdpbnMKCSAgRml4ZXMgYnVnICM1OTk5OTYuCgoyMDA5LTEwLTI4IDAwOjU5OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgUmVtb3ZlIEdTVF9ERUJVR19GVU5DUFRSIHdoZXJlIHRoZXkncmUgcG9pbnRsZXNzCgkgIFRoZXJlJ3Mgbm90IG11Y2ggcG9pbnQgaW4gdXNpbmcgR1NUX0RFQlVHX0ZVTkNQVFIgd2l0aCBHT2JqZWN0CgkgIHZpcnR1YWwgZnVuY3Rpb25zIHN1Y2ggYXMgZ2V0X3Byb3BlcnR5LCBzZXRfcHJvcGVyeSwgZmluYWxpemUgYW5kCgkgIGRpc3Bvc2UsIHNpbmNlIHRoZXknbGwgbmV2ZXIgYmUgdXNlZCBieSBhbnlvbmUgYW55d2F5LiBTYXZlcyBhCgkgIGZldyBieXRlcyBhbmQgcG9zc2libHkgYSBzaXh0ZWVudGggb2YgYSBwb2xhciBiZWFyLgoKMjAwOS0xMC0yNyAxNToyMzowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGQgY3VzdG9tIGFjY2VwdGNhcHMgZnVuY3Rpb24KCjIwMDktMDgtMDYgMTI6MTg6MzYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHBvc3QgZXJyb3IgbWVzc2FnZSB3aGVuIHBhdXNpbmcgdGFzayBpZiBzbyBhcHByb3ByaWF0ZQoJICBJZiBhIGRvd25zdHJlYW0gZWxlbWVudCByZXR1cm5zIGFuIGVycm9yIHdoaWxlIHVwc3RyZWFtIGhhcyBhbHJlYWR5CgkgIHB1dCBhbGwgZGF0YSBpbnRvIHF1ZXVlMiAoaW5jbHVkaW5nIEVPUyksIHVwc3RyZWFtIHdpbGwgbm8gbG9uZ2VyCgkgIGNoYWluIGludG8gcXVldWUyLCBzbyBpdCBpcyB1cCB0byBxdWV1ZTIgdG8gcGVyZm9ybSBzb21lCgkgIEVPUyBoYW5kbGluZyAvIG1lc3NhZ2UgcG9zdGluZyBpbiBzdWNoIGNhc2VzLiAgU2VlICM1ODk5OTEuCgoyMDA5LTA3LTE0IDE3OjAzOjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBsZWFrIGFuZCBpbXByb3ZlIGJ1ZmZlcmluZwoJICBLZWVwIHRyYWNrIG9mIHRoZSBtYXggcmVxdWVzdGVkIHBvc2l0aW9uIGFuZCBjb21wYXJlIHRoaXMgdG8gdGhlIHdyaXRlIHBvc2l0aW9uCgkgIGluIHRoZSB0ZW1wIGZpbGUgdG8gZ2V0IHRoZSBjdXJyZW50IGFtb3VudCBvZiBidWZmZXJlZCBkYXRhLgoJICBGaXggbWVtbGVhayBvZiBhbGwgaW5jb21taW5nIGJ1ZmZlcnMuCgkgIEZpeGVzICM1ODg1NTEKCjIwMDktMDctMTAgMjE6MDE6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZmx1c2ggZGlmZmVyZW50bHksIGF2b2lkaW5nIGRlYWRsb2NrcwoJICBEb24ndCBmbHVzaCB0aGUgZmlsZSBieSBjbG9zaW5nIGFuZCBvcGVuaW5nIGl0IGJ1dCBpbnN0ZWFkIHVzZSBnX2ZyZW9wZW4uIFRoaXMKCSAgYXZvaWRzIGEgZGVhZGxvY2sgaW4gc2h1dGRvd24gYmVjYXVzZSB3ZSBlbWl0IHRoZSB0ZW1wLWxvY2F0aW9uIHByb3BlcnR5IGNoYW5nZQoJICB3aXRoIHRoZSB3cm9uZyBsb2NrIGhlbGQuCgoyMDA5LTA3LTEwIDE5OjQ5OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZCB0ZW1wLXRlbXBsYXRlIHByb3BlcnR5CgkgIEFkZCBhIG5ldyB0ZW1wLXRlbXBsYXRlIHByb3BlcnR5IHNvIHRoYXQgcXVldWUyIGNhbiBzZWN1cmVseSBhbGxvY2F0ZSBhCgkgIHRlbXBvcmFyeSBmaWxlbmFtZS4gRGVwcmVjYXRlIHRoZSB0ZW1wLWxvY2F0aW9uIHByb3BlcnR5IGZvciBzZXR0aW5nIHRoZQoJICBsb2NhdGlvbiBidXQgc3RpbGwgdXNlIGl0IHRvIG5vdGlmeSB0aGUgYWxsb2NhdGVkIHRlbXAgZmlsZS4KCjIwMDktMDMtMjAgMTQ6MTc6MTkgKzAxMDAgIExSTiA8bHJuMTk4NiBhdCBnbWFpbCBkb3QgY29tPgoKCSogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICB3aW4zMjogZml4IHNlZWtpbmcgaW4gbGFyZ2UgZmlsZXMKCSAgRml4IFNlZWtpbmcgaW4gbGFyZ2UgZmlsZXMgYnkgdXNpbmcgdGhlIDY0LWJpdCBzZWVrIGZ1bmN0aW9ucy4KCSAgRml4ZXMgIzU3NjAxOQoKMjAwOC0wOC0wNyAxNTo1ODo1OCArMDAwMCAgRnJlZGVyaWMgQ3JvemF0IDxmY3JvemF0QG1hbmRyaXZhLm9yZz4KCgkgIE1ha2Ugc3VyZSBnZXR0ZXh0IHJldHVybnMgdHJhbnNsYXRpb25zIGluIFVURi04IGVuY29kaW5nIHJhdGhlciB0aGFuIGluIHRoZSBjdXJyZW50IGxvY2FsZSBlbmNvZGluZyAoIzU0NjgyMikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRnJlZGVyaWMgQ3JvemF0IDxmY3JvemF0QG1hbmRyaXZhLm9yZz4KCSAgKiBleHQvYWxzYS9nc3RhbHNhcGx1Z2luLmM6IChwbHVnaW5faW5pdCk6CgkgICogZXh0L2NkcGFyYW5vaWEvZ3N0Y2RwYXJhbm9pYXNyYy5jOiAocGx1Z2luX2luaXQpOgoJICAqIGV4dC9nbm9tZXZmcy9nc3Rnbm9tZXZmcy5jOiAocGx1Z2luX2luaXQpOgoJICAqIGV4dC9vZ2cvZ3N0b2dnZGVtdXguYzogKGdzdF9vZ2dfZGVtdXhfcGx1Z2luX2luaXQpOgoJICAqIGdzdC1saWJzL2dzdC9hdWRpby9nc3RiYXNlYXVkaW9zcmMuYzogKF9kb19pbml0KToKCSAgKiBnc3QtbGlicy9nc3QvcGJ1dGlscy9wYnV0aWxzLmM6IChnc3RfcGJfdXRpbHNfaW5pdCk6CgkgICogZ3N0LWxpYnMvZ3N0L3RhZy90YWdzLmM6IChnc3RfdGFnX3JlZ2lzdGVyX3RhZ3NfaW50ZXJuYWwpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RkZWNvZGViaW4uYzogKHBsdWdpbl9pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0ZGVjb2RlYmluMi5jOiAoZ3N0X2RlY29kZV9iaW5fcGx1Z2luX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmFjay5jOiAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKHBsdWdpbl9pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0dXJpZGVjb2RlYmluLmM6IChnc3RfdXJpX2RlY29kZV9iaW5fcGx1Z2luX2luaXQpOgoJICAqIHN5cy92NGwvZ3N0djRsLmM6IChwbHVnaW5faW5pdCk6CgkgIE1ha2Ugc3VyZSBnZXR0ZXh0IHJldHVybnMgdHJhbnNsYXRpb25zIGluIFVURi04IGVuY29kaW5nIHJhdGhlcgoJICB0aGFuIGluIHRoZSBjdXJyZW50IGxvY2FsZSBlbmNvZGluZyAoIzU0NjgyMikuCgoyMDA4LTA3LTEwIDIxOjA2OjA2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBDbGVhbnVwIFBsdWdpbiBkb2NzLiBMaW5rIHRvIHNpZ25hbHMgYW5kIHByb3BlcnRpZXMuIEZpeCBzdWItc2VjdGlvbiB0aXRsZXMuIERyb3AgbWVudGluaW5nIHRoYXQgYWxsIG91ciBleGFtcGxlIHBpcGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhc2UtcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhc2UtcGx1Z2lucy1vdmVycmlkZXMudHh0OgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYXNlLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYXNlLXBsdWdpbnMuYXJnczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFzZS1wbHVnaW5zLmhpZXJhcmNoeToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFzZS1wbHVnaW5zLmludGVyZmFjZXM6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhc2UtcGx1Z2lucy5wcmVyZXF1aXNpdGVzOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYXNlLXBsdWdpbnMuc2lnbmFsczoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWRkZXIueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHNhLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9jb252ZXJ0LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9yYXRlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9yZXNhbXBsZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvdGVzdHNyYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNkcGFyYW5vaWEueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWNvZGViaW4ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mZm1wZWdjb2xvcnNwYWNlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RwLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ25vbWV2ZnMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1saWJ2aXN1YWwueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vZ2cueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wYW5nby54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBsYXliYWNrLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcXVldWUyLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3VicGFyc2UueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10Y3AueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10aGVvcmEueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10eXBlZmluZGZ1bmN0aW9ucy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXVyaWRlY29kZWJpbi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9yYXRlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9zY2FsZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvdGVzdHNyYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZvbHVtZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZvcmJpcy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNpbmsueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14dmltYWdlc2luay54bWw6CgkgICogZXh0L2Fsc2EvZ3N0YWxzYW1peGVyLmM6CgkgICogZXh0L2Fsc2EvZ3N0YWxzYXNpbmsuYzoKCSAgKiBleHQvYWxzYS9nc3RhbHNhc3JjLmM6CgkgICogZXh0L2dpby9nc3RnaW9zaW5rLmM6CgkgICogZXh0L2dpby9nc3RnaW9zcmMuYzoKCSAgKiBleHQvZ2lvL2dzdGdpb3N0cmVhbXNpbmsuYzoKCSAgKiBleHQvZ2lvL2dzdGdpb3N0cmVhbXNyYy5jOgoJICAqIGV4dC9nbm9tZXZmcy9nc3Rnbm9tZXZmc3NpbmsuYzoKCSAgKiBleHQvZ25vbWV2ZnMvZ3N0Z25vbWV2ZnNzcmMuYzoKCSAgKiBleHQvb2dnL2dzdG9nZ2RlbXV4LmM6CgkgICogZXh0L29nZy9nc3RvZ2dtdXguYzoKCSAgKiBleHQvcGFuZ28vZ3N0Y2xvY2tvdmVybGF5LmM6CgkgICogZXh0L3BhbmdvL2dzdHRleHRvdmVybGF5LmM6CgkgICogZXh0L3BhbmdvL2dzdHRleHRyZW5kZXIuYzoKCSAgKiBleHQvcGFuZ28vZ3N0dGltZW92ZXJsYXkuYzoKCSAgKiBleHQvdGhlb3JhL3RoZW9yYWRlYy5jOgoJICAqIGV4dC90aGVvcmEvdGhlb3JhZW5jLmM6CgkgICogZXh0L3RoZW9yYS90aGVvcmFwYXJzZS5jOgoJICAqIGV4dC92b3JiaXMvdm9yYmlzZGVjLmM6CgkgICogZXh0L3ZvcmJpcy92b3JiaXNlbmMuYzoKCSAgKiBleHQvdm9yYmlzL3ZvcmJpc3BhcnNlLmM6CgkgICogZXh0L3ZvcmJpcy92b3JiaXN0YWcuYzoKCSAgKiBnc3QvYWRkZXIvZ3N0YWRkZXIuYzoKCSAgKiBnc3QvYXVkaW9jb252ZXJ0L2dzdGF1ZGlvY29udmVydC5jOgoJICAqIGdzdC9hdWRpb3Jlc2FtcGxlL2dzdGF1ZGlvcmVzYW1wbGUuYzoKCSAgKiBnc3QvYXVkaW90ZXN0c3JjL2dzdGF1ZGlvdGVzdHNyYy5jOgoJICAqIGdzdC9mZm1wZWdjb2xvcnNwYWNlL2dzdGZmbXBlZ2NvbG9yc3BhY2UuYzoKCSAgKiBnc3QvZ2RwL2dzdGdkcGRlcGF5LmM6CgkgICogZ3N0L2dkcC9nc3RnZHBwYXkuYzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0ZGVjb2RlYmluMi5jOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmluLmM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliaW4yLmM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICAqIGdzdC9wbGF5YmFjay9nc3R1cmlkZWNvZGViaW4uYzoKCSAgKiBnc3QvdGNwL2dzdG11bHRpZmRzaW5rLmM6CgkgICogZ3N0L3RjcC9nc3R0Y3BzZXJ2ZXJzaW5rLmM6CgkgICogZ3N0L3ZpZGVvcmF0ZS9nc3R2aWRlb3JhdGUuYzoKCSAgKiBnc3QvdmlkZW9zY2FsZS9nc3R2aWRlb3NjYWxlLmM6CgkgICogZ3N0L3ZpZGVvdGVzdHNyYy9nc3R2aWRlb3Rlc3RzcmMuYzoKCSAgKiBnc3Qvdm9sdW1lL2dzdHZvbHVtZS5jOgoJICAqIHN5cy94aW1hZ2UveGltYWdlc2luay5jOgoJICAqIHN5cy94dmltYWdlL3h2aW1hZ2VzaW5rLmM6CgkgIENsZWFudXAgUGx1Z2luIGRvY3MuIExpbmsgdG8gc2lnbmFscyBhbmQgcHJvcGVydGllcy4gRml4IHN1Yi1zZWN0aW9uCgkgIHRpdGxlcy4gRHJvcCBtZW50aW5pbmcgdGhhdCBhbGwgb3VyIGV4YW1wbGUgcGlwZWxpbmVzIGFyZSAic2ltcGxlIgoJICBwaXBlbGluZXMuCgoyMDA4LTA2LTI0IDE2OjIyOjQ1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IERvIG5vdCBkb3VibGUgbm90aWZ5LiBSZW1vdmUgdGhlIHVuc3VlZCByZXR1cm4gdmFsdWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgRG8gbm90IGRvdWJsZSBub3RpZnkuIFJlbW92ZSB0aGUgdW5zdWVkIHJldHVybiB2YWx1ZS4KCjIwMDgtMDQtMTEgMDE6MjU6MDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1rZXlmcmFtZS1mb3JjZS50eHQ6IEZpeCB0eXBvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1rZXlmcmFtZS1mb3JjZS50eHQ6CgkgIEZpeCB0eXBvLgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKHVwZGF0ZV9idWZmZXJpbmcpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpOgoJICBTZXQgYnVmZmVyaW5nIG1vZGUgaW4gdGhlIG1lc3NhZ2VzLgoJICBTZXQgYnVmZmVyaW5nIHBlcmNlbnQgaW4gdGhlIHF1ZXJ5LgoJICAqIHRlc3RzL2V4YW1wbGVzL3NlZWsvc2Vlay5jOiAodXBkYXRlX2ZpbGwpLCAobXNnX3N0YXRlX2NoYW5nZWQpLAoJICAoZG9fc3RyZWFtX2J1ZmZlcmluZyksIChkb19kb3dubG9hZF9idWZmZXJpbmcpLCAobXNnX2J1ZmZlcmluZyk6CgkgIERvIHNvbWUgbW9yZSBmYW5jeSB0aGluZ3MgYmFzZWQgb24gdGhlIGJ1ZmZlcmluZyBtZXRob2QgaW4gdXNlLgoKMjAwOC0wNC0wOSAyMTo0MDoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogSW5jbHVkZSBleHRyYSBidWZmZXJpbmcgc3RhdHMgaW4gdGhlIGJ1ZmZlcmluZyBtZXNzYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6ICh1cGRhdGVfYnVmZmVyaW5nKSwKCSAgKGdzdF9xdWV1ZV9jbG9zZV90ZW1wX2xvY2F0aW9uX2ZpbGUpLCAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpLAoJICAoZ3N0X3F1ZXVlX3NyY19jaGVja2dldHJhbmdlX2Z1bmN0aW9uKToKCSAgSW5jbHVkZSBleHRyYSBidWZmZXJpbmcgc3RhdHMgaW4gdGhlIGJ1ZmZlcmluZyBtZXNzYWdlLgoJICBJbXBsZW1lbnQgQlVGRkVSSU5HIHF1ZXJ5LgoJICAqIGdzdC9wbGF5YmFjay9nc3R1cmlkZWNvZGViaW4uYzogKGRvX2FzeW5jX3N0YXJ0KSwKCSAgKGRvX2FzeW5jX2RvbmUpLCAodHlwZV9mb3VuZCksIChzZXR1cF9zdHJlYW1pbmcpLCAoc2V0dXBfc291cmNlKSwKCSAgKGdzdF91cmlfZGVjb2RlX2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICBPbmx5IGFkZCBkZWNvZGViaW4yIHdoZW4gdGhlIHR5cGUgaXMgZm91bmQgaW4gc3RyZWFtaW5nIG1vZGUuCgkgIE1ha2UgdXJpZGVjb2RlYmluIGFzeW5jIHRvIFBBVVNFRCBldmVuIHdoZW4gd2UgZG9uJ3QgaGF2ZSBkZWNvZGViaW4yCgkgIGFkZGVkIHlldC4KCjIwMDgtMDQtMDIgMTE6MDg6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IFVwZGF0ZSB0aGUgZXN0aW1hdGVkIGlucHV0IGRhdGEgd2hlbiB3ZSBwdXNoIG91dCBhIGJ1ZmZlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAodXBkYXRlX291dF9yYXRlcyksCgkgIChnc3RfcXVldWVfb3Blbl90ZW1wX2xvY2F0aW9uX2ZpbGUpLAoJICAoZ3N0X3F1ZXVlX2Nsb3NlX3RlbXBfbG9jYXRpb25fZmlsZSksIChnc3RfcXVldWVfaGFuZGxlX3NyY19ldmVudCksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSksIChnc3RfcXVldWVfc2V0X3Byb3BlcnR5KToKCSAgVXBkYXRlIHRoZSBlc3RpbWF0ZWQgaW5wdXQgZGF0YSB3aGVuIHdlIHB1c2ggb3V0IGEgYnVmZmVyLgoJICBBZGQgc29tZSBkZWJ1ZyBpbmZvIGFib3V0IHRoZSB0ZW1wIGZpbGUuCgkgIE9ubHkgZm9yd2FyZCBzcmMgZXZlbnRzIHdoZW4gd2UgYXJlIG5vdCB1c2luZyBhIHRlbXAgZmlsZS4KCSAgRG9uJ3QgYmxvY2sgdGhlIGR1cmF0aW9uIHF1ZXJ5LCB3ZSBuZWVkIHRvIGZpbmQgc29tZXRoaW5nIGJldHRlci4KCSAgRG9uJ3QgbGVhayB0aGUgdGVtcCBmaWxlbmFtZS4KCjIwMDgtMDMtMjQgMTQ6MDg6MjIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IFRoZSBxdWV1ZSBpcyBuZXZlciBmaWxsZWQgd2hlbiB0aGVyZSBhcmUgbm8gYnVmZmVycyBpbiB0aGUgcXVldWUgYXQgYWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfaXNfZmlsbGVkKToKCSAgVGhlIHF1ZXVlIGlzIG5ldmVyIGZpbGxlZCB3aGVuIHRoZXJlIGFyZSBubyBidWZmZXJzIGluIHRoZSBxdWV1ZSBhdCBhbGwuCgkgIEZpeGVzICM1MjM5OTMuCgoyMDA4LTAzLTIyIDE1OjAwOjUzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBVc2UgR19QQVJBTV9TVEFUSUNfU1RSSU5HUyBldmVyeXdoZXJlIGZvciBHUGFyYW1TcGVjcyB0aGF0IHVzZSBzdGF0aWMgc3RyaW5ncyAoaS5lLiBhbGwpLiBUaGlzIGdpdmVzIHVzIGxlc3MgbWVtb3J5IHUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGV4dC9hbHNhL2dzdGFsc2FtaXhlcmVsZW1lbnQuYzoKCSAgKGdzdF9hbHNhX21peGVyX2VsZW1lbnRfY2xhc3NfaW5pdCk6CgkgICogZXh0L2Fsc2EvZ3N0YWxzYXNpbmsuYzogKGdzdF9hbHNhc2lua19jbGFzc19pbml0KToKCSAgKiBleHQvYWxzYS9nc3RhbHNhc3JjLmM6IChnc3RfYWxzYXNyY19jbGFzc19pbml0KToKCSAgKiBleHQvY2RwYXJhbm9pYS9nc3RjZHBhcmFub2lhc3JjLmM6CgkgIChnc3RfY2RfcGFyYW5vaWFfc3JjX2NsYXNzX2luaXQpOgoJICAqIGV4dC9naW8vZ3N0Z2lvc2luay5jOiAoZ3N0X2dpb19zaW5rX2NsYXNzX2luaXQpOgoJICAqIGV4dC9naW8vZ3N0Z2lvc3JjLmM6IChnc3RfZ2lvX3NyY19jbGFzc19pbml0KToKCSAgKiBleHQvZ2lvL2dzdGdpb3N0cmVhbXNpbmsuYzogKGdzdF9naW9fc3RyZWFtX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogZXh0L2dpby9nc3RnaW9zdHJlYW1zcmMuYzogKGdzdF9naW9fc3RyZWFtX3NyY19jbGFzc19pbml0KToKCSAgKiBleHQvZ25vbWV2ZnMvZ3N0Z25vbWV2ZnNzaW5rLmM6IChnc3RfZ25vbWVfdmZzX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogZXh0L2dub21ldmZzL2dzdGdub21ldmZzc3JjLmM6IChnc3RfZ25vbWVfdmZzX3NyY19jbGFzc19pbml0KToKCSAgKiBleHQvb2dnL2dzdG9nZ211eC5jOiAoZ3N0X29nZ19tdXhfY2xhc3NfaW5pdCk6CgkgICogZXh0L3BhbmdvL2dzdHRleHRvdmVybGF5LmM6IChnc3RfdGV4dF9vdmVybGF5X2NsYXNzX2luaXQpOgoJICAqIGV4dC9wYW5nby9nc3R0ZXh0cmVuZGVyLmM6IChnc3RfdGV4dF9yZW5kZXJfY2xhc3NfaW5pdCk6CgkgICogZXh0L3RoZW9yYS90aGVvcmFkZWMuYzogKGdzdF90aGVvcmFfZGVjX2NsYXNzX2luaXQpOgoJICAqIGV4dC90aGVvcmEvdGhlb3JhZW5jLmM6IChnc3RfdGhlb3JhX2VuY19jbGFzc19pbml0KToKCSAgKiBleHQvdGhlb3JhL3RoZW9yYXBhcnNlLmM6IChnc3RfdGhlb3JhX3BhcnNlX2NsYXNzX2luaXQpOgoJICAqIGV4dC92b3JiaXMvdm9yYmlzZW5jLmM6IChnc3Rfdm9yYmlzX2VuY19jbGFzc19pbml0KToKCSAgKiBnc3QtbGlicy9nc3QvYXVkaW8vZ3N0YXVkaW9maWx0ZXJ0ZW1wbGF0ZS5jOgoJICAoZ3N0X2F1ZGlvX2ZpbHRlcl90ZW1wbGF0ZV9jbGFzc19pbml0KToKCSAgKiBnc3QtbGlicy9nc3QvYXVkaW8vZ3N0YmFzZWF1ZGlvc2luay5jOgoJICAoZ3N0X2Jhc2VfYXVkaW9fc2lua19jbGFzc19pbml0KToKCSAgKiBnc3QtbGlicy9nc3QvYXVkaW8vZ3N0YmFzZWF1ZGlvc3JjLmM6CgkgIChnc3RfYmFzZV9hdWRpb19zcmNfY2xhc3NfaW5pdCk6CgkgICogZ3N0LWxpYnMvZ3N0L2NkZGEvZ3N0Y2RkYWJhc2VzcmMuYzoKCSAgKGdzdF9jZGRhX2Jhc2Vfc3JjX2NsYXNzX2luaXQpOgoJICAqIGdzdC1saWJzL2dzdC9pbnRlcmZhY2VzL21peGVydHJhY2suYzoKCSAgKGdzdF9taXhlcl90cmFja19jbGFzc19pbml0KToKCSAgKiBnc3QtbGlicy9nc3QvcnRwL2dzdGJhc2VydHBkZXBheWxvYWQuYzoKCSAgKGdzdF9iYXNlX3J0cF9kZXBheWxvYWRfY2xhc3NfaW5pdCk6CgkgICogZ3N0LWxpYnMvZ3N0L3J0cC9nc3RiYXNlcnRwcGF5bG9hZC5jOgoJICAoZ3N0X2Jhc2VydHBwYXlsb2FkX2NsYXNzX2luaXQpOgoJICAqIGdzdC9hdWRpb2NvbnZlcnQvZ3N0YXVkaW9jb252ZXJ0LmM6CgkgIChnc3RfYXVkaW9fY29udmVydF9jbGFzc19pbml0KToKCSAgKiBnc3QvYXVkaW9yYXRlL2dzdGF1ZGlvcmF0ZS5jOiAoZ3N0X2F1ZGlvX3JhdGVfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2F1ZGlvcmVzYW1wbGUvZ3N0YXVkaW9yZXNhbXBsZS5jOgoJICAoZ3N0X2F1ZGlvcmVzYW1wbGVfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2F1ZGlvdGVzdHNyYy9nc3RhdWRpb3Rlc3RzcmMuYzoKCSAgKGdzdF9hdWRpb190ZXN0X3NyY19jbGFzc19pbml0KToKCSAgKiBnc3QvZ2RwL2dzdGdkcHBheS5jOiAoZ3N0X2dkcF9wYXlfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdGRlY29kZWJpbjIuYzogKGdzdF9kZWNvZGVfYmluX2NsYXNzX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmFzZWJpbi5jOiAoZ3N0X3BsYXlfYmFzZV9iaW5fY2xhc3NfaW5pdCksCgkgIChwcmVyb2xsX3VubGlua2VkKToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJpbi5jOiAoZ3N0X3BsYXlfYmluX2NsYXNzX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmluMi5jOiAoZ3N0X3BsYXlfYmluX2NsYXNzX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5c2luay5jOiAoZ3N0X3BsYXlfc2lua19jbGFzc19pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHN0cmVhbWluZm8uYzogKGdzdF9zdHJlYW1faW5mb19jbGFzc19pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0c3RyZWFtc2VsZWN0b3IuYzogKGdzdF9zZWxlY3Rvcl9wYWRfY2xhc3NfaW5pdCksCgkgIChnc3Rfc3RyZWFtX3NlbGVjdG9yX2NsYXNzX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3R1cmlkZWNvZGViaW4uYzogKGdzdF91cmlfZGVjb2RlX2Jpbl9jbGFzc19pbml0KToKCSAgKiBnc3Qvc3VicGFyc2UvZ3N0c3VicGFyc2UuYzogKGdzdF9zdWJfcGFyc2VfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3RjcC9nc3RtdWx0aWZkc2luay5jOiAoZ3N0X211bHRpX2ZkX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3RjcC9nc3R0Y3BjbGllbnRzaW5rLmM6IChnc3RfdGNwX2NsaWVudF9zaW5rX2NsYXNzX2luaXQpOgoJICAqIGdzdC90Y3AvZ3N0dGNwY2xpZW50c3JjLmM6IChnc3RfdGNwX2NsaWVudF9zcmNfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3RjcC9nc3R0Y3BzZXJ2ZXJzaW5rLmM6IChnc3RfdGNwX3NlcnZlcl9zaW5rX2NsYXNzX2luaXQpOgoJICAqIGdzdC90Y3AvZ3N0dGNwc2VydmVyc3JjLmM6IChnc3RfdGNwX3NlcnZlcl9zcmNfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3ZpZGVvcmF0ZS9nc3R2aWRlb3JhdGUuYzogKGdzdF92aWRlb19yYXRlX2NsYXNzX2luaXQpOgoJICAqIGdzdC92aWRlb3NjYWxlL2dzdHZpZGVvc2NhbGUuYzogKGdzdF92aWRlb19zY2FsZV9jbGFzc19pbml0KToKCSAgKiBnc3QvdmlkZW90ZXN0c3JjL2dzdHZpZGVvdGVzdHNyYy5jOgoJICAoZ3N0X3ZpZGVvX3Rlc3Rfc3JjX2NsYXNzX2luaXQpOgoJICAqIGdzdC92b2x1bWUvZ3N0dm9sdW1lLmM6IChnc3Rfdm9sdW1lX2NsYXNzX2luaXQpOgoJICAqIHN5cy92NGwvZ3N0djRsZWxlbWVudC5jOiAoZ3N0X3Y0bGVsZW1lbnRfY2xhc3NfaW5pdCk6CgkgICogc3lzL3Y0bC9nc3R2NGxtanBlZ3NpbmsuYzogKGdzdF92NGxtanBlZ3NpbmtfY2xhc3NfaW5pdCk6CgkgICogc3lzL3Y0bC9nc3R2NGxtanBlZ3NyYy5jOiAoZ3N0X3Y0bG1qcGVnc3JjX2NsYXNzX2luaXQpOgoJICAqIHN5cy92NGwvZ3N0djRsc3JjLmM6IChnc3RfdjRsc3JjX2NsYXNzX2luaXQpOgoJICAqIHN5cy94aW1hZ2UveGltYWdlc2luay5jOiAoZ3N0X3hpbWFnZXNpbmtfY2xhc3NfaW5pdCk6CgkgICogc3lzL3h2aW1hZ2UveHZpbWFnZXNpbmsuYzogKGdzdF94dmltYWdlc2lua19jbGFzc19pbml0KToKCSAgVXNlIEdfUEFSQU1fU1RBVElDX1NUUklOR1MgZXZlcnl3aGVyZSBmb3IgR1BhcmFtU3BlY3MgdGhhdCB1c2UKCSAgc3RhdGljIHN0cmluZ3MgKGkuZS4gYWxsKS4gVGhpcyBnaXZlcyB1cyBsZXNzIG1lbW9yeSB1c2FnZSwKCSAgZmV3ZXIgYWxsb2NhdGlvbnMgYW5kIHRodXMgbGVzcyBtZW1vcnkgZGVmcmFnbWVudGF0aW9uLiBEZXBlbmQKCSAgb24gY29yZSBDVlMgZm9yIHRoaXMuIEZpeGVzIGJ1ZyAjNTIzODA2LgoKMjAwNy0xMi0xNCAxODo0NjoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogVXNlIHNlcGFyYXRlIHRpbWVycyBmb3IgaW5wdXQgYW5kIG91dHB1dCByYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2luaXQpLCAoZ3N0X3F1ZXVlX2ZpbmFsaXplKSwKCSAgKHJlc2V0X3JhdGVfdGltZXIpLCAodXBkYXRlX2luX3JhdGVzKSwgKHVwZGF0ZV9vdXRfcmF0ZXMpLAoJICAoZ3N0X3F1ZXVlX2xvY2tlZF9lbnF1ZXVlKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZGVxdWV1ZSksCgkgIChnc3RfcXVldWVfY2hhaW4pLCAoZ3N0X3F1ZXVlX2xvb3ApOgoJICBVc2Ugc2VwYXJhdGUgdGltZXJzIGZvciBpbnB1dCBhbmQgb3V0cHV0IHJhdGVzLgoJICBQYXVzZSBtZWFzdXJpbmcgdGhlIG91dHB1dCByYXRlIHdoZW4gd2UgYmxvY2sgZm9yIG1vcmUgZGF0YS4KCSAgU2VlICM1MDMyNjIuCgoyMDA3LTEyLTE0IDA5OjI0OjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBQYXVzZSB0aGUgdGltZXIgdG8gbWVhc3VyZSB0aGUgaW5wdXQgcmF0ZSB3aGVuIHdlIGJsb2NrIGJlY2F1c2UgdGhlIHF1ZXVlIGlzIGZpbGxlZC4gU2VlICM1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9jaGFpbik6CgkgIFBhdXNlIHRoZSB0aW1lciB0byBtZWFzdXJlIHRoZSBpbnB1dCByYXRlIHdoZW4gd2UgYmxvY2sgYmVjYXVzZSB0aGUKCSAgcXVldWUgaXMgZmlsbGVkLiBTZWUgIzUwMzI2Mi4KCjIwMDctMTEtMzAgMTc6NDc6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svOiBSZWZhY3RvciBzb21lIGNvbW1vbiBjb2RlIHRvIGZpbHRlciBmYWN0b3JpZXMgYW5kIGNoZWNrIGNhcHMgY29tcGF0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svTWFrZWZpbGUuYW06CgkgICogZ3N0L3BsYXliYWNrL2dzdGZhY3RvcnlsaXN0cy5jOiAoY29tcGFyZV9yYW5rcyksIChwcmludF9mZWF0dXJlKSwKCSAgKGdldF9mZWF0dXJlX2FycmF5KSwgKGRlY29kZXJzX2ZpbHRlciksIChzaW5rc19maWx0ZXIpLAoJICAoZ3N0X2ZhY3RvcnlfbGlzdF9nZXRfZGVjb2RlcnMpLCAoZ3N0X2ZhY3RvcnlfbGlzdF9nZXRfc2lua3MpLAoJICAoZ3N0X2ZhY3RvcnlfbGlzdF9maWx0ZXIpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RmYWN0b3J5bGlzdHMuaDoKCSAgUmVmYWN0b3Igc29tZSBjb21tb24gY29kZSB0byBmaWx0ZXIgZmFjdG9yaWVzIGFuZCBjaGVjayBjYXBzIGNvbXBhdC4KCSAgKiBnc3QvcGxheWJhY2svZ3N0ZGVjb2RlYmluLmM6CgkgICogZ3N0L3BsYXliYWNrL2dzdGRlY29kZWJpbjIuYzogKGdzdF9kZWNvZGVfYmluX2NsYXNzX2luaXQpLAoJICAoZ3N0X2RlY29kZV9iaW5faW5pdCksIChnc3RfZGVjb2RlX2Jpbl9kaXNwb3NlKSwKCSAgKGdzdF9kZWNvZGVfYmluX2F1dG9wbHVnX2NvbnRpbnVlKSwKCSAgKGdzdF9kZWNvZGVfYmluX2F1dG9wbHVnX2ZhY3RvcmllcyksCgkgIChnc3RfZGVjb2RlX2Jpbl9hdXRvcGx1Z19zZWxlY3QpLCAoYW5hbHl6ZV9uZXdfcGFkKSwKCSAgKGZpbmRfY29tcGF0aWJsZXMpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmluLmM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliaW4yLmM6IChnc3RfcGxheV9iaW5fY2xhc3NfaW5pdCksCgkgIChnc3RfcGxheV9iaW5faW5pdCksIChnc3RfcGxheV9iaW5fZmluYWxpemUpLAoJICAoYXV0b3BsdWdfZmFjdG9yaWVzX2NiKSwgKGFjdGl2YXRlX2dyb3VwKToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHVyaWRlY29kZWJpbi5jOiAocHJveHlfdW5rbm93bl90eXBlX3NpZ25hbCksCgkgIChwcm94eV9hdXRvcGx1Z19jb250aW51ZV9zaWduYWwpLAoJICAocHJveHlfYXV0b3BsdWdfZmFjdG9yaWVzX3NpZ25hbCksIChwcm94eV9hdXRvcGx1Z19zZWxlY3Rfc2lnbmFsKSwKCSAgKHByb3h5X2RyYWluZWRfc2lnbmFsKToKCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvIGFuZCB1c2UgZmFjdG9yIGZpbHRlcmluZyBjb2RlLgoKMjAwNy0xMS0xNiAxNTo0NDo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay86IEFkZCBwbGF5YmluMi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL01ha2VmaWxlLmFtOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmFjay5jOiAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay90ZXN0Ny5jOiAodXBkYXRlX3NjYWxlKSwgKHdhcm5pbmdfY2IpLCAoZXJyb3JfY2IpLAoJICAoZW9zX2NiKSwgKGFib3V0X3RvX2ZpbmlzaF9jYiksIChtYWluKToKCSAgQWRkIHBsYXliaW4yLgoJICBBZGRlZCBnYXBsZXNzIHBsYXliYWNrIGV4YW1wbGUuCgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliYXNlYmluLmM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliYXNlYmluLmg6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliaW4uYzogKGdzdF9wbGF5X2Jpbl9wbHVnaW5faW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICAqIGdzdC9wbGF5YmFjay90ZXN0LmM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHVyaWRlY29kZWJpbi5jOiAoZ3N0X3VyaV9kZWNvZGVfYmluX2NsYXNzX2luaXQpLAoJICAocGFkX3JlbW92ZWRfY2IpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RzdHJlYW1pbmZvLmg6CgkgIENoYW5nZSBlbWFpbC4KCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJpbjIuYzogKGdzdF9wbGF5X2Jpbl9nZXRfdHlwZSksCgkgIChnc3RfcGxheV9iaW5fY2xhc3NfaW5pdCksIChpbml0X2dyb3VwKSwgKGdzdF9wbGF5X2Jpbl9pbml0KSwKCSAgKGdzdF9wbGF5X2Jpbl9kaXNwb3NlKSwgKGdzdF9wbGF5X2Jpbl9zZXRfdXJpKSwKCSAgKGdzdF9wbGF5X2Jpbl9zZXRfc3VidXJpKSwgKGdzdF9wbGF5X2Jpbl9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3BsYXlfYmluX2dldF9wcm9wZXJ0eSksIChnc3RfcGxheV9iaW5faGFuZGxlX21lc3NhZ2UpLAoJICAocGFkX2FkZGVkX2NiKSwgKHBhZF9yZW1vdmVkX2NiKSwgKG5vX21vcmVfcGFkc19jYiksIChwZXJmb3JtX2VvcyksCgkgIChkcmFpbmVkX2NiKSwgKHVubGlua19ncm91cCksIChhY3RpdmF0ZV9ncm91cCksCgkgIChzZXR1cF9uZXh0X3NvdXJjZSksIChnc3RfcGxheV9iaW5fY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9wbGF5X2JpbjJfcGx1Z2luX2luaXQpOgoJICBBZGRlZCByYXcgZmlyc3QgdmVyc2lvbiBvZiBwbGF5YmluMi4gRG9lcyBjaGFpbmVkIG9nZ3MgYW5kIGdhcGxlc3MKCSAgcGxheWJhY2sgZmluZS4gTm8gc3VwcG9ydCBmb3IgcmF3IHNpbmtzIHlldC4gTm8gdmlzdWFsaXNhdGlvbnMgb3IKCSAgc3VidGl0bGVzIHlldC4KCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheXNpbmsuYzogKGdzdF9wbGF5X3NpbmtfZ2V0X3R5cGUpLAoJICAoZ3N0X3BsYXlfc2lua19jbGFzc19pbml0KSwgKGdzdF9wbGF5X3NpbmtfaW5pdCksCgkgIChnc3RfcGxheV9zaW5rX2Rpc3Bvc2UpLCAoZ3N0X3BsYXlfc2lua192aXNfdW5ibG9ja2VkKSwKCSAgKGdzdF9wbGF5X3NpbmtfdmlzX2Jsb2NrZWQpLCAoZ3N0X3BsYXlfc2lua19zZXRfdmlkZW9fc2luayksCgkgIChnc3RfcGxheV9zaW5rX3NldF9hdWRpb19zaW5rKSwgKGdzdF9wbGF5X3Npbmtfc2V0X3Zpc19wbHVnaW4pLAoJICAoZ3N0X3BsYXlfc2lua19zZXRfcHJvcGVydHkpLCAoZ3N0X3BsYXlfc2lua19nZXRfcHJvcGVydHkpLAoJICAocG9zdF9taXNzaW5nX2VsZW1lbnRfbWVzc2FnZSksIChmcmVlX2NoYWluKSwgKGFkZF9jaGFpbiksCgkgIChhY3RpdmF0ZV9jaGFpbiksIChnZW5fdmlkZW9fY2hhaW4pLCAoZ2VuX3RleHRfZWxlbWVudCksCgkgIChnZW5fYXVkaW9fY2hhaW4pLCAoZ2VuX3Zpc19lbGVtZW50KSwgKGdzdF9wbGF5X3NpbmtfZ2V0X21vZGUpLAoJICAoZ3N0X3BsYXlfc2lua19zZXRfbW9kZSksIChnc3RfcGxheV9zaW5rX3JlcXVlc3RfcGFkKSwKCSAgKGdzdF9wbGF5X3NpbmtfcmVsZWFzZV9wYWQpLCAoZ3N0X3BsYXlfc2lua19zZW5kX2V2ZW50X3RvX3NpbmspLAoJICAoZ3N0X3BsYXlfc2lua19zZW5kX2V2ZW50KSwgKGdzdF9wbGF5X3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheXNpbmsuaDoKCSAgQWRkZWQgRWxlbWVudCB0aGF0IGFic3RyYWN0cyB0aGUgc2lua3MgYW5kIHRoZWlyIHBpcGVsaW5lcyBmb3IgcGxheWJpbjIuCgoyMDA3LTEwLTE1IDExOjM4OjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBGaXggcXVldWUgbmVnb3RpYXRpb24uIFNlZSAjNDg2NzU4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfaW5pdCksIChnc3RfcXVldWVfcHVzaF9vbmUpOgoJICBGaXggcXVldWUgbmVnb3RpYXRpb24uIFNlZSAjNDg2NzU4LgoKMjAwNy0wOS0yMSAxNDozNzoyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogRml4IGNvbXBpbGF0aW9uIHdydCBwcmludGYgYXJndW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfcHVzaF9vbmUpOgoJICBGaXggY29tcGlsYXRpb24gd3J0IHByaW50ZiBhcmd1bWVudHMuCgoyMDA3LTA5LTE3IDE3OjI0OjU1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEZpeCBhIGJ1bmNoIG9mIGNvbXBpbGUgd2FybmluZ3Mgc2hvd24gd2l0aCBGb3J0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3BhbmdvL2dzdHRleHRvdmVybGF5LmM6IChnc3RfdGV4dF9vdmVybGF5X2luaXQpLAoJICAoZ3N0X3RleHRfb3ZlcmxheV9zZXRfcHJvcGVydHkpOgoJICAqIGV4dC92b3JiaXMvdm9yYmlzZGVjLmM6ICh2b3JiaXNfaGFuZGxlX2RhdGFfcGFja2V0KToKCSAgKiBnc3QtbGlicy9nc3QvYXVkaW8vZ3N0YmFzZWF1ZGlvc2luay5jOgoJICAoZ3N0X2Jhc2VfYXVkaW9fc2lua19yZW5kZXIpOgoJICAqIGdzdC1saWJzL2dzdC9ydHAvZ3N0cnRjcGJ1ZmZlci5jOiAoZ3N0X3J0Y3BfbnRwX3RvX3VuaXgpLAoJICAoZ3N0X3J0Y3BfdW5peF90b19udHApOgoJICAqIGdzdC1saWJzL2dzdC9ydHNwL2dzdHJ0c3BtZXNzYWdlLmM6IChnc3RfcnRzcF9tZXNzYWdlX2dldF90eXBlKToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgICogdGVzdHMvZXhhbXBsZXMvc2Vlay9zZWVrLmM6IChzZXRfc2NhbGUpOgoJICBGaXggYSBidW5jaCBvZiBjb21waWxlIHdhcm5pbmdzIHNob3duIHdpdGggRm9ydGUuCgkgICogZ3N0L2F1ZGlvcmF0ZS9nc3RhdWRpb3JhdGUuYzoKCSAgQWx3YXlzIHB1bGwgaW4gY29uZmlnLmggYmVmb3JlIGluY2x1ZGluZyBhbnkgc3lzdGVtIGhlYWRlcnMuCgoyMDA3LTA5LTE3IDE2OjIyOjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBBbHNvIGZpeCAjNDc2NTE0IGZvciBxdWV1ZTIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKHVwZGF0ZV9idWZmZXJpbmcpLAoJICAoZ3N0X3F1ZXVlX2xvY2tlZF9mbHVzaCksIChnc3RfcXVldWVfbG9ja2VkX2VucXVldWUpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbiksCgkgIChnc3RfcXVldWVfcHVzaF9vbmUpLCAoZ3N0X3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdWxsKToKCSAgQWxzbyBmaXggIzQ3NjUxNCBmb3IgcXVldWUyLgoKMjAwNy0wOC0xMCAxMDowODowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IFByaW50ZiBmb3JtYXQgZml4ZXMgKCM0NjUwMjgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgICogZ3N0L3ZpZGVvcmF0ZS9nc3R2aWRlb3JhdGUuYzoKCSAgUHJpbnRmIGZvcm1hdCBmaXhlcyAoIzQ2NTAyOCkuCgoyMDA3LTA2LTI4IDExOjA2OjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBVc2Ugb3RoZXIgbWV0cmljcyBhcyB3ZWxsIHdoZW4gZXN0aW1hdGluZyB0aGUgYnVmZmVyIGxldmVsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChhcHBseV9zZWdtZW50KSwgKHVwZGF0ZV9idWZmZXJpbmcpOgoJICBVc2Ugb3RoZXIgbWV0cmljcyBhcyB3ZWxsIHdoZW4gZXN0aW1hdGluZyB0aGUgYnVmZmVyIGxldmVsLgoKMjAwNy0wNi0yOCAxMDoyMToxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RwbGF5YmFzZWJpbi5jOiBTbWFsbCBkZWJ1ZyBpbXByb3ZlbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliYXNlYmluLmM6IChtYWtlX2RlY29kZXIpLCAoc2V0dXBfc291cmNlKToKCSAgU21hbGwgZGVidWcgaW1wcm92ZW1lbnQuCgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoYXBwbHlfc2VnbWVudCksICh1cGRhdGVfYnVmZmVyaW5nKSwKCSAgKHBsdWdpbl9pbml0KToKCSAgVHdlYWsgdGhlIHJhdGUgZXN0aW1hdGlvbiBwZXJpb2QuCgkgIFdoZW4gY2FsY3VsYXRpbmcgdGhlIGJ1ZmZlciBmaWxsZWRuZXNzIGluIHJhdGUgZXN0aW1hdGlvbiBtb2RlLCBkb24ndAoJICBtaXggaXQgd2l0aCBvdGhlciBtZXRyaWNzLgoKMjAwNy0wNi0xNiAwMzo0MjoxNCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IEZpeCBjb21waWxlIGVycm9yIGZyb20gaWdub3JlZCByZXR1cm4gdmFsdWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgRml4IGNvbXBpbGUgZXJyb3IgZnJvbSBpZ25vcmVkIHJldHVybiB2YWx1ZS4KCjIwMDctMDYtMTMgMTg6MjA6NTcgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IEZpeCBidWlsZCBvbiBNYWNPU1guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9jcmVhdGVfcmVhZCk6CgkgIEZpeCBidWlsZCBvbiBNYWNPU1guCgoyMDA3LTA2LTEyIDA4OjM4OjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBGaXggYSBkaXZpc2lvbiBieSB6ZXJvIHdoZW4gdGhlIG1heCBwZXJjZW50IGlzIDw9IDAuIEZpeGVzICM0NDY1NzIuIGFsc28gdXBkYXRlIHRoZSBidWZmZXJpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaGVzIGJ5OiBUaGlhZ28gU291c2EgU2FudG9zIDx0aGlhZ29zc2FudG9zIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAodXBkYXRlX2J1ZmZlcmluZyksCgkgIChnc3RfcXVldWVfbG9ja2VkX2VucXVldWUpOgoJICBGaXggYSBkaXZpc2lvbiBieSB6ZXJvIHdoZW4gdGhlIG1heCBwZXJjZW50IGlzIDw9IDAuIEZpeGVzICM0NDY1NzIuCgkgIGFsc28gdXBkYXRlIHRoZSBidWZmZXJpbmcgc3RhdHVzIHdoZW4gcmVjZWl2aW5nIGV2ZW50cy4gRml4ZXMgIzQ0NjU1MS4KCjIwMDctMDYtMTEgMTE6MzI6MjYgKzAwMDAgIFRoaWFnbyBTb3VzYSBTYW50b3MgPHRoaWFnb3NzYW50b3NAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBXYWl0IGZvciBwcmVyb2xsIGJlZm9yZSBhdHRlbXB0aW5nIHRvIGZvcndhcmQgYSBkdXJhdGlvbiBxdWVyeSB1cHN0cmVhbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBUaGlhZ28gU291c2EgU2FudG9zIDx0aGlhZ29zc2FudG9zIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX3BlZXJfcXVlcnkpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpOgoJICBXYWl0IGZvciBwcmVyb2xsIGJlZm9yZSBhdHRlbXB0aW5nIHRvIGZvcndhcmQgYSBkdXJhdGlvbiBxdWVyeSB1cHN0cmVhbS4KCSAgRml4ZXMgIzQ0NTUwNS4KCjIwMDctMDYtMDcgMDk6MTE6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IEZpeCBjb21waWxhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2dldF9yYW5nZSk6CgkgIEZpeCBjb21waWxhdGlvbi4KCjIwMDctMDYtMDYgMTM6MzY6MjYgKzAwMDAgIFRoaWFnbyBTb3VzYSBTYW50b3MgPHRoaWFnb3NzYW50b3NAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBBZGQgcHVsbCBiYXNlZCBzY2hlZHVsaW5nIGFuZCBmaXggc29tZSBkZWFkbG9ja3MuIEZpeGVzICM0NDQ1MjMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogVGhpYWdvIFNvdXNhIFNhbnRvcyA8dGhpYWdvc3NhbnRvcyBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9pbml0KSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfY2hhaW4pLAoJICAoZ3N0X3F1ZXVlX2dldF9yYW5nZSksIChnc3RfcXVldWVfc3JjX2NoZWNrZ2V0cmFuZ2VfZnVuY3Rpb24pLAoJICAoZ3N0X3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCksIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdWxsKToKCSAgQWRkIHB1bGwgYmFzZWQgc2NoZWR1bGluZyBhbmQgZml4IHNvbWUgZGVhZGxvY2tzLiBGaXhlcyAjNDQ0NTIzLgoJICBEb2VzIG5vdCB5ZXQgY29tcGxldGVseSB3b3JrIGJlY2F1c2UgZHVyYXRpb24gcXVlcmllcyB1cHN0cmVhbSB3b24ndAoJICBibG9jayB5ZXQuCgoyMDA3LTA2LTA2IDA5OjA4OjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgU29tZSBtb3JlIGZzZWVrbyBjaGVja3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfY3JlYXRlX3JlYWQpOgoJICBTb21lIG1vcmUgZnNlZWtvIGNoZWNrcy4KCjIwMDctMDYtMDUgMTc6MDI6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IEluY2x1ZGUgc3RkaW8gdG8gZGVmaW5lIGZzZWVrby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2hhdmVfZGF0YSksCgkgIChnc3RfcXVldWVfY3JlYXRlX3JlYWQpLCAoZ3N0X3F1ZXVlX3JlYWRfaXRlbV9mcm9tX2ZpbGUpLAoJICAoZ3N0X3F1ZXVlX29wZW5fdGVtcF9sb2NhdGlvbl9maWxlKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZW5xdWV1ZSk6CgkgIEluY2x1ZGUgc3RkaW8gdG8gZGVmaW5lIGZzZWVrby4KCjIwMDctMDYtMDUgMTY6MTQ6MjMgKzAwMDAgIFRoaWFnbyBTb3VzYSBTYW50b3MgPHRoaWFnb3NzYW50b3NAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBBZGQgc3VwcG9ydCBmb3IgZmlsZWJhc2VkIGJ1ZmZlcmluZy4gRml4ZXMgIzQ0MTI2NC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBUaGlhZ28gU291c2EgU2FudG9zIDx0aGlhZ29zc2FudG9zIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2NsYXNzX2luaXQpLAoJICAoZ3N0X3F1ZXVlX2luaXQpLCAoZ3N0X3F1ZXVlX2ZpbmFsaXplKSwKCSAgKGdzdF9xdWV1ZV93cml0ZV9idWZmZXJfdG9fZmlsZSksIChnc3RfcXVldWVfaGF2ZV9kYXRhKSwKCSAgKGdzdF9xdWV1ZV9jcmVhdGVfcmVhZCksIChnc3RfcXVldWVfcmVhZF9pdGVtX2Zyb21fZmlsZSksCgkgIChnc3RfcXVldWVfb3Blbl90ZW1wX2xvY2F0aW9uX2ZpbGUpLAoJICAoZ3N0X3F1ZXVlX2Nsb3NlX3RlbXBfbG9jYXRpb25fZmlsZSksIChnc3RfcXVldWVfbG9ja2VkX2ZsdXNoKSwKCSAgKGdzdF9xdWV1ZV9sb2NrZWRfZW5xdWV1ZSksIChnc3RfcXVldWVfbG9ja2VkX2RlcXVldWUpLAoJICAoZ3N0X3F1ZXVlX2lzX2VtcHR5KSwgKGdzdF9xdWV1ZV9pc19maWxsZWQpLAoJICAoZ3N0X3F1ZXVlX2NoYW5nZV9zdGF0ZSksIChnc3RfcXVldWVfc2V0X3RlbXBfbG9jYXRpb24pLAoJICAoZ3N0X3F1ZXVlX3NldF9wcm9wZXJ0eSk6CgkgIEFkZCBzdXBwb3J0IGZvciBmaWxlYmFzZWQgYnVmZmVyaW5nLiBGaXhlcyAjNDQxMjY0LgoKMjAwNy0wNS0xNyAxNToyMjo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogVHdlYWsgdGhlIGJ1ZmZlcmluZyB0aHJlc2hvbGRzIGEgbGl0dGxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6ICh1cGRhdGVfcmF0ZXMpOgoJICBUd2VhayB0aGUgYnVmZmVyaW5nIHRocmVzaG9sZHMgYSBsaXR0bGUuCgkgIFVwZGF0ZSB0aGUgYnVmZmVyIHNpemUgd2l0aCB0aGUgcHJldmlvdXNseSBjYWxjdWxhdGUgcmF0ZSBpbnN0ZWFkIG9mCgkgIG9ubHkgd2hlbiB3ZSBjYWxjdWxhdGUgYSBuZXcgcmF0ZSBzbyB0aGF0IHdlIGdldCBzbW9vdGhlciBidWZmZXJpbmcKCSAgdXBkYXRlcy4KCSAgKiBnc3QvcGxheWJhY2svTWFrZWZpbGUuYW06CgkgICogZ3N0L3BsYXliYWNrL2dzdHVyaWRlY29kZWJpbi5jOiAoZ3N0X3VyaV9kZWNvZGVfYmluX2Jhc2VfaW5pdCksCgkgIChnc3RfdXJpX2RlY29kZV9iaW5fY2xhc3NfaW5pdCksIChnc3RfdXJpX2RlY29kZV9iaW5faW5pdCksCgkgIChnc3RfdXJpX2RlY29kZV9iaW5fZmluYWxpemUpLCAoZ3N0X3VyaV9kZWNvZGVfYmluX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfdXJpX2RlY29kZV9iaW5fZ2V0X3Byb3BlcnR5KSwgKHVua25vd25fdHlwZSksCgkgIChhZGRfZWxlbWVudF9zdHJlYW0pLCAobm9fbW9yZV9wYWRzX2Z1bGwpLCAobm9fbW9yZV9wYWRzKSwKCSAgKHNvdXJjZV9ub19tb3JlX3BhZHMpLCAobmV3X2RlY29kZWRfcGFkKSwgKGFycmF5X2hhc192YWx1ZSksCgkgIChnZW5fc291cmNlX2VsZW1lbnQpLCAoaGFzX2FsbF9yYXdfY2FwcyksIChhbmFseXNlX3NvdXJjZSksCgkgIChyZW1vdmVfZGVjb2RlcnMpLCAobWFrZV9kZWNvZGVyKSwgKHJlbW92ZV9zb3VyY2UpLAoJICAoc291cmNlX25ld19wYWQpLCAoc2V0dXBfc291cmNlKSwgKGRlY29kZXJfcXVlcnlfaW5pdCksCgkgIChkZWNvZGVyX3F1ZXJ5X2R1cmF0aW9uX2ZvbGQpLCAoZGVjb2Rlcl9xdWVyeV9kdXJhdGlvbl9kb25lKSwKCSAgKGRlY29kZXJfcXVlcnlfcG9zaXRpb25fZm9sZCksIChkZWNvZGVyX3F1ZXJ5X3Bvc2l0aW9uX2RvbmUpLAoJICAoZGVjb2Rlcl9xdWVyeV9sYXRlbmN5X2ZvbGQpLCAoZGVjb2Rlcl9xdWVyeV9sYXRlbmN5X2RvbmUpLAoJICAoZGVjb2Rlcl9xdWVyeV9zZWVraW5nX2ZvbGQpLCAoZGVjb2Rlcl9xdWVyeV9zZWVraW5nX2RvbmUpLAoJICAoZGVjb2Rlcl9xdWVyeV9nZW5lcmljX2ZvbGQpLCAoZ3N0X3VyaV9kZWNvZGVfYmluX3F1ZXJ5KSwKCSAgKGdzdF91cmlfZGVjb2RlX2Jpbl9jaGFuZ2Vfc3RhdGUpLCAocGx1Z2luX2luaXQpOgoJICBOZXcgZWxlbWVudCB0aGF0IGludGVyZ3JhdGVzIGEgc291cmNlLCBvcHRpb25hbCBidWZmZXJpbmcgZWxlbWVudCBhbmQKCSAgZGVjb2RlYmluLgoKMjAwNy0wNS0xNyAxMzozNjoxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogZml4IGJ1aWxkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfZ2V0X3R5cGUpLAoJICAoZ3N0X3F1ZXVlX2NsYXNzX2luaXQpLCAoZ3N0X3F1ZXVlX2ZpbmFsaXplKSwgKHVwZGF0ZV90aW1lX2xldmVsKSwKCSAgKGFwcGx5X3NlZ21lbnQpLCAoYXBwbHlfYnVmZmVyKSwgKHVwZGF0ZV9idWZmZXJpbmcpLAoJICAocmVzZXRfcmF0ZV90aW1lciksICh1cGRhdGVfcmF0ZXMpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9mbHVzaCksCgkgIChnc3RfcXVldWVfbG9ja2VkX2VucXVldWUpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9kZXF1ZXVlKSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfaXNfZmlsbGVkKSwKCSAgKGdzdF9xdWV1ZV9jaGFpbiksIChnc3RfcXVldWVfcHVzaF9vbmUpLCAoZ3N0X3F1ZXVlX2xvb3ApLAoJICAocGx1Z2luX2luaXQpOgoJICBmaXggYnVpbGQuCgoyMDA3LTA1LTE3IDExOjU3OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrLzogT24gb3VyIHdheSB0byBwbGF5YmluMiB0aGlzIGlzIHRoZSBuZXcgbmV0d29yayBxdWV1ZSB0aGF0IGRvZXMgYnVmZmVyaW5nIGFsbCBieSBpdHNlbGYgdXNpbmcgaGlnaCBhbmQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfZ2V0X3R5cGUpLAoJICAoZ3N0X3F1ZXVlX2NsYXNzX2luaXQpLCAoZ3N0X3F1ZXVlX2luaXQpLCAoZ3N0X3F1ZXVlX2ZpbmFsaXplKSwKCSAgKGdzdF9xdWV1ZV9nZXRjYXBzKSwgKGdzdF9xdWV1ZV9idWZmZXJhbGxvYyksCgkgIChnc3RfcXVldWVfYWNjZXB0Y2FwcyksICh1cGRhdGVfdGltZV9sZXZlbCksIChhcHBseV9zZWdtZW50KSwKCSAgKGFwcGx5X2J1ZmZlciksICh1cGRhdGVfYnVmZmVyaW5nKSwgKHJlc2V0X3JhdGVfdGltZXIpLAoJICAodXBkYXRlX3JhdGVzKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZmx1c2gpLAoJICAoZ3N0X3F1ZXVlX2xvY2tlZF9lbnF1ZXVlKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZGVxdWV1ZSksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2lzX2VtcHR5KSwKCSAgKGdzdF9xdWV1ZV9pc19maWxsZWQpLCAoZ3N0X3F1ZXVlX2NoYWluKSwgKGdzdF9xdWV1ZV9wdXNoX29uZSksCgkgIChnc3RfcXVldWVfbG9vcCksIChnc3RfcXVldWVfaGFuZGxlX3NyY19ldmVudCksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSksIChnc3RfcXVldWVfc2lua19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCksIChnc3RfcXVldWVfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9xdWV1ZV9zZXRfcHJvcGVydHkpLCAoZ3N0X3F1ZXVlX2dldF9wcm9wZXJ0eSksIChwbHVnaW5faW5pdCk6CgkgIE9uIG91ciB3YXkgdG8gcGxheWJpbjIgdGhpcyBpcyB0aGUgbmV3IG5ldHdvcmsgcXVldWUgdGhhdCBkb2VzIGJ1ZmZlcmluZwoJICBhbGwgYnkgaXRzZWxmIHVzaW5nIGhpZ2ggYW5kIGxvdyB3YXRlcm1hcmtzLiBJdCBjYW4gYWxzbyBtZWFzdXJlIHVwIGFuZAoJICBkb3duc3RyZWFtIGJhbmR3aWR0aCB0byBvcHRpbWFsbHkgc2l6ZSB0aGUgcXVldWUuCgoyMDA5LTEwLTI4IDIyOjAzOjQ0IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBGaXggbWVtbGVhayBvZiB1bnVzZWQgZGVsYXllZCBsaW5rcwoJICBBdHRhY2ggdGhlIERlbGF5ZWRMaW5rIHN0cnVjdHVyZSB0byB0aGUgZWxlbWVudCwgc28gdGhhdCB3aGVuCgkgIHRoZSBlbGVtZW50IGlzIGRpc3Bvc2VkLCB0aGUgRGVsYXllZExpbmsgaXMgZnJlZWQuCgoyMDA5LTA5LTA5IDE1OjM3OjExIC0wNTAwICBSb2IgQ2xhcmsgPHJvYkB0aS5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbWFrZSBfZml4YXRlX2NhcHMoKSBhbHNvIHRydW5jYXRlIHdoZW4gbmVlZGVkCgkgIFRoZSBkZWZhdWx0IGdzdF9wYWRfZml4YXRlX2NhcHMoKSBwcmV2aW91c2x5IHdvdWxkIG9ubHkgZml4YXRlIGVhY2ggaW5kaXZpZHVhbAoJICBzdHJ1Y3QuIEluIGNhc2UgdGhlcmUgYXJlIG11bHRpcGxlIHN0cnVjdHMsIHRoZSByZXN1bHRpbmcgY2FwcyB3b3VsZCBzdGlsbCBub3QKCSAgYmUgZml4ZWQuIEluIHRoZSBzcGlyaXQgb2YgaG93IGluZGl2aWR1YWwgc3RydWN0cyBhcmUgZml4YXRlZCwgdGhpcyBwYXRjaAoJICBjaGFuZ2VzIGdzdF9wYWRfZml4YXRlX2NhcHMoKSB0byByZW1vdmUgYWxsIGJ1dCB0aGUgZmlyc3Qgc3RydWN0LgoJICBGaXhlcyAjNTk1ODg2CgoyMDA5LTA5LTIxIDExOjQ0OjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogZml4IGRvY3MKCjIwMDktMTAtMjggMDk6MjY6MzIgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHhtbC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgb3B0aW1pc2F0aW9uIDogVXNlIGdfb2JqZWN0X25ld3Ygd2hlcmUgcG9zc2libGUuCgkgIFRoaXMgYXZvaWRzOgoJICAqIHRyaXBsZS1jaGVja2luZyBmb3IgdGhlIEdUeXBlIHdoZW4gdHlwZS1jaGVja2luZyBpcyBlbmFibGVkIChzZWUgIzU5NzI2MCkKCSAgKiBBdm9pZHMgZ29pbmcgdGhyb3VnaCBhbiBleHBlbnNpdmUgbm8tYXJndW1lbnQgY2hlY2tpbmcgd2hpY2ggbGFuZGVkIGluCgkgIGdsaWItMi4yMgoJICAqIEF2b2lkcyBnb2luZyB0aHJvdWdoIDIgZXh0cmFjIGZ1bmN0aW9ucyAoZ19vYmplY3RfbmV3IC0+IGdfb2JqZWN0X25ld192YWxpc3QpCgoyMDA5LTEwLTI4IDEwOjE1OjEyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICBkb2NzOiBpbmNsdWRlIGFubm90YXRpb24gZ2xvc3NhcnkgdG8gaGF2ZSB3b3JraW5nIGxpbmtzLgoKMjAwOS0xMC0yOCAxMDoxNDozNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdC5jOgoJICBhbm5vdGF0aW9uczogYWRkIGFubm90YXRpb25zIHRvIGdzdF9pbml0X2NoZWNrIHRvbwoKMjAwOS0xMC0yOCAwOTo1ODo1MiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdC5jOgoJICBkb2NzOiB0ZWxsIG1vcmUgYWJvdXQgd2hhdCBoYXBwZW5zIGluIGdzdF9pbml0LgoJICBBZGQgbGlua3MgdG8gZ3N0X3VwZGF0ZV9yZWdpc3RyeSBhbmQgdGhlIGVudi12YXJzLgoKMjAwOS0xMC0yOCAwOToyMTowMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdC5jOgoJICBkb2NzOiByZW1vdmUgcmVmZXJlbmNlIHRvIE9HSSBhbmQgcmVwaHJhc2Ugc2VjdGlvbnMgZG9jcwoJICBUaGUgT0dJIGxpbmtzIGFyZSBkZWFkLCBzbyByZW1vdmUgdGhlbS4gQWxzbyByZW1vdmUgdGhlIHBhcmFncmFwaCB0aGF0IHBvaW50ZWQKCSAgdG8gT0dJIGFuZCBEUy4gT25seSBtZW50aW9uaW5nIERTIHRoZXJlIG1hZGUgaXQgYSBidXQgcG9pbnRsZXNzLiBBZGQgYSBnZW5lcmljCgkgIHBhcmFncmFwaCBpbnN0ZWFkIHRoYXQgdGVsbHMgYSBiaXQgYWJvdXQgdGhlIHVzZWNhc2VzIGdzdHJlYW1lciBjb3ZlcnMuCgoyMDA5LTEwLTI4IDAwOjI5OjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBnc3QvZ3N0eG1sLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSAgUmVtb3ZlIEdTVF9ERUJVR19GVU5DUFRSIHdoZXJlIHRoZXkncmUgcG9pbnRsZXNzCgkgIFRoZXJlJ3Mgbm90IG11Y2ggcG9pbnQgaW4gdXNpbmcgR1NUX0RFQlVHX0ZVTkNQVFIgd2l0aCBHT2JqZWN0CgkgIHZpcnR1YWwgZnVuY3Rpb25zIHN1Y2ggYXMgZ2V0X3Byb3BlcnR5LCBzZXRfcHJvcGVyeSwgZmluYWxpemUgYW5kCgkgIGRpc3Bvc2UsIHNpbmNlIHRoZXknbGwgbmV2ZXIgYmUgdXNlZCBieSBhbnlvbmUgYW55d2F5LiBTYXZlcyBhCgkgIGZldyBieXRlcyBhbmQgcG9zc2libHkgYSB0ZW50aCBvZiBhIHBvbGFyIGJlYXIuCgoyMDA5LTEwLTI4IDAwOjA3OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBzcHJpbmtsZSBzb21lIEdTVF9ERUJVR19GVU5DUFRSCgoyMDA5LTEwLTI3IDE1OjQ3OjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgZGVzaWduOiBhZGQgc29tZSBpZGVhcyBmb3IgU0tJUCBtb2RlIHRyaWNrbW9kZXMKCjIwMDktMTAtMjMgMTA6MjA6MDIgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogYnVmZmVyaW5nIGlzIGltcGxlbWVudGVkIG5vdwoKMjAwOS0xMC0yMiAyMToyNDoyNCAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogbWFrZSBzdXJlIHBlcmNlbnQgaW5jcmVhc2VzCgkgIEtlZXAgdHJhY2sgb2YgdGhlIGxhc3QgcG9zdGVkIHBlcmNlbnQgbWVzc2FnZSBhbmQgbWFrZSBzdXJlIHRoZSBuZXh0IHBlcmNlbnQKCSAgbWVzc2FnZXMgYXJlIHN0cmljdGx5IGluY3JlYXNpbmcuCgoyMDA5LTEwLTIyIDE2OjM4OjEyIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHJlZmFjdG9yIGJ1ZmZlcmluZyBjb2RlCgkgIE1vdmUgdGhlIGJ1ZmZlcmluZyB1cGRhdGUgY29kZSB0byBhIHNlcGFyYXRlIGZ1bmN0aW9uIHNvIHRoYXQgd2UgY2FuIGNhbGwgaXQKCSAgd2hlbiB0aGUgYnVmZmVyaW5nIHN0YXRlIGNoYW5nZXMgZHVlIHRvIEVPUy4KCSAgQXZvaWQgZGl2aWRpbmcgYnkgMC4KCjIwMDktMTAtMjIgMTQ6MDk6MDEgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IGFkZCBidWZmZXJpbmcgc3VwcG9ydAoJICBBZGQgc3VwcG9ydCBmb3IgYnVmZmVyaW5nIG1vZGUgd2hlcmUgd2UgcG9zdCBCVUZGRVJJTkcgbWVzc2FnZXMgYmFzZWQgb24gdGhlCgkgIGxldmVsIG9mIHRoZSBxdWV1ZXMuIEl0IGN1cnJlbnRseSBvcGVyYXRlcyBvbiB0aGUgZmlyc3QgcXVldWUgdGhhdCBnb2VzIG92ZXIgb3IKCSAgdW5kZXIgdGhlIGhpZ2gvbG93IHRocmVzaG9sZHMuCgoyMDA5LTEwLTIyIDE0OjA3OjMxIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGRvbid0IGNoZWNrIHZpc2libGUgaXRlbXMgaW4gYnVmZmVyaW5nCgkgIEluIGJ1ZmZlcmluZyBtb2RlIHdlIHdhbnQgdG8gaWdub3JlIHRoZSBtYXggdmlzaWJsZSBpdGVtcyB0byBkZWNpZGUgd2hlbiB0aGUKCSAgcXVldWUgaXMgZmlsbGVkLiBJbnN0ZWFkLCB3ZSBvbmx5IGxvb2sgYXQgdGhlIG51bWJlciBvZiBieXRlcyBhbmQvb3IgdGltZSBpbiB0aGUKCSAgcXVldWUuCgoyMDA5LTEwLTIxIDExOjMwOjQwIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBob29rIHVwIGxvdy9oaWdoIHBlcmNlbnQKCSAgSG9vayB1cCB0aGUgbG93L2hpZ2ggcGVyY2VudCBwcm9wZXJ0aWVzIGZvciB0aGUgYnVmZmVyaW5nIG1vZGUuCgoyMDA5LTEwLTIxIDExOjI0OjQ3IC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBob29rIHVwIHByb3BlcnR5IGZvciBidWZmZXJpbmcKCjIwMDktMTAtMjIgMTU6MjE6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogc21hbGwgY2xlYW51cHMKCSAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZSB0byBhdm9pZCBjb25mdXNpb24KCSAgRml4IHNvbWUgdHlwbwoKMjAwOS0xMC0yMiAwOTo0MTo1MiAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBhZGQgRklYTUUgZm9yIHdyb25nIGNvZGUKCSAgTmVlZHMgZnVydGhlciBpbnZlc3RpZ2F0aW9uCgoyMDA5LTEwLTIxIDE0OjIwOjI5IC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGZpeCBkZWJ1ZyBvdXRwdXQKCjIwMDktMTAtMjEgMTQ6MTU6MDUgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogYXZvaWQgc2hhZG93aW5nIGZ1bmN0aW9uIGFyZ3VtZW50CgkgIERvbid0IHNoYWRvdyB0aGUgc3EgYXJndW1lbnQgaW4gdGhlIHVuZGVycnVuX2NiIGZ1bmN0aW9uIGJ1dCB1c2UKCSAgYSBkaWZmZXJlbnQgdmFyaWFibGUgbmFtZSB0byBpdGVyYXRlIHRoZSBvdGhlciBxdWV1ZXMuCgkgIFVzZSB0aGUgc2FtZSB2YXJpYWJsZSBuYW1lIGluIHRoZSBvdmVycnVuX2NiIGZ1bmN0aW9uLgoKMjAwOS0xMC0yMSAxNDoxMjoxMiAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBtYWtlIHF1ZXVlIGFyZyBleHBsaWNpdAoJICBNYWtlIHRoZSBxdWV1ZSBhcmd1bWVudCB0byBJU19GSUxMRUQgZXhwbGljaXQKCjIwMDktMTAtMjEgMTE6MTc6MDggLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogZml4IHByb3BlcnRpZXMKCSAgRml4IHByb3BlcnRpZXMsIG1ha2UgdGhlIGV4dHJhLXNpemUgcHJvcGVydGllcyBhcyBub3QgaW1wbGVtZW50ZWQuCgoyMDA5LTEwLTI1IDIxOjM1OjA5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBhbGxvdyB0byBoaWRlL3Nob3cgcGFkIHN0YXR1cyB3aXRoIGdyYXBoZGV0YWlscyBmbGFnCgoyMDA5LTEwLTI0IDEzOjE0OjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgdHlwZWZpbmRoZWxwZXI6IFJlbW92ZSBvYnNvbGV0ZSBGSVhNRQoJICBJdCdzIG5vdCBuZWNlc3NhcnkgKGFuZCBub3QgYSBnb29kIGlkZWEpIHRvIGNhY2hlIHRoZSB0eXBlZmluZCBmYWN0b3J5CgkgIGxpc3QgYW55bW9yZS4KCjIwMDktMTAtMjQgMTE6NTg6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICByZWdpc3RyeTogcHJpdmF0ZSBpcyBhIEMrKyBrZXl3b3JkLCBkb24ndCB1c2UgaXQKCSAgLi4ub3RoZXJ3aXNlIEMrKyBjb21waWxlcnMgd2lsbCBjb21wbGFpbiB3aGVuIGluY2x1ZGluZyBnc3RyZWdpc3RyeS5oCgoyMDA5LTEwLTI0IDEwOjIxOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgIGRvY3M6IGFkZCBTaW5jZSB0YWcgdG8gZG9jcyBmb3IgbmV3IEFQSQoJICBBbmQgdGVsbCBndGstZG9jIHRoYXQgR3N0UmVnaXN0cnlQcml2YXRlIGlzIHByaXZhdGUuCgoyMDA5LTEwLTIxIDA5OjQ4OjQxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICB0eXBlZmluZDogS2VlcCB0eXBlZmluZCBmYWN0b3JpZXMgc29ydGVkIGluIHRoZSByZWdpc3RyeS4gRml4ZXMgIzU5OTE0NwoJICBUaGlzIGF2b2lkcyBoYXZpbmcgdG8gZG8gdGhlIHNvcnRpbmcgZXZlcnl0aW1lIHdlIHVzZSB0eXBlZmluZAoJICBUaGUgYmVoYXZpb3VyIG9mIGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9nZXRfbGlzdCBoYXMgc3VidGxlbHkgY2hhbmdlZAoJICBpbiB0aGUgc2Vuc2UgdGhhdCB0aGUgb3JkZXIgd2FzIHByZXZpb3VzbHkgdW5kZWZpbmVkLCB3aGVyZWFzIG5vdwoJICBpdCByZXR1cm5zIHRoZW0gc29ydGVkIGJ5IHJhbmsgYW5kIHRoZW4gYnkgbmFtZS4KCjIwMDktMTAtMjEgMDk6NDU6NDcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IENhY2hlIGVsZW1lbnQgYW5kIHR5cGVmaW5kIGZhY3Rvcmllcy4gRml4ZXMgNTk4ODk2CgkgIFRoaXMgYXZvaWRzIHVubmVlZGVkIGxpc3QvZmlsdGVyaW5nIGlmIHRoZSByZWdpc3RyeSBoYXNuJ3QgY2hhbmdlZAoKMjAwOS0xMC0yMSAwOTo0MDo0OSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RwbHVnaW5mZWF0dXJlOiBBUEkgOiBuZXcgZ3N0X3BsdWdpbl9mZWF0dXJlX2xpc3RfY29weSgpIG1ldGhvZAoJICBUaGlzIGFsbG93cyBjb3B5aW5nIEFORCBpbmNyZW1lbnRpbmcgdGhlIHJlZmNvdW50IGF0IHRoZSBzYW1lIHRpbWUsCgkgIGF2b2lkaW5nIGEgZG91YmxlIGl0ZXJhdGlvIG9mIHRoZSBHTGlzdAoKMjAwOS0xMC0yNCAxMDowNTo1OSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgZ3N0cmVnaXN0cnk6IEFkZCBhIGNvb2tpZSBmb3IgZGV0ZWN0aW5nIGZlYXR1cmUgbGlzdCBjaGFuZ2VzCgkgIFdlIGFsc28gY3JlYXRlIGEgcHJpdmF0ZSBzdHJ1Y3R1cmUsIHNpbmNlIHdlIHdpbGwgbmVlZCB0byBhZGQgbW9yZQoJICBkYXRhIHRoZXJlIGluIGZvbGxvd2luZyBwYXRjaGVzLgoKMjAwOS0xMC0yMyAxMzoxOTowNCAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIG1lc3NhZ2U6IGRvbid0IHVzZSB0eXBlY2hlY2tpbmcgY2FzdCBtYWNyb3MKCSAgU2ltcGx5IHVzZSBjYXN0aW5nIG1hY3JvcyBmb3IgYWNjZXNzaW5nIHRoZSBtZXNzYWdlIGZpZWxkcyBsaWtlIHdlIGRvIGZvcgoJICBidWZmZXJzIGFuZCBldmVudHMuIEF2b2lkcyBzb21lIGNvc3RseSB0eXBlY2hlY2tpbmcgdGhhdCBkb2VzIG5vdCByZWFsbHkgYnV5IHVzCgkgIG11Y2guCgoyMDA5LTEwLTIzIDEzOjEzOjUyIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgUmV2ZXJ0ICJnc3RtZXNzYWdlOiBBdm9pZCBleHBlbnNpdmUgc3JjL3R5cGUvdGltZXN0YW1wIGZldGNoLiIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA2MWNmOTNhMzM0Yjc5YTJkODQ5M2U1MzFjYzQ0YmE0NWE0MjA5ODA1LgoKMjAwOS0xMC0yMyAxNzo1MToyNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIGdzdG1lc3NhZ2U6IEF2b2lkIGV4cGVuc2l2ZSBzcmMvdHlwZS90aW1lc3RhbXAgZmV0Y2guCgkgIElmIHdlJ3ZlIGFscmVhZHkgY2hlY2tlZCB0aGF0IHdlIGhhdmUgYSB2YWxpZCBtZXNzYWdlLCB1c2UgdGhlIGVudHJpZXMKCSAgZGlyZWN0bHkuCgoyMDA5LTEwLTIzIDE3OjQ3OjQzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgZ3N0Y2FwczogVXNlIGlubGluZWQgdmVyc2lvbiBvZiBfaXNfYW55KCkvX2lzX2VtcHR5KCkKCSAgQ0FQU19JU19BTlkgYW5kIENBUFNfSVNfRU1QVFkgYXJlIHRoZSBlcXVpdmFsZW50IG9mIHRoZWlyIGdzdF9jYXBzXyoKCSAgY291bnRlcnBhcnQgZXhjZXB0IHRoYXQgdGhleSBhdm9pZCB0aGUgdHlwZWNoZWNraW5nIGFuZCBhcmUgaW5saW5lZC4KCSAgQ0FQU19JU19FTVBUWV9TSU1QTEUgb25seSBjaGVja3MgZm9yIGVtcHR5IGNhcHMgKHdpdGhvdXQgY2hlY2tpbmcgaWYKCSAgdGhlIGNhcHMgaXMgQU5ZKS4KCjIwMDktMTAtMjIgMTY6NDI6MTMgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBUT0RPOiBhZGQgaXRlbSB0byBUT0RPIGxpc3QKCSAgV2UgY3VycmVudGx5IGRvIGEgbGl0dGxlIHRvbyBtdWNoIHdvcmsgd2hlbiB3ZSBwdXNoIHRoZSBmaXJzdCBidWZmZXIgYXJvdW5kCgkgIHJlc3VsdGluZyBpbiBleGNlc3NpdmUgY2FwcyBjaGVja2luZy4gV2UgY2FuIHByb2JhYmx5IG1ha2UgdGhpcyBhIGxpdHRsZSBsZXNzCgkgIGV4cGVuc2l2ZS4KCjIwMDktMTAtMjIgMTI6NTI6NDYgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBnc3RwaXBlbGluZTogU2ltcGxpZnkgYmFzZSB0aW1lIGNoZWNraW5nIHNsaWdodGx5CgkgIFNpbXBsaWZ5IGNoZWNraW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIGJhc2UgdGltZSAtIGRvbid0IHJlLWNoZWNrCgkgIHRoZSB2YWx1ZSBvZiBhIGxvY2FsIHZhcmlhYmxlIHRoYXQgd2FzIHNldCAzIGxpbmVzIGVhcmxpZXIuCgoyMDA5LTEwLTIyIDEzOjE1OjE1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJICBnc3R1cmk6IE9wdGltaXNhdGlvbjogQXZvaWQgdHlwZS1jaGVja2luZyBpbiBzb3J0aW5nIG1ldGhvZC4KCSAgV2UgYWxyZWFkeSBrbm93IHRoZSBsaXN0IG9ubHkgY29udGFpbnMgcGx1Z2luIGZlYXR1cmVzCgoyMDA5LTEwLTIyIDEzOjEzOjU2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJICBnc3R1cmk6IE9wdGltaXNhdGlvbiA6IENhc3Qgd2hlbiB3ZSdyZSBzdXJlIG9mIHRoZSB0eXBlLgoJICBBbHNvIGRpcmVjdGx5IGFjY2VzcyBHc3RFbGVtZW50RmFjdG9yeS0+dXJpX3R5cGUgaW5zdGVhZCBvZiBnb2luZwoJICB0aHJvdWdoIGEgZnVuY3Rpb24gdGhhdCB3aWxsIChvbmNlIGFnYWluKSBjaGVjayB3aGV0aGVyIGl0J3MgYQoJICBHc3RFbGVtZW50RmFjdG9yeQoKMjAwOS0xMC0yMiAxMjozMzozNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkgIHRlc3RzL2Zha2VzaW5rOiBBZGQgc29tZSBkZWJ1Z2dpbmcKCjIwMDktMTAtMjIgMTI6MzM6MDEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJICB0ZXN0cy9mYWVrc2luazogTG93ZXIgdGhlIG51bWJlciBvZiB0aHJlYWRzIHRvIGF2b2lkIHRpbWVvdXRzCgkgIFdlIGp1c3QgZW5kIHVwIHdpdGggd2F5IHRvbyBtdWNoIGNvbnRlbnRpb24gaW4gZ2xpYiBvdGhlcndpc2UuCgoyMDA5LTEwLTE5IDA5OjA2OjE2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIGdzdHJlZ2lzdHJ5OiBVc2UgaGFzaCB0YWJsZSB3aGVuIGZpbmRpbmcgYSBmZWF0dXJlLiBGaXhlcyAjNTk4ODk1CgoyMDA5LTEwLTIxIDE2OjI2OjAxIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBpbXBsZW1lbnQgY3VzdG9tIGFjY2VwdGNhcHMgZnVuY3Rpb24KCSAgSW1wbGVtZW50IGEgY3VzdG9tIGFjY2VwdGNhcHMgZnVuY3Rpb24gb24gdGhlIHNpbmtwYWQuIFdlIGNhbiBhY2NlcHQgYW55IGNhcHMgYXMKCSAgbG9uZyBhcyBpdCBpcyBhY2NlcHRlZCBieSBhbGwgZG93bnN0cmVhbSBwZWVyIGVsZW1lbnRzLgoKMjAwOS0xMC0yMSAxMzozODo1NyAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogYXZvaWQgbG9jayBmb3IgdGFraW5nIHRoZSBjb3VudGVyCgkgIFRoZSBjb3VudGVyIGZvciBpbmNvbW1pbmcgZGF0YSBpcyBhbHJlYWR5IHByb3RlY3RlZCB3aXRoIHRoZSBTVFJFQU1fTE9DSyBzbyB3ZQoJICBkb24ndCBuZWVkIHRvIGFkZCBhbm90aGVyIGxvY2sgYXJvdW5kIGl0LgoKMjAwOS0xMC0yMCAyMzoyODo1NCAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgcmVnaXN0cnk6IGhhc2ggdGhlIHBsdWdpbiBiYXNlbmFtZQoJICBNYWludGFpbiBhIGhhc2h0YWJsZSBvZiB0aGUgcGx1Z2luIGJhc2VuYW1lLiBXZSBjYW4gdGhlbiB1c2UgdGhpcwoJICBoYXNodGFibGUgdG8gc3BlZWR1cCB0aGUgc2VhcmNoIGZvciBhbiBleGlzdGluZyBwbHVnaW4gYW5kIGF2b2lkCgkgIGEgd2hvbGUgbG90IG9mIHN0cmNtcCBjYWxscy4KCjIwMDktMTAtMjAgMjM6Mjc6NDEgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnk6IHNwZWVkIHVwIF9zdHJsZW4KCSAgTWFrZSB0aGUgX3N0cmxlbiBmdW5jdGlvbiBhIGxpdHRsZSB0aWdodGVyCgoyMDA5LTEwLTIwIDIxOjQzOjU4IC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBuYW1lIGlzIG5ldmVyIE5VTEwKCSAgV2hlbiBsb29raW5nIHVwIGEgZmVhdHVyZSBieSBuYW1lLCB3ZSBuZXZlciBjYWxsIHRoaXMgaW50ZXJuYWwKCSAgZnVuY3Rpb24gd2l0aCBOVUxMIHNvIHdlIGRvbid0IGhhdmUgdG8gY2hlY2sgZm9yIGl0LgoKMjAwOS0xMC0yMCAyMTozOToxMSAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogcmVmYWN0b3IgcGx1Z2luIGxvb2t1cAoJICBXZSBrZWVwIGxvb2t1cCBwbHVnaW5zIGJ5IHRoZWlyIGJhc2VuYW1lLiBBdm9pZCBjcmVhdGluZyBhIGJhc2VuYW1lCgkgIGZyb20gYSBmaWxlbmFtZSBpZiB3ZSBjYW4uCgoyMDA5LTEwLTIwIDIxOjAxOjU1IC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBkbyBxdWljayBjaGVjayBmb3IgLiBmaWxlcwoJICBEbyBhIHF1aWNrIGNoZWNrIGZvciAuIGZpbGVzIGJlZm9yZSBjYWxsaW5nIHRoZSBzdHJjbXAgZnVuY3Rpb25zCgoyMDA5LTEwLTIwIDEyOjIxOjA5IC0wNzAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAc29uZ2JpcmRuZXN0LmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R4bWwuYzoKCSAgUmVtb3ZlIGV4ZWN1dGFibGUgYml0cyBvbiB4bWwgdW5pdCB0ZXN0LgoKMjAwOS0xMC0xOSAxNjo0NzoxMCArMDIwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBkb2NzOiBGaXggZG9jcyBmb3IgZ3N0X2NhcHNfc2V0X3NpbXBsZSgpCgoyMDA5LTEwLTE5IDEzOjAyOjMwICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBkb2NzOiBNb2RpZnkgZG9jcyBzdHJpbmcgc2xpZ2h0bHkuCgkgIEFwcGFyZW50bHkgc3RhcnRpbmcgdGhlIGxhc3QgbGluZSBvZiBhIGRvY3Mgc3RyaW5nIHdpdGggJ3JldHVybnMnIGJvdGgKCSAgY29uZnVzZXMgYW5kIGVucmFnZXMgZ3RrLWRvYy4gVXNlIGEgc2xpZ2h0bHkgZGlmZmVyZW50IHdvcmRpbmcgaW5zdGVhZC4KCjIwMDktMTAtMTkgMTI6Mjk6MzUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBXaGVuIGEgcGx1Z2luIGlzIGJsYWNrbGlzdGVkLCBvdXRwdXQgYSBHU1RfRVJST1IgbGluZS4KCjIwMDktMTAtMTkgMTM6MzA6MTAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29scy9nc3QtaW5zcGVjdDogQ2hlY2sgd2UncmUgbm90IGhhbmRsaW5nIE5VTEwgcG9pbnRlcnMuCgoyMDA5LTEwLTE5IDEzOjI5OjQwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHMvZ3N0LWluc3BlY3Q6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnQKCjIwMDktMTAtMTQgMTA6NTQ6MzIgKzAyMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSogZ3N0L2dzdHRyYWNlLmg6CgkgIHRyYWNlOiBEbyBub3QgcG9pc29uIGdzdF90cmFjZV9hZGRfZW50cnkoKQoJICBTaW5jZSBnc3RfdHJhY2VfYWRkX2VudHJ5KCkgaXMgYSBtYWNybywgZ2NjIHdpbGwgYmFyZiB3aGVuIGl0IGlzCgkgIGRlZmluZWQgaW4gY2FzZSBpdCBoYXMgYmVlbiBwb2lzb25lZCBkdWUgdG8gdHJhY2Ugc3VwcG9ydCBiZWluZwoJICBkaXNhYmxlZC4KCjIwMDktMTAtMTggMjM6MTg6NTggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjoganVzdCBjYXN0IGluIGludGVybmFsIEFQSSB3aGVyZSB3ZSBoYXZlIGNoZWNrZWQgcGFyYW1ldGVycyBhbHJlYWR5CgoyMDA5LTEwLTE4IDIzOjE1OjA3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogdXNlIGdfc2xpY2UgZm9yIGNvbnRyb2xsZWQgcHJvcGVydHkgc3RydWN0dXJlcwoJICBVc2UgZ19zbGlkZSBpbnN0ZWFkIG9mIG5vbWFsIGdfbmV3LCBBbHNvIGRvbid0IGluaXQgc3RydWN0IHdpdGggMCBhcyB3ZSBuZWVkIHRvCgkgIGluaXQgaXQgYW55d2F5IHdpdGggdGhlIHJlYWwgdmFsdWVzLgoJICBBbHNvIGpvaW4gdGhlIDMgZmxhZ3MgY2hlY2tzIGludG8gb25lLgoKMjAwOS0xMC0xOCAxNzoxNzoxNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgbGlicy9iYXNlL3R5cGVmaW5kaGVscGVyOiBSZW1vdmUgdXNlbGVzcyB0eXBlY2hlY2tpbmcgaW4gdGlnaHQgbG9vcAoJICBUaGUgbGlzdCBhZ2FpbnN0IHdoaWNoIHdlIHJ1biB0aGUgY29tcGFyZWZ1bmMgd2lsbCBvbmx5IGNvbnRhaW4KCSAgR3N0UGx1Z2luRmVhdHVyZSwgdGhlcmVmb3JlIHJlbW92ZSB0aGUgNiBleHBlbnNpdmUgdHlwZSBjaGVja3Mgd2UgZG8KCSAgZm9yIGV2ZXJ5IHNpbmdsZSBjb21wYXJpc2lvbi4KCjIwMDktMTAtMTYgMTI6Mzk6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBmaXggdHlwbyBpbiBkb2NzCgoyMDA5LTEwLTE2IDA5OjQzOjA4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBBZGQgbmV3IEFQSSBzeW1ib2wKCjIwMDktMTAtMTYgMTA6MTM6NTMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gODVkMTUzMCB0byAwNzAyZmUxCgoyMDA5LTEwLTA3IDE1OjMyOjE4ICswMjAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQGdub21lLm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkgIEltcHJvdmUgY2FwcyBzZXR0ZXJzIEFQSQoJICBUaGlzIHBhdGNoIGFkZHMgZ3N0X2NhcHNfc2V0X3ZhbHVlKCkgYW5kIGFsbG93cyBnc3RfY2Fwc19zZXRfc2ltcGxlKCkgdG8KCSAgd29yayBvbiBub24tc2ltcGxlIGNhcHMuIFNlZSB0aGUgQVBJIGRvY3VtZW50YXRpb24gZm9yIHRoZSBmdW5jdGlvbnMKCSAgYWJvdXQgd2hhdCB0aGV5IGRvLgoJICBUaGUgaW50ZW50aW9uIG9mIHRoZXNlIGNoYW5nZXMgaXMgdG8gZWFzZSB3b3JraW5nIHdpdGggY2FwcyBpbiBjYXBzCgkgIHRyYW5zZm9ybSBmdW5jdGlvbnMuIEFuIGV4YW1wbGUgZm9yIHRoaXMgd291bGQgYmUgZmZtcGVnY29sb3JzcGFjZSwKCSAgd2hlcmUgdGhlIGNhcHMgdHJhbnNmb3JtIGZ1bmN0aW9uIGNvdWxkIGJlIGNoYW5nZWQgdG8gbG9vayByb3VnaGx5IGxpa2UKCSAgdGhpcyAocHNldWRvY29kZSBhaGVhZCk6CgkgIHJlc3VsdCA9IGdzdF9jYXBzX2NvcHkgKHRlbXBsYXRlX2NhcHMpOwoJICB2YWx1ZSA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X3ZhbHVlIChnc3RfY2Fwc19nZXRfc3RydWN0dXJlIChjYXBzLCAwKSwKCSAgIndpZGgiKTsKCSAgZ3N0X2NhcHNfc2V0X3ZhbHVlIChyZXN1bHQsIHZhbHVlKTsKCSAgLyogc2FtZSBmb3IgaGVpZ2h0LCBmcmFtZXJhdGUgYW5kIHBhciAqLwoJICByZXR1cm4gY2FwczsKCSAgd2hpY2ggaXMgbXVjaCBjbGVhbmVyIGFuZCBlYXNpZXIgdG8gdW5kZXJzdGFuZCB0aGFuIHRoZSBjdXJyZW50IGNvZGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01OTc2OTAKCjIwMDktMTAtMDIgMTA6MTU6NTUgKzAyMDAgIEJlbmphbWluIE90dGUgPG90dGVAZ25vbWUub3JnPgoKCSogdGVzdHMvZXhhbXBsZXMveG1sL01ha2VmaWxlLmFtOgoJICBBZGQgWE1MX0xJQlMgd2hlbiBidWlsZGluZyB0ZXN0cyB0aGF0IHVzZSB4bWwtc3BlY2lmaWMgZnVuY3Rpb25zCgoyMDA5LTEwLTE1IDE2OjM1OjU5ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBwby9NYWtldmFyczoKCSAgcG86IERvbid0IGNyZWF0ZSBiYWNrdXAgLnBvIGZpbGVzCgkgIEFzIHdlbGwgYXMgcHJldmVudGluZyBjcmVhdGlvbiBvZiB1c2VsZXNzIGJhY2t1cCBmaWxlcywgaXQgd29ya3MKCSAgYXJvdW5kIGEgYnVnIGluIGdldHRleHQgMC4xNyBvbiBPUy9YCgoyMDA5LTEwLTE1IDE2OjMwOjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGZpeCByYWNlIGluIFBMQVlJTkctPlBBVVNFRC0+UExBWUlORwoJICBXaGVuIHdlIHF1aWNrbHkgc3dpdGNoIGZyb20gUExBWUlORyB0byBQQVVTRUQgYW5kIGJhY2sgdG8gUExBWUlORyBpdCdzIHBvc3NpYmxlCgkgIGluIHNvbWUgY2FzZXMgdGhhdCB0aGUgdGFzayByZWZ1c2VzIHRvIHN0YXJ0LCBUaGlzIGlzIGJlY2F1c2Ugd2hlbiB3ZSBnbyB0bwoJICBQQVVTRUQsIHdlIHVuc2NoZWR1bGUgdGhlIGNsb2NrIHRpbWVvdXQsIHdoaWNoIGNvdWxkIHJldHVybiBVTlNDSEVEVUxFRCB3aGVuCgkgIHdlJ3JlIGJhY2sgdG8gUExBWUlORywgY2F1c2luZyB0aGUgdGFzayB0byBQQVVTRSBhZ2FpbiB3aXRoIGEgd3Jvbmctc3RhdGUuCgkgIFRoaXMgcGF0Y2ggY2hlY2tzIGlmIHdlIGFyZSBydW5uaW5nIHdoZW4gd2UgcmV0dXJuIHdpdGggYW4gVU5TQ0hFRFVMRUQgcmV0dXJuCgkgIHZhbHVlIGFuZCBpZiB3ZSBhcmUsIHRyeSB0byBjcmVhdGUgYSBuZXcgYnVmZmVyLgoJICBGaXhlcyAjNTk3NTUwCgoyMDA5LTEwLTE1IDEyOjE2OjA1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIGRvY3M6IGNsYXJpZnkgcHJlc2V0IGFwaSBkb2NzCgoyMDA5LTEwLTE0IDE3OjU3OjQwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgZG9jczogZml4IGNvbnRyb2xsZXIgc2VjdGlvbnMgZG9jcwoKMjAwOS0xMC0xNCAxMDo0MDo1MCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNjM4MGQ0YiB0byA4NWQxNTMwCgoyMDA5LTEwLTE0IDEwOjE2OjMxICswMjAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogRml4IGEgZG9jdW1lbnRhdGlvbiB0eXBvCgoyMDA5LTEwLTE0IDA4OjU3OjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJICBidWlsZDogLi4uYW5kIGFkZCBtaXNzaW5nIGVuZGlmCgoyMDA5LTEwLTE0IDA4OjU3OjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJICBidWlsZDogQWxzbyBkb24ndCBydW4gbWFrZSBjaGVjay1leHBvcnRzIGlmIGRlYnVnZ2luZyBpcyBkaXNhYmxlZAoKMjAwOS0xMC0xNCAwODo1MDozMSArMDIwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJKiBNYWtlZmlsZS5hbToKCSAgYnVpbGQ6IE9ubHkgcnVuIG1ha2UgY2hlY2stZXhwb3J0cyBpZiBubyBwdWJsaWMgQVBJIHdhcyBkaXNhYmxlZAoJICBGaXhlcyBidWcgIzU5ODI5Ny4KCjIwMDktMTAtMTQgMDg6MzA6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IFJlcGxhY2UgcmVjdXJzaXZlIGdzdF9vYmplY3RfaGFzX2FuY2VzdG9yKCkgd2l0aCBhbiBpdGVyYXRpdmUgdmVyc2lvbgoJICBUaGlzIGlzIHNsaWdodGx5IG1vcmUgZWZmaWNpZW50IGJlY2F1c2UgdGhlIGNvbXBpbGVyIGNhbid0IGRvIHRhaWwKCSAgcmVjdXJzaW9uIGhlcmUgYW5kIGhhcyB0byBrZWVwIGFsbCBzdGFjayBmcmFtZXMuCgkgIE5vdCB0aGF0IGVmZmljaWVuY3kgaXMgdGhhdCBpbXBvcnRhbnQgaGVyZSBidXQgSSBhbHJlYWR5IGhhZAoJICB0aGUgaXRlcmF0aXZlIHZlcnNpb24gc29tZXdoZXJlIGVsc2UgYW5kIGJvdGggYXJlIGVhc3kgdG8gcmVhZC4KCjIwMDktMTAtMTQgMDg6Mjk6MzIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IEFkZCBzaW1wbGUgdW5pdCB0ZXN0IGZvciBnc3Rfb2JqZWN0X2hhc19hbmNlc3RvcigpCgoyMDA5LTEwLTEzIDE5OjEyOjUwICswMzAwICBUb21taSBNecO2aMOkbmVuIDxleHQtdG9tbWkuMS5teW9oYW5lbkBub2tpYS5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IGZpeCB0aW1lc3RhbXAgY29tcGFyaXNzaW9uLCBGaXhlcyAjNTk3NDA3CgoyMDA5LTEwLTEyIDIxOjUxOjU1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIGNoZWNrOiBEaXNhYmxlIHRoZSB0ZXN0X2ZhaWxfYWJzdHJhY3RfbmV3KCkgdGVzdCBlbnRpcmVseSBvbiBPUy9YCgkgIEZpeGVzIGEgY29tcGlsZXIgd2FybmluZyBmcm9tIHRoZSBmdW5jdGlvbiBiZWluZyBjb21waWxlZCBidXQgbm90CgkgIHVzZWQuCgoyMDA5LTEwLTEyIDE0OjU3OjM1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgZGVidWc6IE1hcmsgdGhlIEdTVF9QT0xMIHN5bWJvbCBhcyBleHRlcm4gdG8gYXZvaWQgbXVsdGlwbHktZGVmaW5lZCBlcnJvcgoKMjAwOS0xMC0xMiAxNDo0NzozMCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJICBVcGRhdGUgY29tbW9uIHRvIDYzODBkNGIzNzBmMDc4ZjBjY2E3MjQwNDI4ZWE5ZjY2Mzk1NzFmZjUKCjIwMDktMTAtMTIgMTQ6MjQ6MDQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJICBnc3Rwb2xsOiBNYWtlIHRoZSBuZXcgR1NUX1BPTEwgZGVidWcgY29tcGxldGVseSBwcml2YXRlCgkgIE1ha2UgdGhlIEdTVF9QT0xMIGRlYnVnIGNhdGVnb3J5IHN5bWJvbCBwcml2YXRlIHRvIGxpYmdzdHJlYW1lciwgYXMKCSAgdGhlcmUgc2hvdWxkIGJlIG5vIGV4dGVybmFsIHVzZXJzIG9mIGl0LgoKMjAwOS0xMC0xMiAxNDoyMjozNCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICBjaGVja3M6IERpc2FibGUgYSBmYWlybHkgc2lsbHkgZ3N0b2JqZWN0IHRlc3Qgb24gT1MvWAoJICBUaGlzIHRlc3QgdXNlZCB0byBTSUdCVVMgb24gT1MvWCBidXQgbm93IFNJR1NFR1YncyBpbnN0ZWFkIG9uCgkgIFNub3cgTGVvcGFyZC4gSXQncyBub3Qgd29ydGggdGhlIGVmZm9ydCB0byBmaWd1cmUgb3V0IHdoaWNoIHBsYXRmb3JtCgkgIHNob3VsZCBwcm9kdWNlIHdoaWNoIGVycm9yIGZvciB3aGF0IGlzIGZ1bmRhbWVudGFsbHkgYSBwcmV0dHkgc2lsbHkKCSAgdGVzdCwgc28ganVzdCBkaXNhYmxlIGl0IG9uIE9TL1gKCjIwMDktMTAtMTIgMTM6NTA6NTEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmM6CgkgIGxpYnMvZ3N0L2NoZWNrOiBNYWtlIHdyaXRpbmcgdGhyZWFkc2FmZS4gQmFja3BvcnRlZCBmcm9tIGxpYmNoZWNrIHRydW5rCgoyMDA5LTEwLTEyIDEzOjQ5OjM1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfZXJyb3IuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbGlzdC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbXNnLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcHJpbnQuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3N0ci5jOgoJICBsaWJzL2dzdC9jaGVjazogUnVuIGdzdC1pbmRlbnQgb24gbGliY2hlY2suCgoyMDA5LTEwLTEyIDEyOjAyOjM0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBnc3RwbHVnaW5sb2FkZXI6IERvbid0IHdhaXQgZm9yZXZlciBvbiBnc3RfcG9sbF93YWl0LgoJICBUaGlzIGFsbG93cyB0aGUgbWFjb3N4IHZlcnNpb25zIHRvIHByb3Blcmx5IGVycm9yIG91dCB3aGVuIGZkcyBhcmUgY2xvc2VkLgoJICBUaGlzIGlzIG9ubHkgYSB0ZW1wb3JhcnkgZml4IHVudGlsIHRoZSBwbHVnaW5sb2FkZXIgaXMgc3dpdGNoZWQgdG8gbm90CgkgIHVzZSBHc3RQb2xsIGJ1dCBHSU9DaGFubmVscy4KCjIwMDktMTAtMTIgMTI6MDE6NTkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBnc3Rwb2xsOiBPbmx5IHRha2UgaW50byBhY2NvdW50IGFjdGl2ZSBmZHMKCSAgVGhpcyBpcyBuZWVkZWQgc28gdGhhdCBzZWxlY3QgcHJvcGVybHkgZXJyb3JzIG91dCBvbiBtYWNvc3ggKHNpZ2gpCgoyMDA5LTEwLTEyIDEwOjA3OjAzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgZ3N0cG9sbDogQWRkIHNvbWUgZGVidWdnaW5nIHN0YXRlbWVudHMKCjIwMDktMTAtMTIgMTA6MDE6MDEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBnc3Rwb2xsOiBVc2UgdGhlIGVycm9yIGZkc2V0IHdoZW4gdXNpbmcgc2VsZWN0L3BzZWxlY3QuCgkgIFRoaXMgaXMgbmVlZGVkIHRvIHByb3Blcmx5IGRldGVjdCBmZHMgdGhhdCBhcmUgY2xvc2VkIG9yIHRoYXQgZ290CgkgIGFuIGVycm9yCgoyMDA5LTEwLTEyIDA5OjUwOjQ2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgZ3N0cG9sbDogRG9uJ3QgdXNlIHBvbGwgb24gc3lzdGVtcyB3aXRoIGJyb2tlbiBwb2xsCgoyMDA5LTEwLTEyIDA5OjUwOjAwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGdzdDogQWRkIGRlYnVnZ2luZyBjYXRlZ29yeSBHU1RfUE9MTCBmb3IgZ3N0cG9sbAoKMjAwOS0xMC0xMiAwOTo0Nzo1OSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlLmFjOiBEZXRlY3QgYnJva2VuIHBvbGwoKQoKMjAwOS0xMC0wOSAxNzo0NDoyOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogbGV0cyBrZWVwIC0xIGZvciBzZWdtZW5zdCBhcyB0aGV5IGFyZSBndWludDY0IGFuZCBub3QgR3N0Q2xvY2tUaW1lCgoyMDA5LTEwLTA5IDE3OjExOjI3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB1c2UgR1NUX0NMT0NLX1RJTUVfTk9ORSBhbmQgR1NUX0NMT0NLX1RJTUVfSVNfVkFMSUQgbW9yZQoKMjAwOS0xMC0wOCAyMzoxMDo0MCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IEZpeCB2YWxncmluZCB3YXJuaW5ncyBieSB6ZXJvaW5nIHBhZGRpbmcgYnl0ZXMuCgoyMDA5LTEwLTA4IDE3OjE5OjM4ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSAgY2hlY2s6IEhvcGVmdWxseSBmaXggYW4gJ21heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQnIHdhcm5pbmcgb24gT1MvWAoKMjAwOS0xMC0wOCAxNjoyMTo0NSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5Y2h1bmtzOiBGaXggYSBkZWJ1ZyBmb3JtYXQgc3RyaW5nIGhhcmRlciB0byBzYXRpc2Z5IE9TL1gncyBnY2MuCgoyMDA5LTEwLTA4IDE2OjA1OjA4ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnljaHVua3M6IEZpeCBmb3JtYXQgc3RyaW5nIGZvciBkZWJ1ZyBlcnJvciBtZXNzYWdlLgoKMjAwOS0xMC0wOCAxNToyMTo0OCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IE1vdmUgc3RkaW4gYW5kIHN0ZG91dCBvdXQgb2YgaGFybSdzIHdheQoJICBJbiB0aGUgcGx1Z2luIGxvYWRlciBzdWJwcm9jZXNzLCBtb3ZlIHN0ZGluIGFuZCBzdGRvdXQgdG8gbmV3IGZkJ3MKCSAgc28gdGhhdCBwbHVnaW5zIHByaW50aW5nIHRoaW5ncyBkdXJpbmcgcGx1Z2luIGluaXQgb3IgKCpnYXNwKikKCSAgcG9zc2libHkgcmVhZGluZyBmcm9tIHN0ZGluIGRvbid0IGludGVyZmVyZSB3aXRoIHRoZSBkYXRhIHNlbnQgdG8KCSAgYW5kIGZyb20gdGhlIHBhcmVudC4KCjIwMDktMTAtMDggMTE6MTc6MTQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgcGx1Z2luIGRvY3M6IEFkZCBHU1RfUExVR0lOX1NDQU5ORVIgZW52IHZhciB0byB0aGUgaW5zcGVjdCBlbnZpcm9ubWVudAoKMjAwOS0xMC0wOCAxMDo1OToxNSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAzN2Y4OThiIHRvIGEzZTNjZTQKCjIwMDktMTAtMDggMTA6Mzk6MjggKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSAgZ2l0aWdub3JlczogSWdub3JlIHRoZSBieXRld3JpdGVyIGNoZWNrIGJpbmFyeQoKMjAwOS0xMC0wOCAxMDozNjo1NiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBGaXggZXJyb3IgaGFuZGxpbmcgaW4gdGhlIHJlZ2lzdHJ5IGxvYWRlcgoJICBXaGVuIHRoZSBwbHVnaW4tc2Nhbm5lciBsb2FkIGZhaWxzIChiZWNhdXNlIHRoZSBoZWxwZXIgY2FuJ3QgYmUKCSAgc3Bhd25lZCksIG1ha2Ugc3VyZSB0byBsb2FkIHRoZSBwbHVnaW4gdGhhdCBmYWlsZWQgaW4tcHJvY2Vzcywgc28KCSAgdGhhdCBhbGwgcGx1Z2lucyBkbyBnZXQgbG9hZGVkLgoKMjAwOS0xMC0wOCAxMDoyNjoyNyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBjaGVjazogRml4IHRlc3QgcnVuIGluIHRlc3RzL2V4YW1wbGVzL21hbnVhbAoJICBBZGQgdGhlIEdTVF9QTFVHSU5fU0NBTk5FUiBlbnYgdmFyIHRvIHRoZSBjaGVjayBlbnZpcm9ubWVudCBoZXJlIHRvbwoJICBzbyB0aGF0IGl0IGRvZXNuJ3QgZmFpbCB3aGVuIG5vIGluc3RhbGxlZCBzY2FubmVyIGlzIGF2YWlsYWJsZS4KCjIwMDktMTAtMDggMDk6MzQ6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZ3N0aW5mbzogYWRkIGJhY2sgZml4IHRoYXQgc2hvdWxkbid0IGhhdmUgYmVlbiByZXZlcnRlZAoKMjAwOS0xMC0wOCAxMDo0Nzo0NCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogbW9yZSBxdWV1ZSBvcHRpbWl6YXRpb25zCgkgIFNwbGl0IGdzdF9xdWV1ZV9sb2NrZWRfZW5xdWV1ZSgpIGludG8gdmFyaWFudCBmb3IgYnVmZmVyIGFuZCBldmVudCB0byBnZXQgcmlkIG9mCgkgIHRoZSBpZigpIGFuZCBtYWtlIHRoZSBjb2RlIG1vcmUgcmVhZGFibGUgKGNvbnN0YW50IGJvb2xlYW4gcGFyYW1ldGVycyBhcmUgbmV2ZXIKCSAgbmljZSkuIFJlbW92ZXMgdGhlIGlmIChpdGVtKSBjaGVja3MgYXMgd2UgZGVyZWZlcmVuY2UgdGhlIHBvaW50ZXIgYmVmb3JlIGFueXdheS4KCSAgQWxzbyBhcHBseSB0aGUgc2FtZSBpZGVhIG9mIHJldXNpbmcgdGhlIHByZXZpb3VzIGtub3dsZWRnZSBpbgoJICBnc3RfcXVldWVfbG9ja2VkX2RlcXVldWUgdG8gcmVtb3ZlIG1vcmUgdHlwZSBjaGVja3MuCgoyMDA5LTEwLTA4IDEwOjUxOjQ5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogc3BsaXQgZ3N0X211bHRpX3F1ZXVlX2l0ZW1fbmV3CgkgIFNwbGl0IGdzdF9tdWx0aV9xdWV1ZV9pdGVtX25ldyBpbnRvIGJ1ZmZlciBhbmQgZXZlbnQgdmFyaWFudCB0byBtYWtlIHNhdmUgYW4gaWYKCSAgYW5kIG1ha2UgY29kZSBtb3JlIHJlYWRhYmxlLgoKMjAwOS0xMC0wOCAwODo1NTo1OSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBwbHVnaW5zL2dzdGZpbGVzcmM6IE1ha2UgYSBmYXN0LXBhdGggZm9yIGxlbmd0aCA9PSAwIGJ1ZmZlciBjcmVhdGlvbi4KCSAgSWYgdGhlIHJlcXVlc3RlZCBsZW5ndGggaXMgMCwgd2UgZG9uJ3QgbmVlZCB0byByZWFkIGFueXRoaW5nIGZyb20gdGhlIGZpbGUuCgoyMDA5LTEwLTA4IDA4OjU1OjIzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkgIGdzdC9jaGVjay9jb25zaXN0ZW5jeWNoZWNrZXI6IENoZWNrIHR5cGUgb2YgbWluaW9iamVjdCBpbiBwcm9iZQoKMjAwOS0xMC0wOCAwODo1Mzo1NCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgZ3N0L2Jhc2UvYmFzZXNpbms6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnQuCgkgIFRoZSBjb2RlIHdhcyBwcmV2aW91c2x5OgoJICAqIGNoZWNraW5nIGlmIHJldCB3YXMgIT0gT0sKCSAgKiAuLiBidXQgaWYgaXQgd2FzIEZMT1dfU1RFUCwgc3dpdGggaXQgdG8gT0sKCSAgKiAuLiBhbmQgdGhlbiBub3QgdXNpbmcgcmV0CgkgIEluc3RlYWQgd2UganVzdCBtYWtlIGl0IG1vcmUgY29tcGFjdCBieSBjaGVja2luZyBpZiBpdCdzIE9LIG9yIFNURVAuCgoyMDA5LTEwLTA4IDA4OjUzOjI2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnQuCgkgIG9iamVjdCBpcyBubyBsb25nZXIgdXNlZCBhZnRlciB0aGF0IGxpbmUKCjIwMDktMTAtMDggMDg6NTI6MTggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0aW5kZXguYzoKCSAgZ3N0aW5kZXg6IE1ha2Ugc3VyZSB3cml0ZXIgaXMgbm9uLU5VTEwuCgkgIEZpeGVzIHRoZSBOVUxMIGRlcmVmZXJlbmNlIGEgZmV3IGxpbmVzIGxvd2VyICh3aGVyZSBpdCBnZXRzIHRoZSBvYmplY3QgdHlwZSkuCgoyMDA5LTA5LTI5IDA4OjEzOjQwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RidWZmZXJzdHJlc3MuYzoKCSAgYmVuY2htYXJrczogQ2xlYW4gdXAgZ3N0YnVmZmVyc3RyZXNzLgoKMjAwOS0xMC0wOCAwMjo0MjoxNiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy9jb21wbGV4aXR5LmM6CgkqIHRlc3RzL2JlbmNobWFya3MvbWFzcy1lbGVtZW50cy5jOgoJICBiZW5jaG1hcmtzOiBGaXggdGhlIGNvbXBsZXhpdHkgYW5kIG1hc3MtZWxlbWVudHMgYmVuY2htYXJrcwoKMjAwOS0xMC0wOCAwMjoyMDo1MSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSAgY2hlY2tzOiBGaXggc3RyaW5nIGxlYWtzIGluIHRoZSBuZXcgY2hpbGRwcm94eSB0ZXN0CgoyMDA5LTEwLTA4IDAyOjAzOjA4ICswMTAwICBKYW4gU2NobWlkdCA8amFuLnNjaG1pZHRAc3VuLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiBJZ25vcmUgYW4gZW1wdHkgZGVwZW5kZW5jeSBsaXN0LgoJICBJZiBhIHBsdWdpbiByZWdpc3RlcnMgYW4gZW1wdHkgZGVwZW5kZW5jeSBzZXQsIGp1c3QgaWdub3JlIGl0IHJhdGhlcgoJICB0aGFuIHNlcmlhbGlzaW5nIGFuZCBjaGVja2luZyBhbiBlbXB0eSBzZXQuCgoyMDA5LTEwLTA4IDAyOjAxOjU0ICswMTAwICBKYW4gU2NobWlkdCA8amFuLnNjaG1pZHRAc3VuLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rczogRml4IG9mZi1ieS1vbmUgZXJyb3IuIEltcHJvdmUgZGVidWcuCgkgIEZpeCBhbiBvZmYtYnktb25lIGVycm9yIGluIHRoZSBzaXplIGd1YXJkIGZvciB1bnBhY2tfZWxlbWVudCwgYW5kCgkgIGltcHJvdmUgdmFyaW91cyBkZWJ1ZyBzdGF0ZW1lbnRzIGluIHRoZSBmYWlsdXJlIHBhdGhzLgoJICBBbHNvLCBzd2FwIHNvbWUgZ19uZXcwIHRvIGdfbWFsbG9jMCBmb3IgdGhlIGZ1biBvZiBpdC4KCjIwMDktMTAtMDcgMTY6MDI6NTggLTA3MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEBzb25nYmlyZG5lc3QuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBmaWxlc2luazogVXNlIF93Zm9wZW4gb24gd2luMzIgdG8gb3BlbiBmaWxlcyB3aXRoIG5vbi1hc2NpaSBmaWxlbmFtZXMgY29ycmVjdGx5LgoKMjAwOS0xMC0wNyAyMzozMToyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJICBkb2NzOiBmaXggU2luY2U6IHRhZ3MgaW4gZG9jcyBmb3IgbmV3bHktYWRkZWQgQVBJCgoyMDA5LTEwLTA4IDAwOjA4OjQ3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiByZXZlcnQgdHdvIG9mIHRoZSBjaGFuZ2VzCgkgIEl0IG9ubHkgbmVlZGVkIGZvciB0aGUgbm9uIGNvbnN0YW50IHN0cmluZy4KCjIwMDktMTAtMDcgMjM6MzY6NDUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHVzZSBhICIlcyIgZm9ybWF0IHN0cmluZyB3aGVuIHByaW50aW5nIHRoZSBtZW1vcnkgZHVtcCBsaW5lCgkgIFdlIGtub3cgdGhhdCB0aGUgY29udGVudCBpcyBzYXZlLCBidXQgdGhlIGNvbXBpbGVyIGRvZXMgbm90LgoKMjAwOS0xMC0wNyAyMzoyMzowOCArMDMwMCAgUm9iIENsYXJrIDxyb2JAdGkuY29tPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IGRvbid0IGZvcm1hdCB0aGUgc3RyaW5nIHR3aWNlCgkgIFdlIHdlcmUgZm9ybWF0dGluZyB0aGUgc3RyaW5nIG9uY2UgYW5kIHRoZW4gcGFzc2luZyB0aGUgc3RyaW5nIGFzIGEgZm9ybWF0CgkgIHN0cmluZyB0byB0aGUgbG9nIGZ1bmN0aW9ucy4KCjIwMDktMTAtMDcgMTE6NDM6NTQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogYWRkIHZhcmlhbnRzIG9mIGdzdF9wYWRfZ2V0X2NhcHMoKSB0aGF0IGRvbid0IGNvcHkgY2Fwcy4gRml4ZXMgIzU5MDk0MQoJICBJbiBtb3N0IHBsYWNlcyBpbiBjb3JlIGFuZCBiYXNlY2xhc3NlcyB3ZSBqdXN0IG5lZWQgdGhlIGNhcHMgdG8gZG8gY2Fwcy0KCSAgaW50ZXJzZWN0aW9ucy4gSW4gdGhhdCBjYXNlIHJlZidlZCBjYXBzIGFyZSBlbm91Z2ggKG5vIG5lZWQgdG8gY29weSkuCgkgIFRoaXMgcGF0Y2ggYWxzbyBzd2l0Y2hlcyB0aGUgY29kZSB0byB1c2UgdGhlIG5ldyBmdW5jdGlvbnMuCgkgIEFQSTogZ3N0X3BhZF9nZXRfY2Fwc19yZWZlZCgpLCBnc3RfcGFkX3BlZXJfZ2V0X2NhcHNfcmVmZWQoKQoKMjAwOS0wOS0yNiAyMzo0MzozNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIHRlc3RzOiBhZGQgZ2hvc3RwYWQgdGVzdCBmb3Igc2V0dGluZyB0YXJnZXQgYWdhaW4gYWZ0ZXIgcGFkIGlzIGxpbmtlZAoKMjAwOS0wOS0yNiAyMzo0MjoyMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIHRlc3RzOiByZW1vdmUgZW1wdHkgbGluZXMgZnJvbSB3cm9uZyBpbmRlbnQgcnVuCgoyMDA5LTEwLTA3IDIwOjM4OjQ5ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGV3cml0ZXIuYzoKCSAgY2hlY2s6IEZpeCBjb21waWxhdGlvbiBvZiB0aGUgYnl0ZXdyaXRlciB0ZXN0CgoyMDA5LTEwLTA3IDE4OjA3OjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgYnl0ZSB3cml0ZXIgYW5kIHJlYWRlciBBUEkgdG8gLmRlZiBmaWxlCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyXyooKQoKMjAwOS0wOC0yMCAxNDoyNDoxOSAtMDcwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHNvbmdiaXJkbmVzdC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IGZpeCBzcGVsbGluZyBpbiBjb21tZW50CgoyMDA5LTEwLTA3IDE4OjQwOjQ2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBmbHVzaCBxdWV1ZSB1cG9uIGZhdGFsIGZsb3dyZXR1cm4gYW5kIHJlbGVhc2UgdXBzdHJlYW0gdGhyZWFkCgoyMDA5LTA5LTIyIDE1OjQ0OjMxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkgIGRhdGFxdWV1ZTogZml4IEFQSSBkb2N1bWVudGF0aW9uIHR5cG8KCjIwMDktMTAtMDcgMTg6Mzc6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgYnl0ZXdyaXRlcjogQWRkIHRvIHRoZSBkb2NzCgoyMDA5LTEwLTA1IDExOjI0OjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGV3cml0ZXIuYzoKCSAgYnl0ZXdyaXRlcjogQWRkIHVuaXQgdGVzdAoKMjAwOS0xMC0wMyAxMzozMDo1NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGJ5dGV3cml0ZXI6IEFkZCBhIGdlbmVyaWMgYnl0ZSB3cml0ZXIKCSAgRml4ZXMgYnVnICM1OTA2NjkuCgoyMDA5LTEwLTAzIDE1OjU3OjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSAgYml0cmVhZGVyL2J5dGVyZWFkZXI6IEFQSTogQWRkIGdzdF8oYml0fGJ5dGUpX3JlYWRlcl9nZXRfc2l6ZSgpCgkgIC4uLiBhbmQgR1NUXyhCWVRFfEJJVClfUkVBREVSKCkgY2FzdHMuCgoyMDA5LTEwLTAzIDEyOjM0OjU0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJICBieXRlcmVhZGVyLGJpdHJlYWRlcjogUmVtb3ZlIEZJWE1FIDAuMTEgdG8gcmVtb3ZlIG5vbi1pbmxpbmVkIGZ1bmN0aW9ucwoJICBUaGUgbm9ybWFsIGZ1bmN0aW9ucyBhcmUgYWx3YXlzIHVzZWZ1bCB0byBoYXZlIGZvciBiaW5kaW5ncywgZXNwZWNpYWxseQoJICBydW50aW1lLWNyZWF0ZWQgYmluZGluZ3MgbGlrZSBTZWVkIG9yIG5ldyBHT2JqZWN0LUludHJvc3BlY3Rpb24gYmFzZWQKCSAgUHl0aG9uIGJpbmRpbmdzLgoKMjAwOS0xMC0wNyAxNjozNjozMSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGNoZWNrOiBBdHRlbXB0IHRvIGZpeCB0eXBlLXB1bm5pbmcgd2FybmluZyBpbiB0aGUgZ3N0aXRlcmF0b3IgdGVzdAoKMjAwOS0xMC0wNyAxNjowMDoxMiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9nZHAuYzoKCSAgY2hlY2s6IE1ha2Ugc3VyZSB0byBpbml0IHRoZSBkYXRhcHJvdG9jb2wgbGliLgoJICBDYWxsIHRoZSBnc3RfZHBfaW5pdCgpIGZ1bmN0aW9uIHRvIGVuc3VyZSB0aGF0IHRoZSBkZWJ1ZwoJICBjYXRlZ29yeSBpcyBpbml0aWFsaXNlZCwgdG8gYXZvaWQgZ19jcml0aWNhbHMgd2hlbiBydW5uaW5nIHdpdGgKCSAgR1NUX0RFQlVHPTUKCjIwMDktMTAtMDcgMTU6NDc6NDUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6CgkgIGNoZWNrOiBVc2UgR1NUX0RFQlVHIGluc3RlYWQgb2YgZ19tZXNzYWdlIGluIHRoZSBnZHAgdGVzdAoKMjAwOS0xMC0wNyAxNToxNDo0NiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiBBZGQgR1NUX1BMVUdJTl9TQ0FOTkVSIGVudiB2YXIgdG8gdGhlIGNoZWNrIGVudmlyb25tZW50CgoyMDA5LTEwLTA3IDE0OjM0OjE3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogaW1wcm92ZSBwbHVnaW4gbG9hZGVyIGZhaWx1cmUgbWVzc2FnZSBmb3IgdW5pbnN0YWxsZWQgc2V0dXBzCgkgIEV2ZXJ5b25lIHJ1bm5pbmcgYW4gdW5pbnN0YWxsZWQgZ2l0IHNldHVwIGlzIGdvaW5nIHRvIHdvbmRlciBhYm91dAoJICB0aGlzIGZhaWx1cmUgbmV4dCB0aW1lIHRoZXkgdXBkYXRlLCBzbyBsZXQncyBtZW50aW9uIHRoZSBzb2x1dGlvbgoJICBpbiB0aGUgZXJyb3IgbWVzc2FnZS4KCjIwMDktMTAtMDcgMTM6NTk6NDcgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBCZWVmIHVwIHRoZSB0ZXN0IGZvciBfX3VpbnQxMjhfdCBvbiBHQ0MKCSAgR0NDIDMuNC4zIG9uIHRoZSBTUEFSQyBidWlsZGJvdCBjcmFzaGVzIHdoZW4gYWN0dWFsbHkKCSAgdXNpbmcgX191aW50MTI4X3QuIEJlZWYgdXAgdGhlIGNvbmZpZ3VyZSB0ZXN0IHRvIGRldGVjdCB0aGF0IHRoZQoJICB0eXBlIGlzIGFjdHVhbGx5IHVzYWJsZS4KCjIwMDktMTAtMDcgMDk6NTY6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICB3aW4zMjogYWRkIG5ldyBBUEkgdG8gLmRlZiBmaWxlCgkgIEFuZCBhZGQgQVBJOiBtYXJrZXIgaW4gY29tbWl0IG1lc3NhZ2UgdGhhdCB3YXMgb21pdHRlZCBpbiB0aGUgb3JpZ2luYWwKCSAgY29tbWl0OgoJICBBUEk6IGdzdF9kYXRhX3F1ZXVlX25ld19mdWxsKCkKCjIwMDktMTAtMDcgMDk6NTU6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy8uZ2l0aWdub3JlOgoJICBiZW5jaG1hcmtzOiBhZGQgYnVmZmVyc3RyZXNzIGJpbmFyeSB0byAuZ2l0aWdub3JlCgoyMDA5LTEwLTA3IDA5OjQyOjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBidW1wIEdMaWIgcmVxdWlyZW1lbnQgdG8gMi4xOAoJICBCdW1wIEdMaWIgcmVxdWlyZW1lbnQgYXMgcGVyIHRoZSByZWxlYXNlIHBsYW5uaW5nIGRvY3MuCgoyMDA5LTEwLTA3IDEwOjM3OjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgbWVzc2FnZTogd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0xMC0wNyAxMToxMjo1NyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHBhZDogZmxpcCB0aGUgR19VTkxJS0VMWQoJICBJdHMgbGlrZWx5IHRoYXQgd2UgaGF2ZSBjYXBzIGFuZCB1bmxpa2VseSAoZXJyb3IpIG90aGVyd2lzZS4KCjIwMDktMTAtMDcgMTE6MDQ6NTYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCBuZXcgcXVldWUgYXBpIHRvIHRoZSBkb2NzIHRvIGZpeCB0aGUgYnVpbGQKCjIwMDktMDktMjggMTU6MjU6MjIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgcGx1Z2lucy9tdWx0aXF1ZXVlOiBBdm9pZCBpbnN0YW5jZSBjaGVjawoJICBXZSBrbm93IGVhcmxpZXIgb24gaW4gdGhlIGNvZGUgd2hldGhlciB3ZSdyZSBoYW5kbGluZyBhbiBldmVudCBvciBhIGJ1ZmZlciwKCSAganVzdCBwYXNzIHRoYXQgaW5mb3JtYXRpb24gdGhyb3VnaC4KCSAgVGhpcyBjb21taXQgYW5kIHRoZSBwcmV2aW91cyBjb21taXQgcmVkdWNlIGluc3RydWN0aW9uIGZldGNoOgoJICAqIHdoZW4gcHVzaGluZyBidWZmZXIgKF9jaGFpbikgYnkgMTAlCgkgICogd2hlbiBwb3BwaW5nIGJ1ZmZlciAoX2xvb3ApIGJ5IDMlCgoyMDA5LTA5LTI4IDE1OjI0OjAyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIHBsdWdpbnMvbXVsdGlxdWV1ZTogQ2FjaGUgaW5wdXQvb3V0cHV0IHRpbWUsIGF2b2lkIGV4cGVuc2l2ZSBjYWxscy4KCSAgKiBDYWNoZSB0aGUgaW5wdXQvb3V0cHV0IHRpbWUKCSAgKiBPbmx5IHJlY2FsY3VsYXRlIGl0IHdoZW4gbmVlZGVkLgoJICBBdm9pZHMgNTAlIGNhbGxzIHRvIGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZQoKMjAwOS0xMC0wNyAxMDowMDowNSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWluaXQueG1sOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGJ1ZmZlcnN0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGNsb2Nrc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9sbHN0cmVzcy5jOgoJKiB0ZXN0cy9leGFtcGxlcy9sYXVuY2gvbXAzcGFyc2VsYXVuY2guYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBidWlsZDogc3ByaW50Ziwgc3NjYW5mIG5lZWQgc3RkaW8uaAoKMjAwOS0xMC0wNSAxMTo0NjozNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBjaGlsZHByb3h5OiBpbml0aWFsaXplIGd2YWx1ZSBpbiBfdmFsaXN0IGZ1bmN0aW9uLiBGaXhlcyAjNTk1NjAyCgkgIFJlZmxvdyB0aGUgY29kZSB0byBtb3ZlIGVycm9yIGhhbmRsaW5nIHRvIHRoZSBlbmQgb2YgdGhlIGZ1bmN0aW9ucy4gSW5pdGlhbGl6ZQoJICBndmFsdWUgbGlrZSB3ZSBkbyBpbiB0aGUgc2V0dGVyLiBBZGQgYSB1bml0LXRlc3QgbW9kdWxlIHdpdGggdHdvIHNpbXBsZSB0ZXN0cwoJICB0aGUgY2F0Y2hlIHRoaXMgYnVnLgoKMjAwOS0xMC0wMSAxNzozOTo0NSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHBhZDogZG9uJ3QgaW50ZXJzZWN0IHdpdGggYW55IGluIHByb3h5X3BhZF9nZXRfY2FwcwoJICBXZSBpbml0aWFsaXplIHRoZSBjYXBzIHdpdGggYW55IGFuZCBpZiBhIHBhZCBoYXMgTlVMTCBjYXBzLCBqdXN0IHNraXAgaXQgaW5zdGVhZAoJICBvZiBpbnRlcnNlY3Rpbmcgd2l0aCBhbnkuIEFsc28gYWRkIGJyYW5jaCBwcmVkaWN0aW9uIGhlcmUuCgoyMDA5LTA5LTMwIDE2OjQxOjA3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZG9jczogcmVuYW1lIGFnZ3JlZ2F0b3IgdG8gYWRkZXIgaW4gdGhlIGRvY3MuCgoyMDA5LTA5LTMwIDA5OjQ3OjIzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIG1hbjogZml4IGNvcHkgYW5kIHBhc3QgbWlzdGFrZSBmb3IgLXEgb3B0aW9uCgoyMDA5LTEwLTA3IDA5OjU0OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBFeHRlbmQgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIGFsbG93IHVzaW5nIGFuIHVuaW5zdGFsbGVkIGdzdHJlYW1lci1zaGFycAoKMjAwOS0wOS0yOCAxNToxOTo0NCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBwbHVnaW5zL211bHRpcXVldWU6IFVzZSBuZXcgR3N0RGF0YVF1ZXVlIGNvbnN0cnVjdG9yCgoyMDA5LTA5LTI4IDE1OjE4OjM3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSAgZ3N0ZGF0YXF1ZXVlOiBuZXcgY29uc3RydWN0b3Igd2hpY2ggdGFrZXMgY2FsbGJhY2tzLgoJICBUaGlzIGFsbG93cyB1cyB0byBhdm9pZCBnb2luZyB0aHJvdWdoIGdsaWIncyBzaWduYWxsaW5nIHN5c3RlbQoKMjAwOS0wOS0yOCAxMzoxOToxMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBwbHVnaW5zL211bHRpcXVldWU6IFVzZSBjYWNoZWQgdmFsdWUgaW5zdGVhZCBvZiBleHBlbnNpdmUgb2JqZWN0IGdldC4KCSAgVGhlIHRhc2sgd2lsbCBhbHdheXMgZXhpc3QgYXMgbG9uZyBhcyBpdHMgb3duZXIgKGkuZS4gdGhlIHBhZCkgYW5kIHRoYXQKCSAgb3duZXIncyBvd25lciAoaS5lLiBtdWx0aXF1ZXVlKSBleGlzdC4KCSAgUmVkdWNlcyB0aGUgbnVtYmVyIG9mIGluc3RydWN0aW9uIGZldGNoZXMgYnkgMzYlLgoKMjAwOS0wOS0yOCAxNTo0MTo1MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcGx1Z2lucy9xdWV1ZTogVXNlIHByZXZpb3VzIGtub3dsZWRnZSBvZiBkYXRhIHR5cGUgdG8gYXZvaWQgdHlwZWNoZWNrLgoJICBXZSBrbm93IHdoZXRoZXIgd2UgaGF2ZSBhIGJ1ZmZlciBvciBhbiBldmVudCwgdXNlIHRoYXQgaW5zdGVhZCBvZiBnb2luZwoJICB0cm91Z2ggdGhlIGV4cGVuc2l2ZSBHTGliIHR5cGVjaGVjay4KCSAgVGhlIG92ZXJhbGwgaW5zdHJ1Y3Rpb24gZmV0Y2ggcmVkdWN0aW9uIGludHJvZHVjZWQgYnkgdGhpcyBjb21taXQgYW5kIHRoZQoJICAyIHByZXZpb3VzIGNvbW1pdHM6CgkgICogcmVjZWl2aW5nIGEgYnVmZmVyIChfY2hhaW4pIGJ5IDIwJQoJICAqIHBvcHBpbmcgYSBidWZmZXIgKF9sb29wKSBieSAxNCUKCSAgTnVtYmVycyBhY3F1aXJlZCB0aHJvdWdoIGNhbGxncmluZCBwYXNzaW5nIDEwMDAwMCBidWZmZXJzIHRocm91Z2ggcXVldWUuCgoyMDA5LTA5LTI4IDE1OjIwOjA2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIHBsdWdpbnMvcXVldWU6IEF2b2lkIHVzZWxlc3Mgc2VnbWVudF90b19ydW5uaW5nX3RpbWUoKSBjYWxjdWxhdGlvbnMuCgkgICogQ2FjaGUgc3JjIGFuZCBzaW5rIHRpbWUKCSAgKiBVc2UgYSBib29sZWFuIHRvIGtub3cgd2hldGhlciBzcmMvc2luayB0aW1lIG5lZWQgdG8gYmUgcmVjYWxjdWxhdGVkCgkgIEF2b2lkcyA1MCUgY2FsbHMgdG8gZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKCkKCjIwMDktMDktMjggMTM6MjE6MDcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHBsdWdpbnMvcXVldWU6IEp1c3QgY2FzdCB0byB0aGUgb2JqZWN0IHBhcmVudCBpbnN0ZWFkIG9mIHR5cGVjaGVja2luZy4KCjIwMDktMDktMjMgMTY6MTk6MzIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGJ1ZmZlcnN0cmVzcy5jOgoJICBiZW5jaG1hcms6IE5ldyBiZW5jaG1hcmsgZm9yIHRlc3RpbmcgY29udGVudGlvbiB3aGVuIGNyZWF0aW5nIGJ1ZmZlcnMKCjIwMDktMDktMjMgMTY6MTc6MDkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IERvbid0IGFjdGl2YXRlIHRyYWNpbmcgaWYgbm90IHJlcXVlc3RlZC4KCjIwMDktMTAtMDcgMDg6Mzc6MDUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSAgdGVzdHM6IGluaXQgbW9yZSB2YXJpYWJsZXMgdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZyBvbiBvc3gKCSAgSW5pdCB2YXJpYWJsZSB0byBhdm9pZCBjb21waWxlciB3YXJuaW5nIGFuZCBtYWtlIHRoZSBidWlsZCBib3QgaGFwcHkKCSAgKHRoZSBjb21waWxlciBtb3N0IGxpa2VseSBjb21wbGFpbnMgYWJvdXQgdGhpcyBiZWNhdXNlIGl0IGRvZXNuJ3Qga25vdwoJICBoZXJlIHRoYXQgZmFpbF91bmxlc3Mgd2lsbCBhYm9ydC9leGl0IGluIHRoZSBwYXRoIHdoZXJlIGl0IGZhaWxzKS4KCjIwMDktMDktMjYgMTE6NDM6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEltcHJvdmUgaXRlcmF0ZSBpbnRlcm5hbCBsaW5rcyBmdW5jdGlvbgoJICBQYWRzIGhhdmUgdGhlaXIgR3N0U2luZ2xlUXVldWUgc3RvcmVkIGFzIGVsZW1lbnQgcHJpdmF0ZSBkYXRhCgkgIHNvIHRoZXJlJ3Mgbm8gbmVlZCB0byBpdGVyYXRlIG92ZXIgdGhlIGxpc3Qgb2Ygc2luZ2xlIHF1ZXVlcwoJICBldmVyeSB0aW1lLiBBbHNvIGV2ZXJ5IHBhZCBvbmx5IGhhcyBhIHNpbmdsZSBpbnRlcm5hbCBsaW5rIHNvCgkgIHVzZSBhIHNpbmdsZSBpdGVyYXRvciBpbnN0ZWFkIG9mIGEgY29tcGxleCBjdXN0b20gaXRlcmF0b3IuCgkgIFNldCB0aGUgZWxlbWVudCBwcml2YXRlIGRhdGEgb2YgdGhlIHBhZCB0byBOVUxMIHdoZW4gZnJlZWluZyB0aGUKCSAgc2luZ2xlIHF1ZXVlLgoKMjAwOS0wOS0xNyAxNjozMDo0MyAtMDQwMCAgSm9oYW4gQmlsaWVuIDxqb2JpQGxpdGwuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGludHJvc3BlY3Rpb246IEFkZCBhbm5vdGF0aW9ucyBmb3IgZ3N0X2VsZW1lbnRfcXVlcnlfe2R1cmF0aW9uLHBvc2l0aW9ufQoJICBGaXhlcyBidWcgIzU5NTUxMS4KCjIwMDktMTAtMDUgMDA6MTE6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJICBieXRlcmVhZGVyOiBhZGQgaW5saW5lIHZlcnNpb24gb2YgZ3N0X2J5dGVfcmVhZGVyX3NraXAKCjIwMDktMTAtMDcgMDA6NDc6NTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9uIGZpbGVzIGZvciBuZXcgYW5kIGNoYW5nZWQgc3RyaW5ncwoKMjAwOS0wOS0yOCAyMjo0Mzo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogdGFrZSBsb2NrcyBhcm91bmQgc21hbGxlciBzZWN0aW9uCgkgIFdlIGRvbid0IG5lZWQgdGhlIGhvbGQgdGhlIHByb3h5IG11dGV4IGxvY2tlZCBmb3IgZ2V0dGluZyB0aGUgaW50ZXJuYWwgcGFkIGFuZAoJICBmb3IgbGlua2luZyB0aGUgbmV3IHRhcmdldCBwYWQgd2hlbiB3ZSByZXRhcmdldC4gU28gdGFrZSB0aGUgbG9jayBhIGxpdHRsZSBsYXRlcgoJICBhbmQgcmVsZWFzZSBpdCBlYXJsaWVyLgoJICBGaXhlcyAjNTk2MzY2CgoyMDA5LTEwLTA0IDE5OjUxOjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJICB0ZXN0czogaW5pdCB2YXJpYWJsZSB0byBhdm9pZCBjb21waWxlciB3YXJuaW5nIG9uIG9zeAoJICBJbml0IHZhcmlhYmxlIHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmcgYW5kIG1ha2UgdGhlIGJ1aWxkIGJvdCBoYXBweQoJICAodGhlIGNvbXBpbGVyIG1vc3QgbGlrZWx5IGNvbXBsYWlucyBhYm91dCB0aGlzIGJlY2F1c2UgaXQgZG9lc24ndCBrbm93CgkgIGhlcmUgdGhhdCBmYWlsX3VubGVzcyB3aWxsIGFib3J0L2V4aXQgaW4gdGhlIHBhdGggd2hlcmUgaXQgZmFpbHMpLgoKMjAwOS0xMC0wMyAyMTowODo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0eG1sLmM6CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIGdzdDogcmVtb3ZlIG1vcmUgdW5uZWNlc3NhcnkgY2FzdCB3aGVuIHVzaW5nIGdfc2lnbmFsXyooKQoKMjAwOS0xMC0wMyAyMDo0OTo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIGRhdGFxdWV1ZSwgZWxlbWVudHM6IGF2b2lkIHVubmVjZXNzYXJ5IHJ1bnRpbWUgdHlwZSBjaGVja3MKCjIwMDktMTAtMDUgMTY6NDE6NTAgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IFVwZGF0ZSB0aGUgcmVsZWFzZSBzY3JpcHQKCSAgUmVtb3ZlIG9sZCBjcnVmdCBmcm9tIHRoZSByZWxlYXNlIHNjcmlwdCwgYW5kIGNoYW5nZSBzb21lIENWUwoJICByZWZlcmVuY2VzIHRvIGVxdWl2YWxlbnQgZ2l0IGNvbW1hbmRzCgoyMDA5LTEwLTA0IDE0OjMwOjM0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogQWRkIGEgbWFnaWMgbnVtYmVyIGFuZCBtYXhpbXVtIHNpemUgbGltaXQuCgkgIEd1YXJkIGFnYWluc3QgYSBob3N0aWxlIGNoaWxkIHByb2Nlc3MgdGhhdCBzZW5kcyBib2d1cyBkYXRhCgkgIGR1ZSB0byBtZW1vcnkgY29ycnVwdGlvbiBieSBhZGRpbmcgYSBtYWdpYyBudW1iZXIgdG8gZWFjaCBwYWNrZXQsCgkgIGFuZCBsaW1pdCB0aGUgbWF4aW11bSBzaXplIG9mIGFueSBtZXNzYWdlIHRvIDMyTUIKCjIwMDktMDItMDkgMTM6MzM6MDcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcmVnaXN0cnk6IEFsc28gY2hlY2sgdGhlIGJpbmFyeSByZWdpc3RyeSBjaHVuayB2ZXJzaW9uIG9mIHRoZSBjaGlsZC4KCSAgV2hlbiB0cnlpbmcgdG8gZmluZCBhIGZ1bmN0aW9uIHBsdWdpbi1zY2FubmVyLCBpbmNsdWRlIGEgY2hlY2sgb24gdGhlCgkgIHZlcnNpb24gb2YgdGhlIGJpbmFyeSByZWdpc3RyeSBjaHVua3MgaXQgc2VuZHMsIHRvIG1ha2Ugc3VyZSBpdCdzCgkgIHdoYXQgd2UgdW5kZXJzdGFuZC4KCjIwMDktMDItMDYgMDk6NDk6MzQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkgIHJlZ2lzdHJ5OiBTdXBwb3J0IGluc3RhbGxlZC91bmluc3RhbGxlZCBwbHVnaW4tc2Nhbm5lciBoZWxwZXIKCSAgQWRkIGEgc2ltcGxlIHZlcnNpb24gY2hlY2sgd2hlbiBzdGFydGluZyB0aGUgcGx1Z2luLXNjYW5uZXIgc28gd2UgY2FuCgkgIHZlcmlmeSB3ZSdyZSB0YWxraW5nIHRvIG9uZSB0aGF0IHRhbGtzIHRoZSBzYW1lIGxhbmd1YWdlLgoJICBGaXJzdCB0cnkgYSBwbHVnaW4tc2Nhbm5lciBpbiB0aGUgaW5zdGFsbGVkIHBhdGgsIHRoZW4gdHJ5IG9uZSB2aWEgdGhlCgkgIEdTVF9QTFVHSU5fU0NBTk5FUiBlbnYgdmFyIGlmIHRoYXQgZG9lc24ndCB3b3JrLgoJICBVcGRhdGUgdGhlIHVuaW5zdGFsbGVkIHNjcmlwdC4KCSAgSW5zdGFsbCB0aGUgcGx1Z2luLXNjYW5uZXIgdG8gdGhlIGxpYmV4ZWMgZGlyCgoyMDA5LTAxLTMwIDE0OjE4OjEzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBSZW1vdmUgY2hlY2tpbmcgZm9yIGFuZCBtZW50aW9ucyBvZiBmb3JrIHdoZXJlIHBvc3NpYmxlLgoJICBXZSBubyBsb25nZXIgdXNlIGZvcmsoKSBkaXJlY3RseSwgaW5zdGVhZCB1c2luZyBnbGliJ3Mgc3Bhd24KCSAgZnVuY3Rpb25hbGl0eSwgc28gZG9uJ3QgY2hlY2sgZm9yIGl0LCBhbmQgZG9uJ3QgdXNlIGl0IGluIHRoZQoJICBkb2N1bWVudGF0aW9uIG5vdGVzLgoKMjAwOS0wMS0zMCAxMzowNjoxMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIFJlLWVuYWJsZSBhbmQgZml4IGRpc2FibGVkIGJpdCBvZiB0aGUgcmVnaXN0cnkgdGVzdAoKMjAwOS0wMS0zMCAxMzowNDo1MiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIE9ubHkgbG9hZCB0aGUgcmVnaXN0cnkgY2FjaGUgb25jZSBwZXIgcHJvY2Vzcy4KCSAgV2hlbiB1cGRhdGluZyB0aGUgcmVnaXN0cnksIHdlIGRvbid0IG5lZWQgdG8gcmUtcmVhZCB0aGUgcmVnaXN0cnkgY2FjaGUKCSAgYW5kIHdhc3RlIHRpbWUgcmVwbGFjaW5nIGFsbCBvdXIgZXhpc3RpbmcsIGhvcGVmdWxseSBpZGVudGljYWwsIHBsdWdpbnMKCSAgYW5kIGZlYXR1cmVzIHRoYXQgd2UncmUgYWJvdXQgdG8gcmUtc2NhbiBhbnl3YXkuCgoyMDA5LTAxLTI5IDEzOjIyOjE0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBBZGQgc29tZSBtb3JlIGRlYnVnIHRoZSByZWdpc3RyeS4KCSAgQWRkIHRoZSBmdWxsIHNldCBvZiBkZWJ1ZyBhYm91dCB3aHkgaXQncyBkZWNpZGVkIHRoYXQgYSBnaXZlbiBwbHVnaW4gaXMKCSAgc3RhbGUgb3Igbm90LCBhbmQgaW5jbHVkZSB0aGUgcGx1Z2luIG5hbWUgd2hlbiBmaW5hbGl6aW5nIGl0LgoKMjAwOS0wMS0yMyAyMToxNTo0MyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBBZGQgcmVzdGFydGluZyBvZiB0aGUgcGx1Z2luIGxvYWRlciBhbmQgYmxhY2tsaXN0aW5nIG9mIGJyb2tlbiBmaWxlcwoKMjAwOS0wMS0yMyAxNTo0NzowOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBQbHVnaW4gbG9hZGVyIHBoYXNlIDIKCSAgcGhhc2UgMiAtIG1ha2UgdGhlIHBsdWdpbiBsb2FkZXIgcmVjZWl2ZSB0aGUgbGlzdCBvZiBwbHVnaW5zIHRvIGxvYWQgYW5kCgkgIHNlbmQgYmFjayB0aGUgcmVzdWx0cyBhc3luY2hyb25vdXNseSwgc28gd2UgZG9uJ3QgY29udGV4dCBzd2l0Y2ggYmFjawoJICBhbmQgZm9ydGggc28gbXVjaC4KCjIwMDktMDMtMTQgMjM6MDc6NDAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmg6CgkqIGxpYnMvZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9oZWxwZXJzLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2hlbHBlcnMvcGx1Z2luLXNjYW5uZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICByZWdpc3RyeTogQWRkIHJlZ2lzdHJ5IGhlbHBlciBwaGFzZSAxCgkgIFBoYXNlIDEgb2YgYWRkaW5nIHRoZSByZWdpc3RyeSBzY2FuIGhlbHBlcgoKMjAwOS0wOS0xNCAyMzozMToxMCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IFJlYXJyYW5nZSBzb21lIHRoaW5ncy4KCSAgUHJlcGFyZSB0byBsYW5kIHRoZSBleHRlcm5hbCBwbHVnaW4gaGVscGVyIHByb2Nlc3MKCjIwMDktMTAtMDYgMTk6NDE6MzggKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudCAtPiAwLjEwLjI1LjEKCj09PSByZWxlYXNlIDAuMTAuMjUgPT09CgoyMDA5LTEwLTA1IDEyOjU3OjAzICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkgIFJlbGVhc2UgMC4xMC4yNQoKMjAwOS0xMC0wNSAxMjo0MTo0MiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA5LTEwLTAxIDE2OjI0OjUyICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICAwLjEwLjI0LjQgcHJlLXJlbGVhc2UKCjIwMDktMDktMzAgMTU6NTI6MzMgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBsaWJnc3RjaGVjazogRG9uJ3QgdXNlIGNoYXJhY3RlciBjbGFzc2VzIGluIHNlZCBleHByZXNzaW9ucwoJICBBcHBhcmVudGx5IHRoZSBzZWQgdGhhdCBzaGlwcyBvbiBTb2xhcmlzIDEwIGRvZXNuJ3Qgc3VwcG9ydCBjaGFyYWN0ZXIKCSAgY2xhc3NlcyBsaWtlIFs6YWxudW06XSwgc28gZG9uJ3QgdXNlIHRoZW0uIFdlIGRvbid0IG5lZWQgdGhlbSBmb3IgdGhlCgkgIHN5bWJvbCBuYW1lcyB0aGF0IGFyZSBiZWluZyBleHRyYWN0ZWQgYW55d2F5LgoJICBBbHNvLCB1c2UgJChTRUQpIGluc3RlYWQgb2YgJ3NlZCcKCSAgRml4ZXM6ICM1OTY4NzcKCjIwMDktMDktMTcgMDE6MjA6MDMgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICAwLjEwLjI0LjMgcHJlLXJlbGVhc2UKCjIwMDktMDktMTUgMDk6NDE6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBGaXggR01QIHNjYWxpbmcgdW5pdCB0ZXN0CgkgIEdNUCBvbmx5IHVzZXMgInVuc2lnbmVkIGxvbmcgaW50Iiwgd2hpY2ggaXMgMzIgYml0CgkgIG9uIDMyIGJpdCBhcmNoaXRlY3R1cmVzIGFuZCBjYW4ndCBob2xkIGEgZ3VpbnQ2NC4KCSAgVGhpcyByZXN1bHRlZCBpbiBmYWxzZSB1bml0IHRlc3QgZmFpbHVyZXMgb24gMzIgYml0IGFyY2hpdGVjdHVyZXMuCgkgIEZpeGVzIGJ1ZyAjNTk1MTMzLgoKMjAwOS0wOS0xNCAxMjo0NzoyNiAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBGaXggb3V0LW9mLXRyZWUgYnVpbGQKCjIwMDktMDktMTQgMTQ6MDc6NTUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIGRvY3M6IEdTVF9NRVNTQUdFX1NUUkVBTV9TVEFUVVMgaXMgaW1wbGVtZW50ZWQgbm93YWRheXMuCgkgIERvY3Mgd2VyZSBzdGlsbCBtZW50aW9uIGl0IGFzICJub3QgeWV0IGltcGxlbWVudGVkIi4KCjIwMDktMDktMTIgMTM6NTI6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgaW50cm9zcGVjdGlvbjogQnVpbGQgcGtnY29uZmlnIGJlZm9yZSBhbGwgbGlicmFyaWVzIGFuZCBzZXQgUEtHX0NPTkZJR19QQVRICgkgIFRoaXMgd2F5IGctaXItc2Nhbm5lciBjYW4gZmluZCB0aGUgZ3N0cmVhbWVyLTAuMTAgcGtnLWNvbmZpZyBmaWxlLgoKMjAwOS0wOS0xMiAxMzo1MToyOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIGludHJvc3BlY3Rpb246IERvbid0IHR5cGVkZWYgR3N0VGFnTGlzdCB0byBHc3RTdHJ1Y3R1cmUgZm9yIGdvYmplY3QtaW50cm9zcGVjdGlvbgoKMjAwOS0wOS0xMSAyMzoyMTozMCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL0xJTkdVQVM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgMC4xMC4yNC4yIHByZS1yZWxlYXNlCgoyMDA5LTA5LTExIDIyOjQyOjUxICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBEb24ndCB1c2UgQysrIHN0eWxlIGNvbW1lbnRzCgoyMDA5LTA5LTExIDIyOjIyOjM0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBEaXNhYmxlIHJlc3RyaWN0aW9uIHRoYXQgc3RydWN0dXJlIGNoYW5nZXMgYXJlIHNpbmsgcGFkcwoJICBUaGUgc3RydWN0dXJlX2NoYW5nZSBtZXNzYWdlIHdhcyBvcmlnaW5hbGx5IGVtaXR0ZWQgb24gc291cmNlIHBhZHMgYW5kCgkgIHRoZW4gcmVjZW50bHkgY2hhbmdlZCB0byBiZSBzaW5rIHBhZHMuIFRoaXMgY2F1c2VzIGEgZmFpbHVyZSBpbiB0aGUKCSAgZ3N0LXB5dGhvbiB0ZXN0c3VpdGUuIERpc2FibGUgdGhlIHJlc3RyaWN0aW9uIHNvIHRoYXQgdGhlIHB1Ymxpc2hlZAoJICBiZWhhdmlvdXIgaXMgc3RpbGwgYWxsb3dlZC4KCjIwMDktMDktMTEgMTg6MjQ6MTggKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSAgY2hlY2s6IEZpeCB2ZXJzaW9uIGNoZWNrIHRlc3RzCgkgIEFjY29tb2RhdGUgdGhlIHNsaWdodGx5IGNoYW5nZWQgc2VtYW50aWNzIGluIHRoZSBwbHVnaW4gdmVyc2lvbiBjaGVjawoJICB3aGVyZSBhIENWUyB2ZXJzaW9uIGp1c3QgYmVmb3JlIGEgcmVsZWFzZSBpcyBhY2NlcHRhYmxlLgoKMjAwOS0wOS0xMSAyMToyMDo1NyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGJpbmFyeXJlZ2lzdHJ5OiBkb24ndCBjcmFzaCBpbiBjbGVhbmluZyB1cCBvbiBlcnJvci4KCSAgRG9uJ3QgZGVyZWZlcmVuY2UgTlVMTCBwb2ludGVycy4KCjIwMDktMDctMjAgMTI6NTQ6MDAgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZGVidWc6IHVzZSBkdW1teSBjb2RlIHRvIGF2b2lkIHNwdXJpb3VzIHNlbWljb2xvbnMKCSAgRml4ZXMgYnVnICM1ODkxNzMuCgoyMDA5LTA5LTEwIDExOjUzOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA5LTEwIDExOjQxOjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgcGx1Z2luZmVhdHVyZTogaW1wcm92ZSB2ZXJzaW9uIGNoZWNrCgkgIEFsc28gcGFyc2UgdGhlIG5hbm8gb2YgdGhlIHZlcnNpb24gYW5kIGFzc3VtZSB0aGF0IFguWS5aLTEuMSA+PSBYLlkuWgoJICBXaXRoIHRoaXMgY2hhbmdlIHdlIGNhbiBhbHNvIGNoZWNrIGRldmVsb3BtZW50IHZlcnNpb25zIGFnYWluc3QgdGhlIHZlcnNpb24gb2YKCSAgdGhlIHVwY29tbWluZyByZWxlYXNlLgoKMjAwOS0wOS0xMCAxMDowNTozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBBZGQgRklYTUUgZm9yIDAuMTEgdG8gbm90IHR5cGVkZWYgR3N0VGFnTGlzdCB0byBiZSBhIEdzdFN0cnVjdHVyZQoJICBTZWUgYnVnICM1MTg5MzQuCgoyMDA5LTA5LTA5IDE2OjI5OjEwIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIEZpeCB0eXBvIGluIGlubGluZSBkb2N1bWVudGF0aW9uCgoyMDA5LTA5LTA5IDE3OjU3OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgVXBkYXRlIGNvbW1vbgoKMjAwOS0wOS0wOSAxODozODoyOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IEFkZCBhIGNvbW1lbnQgdG8gdGhlIHNjYWxpbmcgZnVuY3Rpb25zIHRvIGV4cGxhaW4gd2h5IHRoZSByb3VuZGluZyBpcyBjb3JyZWN0CgoyMDA5LTA5LTA5IDE2OjQ1OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBkb24ndCB1bnJlZiBOVUxMIGNhcHMKCSAgQ2FwcyBjYW4gYmUgTlVMTCBzbyBkb24ndCBjYWxsIHVucmVmIG9uIGl0IHVuY29uZGl0aW9uYWxseSwgaW5zdGVhZCB1c2UgYW4KCSAgZXhpc3RpbmcgZXhpdCBwYWQgZm9yIHRoZSBmdW5jdGlvbi4KCjIwMDktMDktMDkgMTQ6NTM6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IFVzZSBnY2MncyBfX3VpbnQxMjhfdCBmb3IgNjRiaXQgdW5zaWduZWQgaW50ZWdlciBzY2FsaW5nCgkgIFRoaXMgaXMgYXZhaWxhYmxlIGluIG5ld2VyIGdjYyByZWxlYXNlcyBhbmQgaXQgc2hvdWxkIG9ubHkgZXhpc3QKCSAgb24gcGxhdGZvcm1zIHRoYXQgcHJvdmlkZSBzb21lIG5hdGl2ZSAxMjhiaXQgaW50ZWdlciBhcml0aG1ldGljCgkgIGluc3RydWN0aW9ucy4KCSAgVGhlIHg4Ni02NCBhc3NlbWJseSBmb3IgdGhpcyBpcyBzdGlsbCBrZXB0IGZvciBub24tZ2NjIGNvbXBpbGVycwoJICB0aGF0IGRvbid0IHByb3ZpZGUgX191aW50MTI4X3QgbWFnaWMuCgoyMDA5LTA5LTA5IDA5OjM4OjU0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL2RyYWZ0LWJ1ZmZlcnBvb2xzLnR4dDoKCSAgZGVzaWduOiBhZGQgaWRlYXMgZm9yIGJ1ZmZlciBtYW5hZ2VtZW50CgkgIFJpZ2h0IG5vdyB3ZSdyZSBvcGVyYXRpbmcgc3Vib3B0aW1hbCB3aGVuIHRhbGtpbmcgdG8ga2VybmVsIGludGVyZmFjZXMuIFdyaXRlCgkgIGRvZXNuIHNvbWUgaWRlYXMuCgoyMDA5LTA5LTA3IDE4OjI3OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBmaXggd2hpdGVzcGFjZQoKMjAwOS0wOS0wMyAxOTowNjoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBhZGFwdGVyOiBmaXggd2hpdGVzcGFjZQoKMjAwOS0wOS0wNyAxNjoxNDo1NyArMDIwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZG9jczogRml4IHR5cG8gaW4gZ3N0X3ZhbHVlX3VuaW9uKCkKCjIwMDktMDktMDYgMTk6NDM6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIGJpdHJlYWRlciwgYnl0ZXJlYWRlcjogYWRkIHNvbWUgRklYTUUgMC4xMSBjb21tZW50cyBhbmQgZml4IGluZGVudGluZwoKMjAwOS0wOS0wNCAxNzoxNTozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkgIGJ5dGVyZWFkZXI6IGFkZCB1bmNoZWNrZWQgYW5kIGlubGluZSB2ZXJzaW9ucyBvZiB0aGUgZmxvYXQgZ2V0dGVycy9wZWVrZXJzCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX2dldF9mbG9hdCpfdW5jaGVja2VkKCkKCjIwMDktMDktMDQgMTY6NTI6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJICBieXRlcmVhZGVyOiBhZGQgaW5saW5lIHZlcnNpb25zIG9mIHRoZSBtb3N0IGNvbW1vbiBnZXR0ZXJzIGFuZCBzZXR0ZXJzCgoyMDA5LTA5LTAyIDExOjIwOjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkgIGJ5dGVyZWFkZXI6IGFkZCBpbmxpbmVkIF91bmNoZWNrZWQoKSB2YXJpYW50cyBmb3Igc29tZSBmdW5jdGlvbnMKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfc2tpcF91bmNoZWNrZWQoKQoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9wZWVrXypfdW5jaGVja2VkKCkKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfZ2V0XypfdW5jaGVja2VkKCkKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfe3BlZWssZ2V0LGR1cH1fZGF0YV91bmNoZWNrZWQoKQoKMjAwOS0wOS0wNSAxMjozMDowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGludHJvc3BlY3Rpb246IFN0cmlwIEdzdCBwcmVmaXggZnJvbSBhbGwgdHlwZXMvZnVuY3Rpb25zCgoyMDA5LTA5LTA1IDEyOjIyOjM3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgaW50cm9zcGVjdGlvbjogRml4IGZvciBvdXQtb2YtdHJlZSBidWlsZHMKCjIwMDktMDktMDUgMTI6MDQ6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBpbnRyb3NwZWN0aW9uOiBGaXggb3V0LW9mLXRyZWUgYnVpbGQKCjIwMDktMDktMDUgMTE6NTE6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBpbnRyb3NwZWN0aW9uOiBGaXggYnVpbGQgaWYgZ2lyLXJlcG9zaXRvcnkgaXMgbm90IGluc3RhbGxlZAoKMjAwOS0wOS0wNSAwOTozNjoyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIG5ldDogQWRkIGdvYmplY3QtaW50cm9zcGVjdGlvbiBzdXBwb3J0CgoyMDA5LTA5LTA1IDA5OjM0OjMwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSAgZGF0YXByb3RvY29sOiBBZGQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHN1cHBvcnQKCSAgQmVjYXVzZSBvZiBhIGJ1ZyBpbiBnb2JqZWN0LWludHJvc3BlY3Rpb24gdGhpcyBpcyBkaXNhYmxlZCBmb3Igbm93LgoKMjAwOS0wOS0wNSAwOToyODo0OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICBjb250cm9sbGVyOiBBZGQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHN1cHBvcnQKCjIwMDktMDktMDUgMDk6Mjc6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiBBZGQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHN1cHBvcnQKCjIwMDktMDktMDUgMDk6MjM6MTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogLmdpdGlnbm9yZToKCSogZ3N0Ly5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgIGdzdGJhc2U6IEFkZCBnb2JqZWN0LWludHJvc3BlY3Rpb24gc3VwcG9ydAoKMjAwOS0wOS0wNCAyMDo1Njo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC8uZ2l0aWdub3JlOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBBZGQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHN1cHBvcnQKCSAgUGFydGlhbGx5IGZpeGVzIGJ1ZyAjNTUwNjE2LgoKMjAwOS0wOS0wNSAxMDoxOToyMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDk0Zjk1ZTMgdG8gMTlmYTRmMwoKMjAwOS0wOS0wNCAxOTozNzoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSAgZG9jczogZml4IGRvY3MgZm9yIGdzdF9ieXRlX3JlYWRlcl97Z2V0fHBlZWt9X2Zsb2F0KigpCgoyMDA5LTA5LTA0IDExOjM1OjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA5LTA0IDA5OjUxOjI2ICswMjAwICBBdXJlbGllbiBHcmltYXVkIDxnc3RlbHp6QHlhaG9vLmZyPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IE9ubHkgdW5yZWYgRU9TIG1lc3NhZ2UgYWZ0ZXIgaXQgaXMgbm90IHVzZWQgYW55bW9yZQoJICBGaXhlcyBidWcgIzU5NDEwNy4KCjIwMDktMDktMDIgMTg6NTQ6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgc3RhdGVzOiBwb3N0IHN0cnVjdHVyZSBjaGFuZ2Ugb24gc2lua3BhZHMKCSAgUG9zdCB0aGUgc3RydWN0dXJlIGNoYW5nZSBtZXNzYWdlcyBvbiB0aGUgc2lua3BhZHMgb2YgdGhlIGVsZW1lbnRzLiBUaGlzIGFsbG93cwoJICB1cyB0byBjYXRjaCB1bmxpbmtlZCBwYWRzIGVhcmxpZXIgd2l0aG91dCBlbmRpbmcgdXAgd2l0aCBpbmNvbnNpc3RlbnQgZWxlbWVudAoJICBkZWdyZWVzLgoKMjAwOS0wOS0wMiAxODoxMzoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBhdm9pZCBmYWxzZSAnbG9vcCBkZXRlY3RlZCcgd2FybmluZ3MKCSAgV2hlbiB3ZSBkZXRlY3QgYSBwYWQgdW5saW5rIGluIHByb2dyZXNzLCB3ZSB3aWxsIG5vdCBiZSB1cGRhdGluZyB0aGUgZGVncmVlIG9mCgkgIHRoZSBwYXJlbnQgZWxlbWVudC4gVGhpcyBjYW4gY2F1c2UgZmFsc2UgbG9vcCBkZXRlY3RlZCB3YXJuaW5ncyBiZWNhdXNlIHRoZQoJICBkZWdyZWUgY291bnRlciBpcyBpbnZhbGlkLiBIYW5kbGUgdGhpcyBjYXNlIGJ5IG1hcmtpbmcgdGhlIGl0ZXJhdG9yIGFzICdkaXJ0eScKCSAgd2hlbiB3ZSBkZXRlY3QgYSBwYWQgdW5saW5rIGFuZCBhdm9pZCBlbWl0aW5nIHRoZSB3YXJuaW5nIGluIHRoaXMgY2FzZS4gV2UgaGF2ZQoJICB0byBjb250aW51ZSBvdXIgc3RhdGUgY2hhbmdlIGFzIGdvb2QgYXMgd2UgY2FuLCB3ZSB3aWxsIGV2ZW50dWFsbHkgcmVzeW5jIHdoZW4KCSAgdGhlIHBhZCB1bmxpbmsgY29tcGxldGVkLgoKMjAwOS0wOS0wMSAxNjo0OTo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgYmFzZXNyYzogd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0wOS0wMSAxNjo0OToyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA5LTAxIDEyOjA3OjMxICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgZGlzdDogRG9uJ3QgbGlzdCB0aGUgc3RyZWFtcyBzdWJkaXIgdHdpY2UgaW4gZXhhbXBsZXMgTWFrZWZpbGUKCSAgTGlzdGluZyB0aGUgJ3N0cmVhbXMnIHN1YmRpciB0d2ljZSBpbiBESVNUX1NVQkRJUlMgYnJlYWtzIGRpc3RjaGVjay4KCjIwMDktMDktMDEgMTI6MDU6NTEgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgZ3N0YmluOiBEb24ndCBwcm9wYWdhdGUgYSBOVUxMIGNhY2hlZCBpbmRleCB0byBhZGRlZCBlbGVtZW50cwoJICBXaGVuIGFuIGVsZW1lbnQgaXMgYWRkZWQgdG8gdGhlIGJpbiwgb25seSBzZXQgdGhlIGluZGV4IGlmIHdlIGhhdmUgYQoJICBjYWNoZWQgaW5kZXgsIHJhdGhlciB0aGFuIHNldHRpbmcgYSBOVUxMIGluZGV4IG9uIGVsZW1lbnRzIHRoYXQgbWlnaHQKCSAgaGF2ZSBhIGRlZmF1bHQgaW5kZXggb2JqZWN0IG9mIHRoZWlyIG93bi4KCjIwMDktMDctMTkgMjE6MjM6MTggKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IEFkZCBhIG5vdGUgYWJvdXQgcmVnZW5lcmF0aW5nIHRoZSBjaGFuZ2Vsb2cgaW4gdGhlIHJlbGVhc2Ugc2NyaXB0CgoyMDA5LTA5LTAxIDEwOjAzOjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGRvbid0IHRha2Ugb2JqZWN0IGxvY2sgZm9yIGdfY3JpdGljYWwoKSBhbmQgZmxlc2ggb3V0IHdhcm5pbmcgbWVzc2FnZSBzb21lIG1vcmUKCjIwMDktMDktMDEgMTA6MjE6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgc2luZ2xlIGl0ZXJhdG9yCgoyMDA5LTA5LTAxIDEwOjIwOjU5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogT25seSB2aXNpdCB0aGUgZWxlbWVudCBhIHNpbmdsZSB0aW1lIGluIHRoZSBzaW5nbGUgaXRlcmF0b3IKCjIwMDktMDktMDEgMDc6Mjc6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBGaXggc2luZ2xlIGl0ZXJhdG9yIGZvciBOVUxMIG9iamVjdHMgYW5kIG5vbi1HVHlwZUluc3RhbmNlIG9iamVjdHMKCSAgRml4ZXMgYnVnICM1OTM3MTkuCgoyMDA5LTA5LTAxIDAwOjAwOjU3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBkZWJ1ZzogbW9yZSBkZXRhaWwgaW4gd3Jvbmctc3RhdGUtb24tZGlzcG9zZSBlcnJvci4KCSAgQWxzbyB0ZWxsIGluIHdoaWNoIHN0YXRlIHRoZSBlbGVtZW50IGFjdHVhbHkgaXMgYW5kIGlmIGl0IGlzIGV2ZW50dWFseQoJICBzdGF0ZS1sb2NrZWQuCgoyMDA5LTA4LTMxIDIwOjM4OjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBmaXggZG9jcyBmb3IgX25ld19zaW5nbGUoKS4KCjIwMDktMDgtMzEgMTY6NTY6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgZG9jczogaXQncyBpdHMKCSAgVGhlIHBhbmRhIHNheXMgbm8hCgoyMDA5LTA4LTI5IDIwOjQ0OjM2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICByZWdpc3RyeTogZmlsbCBpbiBlbGVtZW50ZmFjdG9yeSB3aGVuIHJlZ2lzdGVyaW5nIGVsZW1lbnQKCSAgZWxlbWVudGZhY3RvcnkgZmllbGQgaXMgZmlsbGVkIGluIGJ5IGdzdF9lbGVtZW50X2Jhc2VfY2xhc3NfaW5pdCwKCSAgYnV0IGl0IG5lZWRzIHNvbWUgaW5mbyBzZXQgb24gdGhlIGVsZW1lbnQncyB0eXBlLCBzbyBoYXZlIGl0CgkgIGF2YWlsYWJsZSBwcmlvciB0byBjbGFzcyBzdHJ1Y3R1cmUgY3JlYXRpb24gc3Bpbm5pbmcgdXAuCgkgIFRoaXMgYWZmZWN0cyBlbGVtZW50cyB0aGF0IGhhdmUgYSB3ZWxsLWtub3duL3B1YmxpYyB0eXBlIChlLmcuIHBpcGVsaW5lKQoJICBhbmQgY2FuIGJlIGNyZWF0ZWQgYnkgb3RoZXIgbWVhbnMgdGhhbiBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UKCSAgKHdoaWNoIHdpbGwgYWxzbyBmaWxsIGluIHRoZSBlbGVtZW50J3MgZmFjdG9yeSkuCgoyMDA5LTA4LTMxIDExOjQ1OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiB1c2UgMTI4Yml0cyBkaXZpc2lvbiBvbiB4ODZfNjQKCjIwMDktMDgtMjkgMDQ6NDQ6NTEgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBmaXggY29tcGlsYXRpb24gb2Ygd2luMzIgY29kZQoJICBGaXhlcyAjNTkzNDYwLgoKMjAwOS0wOC0yOCAxODozNzo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBjYWNoZSBpbmRleAoJICBDYWNoZSB0aGUgbGFzdCBpbmRleCB0aGF0IHdhcyBzZXQgd2l0aCBfc2V0X2luZGV4KCkgYW5kIHJldHVybiB0aGlzIGluIHRoZQoJICBfZ2V0X2luZGV4KCkgY2FsbC4KCSAgU2V0IHRoZSBjYWNoZWQgaW5kZXggb24gbmV3bHkgYWRkZWQgZWxlbWVudHMuCgkgIEZpeGVzICM1NjY4ODEKCjIwMDktMDgtMjggMTg6MzU6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBiZXR0ZXIgdHlwZSBjaGVja3MKCSAgQWRkIEdTVF9DTE9DSyB0eXBlY2hlY2sgZm9yIF9zZXRfY2xvY2soKS4KCSAgQWxsb3cgc2V0dGluZyBOVUxMIGluZGV4ZXMgb24gZWxlbWVudCAoY2xlYXIgdGhlIGN1cnJlbnQgaW5kZXgpCgkgIFNvbWUgd2hpdGVzcGFjZSBmaXhlcy4KCjIwMDktMDgtMjggMTg6MTQ6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OyB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA4LTI4IDE4OjA2OjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IGFkZCBnc3RfaXRlcmF0b3JfbmV3X3NpbmdsZSB0byBkZWZzCgoyMDA5LTA4LTI4IDE4OjAzOjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMDgtMjggMTc6NTk6MTUgKzAyMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgQ2hlY2sgc3VnZ2VzdGVkIGNhcHMgZm9yIHByb3h5IGFsbG9jCgkgIEJlY2F1c2Ugd2UgYXJlIHRyeWluZyB0byByZXNvbHZlIGEgc3VnZ2VzdGlvbiBoZXJlIHdlIGRvbid0IG5lZWQKCSAgdG8gY2hlY2sgb24gY2FwcyBmb3IgcHJveHlfYWxsb2MgYnV0IHdlIG5lZWQgdG8gY2hlY2sgb24gdGhlCgkgIHN1Z2dlc3RlZCBjYXBzIGluc3RlYWQuCgoyMDA5LTA4LTI4IDE3OjQ5OjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIHF1ZXVlOiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA4LTI4IDE3OjAyOjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiB1c2UgcHJlZm9ybWFuY2UgY291bnRlcnMgb24gd2luZG93cwoJICBCYXNlZCBvbiBjbG9jayBpbXBsZW1lbnRhdGlvbiBieSBIw6V2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoJICBUcnkgdG8gZ2V0IHRoZSB0aW1lIG9uIHdpbmRvd3MgdXNpbmcgdGhlIHBlcmZvcm1hbmNlIGNvdW50ZXJzLiBUaGVzZSBoYXZlIGEgbXVjaAoJICBoaWdoZXIgcmVzb2x1dGlvbiBhbmQgYWNjdXJhY3kgdGhhbiB0aGUgcmVndWxhciBnZXRjdXJyZW50dGltZSgpLiBCZSBjYXJlZnVsIHRvCgkgIGZhbGwgYmFjayB0byByZWd1bGFyIGdldGN1cnJlbnR0aW1lKCkgb3IgcG9zaXggY2xvY2tzIHdoZW4gcGVyZm9ybWFuY2UgY291bnRlcnMKCSAgYXJlIG5vdCBhdmFpbGFibGUuCgoyMDA5LTA4LTI4IDE2OjA3OjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkgIHN5c3RlbWNsb2NrOiBmaXggaW5kZW50YXRpb24KCjIwMDktMDgtMjggMTU6MzI6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHVzZSBzaGlmdCBpbnN0ZWFkIG9mIGRpdmlzaW9uCgkgIFdlIGNhbiB1c2UgYSBzaGlmdCBmb3Igc2NhbGluZyB0aGUgZGVub21pbmF0b3IgaW5zdGVhZCBvZiBhIGRpdmlkZSBzaW5jZSB0aGUKCSAgZGVub20gaXMgYWx3YXlzIHBvc2l0aXZlLiBUaGlzIGF2b2lkcyBoYXZpbmcgdGhlIGNvbXBpbGVyIGdlbmVyYXRlIGNvZGUgZm9yIHRoZQoJICBkaWZmZXJlbnQgcm91bmRpbmcgcnVsZXMgd2hlbiBzY2FsaW5nIG5lZ2F0aXZlIHZhbHVlcy4KCjIwMDktMDgtMjggMTM6NDU6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IG1ha2UgaW5saW5pbmcgZXhwbGljaXQKCjIwMDktMDgtMjggMTI6NDM6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IG9wdGltaXplIGZvciB4ODZfNjQgd2l0aCBzb21lIGlubGluZSBhc20KCSAgNjRiaXQgeDg2IGhhcyBuYXRpdmUgNjR4NjQtPjEyOCBiaXQgbXVsdGlwbHkgdGhhdCB3ZSBjYW4gdXNlIHdpdGggc29tZSBpbmxpbmUKCSAgYXNzZW1ibGVyIHRvIHNwZWVkIHVwIGxhcmdlIG11bHRpcGxpY2F0aW9ucy4KCSAgVXNlIGJzciB0byBmaW5kIHRoZSBudW1iZXIgb2YgbGVhZGluZyB6ZXJvcyBtb3JlIGVmZmljaWVudGx5LgoKMjAwOS0wOC0yOCAxMjozMzozNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogZmFjdG9yIG91dCB0aGUgbGVhZGluZyB6ZXJvIGNvdW50IGNvZGUKCjIwMDktMDgtMjggMTI6MzA6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHBhc3MgY29ycmVjdGlvbiBmYWN0b3IgYXJvdW5kCgkgIFBhc3MgdGhlIGNvcnJlY3Rpb24gZmFjdG9yIGFyb3VuZCB0byBnZXQgcmlkIG9mIHRoZSBlbnVtLCBzb21lIGNvZGUKCSAgYW5kIHNvbWUgYnJhbmNoZXMuCgoyMDA5LTA4LTI4IDEyOjIxOjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA4LTI4IDEyOjE5OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBtb3ZlIGNvbW1vbiBjb3JyZWN0aW9uIGNvZGUgaW4gYSBtYWNybwoKMjAwOS0wOC0yNCAxODowMTowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgYmFzZXNpbms6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMDgtMjYgMTY6NTE6MzIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBBbGxvdyB0byB1c2UgTlVMTCBhcyBvYmplY3QgZm9yIHRoZSBzaW5nbGUgaXRlcmF0b3IKCjIwMDktMDgtMjYgMTY6Mzk6MTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5oOgoJICBpdGVyYXRvcjogQVBJOiBBZGQgZ3N0X2l0ZXJhdG9yX25ld19zaW5nbGUoKQoJICBUaGlzIGFsbG93cyAiaXRlcmF0aW9uIiBvdmVyIGEgc2luZ2xlIG9iamVjdCBvZiBzb21lIHR5cGUsCgkgIHdoaWNoIGhhcHBlbnMgb2Z0ZW4gZm9yIHRoZSBHc3RQYWRJdGVySW50TGlua3NGdW5jdGlvbiBmb3IgZXhhbXBsZS4KCjIwMDktMDgtMjQgMTc6NTc6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcmV0dXJuIHJlc3VsdCBvZiBfc2V0X2NhcHMoKQoKMjAwOS0wOC0yNCAxNzo1NjozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMDgtMjIgMTQ6MjI6MzEgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogZ3N0L2dzdHhtbC5oOgoJICBJdCdzIF9fR05VQ19fLCBub3QgX0dOVUNfCgkgIFRoaXMgYXBwZWFycyB0byBiZSBhbiA4IHllYXIgb2xkIGJ1Zy4KCjIwMDktMDgtMjEgMDk6NTk6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgZG9jczogYWRkIGxpbmsgdG8gY2dpdCB0YXJiYWxsIGRvd25sb2FkIG9mIGdzdC10ZW1wbGF0ZSBpbiBQV0cKCSAgU28gcGVvcGxlIHdobyBjYW4ndCB1c2UgZ2l0IGZvciBzb21lIHJlYXNvbiBzdGlsbCBjYW4gZ2V0IGhvbGQKCSAgb2YgdGhlIGNvZGUuIFNlZSAjNTkxMDY5LgoKMjAwOS0wOC0yMCAxMTo1NDo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICBwbHVnaW5mZWF0dXJlOiBhZGQgZ3VhcmQgdG8gZ3N0X3BsdWdpbl9mZWF0dXJlX3R5cGVfbmFtZV9maWx0ZXIKCSAgU28gd2UgZG9uJ3QganVzdCBjcmFzaCBpZiB0aGVyZSdzIGEgcmVmY291bnRpbmcgYnVnIHNvbWV3aGVyZSBlbHNlLgoKMjAwOS0wOC0xOSAxNjoyNDozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6CgkgIGRvY3M6IERvbid0IHRhbGsgYWJvdXQgdGhlIGRlcHJlY2F0ZWQgbGliZ25vbWUgYW5kIEdOT01FLVZGUwoJICBJbnN0ZWFkIHRhbGsgYWJvdXQgR0lPIGFuZCBjaGFuZ2UgdGhlIG9wdGlvbiBwYXJzaW5nIGV4YW1wbGUgdG8KCSAgbm90IGluaXRpYWxpemUgbGliZ25vbWUgYnV0IG9ubHkgR1RLLgoJICBGaXhlcyBidWcgIzU5MjIzMy4KCjIwMDktMDgtMTkgMTU6MjU6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvTWFrZWZpbGUuYW06CgkgIGV4YW1wbGVzOiBMaW5rIHJ0cG9vbC10ZXN0IHRvIGxpYnB0aHJlYWQgZm9yIHVzaW5nIHRoZSBQT1NJWCB0aHJlYWRzCgkgIEFsc28gdGhlIG90aGVyIHN0cmVhbXMgZXhhbXBsZSBjYW4gcnVuIHdpdGhvdXQgcHRocmVhZHMgdGhlcmVmb3JlCgkgIGVuYWJsZSBpdCBldmVuIGlmIHB0aHJlYWRzIGFyZSBub3QgYXZhaWxhYmxlLgoJICBGaXhlcyBidWcgIzU5MjMxNC4KCjIwMDktMDgtMTggMTQ6NDU6MjMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgdG9vbHM6IFVzZSBpdGVyYXRlX2ludGVybmFsX2xpbmtzIGluc3RlYWQgb2YgZGVwcmVjYXRlZCBnZXRfaW50ZXJuYWxfbGlua3MKCjIwMDktMDgtMTggMTQ6NDU6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBVc2UgaXRlcmF0ZV9pbnRlcm5hbF9saW5rcyBpbnN0ZWFkIG9mIGRlcHJlY2F0ZWQgZ2V0X2ludGVybmFsX2xpbmtzCgoyMDA5LTA4LTE4IDE0OjA1OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBnc3RwYWQ6IEFkZCBzb21lIERJU0FCTEVfREVQUkVDQVRFRCBtYXJrZXJzIGluIHRoZSBoZWFkZXIgdG9vCgkgIFRoZSBpbnRlcm5hbCBsaW5rcyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIHNpbmNlIHNvbWUgdGltZSBhbmQKCSAgdGhlcmUgYWxyZWFkeSB3ZXJlIEdTVF9SRU1PVkVfREVQUkVDQVRFRCBtYXJrZXJzIGluIHRoZSBzb3VyY2UgZmlsZSwKCSAgbm93IGFkZCB0aGVtIHRvIHRoZSBoZWFkZXIgdG9vLgoJICBGaXhlcyBidWcgIzU5MjIwOS4KCjIwMDktMDgtMTggMTE6Mzg6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICBkb2NzOiBVcGRhdGUgdGhlIGRlc2lnbiBkb2NzIGZvciBiaW4gc3RhdGUgY2hhbmdlcyBhY2NvcmRpbmcgdG8gbGFzdCBjb21taXQKCjIwMDktMDgtMTggMTE6MzY6MzYgKzAyMDAgIEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGdzdGJpbjogRG9uJ3QgdHJ5IHRvIGNoYW5nZSBjaGlsZHJlbidzIHN0YXRlIGlmIHRoZXkncmUgYWxyZWFkeSBpbiB0aGUgc3RhdGUgd2Ugd2FudAoJICBGaXhlcyBidWcgIzM2ODUzNi4KCjIwMDktMDgtMTggMTE6MzM6MTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBBbHdheXMgZ2V0IHRoZSBwcm94eXBhZCdzIGdob3N0cGFkIHZpYSB0aGUgZ2hvc3RwYWQgaW4gdGhlIHNyYyBjYXBzIGNoYW5nZSBub3RpZnkgaGFuZGxlcgoJICBCZWZvcmUgdGhlIHNpZ25hbCBoYW5kbGVyIHdvdWxkIGdldCB0aGUgZ2hvc3RwYWQgcGFzc2VkIGFzIHNlY29uZAoJICBhcmd1bWVudCBidXQgaXQgY291bGQndmUgYWxyZWFkeSBiZWVuIHVucmVmZmVkIGFuZCBkZXN0cm95ZWQuCgkgIFRoaXMgd291bGQgdGhlbiBsZWFkIHRvIGNyYXNoZXMgYW5kIGFsbCB0aGF0LgoJICBOb3cgd2UgZ2V0IHRoZSBnaG9zdHBhZCBmcm9tIHRoZSBwcm94eSBwYWQsIHdoaWNoIHdlIGdldCBmcm9tIHRoZQoJICB0YXJnZXQgcGFkIGFzIGl0J3MgcGVlci4KCSAgRml4ZXMgYnVnICM1OTEzMTguCgoyMDA5LTA4LTE4IDA4OjQ1OjA4ICswMjAwICBMYXVyZW50IEdsYXlhbCA8c3BnbGVnbGVAeWFob28uZnI+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSAgZmlsZXNpbms6IEFkZCBwcm9wZXJ0eSB0byBhbGxvdyB0byBhcHBlbmQgdG8gYW4gYWxyZWFkeSBleGlzdGluZyBmaWxlCgkgIEZpeGVzIGJ1ZyAjNTkxNDQxLgoKMjAwOS0wOC0xNCAxMTo1MzoxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogUmVtb3ZlIGR1cGxpY2F0ZWQgY2hlY2sgZm9yIGNsb2NrX2dldHRpbWUKCjIwMDktMDgtMTQgMTE6MTI6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHV0aWxzOiBBZGQgc3BlY2lhbCByYW5kb20gdW5pdCB0ZXN0IGZvciA2NCBzY2FsaW5nIGZ1bmN0aW9ucwoJICBUaGlzIHRlc3RzIDEwMDAwMCByYW5kb20gbXVsdGlwbGljYXRpb25zL2RpdmlzaW9ucyBvZiBhbGwgc2NhbGluZwoJICBmdW5jdGlvbiB2YXJpYW50cyBhbmQgY29tcGFyZXMgdGhlIHJlc3VsdCB3aXRoIHRoZSByZXN1bHQgdGhhdCBpcwoJICBnZW5lcmF0ZWQgYnkgR01QIG9uIHRoZSBzYW1lIGlucHV0LgoJICBGb3IgdGhpcyBjaGVjayBmb3IgR1NMIGFuZCBHTVAgZHVyaW5nIGNvbmZpZ3VyZSBidXQgb25seSB1c2UKCSAgaXQgZm9yIHRoaXMgc2luZ2xlIHVuaXQgdGVzdC4KCSAgVGVzdGluZyBmdW5jdGlvbnMgd2VyZSBwcm92aWRlZCBieSBLaXBwIENhbm5vbiA8a2Nhbm5vbkBsaWdvLmNhbHRlY2guZWR1PgoKMjAwOS0wOC0xMyAxNjozMTowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0dXRpbHM6IEFkZCBuZXcgc2NhbGluZyBmdW5jdGlvbnMgdG8gdGhlIGRvY3MKCjIwMDktMDgtMTMgMTY6MjA6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHV0aWxzOiBBZGQgKHZlcnkpIG1pbmltYWwgdW5pdCB0ZXN0IGZvciB0aGUgbmV3IHJvdW5kaW5nIHNjYWxpbmcgZnVuY3Rpb25zCgoyMDA5LTA4LTEzIDE2OjEwOjMxICswMjAwICBLaXBwIENhbm5vbiA8a2Nhbm5vbkBsaWdvLmNhbHRlY2guZWR1PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBnc3R1dGlsczogQVBJOiBBZGQgcm91bmRpbmcgdG8gbmVhcmVzdCBhbmQgbmV4dCBpbnRlZ2VyIHZlcnNpb25zIG9mIHRoZSA2NCBiaXQgaW50ZWdlciBzY2FsaW5nIGZ1bmN0aW9ucwoJICBUaGUgbmV3IGZ1bmN0aW9ucyBhcmUKCSAgZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludF9yb3VuZCgpCgkgIGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnRfY2VpbCgpCgkgIGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9yb3VuZCgpCgkgIGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9jZWlsKCkKCSAgRml4ZXMgYnVnICM1OTA5MTkuCgoyMDA5LTA4LTEyIDExOjEwOjA1ICswMjAwICBLaXBwIENhbm5vbiA8a2Nhbm5vbkBsaWdvLmNhbHRlY2guZWR1PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHV0aWxzOiBSZXZlcnQgcGFydHMgb2YgbGFzdCBjaGFuZ2UgdG8gb3B0aW1pemUgdGhlIHNjYWxpbmcgZnVuY3Rpb25zIGFnYWluCgkgIFBhcnRpYWxseSBmaXhlcyBidWcgIzU5MDkxOS4KCjIwMDktMDgtMTEgMDk6MTY6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHV0aWxzOiBGaXggdmlvbGF0aW9ucyBvZiBzdHJpY3QtYWxpYXNpbmcgcnVsZXMgaW4gZ3N0X3V0aWxfdWludDY0X3NjYWxlKCkKCjIwMDktMDgtMTEgMDk6MTA6NDcgKzAyMDAgIEtpcHAgQ2Fubm9uIDxrY2Fubm9uQGxpZ28uY2FsdGVjaC5lZHU+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0dXRpbHM6IFJlZmFjdG9yIGdzdF91dGlsX3VpbnQ2NF9zY2FsZSgpCgkgIFRoaXMgd2lsbCBsYXRlciBtYWtlIGl0IHBvc3NpYmxlIHRvIHByb3ZpZGUgcm91bmRpbmcgdmVyc2lvbnMKCSAgb2YgaXQgd2l0aG91dCBtdWNoIGNvZGUgZHVwbGljYXRpb24uCgkgIFBhcnRpYWxseSBmaXhlcyBidWcgIzU5MDkxOS4KCjIwMDktMDgtMTEgMTU6MjA6MTggKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZyBhdCBheGlzLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IHVwZGF0ZSBkb2Mgc3RyaW5nCgoyMDA5LTA4LTExIDEzOjIxOjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIGdzdHNlZ21lbnQ6IEFjdHVhbGx5IHN0YXJ0PT1zdG9wPT1zZWdtZW50X3N0YXJ0IGlzIGluc2lkZSB0aGUgc2VnbWVudAoJICBTdGlsbCB0aGUgb2xkIGNvZGUgd2FzIHdyb25nIGFzIGl0IGNsYWltZWQgdGhhdCBzdGFydD09c3RvcDxzZWdtZW50X3N0YXJ0CgkgIHdvdWxkIGJlIGluc2lkZSB0aGUgc2VnbWVudCBhbmQgcmV0dXJuZWQgaW5zYW5lIGNsaXBwaW5nIGRpZmZlcmVuY2VzLgoKMjAwOS0wOC0xMSAxMzowMzowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICBnc3RzZWdtZW50OiBGaXggdW5pdCB0ZXN0IGFuZCBhZGQgYW4gYWRkaXRpb25hbCB0ZXN0CgkgIFRoZSBwcmV2aW91cyB0ZXN0IGFzc3VtZWQgdGhhdCBzdGFydD1zdG9wPXNlZ21lbnRfc3RhcnQgd2lsbAoJICBiZSBpbnNpZGUgdGhlIHNlZ21lbnQgYnV0IHRoaXMgaXMgd3JvbmcuCgoyMDA5LTA4LTExIDEyOjU5OjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIGdzdHNlZ21lbnQ6IENsaXBwaW5nIHNob3VsZCBkZXRlY3Qgc3RhcnQ9c3RvcDxzZWdtZW50X3N0YXJ0IGFzIG91dHNpZGUgdGhlIHNlZ21lbnQKCSAgQmVmb3JlIGl0IHJldHVybmVkIHRoYXQgW3N0YXJ0LHN0b3BdIGlzIGluc2lkZSB0aGUgc2VnbWVudCBhbmQgdGhhdCB0aGUKCSAgZGlmZmVyZW5jZSBiZXR3ZWVuIHNlZ21lbnRfc3RhcnQgYW5kIHN0YXJ0IG5lZWRzIHRvIGJlIGNsaXBwZWQuIElmIHRoZQoJICBjbGlwcGluZyBpcyBkb25lIG9uIGEgYnVmZmVyIChsaWtlIGluIGJhc2VhdWRpb3NpbmspIHRoaXMgd2lsbCByZXN1bHQKCSAgaW4gdGhlIGRhdGEgcG9pbnRlciBiZWluZyBhdCBhIGludmFsaWQgbWVtb3J5IHBvc2l0aW9uLgoJICBGaXhlcyBidWcgIzU4OTg0OS4KCjIwMDktMDgtMTEgMDU6NDc6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJICBnc3RidXM6IFVucmVmIHBpcGVsaW5lIGFmdGVyIHVzYWdlIGluIHRlc3RfY3VzdG9tX21haW5fY29udGV4dCB1bml0IHRlc3QKCSAgVGhpcyBtYWtlcyB0aGUgY29yZSB1bml0IHRlc3RzIHZhbGdyaW5kIGNsZWFuIGFnYWluLgoKMjAwOS0wOC0xMSAwMjo1NDo1NSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJICBkb2NzOiBhZGQgRWR3YXJkJ3MgZ2l0IHBsdWdpbiBtb3ZpbmcgaG93dG8gdG8gbW92aW5nLXBsdWdpbnMgZG9jdW1lbnQKCjIwMDktMDgtMTAgMTQ6MzA6MzQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICBjaGVja3M6IGRvbid0IGZvcmdldCB0byBpbmNsdWRlIGNvbmZpZy5oIGluIHRoZSBHc3RPYmplY3QgdW5pdCB0ZXN0CgoyMDA5LTA4LTEwIDEzOjA1OjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICBjaGVja3M6IHRyeSB0byBmaXggR3N0T2JqZWN0IHVuaXQgdGVzdCBvbiBPU1gKCSAgU2VlbXMgbGlrZSB3ZSBnZXQgU0lHQlVTIGluc3RlYWQgb2YgU0lHU0VHViBoZXJlIHdoZW4gR0xpYiBjcmFzaGVzCgkgIHdoZXJlIGl0IHNob3VsZG4ndCBjcmFzaCAoYW5kIHdlIGV2ZW4gaGF2ZSBhIHVuaXQgdGVzdCBmb3IgdGhhdCEpLgoKMjAwOS0wOC0xMCAxMjowMTo0OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIGNoZWNrczogc2V0IHBpcGVsaW5lcyB0byBOVUxMIHN0YXRlIGluIHBhcnNlLWxhdW5jaCB1bml0IHRlc3QKCSAgRml4ZXMgdGltZW91dHMgaW4gZ3N0X3Rhc2tfY2xlYW51cF9hbGwoKS4KCjIwMDktMDgtMTAgMTE6NDI6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJICBjaGVja3M6IHNldCBwaXBlbGluZSBiYWNrIHRvIE5VTEwgc3RhdGUgaW4gR3N0QnVzIHVuaXQgdGVzdAoJICBGaXhlcyB0aW1lb3V0IGluIGdzdF90YXNrX2NsZWFudXBfYWxsKCkuCgoyMDA5LTA4LTEwIDExOjQzOjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBhZGQgc29tZSBsb2dnaW5nIGJlZm9yZSBjYWxsaW5nIGdzdF90YXNrX2NsZWFudXBfYWxsKCkKCjIwMDktMDgtMDggMjI6Mjc6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IENhbGwgZ3N0X3Rhc2tfY2xlYW51cF9hbGwoKSBpbiBHU1RfRU5EX1RFU1QKCSAgVGhpcyBmaXhlcyBtYW55IHVuaXQgdGVzdHMgdW5kZXIgdmFsZ3JpbmQgdGhhdCBzaG93cwoJICBsZWFraW5nIEdzdFRhc2tzIHRoYXQgYXJlIG5vdCByZWFsbHkgbGVha2VkIGJ1dCBqdXN0CgkgIG5vdCB1bnJlZmZlZCBieSB0aGUgdGFzayB0aHJlYWQgYmVmb3JlIHRoZSB1bml0IHRlc3QKCSAgc3RvcHBlZC4KCSAgRml4ZXMgYnVnICM1OTEwNDUuCgoyMDA5LTA4LTA4IDE0OjQ3OjU3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogUmVtb3ZlIGRlYWQgYXNzaWdubWVudHMKCjIwMDktMDgtMDggMTQ6NDc6NDAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkgIGdzdDogUmVtb3ZlIGRlYWQgYXNzaWdubWVudHMKCjIwMDktMDgtMDcgMDI6MzY6MjkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzLy5naXRpZ25vcmU6CgkgIGdpdGlnbm9yZTogaWdub3JlIG5ldyBxdWV1ZS1lcnJvciB0ZXN0CgoyMDA5LTA4LTA2IDIwOjQwOjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBjaGVjazogYWRkIGludGVybmFsLWNoZWNrLmggdG8gQlVJTFRfU09VUkNFUyBpbiBhdHRlbXB0IHRvIGZpeCB0aGUgYnVpbGQKCSAgRm9yIHNvbWUgcGVvcGxlIHRoZSBidWlsZCBvZiBsaWJnc3RjaGVjayB3YXMgYnJva2VuIGJlY2F1c2UgdGhlIG1ha2UKCSAgdGFyZ2V0IHRoYXQgY3JlYXRlcyB0aGUgaW50ZXJuYWwtY2hlY2suaCBmaWxlIHdhc24ndCBleGVjdXRlZCBmb3IKCSAgc29tZSByZWFzb24uIFRoaXMgc2hvdWxkIGhvcGVmdWxseSBmaXggdGhpcy4KCjIwMDktMDgtMDYgMTg6Mzg6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogYXV0b2dlbi5zaDoKCSAgYXV0b2dlbi5zaDogb2xkZXIgYWNsb2NhbHMgZG9uJ3QgbGlrZSAtSS4gc28gdXNlIC1JIC4gaW5zdGVhZAoKMjAwOS0wOC0wNiAxODo0NzozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZ3N0YnVmZmVyOiBhZGQgYWRkaXRpb25hbCBjaGVja2luZyBmb3Igd3JpdGFiaWxpdHkKCSAgQ2hlY2sgZm9yIG1ldGFkYXRhIHdyaXRhYmlsaXR5IHdoZW4gc2V0dGluZyBjYXBzIG9uIGJ1ZmZlciBvciB3aGVuIGNvcHlpbmcKCSAgbWV0YWRhdGEgZmxhZ3MuIE9ubHkgZW5hYmxlIHRoZXNlIGV4dHJhIGFzc2VydGlvbnMgaW4gZ2l0IHZlcnNpb25zLgoJICBUaGlzIHNob3VsZCBoZWxwIHVzIGZpbmQgYmFkIGVsZW1lbnRzLgoKMjAwOS0wOC0wNCAxMDoyMjoyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNoZWNrOiBkaXNhYmxlIHVuaXQgdGVzdCBzdXBwb3J0IG9uIHdpbjMyIGZvciBub3cKCSAgVW50aWwgd2UgbWFrZSB0aGUgaW50ZXJuYWwgbGliY2hlY2sgd29yayBvbiB3aW5kb3dzLgoKMjAwOS0wNy0xOSAxNzowNDo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiAuZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IGZpeCBzeW1ib2wgZXhwb3J0aW5nCgoyMDA5LTA3LTE3IDAwOjQ2OjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJKiBjaGVjay1jaGVja3MubTQ6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suYzoKCSAgY2hlY2s6IGZpeCBpc3N1ZXMgd2l0aCAnbWFrZSBkaXN0Y2hlY2snCgkgIFNlZW1zIHRvIHdvcmsgbm93LCBhdCBsZWFzdCBvbiAqbml4LiBPbmUgb2YgdGhlIGNvbmZpZ3VyZSBjaGVja3MKCSAgY2F1c2VkIHRoZXNlIHdlaXJkIGlzc3VlcyAtIGJ1dCB3aGljaCBvbmU/CgoyMDA5LTA4LTA2IDE3OjI3OjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJKiBhdXRvZ2VuLnNoOgoJKiBjaGVjay1jaGVja3MubTQ6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svLmdpdGlnbm9yZToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL01ha2VmaWxlLmFtOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLnBjLmluOgoJICBjaGVjazogdXNlIHByaXZhdGUgY29weSBvZiBjaGVjayBmb3IgbGliZ3N0Y2hlY2sKCSAgU2VlICM1NzcyNzUuIFNlZW1zIHRvIHdvcmsgZmluZSwgYnV0IGRvZXNuJ3QgZGlzdGNoZWNrIHlldC4KCjIwMDktMDctMTYgMTg6Mzk6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmguaW46CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2Vycm9yLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2Vycm9yLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2ltcGwuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbGlzdC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19saXN0Lmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xvZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbXNnLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcHJpbnQuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcHJpbnQuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3N0ci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuaDoKCSAgY2hlY2s6IGFkZCBpbnRlcm5hbCBjb3B5IG9mIGNoZWNrLTAuOS42CgkgIE5vdCBob29rZWQgdXAgeWV0LiBTZWUgIzU3NzI3NS4KCjIwMDktMDgtMDYgMTQ6MTE6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgZG9jczogZml4IFNpbmNlOiB0YWcgZm9yIG5ldyBnc3RfY2Fwc19jYW5faW50ZXJzZWN0KCkgZnVuY3Rpb24KCjIwMDktMDctMjIgMTE6MjQ6NTkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogdXNlIG5ldyBfY2Fwc19jYW5faW50ZXJzZWN0KCkKCjIwMDktMDctMjIgMTE6MjQ6MDggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiB1c2UgbmV3IF9jYXBzX2Nhbl9pbnRlcnNlY3QoKQoKMjAwOS0wNy0yMiAwOTo1NDo1NSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHVzZSBuZXcgX2NhcHNfY2FuX2ludGVyc2VjdCgpCgoyMDA5LTA3LTIyIDA5OjM4OjEwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY2FwczogYWRkIGdzdF9jYXBzX2Nhbl9pbnRlcnNlY3QoKQoJICBPZnRlbiB3ZSBkb24ndCBuZWVkIHRoZSByZXN1bHQgb2YgdGhlIGludGVyc2VjdGlvbi4gQWRkIGEgdmFyaWFudCB0aGF0IG9ubHkKCSAgdHJpZXMgdG8gaW50ZXJzZWN0LiBJdCBjYW4gYnJlYWsgb3V0IGVhcmxpZXIgYW5kIGRvZXMgbGVzcyBHVmFsdWUgY29weWluZy4KCSAgQVBJOiBnc3RfY2Fwc19jYW5faW50ZXJzZWN0KCkKCjIwMDktMDctMjIgMDk6MjQ6NTUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBvbmx5IGNoZWNrIGNhcHNfaXNfZml4ZWQoKSBpZiB0aGV5IGNoYW5nZWQKCSAgVGhlIHByZXZpb3VzIGNvZGUgY291bGQgY2FsbCBnc3RfY2Fwc19pc19maXhlZCgpIGZvciB0aGUgc2FtZSBjYXBzIG1hbnkgdGltZXMuCgoyMDA5LTA3LTIxIDEzOjMxOjEzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBzcGxpdCBjYWxsYmFjayBmb3Igc3RydWN0dXJlIGludGVyc2VjdCBpbnRvIHR3byBmdW5jdGlvbnMKCSAgV2UgY2FsbCB0aGlzIHNlcGFyYXRlbHkuIHRoZXJlIGlzIG5vIG11Y2ggYmVuZWZpdCBpbiByZXVzaW5nIHRoZSBjYWxsYmFjay4KCSAgU3BsaXR0aW5nIGlzIGxldCB1cyByZW1vdmUgYSBicmFuY2ggYWxzby4KCjIwMDktMDctMjEgMTM6Mjc6MDkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGxvZ2dpbmc6IGxvZyBpZiB3ZSBjb3B5IGNhcHMgdG8gYmUgYWJsZSB0byB0cmFjayBpdAoKMjAwOS0wNy0yMSAxMTozMjowMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogYWRkIGNvbW1lbnRzIGFib3V0IGdfcHRyX2FycmF5IHNpemUgYmVoYXZpb3VyCgkgIEp1c3QgZXhwbGFpbiB0aGUgYmVoYXZpb3VyIHRvIGF2b2lkIHRoYXQgc29tZW9uZSBlbHNlIGlzIHdhc3RpbmcgdGltZSB0cnlpbmcgdG8KCSAgaW1wcm92ZSB0aGlzIHRvby4KCjIwMDktMDctMjEgMTE6MTQ6MjAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJICBleGFtcGxlOiB1bnJlZiB0aGUgY2xvY2sgaWQKCjIwMDktMDctMjEgMTA6NTY6NTMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiB1c2UgY29ycmVjdCB2YXJpYWJsZSBpbiB0ZXN0CgoyMDA5LTA3LTI4IDE2OjEzOjM3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IGFkZCBmaWxlbmFtZSB0byBkZWJ1ZyBtZXNzYWdlLCBsaWtlIGVsc2V3aGVyZQoKMjAwOS0wNy0yMSAxMDozODoxNSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGZpeCBjb21waWxlciB3YXJuaW5nIGFib3V0IHVudXNlZCB2YXIgd2hlbiBkaXNhYmxpbmcgZGVidWcgbG9nZ2luZwoKMjAwOS0wOC0wNiAxMzoyOToyOSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBwb3N0IGVycm9yIG1lc3NhZ2Ugd2hlbiBwYXVzaW5nIHRhc2sKCSAgSWYgZG93bnN0cmVhbSByZXR1cm5zIGVycm9yIGFuZCB1cHN0cmVhbSBoYXMgYWxyZWFkeSBkZWxpdmVyZWQKCSAgZXZlcnl0aGluZyAoaW5jbHVkaW5nIEVPUykgYW5kIHdpbGwgbm8gbG9uZ2VyIGJlIGFyb3VuZCB0byBmaW5kCgkgIG91dCB0aGF0IHdlIHBhdXNlZCAoYW5kIHdoeSksIHBvc3QgZXJyb3IgbWVzc2FnZS4gIEZpeGVzICM1ODk5OTEuCgoyMDA5LTA3LTI4IDEyOjAzOjM2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcXVldWUtZXJyb3IuYzoKCSAgcXVldWU6IGFkZCB1bml0IHRlc3QKCSAgTWFrZSBhIGRvd25zdHJlYW0gZWxlbWVudCByZXR1cm4gYW4gZXJyb3IgYWZ0ZXIgdXBzdHJlYW0gaGFzIGFscmVhZHkKCSAgcHV0IGFsbCBkYXRhIGludG8gcXVldWUgKGluY2x1ZGluZyBFT1MpLiAgQXMgc3VjaCwgdXBzdHJlYW0KCSAgd2lsbCBub3QgYmUgYXJvdW5kIHRvIHBpY2sgdXAgdGhlIGVycm9yLCBzbyBpdCBpcyB1cCB0byBxdWV1ZSB0bwoJICBhY3QgYXBwcm9wcmlhdGVseS4gIFNlZSAjNTg5OTkxLgoJICBOb3RlIHRoZXJlIG1heSBiZSBkb3duc3RyZWFtIGZhdGFsIGVycm9ycyAoZS5nLiBuZWdvdGlhdGlvbikgdGhhdCBkbwoJICBub3Qgd2FycmFudCBhbiBlcnJvciBtZXNzYWdlIGFscmVhZHkgaGF2aW5nIGJlZW4gcG9zdGVkLgoKMjAwOS0wOC0wNSAxODowMjozMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBjbGFyaWZ5IF9jYXBzX2lzX2VxdWFsKCkKCjIwMDktMDgtMDUgMTc6NTg6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogcmVmYWN0b3IgbWV0YWRhdGEgbW9kaWZpY2F0aW9ucwoJICBDaGVjayB3aGVuIHdlIG5lZWQgdG8gdG91Y2ggdGhlIG1ldGFkYXRhIG9mIHRoZSBvdXRwdXQgYnVmZmVyIGFmdGVyIHNlbGVjdGluZwoJICB0aGUgb3V0cHV0IGJ1ZmZlciBzbyB0aGF0IHdlIGhhdmUgZXZlcnl0aGluZyBpbiBvbmUgcGxhY2UuCgkgIEFsc28gdGFrZSBmbGFncyBhbmQgdGltZXN0YW1wIG1vZGlmaWNhdGlvbnMgaW50byBhY2NvdW50LgoKMjAwOS0wOC0wNSAxNzo1NToxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBvbmx5IHNldCBjYXBzIHdoZW4gZGlmZmVyZW50CgkgIFdoZW4gd2UgaGF2ZSBhbiBpbnB1dCBidWZmZXIgd2l0aCBjYXBzIGFuZCB3aGVuIHRob3NlIGNhcHMgYXJlIGRpZmZlcmVudCBmcm9tCgkgIHRoZSBjYXBzIHdlIHdhbnQsIG9ubHkgdGhlbiBtYWtlIGEgd3JpdGFibGUgY29weSBvZiB0aGUgaW5wdXQgYnVmZmVyIGFzIHRoZQoJICBvdXRwdXQgYnVmZmVyIGFuZCBzZXQgdGhlIGNhcHMgb24gdGhhdCBvdXRwdXQgYnVmZmVyLiBUaGlzIGF2b2lkcyBzb21lIGNhc2VzCgkgIHdoZXJlIHdlIHRvb2sgYSBzdWJidWZmZXIgZm9yIHNldHRpbmcgY2FwcyB0aGF0IHdlcmUgdGhlIHNhbWUuCgoyMDA5LTA4LTA1IDE1OjI4OjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGVuYWJsZSBvcHRpbWlzYXRpb24KCSAgV2hlbiB3ZSBoYXZlIHRoZSBzYW1lIGlucHV0IGFzIG91dHB1dCBjYXBzLCByZXVzZSB0aGUgaW5wdXQgY2FwcyBvYmplY3QuIEFmdGVyCgkgIHRoZSBjYXBzIHJlZmNvdW50aW5nIGhhcyBiZWVuIHNvcnRlZCBvdXQgbm93LCB3ZSBjYW4gZmluYWxseSBlbmFibGUgdGhpcwoJICBvcHRpbWlzYXRpb24uCgoyMDA5LTA4LTA1IDEzOjQ4OjQwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogZG9uJ3Qgc2V0IGNhcHMgb24gdW53cml0YWJsZSBidWZmZXJzCgkgIFRha2UgdGhlIHJlZiBhZnRlciBzZXR0aW5nIHRoZSBjYXBzIG9uIGEgYnVmZmVyIGJlY2F1c2UgZWxzZSB0aGUgYnVmZmVyIGlzCgkgIHRlY2hpbmljYWxseSBub3Qgd3JpdGFibGUuCgoyMDA5LTA4LTA1IDEzOjQ3OjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogZ2V0IGNhcHMgYWZ0ZXIgbWFraW5nIHdyaXRhYmxlCgkgIEdldCB0aGUgY2FwcyBvZiB0aGUgYnVmZmVyIGFmdGVyIHdlIG1hZGUgdGhlIGJ1ZmZlciB3cml0YWJsZS4gVGhpcyBkaWQgbm90CgkgIGNhdXNlIGFueSBwcm9ibGVtcyBidXQgaXQncyBuaWNlciB0aGlzIHdheS4KCjIwMDktMDgtMDUgMTM6NDY6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogZml4IHJlZmNvdW50aW5nIHByb2JsZW0KCSAgTWFrZSBzdXJlIHRoZSBtZXRhZGF0YSBpcyB3cml0YWJsZSBiZWZvcmUgc2V0dGluZyB0aGUgY2FwcyBvbiBhIGJ1ZmZlci4KCjIwMDktMDgtMDUgMTM6NDQ6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZml4IHJlZmNvdW50aW5nIHByb2JsZW0KCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICBNYWtlIHN1cmUgdGhhdCB0aGUgb3V0cHV0IGJ1ZmZlciBoYXMgd3JpdGFibGUgbWV0YWRhdGEgYmVmb3JlIHdlIGF0dGVtcHQgdG8gc2V0CgkgIGNhcHMgb24gaXQuCgkgIGZpeGVzICM1ODM5OTkKCjIwMDktMDgtMDUgMTM6NDQ6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBhZGQgc29tZSBtb3JlIGRlYnVnZ2luZyBpbiBfcmVwbGFjZQoKMjAwOS0wOC0wNSAxMzo0MzoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBBZGQgc29tZSBtb3JlIGRlYnVnZ2luZwoKMjAwOS0wOC0wNSAxMzo0MTozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogc21hbGwgaW1wcm92ZW1lbnRzCgkgIFVucmVmIHRoZSB0YXJnZXQgcGFkIGFmdGVyIHdlIHVzZWQgaXQgZm9yIGRlYnVnZ2luZy4KCSAgQWRkIHNvbWUgbW9yZSBkZWJ1Zy4KCSAgT25seSByZXBsYWNlIGNhcHMgd2hlbiB0aGV5IGNoYW5nZWQuCgoyMDA5LTA3LTI5IDEzOjQ2OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogY2xlYW51cHMgaW4gcG9zaXRpb24gcXVlcmllcwoJICBVc2UgZXhpc3RpbmcgYm9vbGVhbiBmbGFnIHRvIHBhc3MgcG9zaXRpb24gcXVlcmllcyB1cHN0cmVhbS4gQWxzbyBhZGQgdXBzdHJlYW0KCSAgcXVlcmllcyBmb3IgdGhlIGxhc3QgcG9zaXRpb24gcXVlcmllcy4KCjIwMDktMDgtMDUgMTM6MjU6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmUuYWM6IGZpeCBsaWJ4bWwyIGNoZWNrLCB3aGljaCBpcyBvbmx5IG5lZWRlZCBmb3IgeG1sIGxvYWQvc2F2ZSBub3cKCSAgU2luY2UgdGhlIHJlZ2lzdHJ5IGRvZXNuJ3QgdXNlIGxpYnhtbDIgYW55IGxvbmdlciwgaXQncyBubyBsb25nZXIgbmVjZXNzYXJ5CgkgIHRvIGRpc2FibGUgYm90aCB4bWwgbG9hZC9zYXZlICphbmQqIHRoZSByZWdpc3RyeSB0byBnZXQgcmlkIG9mIHRoZSBsaWJ4bWwyCgkgIGRlcGVuZGVuY3ksIGRpc2FibGluZyBqdXN0IHhtbCBsb2FkaW5nL3NhdmluZyBpcyBlbm91Z2guIEZpeGVzICM1OTA4NDEuCgoyMDA5LTA4LTAyIDE0OjMzOjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiByZW5hbWUgdW5pbnN0YWxsZWQgcmVnaXN0cnkgZmlsZSB0byByZWdpc3RyeS5kYXQKCSAgV2UncmUgbm90IHVzaW5nIHRoZSB4bWwgcmVnaXN0cnkgYW55IGxvbmdlciBhZnRlciBhbGwuCgoyMDA5LTA4LTAyIDE0OjI4OjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiByZWZpbmUgc2VhcmNoIHBhdGhzIGZvciB1bmluc3RhbGxlZCBwbHVnaW4gbW9kdWxlcwoJICBVc2UgbW9yZSByZWZpbmVkIHNlYXJjaCBwYXRocyBmb3Igb3VyIHBsdWdpbiBtb2R1bGVzLiBOb3Qgb25seSBkb2VzCgkgIHRoaXMgbWFrZSB0aGluZ3MgbXVjaCBmYXN0ZXIgaW4gYW4gdW5pbnN0YWxsZWQgc2V0dXAsIGl0IGFsc28gbWFrZXMKCSAgc3VyZSB3ZSdyZSBub3QgYWNjaWRlbnRhbGx5IHVzaW5nIG91dC1vZi1kYXRlIHBsdWdpbnMgYnVpbHQgYWdlcwoJICBhZ28gYXMgcGFydCBvZiBhIChmYWlsZWQpICdtYWtlIGRpc3RjaGVjaycgd2hlbiB3ZSBmb3JnZXQgdG8gY2xlYW4KCSAgdXAgdGhlIGRpc3RjaGVjayBidWlsZCBkaXJlY3RvcnkuCgoyMDA5LTA3LTI5IDIzOjQyOjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJICBkb2NzOiBkaXN0IEdTdHJlYW1lci0xLjAgYnVmZmVyIGRlc2lnbiBkcmFmdAoKMjAwOS0wOC0wNiAwNjo1MDo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICB0YWdsaXN0OiBBZGQgbmV3IEFMQlVNX0FSVElTVCB0YWcgdG8gdGhlIGRvY3MKCjIwMDktMDgtMDQgMTQ6MTM6MzQgKzAyMDAgIEpvaG4gTWlsbGlraW4gPGptaWxsaWtpbkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBBZGQgc3VwcG9ydCBmb3IgQUxCVU1fQVJUSVNUIHRhZwoJICBUaGUgImFsYnVtIGFydGlzdCIgdGFnIGlzIHVzZWQgd2hlbiB0aGUgYXJ0aXN0IG9mIGFuIGVudGlyZQoJICBhbGJ1bSBkaWZmZXJzIGZyb20gdGhlIGFydGlzdCBvZiBhbiBpbmRpdmlkdWFsIHRyYWNrOyBmb3IgZXhhbXBsZSwKCSAgd2hlbiBhICJndWVzdCBhcnRpc3QiIGFwcGVhcnMgb24gYW4gYWxidW0sIG9yIG9uIGNvbXBpbGF0aW9ucy4KCSAgRml4ZXMgYnVnICM1OTA0MzAuCgoyMDA5LTA3LTI5IDEzOjMzOjExICswMjAwICBTdGlhbiBTZWxuZXMgPHN0aWFuLnNlbG5lc0BnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBRdWVyeSB1cHN0cmVhbSBmb3IgdGhlIHBvc2l0aW9uIGlmIGNvbnZlcnNpb24gaW4gUEFVU0VEIGZhaWxlZAoJICBGaXhlcyBidWcgIzU5MDA0NS4KCjIwMDktMDctMjggMjA6NDI6MjAgKzAyMDAgIEtpcHAgQ2Fubm9uIDxrY2Fubm9uQGxpZ28uY2FsdGVjaC5lZHU+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogSW1wcm92ZSBkZWJ1ZyBvdXRwdXQgaW4gZ3N0X2Jhc2VfdHJhbnNmb3JtX2FjY2VwdGNhcHMoKQoJICBGaXhlcyBidWcgIzU4OTUyNC4KCjIwMDktMDctMjIgMDk6MDE6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IERvbid0IHVuc2V0IEdBUCBmbGFnIGlmIHdvcmtpbmcgaW4gcGFzc3Rocm91Z2ggbW9kZQoJICBGaXhlcyBidWcgIzU4OTMxNC4KCjIwMDktMDgtMDYgMDE6NDM6NTcgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBkZXZlbG9wbWVudCAtPiAwLjEwLjI0LjEKCj09PSByZWxlYXNlIDAuMTAuMjQgPT09CgoyMDA5LTA4LTA1IDAwOjUxOjE2ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSAgUmVsZWFzZSAwLjEwLjI0CgoyMDA5LTA4LTA0IDIzOjA1OjI3ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwOS0wOC0wMyAxNTozMToyMiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSAgYnl0ZXJlYWRlcjogYXZvaWQgd3JhcC1hcm91bmQgaW4gYnVmZmVyIHNpemUgY2hlY2tzLiAgRml4ZXMgIzU5MDYyMi4KCjIwMDktMDctMzAgMTQ6NDE6MzAgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgMC4xMC4yNC41IHByZS1yZWxlYXNlCgoyMDA5LTA3LTI4IDIxOjE1OjUyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogR2V0IHRoZSBmbHVzaGluZyBzdGF0ZSB3aXRoIHRoZSBvYmplY3QgbG9jayB0YWtlbi4KCSAgRml4ZXMgIzU5MDA1NgoKMjAwOS0wNy0yOCAyMToxNDoxMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IE1ha2Ugc3VyZSB0aGUgQ29sbGVjdERhdGEgbGlzdCBpcyB1cC10by1kYXRlIHdoZW4gcmVhZGluZy9zZXR0aW5nIGl0CgkgIFdpdGhvdXQgdGhpcywgd2Ugcmlza2VkOgoJICAqIENoZWNraW5nIHRoZSBmbHVzaGluZyBzdGF0ZSBvbiBhbiB1bmV4aXN0aW5nIGxpc3QKCSAgKiBOb3Qgc2V0dGluZyB0aGUgZmx1c2hpbmcgc3RhdGUgb24gcGFkcyB0aGF0IGhhZCBqdXN0IGJlZW4gYWRkZWQKCSAgUGFydGlhbGx5IGZpeGVzICM1OTAwNTYKCjIwMDktMDctMjggMjE6MTI6MjUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBTcGxpdCBvdXQgX2NoZWNrX3BhZHMgaW50byBhIHZlcnNpb24gd2l0aG91dCBsb2NrIHRha2luZy4KCSAgVGhpcyBpcyBzbyB3ZSBjYW4gdXNlIF9jaGVja19wYWRzIGluIHBsYWNlcyB3aGVyZSB3ZSd2ZSBhbHJlYWR5IHRha2VuCgkgIHRoZSBsb2NrIGluIHF1ZXN0aW9uLgoJICBQYXJ0aWFsbHkgZml4ZXMgIzU5MDA1NgoKMjAwOS0wNy0yOCAxNToyMzoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmg6CgkgIGNoZWNrOiBtYWtlIG5ldyBHc3RTdHJlYW1Db25zaXN0ZW5jeSBzdHJ1Y3R1cmUgcHJpdmF0ZQoJICBUaGVyZSdzIG5vIG5lZWQgdG8gaGF2ZSBHc3RTdHJlYW1Db25zaXN0ZW5jeSBpbiBhIHB1YmxpYyBoZWFkZXIgZm9yCgkgIHRoZSB0aW1lIGJlaW5nLCBzbyBtYWtlIGl0IHByaXZhdGUuIFdoaWxlIHdlJ3JlIGF0IGl0LCBhZGQgYSBndGstZG9jCgkgIGJsdXJiIGZvciBpdCB0aG91Z2guIFJlLWZpeGVzICM1ODg3NDQuCgoyMDA5LTA3LTI0IDEzOjUwOjE5ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIDAuMTAuMjMuNCBwcmUtcmVsZWFzZQoKMjAwOS0wNy0yNCAwOTo1MDoxOSArMDEwMCAgUm9iaW4gU3RvY2tlciA8cm9iaW5Abmlib3Iub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGRvbid0IGhhbmRsZSBTRUVLSU5HIHF1ZXJpZXMgZm9yIGZvcm1hdHMgdGhhdCBkb24ndCBtYXRjaCB0aGUgb25lIHRoZSBzb3VyY2Ugb3BlcmF0ZXMgaW4KCSAgUmV0dXJuIEZBTFNFIGluIGJhc2VzcmMncyBkZWZhdWx0IHF1ZXJ5IGhhbmRsZXIgd2hlbiB3ZSBnZXQgYSBTRUVLSU5HIHF1ZXJ5IGZvcgoJICBhIGZvcm1hdCB0aGF0J3Mgbm90IHRoZSBvbmUgdGhlIHNvdXJjZSBvcGVyYXRlcyBpbi4gUHJldmlvdXNseSAoaWUuIGJlZm9yZSwgaW4KCSAgdGhlIGdpdCB2ZXJzaW9uKSB3ZSB3b3VsZCByZXR1cm4gVFJVRSBpbiB0aGF0IGNhc2UgYW5kIHNlZWthYmxlPUZBTFNFLCB3aGljaAoJICBpcyBtb3JlIGNvcnJlY3QsIGJ1dCBjYXVzZXMgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgcHJvYmxlbXMuIChCZWZvcmUgdGhhdAoJICB3ZSB3b3VsZCBjaGFuZ2UgdGhlIGZvcm1hdCBvZiB0aGUgcXVlcnkgd2hlbiBhbnN3ZXJpbmcsIHdoaWNoIHdhcyBjb21wbGV0ZWx5CgkgIGJyb2tlbiBzaW5jZSBjYWxsZXJzIGRvbid0IGV4cGVjdCB0aGF0IG9yIGNoZWNrIGZvciBpdCkuIFNpbmNlIHRoZSBTRUVLSU5HCgkgIHF1ZXJ5IGlzIGEgZmFpcmx5IHJlY2VudCBhZGRpdGlvbiwgbm90IGFsbCBkZW11eGVycywgcGFyc2VycyBhbmQgZGVjb2RlcnMKCSAgaW1wbGVtZW50IGl0IHlldCwgaW4gd2hpY2ggY2FzZSBhbnkgU0VFS0lORyBxdWVyeSBieSBhbiBhcHBsaWNhdGlvbiB3aWxsCgkgIGp1c3QgYmUgcGFzc2VkIHVwc3RyZWFtIHdoZXJlIGl0IHdpbGwgdGhlbiBiZSBoYW5kbGVkIGJ5IGJhc2VzcmMuIE5vdywgaWYKCSAgZS5nLiB0b3RlbSBkb2VzIGEgU0VFS0lORyBxdWVyeSBmb3IgVElNRSBmb3JtYXQgYW5kIHdlIGhhdmUgYSBkZW11eGVyIHRoYXQKCSAgZG9lc24ndCBpbXBsZW1lbnQgdGhlIHF1ZXJ5LCBiYXNlc3JjIHdvdWxkIGFuc3dlciBpdCB3aXRoIHNlZWthYmxlPUZBTFNFIGluCgkgIG1vc3QgY2FzZXMsIGFuZCB0b3RlbSBjYW4gb25seSB0YWtlIHRoYXQgYXMgYXV0aG9yaXRhdGl2ZSBhbnN3ZXIsIG5vdCBrbm93aW5nCgkgIHRoYXQgdGhlIGRlbXV4ZXIgZG9lc24ndCBpbXBsZW1lbnQgdGhlIFNFRUtJTkcgcXVlcnkuIFRvIGF2b2lkIHRoaXMsIHdlIG1ha2UKCSAgYmFzZXNyYyByZXR1cm4gRkFMU0UgdG8gU0VFS0lORyBxdWVyaWVzIGluIHVuaGFuZGxlZCBmb3JtYXRzLiBUaGF0IHdheQoJICBhcHBsaWNhdGlvbnMgbGlrZSB0b3RlbSBjYW4gZmFsbCBiYWNrIG9uIGFzc3VtaW5nIHNlZWthYmlsaXR5IGRlcGVuZGluZyBvbgoJICB3aGV0aGVyIGEgZHVyYXRpb24gaXMgYXZhaWxhYmxlLCBvciBzb21lc3VjaC4gRG93bnN0cmVhbSBlbGVtZW50cyBkb2luZwoJICBzdWNoIHF1ZXJpZXMgYXJlIGxpa2VseSB0byBlcXVhdGUgYW4gdW5oYW5kbGVkIHF1ZXJ5IHdpdGggYSBub24tc2Vla2FibGUKCSAgcmVzcG9uc2UgYXMgd2VsbCwgc28gdGhpcyBzaG91bGQgYmUgYW4gYWNjZXB0YWJsZSBmaXggZm9yIHRoZSB0aW1lIGJlaW5nLgoJICBTZWUgIzU4NDgzOCwgIzU4ODk0NCwgIzU4OTQyMyBhbmQgIzU4OTQyNC4KCjIwMDktMDctMjQgMDA6NDE6NTUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZmVkYWFlZSB0byA5NGY5NWUzCgoyMDA5LTA3LTIwIDE2OjExOjAyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgZ3N0cmVnaXN0cnliaW5hcnk6IGFkZCArMSBhZnRlciBlcnJvciBjaGVja2luZwoJICBUaGUgY3VycmVudCBjb2RlIG1hZGUgdGhlIGVycm9yIGNoZWNraW5nIHBvaW50bGVzcyBieSBjaGFuZ2luZyAtMSB0byAwIGluIGVycm9yCgkgIGNhc2VzLiBBbHNvIGRvbid0IGxlYWsgYSBwYWQgdGVtcGxhdGUgb24gZXJyb3IuCgoyMDA5LTA3LTIwIDE1OjUxOjIwICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjIzLjMgcHJlLXJlbGVhc2UKCjIwMDktMDctMjAgMTg6MDM6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFzay5jOgoJICB0ZXN0czogbWFrZSBzdXJlIHRoZSB0YXNrcyBhcmUgam9pbmVkCgkgIENhbGwgX2NsZWFuX2FsbCgpIG9uIHRoZSB0YXNrIHRvIG1ha2Ugc3VyZSBldmVyeXRoaW5nIGlzIGpvaW5lZCBhbmQgc3RvcHBlZC4KCSAgU2VlICM1ODkxMjcKCjIwMDktMDctMjAgMTU6NDQ6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBmaXggdGFza3Bvb2wgbGVhawoJICBHc3RUYWtzIGRvZXMgbm90IGFsd2F5cyB1bnJlZiB0aGUgdGFza3Bvb2wgaXQgd2FzIGNyZWF0ZWQgZnJvbSBiZWNhdXNlIGl0CgkgIGRlcGVuZHMgb24gd2hlbiB0aGUgcG9vbCBwcm92aWRlZCBhbiBJRCBmb3Igam9pbmluZyB0aGUgdGFzay4KCSAgUmV3b3JrIHNvbWUgY29kZSBzbyB0aGF0IHdlIGFsd2F5cyB1bnJlZiB0aGUgcG9vbCBhbmQgb3B0aW9uYWxseSBqb2luIHdoZW4gdGhlCgkgIHBvb2wgcHJvdmlkZWQgYW4gaWQuCgkgIEZpeGVzICM1ODkxMjcKCjIwMDktMDctMjAgMTM6MjY6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogbWFrZSB0YWcgcXVldWluZyB0aHJlYWRzYWZlCgkgIFNlZSAjNTg4NzQ1CgoyMDA5LTA3LTEzIDA5OjIyOjA2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuaDoKCSAgZ3N0Y2hlY2s6IEFkZCBhIHN0cmVhbSBjb25zaXN0ZW5jeSBjaGVja2luZyBoZWxwZXIgcm91dGluZS4gRml4ZXMgIzU4ODc0NAoKMjAwOS0wNy0yMCAxMTowNDowNSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGJpbmFyeXJlZ2lzdHJ5OiBkb24ndCB1bnJlZiBOVUxMIGlmIHdlIGhhdmUgYW4gZWFybHkgcmVhZCBlcnJvcgoKMjAwOS0wNy0xMiAxMDowNDowMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBTZXJpYWxpemUgdGFncyBpbnRvIHRoZSBkYXRhZmxvdy4gRml4ZXMgIzU4ODc0NQoKMjAwOS0wNy0xNiAxNDoxNzowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIGRvY3M6IGZpeCBBUEkgZG9jcyBmb3IgZ3N0X3thZGFwdGVyfGJ5dGVfcmVhZGVyfV9tYXNrZWRfc2Nhbl91aW50MzIKCSAgQ2xhcmlmeSBieXRlIHJlYWRlciBkb2NzIGEgYml0OiBvZmZzZXQgaXMgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQKCSAgcG9zaXRpb24gb2YgdGhlIHJlYWRlciwgbm90IHRvIHRoZSBzdGFydCBvZiB0aGUgZGF0YS4gQWxzbywgdGhlCgkgIGV4YW1wbGVzIGluIGJvdGggdGhlIGFkYXB0ZXIgZG9jcyBhbmQgdGhlIGJ5dGUgcmVhZGVyIGRvY3MgaGF2ZQoJICB0aGUgbWFzayBhbmQgcGF0dGVybiBhcmd1bWVudHMgc3dhcHBlZCAoc2VlICM1ODc1NjEpLiBTcG90dGVkCgkgIGJ5IENhcmwtQW50b24gSW5nbWFyc3Nvbi4KCjIwMDktMDctMTYgMTM6NTk6MDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkgIHRhZ3M6IG9ubHkgZW1pdCBhIGdfd2FybmluZygpIGZvciBlbXB0eSB0YWcgc3RyaW5ncyBmb3IgZ2l0IHZlcnNpb25zCgkgIEZvciBub3csIGRvbid0IHNob3cgYSBnX3dhcm5pbmcoKSBmb3IgZW1wdHkgdGFnIHN0cmluZ3MgYW5kIE5VTEwKCSAgdGFncyB3aXRoIG5vbi1naXQgdmVyc2lvbnM7IHdlIHNob3VsZCB3YWl0IGZvciB0aGUgZml4ZXMgaW4gb3VyCgkgIHBsdWdpbiBtb2R1bGVzIHRvIG1ha2UgaXQgaW50byBhIHJlbGVhc2UgYmVmb3JlIHdlIGVuYWJsZSB0aGlzCgkgIHVuY29uZGl0aW9uYWxseS4KCjIwMDktMDctMTQgMTg6NTk6MTMgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgMC4xMC4yMy4yIHByZS1yZWxlYXNlCgoyMDA5LTA3LTE0IDEyOjE1OjA1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGFkZCBleHBsYW5hdGlvbiBmb3Igc2hvcnRjdXQKCjIwMDktMDctMTAgMjA6MDQ6NDggKzAxMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiB0YWtlIHNpemUgb25jZQoKMjAwOS0wNy0xMCAxOToxNzowNCArMDEwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBmaXggY2FuX2ludGVyc2VjdCB0byBiZWhhdmUgbGlrZSBpbnRlcnNlY3QKCSAgQWRkIGEgcXVpY2sgcmV0dXJuIGlmIHR3byB0eXBlcyBhcmUgdGhlIHNhbWUuIENoYW5nZSB0aGUgY2hlY2sgZm9yIHRoZQoJICBpbnRlcnNlY3Rpb24gZnVuY3Rpb24gdG8gYmUgdGhlIHNhbWUgYXMgdGhlIG9uZSB1c2VkIGluIGludGVyc2VjdCgpLiBUaGUKCSAgbGF0ZXIgdHJpZXMgYm90aCBkaXJlY3Rpb25zLgoKMjAwOS0wNy0xNCAwMDowNDoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBnc3RpbmZvOiBtYWludGFpbiBBQkkgY29tcGF0aWJpbGl0eSBldmVuIGlmIGRlYnVnZ2luZyBpcyBkaXNhYmxlZAoKMjAwOS0wNy0wMiAxMjo0MDowNSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgc3RydWN0dXJlOiBDaGFuZ2UgTlVMTCBhbmQgZW1wdHkgc3RyaW5nIGhhbmRsaW5nCgkgIERvbid0IGZvcmJpZCB0aGUgZW1wdHkgc3RyaW5nICIiIGluIGdlbmVyaWMgc3RydWN0dXJlcywgb25seSBpbiB0YWdsaXN0cy4KCSAgUHJvcGVybHkgYWxsb3cgdGhlIE5VTEwgc3RyaW5nIGJ5IGFkZGluZyBzcGVjaWFsIGNhc2VzIGZvciBzZXJpYWxpc2luZwoJICBhbmQgZGVzZXJpYWxpc2luZyBpdC4gcHJvcDE9KHN0cmluZylOVUxMIGlzIHRoZSBOVUxMIHN0cmluZywKCSAgcHJvcDE9KHN0cmluZykiTlVMTCIgaXMgdGhlIGFjdHVhbCBzdHJpbmcgd2l0aCB0aGUgdmFsdWUgIk5VTEwiCgoyMDA5LTA3LTEzIDEyOjIzOjAyIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDU4NDViNjMgdG8gZmVkYWFlZQoKMjAwOS0wNy0xMyAxMjowMDo0NyArMDIwMCAgQW5kb25pIE1vcmFsZXMgPHlsYXR1eWEgYXQgZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBmaWxlc2luazogRml4IHNlZ2ZhdWx0IHdpdGggTVNWQwoJICBEb24ndCB1c2UgZGVwcmVjYXRlZCBmaWxlbm8gb24gTVNWQyBidXQgcmVwbGFjZSB3aXRoIF9maWxlbm8KCSAgRml4ZXMgIzU4NzA1MgoKMjAwOS0wNy0xMyAwOTozMjo1NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJICBkb2NzL2Rlc2lnbjogVXBkYXRlIE1ha2VmaWxlLmFtIGZvciBjaGFuZ2VkIGZyYW1lc3RlcCBkb2N1bWVudCBuYW1lLgoKMjAwOS0wNy0xMCAxOToyNzoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogdGhlIHBsdWdpbiBmZWF0dXJlcyBsaXN0ZWQgYnkgZ3N0LWluc3BlY3QgYXJlIHR5cGVmaW5kZXJzLCBub3QgdHlwZXMKCjIwMDktMDctMTAgMTg6NDY6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXIyLnR4dDoKCSAgZG9jczogYWRkIGRyYWZ0IGZvciBhcmJpdHJhcnkgYnVmZmVyIG1ldGFkYXRhIGlkZWEKCjIwMDktMDctMTAgMTg6MzU6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWZyYW1lc3RlcC50eHQ6CgkgIGRvY3M6IG1vcmUgZnJhbWVzdGVwIGRvY3Mgb3V0IG9mIGRyYWZ0CgoyMDA5LTA3LTEwIDE4OjMzOjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtZnJhbWVzdGVwLnR4dDoKCSAgZG9jczogdXBkYXRlIGZyYW1lc3RlcCBkb2N1bWVudAoJICBSZW1vdmUgZXhwZXJpbWVudGFsIHN0YXR1cyBmcm9tIHRoZSBmcmFtZXN0ZXAgZHJhZnQuCgoyMDA5LTA3LTA4IDE1OjE1OjA0ICswMjAwICBQaGlsaXAgSsOkZ2Vuc3RlZHQgPHBoaWxpcGpAb3BlcmEuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogRml4IGNvbXBpbGF0aW9uIGlmIG9wdGlvbiBwYXJzaW5nIGlzIGRpc2FibGVkCgkgIEZpeGVzIGJ1ZyAjNTg3OTc2LgoKMjAwOS0wNy0wOCAxNToxMDoyNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IFVzZSBnX2J1aWxkX2ZpbGVuYW1lKCkgaW5zdGVhZCBvZiBnX3N0cmpvaW4oKSB3aXRoIC8KCSAgVGhpcyBtYWtlcyBzdXJlIHRoYXQgdGhlIGdlbmVyYXRlZCBmaWxlbmFtZXMgdXNlIHRoZSBwbGF0Zm9ybQoJICBzcGVjaWZpYyBkaXJlY3Rvcnkgc2VwYXJhdG9yIGluc3RlYWQgb2YgLy4KCSAgRml4ZXMgYnVnICM1ODc5NzMuCgoyMDA5LTA3LTA3IDIwOjEzOjQ4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGRvY3M6IGFkZCAnU2luY2UnIHRhZyBmb3IgbmV3IEdTVF9ERUJVR19DQVRFR09SWV9HRVQgbWFjcm8KCjIwMDktMDctMDcgMDA6MjM6NDEgKzAxMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IG1ha2UgaXQgdGhlIGJlc3Qgb2Ygd2ltcyBhbmQgZWR3YXJkcyBwYXRjaC4KCSAgQ2hlY2sgdGhlIHJpZ2h0IGZsdXNoaW5nIGZsYWcsIGJ1dCBzdGlsbCBhZGQgaXQgdG8gdGhlIHBhZC1saXN0LgoKMjAwOS0wNi0zMCAxMToyNjozNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGluZm86IGFsbG93IGdldHRpbmcgb3RoZXIgbG9nIGNhdGVnb3JpZXMuIEZpeGVzICM1ODc0MTcKCSAgQWRkIGEgbmV3IG1hY3JvIEdTVF9ERUJVR19DQVRFR09SWV9HRVQgdG8gZ2V0IGEgbG9nIGNhdGVnb3J5IGJ5IG5hbWUuIFRoaXMKCSAgYWxsb3dzIHBsdWdpbnMgdG8gdXNlIGUuZy4gY29yZSBjYXRlZ29yaWVzIGxpa2UgUEVSRk9STUFOQ0Ugb3IgQ0xPQ0suCgkgIEFQSTogR1NUX0RFQlVHX0NBVEVHT1JZX0dFVAoKMjAwOS0wNy0wNiAxOTo1MTo1NyArMDEwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IG1ha2UgY29tbWVudCBhIEZJWE1FIGNvbW1lbnQKCjIwMDktMDctMDYgMTk6NTA6NTIgKzAxMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIGxvZ2dpbmc6IGxvZyBvYmplY3QgdHlwZSBpbiBtZXNzYWdlCgoyMDA5LTA3LTA2IDE5OjQ4OjU4ICswMTAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGxvZ2dpbmc6IHVzZSBwZXJmIGNhdGVnb3J5IGZvciBkcm9wcGVkIGJ1ZmZlcnMKCjIwMDktMDYtMjkgMTE6MjY6NTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBEb24ndCBmb3J3YXJkIEZMVVNIX1NUT1AgaWYgc29tZSBpbnB1dCBzdHJlYW1zIGFyZSBzdGlsbCBmbHVzaGluZy4KCSAgVGhpcyBndWFyYW50ZWVzIHRoYXQgb25seSBvbmUgRkxVU0hfU1RPUCBldmVudCAodGhlIGxhc3Qgb25lKSB3aWxsIGJlIHNlbnQKCSAgZG93bnN0cmVhbSB3aGVuIGEgZmx1c2hpbmcgc2VlayBpcyBiZWluZyBkb25lIHRocm91Z2ggY29sbGVjdHBhZHMuCgoyMDA5LTA2LTI0IDExOjExOjM1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogVXBkYXRlIHRoZSBjb29raWUgd2hlbiBzZXR0aW5nIG91cnNlbHZlcyBhcyBmbHVzaGluZy4KCSAgVGhpcyBmb3JjZXMgdGhlIHBhZCBzdGF0dXMgdG8gYmUgcmUtZXZhbHVhdGVkIG9uIHRoZSBuZXh0IF9jaGVja19wYWRzKCkuCgoyMDA5LTA2LTA5IDE0OjU0OjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidXMuaDoKCSogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSAgZG9jczogZml4IGd0ay1kb2MgLyo8IHByaXZhdGUgPiovIG1hcmtlcgoKMjAwOS0wNi0wOSAxNDo0ODo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZGVsZW1lbnQ6IGxvZyBwcm9iYWJpbGl0eSBpbiBkZWJ1ZyBtZXNzYWdlCgoyMDA5LTA2LTMwIDE4OjIyOjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogZml4IHBhcnNpbmcgb2YgdGhlIHN0ZXAgZG9uZSBtZXNzYWdlCgkgIFBhcnNlIHRoZSBkdXJhdGlvbiBmaWVsZCB0b28uCgoyMDA5LTA2LTI5IDExOjI0OjI1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGJpbmFyeXJlZ2lzdHJ5OiBVc2UgbG9jYWwgdmFsdWVzIGluIHdoaWxlL2ZvciBsb29wcywgdXNlIGJyYW5jaCBwcmVkaWN0aW9uIG1hY3JvcwoKMjAwOS0wNi0yOSAxMToyMzozMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIFNwcmVhZCBicmFuY2ggcHJlZGljdGlvbiBtYWNyb3MuCgkgIFRoZXNlIGFyZSBiYXNlZCBvbiBwcm9maWxpbmcgc2V2ZXJhbCBwbGF5YmFjayBzY2VuYXJpb3MgdXNpbmcgcGxheWJpbjIuCgoyMDA5LTA2LTI5IDExOjIwOjEyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIFVzZSBsb2NhbCB2YXJpYWJsZXMgaW4gZm9yL3doaWxlIGxvb3BzLgoJICBUaGlzIG1ha2VzIHRoZSBnZW5lcmF0ZWQgY29kZSBmYXN0ZXIgc2luY2U6CgkgICogSXQgd29uJ3QgaGF2ZSB0byByZWFkIGFuIHVuZGlyZWN0IHZhbHVlICh3aGljaCB3aWxsIG1vc3QgbGlrZWx5IGJlCgkgIG91dHNpZGUgb2YgdGhlIEwxL0wyIGNhY2hlKQoJICAqIFdlIGtub3cgdGhhdCB2YWx1ZSBuZXZlciBjaGFuZ2VzICh0aGUgY29tcGlsZXIgaGFzIG5vIGNsdWUgdGhhdCBpdCBkb2Vzbid0KS4KCjIwMDktMDYtMDkgMTk6MDg6MjYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIGxpYnMvY29udHJvbGxlcjogU2V0IGRlZmF1bHQgZ3N0IGRlYnVnZ2luZyBjYXRlZ29yeS4KCjIwMDktMDYtMjkgMTE6NTc6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL21hc3MtZWxlbWVudHMuc2NtOgoJICB0ZXN0czogZml4IGV4YW1wbGUKCjIwMDktMDYtMjkgMTE6NTY6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYnVmZmVybGlzdDogdXNlIGZhc3RlciBnc3RfYnVmZmVyX2xpc3RfZ2V0KCkKCSAgVXNlIHRoZSBmYXN0ZXIgZ3N0X2J1ZmZlcl9saXN0X2dldCgpIHRvIGdldCB0aGUgZmlyc3QgYnVmZmVyIG9mIGEgbGlzdC4KCjIwMDktMDYtMjkgMTE6NTU6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBmaXggZXhhbXBsZQoJICBUaGUgX2RvIGZ1bmN0aW9uIG5vdyB0YWtlcyB1c2VyX2RhdGEgaW4gYWxsIGNhc2VzLgoKMjAwOS0wNi0yOSAxMTo0NjowMCArMDIwMCAgT2dueWFuIFRvbmNoZXYgPG9nbnlhbkBheGlzLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHRha2UgdGltZXN0YW1wIGxhdGVyCgkgIE1ha2Ugc3VyZSB3ZSBkb24ndCBhY2NpZGVudGFsbHkgY2FzdCBhIGJ1ZmZlcmxpc3Qgb2YgYSBidWZmZXIgYW5kIHRyeSB0byB0YWtlCgkgIHRoZSB0aW1lc3RhbXAgb2YgaXQuCgkgIFJlZml4ZXMgIzU4NTk2MAoKMjAwOS0wNi0yOSAxMTowNzowMCArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnIGF0IGF4aXMuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgZG9jczogZml4IHNvbWUgdHlwb3MKCjIwMDktMDYtMjkgMTE6MjQ6MDQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGxvZ2dpbmc6IGFkZCBhIHBlcmZvcm1hY2UgbG9nIGNhdGVnb3J5CgkgIFRoaXMgY2F0ZWdvcnkgY2FuIGJlIHVzZWQgdG8gbG9nIHNsb3cgY29kZSBwYXRoIGFuZCBoZWxwIGF1ZGl0aW5nIHRoZQoJICBwZXJmb3JtYW5jZS4gQWRkIEZJWE1FLTAuMTEgdG8gc29tZSBxdWVzdGlvbmFibGUgY2F0ZWdvcmllcy4KCjIwMDktMDYtMjcgMTY6MzQ6MzYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBmaXggaW50LT5naW50IHRvIGJlIGluIHN5bmMgd2l0aCB0aGUgKi5oICBhbmQgdXNhZ2UKCjIwMDktMDYtMjYgMTM6MzM6NTAgKzAxMDAgIEphbiBTY2htaWR0IDxqYW4uc2NobWlkdEBzdW4uY29tPgoKCSogYXV0b2dlbi5zaDoKCSAgYXV0b2dlbi5zaDogVXNlIHByaW50ZiBpbnN0ZWFkIG9mICdlY2hvIC1uJy4gQ2hlY2sgZm9yIGF1dG9tYWtlLTEuMVswMV0KCSAgQ2hlY2sgZm9yIG1vcmUgYXV0b21ha2UgY29tbWFuZCB2YXJpYW50cy4gVXNlIHByaW50ZiBpbnN0ZWFkIG9mICdlY2hvIC1uJwoJICBmb3IgcG9ydGFiaWxpdHkKCjIwMDktMDYtMjYgMTM6NDE6MTEgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZjgxMDAzMCB0byA1ODQ1YjYzCgoyMDA5LTA2LTI2IDEyOjUwOjUzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICByZXF1ZXN0LXBhZDogdGVsbCBhYm91dCByZWYgY291bnRzIGluIHJlbGVhc2VfcmVxdWVzdF9wYWQgZG9jcy4KCSAgSXQgaXMgbm90IHRvbyBvYnZpb3VzIHRoYXQgZ2V0dGluZyBhbmQgcmVsZWFzaW5nIHJlcXVlc3QgcGFkcyBpcyBub3QgZW50aWVybHkKCSAgc3ltZXRyaWNhbCByZWdhcmRpbmcgdG8gdGhlIHBhZCByZWZjb3VudC4gQWRkIGEgbm90ZSBhYm91dCB0aGF0IHRvIHRoZSBkb2NzLgoJICBUaGlzIG1pZ2h0IGRlc2VydmUgYSBGSVhNRS0wLjExIHRvby4KCjIwMDktMDYtMjUgMTE6MjU6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZG9uJ3QgZG8gdGhpbmdzIHdpdGggc2lkZSBlZmZlY3RzIHdpdGhpbiBhIGdfYXNzZXJ0KCkKCSAgTWFrZSB0aGUgYnVmZmVybGlzdCBzdHVmZiB3b3JrIHByb3Blcmx5IHdoZW4gdGhpbmdzIGFyZSBjb21waWxlZAoJICB3aXRoIC1ER19ESVNBQkxFX0FTU0VSVC4KCjIwMDktMDYtMjQgMTg6MzE6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBhdm9pZCBkb2luZyBsb2dpYyBpbiBnX2Fzc2VydAoJICBNYWtlIHN1cmUgd2Ugc3RpbGwgZG8gdGhlIHJpZ2h0IHRoaW5nIHdoZW4gZ2xpYiBpcyBjb21waWxlZCB3aXRob3V0CgkgIGFzc2VydGlvbnMuCgoyMDA5LTA2LTIyIDA1OjAwOjU0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRmlyZSB0aGUgb3ZlcnJ1biBzaWduYWwgb24gRU9TCgkgIEZpeGVzIHN0YXJ0dXAgb2Ygc29tZSBzaG9ydCBNUEVHIGZpbGVzIHdpdGggZGVjb2RlYmluMi9wbGF5YmluMgoJICB3aGVyZSBhbGwgdGhlIGRhdGEgZml0cyBpbiB0aGUgbXVsdGlxdWV1ZSBhbmQgRU9TIGFycml2ZXMgYmVmb3JlCgkgIHRoZSBncm91cCBpcyBleHBvc2VkLgoKMjAwOS0wNi0yNCAxNToxMzozNyArMDEwMCAgSmFuIFNjaG1pZHQgPGphbi5zY2htaWR0QHN1bi5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGYzYmI1MWIgdG8gZjgxMDAzMAoKMjAwOS0wMy0yOCAxMzo1OTowOCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgR3N0U3RydWN0dXJlOiBVc2UgZGlyZWN0IHZhbHVlcyBmb3IgcmVwZXRpdGl2ZSBjb25kaXRpb25hbHMgKGZvci93aGlsZSkuCgoyMDA5LTA2LTI0IDEwOjQ1OjUyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIG1pbmlvYmplY3RzOiBEb24ndCBjaGFpbiB1cCB0byBlbXB0eSBmaW5hbGl6ZSBtZXRob2QuCgkgIElmIGV2ZXIgd2UgZG8gYW55dGhpbmcgaW4gbWluaV9vYmplY3RfZmluYWxpemUsIHdlIHNob3VsZCBtYWtlIHN1cmUgdGhlIDQKCSAgY29yZSBtaW5pb2JqZWN0IGZpbmFsaXplIG1ldGhvZHMgY2hhaW4gYmFjayB1cCBhZ2Fpbi4KCjIwMDktMDMtMjcgMjA6MTc6MTUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBnc3RjYXBzOiBVc2UgZGlyZWN0IHZhbHVlcyBmb3IgcmVwZXRpdGl2ZSBjb25kaXRpb25hbHMgKGZvci93aGlsZSkuCgoyMDA5LTA2LTI0IDA5OjI4OjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkgIG1ha2UgY2hlY2s6IGFkZCBjaGVjayBmb3IgZW51bSB0eXBlIGNsYXNzIHVucmVmcyBpbiBnc3RfZGVpbml0KCkgdG9vCgkgIEp1c3QgYmVjYXVzZSB3ZSBjYW4gcmVhbGx5LgoKMjAwOS0wNi0yMyAxMzo0NDo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0cmFjZS5jOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRyYWNlOiB1c2UgcHJvcGVyIGxvY2tpbmcgaW4gR3N0VHJhY2UKCSAgUHJvdGVjdCB0aGUgYWxsb2NhdGVkIGxpc3Qgb2Ygb2JqZWN0cyB3aXRoIGEgbG9jayBzbyB0aGF0IHRyYWNlIGFjdHVhbGx5IHdvcmtzCgkgIHJlbGlhYmx5LgoJICBTaG9ydGN1dCB0aGUgYWxsb2MgdHJhY2Ugc29vbmVyIHdoZW4gZGlzYWJsZWQuCgoyMDA5LTA2LTIzIDEzOjM0OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBvYmplY3Q6IGFsc28gYWRkIHBvaW50ZXJzIHRvIGRlYnVnCgkgIEFkZCB0aGUgb2JqZWN0IHBvaW50ZXJzIGluIHRoZSBkZWJ1ZyBpbmZvIGZvciBfcmVwbGFjZS4KCjIwMDktMDYtMjMgMTI6NTY6NTkgKzAyMDAgIENoYWQgSGFubmEgPGNoYW5uYUBsaWdvLmNhbHRlY2guZWR1PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IEFkZCBHQVAgZmxhZyBzdXBwb3J0CgkgIGNhcHNmaWx0ZXIgZG9lc24ndCBhY3R1YWxseSB0b3VjaCB0aGUgZGF0YSBzbyB3ZSBkb24ndCB3YW50IHRoZSBHQVAgZmxhZyB0bwoJICBiZSB1bnNldCBieSBiYXNldHJhbnNmb3JtLgoJICBGaXhlcyBidWcgIzU4NjU2Ni4KCjIwMDktMDYtMjMgMTA6MDU6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGRlZnM6IGFkZCBuZXcgYnl0ZSByZWFkZXIgbWV0aG9kcwoKMjAwOS0wNS0yMiAxNDo0NzozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJICBieXRlcmVhZGVyOiBhZGQgYSBidW5jaCBvZiB1dGlsaXR5IGZ1bmN0aW9ucyBmb3Igc3RyaW5ncyBhbmQgYSBkYXRhIGR1cCBmdW5jdGlvbgoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9kdXBfZGF0YQoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9kdXBfc3RyaW5nCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX2R1cF9zdHJpbmdfdXRmOAoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9kdXBfc3RyaW5nX3V0ZjE2CgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX2R1cF9zdHJpbmdfdXRmMzIKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfc2tpcF9zdHJpbmcKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfc2tpcF9zdHJpbmdfdXRmOAoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9za2lwX3N0cmluZ191dGYxNgoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9za2lwX3N0cmluZ191dGYzMgoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9wZWVrX3N0cmluZwoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9wZWVrX3N0cmluZ191dGY4CgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX2dldF9zdHJpbmcKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfZ2V0X3N0cmluZ191dGY4CgkgIEFuZCBzb21lIGJhc2ljIHVuaXQgdGVzdHMuIEZpeGVzICM1ODY1NjguCgoyMDA5LTA2LTIyIDE4OjE3OjI4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBmaXggdHlwbyBpbiB0YWcgZGVzY3JpcHRpb24KCjIwMDktMDYtMjEgMDA6MjY6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgdGVzdHM6IGZpeCBjcmFzaCBhbmQgbGVhayBpbiBidWZmZXJsaXN0cyB1bml0IHRlc3QKCSAgRG9uJ3QgYWNjZXNzIGFscmVhZHktZnJlZWQgaXRlcmF0b3IsIG1ha2VzIGNoZWNrLXZhbGdyaW5kIHdvcmsgYW5kIGZpeGVzCgkgIGNyYXNoIG9uIFBQQzsgdW5yZWYgYnVmZmVyIHdlJ3JlIGdvaW5nIHRvIHN0ZWFsIHRvIG1ha2UgdmFsZ3JpbmQgaGFwcHkuCgoyMDA5LTA2LTIxIDAwOjA5OjUzICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0LmM6CgkgIGluaXQ6IEZpeCBpbmRlbnQsIGFuZCByZWYgdGhlIGdzdF9idWZmZXJfbGlzdF9pdGVtX2dldF90eXBlKCkgY2xhc3MKCSAgRml4IHRoZSBjaGVjayB0ZXN0cyBieSByZWZmaW5nIHRoZSBHc3RCdWZmZXJMaXN0IGNsYXNzLiBSdW4gZ3N0LWluZGVudAoJICB0byBtYWtlIGdpdCBoYXBweSBhYm91dCBzb21lIGV4aXN0aW5nIHN0dWZmCgoyMDA5LTA2LTE5IDIxOjAzOjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBmaXggYnJva2VuIGZsYWdzIHRvIGZsYWcgc3RyaW5nIHNlcmlhbGlzYXRpb24KCSAgZS5nLiBjZHBhcm5vaWFzcmMgd291bGQgc2hvdyBmcmFnbWVudHxmdWxsIGZvciBhIGZsYWdzIHZhbHVlIG9mIDIuCgoyMDA5LTA2LTE5IDE5OjM1OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBhZGQgYnVmZmVyLWxpc3Qgc3VwcG9ydAoKMjAwOS0wNi0xOSAxOToyNDo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkgIGJ1ZmZlcmxpc3Q6IHJlbW92ZSBvbGQgZW51bSBmcm9tIGRvY3MKCjIwMDktMDYtMTkgMTQ6NDU6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZ3N0aW5mbzogZGVmaW5lIF9fZ3N0X2RlYnVnX21pbiB0byBMT0dfTEVWRUxfTk9ORSBpZiBkZWJ1Z2dpbmcgaXMgZGlzYWJsZWQKCSAgSnVzdCBpbiBjYXNlIHNvbWVvbmUgd2hvIGNsZWFybHkgY2FuJ3QgYmUgZGV0ZXJyZWQgYnkgYW55IG51bWJlciBvZiBsZWFkaW5nCgkgIHVuZGVyc2NvcmVzIHVzZXMgdGhpcyB2ZXJ5IHByaXZhdGUgYnV0IHN0aWxsIHNvbWV3aGF0IGRvY3VtZW50ZWQgc3ltYm9sCgkgIGRpcmVjdGx5IGluIHRoZWlyIGNvZGUgKCpjb3VnaCogcXRkZW11eCAqY291Z2gqKS4KCjIwMDktMDYtMTkgMTU6Mjk6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVybGlzdDogVmFyaW91cyBjbGVhbnVwcwoJICBBZGQgbmV3IG1ldGhvZCB0byBpdGVyYXRlIGEgYnVmZmVybGlzdCB3aXRob3V0IGhhdmluZyB0byBhbGxvY2F0ZSBhbiBpdGVyYXRvci4KCSAgQWRkIGNvbnZlbmllbmNlIG1ldGhvZCBmb3IgZ2V0dGluZyBhbiBpdGVtIGZyb20gdGhlIGxpc3QgYmFzZWQgb24gdGhlIGdyb3VwIGFuZAoJICBpbmRleC4KCSAgUmVtb3ZlIHJlZHVuZGFudCBfZG9fZGF0YSBjYWxsYmFjayBhbmQgbWV0aG9kLgoJICBVcGRhdGUgdW5pdC10ZXN0cyBhbmQgYWRkIHNvbWUgbW9yZSBmb3IgdGhlIG5ldyBtZXRob2RzLgoKMjAwOS0wNi0xOSAxNDoxMDozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGRvY3M6IG1ha2UgZ3RrLWRvYyBoYXBweQoKMjAwOS0wNi0xOSAxMzo1MTo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSAucG8gZmlsZXMgYWZ0ZXIgc3RyaW5nIGNoYW5nZXMKCjIwMDktMDYtMTkgMTM6NDg6NDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgZmRzaW5rOiBjbGVhbiB1cCBzb21lIG1vcmUgZXJyb3IgYW5kIGRlYnVnIG1lc3NhZ2VzCgoyMDA5LTA2LTE5IDEzOjQyOjQ1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJICB0YXNrcG9vbDogZml4IHVudXNlZCB2YXJpYWJsZSB3YXJuaW5nIGluIGNhc2UgZGVidWdnaW5nIGlzIGRpc2FibGVkCgoyMDA5LTA2LTE5IDEzOjQwOjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGdzdGluZm86IGZpeCBleHBvcnQgb2YgR1NUX0NBVF9CVUZGRVJfTElTVCB3aGVuIC0tZ3N0LWRpc2FibGUtZGVidWcgaXMgdXNlZAoJICBNb3ZlIGFsbCB0aGUgY2F0ZWdvcmllcyB0byBleHBvcnQgdG8gb25lIHNpbmdsZSBwbGFjZSwgc28gd2UgZG9uJ3QKCSAgYWNjaWRlbnRhbGx5IHVwZGF0ZSBvciBhZGQgdmFycyBpbiBvbmUgcGxhY2UgYnV0IG5vdCB0aGUgb3RoZXIuCgoyMDA5LTA2LTE4IDE2OjUwOjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogdXNlIHRoZSByaWdodCBmbHVzaGluZyBmbGFnLgoJICBXZSBuZWVkIHRvIHVzZSB0aGUgcGFkIHByaXZhdGUgZmxhZyBiZWNhdXNlIHRoZSBvdGhlciBwYWQgZmxhZyBpcyBwcm90ZWN0ZWQgd2l0aAoJICB0aGUgcGFkIGxvY2sgaW5zdGVhZC4KCjIwMDktMDYtMTggMTY6NDE6NDYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBQcm9wZXJseSBoYW5kbGUgZmx1c2hpbmcgcGFkcy4KCSAgSWYgYSBwYWQgaXMgZmx1c2hpbmcsIGl0IHNob3VsZCBub3QgYmUgY29uc2lkZXJlZCBhcyBlaXRoZXIgZW9zIG9yCgkgIGNvbnRhaW5pbmcgZGF0YS4KCjIwMDktMDYtMTggMTE6Mjc6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgZmRzaW5rOiBmaXggZXJyb3IgbWVzc2FnZQoJICBVc2VycyBzaG91bGQgbmV2ZXIgc2VlIHRoZSB0ZXJtICdmaWxlIGRlc2NyaXB0b3InLCBtdWNoIGxlc3MgYSBmaWxlCgkgIGRlc2NyaXB0b3IgbnVtYmVyLCBpbiBhbiBlcnJvciBtZXNzYWdlLiBQdXQgdGhhdCBpbnRvIHRoZSBkZWJ1ZwoJICBzdHJpbmcgaW5zdGVhZCBhbmQgdXNlIHRoZSBkZWZhdWx0IGVycm9yIG1lc3NhZ2UuCgoyMDA5LTA2LTE4IDExOjQ5OjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSAgZmRzaW5rOiBhZGQgdGhlIG5ldyBmaWVsZCBpbiB0aGUgaGVhZGVyCgoyMDA5LTA2LTE4IDEwOjU1OjM5ICswMjAwICBCZW5qYW1pbiBHYWlnbmFyZCA8YmVuamFtaW4gYXQgZ2FpZ25hcmQubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgZmRzaW5rOiBtYWtlIGZkc2luayBzZWVrYWJsZQoJICBJbXBsZW1lbnQgdGhlIHNhbWUgbG9naWMgYXMgZmlsZXNpbmsgdG8gaW1wbGVtZW50IHNlZWtpbmcuCgkgIEZpeGVzICM1Nzg5MDgKCjIwMDktMDYtMTcgMTY6NDU6MTcgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGdzdGVsZW1lbnQ6IG1vdmVkIHRoZSBjbG9jayB1bnJlZiB0byB0aGUgcmlnaHQgcGxhY2UKCjIwMDktMDYtMTcgMTY6MTc6MjcgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGdzdGVsZW1lbnQ6IHVucmVmIHRoZSBjbG9jayB3aGVuIHRoZSBlbGVtZW50IGNoYW5nZXMgdG8gbnVsbCBzdGF0ZQoKMjAwOS0wNi0xNyAwMDoyOTo0MCArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIFJlcGxhY2VkIGRlcHJlY2F0ZWQgd2luMzItY29tcGF0aWJpbGl0eSBmdW5jdGlvbiB3aXRoIHVuZGVwcmVjYXRlZCBvbmUuCgkgIEZpeGVzICM1NjA0NDIuCgoyMDA5LTA2LTE2IDE4OjMyOjEyICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGdzdGJpbjogc3dhcCB0aGUgbGluZXMgb2YgbXkgcHJldmlvdXMgY29tbWl0CgkgIEZpeGVzIGEgYnVnIGludHJvZHVjZWQgaW4gbXkgcHJldmlvdXMgY29tbWl0IHRoYXQgcmVsZWFzZWQgdGhlCgkgIGNsb2NrIHByb3ZpZGVyIGFuZCBhZnRlciB1c2VkIGl0IHRvIGNyZWF0ZSB0aGUgY2xvY2sgbG9zdCBtZXNzYWdlLgoKMjAwOS0wNi0xNiAxNzo1MToxMiArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBnc3RiaW46IHJlbW92ZSBjbG9jayByZWZlcmVuY2VzIHdoZW4gY2xvY2sgbG9zdCBoYXBwZW5zCgkgIFJlbW92ZSByZWZlcmVuY2UgdG8gY2xvY2sgYW5kIGNsb2NrIHByb3ZpZGVyIHN0b3JlZCBpbiB0aGUgYmluCgkgIHdoZW4gdGhlIGNsb2NrcHJvdmlkZXIgZWxlbWVudCBpcyByZW1vdmVkIGZyb20gdGhlIGJpbi4KCjIwMDktMDYtMTYgMTM6MzQ6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGJhc2VzaW5rOiBhZGQgU2luY2UgdGFnIGZvciBuZXcgbWV0aG9kCgoyMDA5LTA2LTE2IDEzOjMyOjM3ICswMjAwICBCcmFua28gU3ViYXNpYyA8YnJhbmtvLnN1YmFzaWMgYXQgYXhpcy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgYmFzZXNpbms6IGFkZCBzdXBwb3J0IGZvciBidWZmZXIgbGlzdAoJICBGaXhlcyAjNTg1OTYwCgoyMDA5LTA2LTE2IDExOjM0OjU0ICswMjAwICBCcmFua28gU3ViYXNpYyA8YnJhbmtvLnN1YmFzaWMgYXQgYXhpcy5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IEFkZCBzdXBwb3J0IGZvciBHc3RCdWZmZXJMaXN0cwoJICBGaXhlcyAjNTg1ODM0CgoyMDA5LTA2LTE2IDExOjIxOjQyICswMjAwICBDaHJpc3RvcGhlciBIYWxzZSBSb2dlcnMgPGNoYWxzZXJvZ2VycyBhdCBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IEV4cGxpY2l0bHkgbWVudGlvbiByZWZjb3VudGluZyBpbiBkb2NzCgkgIEZpeGVzICM1ODU5MzgKCjIwMDktMDYtMTYgMDg6NDM6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHhtbDogZml4IChkZSlzZXJpYWxpc2F0aW9uIG9mIHByb3BlcnRpZXMgb2YgdHlwZSBHc3RTdHJ1Y3R1cmUKCSAgc291cGh0dHBzcmMgaGFzIGEgcHJvcGVydHkgb2YgdHlwZSBHc3RTdHJ1Y3R1cmUsIHdoaWNoIGNhdXNlcyBhbgoJICBhc3NlcnRpb24gd2hlbiBzZXJpYWxpc2luZyBpdCB0byB4bWwuIEZpeGVzICM1ODUxMzcuCgoyMDA5LTA2LTE1IDIwOjExOjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IGZpeCBjb21waWxlciB3YXJuaW5nCgkgIFRoZSBjb21waWxlciBzdWdnZXN0cyB0byBhZGQgc29tZSAoKSB0byBpbmRpY2F0ZSBpZiB0aGUgJiYgb3IgdGhlIHx8IHRha2VzCgkgIHByaW9yaXR5LCBzbyByZWZsb3cgY29kZSBhIGJpdCBzbyB3ZSBkb24ndCBoYXZlIHRvIGFkZCB5ZXQgYW5vdGhlciBsYXllcgoJICBvZiAoKS4gSG9wZWZ1bGx5IHRoaXMgd2FzIHRoZSBpbnRlbmRlZCBtZWFuaW5nIG9mIHRoZSBjb2RlLgoKMjAwOS0wNi0xMSAxNTowMDo1MiArMDIwMCAgQXJub3V0IFZhbmRlY2FwcGVsbGUgPGFybm91dEBtaW5kLmJlPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBkb24ndCBsb2NrIHdoZW4gbWluLXRocmVzaG9sZCBhbmQgbWF4LXNpemUgY29uZmxpY3QuCgkgIFdoZW4gbWluLXRocmVzaG9sZCBpcyBzZXQgb24gYSBxdWV1ZSwgaXQgaXMgcG9zc2libGUgdGhhdCBvbmUgb2YKCSAgdGhlIG1pbmltYSByZW1haW5zIHVuc2F0aXNmaWVkIHdoaWxlIG9uZSBvZiB0aGUgbWF4aW1hIGlzIGFscmVhZHkKCSAgcmVhY2hlZC4gVGhlcmVmb3JlLCBhbHdheXMgY29uc2lkZXIgdGhlIHF1ZXVlIG5vbi1lbXB0eSBpZiBpdCBpcyBmdWxsLgoJICBGaXhlcyAjNTg1NDMzLgoKMjAwOS0wNi0xNSAxODo0NDo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBtYWtlIHN1cmUgd2Ugc2V0IHRoZSBuZXh0IHN0YXRlIGNvcnJlY3RseQoJICBXaGVuIHRoZSBjb250aW51ZSBmdW5jdGlvbiBpcyBzY2hlZHVsZWQsIG1ha2Ugc3VyZSB3ZSBzZXQgdGhlIG5leHQgc3RhdGUgaW5zdGVhZAoJICBvZiB0aGUgcGVuZGluZyBzdGF0ZS4KCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICBmaXhlcyAjNTg1NTY5CgoyMDA5LTA2LTE1IDE4OjQ0OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBjb2xsZWN0cGFkczogZml4IC5oIGluZGVudGF0aW9uCgoyMDA5LTA2LTE1IDE4OjQzOjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGFkZCBzb21lIG1vcmUgZGVidWcKCjIwMDktMDYtMTUgMTg6NDI6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGRlYnVnOiBhZGQgc29tZSBtb3JlIGRlYnVnIHRvIGVsZW1lbnQgYW5kIHBhZHMKCjIwMDktMDYtMTQgMTY6NTY6MzIgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogZml4IGluY2x1ZGUgb3JkZXIgdG8gZ2V0IGNvbmZpZy5oIGJlZm9yZSBfbWluZ3cuaAoJICBjb25maWcuaCBtdXN0IGFsd2F5cyBiZSBpbmNsdWRlZCBiZWZvcmUgYW55IG90aGVyIGluY2x1ZGVzLCBlaXRoZXIKCSAgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSB2aWEgZ3N0X3ByaXZhdGUuaC4gRml4ZXMgIzU4NTczMy4KCjIwMDktMDYtMTQgMTY6MTc6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdGFnbGlzdDogYWRkIGZ1bmN0aW9ucyB0byBjcmVhdGUgYSBuZXcgdGFnbGlzdCB3aXRoIHRhZ3MgaW4gb25lIGdvCgkgIEFkZCBmdW5jdGlvbnMgdG8gY3JlYXRlIGEgbmV3IHRhZyBsaXN0IGFuZCBzZXQgdGFncyBpbiBvbmUgZ28sIHdoaWNoCgkgIGlzIG5pY2UgZm9yIHVzZSBpbiBjb21iaW5hdGlvbiB3aXRoIGZ1bmN0aW9ucyB0aGF0IHRha2Ugb3duZXJzaGlwIG9mCgkgIHRoZSB0YWdsaXN0LCBzdWNoIGFzIGdzdF9ldmVudF9uZXdfdGFnKCkgb3IgZ3N0X2VsZW1lbnRfZm91bmRfdGFncygpLgoJICBBUEk6IGFkZCBnc3RfdGFnX2xpc3RfbmV3X2Z1bGwoKQoJICBBUEk6IGFkZCBnc3RfdGFnX2xpc3RfbmV3X2Z1bGxfdmFsaXN0KCkKCjIwMDktMDYtMTMgMTQ6NTU6NDMgKzAyMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hcyAoYXQpIGFwZXN0YWFydCAoZG90KSBvcmc+CgoJKiBzY3JpcHRzL2dpdC12ZXJzaW9uLnNoOgoJICBnaXQtdmVyc2lvbi5zaDogbWFrZSBleGVjdXRhYmxlCgoyMDA5LTA2LTEzIDE0OjUzOjI0ICswMjAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXMgKGF0KSBhcGVzdGFhcnQgKGRvdCkgb3JnPgoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJKiBzY3JpcHRzL2dpdC12ZXJzaW9uLnNoOgoJICBVcGRhdGUgc2NyaXB0cy9jdnMtdXBkYXRlLnNoIHRvIGdpdC11cGRhdGUuc2g7IGFkZCBnaXQtdmVyc2lvbi5zaAoJICBhZGQgc2NyaXB0IHRvIGdldCBnaXQgdmVyc2lvbnMKCSAgZmlyc3QgdXBkYXRlIGFsbCwgdGhlbiBidWlsZAoJICBhZGQgZ25vbmxpbiB0b28KCSAgc3BlY2lmeSB3aGVyZSB0byBwdWxsIGZyb20KCSAgYWxzbyB1cGRhdGUgc3VibW9kdWxlCgkgIHJlbmFtZSBhbmQgY2hhbmdlIGN2cy11cGRhdGUgc2NyaXB0IHRvIGdpdC11cGRhdGUKCjIwMDktMDYtMTIgMTg6MzY6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBieXRlcmVhZGVyOiBhZGQgZ3N0X2J5dGVfcmVhZGVyX21hc2tlZF9zY2FuX3VpbnQzMigpCgkgIEFkZCBhIHBhdHRlcm4gc2NhbiBmdW5jdGlvbiBzaW1pbGFyIHRvIHRoZSBvbmUgcmVjZW50bHkgYWRkZWQgdG8KCSAgR3N0QWRhcHRlciwgYW5kIGEgdW5pdCB0ZXN0IChiYXNlZCBvbiB0aGUgYWRhcHRlciBvbmUpLgoJICBGaXhlcyAjNTg1NTkyLgoJICBBUEk6IGFkZCBnc3RfYnl0ZV9yZWFkZXJfbWFza2VkX3NjYW5fdWludDMyKCkKCjIwMDktMDQtMTcgMTc6NTk6MzggKzAzMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBub2tpYS5jb20+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSAgRml4IHJlbWFpbmluZyAtLWRpc2FibGUtZ3N0LWRlYnVnIEFCSSBicmVha2FnZS4KCSAgRml4ZXMgIzU3OTE3Ny4KCjIwMDktMDYtMTIgMTc6NTE6MjIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmMvc2luazogdHVybiB0aGUgYnVzIG1lc3NhZ2VzIGludG8gZ193YXJuaW5nCgkgIEl0cyBhIHByb2dyYW1taW5nIGVycm9yLgoKMjAwOS0wNi0xMiAxNTo0ODozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IGZpeCBkb2NzCgoyMDA5LTA2LTEyIDEzOjE4OjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtZnJhbWVzdGVwLnR4dDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3N0ZXBwaW5nL2ZyYW1lc3RlcDEuYzoKCSAgc3RlcHBpbmc6IG1vcmUgc3RlcHBpbmcgaW1wcm92ZW1lbnRzCgkgIFVwZGF0ZSBkZXNpZ24gZG9jIHdpdGggc3RlcC1zdGFydCBkb2NzLgoJICBBZGQgZW9zIGZpZWxkIHRvIHN0ZXAgZG9uZSBtZXNzYWdlCgkgIHdoZW4gc3RlcHBpbmcgaW4gcmV2ZXJzZSwgdXBkYXRlIHRoZSBzZWdtZW50IHRpbWUgZmllbGQuCgkgIEZsdXNoIG91dCB0aGUgY3VycmVudCBzdGVwIHdoZW4gd2UgYXJlIGZsdXNoaW5nLgoKMjAwOS0wNi0xMCAxNTo1MTo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHBvc3Qgc3RlcC1zdGFydAoJICB3aGVuIHdlIGNsaXAsIGFsc28gc3RvcCB0aGUgc3RlcHBpbmcuCgkgIERvbid0IGRvIFFvUyB3aGVuIHN0ZXBwaW5nCgkgIFBvc3Qgc3RlcC1zdGFydCB3aGVuIHF1ZXVlaW5nIGFuZCBhY3RpdmF0aW5nIHRoZSBzdGVwLgoKMjAwOS0wNi0xMCAxNTo0ODozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1lc3NhZ2U6IGFkZCBzdGVwLXN0YXJ0IG1lc3NhZ2UKCjIwMDktMDYtMTEgMTQ6MTg6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBtb3JlIGVmZmljaWVudCB2YWx1ZSB0YWJsZSBsb29rdXAgZm9yIGZ1bmRhbWVudGFsIHR5cGVzCgkgIFNtYWxsIG1pY3JvLW9wdGltaXNhdGlvbjogbG9vayB1cCB2YWx1ZSB0YWJsZSBmb3IgZnVuZGFtZW50YWwgdHlwZXMKCSAgdmlhIGFuIGFycmF5IGRlZGljYXRlZCB0byBmdW5kYW1lbnRhbCB0eXBlcyBpbnN0ZWFkIG9mIGdvaW5nIHRocm91Z2gKCSAgYSBoYXNoIHRhYmxlIGxvb2t1cC4gU2luY2UgdGhlcmUgY2FuIGJlIG9ubHkgMjU1IGZ1bmRhbWVudGFsIHR5cGVzLAoJICB0aGUgdGFibGUgc2l6ZS9lZmZpY2llbmN5IHRyYWRlLW9mZiBzaG91bGQgYmUgYWNjZXB0YWJsZSwgZXNwLiBzaW5jZQoJICB0aGUgbW9zdCBjb21tb25seS11c2VkIHR5cGVzIGFyZSBhbGwgZnVuZGFtZW50YWwgdHlwZXMuIFRoZSBzaXplIG9mCgkgIHRoZSB0YWJsZSBjb3VsZCBwcm9iYWJseSBiZSBtaW5pbWlzZWQgZnVydGhlciBpZiBuZWVkZWQgYnkgYWxsb2NhdGluZwoJICB0aGUgdGFibGUgZHluYW1pY2FsbHkgYW5kIG9ubHkgZXhwYW5kaW5nIGl0IG9uIGRlbWFuZC4KCjIwMDktMDYtMTEgMTM6MTY6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBkb24ndCBwdXQgR1R5cGVzIGludG8gaW50IHZhcmlhYmxlcwoJICBHVHlwZXMgYXJlIG5vdCBpbnRzIGFuZCBhcyBzdWNoIGFyZSBub3QgZ3VhcmFudGVlZCB0byBmaXQgaW50byBhbiBpbnQKCSAgKHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBmdW5kYW1lbnRhbCB0eXBlcyksIHNvIHdlIHJlYWxseSBzaG91bGRuJ3QgcHV0CgkgIHRoZW0gaW50byBpbnQgdmFyaWFibGVzLiBFdmVuIGlmIGEgcmF0aGVyIHVubGlrZWx5IG9ic2N1cmUgY29ybmVyIGNhc2UsCgkgIHRoaXMgaGFzIGFjdHVhbGx5IGJlZW4gYSBwcm9ibGVtIGF0IHNvbWUgcG9pbnQgaW4gdGhlIHBhc3QsIHNlZSBjb21taXQKCSAgOTlmMTY2NTVmNGNmYmM4ZTA2YjU5NzI0MTdiYTExMjc5MDgzYTY0ZS4KCjIwMDktMDYtMTEgMTc6MDM6MDQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmMvc2luazogaW1wcm92ZSB3YXJuaW5nIG1lc3NhZ2UgYSBiaXQgKHdyb25nIHN0YXRlKQoJICBVbmlmeSBhbmQgdHVybiB0aG9zZSBpbnRvIGVsZW1lbnQgd2FybmluZ3MuCgoyMDA5LTA2LTExIDE0OjAwOjA5ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcKCSAgVXNlIChncG9pbnRlcikgaW5zdGVhZCBvZiAoZ3BvaW50ZXIgKikgdG8gZml4IGEgc3RyaWN0LWFsaWFzaW5nIGJ1aWxkIHdhcm5pbmcuCgoyMDA5LTA2LTExIDEzOjE2OjI5ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkqIGRvY3MvZmFxL01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL21hbnVhbC9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3B3Zy9NYWtlZmlsZS5hbToKCSAgZG9jczogQnVtcCBjb21tb24sIGZpeCB0aGUgdXBsb2FkIGxvZ2ljIGluY2x1c2lvbgoJICBVcGRhdGUgdGhlIGNvbW1vbiBzdWJtb2R1bGUsIGFuZCBmaXggdGhlIGRvY3MgdXBsb2FkIHJ1bGVzIHRvIGluY2x1ZGUKCSAgdGhlIHJpZ2h0IG1ha2VmaWxlIHNuaXBwZXQgZnJvbSBjb21tb24uCgoyMDA5LTA2LTA5IDExOjEzOjA0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogVXNlIHRoZSBzbGljZSBhbGxvY2F0b3IgZm9yIE11bHRpUXVldWVJdGVtcwoKMjAwOS0wNi0xMCAyMDoyOTo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgIE1ha2Ugc3VyZSBjb25maWcuaCBpcyBvbmx5IGluY2x1ZGVkIG9uY2UKCSAgRml4ZXMgYnVpbGQgcHJvYmxlbSBvbiB3aW4zMiAoIzU4NTA3NSkuCgoyMDA5LTA2LTEwIDE4OjA1OjQ3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogYWRkIHNpbmNlOiB0YWdzIGZvciB0aGUgYXBpIGRvY3MuCgkgIFRoZSBwcmV2aW91cyByZWxhdGVkIGNvbW1pdCBhZGRlZCBuZXcgQVBJLgoJICBBUEk6IGFkZCBnc3RfcGx1Z2luX2dldF9jYWNoZV9kYXRhLCBnc3RfcGx1Z2luX3NldF9jYWNoZV9kYXRhCgoyMDA5LTA2LTEwIDEyOjAyOjIzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogZml4IGxlYWtzIGludHJvZHVjZWQgYnkgZml4IGZvciAjNTg0Mzg5CgoyMDA5LTA2LTA4IDIzOjQzOjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzdHJ1Y3R1cmU6IGFkZCBnc3Rfc3RydWN0dXJlXypfZ2V0KigpIHZhcmFyZyBmdW5jdGlvbnMKCSAgQWRkIGEgYnVuY2ggb2YgdmFyYXJnIGdldHRlciBjb252ZW5pZW5jZSBmdW5jdGlvbnMgdG8gY29tcGxlbWVudAoJICB0aGUgdmFyYXJnIHNldHRlciBmdW5jdGlvbnMsIGFuZCBhIGJhc2ljIHVuaXQgdGVzdC4gRml4ZXMgIzUzNDIwOC4KCSAgQVBJOiBnc3Rfc3RydWN0dXJlX2dldCgpCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9pZF9nZXQoKQoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfZ2V0X3ZhbGlzdCgpCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9pZF9nZXRfdmFsaXN0KCkKCjIwMDktMDYtMDkgMDA6MTY6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgZG9jczogYSBmZXcgc21hbGwgQVBJIGRvYyBmaXhlcyBhbmQgYWRkaXRpb25zCgoyMDA5LTA2LTA4IDE5OjMzOjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGxvZ2dpbmc6IHdoZW4gbG9nZ2luZyB0YWdsaXN0cywgc2hvcnRlbiBsb25nIGJ1ZmZlciBkdW1wcwoJICBEb24ndCBkdW1wIGh1bmRyZWRzIG9mIGtCIG9mIGhleGRhdGEgaW50byBkZWJ1ZyBsb2dzIHdoZW4gY29udmVydGluZwoJICB0YWdsaXN0cyBjb250YWluaW5nIGh1Z2UgaW1hZ2VzIGludG8gYSBzdHJpbmcuIEluc3RlYWQsIHNob3J0ZW4gdGhlCgkgIGJ1ZmZlciBkYXRhIHNvIHRoYXQgdGhlIHN0cmluZyBpcyBzdGlsbCByZWFkYWJsZSBhbmQgZGVidWcgbG9ncwoJICBzdGF5IG1hbmFnYWJsZS4gQ2FuIGJlIHR1cm5lZCBvZmYgd2l0aCBHU1RfREVCVUdfT1BUSU9OUz1mdWxsLXRhZ3MuCgkgIFNlZSAjNTg0OTg4LgoKMjAwOS0wNi0wOSAxMzowNzozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBjaGVjayBieXRlIHJhbmdlIGV2ZW4gd2hlbiB3ZSBoYXZlIHRpbWVzdGFtcHMKCSAgQXMgZm91bmQgYnkgdGhheXRhbiBvbiBJUkMuCgkgIEFsc28gY2hlY2sgdGhlIGJ5dGUgbGltaXQsIGV2ZW4gaWYgd2UgaGF2ZSB0aW1lc3RhbXBzIGJlY2F1c2UgdGhlcmUgbWlnaHQganVzdAoJICBub3QgYmUgYSB0aW1lIGxpbWl0LgoKMjAwOS0wNi0wOSAxMjowNjozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHVwZGF0ZSBzZWdtZW50IHN0YXJ0L3N0b3AgZm9yIGNsaXBwaW5nCgkgIFdoZW4gd2Ugc3RhcnQgc3RlcHBpbmcsIHN0b3JlIHRoZSBzdGFydC9zdG9wIHZhbHVlcyBvZiB0aGUgc2VnbWVudCBiZWZvcmUgd2UKCSAgaW5zdGFsbCBuZXcgc3RhcnQvc3RvcCB2YWx1ZXMgZm9yIGNsaXBwaW5nIGluIG5vbi1mbHVzaGluZyBzdGVwcy4KCSAgZm9yIG5vbi1mbHVzaGluZyBzdGVwcywgdXBkYXRlIHRoZSBlbGVtZW50IHN0YXJ0IHRpbWUuIEZvciBmbHVzaGluZyBzdGVwcywgaXQKCSAgZG9lcyBub3QgY2hhbmdlIGJlY2F1c2UgcnVubmluZ190aW1lIGRvZXMgbm90IGFkdmFuY2UKCSAgTWFrZSBzdXJlIHdlIGFsd2F5cyBwZXJmb3JtIHRoZSBzdG9wX3N0ZXBwaW5nIG9wZXJhdGlvbnMgZXZlbiB3aGVuIHdlIGRyb3AKCSAgZnJhbWVzLgoKMjAwOS0wNi0wOSAxMDoyNTozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGRvIHByb3BlciBjbGlwcGluZyBpbiBzdGVwcGluZwoJICBVcGRhdGUgdGhlIHN0b3AgcG9zaXRpb24gb2YgdGhlIHNlZ21lbnQgc28gdGhhdCB3ZSBjbGlwIGNvcnJlY3RseS4KCSAgQWZ0ZXIgY2xpcHBpbmcgaW4gbm9uLWZsdXNoaW5nIG1vZGUsIHJlcmVuZGVyIHRoZSByZW1haW5kZXIgb2YgdGhlIGJ1ZmZlci4KCjIwMDktMDYtMDkgMTA6MjM6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBtYWtlIGNvbnZlcnNpb24gbW9yZSBwcmVjaXNlCgkgIE1ha2Ugc3VyZSB0aGUgY29udmVyc2lvbiBmcm9tIGFuZCB0aGUgY29udmVyc2lvbiB0byBnaXZlIHRoZSBzYW1lIHJlc3VsdHMuCgoyMDA5LTA2LTA4IDE1OjM5OjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogZ3N0X3V0aWxfdWludDY0X3NjYWxlKigpIG1pY3JvLW9wdGltaXNhdGlvbnMKCSAgU3ByaW5rbGUgR19MSUtFTFkvR19VTkxJS0VMWTsgYWRkIGlubGluZWQgX3NjYWxlX2ludF91bmNoZWNrZWQoKQoJICBzbyB3ZSBkb24ndCBkbyBzb21lIGNoZWNrcyB0d2ljZSB3aGVuIGNhbGxpbmcgaXQgZnJvbSBfc2NhbGUoKS4KCjIwMDktMDYtMDcgMjI6NDk6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJICBSZW1vdmUgZG91YmxlIHNlbWljb2xvbnMgYXQgZW5kIG9mIGxpbmUKCjIwMDktMDYtMDggMTc6Mzk6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1mcmFtZXN0ZXAudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIHN0ZXBwaW5nOiBkbyBmbHVzaGluZyBzdGVwcyBjb3JyZWN0bHkKCSAgTm90ZSBpbiB0aGUgZG9jcyB0aGF0IGEgZmx1c2hpbmcgc3RlcCBpbiBQTEFZSU5HIGJyaW5ncyB0aGUgcGlwZWxpbmUgdG8gdGhlIGxvc3QKCSAgc3RhdGUgYW5kIHNraXBzIHRoZSBkYXRhIGJlZm9yZSBwcmVyb2xsaW5nIGFnYWluLgoJICBJbXBsZW1lbnQgdGhlIGZsdXNoaW5nIHN0ZXAgY29ycmVjdGx5IGJ5IGludmFsaWRhdGluZyB0aGUgY3VycmVudCBzdGVwCgkgIG9wZXJhdGlvbiwgd2hpY2ggd291bGQgYWN0aXZhdGUgdGhlIG5ldyBzdGVwIG9wZXJhdGlvbi4KCjIwMDktMDYtMDggMTY6MTY6MjcgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IENoYW5nZSBhd2t3YXJkIHdvcmRpbmcgaW4gYSB0cmFuc2xhdGVhYmxlIG1lc3NhZ2UuCgoyMDA5LTA2LTA4IDE2OjI3OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogYWRkIG5vbi1mbHVzaGluZyBzdGVwcwoJICBBZGQgc3VwcG9ydCBmb3Igbm9uLWZsdXNoaW5nIHN0ZXBzIGFuZCB3aXRoIGRpZmZlcmVudCByYXRlcy4KCSAgQ2xlYXIgc3RlcCBpbmZvIHdoZW4gZmx1c2hpbmcKCjIwMDktMDYtMDcgMjM6NDY6NTQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcmVnaXN0cnk6IGFsbG93IHBsdWdpbnMgdG8gY2FjaGUgZXh0cmEgZGF0YSBpbiByZWdpc3RyeS4gRml4ZXMgIzU3MDIzMwoJICBBZGQgYSBHc3RTdHJ1Y3R1cmUgdG8gR3N0UGx1Z2luLiBQbHVnaW5zIGNhbiByZXRpZXZlIGl0IGluIHBsdWdpbl9pbml0IGFuZAoJICBhY2Nlc3MgdGhlIGNhY2hlZCBpbmZvIG9yIGJ1aWxkIHRoZSBjYWNoZSBhbmQgc3RvcmUgaXQgdGhlcmUuCgoyMDA5LTA2LTA3IDIyOjA5OjE0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcmVnaXN0cnk6IGRvbid0IHJlY3JlYXRlIGZlYXR1cmVzIG9uIGZpcnN0IHVzZS4gRml4ZXMgIzU4NDM4OQoJICBUaGUgZmlyc3QgdGltZSBvbmUgY2FsbHMgZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCksIGdzdCByZWNyZWF0ZXMgdGhlIHBsdWdpbgoJICBmZWF0dXJlIGFuZCB0aGUgZWxlbWVudCBmYWN0b3J5LiBBcyBhIHNpZGUgZWZmZWN0IHdlIHJlZiB0aGUgY2xhc3MgdG8gZmlsbAoJICBpbiBkZXRhaWwgd2UgYWxyZWFkeSBoYXZlIGZpbGxlZCBmcm9tIHRoZSByZWdpc3RyeSBjYWNoZS4gVGhpcyBwYXRjaCBjaGFuZ2VzCgkgIHRoZSBiZWhhdmlvdXIgdG8ganVzdCB1cGRhdGUgdGhlIGV4aXN0aW5nIGVudHJpZXMuIFRoZSBmYWN0b3J5IGlzIG5vdyBhdHRhY2hlZAoJICB0byB0aGUgdHlwZSBhbmQgc2V0IGluIGdzdF9lbGVtZW50X2Jhc2VfY2xhc3NfaW5pdCgpLgoKMjAwOS0wNi0wNyAyMjoyMDo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBjb25kaXRpb25hbGx5IGNvbXBpbGUgdGhlIHN0cmVhbXMgZXhhbXBsZQoJICBEZXRlY3QgcHRocmVhZHMuaCBpbiBjb25maWd1cmUuYWMKCSAgT25seSBjb21waWxlIHRoZSBzdHJlYW1zIGV4YW1wbGUgd2hlbiBwdGhyZWFkcy5oIGlzIHByZXNlbnQuCgkgIEZpeGVzICM1ODUwMzkKCjIwMDktMDYtMDcgMTc6MzI6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IHJlbW92ZSB0eXBlIGNoZWNrcyBhbmQgcmVkdW5kYW50IGNvZGUKCjIwMDktMDYtMDcgMTU6NDM6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGZpeCBmcmFjdGlvbiByYW5nZSBsY29weSBmdW5jdGlvbgoJICBUaGlzIGZ1bmN0aW9uIHNlZW1zIHRvIGJlIGJyb2tlbiBmb3IgMy41IHllYXJzLiBMdWNraWx5IG5vYm9keSBldmVyIHRyaWVkIHRvCgkgIG1ha2UgYSBmcmFjdGlvbiByYW5nZSBvYmplY3QgcHJvcGVydHkuLi4KCjIwMDktMDYtMDcgMTU6MzU6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IHBlcmZvcm1hbmNlIGltcHJvdmVtZW50cwoJICBBZGQgYSBHVHlwZS0+R3N0VmFsdWVUYWJsZSBoYXNodGFibGUgbWFwcGluZy4KCSAgQXZvaWQgX2dldF90eXBlKCkgbXVsdGlwbGUgdGltZXMgd2hlbiB3ZSBjYW4uCgkgIFVzZSBHU2xpY2UgZm9yIGZyYWN0aW9uIHJhbmdlIGR5bmFtaWMgbWVtb3J5CgkgIEFkZCBHX0xJS0VMWSB3aGVuIHdlIGNhbgoJICBJbXByb3ZlIGxvb2t1cCBvZiB0aGUgdmFsdWUgdGFibGUgdXNpbmcgdGhlIGhhc2h0YWJsZQoKMjAwOS0wNi0wNyAxNDozMDoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBubyBuZWVkIHRvIGNsZWFyIG9uIGluaXQKCSAgV2UgZG9uJ3QgbmVlZCB0byBjbGVhciB0aGUgZmllbGQgb24gaW5pdCBiZWNhdXNlIHdlIHdpbGwgZG8gdGhhdCBhZ2FpbiBiZWZvcmUgd2UKCSAgYXJlIGdvaW5nIHRvIHVzZSB0aGUgZmllbGQgbGF0ZXIuCgoyMDA5LTA2LTA1IDIwOjU3OjA1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3RzdHJ1Y3R1cmU6IEZpeCBzb21lIG1lbW9yeSBsZWFrcy4gU3ByaW5rbGUgR19MSUtFTFkvVU5MSUtFTFkKCSAgRml4IHNvbWUgbWVtb3J5IGxlYWtzIHNob3duIGJ5IHRoZSBuZXcgc2VyaWFsaXNhdGlvbi9kZXNlcmlhbGlzYXRpb24gdW5pdAoJICB0ZXN0LiBTcGxpdCB0aGUgZ3N0X3N0cmluZ193cmFwIGZ1bmN0aW9uIGluIGdzdHZhbHVlLmMgaW50byBjb21wb25lbnRzIGFuZAoJICB1c2UgdGhlbSB0byBtYWtlIGdzdF9zdHJpbmdfdGFrZV9hbmRfd3JhcCwgd2hpY2ggdGFrZXMgb3duZXJzaGlwIG9mIHRoZQoJICBzdHJpbmcsIGF2b2lkaW5nIGEgc3RyZHVwLgoJICBBZGQgc29tZSBHX0xJS0VMWS9VTkxJS0VMWSwgYW5kIGNsZWFuIHVwIHNvbWUgbGVha3MgaW4gZXJyb3IgcGF0aHMuCgoyMDA5LTA2LTA1IDExOjM3OjI0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiByZXBseSB0byBRVUVSWV9TRUVLSU5HIHdpdGggb3JpZ2luYWwgZm9ybWF0LiAgRml4ZXMgIzU4NDgzOC4KCjIwMDktMDYtMDQgMTk6NDQ6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBjb25maWd1cmU6IHJlbW92ZSBBQ19DX0lOTElORSBhbmQgdXBkYXRlIHdpbjMyIGZpbGVzIHRvIGdpdAoJICBSZW1vdmUgQUNfQ19JTkxJTkUgY2hlY2ssIHNvIHdlIGRvbid0IGVuZCB1cCB3aXRoIGFuICN1bmRlZiBpbmxpbmUgaW4KCSAgY29uZmlnLmgsIHdoaWNoIGNhdXNlcyBwcm9ibGVtcyB3aXRoIHNvbWUgdmVyc2lvbnMgb2YgTVNDViBhcHBhcmVudGx5LgoJICBHTGliIGRlZmluZXMgaW5saW5lIGZvciB1cyBpbiBhIHN1aXRhYmxlIHdheSBhbHJlYWR5IGFueXdheS4KCSAgRml4ZXMgIzU4NDgzNS4KCSAgV2hpbGUgd2UncmUgYXQgaXQsIGFsc28gdXBkYXRlIHRoZSBvdGhlciB3aW4zMiBmaWxlcyB0byBnaXQgKGJ1bXAKCSAgdmVyc2lvbiwgYWRkIG5ldyBkZWZpbmVzIGFuZCBlbnVtcykuCgoyMDA5LTA2LTA0IDE4OjI2OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBhdm9pZCBleGNlc3NpdmUgbm90aWZ5IGZvciBjYXBzCgkgIEF2b2lkIGFuIG9iamVjdCBwcm9wZXJ0eSBub3RpZnkgaWYgdGhlIGNhcHMgb24gdGhlIG90aGVyIHBhZCB3ZXJlIGFscmVhZHkKCSAgc2V0IChhbmQgdGh1cyBub3RpZmllZCkuCgoyMDA5LTA2LTA0IDE3OjI3OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZml4IGNsaXBwZWQgc3RhcnQvc3RvcCBhZnRlciBzdGVwCgkgIFVzZSB0aGUgc2VnbWVudCBoZWxwZXJzIHRvIGdldCBhIG1vcmUgYWNjdXJhdGUgY2xpcHBlZCBzdGFydC9zdG9wIHBvc2l0aW9uIGFmdGVyCgkgIGEgc3RlcHBpbmcgb3BlcmF0aW9uIGVuZGVkLgoKMjAwOS0wNi0wNCAxMjozNDo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHVzZSBtb3JlIGNvcnJlY3Qgc2VnbWVudCBtZXRob2RzCgkgIFVzZSB0aGUgbW9yZSBjb3JyZWN0IG5ldyBzZWdtZW50IG1ldGhvZHMgZm9yIHVwZGF0aW5nIHRoZSBzZWdtZW50IGJlZm9yZSBhbmQKCSAgYWZ0ZXIgYSBzdGVwLgoKMjAwOS0wNi0wNCAxMjo0ODo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzZWdtZW50OiBhZGQgZ3N0X3NlZ21lbnRfc2V0X3J1bm5pbmdfdGltZQoJICBBZGRlZCBuZXcgbWV0aG9kIGZvciBjbG9zaW5nIHRoZSBzZWdtZW50IHRvIGEgc3BlY2lmaWMgcnVubmluZyB0aW1lLgoJICBBUEk6IEdzdFNlZ21lbnQ6OmdzdF9zZWdtZW50X3NldF9ydW5uaW5nX3RpbWUoKQoKMjAwOS0wNi0wNCAwMDozNzoyOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSAucG8gZmlsZXMgZm9yIHN0cmluZyBjaGFuZ2VzCgkgIFRoaXMgbWFrZXMgc3VyZSB0aGF0IHBlb3BsZSB3aG8gZ2V0IHRoZW1zZWx2ZXMgYSBmcmVzaCBjaGVja291dAoJICBkb24ndCBpbW1lZGlhdGVseSBoYXZlIGNoYW5nZWQgKnBvIGZpbGVzIGFmdGVyIHJ1bm5pbmcgbWFrZSwgd2hpY2gKCSAgd291bGQgY2F1c2UgYSBiaXQgb2YgaGFzc2xlIG5leHQgdGltZSB0aGUgZmlsZXMgYXJlIHVwZGF0ZWQuIEJldHRlcgoJICB0byBrZWVwIHRoZW0gdXAtdG8tZGF0ZSB3aGVuIHN0cmluZ3MgY2hhbmdlLgoKMjAwOS0wNi0wNCAwMDo1NDoyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgZXJyb3JzOiByZXdvcmQgc3RhdGUgY2hhbmdlIGZhaWxlZCBlcnJvciBtZXNzYWdlIGFuZCByZW1vdmUgYnVnemlsbGEgbGluawoJICBSZXdvcmQgdGhpcyBtZXNzYWdlIGEgYml0IHRvIG1ha2UgaXQgY2xlYXJlciB3aGF0IGl0IG1lYW5zLCBuYW1lbHkgdGhhdAoJICB0aGUgc3RhdGUgY2hhbmdlIG1heSBoYXZlIGZhaWxlZCBmb3IgZ29vZCByZWFzb25zLCBidXQgdGhhdCB0aGUgZWxlbWVudAoJICBqdXN0IGZhaWxlZCB0byBwb3N0IGEgcHJvcGVyIGVycm9yIG9uIHRoZSBidXMuIFRoaXMgaXMgbm90IGFuIGludGVybmFsCgkgIEdTdHJlYW1lciBidWcsIGFuZCB3ZSByZWFsbHkgZG9uJ3QgbmVlZCBwZW9wbGUgdG8gZmxvb2QgYnVnemlsbGEgd2l0aAoJICBidWcgcmVwb3J0cyBpZiBvbmUgc3VjaCBwbHVnaW4gYnVnIGV2ZXIgbWFrZXMgaXQgaW50byB0aGUgd2lsZC4KCjIwMDktMDYtMDQgMDA6Mjk6MzEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiByZWZlciB0byBlbGVtZW50LCBwYWQsIG9yIG9iamVjdCBpbiBzb21lIG1lc3NhZ2Ugc3RyaW5ncwoJICBSZXZpc2l0IHRoZXNlIHN0cmluZ3Mgbm93IHRoYXQgdGhlIGNoYW5nZSByZWdhcmRpbmcgdGhlIG1lc3NhZ2Ugc291cmNlCgkgIG9iamVjdCBpbiBnc3RfZWxlbWVudF9mb3VuZF90YWdzX2Zvcl9wYWQoKSBnb3QgcmV2ZXJ0ZWQuIFRyeSB0byByZWZlcgoJICBleHBsaWNpdGx5IHRvIHdoYXQga2luZCBvZiBlbGVtZW50IGl0IGlzIChlbGVtZW50LCBwYWQsIGV0Yy4pIGluIHNvbWUKCSAgY2FzZXMsIHdoaWNoIGlzIG5pY2VyIHRoYW4gaGF2aW5nIHRvIGRlZHVjZSB0aGlzIGluZm8gKGFuZCB3ZSBjYW4KCSAgcmUtdXNlIHRoZSBhbHJlYWR5IGV4aXN0aW5nIHRyYW5zbGF0ZWQgc3RyaW5ncyBmb3IgdGhlIG1vc3QgY29tbW9uCgkgIGNhc2UpLiBJdCBhbHNvIG1ha2VzIGZvciBiZXR0ZXIgZXhhbXBsZSBjb2RlLCBzaW5jZSBpdCdzIGNsZWFyIG5vdwoJICB0aGF0IHRoZSBtZXNzYWdlIHNvdXJjZSBvYmplY3QgZG9lc24ndCBoYXZlIHRvIGJlIGFuIGVsZW1lbnQuCgoyMDA5LTA2LTAzIDIxOjEwOjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEFQSTogYWRkIEdTVF9NRVNTQUdFX1NSQ19OQU1FIG1hY3JvCgkgIEFkZCBHU1RfTUVTU0FHRV9TUkNfTkFNRSBtYWNybyB0aGF0IGFsd2F5cyByZXR1cm5zIGEgbm9uLU5VTEwgc3RyaW5nLgoJICBVc2VmdWwgZm9yIGRlYnVnZ2luZyBhbmQgbG9nZ2luZyBwdXJwb3Nlcy4KCjIwMDktMDYtMDMgMTk6MDY6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc2VnbWVudDogYWRkIG1ldGhvZCBmb3IgY29udmVydGluZyB0byBwb3NpdGlvbgoJICBBZGQgZ3N0X3NlZ21lbnRfdG9fcG9zaXRpb24oKSB0aGF0IGNvbnZlcnRzIGEgcnVubmluZ190aW1lIHRvIGEgcG9zaXRpb24gaW4gdGhlCgkgIHNlZ21lbnQuIEEgZmF1bHR5IHZhcmlhbnQgb2YgdGhpcyBmdW5jdGlvbiBpcyBjdXJyZW50bHkgdXNlZCBpbiBpbnB1dHNlbGVjdG9yCgkgIGJ1dCB3ZSdsbCBuZWVkIGl0IGZvciBmcmFtZSBzdGVwcGluZyB0b28uCgkgIEFQSTogR3N0U2VnbWVudDo6Z3N0X3NlZ21lbnRfdG9fcG9zaXRpb24oKQoKMjAwOS0wNi0wMyAxNTozOToxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms7IGhhbmRsZSBFT1MgY29ycmVjdGx5LgoJICBIYW5kbGUgRU9TIGFuZCBidWZmZXJzIHdpdGhvdXQgYSB0aW1lc3RhbXAgZ3JhY2VmdWxseS4KCSAgUmVtb3ZlIGEgd2FybmluZyB0aGF0IGlzIG5vdCBzbyBtdWNoIGEgd2FybmluZyBub3cgYW55bW9yZS4KCjIwMDktMDYtMDMgMDk6NDU6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkgIFJldmVydCAiZ28gYmFjayB0byBhbGxvd2luZyBnZXR0ZXh0IDAuMTEuNSwgYnV0IGRvbid0IG1peCB3aXRoIGxpYnRvb2wgMi4yIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDMxYzA5ZDczOGNlN2Y0N2JmZjlkMjkyOTk2ZTk0ODljMjc1ZTU1YTEuCgkgIFJldmVydGluZyB0aGlzLCBzaW5jZSBpdCBicmVha3MgYXV0b2dlbi5zaCBmb3IgbWUgb24gZGViaWFuIHNpZC4KCSAgRmFpbHVyZSBpczogImxpYnRvb2wgMi4yIHJlcXVpcmVzIGF1dG9wb2ludCAwLjE3IG9yIGhpZ2hlciIgZXZlbiB0aG91Z2gKCSAgMC4xNyB3YXMgZm91bmQuCgoyMDA5LTA2LTAzIDA5OjQxOjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGF1dG9nZW4uc2g6CgkgIFJldmVydCAib25seSB1cGRhdGUgc3VibW9kdWxlIHdoZW4gaXQgaXMgbm90IG9uIGEgc3BlY2lmaWMgYnJhbmNoIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDkzYjgzMzMzYWFkNTE5YzU1NTUxNTY1NzZmMGJhYTNiZTdiMjYzZjMuCgkgIFJldmVydGluZyBzaW5jZSB0aGlzIGZhaWxzIG9uIGEgZnJlc2ggY2hlY2tvdXQuIEFsc28sIHdlIHNob3VsZG4ndAoJICBkZXBlbmQgb24gcG9zc2libHkgdHJhbnNsYXRlZCBzdHJpbmdzLgoKMjAwOS0wNi0wMyAwMTo1NjoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6CgkgIGRvY3M6IGZpeCB1cCByZWZlcmVuY2UgdG8gZ3N0LWxhdW5jaC0wLjgKCSAgQWxzbyBtZW50aW9uIGRlY29kZWJpbjIsIHVyaWRlY29kZWJpbiwgYW5kIHBsYXliaW4yCgoyMDA5LTA2LTAzIDEwOjM5OjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZm9yZ2V0IHByZXZpb3VzIHRpbWVzIHdoZW4gc3RlcHBpbmcKCSAgV2hlbiB3ZSBzdGFydCBhIGZsdXNoaW5nIHN0ZXAgb3BlcmF0aW9uLCBmb3JnZXQgYWJvdXQgdGhlIHByZXZpb3VzIHN0cmVhbSB0aW1lCgkgIHNvIHRoYXQgdGhlIHBvc2l0aW9uIHJlcG9ydGluZyB3b3JrcyBjb3JyZWN0bHkuCgoyMDA5LTA2LTAzIDAxOjI1OjI2ICswMjAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJICBnbyBiYWNrIHRvIGFsbG93aW5nIGdldHRleHQgMC4xMS41LCBidXQgZG9uJ3QgbWl4IHdpdGggbGlidG9vbCAyLjIKCjIwMDktMDYtMDMgMDE6MDE6NTcgKzAyMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hcyAoYXQpIGFwZXN0YWFydCAoZG90KSBvcmc+CgoJKiBhdXRvZ2VuLnNoOgoJICBvbmx5IHVwZGF0ZSBzdWJtb2R1bGUgd2hlbiBpdCBpcyBub3Qgb24gYSBzcGVjaWZpYyBicmFuY2gKCjIwMDktMDYtMDIgMTM6NDU6NTIgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogU2V0IHBpcGVsaW5lIHRvIFBBVVNFRCBiZWZvcmUgd2FpdGluZyBmb3IgbWFpbiBsb29wIGlkbGUKCSAgV2hlbiBpdCBpcyBzaHV0dGluZyBkb3duIGEgcGlwZWxpbmUgYWZ0ZXIgY3RybC1jLCBzZXQgcGlwZWxpbmUgdG8KCSAgcGF1c2VkIGJlZm9yZSB3YWl0aW5nIGZvciB0aGUgbWFpbiBsb29wIHRvIGNvbXBsZXRlIGFsbCBwZW5kaW5nCgkgIHRyYW5zYWN0aW9ucy4gIEZpeGVzICM1ODQ2NTcuCgkgIElmIHNvbWUgcGFydCBvZiB0aGUgcGlwZWxpbmUgaXMgZ2VuZXJhdGluZyBzaWduYWxzIG9yIGlkbGUgZnVuY3Rpb25zCgkgIGF0IGEgZmFzdCByYXRlLCB3YWl0aW5nIGZvciBhIG1haW4gbG9vcCBpdGVyYXRpb24gbWF5IG5ldmVyIHJldHVybi4KCjIwMDktMDYtMDIgMTg6MzY6MTAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogZml4IHNlcmlhbGlzYXRpb24gb2YgbmVzdGVkIHN0cnVjdHVyZXMuCgkgIFVzZSBzdHJpbmdfd2FycC91bndyYXAgdG8gZXNjYXBlIGRlbGltaXRlcnMsIG90aGVyd2lzZSBkZXNlcmlhbGlzYXRpb24gZmFpbHMuCgkgIEFsc28gbW92ZSBHU1RfQVNDSUlfSVNfU1RSSU5HIHRvIHByaXZhdGUgaGVhZGVyIHRvIGF2b2lkIGtlZXBpbmcgaXQgaW4gc3luYy4KCSAgQWxzbyB1c2UgJ1wwJyB3aGVuIHRlcm1pbmF0aW5nIGEgc3RyaW5nIGZvciBiZXR0ZXIgcmVhZGFiaWxpdHkuCgoyMDA5LTA2LTAyIDE1OjM3OjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZml4IHJlZ3Jlc3Npb24gaW4gdW5pdCB0ZXN0cwoJICBTdG9yZSB0aGUgdGltZXN0YW1wIG9mIHRoZSBidWZmZXIgYWZ0ZXIgcHJlcm9sbGluZy4gV2hpbGUgd2UgYXJlIHByZXJvbGxlZCB3ZQoJICB3YW50IHRvIHJlcG9ydCB0aGUgcG9zaXRpb24gb2YgdGhlIHNlZ21lbnQgc3RhcnQgdmFsdWUuCgoyMDA5LTA2LTAxIDIwOjI2OjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHdpZGVuIGxvZyBsZXZlbCBzdHJpbmdzIHRvIHRha2UgaW50byBhY2NvdW50IHRoZSBuZXcgTUVNRFVNUAoKMjAwOS0wNi0wMSAxOTozNzoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHBvc3QgYSB3YXJuaW5nIG9uIGV4Y2Vzc2l2ZSBmcmFtZWRyb3BzCgkgIFdoZW4gd2UgZ28gaW50byBlbWVyZ2VuY3kgcmVuZGVyaW5nLCBwb3N0IGEgd2FybmluZyBpbmZvcm1pbmcgdGhlIHVzZXIgYWJvdXQKCSAgdGhpcyBmYWN0LgoKMjAwOS0wNS0zMSAxOToxMDowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IG1vcmUgc3RlcHBpbmcgaW4gcmV2ZXJzZQoJICBGaXggc3RlcHBpbmcgYW5kIHBvc2l0aW9uIHJlcG9ydGluZyBpbiByZXZlcnNlIHBsYXliYWNrLgoKMjAwOS0wNS0yOSAxNjowNjo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHVzZSBzdGFydF90aW1lIGFzIHRoZSBzdGVwIHN0YXJ0CgkgIFVzZSB0aGUgc3RhcnRfdGltZSBvZiB0aGUgZWxlbWVudCBhcyB0aGUgcG9pbnQgZnJvbSB3aGVyZSB0aGUgc3RlcCBvcGVyYXRpb24KCSAgc3RhcnRzLiBUaGlzIGZpeGVzIHN0ZXBwaW5nIGluIGFsbCBwYXVzZWQgc3RhdGVzLgoKMjAwOS0wNS0xOSAxOTo0NTowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGNhdGNoIHN0ZXAgY2FzZXMgaW4gX3dhaXRfcHJlcm9sbCgpCgkgIFdoZW4gYSBzdWJjbGFzcyBpcyBibG9ja2luZyBpbiBfd2FpdF9wcmVyb2xsKCkgaW4gdGhlIF9yZW5kZXIgbWV0aG9kLCBtYWtlIHN1cmUKCSAgd2UgY2FuIHVubG9jayB0aGUgc3ViY2xhc3MgYW5kIGRldGVjdCB0aGlzIHJldHVybiB2YWx1ZSBmcm9tIHRoZSByZW5kZXIgbWV0aG9kLgoKMjAwOS0wNS0xOSAxMDo1MDo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IG1vcmUgc3RlcHBpbmcgaW4gcmV2ZXJzZSBmaXhlcwoKMjAwOS0wNS0xOCAxODo0MTo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHNtYWxsIGNsZWFudXBzCgoyMDA5LTA1LTE4IDE1OjQ4OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtZnJhbWVzdGVwLnR4dDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zdGVwcGluZy9mcmFtZXN0ZXAxLmM6CgkgIGZyYW1lc3RlcDogaW1wbGVtZW50IGJhY2t3YXJkcyBmcmFtZXN0ZXAKCSAgVXBkYXRlIGZyYW1lc3RlcCBkb2N1bWVudCwgd2Ugd2FudCB0byBwYXNzIHRoZSBmbHVzaCBmbGFnIGluIHRoZSBzdGVwLWRvbmUKCSAgbWVzc2FnZS4KCSAgQWRkIGZsdXNoIGZsYWcgdG8gdGhlIGdzdG1lc3NhZ2UuCgkgIFVwZGF0ZSBleGFtcGxlcyB0byB1c2UgdGhlIG5ldyBzdGVwLWRvbmUgbWVzc2FnZSBhcGkuCgkgIEltcGxlbWVudCBmcmFtZXN0ZXAgd2l0aCBwbGF5YmFjayByYXRlcyA8IDAuMCB0b28uCgoyMDA5LTA1LTE1IDE1OjI1OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogYWRkIGZyYW1lc3RlcHBpbmcgaW4gdGltZQoKMjAwOS0wNS0xNSAxNToyNDozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0ZXBwaW5nL2ZyYW1lc3RlcDEuYzoKCSAgZXhhbXBsZXM6IHN0ZXAgaW4gdGltZSBhcyB3ZWxsCgoyMDA5LTA1LTE1IDEyOjAyOjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvc3RlcHBpbmcvZnJhbWVzdGVwMS5jOgoJICBleGFtcGxlOiBwcmludCBzdGVwX2RvbmUgbWVzc2FnZSBhbmQgc3luYwoJICBEdW1wIHRoZSBzdGVwX2RvbmUgbWVzc2FnZSBjb250ZW50cy4KCSAgU3luYyBhZ2FpbnN0IHRoZSBjbG9jayB3aGVuIGdvaW5nIHRvIFBMQVlJTkcuCgoyMDA5LTA1LTE1IDEyOjA1OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazoga2VlcCB0cmFjayBvZiBzdGVwcGVkIHRpbWUKCSAgUGFzcyBydW5uaW5nX3RpbWUgYXJvdW5kIHNvIHRoYXQgdGhlIHN0ZXBwaW5nIGNvZGUgY2FuIGNhbGN1bGF0ZSB0aGUgZWxhcHNlZAoJICB0aW1lIGNvcnJlY3RseS4KCjIwMDktMDUtMTQgMTk6Mjk6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBtb3ZlIHN0dWZmIGFyb3VuZCwgbW9yZSBzdGVwcGluZwoJICBNYWtlIHN0YXJ0IGFuZCBzdG9wX3N0ZXBwaW5nIG1ldGhvZHMgYW5kIG1vdmUgdGhlaXIgaW52b2NhdGlvbiBpbiB0aGUgcmlnaHQKCSAgcGxhY2VzLgoJICBQZXJmb3JtIHRoZSBhdHVhbCBzdGVwcGluZyBvcGVyYXRpb24gd2hlcmUgd2UgaGF2ZSBmdWxsIGNvbnRleHQgYWJvdXQgdGhlCgkgIHRpbWVzdGFtcHMuCgoyMDA5LTA1LTExIDE4OjU2OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvc3RlcHBpbmcvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvc3RlcHBpbmcvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3N0ZXBwaW5nL2ZyYW1lc3RlcDEuYzoKCSAgQWRkIGZyYW1lIHN0ZXBwaW5nIGluIFBBVVNFRCBleGFtcGxlCgoyMDA5LTA1LTExIDE4OjU2OjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZmlyc3Qgc3RhYiBhdCBmcmFtZSBzdGVwcGluZyBpbiBQQVVTRUQKCSAgVW5sb2NrIHRoZSBwcmVyb2xsZWQgZnJhbWUgYW5kIHJlY2hlY2sgaWYgd2UgbmVlZCB0byBzdGVwLgoJICBLZWVwIGEgc2ltcGxlIGNvdW50ZXIgZm9yIHRoZSBmcmFtZXMgd2UncmUgYWJvdXQgdG8gc2tpcCB3aGlsZSBzdGVwcGluZyBhbmQKCSAgcHJlcm9sbC9wb3N0IHN0ZXBfZG9uZSB3aGVuIHN0ZXBwaW5nIGZpbmlzaGVkLgoKMjAwOS0wNi0wMSAxMjoxOTo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWZyYW1lc3RlcC50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYWRkIG5ldyBBUEkgZm9yIGZyYW1lc3RlcHBpbmcKCSAgQWRkIG5ldyBTVEVQIGV2ZW50IGFuZCBtZXRob2RzIGZvciBjcmVhdGluZy9wYXJzaW5nIHRoZSBldmVudAoJICBVcGRhdGUgZGVzaWduIGRvY3MuCgkgIEFkZCBuZXcgU1RFUF9ET05FIG1lc3NhZ2UgYW5kIG1ldGhvZCB0byBjcmVhdGUvcGFyc2UuCgkgIEFQSTogR3N0RXZlbnQ6OmdzdF9ldmVudF9uZXdfc3RlcCgpCgkgIEFQSTogR3N0RXZlbnQ6OmdzdF9ldmVudF9wYXJzZV9zdGVwKCkKCSAgQVBJOiBHc3RNZXNzYWdlOjpnc3RfbWVzc2FnZV9uZXdfc3RlcF9kb25lKCkKCSAgQVBJOiBHc3RNZXNzYWdlOjpnc3RfbWVzc2FnZV9wYXJzZV9zdGVwX2RvbmUoKQoKMjAwOS0wNi0wMSAxMDowNTozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZXM6IGRvbid0IGxlYWsgaW52YWxpZCBvciBlbXB0eSBzdHJpbmdzIHdoZW4gd2Ugd2FybgoJICBGaXhlcyBtaW5vciBtZW1vcnkgbGVhayBpbiB1bml0IHRlc3RzIGNhdXNlZCBieSB0aGUgcmVjZW50IGNoYW5nZXMuCgkgIFNpbmNlIHdlJ3JlIGV4cGVjdGVkIHRvIHRha2Ugb3duZXJzaGlwIG9mIHRoZSBHVmFsdWUgaW4gdGhlIHN0cnVjdHVyZQoJICBmaWVsZCBzdHJ1Y3QgaGVyZSwgd2UgbmVlZCB0byB1bnNldCBpdCBpZiB3ZSBkb24ndCB1c2UgaXQuCgoyMDA5LTA2LTAxIDExOjA4OjMxICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogYWRkIHRlc3QgZm9yIGN1YmljIGludC4gYW5kIHRvbyBmZXcgY29udHJvbCBwb2ludHMKCSAgQWRkZWQgYW5vdGhlciB0ZXN0cyB0byBjaGVjayBzb21lIHdvcnJpZXMgaW4gQnVnICM1ODI1NjQuCgoyMDA5LTA1LTI4IDEyOjMxOjA4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgZmFrZXNyYzogYWRkIGEgRklYTUUgY29tbWVudCBmb3IgYmxvY2tzaXplIHZzLiBzaXplLW1heCBwcm9wZXJ0eSBpc3N1ZQoKMjAwOS0wNS0zMSAyMToyNzo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgaWRlbnRpdHk6IGhhY2sgYXJvdW5kIGdfb2JqZWN0X25vdGlmeSgpIGJ1ZyBieSBwcm90ZWN0aW5nIGl0IHdpdGggYSBsb2NrCgkgIE91dC1vZi1iYW5kIGV2ZW50cyBtaWdodCBsZWFkIHRvIHVzIGNhbGxpbmcgZ19vYmplY3Rfbm90aWZ5KCkgZnJvbSBhCgkgIG5vbi1zdHJlYW1pbmcgdGhyZWFkLCB3aGljaCBjYW4gY2F1c2UgY3Jhc2hlcyBpZiBnX29iamVjdF9ub3RpZnkoKSBpcwoJICBiZWluZyBjYWxsZWQgZnJvbSB0aGUgc3RyZWFtaW5nIHRocmVhZCBhdCB0aGUgc2FtZSB0aW1lLiBTZWUgIzU1NDQ2MC4KCjIwMDktMDUtMzEgMjI6Mzc6NTkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiB1c2UgcmVhbCB3b3JsZCBudW1iZXIgaW4gYmVuY2htYXJrCgoyMDA5LTA1LTMxIDIyOjM3OjAzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IGZpeCBjb21tZW50IGZvcm1hdHRpbmcKCjIwMDktMDUtMzAgMjA6MzY6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJICBmYWtlc2luazogaGFjayBhcm91bmQgY3Jhc2hlciBidWcgaW4gZ19vYmplY3Rfbm90aWZ5KCkgZm9yIG91dC1vZi1iYW5kIGV2ZW50cwoJICBHT2JqZWN0IG1heSBjcmFzaCBpZiB0d28gdGhyZWFkcyBkbyBjb25jdXJyZW50IGdfb2JqZWN0X25vdGlmeSgpIG9uIHRoZSBzYW1lCgkgIG9iamVjdC4gVGhpcyBtYXkgaGFwcGVuIGlmIGZha2VzaW5rIHJlY2VpdmVzIGFuIG91dC1vZi1iYW5kIGV2ZW50IHN1Y2ggYXMKCSAgRkxVU0hfU1RBUlQgd2hpbGUgcHJvY2Vzc2luZyBhIGJ1ZmZlciBvciBzZXJpYWxpc2VkIGV2ZW50IGluIHRoZSBzdHJlYW1pbmcKCSAgdGhyZWFkLiBTaW5jZSB0aGlzIG1heSBoYXBwZW4gd2l0aCB0aGUgZGVmYXVsdCBzZXR0aW5ncyBkdXJpbmcgYSBjb21tb24KCSAgb3BlcmF0aW9uIGxpa2UgYSBzZWVrLCBhbmQgdGhlcmUgc2VlbXMgdG8gYmUgbGl0dGxlIGNoYW5jZSBvZiBhIHRpbWVseSBmaXgKCSAgaW4gR09iamVjdCAoc2VlICMxNjYwMjApLCB3ZSBzaG91bGQgaGFjayBhcm91bmQgdGhpcyBpc3N1ZSBieSBwcm90ZWN0aW5nIGFsbAoJICBvZiBmYWtlc2luaydzIGRpcmVjdCBnX29iamVjdF9ub3RpZnkoKSBjYWxscyB3aXRoIGEgbG9jay4KCSAgQWxzbyBhZGQgdW5pdCB0ZXN0IGZvciB0aGUgYWJvdmUuCgkgIEZpeGVzICM1NTQ0NjAuCgoyMDA5LTA1LTMxIDE2OjE3OjQ1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3RzOiBtYWtlIF9nZXRfe3N0cmluZ3xwb2ludGVyfSByZXR1cm4gRkFMU0UgZm9yIE5VTEwgdmFsdWVzCgkgIE1ha2UgZ3N0X3RhZ19saXN0X2dldF9zdHJpbmcoKSByZXR1cm4gRkFMU0UgZm9yIE5VTEwgc3RyaW5ncyBhbmQKCSAgZW1wdHkgc3RyaW5ncywgYW5kIGdzdF90YWdfbGlzdF9nZXRfcG9pbnRlcigpIHJldHVybiBGQUxTRSBmb3IKCSAgTlVMTCBwb2ludGVycywgbGlrZSB3ZSBkbyB3aXRoIGRhdGVzIGFuZCBidWZmZXJzLgoJICBGaXhlcyAjNTYwMzQ1LgoKMjAwOS0wNS0zMCAyMDo1MDo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJICB0YWdsaXN0czogd2FybiBpZiBzb21lb25lIHRyaWVzIHRvIGFkZCBlbXB0eSBvciBOVUxMIHN0cmluZyB0YWdzIHRvIGEgdGFnbGlzdAoJICBBbHNvIHdhcm4gaWYgYW4gZWxlbWVudCBvciBhcHBsaWNhdGlvbiB0cmllcyB0byBhZGQgYSBmaWVsZCB3aXRoIGFuCgkgIGVtcHR5IHN0cmluZyB0byBhIHN0cnVjdHVyZSAoTlVMTCBzdHJpbmdzIGFyZSBzdGlsbCBuZWVkZWQgYW5kCgkgIGFsbG93ZWQgdGhvdWdoKSBhbmQgZG8gYWxsIHRob3NlIGNoZWNrcyBpbiB0aGUgcmlnaHQgZnVuY3Rpb24uCgkgIEZpeGVzICM1NTk2NDMuCgoyMDA5LTA1LTI5IDE4OjIyOjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzdHJ1Y3R1cmU6IGFkZCBnc3Rfc3RydWN0dXJlX2lkX25ldygpIGNvbnZlbmllbmNlIGZ1bmN0aW9uCgkgIEFkZCBjb252ZW5pZW5jZSB3cmFwcGVyIGZvciBnc3Rfc3RydWN0dXJlX2lkX2VtcHR5X25ldygpIHBsdXMKCSAgZ3N0X3N0cnVjdHVyZV9pZF9zZXQoKSBhbmQgdXNlIGl0IGluIGEgZmV3IHBsYWNlcy4KCSAgQVBJOiBnc3Rfc3RydWN0dXJlX2lkX25ldygpCgoyMDA5LTA1LTI5IDE4OjAwOjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBtaWNyby1vcHRpbWlzYXRpb246IHVzZSBHU1RfUVVBUksgaW4gbW9yZSBwbGFjZXMKCSAgVXNlIGdzdF9zdHJ1Y3R1cmVfaWRfZW1wdHlfbmV3KCkgaW4gY29tYmluYXRpb24gd2l0aCBHU1RfUVVBUksKCSAgcmF0aGVyIHRoYW4gZ3N0X3N0cnVjdHVyZV9pZF9uZXcoKSB3aGVuIGNyZWF0aW5nIG1lc3NhZ2UsIGV2ZW50LAoJICBxdWVyeSBhbmQgdGFnbGlzdCBzdHJ1Y3R1cmVzLiBNb3N0bHkganVzdCBiZWNhdXNlIHdlIGNhbi4KCjIwMDktMDUtMjkgMTY6MDQ6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiByZXNldCBzdGFydF90aW1lIGluIGxvc3Qgc3RhdGUKCjIwMDktMDUtMjkgMTM6MDM6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgZG9jczogdXBkYXRlIGVsZW1lbnQgYW4gcGlwZWxpbmUgZG9jcwoKMjAwOS0wNS0yOSAxMjo0ODoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIGRvY3M6IHJlbW92ZSBhIFRPRE8gaXRlbSB0aGF0IGlzIGZpeGVkIG5vdwoKMjAwOS0wNS0yOSAxMjoyMTozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiBkZXByZWNhdGUgb2xkIG1ldGhvZHMsIGZpeCB0ZXN0CgkgIERlcHJlY2F0ZSB0aGUgb2xkIF9zZXRfc3RyZWFtX3RpbWUgYW5kIF9nZXRfbGFzdF9zdHJlYW1fdGltZSBtZXRob2RzIGJlY2F1c2UKCSAgdGhleSBhcmUgbm93IGVxdWl2YWxlbnQgdG8gdGhlIGJldHRlciBuYW1lZCBfc2V0L19nZXRfc3RhcnRfdGltZS4KCjIwMDktMDUtMjggMTY6MzA6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkgIHBpcGVsaW5lOiB1c2UgU1RBUlRfVElNRSB0byBrZWVwIHRyYWNrIG9mIHRpbWUKCSAgVXNlIHRoZSBlbGVtZW50IFNUQVJUX1RJTUUgdG8ga2VlcCB0cmFjayBvZiB0aGUgcnVubmluZyB0aW1lIHdoZW4gdGhlIHBpcGVsaW5lCgkgIHBhdXNlZCBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIHRvIHJlc3RvcmUgdGhlIGJhc2VfdGltZS4KCSAgVGFrZSB0aGUgc3RhcnRfdGltZSBiZWZvcmUgc2V0dGluZyB0aGUgY2hpbGRyZW4gdG8gUEFVU0VEIHNvIHRoYXQgd2UgY2FuCgkgIGRpc3RyaWJ1dGUgdGhlIHN0YXJ0X3RpbWUgdG8gdGhlIGNoaWxkcmVuLgoKMjAwOS0wNS0yOCAxNTo0MDowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBzZXQgdGhlIGJhc2VfdGltZSBhbmQgc3RhcnRfdGltZSBiZXR0ZXIKCSAgU2ltcGx5IHNldCB0aGUgc3RhcnRfdGltZSBhbmQgYmFzZV90aW1lIG9uIHRoZSBlbGVtZW50IGluc3RlYWQgb2YgY2FsbGluZyB0aGUKCSAgc2V0dGVycy4KCjIwMDktMDUtMjcgMTE6MzU6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogbWFrZSB0aGUgYmluIHNldCB0aGUgc3RhcnRfdGltZSBvbiBlbGVtZW50cwoJICBTZXQgdGhlIHN0YXJ0X3RpbWUgb2YgdGhlIGJpbiBvbiB0aGUgZWxlbWVudHMgd2hlbiB0aGV5IGFyZSBhZGRlZCB0byB0aGUKCSAgcGlwZWxpbmUgYW5kIHdoZW4gYSBzdGF0ZSBjaGFuZ2UgaGFwcGVucy4KCjIwMDktMDUtMjYgMTE6NTM6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZWxlbWVudDogYWRkIHN0YXJ0X3RpbWUgZmllbGQgYW4gbWV0aG9kcwoJICBBZGQgYSBzdGFydF90aW1lIGZpZWxkIGFuZCBzb21lIG1ldGhvZHMuIFRoZSBzdGFydF90aW1lIHdpbGwgY29udGFpbiB0aGUKCSAgcnVubmluZ190aW1lIG9mIHdoZW4gdGhlIGVsZW1lbnQgbGFzdCB3ZW50IHRvIHBhdXNlZC4gVGhpcyB0aW1lIGNhbiBiZSB1c2VyIHRvCgkgIHJlcG9ydCB0aGUgcG9zaXRpb24gaW4gUEFVU0VEIGJ1dCBhbHNvIHRvIGRvIG1vcmUgY29ycmVjdCBjbGlwcGluZyBhbmQKCSAgc3RlcHBpbmcgbGF0ZXIuCgoyMDA5LTA1LTI4IDIyOjAyOjIxICswMjAwICBBcm5vdXQgVmFuZGVjYXBwZWxsZSA8YXJub3V0QG1pbmQuYmU+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGZpeCBfbWFza2VkX3NjYW5fdWludDMyKCkgYXQgYm91bmRhcmllcwoJICBnc3RfYWRhcHRlcl9tYXNrZWRfc2Nhbl91aW50MzIgY291bGQgcmV0dXJuIHZhbHVlcyBzbWFsbGVyIHRoYW4gb2Zmc2V0CgkgIGlmIHRoZSBmaXJzdCBieXRlKHMpIG9mIHRoZSBtYXNrIGFyZSAwIGFuZCB0aGUgcGF0dGVybiBtYXRjaGVzIHRoZQoJICBiZWdpbm5pbmcgb2YgdGhlIGFkYXB0ZXIuCgkgIEFkZGVkIGV4YW1wbGVzIHRvIGRvY3VtZW50YXRpb24gb2YgZ3N0X2FkYXB0ZXJfbWFza2VkX3NjYW5fdWludDMyKCkuCgkgIEFsc28gYWRkZWQgc29tZSBtb3JlIG1hc2tlZCBib3VuZGFyeSB0ZXN0cy4KCSAgRml4ZXMgIzU4NDExOAoKMjAwOS0wNS0yOCAxNjozNjozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCBwYWQgcHJpdmF0ZSBzdHJ1Y3R1cmUKCSAgQWRkIHBhZCBwcml2YXRlIHN0cnVjdHVyZSBhbmQgbW92ZSB0aGUgbmV3IGNoYWlubGlzdGZ1bmMgaW50byB0aGUgcHJpdmF0ZQoJICBzdHJ1Y3QuIFRoaXMgYXZvaWRzIEFCSSBicmVha2FnZSBhbmQgYWxsb3dzIHVzIHRvIGV4cGFuZCBpbiB0aGUgZnV0dXJlLgoKMjAwOS0wNS0yNyAxNjozNDoxOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIEFkZCBtaXNzaW5nIHN5bWJvbCB0byB0aGUgd2luMzIgZXhwb3J0cwoJICBUaGlzIHdhcyBhY2NpZGVudGlhbGx5IHJlbW92ZWQgYnkgbXkgbGFzdCBjb21taXQuCgoyMDA5LTA1LTI3IDE2OjE3OjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGF2b2lkIG1lbW9yeSBsZWFrcwoJICBBdm9pZCBsZWFraW5nIHRoZSBjYXBzIG9mIHRoZSBkZXN0IGJ1ZmZlciBhbmQgYXZvaWQgZG9pbmcgbmVlZGxlc3MgY2FwcwoJICByZWZzLgoJICBXaGVuIHRoZSBzb3VyY2UgYW5kIHRhcmdldCBidWZmZXJzIGFyZSB0aGUgc2FtZSwgcmV0dXJuIGltbWVkaWF0bHkuCgoyMDA5LTA1LTI3IDE0OjMyOjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBUEk6IEFkZCBnc3RfbWVzc2FnZV97bmV3LHBhcnNlfV90YWdfZnVsbCgpIHRvIGdldC9zZXQgdGhlIHNvdXJjZSBwYWQKCSAgRml4ZXMgYnVnICM1ODI1ODguCgoyMDA5LTA1LTI3IDE0OjA2OjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBSZXZlcnQgImVsZW1lbnQ6IFNldCB0aGUgb3JpZ2luYXRpbmcgcGFkIGFzIG1lc3NhZ2Ugc291cmNlIGluIGdzdF9lbGVtZW50X2ZvdW5kX3RhZ3NfZm9yX3BhZCAoKSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBiZWJmZGU3NTAyN2U5NzViN2U3Yzc0YzYzNThjNWJlODNlYTRhYzlmLgoJICBUaGlzIGNoYW5nZSBzaG91bGRuJ3QgYmUgZG9uZSBpbiBhIHN0YWJsZSByZWxlYXNlIHNlcmllcyBhcwoJICBhcHBsaWNhdGlvbnMgYXJlIGFjdHVhbGx5IGV4cGVjdGluZyB0aGUgc2VuZGVyIHRvIGJlIGFuCgkgIEdzdEVsZW1lbnQuIE9uZSBleGFtcGxlIGlzIHRvdGVtLgoKMjAwOS0wNS0yNiAxMTozNTo0OSArMDEwMCAgSmFuIFNjaG1pZHQgPGphbi5zY2htaWR0QHN1bi5jb20+CgoJKiBjb21tb246CgkgIFVwZGF0ZSBjb21tb24KCjIwMDktMDUtMjYgMTA6NDE6MjggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkgIEZpeCAnbWFrZSBkaXN0Y2hlY2snCgkgIFRoZSBjaGVjay1lbnVtLWdldHR5cGVzIHJ1bGUgZGlkbid0IHdvcmsgZm9yICdtYWtlIGRpc3RjaGVjaycgc2luY2UKCSAgaXQgbWFrZXMgYXNzdW1wdGlvbnMgYWJvdXQgdGhlIGxvY2F0aW9uIG9mIHRoZSBzb3VyY2UgZmlsZXMgZnJvbSB0aGUKCSAgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSB3aGljaCBpc24ndCB0cnVlIGR1cmluZyBkaXN0Y2hlY2tpbmcuCgoyMDA5LTA1LTI2IDEwOjM4OjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFscy5tYWs6CgkgIG1hbnVhbHMubWFrOiBhdHRlbXB0IHRvIG1ha2UgJ21ha2UgZGlzdGNoZWNrJyB3b3JrIHdpdGggLWpOCgkgIEF0dGVtcHQgdG8gZml4IHRoZSAnY2Fubm90IGNyZWF0ZSByZWd1bGFyIGZpbGUgYnVpbGQvaW1hZ2UuZW50aXRpdGVzOgoJICBmaWxlIGV4aXN0cycgZXJyb3IgSSBnb3QuCgoyMDA5LTA1LTI1IDIzOjU4OjM3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgZG9jczogZml4IGNkcGFyYW5vaWEgZXhhbXBsZSBwaXBlbGluZSBpbiBnc3QtbGF1bmNoIG1hbiBwYWdlCgoyMDA5LTA1LTI1IDE4OjQ0OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogZml4IHR5cG8gaW4gY29tbWVudHMKCjIwMDktMDUtMjUgMTc6NDM6MzIgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvTWFrZWZpbGUuYW06CgkgIGRpc3Q6IEZpeCB0aGUgbmFtZSBvZiB0aGUgaGVhZGVyIHRvIGRpc3Q6IHRlc3RydHBvb2wuaCwgbm90IHJ0cG9vbC10ZXN0LmgKCjIwMDktMDUtMjUgMTc6MDM6MDUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSAgVXBkYXRlIGNvbW1vbgoKMjAwOS0wNS0yNSAxNjo1NDoyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBjbG9jazogcmVtb3ZlIGFzc2VydGlvbgoJICBSZW1vdmUgYW4gYXNzZXJ0aW9uLCB0aGlzIGlzIG5vdCByZWFsbHkgYW4gZXJyb3IgaW4gYWxsIGNhc2VzLgoJICBGaXhlcyAjNTgyMDEwCgoyMDA5LTA1LTI1IDE2OjIxOjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIGNsb2NrOiBlbmFibGUgbW9ub3RvbmljIGNsb2NrIHdoZW4gd2UgY2FuCgkgIEVuYWJsZSB0aGUgbW9ub3RvbmljIGNsb2NrIGJ5IGRlZmF1bHQgd2hlbiB3ZSBjYW4uCgkgIEZpeGVzICM1ODM1NTQKCjIwMDktMDUtMjUgMTQ6NTI6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkgIGRvY3M6IGFkZCBJbWFnZSB0byBkcmFmdCBrbGFzcyBkb2N1bWVudGF0aW9uCgoyMDA5LTA1LTI1IDEzOjAzOjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGtlZXAgdGFzayByZWYgYmVmb3JlIHJlbGVhc2luZyB0aGUgbG9jawoJICBLZWVwIGEgcmVmIHRvIHRoZSB0YXNrIG9uIHRoZSBwYWQgc28gdGhhdCBhIGNvbmN1cnJlbnQgc3RvcCBjYW4gc3RvcCBhbmQgam9pbgoJICB0aGUgdGFzay4KCjIwMDktMDUtMjUgMTE6NTY6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICBnc3R0YXNrOiBhdm9pZCBqb2luIHRvIHJldHVybiBlYXJseQoJICBVbnNldCB0aGUgcnVubmluZyBmbGFnIGFmdGVyIHdlIHJlbGVhc2VkIHRoZSBsb2NrIGZvciBwb3N0aW5nIHRoZSBzdHJlYW0tc3RhdHVzCgkgIG1lc3NhZ2UuIElmIHdlIHNldCB0aGUgcnVubmluZyBmbGFnIHRvIEZBTFNFIHRvbyBlYXJseSwgdGhlIGpvaW4gbWV0aG9kIHdpbGwKCSAganVzdCBjb250aW51ZSB3aXRob3V0IHdhaXRpbmcgZm9yIHRoZSBtZXNzYWdlIHRvIGJlIHBvc3RlZCwgbGVhZGluZyB0byBwb3RlbnRpYWwKCSAgY3Jhc2hlcy4KCjIwMDktMDUtMjQgMjM6MTQ6MjYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgcHJlc2V0OiBmaXggdXBkYXRlIHJ1bGUKCSAgT25seSB1cGRhdGUgdGhlIHByZXNldCBmcm9tIHN5c3RlbSwgaWYgd2UgaGFkIGEgcHJlc2V0IGJlZm9yZSBhbmQgc3lzdGVtCgkgIHZlcnNpb24gaXMgbmV3ZXIuCgoyMDA5LTA1LTIyIDIzOjQ3OjMwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2JlbmNobWFya3MvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBhZGQgYSBiZW5jaG1hcmsgdG8gdmVyaWZ5IHRoZSBzd2l0Y2ggdG8gZ3NlcXVlbmNlCgoyMDA5LTA1LTIyIDIzOjUwOjU4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSAgY29udHJvbGxlcjogYWRkIG1vcmUgZXJyb3IgaGFuZGxpbmcgdG8gZXhhbXBsZQoKMjAwOS0wNS0yMiAyMzoxNDo0MSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiBkb24ndCBmcmVlIG5vZGUtZGF0ZSBhbmQgZGVyZWYgYWdhaW4uIEZpeGVzICM1ODA1NzkKCSAgV2hlbiB3cml0aW5nIGEgY2FjaGUgY2h1bmsgZmFpbHMsIHdlIHdlcmUgZnJlZWluZyB0aGUgbm9kZSBhbmQganVtcCB0byBhIGZpbmFsCgkgIGNsZWFudXAgd2hpY2ggZGVyZWZlcmVuY2VkIGEgbnVsbCBwb2ludGVyLiBMZXZlIGZyZWVpbmcgdGhlIG5vZGUgdG8gdGhlIGNsZWFudXAKCSAgY29kZSBpbiBmYWlsX2ZyZWVfbGlzdC4gKHNvcnJ5IGZvciBjb21taXR0aW5nIHdyb25nIGZpeCBiZWZvcmUpLgoKMjAwOS0wNS0yMiAyMzoxMDowMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiBkb24ndCBmcmVlIG5vZGUtZGF0ZSBhbmQgZGVyZWYgYWdhaW4uIEZpeGVzICM1ODA1NzkKCSAgV2hlbiB3cml0aW5nIGEgY2FjaGUgY2h1bmsgZmFpbHMsIHdlIHdlcmUgZnJlZWluZyB0aGUgbm9kZSBhbmQganVtcCB0byBhIGZpbmFsCgkgIGNsZWFudXAgd2hpY2ggZGVyZWZlcmVuY2VkIGEgbnVsbCBwb2ludGVyLiBMZXZlIGZyZWVpbmcgdGhlIG5vZGUgdG8gdGhlIGNsZWFudXAKCSAgY29kZSBpbiBmYWlsX2ZyZWVfbGlzdC4KCjIwMDktMDUtMjIgMTQ6MTc6NTYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IGFkZCBHX0xJS0VMWSBhbmQgam9pbiB0d28gaWYgZm9yIHNhbWUgY29uZGl0aW9uCgkgIEEgR19MSUtFTFkgZm9yIHRoZSBzZXF1ZW5jZSE9TlVMTCBjaGVja3MuIEpvaW4gdHdvIGlmcyB0byBhbiBpZi1lbHNlLiBBZGQKCSAgaW5kZW50IGd1aWRlcyB0byBrZWVwIGluZGVudCBmb3JtIGJyZWFraW5nIHRoZSBmdW5jdGlvbiBkZWNsYXJhdGlvbgoKMjAwOS0wNS0yMiAxMjo1NzoxMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgZ3N0dHlwZWZpbmRoZWxwZXI6IEZpeCBpbmRlbnRhdGlvbgoKMjAwOS0wNS0yMiAxMjoyNDoyMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkgIGRvY3M6IGZpeCBndGstZG9jIHdhcm5pbmdzCgkgIE1vdmUgTVQgc2FmZXR5IHRvIG1haW4gZGVzY3JpcHRpb24gKGl0IGRvZXMgbm90IGJlbG9uZyB0byBSZXR1cm46IG9yIFNpbmNlOgoJICBzdGF0ZW1lbnQpLiBBZGQgYSBmZXcgbWlzc2luZyByZXR1cm4gZG9jcy4gRG93bmdyYWRlIGEgbm9ybWFsIGNvbW1lbnQgZnJvbWEgZG9jCgkgIGNvbW1lbnQuIEZpeCBhIGRvYyBoZWFkZXIgdG8gb25seSBjb250YWluIHN5bWJvbCBuYW1lLgoKMjAwOS0wNS0yMiAxMDoxOTozNiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBkM2E4ZmFiIHRvIDg4OGUwYTIKCjIwMDktMDUtMjIgMDk6NTE6NDQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvTWFrZWZpbGUuYW06CgkgIGRpc3Q6IEFkZCBydHBvb2wtdGVzdC5oIHRvIHRoZSBzb3VyY2VzIGxpc3Qgc28gaXQgZ2V0cyBkaXN0ZWQuCgkgIEZpeGVzIHRoZSBkaXN0Y2hlY2sKCjIwMDktMDUtMjIgMDk6NDQ6MjUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvLmdpdGlnbm9yZToKCSAgZ2l0aWdub3JlczogSWdub3JlIHRoZSBjbG9ja3N0cmVzcyBiZW5jaG1hcmsgYmluYXJ5CgoyMDA5LTA1LTIyIDA5OjQxOjM2ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgY29udHJvbGxlcjogU2lsZW5jZSBhIHdhcm5pbmcgZnJvbSB0aGUgR1NlcXVlbmNlIGJlaW5nIE5VTEwuCgkgIEZpeCBhIHdhcm5pbmcgdGhhdCBvY2N1cnMgd2hlbiB0aGUgc2VsZi0+cHJpdi0+dmFsdWVzIGlzIE5VTEwgYW5kCgkgIHRoZSBjb2RlIHRyaWVzIHRvIHJldHJpZXZlIGFuIGl0ZXJhdG9yIGZyb20gaXQuIFRoZSB3YXJuaW5nIHdhcyBzaG93aW5nCgkgIHVwIGluIHRoZSBjaGVja3MgZm9yIHRoZSB2b2x1bWUgZWxlbWVudC4KCjIwMDktMDUtMjIgMDk6MzM6MDIgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIGRvY3M6IEZpeCB1cCBzb21lIGRvY3VtZW50YXRpb24gd2FybmluZ3MuCgkgIFNpbmNlOiB0YWdzIHNob3VsZCBhbHdheXMgYmUgdGhlIGxhc3QgdGhpbmcgaW4gYSBkb2MgYmxvY2ssIGFwcGFyZW50bHkuCgkgIEFkZCBzb21lIFJldHVybnM6IGRlc2NyaXB0aW9ucyB0byBzb21lIHJlY2VudCBmdW5jdGlvbnMuCgoyMDA5LTA1LTIxIDE3OjMyOjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgZG9jczogdXBkYXRlIGRvY3MgZm9yIHN0cmVhbV90aW1lLT5ydW5uaW5nX3RpbWUKCSAgQ2hhbmdlIHNvbWUgaW5zdGFuY2VzIHdoZXJlIHdlIHdyb25nbHkgcmVmZXIgdG8gc3RyZWFtIHRpbWUgd2hlcmUgaXQgc2hvdWxkIGhhdmUKCSAgYmVlbiBydW5uaW5nIHRpbWUuCgoyMDA5LTA1LTIxIDEwOjU3OjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogZG9uJ3QgdXNlIEdfR1VJTlQzMl9GT1JNQVQgaW4gdHJhbnNsYXRhYmxlIHN0cmluZwoJICB4Z2V0dGV4dCBkb2Vzbid0IGhhbmRsZSB0aGlzIHZlcnkgd2VsbC4gRml4ZXMgIzU4MzQxOS4KCjIwMDktMDUtMjAgMTc6MDc6MzcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogYXV0b2dlbi5zaDoKCSAgYXV0b2dlbi5zaDogY2FuIHJlbW92ZSB0aGUgLVduby1wb3J0YWJpbGl0eSBmcm9tIGhlcmUgbm93CgkgIHNpbmNlIHdlIGFkZGVkIGl0IHRvIGNvbmZpZ3VyZS5hYy4KCjIwMDktMDUtMjAgMjI6MTg6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogaW1wcm92ZSB0aGUgZmx1c2ggZnVuY3Rpb24KCSAgUmVtb3ZlIGEgY29tcGFyZSBhbmQgYnJhbmNoIGZyb20gZmx1c2guCgoyMDA5LTA1LTIwIDE3OjI0OjE5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IGZpeCBhc3NlcnRpb24gd2hlbiBmcmVlaW5nIHRoZSBjb250cm9sIHNvdXJjZQoKMjAwOS0wNS0yMCAxMjo0ODo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBwb3RlbnRpYWxseSBzYXZlIGEgbWVtY3B5IGluIF90YWtlCgkgIERpcmVjdGx5IHVzZSB0aGUgYXNzZW1ibGVkX2RhdGEgaW4gX3Rha2UoKSBmdW5jdGlvbnMgd2hlbiB3ZSBjYW4gaW5zdGVhZCBvZgoJICBjb3B5aW5nIGl0IG91dC4KCjIwMDktMDUtMjAgMTE6MzY6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogbWljcm8gb3B0aW1pc2F0aW9ucwoKMjAwOS0wNS0yMCAxMToxMjo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBhdm9pZCBjb21wYXJpc2lvbnMgaW4gZmFzdCBwYXRoCgkgIFNtYWxsIHR3ZWFrcyB0byByZWR1Y2UgdGhlIG51bWJlciBvZiB1c2VsZXNzIGNvbXBhcmVzIGluIGxvb3BzLgoKMjAwOS0wNS0yMCAxMDoyODowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICB0ZXN0czogb25lIG1vcmUgYWRhcHRlciB0ZXN0CgoyMDA5LTA1LTIwIDEwOjI3OjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGF2b2lkIGJyYW5jaCBpbiBjb3B5IGNvZGUKCjIwMDktMDUtMjAgMTA6NTY6MTEgKzAzMDAgIEhhbm5lcyBCaXN0cnkgPGJpc3RyeUBpbmZvcm1hdGlrLnVuaS1oYW1idXJnLmRlPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGxvYWRzYXZlOiBmaXggcmVxdWVzdHBhZCBoYW5kbGluZyBhbmQgc2VyaWFsaXNhdGlvbiBvcmRlci4KCSAgU3VwcG9ydCByZXF1ZXN0IHBhZHMgd2hlbiBsb2FkaW5nLiBSZXZlcnNlIHBhZCBzZXJpYWxpc2F0aW9uIG9yZGVyIHRvCgkgIHByZXNlcnZlIGl0IHdoZW4gcmVjcmVhdGluZyB0aGUgcGlwZWxpbmUuCgoyMDA5LTA1LTIwIDAwOjQ1OjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkZWZzOiBhZGQgbmV3IHN5bWJvbAoKMjAwOS0wNS0yMCAwMDo0NDoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCBuZXcgc3ltYm9sIHRvIGRvY3MKCjIwMDktMDUtMjAgMDA6Mzc6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICBhZGFwdGVyOiBhZGQgX21hc2tlZF9zY2FuX3VpbnQzMgoJICBBZGQgYSByZWFzb25hYmx5IG9wdGltaXplZCBuZXcgZ3N0X2FkYXB0ZXJfbWFza2VkX3NjYW5fdWludDMyKCkgZnVuY3Rpb24KCSAgdG8gc2NhbiB0aGUgYWRhcHRlciBmb3IgYSBwYXR0ZXJuIGFmdGVyIGFwcGx5aW5nIGEgbWFzay4KCSAgQWRkIHNvbWUgdW5pdCB0ZXN0cy4KCSAgQVBJOiBHc3RBZGFwdGVyOjpnc3RfYWRhcHRlcl9tYXNrZWRfc2Nhbl91aW50MzIoKQoJICBGaXhlcyAjNTgzMTg3CgoyMDA5LTA1LTE5IDIyOjEzOjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IG1vcmUgb3B0aW1pc2F0aW9ucwoJICBSZW1vdmUgZHVwbGljYXRlIGNvcHkgY29kZSAoX3BlZWtfaW50byBhbmQgX2NvcHkpIGFuZCBtYWtlIGEgdW5pZmllZAoJICBvcHRpbWl6ZWQgY29weSBmdW5jdGlvbi4KCjIwMDktMDUtMTkgMTc6MTI6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IHBhc3MgLVduby1wb3J0YWJpbGl0eSB0byBhdXRvbWFrZSB0byBzdXBwcmVzcyB3YXJuaW5ncwoJICBHTlUgbWFrZSBpcyByZXF1aXJlZCwgbm8gcG9pbnQgcHJldGVuZGluZyBvdGhlcndpc2UuCgoyMDA5LTA1LTE4IDAxOjAwOjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rmb3JtYXQuaDoKCSAgZG9jczogbWVudGlvbiB0aGF0IEdTVF9GT1JNQVRfe1BFUkNFTlR8QlVGRkVSU30gYXJlIG5vdCBpbXBsZW1lbnRlZAoKMjAwOS0wNS0xNyAxMDo0NjozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGdzdGNsb2NrOiBGaXggQUJJIGJyZWFrYWdlIG9uIDMyIGJpdCBhcmNoaXRlY3R1cmVzCgkgIFRoZSBwYWRkaW5nIG9mIEdzdENsb2NrIGlzIGEgR3N0Q2xvY2tUaW1lIGFuZCBub3QgYQoJICBncG9pbnRlciwgc28gYWRkaW5nIGEgcG9pbnRlciByZXF1aXJlcyB0aGUgcGFkZGluZwoJICBzaXplIHRvIGJlIGNoYW5nZWQgZGVwZW5kaW5nIG9uIHRoZSBwb2ludGVyIHNpemUuCgkgIFVzZSBhbiB1bmlvbiBpbnN0ZWFkLgoJICBGaXhlcyBidWcgIzU4Mjg3OC4KCjIwMDktMDUtMTUgMTU6MjQ6NDAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQGVtYmVkZGVkLnVmY2cuZWR1LmJyPgoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIFtnc3R2YWx1ZV0gYWRkcyBzYWZldHkgcGFyZW50aGVzaXMgdG8gbWFjcm9zIG1pc3NpbmcgdGhlbS4KCjIwMDktMDUtMTUgMTQ6NDI6NDggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQGVtYmVkZGVkLnVmY2cuZWR1LmJyPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIFtnc3R1dGlsc10gQWRkcyBtb3JlIHNhZmV0eSB0byBHU1RfV1JJVEVfKiBhbmQgR1NUX1JFQURfIG1hY3Jvcy4KCSAgQWRkcyBzYWZldHkgKCApIHRvIHBhcmFtZXRlcnMgaW4gX0dTVF9QVVQgYW5kIF9HU1RfR0VUIG1hY3Jvcy4KCSAgRml4ZXMgIzU4MjcwOC4KCjIwMDktMDMtMTkgMTE6Mzc6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGNsb2NrOiB1c2Ugc2VxbG9ja3MgdG8gcGFyYWxsZWxsaXplIHJlYWRlcnMKCjIwMDktMDQtMTYgMTU6NTM6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGNsb2Nrc3RyZXNzLmM6CgkgIHN0cmVzczogYWRkIGEgY2xvY2sgc3RyZXNzdGVzdAoJICBBZGQgYSBzdHJlc3N0ZXN0IGZvciBnc3RfY2xvY2tfZ2V0X3RpbWUoKS4KCjIwMDktMDUtMTUgMTE6MDA6NTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBNYWtlZmlsZS5hbTogdXBkYXRlIGZvciBhZGRlZC9tb3ZlZC9yZW1vdmVkIGZpbGVzIHRoYXQgd2VyZW4ndCBkaXN0LWVkLgoKMjAwOS0wNS0xMiAxMToyOToyMSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgZG9jczogUmVsZWFzZSBzY3JpcHQgbW9kaWZpY2F0aW9ucwoKMjAwOS0wNS0xNCAyMjoxMTo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlcHJpdmF0ZS5oOgoJICBjb250cm9sbGVyOiBVc2Ugb3JkZXJlZCBHU2VxdWVuY2UgaW5zdGVhZCBvZiBHTGlzdAoJICBUaGlzIG1ha2VzIGxvb2t1cHMgYW5kIGluc2VydGlvbnMgTyhsb2cgbikgaW5zdGVhZCBvZgoJICBhbHdheXMgTyhuKSBmb3IgaW5zZXJ0aW9ucyBhbmQgTyhuKSBpbiB3b3JzdCBjYXNlIGZvcgoJICBsb29rdXBzLgoJICBGaXhlcyBidWcgIzU4MjU2NC4KCjIwMDktMDUtMTQgMTI6MzA6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1naG9zdHBhZHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWxhdGVuY3kudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1pc3NpbmctcGx1Z2lucy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtLXN0YXR1cy50eHQ6CgkgIGRvY3M6IHJlbmFtZSBhbmQgZGVsZXRlIHNvbWUgZGVzaWduIGRvY3MKCjIwMDktMDUtMTQgMTI6MzA6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBQcmludCB0aGUgcGF0aCBzdHJpbmcgZm9yIG1lc3NhZ2Ugc291cmNlcwoJICBUaGlzIHJlZHVjZXMgY29uZnVzaW9uIGlmIHRoZSBtZXNzYWdlIHNvdXJjZSBpcyBhIHBhZAoJICBhbmQgb25seSAic3JjIiBpcyBwcmludGVkIGFzIHNvdXJjZS4KCjIwMDktMDUtMTQgMTI6MjU6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGVsZW1lbnQ6IFNldCB0aGUgb3JpZ2luYXRpbmcgcGFkIGFzIG1lc3NhZ2Ugc291cmNlIGluIGdzdF9lbGVtZW50X2ZvdW5kX3RhZ3NfZm9yX3BhZCAoKQoJICBGaXhlcyBidWcgIzU4MjU4OC4KCjIwMDktMDUtMTQgMTE6MzY6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZWxlbWVudDogYWRkIGdzdF9lbGVtZW50X2xvc3Rfc3RhdGVfZnVsbCgpCgkgIEFkZCBhIGdzdF9lbGVtZW50X2xvc3Rfc3RhdGVfZnVsbCgpIHdpdGggYW4gZXh0cmEgYXJndW1lbnQgdG8gY29udHJvbAoJICBkaXN0cmlidXRpb24gb2YgYSBuZXcgYmFzZV90aW1lLiBXZSB3aWxsIG5lZWQgdGhpcyBmb3IgZmx1c2hpbmcgc3RlcAoJICBvcGVyYXRpb25zLgoJICBBUEk6IEdzdEVsZW1lbnQ6OmdzdF9lbGVtZW50X2xvc3Rfc3RhdGVfZnVsbCgpCgoyMDA5LTA1LTEzIDIzOjUyOjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGRvbid0IHVzZSByZWFsbG9jLCBpdCBkb2VzIGEgbWVtY3B5CgkgIERvbid0IHVzZSByZWFsbG9jIHRvIGdyb3cgdGhlIHNjcmF0Y2ggYXJlYSBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdGhlIG1lbWNweSB0aGUKCSAgb2xkIHVzZWxlc3MgZGF0YSBpbnRvIHRoZSBuZXcgYXJlYSBiZWZvcmUgd2Ugd3JpdGUgb3VyIG5ldyBzdHVmZiBpbiBpdC4KCjIwMDktMDUtMTMgMjM6Mzg6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OgoJICBkb2NzOiB1cGRhdGUgdHJpY2ttb2RlIGRvY3VtZW50CgoyMDA5LTA1LTEzIDIyOjUxOjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IHVzZSBnX3JlYWxsb2MgZm9yIHJlc2l6aW5nIHRoZSBidWZmZXIKCSAgVXNlIGdfcmVhbGxvYyBmb3IgcmVzaXppbmcgdGhlIGludGVybmFsIGJ1ZmZlciBpbnN0ZWFkIG9mIGEKCSAgbGVzcyBmYW5jeSBfZnJlZS9fbWFsbG9jIHBhaXIuCgoyMDA5LTA1LTEzIDIxOjM1OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBhZGFwdGVyOiBtb3ZlIG5ldyBtZW1iZXIgdG8gcHJpdmF0ZSBzdHJ1Y3QKCSAgTW92ZSB0aGUgbmV3IG1lbWJlcnMgdG8gYSBwcml2YXRlIHN0cnVjdCBiZWNhdXNlIHdlIGRvbid0IGhhdmUgZW5vdWdoIHBhZGRpbmcKCSAgYW55bW9yZSBvbiAzMi1iaXRzIHBsYXRmb3Jtcy4KCjIwMDktMDUtMTMgMTg6NTA6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogdXBkYXRlIHNvbWUgZG9jcwoKMjAwOS0wNS0xMyAxNzowOTozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICB0ZXN0czogYWRkIGFub3RoZXIgdGVzdCBmb3IgYWRhcHRlciB0aW1lc3RhbXBzCgoyMDA5LTA1LTEzIDE2OjQ4OjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIHRlc3RzOiBhZGQgbmV3IHRpbWVzdGFtcCB1bml0IHRlc3QKCjIwMDktMDUtMTMgMTY6MjY6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGRlZnM6IGFkZCBuZXcgc3ltYm9sCgoyMDA5LTA1LTEzIDE2OjA5OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBhZGFwdGVyOiBhZGQgbWV0aG9kIHRvIGtlZXAgdHJhY2sgb2YgdGltZXN0YW1wcwoJICBLZWVwIHRyYWNrIG9mIHRoZSB0aW1lc3RhbXAgYW5kIG9mZnNldCBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgaGVhZCBvZiB0aGUKCSAgYWRhcHRlci4KCSAgQVBJOiBHc3RBZGFwdGVyOjpnc3RfYWRhcHRlcl9wcmV2X3RpbWVzdGFtcCgpCgoyMDA5LTA1LTEzIDE2OjIwOjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBhZGFwdGVyOiBzbWFsbCBjbGVhbnVwcwoKMjAwOS0wNS0xMyAxMTowMzoyNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogc2hvdyBtb3JlIHBhZC1kZXRhaWxzCgkgIFNob3cgcGFkIGFjdGl2YXRpb24gbW9kZSBhbmQgcGFkLWZsYWdzIGluc2lkZSB0aGUgcGFkLiBXcml0ZSBkb3duIHNvbWUgaWRlYXMKCSAgYWJvdXQgaG93IHdlIGNvdWxkIGltcHJvdmUgdGhlIGNhcHMgbGF5b3V0LgoKMjAwOS0wNS0xMyAwMDoyOTo1NyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogbGF5b3V0IGltcHJvdmVtZW50CgkgIGRvdCBkb2VzIG5vdCB0YWtlIHRoZSBoZWFkL3RhaWwgbGFiZWxzIGludG8gYWNjb3VudC4gRm9yIHVuZml4ZWQgY2FwcyB0aGV5IGdldAoJICBxdWl0ZSBsYXJnZS4gRG91YmxlIHRoZSBwYWRkaW5nIHRvIG1ha2UgaXQgc29ydCBvZiByZWFkYWJsZSBpbiBtb3JlIGNhc2VzLiBBbHNvCgkgIG1ha2Ugbm9ybWFsIGZvbnQgYmlnZ2VyIGFuZCBjYXBzLWxhYmVsIGZvbnQgc21hbGxlciB0byBpbmNyZWFzZSBvdXIgbHVjay4KCjIwMDktMDUtMTIgMjE6MDA6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkgIGNoZWNrczogY2hlY2sgZm9yIGVudW0gdHlwZXMgbm90IGNsYXNzX3JlZidlZCBpbiBnc3RfaW5pdCgpIGluICdtYWtlIGNoZWNrJwoKMjAwOS0wNS0xMiAyMDo1ODozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIEluaXRpYWxpc2Ugc29tZSBtb3JlIHR5cGVzIGluIGdzdF9pbml0KCksIGVzcC4gdGhlIG5ldyBlbnVtIHR5cGVzCgkgIFBvc3NpYmx5IGZpeGVzIEdPYmplY3QgY2xhc3MgY3JlYXRpb24vdW5yZWYgcmFjZSBjb25kaXRpb25zIHdoZW4KCSAgY3JlYXRpbmcgdGhlIGxhc3QtbWVzc2FnZSBzdHJpbmcgaW4gZmFrZXNpbmsgZm9yIGV2ZW50cyB3aXRoCgkgIHN0cnVjdHVyZXMgdGhhdCBoYXZlIGZpZWxkcyB3aXRoIHRoZXNlIGVudW0gdHlwZXMuCgoyMDA5LTA1LTEyIDIwOjU2OjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogcmVtb3ZlIGR1cGxpY2F0ZSBfZ2V0X3R5cGUoKSBmdW5jdGlvbiBmb3IgR3N0Q2xvY2tUeXBlCgkgIFJlbW92ZSB0aGUgc3RhdGljIGdzdF9jbG9ja190eXBlX2dldF90eXBlKCkgZnVuY3Rpb24gaW4gdGhlCgkgIHN5c3RlbWNsb2NrIGNvZGUgaW4gZmF2b3VyIG9mIHRoZSBwdWJsaWMgb25lIGluIGdzdGVudW10eXBlcy5jLgoKMjAwOS0wNC0yMiAxMDo1MzozNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiByZW1vdmUgZGVwcmVjYXRlZCBBUEkKCSAgX2ludGVybmFsX2xpbmtfZnVuY3Rpb24oKSBpcyBkZXByZWNhdGVkIGFuZCBfaXRlcmF0ZV9pbnRlcm5hbF9saW5rc19mdW5jdGlvbigpCgkgIGlzIGFscmVhZHkgcHJvdmlkZWQuCgoyMDA5LTA0LTIxIDExOjMzOjQzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZS1sYXVuY2g6IGFsbG93IHNwZWNpZnlpbmcgR3N0RWxlbWVudCBwcm9wZXJ0aWVzIHZpYSBnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24KCSAgSWYgZGVzZXJpYWxpemluZyBhIHByb3BlcnR5IGZhaWxzLCBjaGVjayBpZiB0aGUgdmFsdWUgdHlwZSBpcyBhIHN0cmluZyBhbmQgaWYgc28KCSAgYXR0ZW1wdCB0byBjcmVhdGUgYSBiaW4gZnJvbSB0aGUgc3RyaW5nIHZhbHVlLiBUaGlzIGFsbG93cyB0byBlLmcuIHNwZWNpZnkKCSAgYXVkaW8tc2luay92aWRlby1zaW5rIGZvciBwbGF5YmluIG9uIGdzdC1sYXVuY2ggY29tbWFuZGxpbmUuCgoyMDA5LTA1LTEyIDE3OjI5OjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJsaXN0LnR4dDoKCSAgZG9jczogYWRkIHNvbWUgZG9jcyBhYm91dCBidWZmZXIgbGlzdHMKCjIwMDktMDUtMTIgMTY6MTg6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJICBidWZmZXJsaXN0OiBtYWtlIG9iamVjdHMgb3BhcXVlCgoyMDA5LTA1LTEyIDE1OjMzOjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogZml4IGEgY29tbWVudAoKMjAwOS0wNS0xMiAxMzoxMDo1NSArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnIGF0IGF4aXMuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcmxpc3Q6IGhvb2sgdXAgdGhlIHBhZCBmdW5jdGlvbnMKCSAgUmV1c2UgYnVmZmVyIGNvZGUgZm9yIGJ1ZmZlcmxpc3RzLiBOb3Qgc3VyZSBpZiB0aGlzIG1lYXN1cmFibHkgaW1wYWN0cyBwZXJmb3JtYW5jZQoJICBmb3IgdGhlIHNpbXBsZSBidWZmZXIgY2FzZSwgaWYgaXQgZG9lcyBhZnRlciBkb2luZyBzb21lIGJlbmNobWFya3MsIHdlIGNhbgoJICBkZWNvdXBsZSBpdCBsYXRlci4KCSAgRml4ZXMgIzU3MjI4NQoKMjAwOS0wNS0xMiAxMjowODo1NiArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnIGF0IGF4aXMuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcmxpc3Q6IGFkZCBkb2NzL2J1aWxkL2RlYnVnL3VuaXR0ZXN0CgkgIFNlZSAjNTcyMjg1CgoyMDA5LTA1LTEyIDExOjUxOjM3ICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmcgYXQgYXhpcy5jb20+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJICBidWZmZXJsaXN0OiBhZGQgYnVmZmVybGlzdCBjb2RlCgkgIEJ1ZmZlciBsaXN0cyBhcmUgYSBtZWFucyB0byBtYW5hZ2UgZGlzam9pbnQgYnVmZmVycyBhcyBvbmUgYnVmZmVyLiBJdCdzIGFsc28KCSAgcG9zc2libGUgdG8gcHV0IG1hbnkgb2YgdGhvc2UgYnVmZmVycyBpbnRvIGEgbGlzdC4KCSAgVGhlIGlkZWEgaXMgdGhhdCB3aGVuIHN1cHBvcnQgaXMgYWRkZWQgdG8gdmFyaW91cyBlbGVtZW50cywgd2Ugd2lsbCBiZSBhYmxlIHRvCgkgIG1vcmUgZWZmaWNpZW50bHkgc2xpY2UgYW5kIGRpY2UgYnVmZmVycywgcmVkdWNlIHRoZSBhbW91bnQgb2YgbWVtY3B5IGFuZCBhbHNvCgkgIHJlZHVjZSBkYXRhIHBhc3Npbmcgb3ZlcmhlYWQuCgkgIFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBrZXB0IHNpbXBsZSBvbiBwdXJwb3NlLCByZXVzaW5nIGFsbCBvZiB0aGUgbWVtb3J5CgkgIG1hbmFnZW1lbnQgZmVhdHVyZXMgd2UgaGF2ZSBmb3IgbWluaW9iamVjdHMgYW5kIGJ1ZmZlcnMuCgkgIEFjY2VzcyB0byB0aGUgYnVmZmVybGlzdCBvYmplY3QgaXMgZG9uZSB3aXRoIGFuIGl0ZXJhdG9yLCB3aGljaCBhbGxvd3MgZm9yCgkgIGVmZmljaWVudCBpdGVyYXRpb24gYW5kIG1vZGlmaWNhdGlvbiBvZiB0aGUgbGlzdC4KCSAgU2VlICM1NzIyODUKCjIwMDktMDUtMTEgMDc6NDk6MzQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGdzdGJ1ZmZlcjogY29weSBuZXcgYnVmZmVyIGZsYWdzIHdoZW4gY29weWluZyBtZXRhZGF0YS4KCjIwMDktMDQtMjcgMTA6MTM6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IG9wdGltaXplIHRha2luZyB0aGUgaGVhZGJ1ZmZlcgoJICBXaGVuIGEgYXJlIHJlcXVlc3RlZCB0byB0YWtlIGEgYnVmZmVyIGZyb20gdGhlIGFkYXB0ZXIgdGhhdCBpcyBleGFjdGx5IHRoZQoJICBoZWFkYnVmZmVyLCBkb24ndCBtYWtlIGEgc3ViYnVmZmVyIG9mIGl0IGJ1dCByZXR1cm4gdGhhdCBoZWFkIGJ1ZmZlci4KCSAgQWRkIGEgdW5pdC10ZXN0IGZvciB0aGlzIG5ldyBvcHRpbWlzYXRpb24uCgoyMDA5LTA1LTA1IDE3OjQxOjI0ICswMjAwICBBcm5vdXQgVmFuZGVjYXBwZWxsZSA8YXJub3V0QG1pbmQuYmU+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogZG9uJ3QgbGVhayB0aGUgZm9yY2UtY2FwcyBwcm9wZXJ0eQoJICBGaXhlcyAjNTgxMzIxCgoyMDA5LTA0LTI4IDE5OjIwOjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogZml4IHBvc3Rpbmcgb2YgYXN5bmMtc3RhcnQgbWVzc2FnZXMKCSAgV2hlbiBhbiBlbGVtZW50IGxvc3QgaXRzIHN0YXRlIGJ1dCB3YXMgYnVzeSBkb2luZyBhIHN0YXRlIGNoYW5nZSwgc3RpbGwgcG9zdCB0aGUKCSAgYXN5bmMtc3RhcnQgbWVzc2FnZSB3aXRoIHRoZSBiYXNlX3RpbWUgcmVzZXQgZmxhZyBvciBlbHNlIHdlIG1pZ2h0IGVuZCB1cCB3aXRoCgkgIGFuIG9sZCBiYXNlX3RpbWUuCgkgIHRoaXMgY2FuIGhhcHBlbiB3aGVuIGEgc2luayBpcyBnb2luIGFzeW5jIHRvIHBhdXNlZCBhbmQgdGhlbiBhIGZsdXNoaW5nIHNlZWsgaXMKCSAgcGVyZm9ybWVkLiBUaGlzIHdvdWxkIGNhdXNlIHRoZSBiYXNlX3RpbWUgdG8gcmVtYWluIHVubW9kaWZpZWQgYmVjYXVzZSB0aGUKCSAgYXN5bmMtc3RhcnQgbWVzc2FnZSB3YXMgbm90IHNlbnQuCgoyMDA5LTA1LTEwIDE3OjI4OjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IGZ1bmN0aW9ucyB0byB0aGUgd2luMzIgZXhwb3J0cwoKMjAwOS0wNS0xMCAxMToxNzoyNyArMDIwMCAgTWFyYy1BbmRyZSBMdXJlYXUgPG1hcmNhbmRyZS5sdXJlYXVAZ21haWwuY29tPgoKCSogYXV0b2dlbi5zaDoKCSAgUnVuIGxpYnRvb2xpemUgYmVmb3JlIGFjbG9jYWwKCSAgVGhpcyB1bmJyZWFrcyB0aGUgYnVpbGQgaW4gc29tZSBjYXNlcy4gRml4ZXMgYnVnICM1ODIwMjEKCjIwMDktMDUtMDcgMTY6Mzc6MzcgKzAyMDAgIEpvc8OpIEFsYnVycXVlcnF1ZSA8amFhbGJ1cnF1QHN2bi5nbm9tZS5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgQVBJOiBBZGQgZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWNfZnVsbCgpCgkgIFRoaXMgaXMgbWFpbmx5IHVzZWZ1bCBmb3IgYmluZGluZ3MgdGhhdCBuZWVkIHRvIHByb3ZpZGUKCSAgc29tZSBhZGRpdGlvbmFsIHVzZXIgZGF0YSB0byB0aGUgcmVnaXN0cmF0aW9uIGZ1bmN0aW9uLgoJICBGaXhlcyBidWcgIzU0NTc4Ny4KCjIwMDktMDUtMDcgMTY6MDE6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IEltcHJvdmUgZGVidWdnaW5nIGEgYml0IG9uIGludmFsaWQgVVJJcwoKMjAwOS0wNS0wNyAxMDozNjo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBBZGQgbmV3IGZ1bmN0aW9ucyB0byB0aGUgZG9jcwoKMjAwOS0wNS0wNyAwOTozMTowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSAgdGFnczogQVBJOiBBZGQgZnVuY3Rpb25zIHRvIGFkZCBzaW5nbGUgdGFncyB0byBHc3RUYWdMaXN0IG9yIEdzdFRhZ1NldHRlcgoJICBUaGUgbmV3IGZ1bmN0aW9ucyBhcmUgZ3N0X3RhZ19zZXR0ZXJfYWRkX3RhZ192YWx1ZSgpCgkgIGFuZCBnc3RfdGFnX2xpc3RfYWRkX3ZhbHVlKCkpLiBUaGlzIGZpeGVzIGJ1ZyAjNTgxMTk4LgoKMjAwOS0wNS0wNyAwOToyODoxNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIEdzdFVSSUhhbmRsZXI6IFVzZSBnZXRfdHlwZV9mdWxsKCkgdm1ldGhvZCBpZiBzcGVjaWZpZWQgaW5zdGVhZCBvZiBnZXRfdHlwZSgpCgkgIFRoaXMgZml4ZXMgYnVnICM1ODEyODEgYW5kIG1ha2VzIGl0IGVhc2llciBmb3IgYmluZGluZ3MgdG8KCSAgaW1wbGVtZW50IEdzdFVSSUhhbmRsZXJzLiBnZXRfcHJvdG9jb2xzX2Z1bGwoKSB3YXMgYWxyZWFkeSB1c2VkCgkgIGxpa2UgdGhpcy4KCjIwMDktMDUtMTIgMDE6NDg6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgLnBvIGZpbGVzIGZvciBuZXcgc3RyaW5ncyBmcm9tIGNvbnRhaW5lci1mb3JtYXQgdGFnCgoyMDA5LTA1LTEyIDAxOjMwOjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IHNtYWxsIHVwZGF0ZSB0byByZWxlYXNlIGRvY3MKCjIwMDktMDUtMTIgMDE6MTM6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogcmVuYW1lIENWUyAtPiBnaXQgaW4gYSBjb3VwbGUgb2YgcGxhY2VzCgoyMDA5LTA1LTEyIDAwOjQ3OjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBidW1wIHRoZSBHTGliIHJlcXVpcmVtZW50IHRvIEdMaWIgPj0gMi4xNgoJICBhcyBwZXIgdGhlIE5ldyBSZWdpbWUgKHNlZSB3aWtpKS4KCjIwMDktMDUtMTIgMDA6MDk6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJICB4bWxyZWdpc3RyeTogcmVtb3ZlIHRoZSBvbGQgeG1sIHJlZ2lzdHJ5CgkgIE5vIHBvaW50IGluIGtlZXBpbmcgaXQgYXJvdW5kIHJlYWxseS4gRml4ZXMgIzU3NzkyNi4KCjIwMDktMDUtMDcgMTY6MDg6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnczogYWRkIGEgdGFnIGZvciB0aGUgY29udGFpbmVyIGZvcm1hdAoJICBBUEk6IGFkZCBHU1RfVEFHX0NPTlRBSU5FUl9GT1JNQVQKCjIwMDktMDUtMDggMTY6Mjg6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGZpeCBkZWJ1ZyBtZXNzYWdlCgkgIE1ha2UgdGhlIGRlYnVnIG1lc3NhZ2Ugc2hvdyB3aGF0J3MgYWN0dWFsbHkgaGFwcGVuaW5nICh0aGUgbWVzc2FnZQoJICByZXBsYWNlZCBoZXJlIGlzIG5vdCBuZWNlc3NhcmlseSBvZiB0aGUgc2FtZSB0eXBlIGFzIHRoZSBvbmUgdGhhdAoJICByZXBsYWNlcyBpdCkuCgoyMDA5LTA1LTEyIDAwOjM0OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgR3N0VGFzazogZml4IGNvbXBpbGF0aW9uCgoyMDA5LTA0LTI0IDE5OjMyOjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9ydHBvb2wtdGVzdC5jOgoJICB0ZXN0czogc2V0IHRoZSBsYXRlbmN5LXRpbWUgdG8gc29tZXRoaW5nIGxvdwoKMjAwOS0wNC0yNCAxMzo1NToxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvcnRwb29sLXRlc3QuYzoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy90ZXN0cnRwb29sLmM6CgkgIHRlc3RzOiBpbXByb3ZlIHRoZSBleGFtcGxlCgoyMDA5LTA0LTI0IDEyOjM1OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5oOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvdGVzdHJ0cG9vbC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgVGFza1Bvb2w6IHJlbW92ZSBfc2V0X2Z1bmMoKQoJICBSZW1vdmUgdGhlIHN0YXRpYyBmdW5jdGlvbiBzZXQgb24gdGhlIFRhc2tQb29sIGJlZm9yZSBfcHJlcGFyZSgpIGlzIGNhbGxlZCBhbmQKCSAgYWxsb3cgZm9yIGFzc2lnbmluZyBhIGZ1bmN0aW9uIHRvIGEgVGFzayB3aGVuIHdlIF9wdXNoKCkuCgkgIFVwZGF0ZSB0aGUgZXhhbXBsZXMKCjIwMDktMDQtMjMgMTk6NDI6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3J0cG9vbC10ZXN0LmM6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvdGVzdHJ0cG9vbC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3Rlc3RydHBvb2wuaDoKCSAgdGVzdHM6IGFkZCBleGFtcGxlIG9mIGN1c3RvbSB0YXNrcG9vbHMKCSAgQWRkIGFuIGV4YW1wbGUgdG8gZGVtb25zdHJhdGUgdGhlIHVzZSBvZiBhIGN1c3RvbSB0YXNrcG9vbCBhbmQgaG93IHRvIGNvbmZpZ3VyZQoJICBpdCBvbiB0aGUgdGFzay4gQ3VycmVudGx5IHRoZSB0YXNrcG9vbCBkb2VzIG5vdCBkbyBtdWNoIHlldCBidXQgaXQnbGwgY3JlYXRlCgkgIHNvbWUgY3VzdG9tIHRocmVhZHMgbGF0ZXIgb24uCgoyMDA5LTA0LTIzIDE5OjQxOjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2twb29sLmg6CgkgIHRhc2twb29sOiBmaXggYSBjb21tZW50CgoyMDA5LTA0LTIzIDE5OjQxOjAxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9zdHJlYW0tc3RhdHVzLmM6CgkgIHRlc3RzOiBjbGVhbnVwIHNvbWUgY29kZQoKMjAwOS0wNC0yMyAxNzo0ODowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBQYWQ6IHBvc3QgU1RSRUFNX1NUQVRVU19UWVBFX0NSRUFURQoJICBQb3N0IGEgc3RyZWFtLXN0YXR1cyBtZXNzYWdlIGluZGljYXRpbmcgdGhhdCBhIG5ldyB0YXNrIHdhcyBjcmVhdGVkIHNvIHRoYXQgdGhlCgkgIGFwcGxpY2F0aW9uIGhhcyBhIGNoYW5jZSB0byBjaGFuZ2UgdGhlIHByb3BlcnRpZXMgb2YgdGhlIHRhc2suCgkgIEZpeCB1bml0IHRlc3QgdG8gdGFrZSBpbnRvIGFjY291bnQgdGhlIG5ldyByZWYgb2YgdGhlIG1lc3NhZ2UuCgoyMDA5LTA0LTIzIDE3OjI0OjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IGFkZCBuZXcgdGFzayBtZXRob2RzCgoyMDA5LTA0LTIzIDE3OjE5OjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSAgR3N0VGFzazogYWRkIG1ldGhvZHMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBwb29sCgkgIEFkZCBnZXR0ZXIgYW5kIHNldHRlciBmb3IgY29uZmlndXJpbmcgdGhlIEdzdFRhc2tQb29sIHRvIHVzZSBmb3IgYSBHc3RUYXNrLgoKMjAwOS0wNC0yMyAxNzowNToyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIFRhc2s6IHJlbWVtYmVyIHBvb2wKCSAgUmVtZW1iZXIgdGhlIHBvb2wgd2UgY3VycmVudGx5IGhhdmUgb3VyIHRhc2sgcnVubmluZyBzbyB0aGF0IHdlIGNhbiB1c2UgaXQgdG8KCSAgam9pbiB0aGUgdGFzayBsYXRlciBvbi4KCSAgRml4IGEgbGVhayBvZiB0aGUgdGFza3Bvb2wuCgoyMDA5LTA0LTIzIDE2OjUzOjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZSAuZGVmcyBmaWxlIHdpdGggdGFza3Bvb2wgbWV0aG9kcwoKMjAwOS0wNC0yMyAxNjo1MzoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IGZpeCBkZWFkbG9jayBkdWUgdG8gdHlwbwoKMjAwOS0wNS0xMiAwMDoyNToxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkgIEdzdFRhc2s6IHVzZSBHc3RUYXNrUG9vbCBmb3IgbWFuYWdpbmcgdGhyZWFkcwoJICBVc2UgdGhlIG5ldyBHc3RUYXNrUG9vbCB0byBoYW5kbGUgc3RyZWFtaW5nIHRocmVhZHMuCgoyMDA5LTA0LTIzIDE2OjAwOjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5oOgoJICB0YXNrcG9vbDogZml4IGRvY3MsIG1ha2UgcHVzaC9qb2luIGdlbmVyaWMKCSAgRml4IHNvbWUgbW9yZSBkb2NzLgoJICBNYWtlIF9wdXNoKCkgcmV0dXJuIGEgZ2VuZXJpYyBpZCAodGhpcyBjYW4gYmUgc29tZXRoaW5nIGVsc2UgdGhhbiBhIEdUaHJlYWQgaW4KCSAgc29tZSBjYXNlcykgYW5kIG1ha2UgX2pvaW4oKSB1c2UgdGhhdCBnZW5lcmljIGlkLgoKMjAwOS0wNC0yMyAxNTo0NDoxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHRhc2twb29sLmg6CgkgIHRhc2twb29sOiBhZGQgbmV3IG9iamVjdCB0byBtYW5hZ2UgdGhyZWFkcwoJICBBZGQgYSBuZXcgb2JqZWN0IEdzdFRhc2tQb29sIHRvIG1hbmFnZSB0aGUgc3RyZWFtaW5nIHRocmVhZHMuCgkgIFRoaXMgd2lsbCBhbGxvdyB1cyB0byBjcmVhdGUgYW5kIHVzZSBjdXN0b20gY29uZmlndXJlZCB0aHJlYWRzLgoKMjAwOS0wNC0yMiAxMjowNDozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvc3RyZWFtLXN0YXR1cy5jOgoJICBleGFtcGxlczogc2V0IGJ1cyBoYW5kbGVyIGJlZm9yZSBzdGF0ZSBjaGFuZ2UKCSAgV2UgbmVlZCB0byBzZXQgdGhlIGJ1cyBoYW5kbGVyIGJlZm9yZSBzdGFydGluZyB0aGUgcGlwZWxpbmUgb3Igd2UgbWlnaHQganVzdAoJICBtaXNzIHRoZSBtZXNzYWdlIHdlIGFyZSBsb29raW5nIGZvci4KCjIwMDktMDQtMjIgMTA6MTY6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvc3RyZWFtLXN0YXR1cy5jOgoJICB0ZXN0czogYWRkIGV4YW1wbGUgYXBwIGZvciBzdHJlYW0tc3RhdHVzCgkgIEFkZCBhbiBleGFtcGxlIGFwcGxpY2F0aW9uIHRoYXQgYWRqdXN0cyB0aGUgdGhyZWFkIHByaW9yaXR5IG9mIGEgdGFzayB1c2luZyB0aGUKCSAgc3RyZWFtLXN0YXR1cyBtZXNzYWdlcy4KCjIwMDktMDQtMjEgMTk6MTU6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgVGFzazogYWRkIG1ldGhvZCB0byBzZXQgdGhlIHByaW9yaXR5CgkgIEFkZCBhIG1ldGhvZCB0byBjb25maWd1cmUgYSBwcmlvcml0eSBmb3IgdGhlIHRocmVhZHMgdXNlZCBieSBHc3RUYXNrLgoKMjAwOS0wNC0yMSAxNjozMDozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkgIHRlc3RzOiBhZGQgYSB1bml0LXRlc3QgZm9yIHRoZSBzdHJlYW0tc3RhdHVzCgkgIEFkZCBhIHVuaXQgdGVzdCBmb3IgdGhlIFNUUkVBTV9TVEFUVVMgbWVzc2FnZXMuCgoyMDA5LTA1LTEyIDAwOjA1OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJICBHc3RUYXNrOiBpbXByb3ZlIGRvY3VtZW50YXRpb24KCSAgSW1wcm92ZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGNhbGxiYWNrcy4KCjIwMDktMDQtMjEgMTU6MjU6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkgIHRlc3RzOiBmaXggdW5pdC10ZXN0cyBmb3IgbmV3IHN0cmVhbS1zdGF0dXMKCSAgRml4IHRoZSB1bml0LXRlc3RzIHNvIHRoYXQgdGhleSBkb24ndCBmYWlsIG9uIHRoZSBuZXcgc3RyZWFtLXN0YXR1cyBtZXNzYWdlcwoJICB0aGF0IGFyZSBlbWl0ZWQgbm93LgoKMjAwOS0wNC0yMSAxNDo0NjoyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgR3N0UGFkOiBpbnN0YWxsIHRocmVhZCBjYWxsYmFja3Mgb2YgdGhlIHRhc2sKCSAgSW5zdGFsbCB0aHJlYWQgc3RhdHVzIGNhbGxiYWNrcyBvbiB0aGUgdGFzayBvYmplY3Qgb2YgYSBwYWQgYW5kIHBvc3QKCSAgU1RSRUFNX1NUQVRVUyBtZXNzYWdlcy4KCjIwMDktMDQtMjIgMTA6MTQ6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBjbGFyaWZ5IHNvbWUgZG9jcwoKMjAwOS0wNC0yMSAxNDo0MjowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIFRhc2s6IGNhbGwgbGVhdmVfdGhyZWFkIGJlZm9yZSBzaWduYWxpbmcKCSAgQ2FsbCB0aGUgbGVhdmVfdGhyZWFkIGNhbGxiYWNrIGJlZm9yZSB3ZSBzaWduYWwgdGhlIHRocmVhZCBwZXJmb3JtaW5nIHRoZSBfam9pbgoJICBzbyB0aGF0IHdlIGNhbiBiZSBzdXJlIHRoYXQgdGhlIGxpc3RlbmVyIHN0aWxsIGhhcyB2YWxpZCBpbmZvIGluIHRoZSBjYWxsYmFjay4KCjIwMDktMDQtMjEgMTM6NDI6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgR3N0TWVzc2FnZTogQWRkIFNUUkVBTV9TVEFUVVMgbWVzc2FnZSBtZXRob2RzCgkgIEFkZCBtZXRob2RzIHRvIGhhbmRsZSB0aGUgc3RyZWFtX3N0YXR1cyBtZXNzYWdlIHR5cGVzLgoKMjAwOS0wNC0yMSAxMzowNToxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgcXVhcms6IGFkZCAib2JqZWN0IiBxdWFyawoJICBBZGQgdGhlIG9iamVjdCBxdWFyayB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgdGhlIFNUUkVBTV9TVEFUVVMgbWVzc2FnZXMuCgoyMDA5LTA1LTExIDIzOjQ0OjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suaDoKCSAgVGFzazogcmVtb3ZlIGNyZWF0ZS9qb2luIG1ldGhvZHMKCSAgUHJlcGFyZSBmb3IgdXNpbmcgdGhlIEdzdFRhc2tQb29sIG9iamVjdC4gV2UgZG9uJ3QgbmVlZCB0aGUgY3JlYXRlIGFuZCBqb2luCgkgIGNhbGxiYWNrcyBhbnltb3JlLCB0aGV5IHdpbGwgYmUgaGFuZGxlZCBieSB0aGUgcG9vbC4KCjIwMDktMDQtMjAgMTc6MDc6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICBHc3RUYXNrOiBhZGQgcHJpdmF0ZSBkYXRhLCBmaXggcGFyZW50X2NsYXNzCgkgIFVzZSB0aGUgcGFyZW50IGNsYXNzIHRoYXQgdGhlIGdsaWIgbWFjcm8gZ2F2ZSB1cwoJICBBY3R1YWxseSBhZGQgdGhlIHByaXZhdGUgZGF0YSB0byB0aGUgdGFzay4KCjIwMDktMDQtMjAgMTc6MTk6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICBHc3RUYXNrOiBob29rIHVwIGVudGVyL2xlYXZlL25vdGlmeSBjYWxsYmFja3MKCSAgSG9vcCB1cCB0aGUgbm90aWZ5L2VudGVyL2xlYXZlIGNhbGxiYWNrcy4KCjIwMDktMDUtMTEgMjM6MjM6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogYWRkIG5ldyBzeW1ib2wgdG8gZGVmcyBmaWxlCgoyMDA5LTA1LTExIDIzOjE5OjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSAgR3N0VGFzazogYWxsb3cgc2V0dGluZyBjYWxsYmFja3MKCSAgQWxsb3cgc2V0dGluZyB0aHJlYWQgY2FsbGJhY2tzIHRoYXQgd2lsbCBhbGxvdyB1cyB0byBjb250cm9sIHRoZSB0aHJlYWRzIHVzZWQgYnkKCSAgdGhlIHRhc2suCgoyMDA5LTA0LTIzIDE5OjQwOjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGRvbid0IGlnbm9yZSBwYWRfc3RhcnQgcmV0dXJuIHZhbHVlCgoyMDA5LTA0LTIxIDEzOjM0OjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtc3RyZWFtLXN0YXR1cy50eHQ6CgkgIGRlc2lnbjogbW9yZSBTVFJFQU1fU1RBVFVTIHVwZGF0ZXMKCSAgUGFzcyB0aGUgdGhyZWFkIG9iamVjdCBpbiBhIEdWYWx1ZSwgd2hpY2ggd291bGQgYWxsb3cgdGhlIGFwcGxpY2F0aW9uIHRvIGZpZ3VyZQoJICBvdXQgdGhlIHR5cGUgb2YgdGhlIG9iamVjdCBpbnN0ZWFkIG9mIHVzIGhhdmluZyB0byBleHBsaWNpdGx5IGNvZGUgaXQgaW4gYQoJICBtZXNzYWdlIGZpZWxkLgoKMjAwOS0wNC0yMSAwOTo0NTowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXN0cmVhbS1zdGF0dXMudHh0OgoJICBkZXNpZ246IHVwZGF0ZSBzdHJlYW0tc3RhdHVzIGRvY3VtZW50IHNvbWUgbW9yZQoKMjAwOS0wNC0yMCAxNTo1NTowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXN0cmVhbS1zdGF0dXMudHh0OgoJICBkZXNpZ246IGFkZCBmaXJzdCB2ZXJzaW9uIG9mIHN0cmVhbS1zdGF0dXMKCSAgQWRkIHRoZSBmaXJzdCB2ZXJzaW9uIG9mIHRoZSBTVFJFQU1fU1RBVFVTIG1lc3NhZ2UgZGVzaWduIGRvY3MuCgkgIFRoaXMgbWVzc2FnZSB3aWxsIGJlIHVzZWQgdG8gZ2l2ZSBhcHBsaWNhdGlvbnMgbW9yZSBjb250cm9sIG92ZXIgdGhlCgkgIHN0cmVhbWluZyB0aHJlYWRzLgoKMjAwOS0wNC0yMSAxNzo1MzowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIEdzdFRhc2s6IGFkZCBzb21lIG1vcmUgZG9jcwoKMjAwOS0wNC0yMSAxNzoxNDozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgR3N0UGFkOiB1c2UgbmV3IHRhc2sgZnVuY3Rpb24KCSAgVXNlIHRoZSBuZXcgdGFza19zZXRfc3RhdGUgZnVuY3Rpb24gYW5kIGFjdHVhbGx5IHJldHVybiBpdHMgcmVzdWx0IHRvCgkgIHRoZSBjYWxsZXIuCgoyMDA5LTA1LTExIDIyOjU5OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEdzdFRhc2s6IHVuaWZ5IHRhc2sgc3RhdGUgZnVuY3Rpb25zCgkgIEFkZCBuZXcgZ3N0X3Rhc2tfc2V0X3N0YXRlKCkgdG8gY2hhbmdlIHRoZSBzdGF0ZSBvZiB0aGUgdGFzayBpbnN0ZWFkIG9mCgkgIGR1cGxpY2F0aW5nIHRoZSBjb2RlIGluIGVhY2ggZnVuY3Rpb24uCgkgIEFQSTogR3N0VGFzazo6Z3N0X3Rhc2tfc2V0X3N0YXRlKCkKCjIwMDktMDQtMjEgMTM6Mzc6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBNZXNzYWdlOiBzbWFsbCBpbmRlbnRhdGlvbiBjaGFuZ2UuCgoyMDA5LTA1LTAyIDE0OjQzOjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBBdm9pZCB1bm5lZWRlZCB0eXBlIGNoZWNrcwoKMjAwOS0wNS0wMiAxNDozOTo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogYXZvaWQgY2FsbGluZyBfZ2V0X25hbWUoKSB0b28gbXVjaAoJICBBdm9pZCBjYWxsaW5nIGdzdF9wbHVnaW5fZ2V0X25hbWUoKSB0b28gbWFueSB0aW1lcyBidXQgaW5zdGVhZCBjYWNoZQoJICB0aGUgdmFsdWUuCgoyMDA5LTA1LTAyIDE0OjM2OjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgVXNlIG5ldyBfcmVmX3Npbmsgd2hlbiB3ZSBjYW4KCjIwMDktMDUtMDIgMTQ6MzM6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdG9iamVjdDogYWRkIGdzdF9vYmplY3RfcmVmX3NpbmsKCSAgQWRkIHRoZSBnc3Rfb2JqZWN0X3JlZl9zaW5rKCkgbWV0aG9kIHRvIG1hdGNoIHRoZSBnbGliIG9uZS4KCSAgQVBJOiBHc3RPYmplY3Q6OmdzdF9vYmplY3RfcmVmX3NpbmsoKQoKMjAwOS0wNS0wMiAxMzowNjoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBhdm9pZCB0eXBlIGNoZWNrcwoKMjAwOS0wNS0wMiAxMzowMjoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZ3N0YnVmZmVyOiBhdm9pZCB0eXBlY2hlY2tzIGluIGZpbmFsaXplCgkgIEF2b2lkIHVzZWxlc3MgdHlwZWNoZWNraW5nIGluIHRoZSBmaW5hbGl6ZSBvZiBidWZmZXJzIGFuZCBzdWJidWZmZXJzLgoKMjAwOS0wNS0wMiAxMjo1OTo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IGF2b2lkIHR5cGVjaGVjawoKMjAwOS0wNC0yMCAxNDowMTowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgLWxhdW5jaDogY29ubmVjdCB0byBkZWVwLW5vdGlmeSB3aXRoIHJpZ2h0IG5hbWUKCSAgQ29ubmVjdCB0byB0aGUgcmlnaHQgc2lnbmFsIG5hbWUgd2l0aCAtIGluc3RlYWQgb2YgXy4KCjIwMDktMDQtMjQgMjI6MDY6MTkgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogU3VwcG9ydCBuZXcgcHJpbnRmIGV4dGVuc2lvbnMgaW4gZ2xpYmMgMi4xMAoJICBUaGUgcHJpbnRmIGV4dGVuc2lvbiBtZWNoYW5pc20gY2hhbmdlZCBpbiBnbGliYyAyLjEwLCBhbmQgdGhlIG9sZGVyCgkgIHJlZ2lzdGVyX3ByaW50Zl9mdW5jdGlvbiBpcyBkZXByZWNhdGVkLiBEZXRlY3QgYW5kIHVzZSB0aGUgbmV3CgkgIG1lY2hhbmlzbSB3aGVyZSBhdmFpbGFibGUuCgoyMDA5LTA0LTIwIDEyOjI1OjU3ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiBGaXggYSB0eXBvIGluIHRoZSByZWxlYXNlIHNjcmlwdAoKMjAwOS0wNS0xMSAyMToxMTo0OSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50IC0+IDAuMTAuMjMuMQoKPT09IHJlbGVhc2UgMC4xMC4yMyA9PT0KCjIwMDktMDUtMTAgMjI6NDE6MDQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDAuMTAuMjMKCjIwMDktMDUtMTAgMjI6Mzg6NDUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA5LTA1LTA2IDE2OjEwOjExICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMjIuNCBwcmUtcmVsZWFzZQoKMjAwOS0wNC0yNCAxOTozNjoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgR3N0QmluOiBzZXQgUEVORElOR19TVEFURSBjb3JyZWN0bHkKCSAgU2V0IHRoZSBwZW5kaW5nIHN0YXRlIGNvcnJlY3RseSB3aGVuIHdlIGFyZSBnb2luZyB0byBwZXJmb3JtIGFuIGFzeW5jCgkgIHN0YXRlX2NvbnRpbnVlIG9uIHRoZSBiaW4uCgkgIEZpeGVzICM1ODAxMjEKCjIwMDktMDQtMjEgMjA6NTA6NTUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4yMi4zIHByZS1yZWxlYXNlCgoyMDA5LTA0LTIxIDIyOjEyOjA0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGIzOTQxZWEgdG8gNmFiMTFkMQoKMjAwOS0wNC0xNyAxNTo0Njo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIHdpbjMyOiBkZWZpbmUgX19NU1ZDUlRfVkVSU0lPTl9fIHdoZW4gY29tcGlsaW5nIHdpdGggTWluZ1csIGZvciBfX3N0YXQ2NAoJICBOZWVkIHRvIGRlZmluZSB0aGlzIHdoZW4gdXNpbmcgTWluZ1csIHNvIHRoYXQgdGhlIGluY2x1ZGVzIHByb3ZpZGUKCSAgX19zdGF0NjQgYW5kIGZyaWVuZHMuIFdlIG5lZWQgYXQgbGVhc3QgV2luZG93cyBYUCBTUDIgZm9yIHRoaXMuCgkgIEZpeGVzICM1Njg2MzIuCgoyMDA5LTA0LTE2IDIyOjI2OjAwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJICBnc3RkZWJ1ZzogY29tcGV0ZSBzdHVicy4gRml4ZXMgIzU3OTE3Ny4KCSAgQXZvaWQgZGVmaW5lcyB3aGVuIGluY2x1ZGluZyBnc3RpbmZvLmggb3Vyc2VsZiBhbmQgY29tcGxldGUgc3R1YnMuIFN5bmMgc3R1YgoJICByZXR1cm5zIHdpdGggdGhlIGRlZmluZXMuCgoyMDA5LTA0LTE3IDExOjQ0OjExICswMTAwICBZYWFrb3YgU2Vsa293aXR6IDx5c2Vsa293aXR6QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlLmFjOiBmb3JrKCkgZHVyaW5nIHJlZ2lzdHJ5IHNjYW5uaW5nIGlzIHVuc2FmZSBvbiBDeWd3aW4KCSAgRml4ZXMgIzU1NTk3OC4KCjIwMDktMDQtMTcgMTE6Mzk6NTkgKzAxMDAgIFlhYWtvdiBTZWxrb3dpdHogPHlzZWxrb3dpdHpAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZ3N0L2dzdC5jOgoJICBnc3RfaW5pdDogcmVsb2NhdGFiaWxpdHkgaXMgdW5uZWNlc3Nhcnkgb24gQ3lnd2luCgkgIFNlZSAjNTU1OTc4LgoKMjAwOS0wNC0xNyAxMDoxMToyMSArMDEwMCAgQnJpYW4gQ2FtZXJvbiA8YnJpYW4uY2FtZXJvbkBzdW4uY29tPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZ3N0aW5mbzogZG9uJ3QgYXNzdW1lIEdfSEFWRV9JU09fVkFSQVJHUyBpbXBsaWVzIElTTyBDOTkKCSAgTWFrZXMgaGVhZGVycyBDKysgY2xlYW4sIGVzcC4gd2l0aCB0aGUgU3VuIGNvbXBpbGVycy4KCSAgRml4ZXMgIzU2NzY5Mi4KCjIwMDktMDQtMTcgMDk6MTc6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBHc3RQbHVnaW46IGZpeCBjb21waWxhdGlvbiBpZiBib3RoIEhBVkVfV0lOMzIgYW5kIEhBVkVfU0lHQUNUSU9OIGFyZSBkZWZpbmVkCgkgIE1vdmUgX2dzdF9wbHVnaW5fZmF1bHRfaGFuZGxlcl9pc19zZXR1cCBpbnRvIHRoZSBpZmRlZiBibG9jayB3aGVyZSBpdCdzCgkgIHVzZWQuIEZpeGVzICM1NzgyMDEuCgoyMDA5LTA0LTE2IDEyOjAxOjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICAtbGF1bmNoOiBkaXNhYmxlIENMT0NLX0xPU1QgbWVzc2FnZSBoYW5kbGluZwoJICBEaXNhYmxlIHRoZSBoYW5kbGluZyBvZiB0aGUgQ0xPQ0tfTE9TVCBtZXNzYWdlcyB1bnRpbCB3ZSBmaXhlZCBhbmQgcmVsZWFzZWQgdGhlCgkgIGVsZW1lbnRzIChydHNwc3JjKSB0aGF0IGJyZWFrIHdoZW4gd2UgcXVpY2tseSBQQVVTRS9QTEFZIHRoZSBwaXBlbGluZS4KCSAgRml4ZXMgIzU3OTEyNwoKMjAwOS0wNC0xNSAyMjoyNDo0NSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICByZWxlYXNlOiBCdW1wIHZlcnNpb24gdG8gMC4xMC4yMi4yIGZvciBwcmUtcmVsZWFzZQoKMjAwOS0wNC0xNiAwMDowODoyMCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIHdpbjMyOiBVcGRhdGUgd2luMzIgYnVpbGQgZmlsZXMKCjIwMDktMDQtMTUgMjM6Mjc6MzEgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucyBmcm9tIFRQCgoyMDA5LTA0LTE1IDIyOjE3OjEwICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkgIENoYW5nZUxvZzogcmVnZW5lcmF0ZSBjaGFuZ2Vsb2cgd2l0aCB0aGUgZ2VuLWNoYW5nZWxvZyBzY3JpcHQKCjIwMDktMDQtMTUgMjM6MjY6MTMgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBkb2NzOiByZW1vdmUgZXJyYW50IGd0ay1kb2MgY29tbWVudCBtYXJrZXIgdHJpZ2dlcmluZyBhIHdhcm5pbmcKCjIwMDktMDQtMTYgMDA6MDI6MDcgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBwYXJhbXNwZWNzOiByZXZlcnQgZ3N0X3BhcmFtX3NwZWNfaXNfbXV0YWJsZSgpIGZvciByZWxlYXNlCgkgIFJldmVydCB0aGUgZ3N0X3BhcmFtX3NwZWNfaXNfbXV0YWJsZSBBUEkgZm9yIHRoaXMgcmVsZWFzZSBzbyB3ZSBjYW4KCSAgZGlzY3VzcyBpdCBhIGJpdCBmdXJ0aGVyIGZpcnN0LgoKMjAwOS0wNC0xNSAyMzozMzoyMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGxvZ2dpbmc6IGZpeCB1bnVzZWQgdmFyaWFibGUgd2FybmluZyB3aGVuIGRpc2FibGluZyBkZWJ1ZyBsb2dzLgoJICBUaGUgdmFyIHdhcyBOVUxMIGFueXdheSwgYmFjYXVzZSBvZiB0aGUgaWZkZWZzIHRoZXJlLCB0aGUgbWVzc2FnZSBtYWtlcyBubwoJICBzZW5zZSBpbmNsdWRpbmcgaXQuCgoyMDA5LTA0LTE1IDIzOjEyOjExICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkgIGdzdGRlYnVnOiBzaG93IGVuYWJsZWQvZGlzYWJsZWQgaW4gY29uZmlndXJlIGFuZCBmaXggYnVpbGQgZm9yIGRpc2FibGVkCgkgIFdoZW4gaXRzIGRpc2FibGVkLCB3ZSBwb2lzb24gc29tZSBzeW1ib2xzIHRvIGZvcmNlIGEgYnVpbGQgZXJyb3IgaWYgdGhleSBhcmUKCSAgdXNlZC4gRHVubm8gaG93IHVzZWZ1bCB0aGlzIGFjdWFsbHkgaXMsIGJ1dCB3ZSBuZWVkIHRvIGRpc2FibGUgdGhlIHBvaXNvbmluZwoJICB3aGVuIHdlIGluY2x1ZGUgdGhpcyBvdXJzZWxmLiBBbHNvIGRvbid0IGRlZmluZSBzb21lIG9mIHRoZSBkdW1taWVzLCBhcyB0aGV5CgkgIGFyZSBnZXR0aW5nIHJlcGxhY2VkIHdpdGggZGVmaW5lcyBhbmQgdGhhdCBjcmVhdGVzIGNvZGUgdGhhdCBkb2VzIG5vdCBjb21waWxlLgoKMjAwOS0wNC0xNSAxOTo1ODozNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIFVzZSBnX29uY2VfaW5pdF8qKCkgaW5zdGVhZCBvZiBHT25jZSBmb3IgdGhlIGVudW0gdHlwZXMKCjIwMDktMDQtMTUgMTM6MDU6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIHN0YXRpY3BhZHRlbXBsYXRlOiBVcGRhdGUgZG9jcyBvZiBnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXRfY2FwcyAoKQoJICBnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXRfY2FwcyAoKSBhY3R1YWxseSByZXR1cm5zIGEgcmVmZXJlbmNlIHRvIHRoZQoJICBjYXBzIGFuZCBpdCdzIGNsZWFuZXIgdG8gdW5yZWYgdGhlbSBhZnRlciB1c2FnZS4gVGhlIGNvcmUgd2lsbCwgaG93ZXZlciwKCSAgYWx3YXlzIGhvbGQgYSByZWZlcmVuY2UgdG8gdGhlIGNhcHMgc28gdGhpcyBkaWRuJ3QgcmVzdWx0IGluIGEgbWVtb3J5CgkgIGxlYWsuCgoyMDA5LTA0LTE0IDIyOjMyOjIxICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSAgZG9jczogdXNlIHJlYWwgPG5vdGU+IHRhZ3MgYXMgdGhleSBsb29rIG5pY2UgaW4gbmV3IGd0ay1kb2MKCjIwMDktMDQtMTQgMTI6MjA6MzcgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSAgRml4IGxvY2tpbmcgaW4gZ3N0X3BhcmFtX3NwZWNfaXNfbXV0YWJsZQoKMjAwOS0wNC0xNCAyMjowNzozOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBmYWN0b3Igb3V0IGR1cGxpY2F0ZWQgY29kZSBhbmQgYWRkIGEgZGVzY3JpcHRpb24gZm9yIGl0LgoJICBBbHNvIGZpeCB0eXBvIGluIHRoZSB0ZXN0cyB3aGlsZSByZXZpZXdpbmcgdGhlbS4KCjIwMDktMDQtMTQgMTk6MTI6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSAgZG9jczogYWRkIHNpbXBsZSBkb2MgYmx1cmIKCjIwMDktMDQtMTQgMTk6MTE6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJICBwYXJhbXNwZWNzOiBhZGQgbm90ZSBhYm91dCByYWN5bmVzcwoJICBBZGQgYSBub3RlIGFib3V0IHBvdGVudGlhbCByYWN5bmVzcyBpbiBfaXNfbXV0YWJsZSgpLgoKMjAwOS0wNC0xNCAxMDozMjowNyArMDIwMCAgTFJOIDxscm4xOTg2IGF0IGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHVzZSBtdXRleCB0byBkbyBjb25zb2xlIGNvbG9ycyBvbiB3aW5kb3dzCgkgIFVzZSBhIHN0YXRpYyBtdXRleCB0byBrZWVwIHRoZSBjb25zb2xlIGNvbG9ycyBhbmQgY29udGV4dCB0b2dldGhlciB3aGVuCgkgIGRlYnVnZ2luZyB3aXRoIGNvbG9ycyBvbiBXaW5kb3dzLgoJICBGaXhlcyAjNTE3MjMxLgoKMjAwOS0wNC0xMyAxNDoyNzo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5oOgoJICBkb2NzOiBhZGQgU2luY2U6IHRhZ3MgdG8gZ3RrLWRvYyBjaHVua3MgZm9yIG5ldyBwYXJhbSBzcGVjIEFQSQoJICBBbmQsIGZvciBvdXIgcmVsZWFzZSBtYW5hZ2VyLCB0aGUgaW4tY29tbWl0LW1lc3NhZ2Uga2V5d29yZHMKCSAgZm9yIHRoZSBwcmV2aW91cyBjb21taXQ6CgkgIEFQSTogR1NUX1BBUkFNX01VVEFCTEVfUkVBRFkKCSAgQVBJOiBHU1RfUEFSQU1fTVVUQUJMRV9QQVVTRUQKCSAgQVBJOiBHU1RfUEFSQU1fTVVUQUJMRV9QTEFZSU5HCgkgIEFQSTogZ3N0X3BhcmFtX3NwZWNfaXNfbXV0YWJsZQoKMjAwOS0wMi0yMCAxMTowOToxOSAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgQWRkIHBhcmFtIHNwZWMgZmxhZ3MgZm9yIHdoZW4gYSBwcm9wZXJ0eSBjYW4gYmUgY2hhbmdlZAoJICBBZGRzIEdTVF9QQVJBTV9NVVRBQkxFKiBmbGFncyB0byBpbmRpY2F0ZSBpbiB3aGljaCBzdGF0ZXMgYQoJICBwcm9wZXJ0eSBjYW4gYmUgY2hhbmdlZCBhbmQgdGFrZSBlZmZlY3QuICBGaXhlcyAjNTcxNTU5CgoyMDA5LTA0LTEwIDE0OjE1OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICAtbGF1bmNoOiBoYW5kbGUgY2xvY2stbG9zdCBtZXNzYWdlcwoJICBXaGVuIHdlIHJlY2VpdmUgYSBjbG9jay1sb3N0IG1lc3NhZ2UsIHdlIG5lZWQgdG8gc2VsZWN0IGEgbmV3IGNsb2NrIGluIHRoZQoJICBwaXBlbGluZSBieSBzZXR0aW5nIHRoZSBwaXBlbGluZSB0byBQQVVTRUQgYW5kIGJhY2sgdG8gUExBWUlORy4KCjIwMDktMDQtMDkgMTg6Mjc6MjEgKzAyMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlciBhdCB0ZXN0ZXIuY2E+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IGFkZCBwcm9wZXJ0eSB0byBjb250cm9sIHRoZSBhbGxvYyBwYWQKCSAgQWRkIGEgcHJvcGVydHkgdG8gY29udHJvbCB0aGUgcGFkIHVzZWQgZm9yIHByb3h5aW5nIHRoZSBidWZmZXJfYWxsb2MgZnVuY3Rpb24gb24KCSAgdGhlIHNpbmtwYWQuCgkgIEZpeGVzICM1Nzc4OTEuCgoyMDA5LTA0LTA5IDExOjUxOjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGFsd2F5cyBtYXJrIHBlbmRpbmdfYXN5bmNfZG9uZQoJICBXaGVuIHdlIGdldCBhbiBBU1lOQ19ET05FIG1lc3NhZ2Ugd2hlbiBhIHN0YXRlIGNoYW5nZSB3YXMgYnVzeSwgc2V0IHRoZQoJICBwZW5kaW5nX2FzeW5jX2RvbmUgZmxhZyBzbyB0aGF0IGFmdGVyIHRoZSBzdGF0ZSBjaGFuZ2UgY29tcGxldGVzLCB0aGUgYmluIGNhbgoJICBjaGVjayBpZiBhbGwgYXN5bmMgZWxlbWVudHMgYXJlIGZpbmlzaGVkLiBEb24ndCBvbmx5IGRvIHRoaXMgZm9yIHRoZSBiaW4gaXRzZWxmCgkgIGJ1dCBmb3IgYWxsIGVsZW1lbnRzLgoJICBUaGlzIGZpeGVzIHNvbWUgYmlucyBpbiBiaW5zIHRoYXQgc2ltdWxhdGUgYXN5bmMgc3RhdGUgY2hhbmdlcyBieSBwb3N0aW5nIEFTWU5DCgkgIG1lc3NhZ2VzIChzdWNoIGFzIHNkcHBhcnNlIGluIHVyaWRlY29kZWJpbi9wbGF5YmluMikuCgoyMDA5LTA0LTA5IDExOjQyOjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogZml4IGNvbXBpbGF0aW9uLCAlMDh4IG5lZWRzIGFuIHVuc2lnbmVkIGludAoJICAlMDh4IG5lZWRzIGFuIHVuc2lnbmVkIGludCwgc28gZ2l2ZSBpdCB0aGF0LgoKMjAwOS0wNC0wNiAwMToyNzoyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQVBJOiBhZGQgRklYTUUgYW5kIERVTVBNRU0gbG9nIGxldmVscyBhbmQgY29udmVuaWVuY2UgbWFjcm9zCgkgIFR3byBuZXcgbG9nIGxldmVscyB0byBkdW1wIEZJWE1FcyBpbnRvIHRoZSBsb2cgYW5kIHRvIGxvZyBkYXRhCgkgIGluIGZvcm0gb2YgYSBoZXggZHVtcCAoIzU3ODExNCkuCgkgIEFQSTogR1NUX0NBVF9GSVhNRV9PQkpFQ1QKCSAgQVBJOiBHU1RfQ0FUX01FTURVTVBfT0JKRUNUCgkgIEFQSTogR1NUX0NBVF9GSVhNRQoJICBBUEk6IEdTVF9DQVRfTUVNRFVNUAoJICBBUEk6IEdTVF9GSVhNRV9PQkpFQ1QKCSAgQVBJOiBHU1RfTUVNRFVNUF9PQkpFQ1QKCSAgQVBJOiBHU1RfRklYTUUKCSAgQVBJOiBHU1RfTUVNRFVNUAoKMjAwOS0wNC0wOCAxODoxMzo0MiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgZG9jczogeHJlZiBtb3JlCgoyMDA5LTA0LTA4IDE3OjQ5OjE4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IHJlbW92ZSB0aGUgaGFja3MgdG8gd29ya2Fyb3VuZCB0aGUgcGFkLWxlYWsKCjIwMDktMDQtMDggMTU6MjQ6NTggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBwYWR0ZW1wbGF0ZTogZW5hYmxlIGNvZGUgdG8gZml4IHRoZSBsZWFrLCBub3cgdGhhdCB0aGUgZGVwcyBoYXZlIGJlZW4gcmVsZWFzZWQKCSAgR29vZCBhbmQgZmZtcGVnIGFyZSBhY3R1YWxseSBtdWx0aXBsZSByZWxlYXNlcyBiZXlvbmQsIHNvIHRoYXQgdGhpcyBpcyBub3cgc2FmZQoJICB0byBkby4KCjIwMDktMDQtMDQgMjE6MTg6MjMgKzAzMDAgIEZlbGlwZSBDb250cmVyYXMgPGZlbGlwZS5jb250cmVyYXNAZ21haWwuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBkMGVhODllIHRvIGIzOTQxZWEKCjIwMDktMDQtMDQgMTQ6NTM6MjEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGY4YjNkOTEgdG8gZDBlYTg5ZQoKMjAwOS0wNC0wNCAxNDo0MjowNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiByZW1vdmUgZGVhZCBhc3NpZ25tZW50CgkgIGZpcnN0X2ZsYWcgd2lsbCBiZSBlaXRoZXI6CgkgICogcmV3cml0dGVuIHdpdGhvdXQgYmVpbmcgcmVhZCBpZiB3ZSBsb29wIGFnYWluIChsaW5lIDI4NCkKCSAgKiBub3QgcmVhZCBhZ2FpbiBpZiB3ZSBkb24ndCBsb29wCgoyMDA5LTA0LTA0IDE0OjM5OjUxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgYmFzZXNpbms6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnRzLgoJICBzc3RhcnQvc3N0b3AvcnN0YXJ0L3JzdG9wIGFyZSBhbGwgZWl0aGVyOgoJICAqIGFzc2lnbmVkIHZhbHVlcyBsYXRlciBvbiBiZWZvcmUgYmVpbmcgdXNlZCBpbiAnZG9fdGltZXM6JyAoRU9TIGFuZCBidWZmZXJzKQoJICAqIG5vdCB1c2VkIChub24tRU9TIGV2ZW50cykKCjIwMDktMDQtMDQgMTQ6Mzg6NTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcmVtb3ZlIGRlYWQgYXNzaWdubWVudC4KCSAgVGhlIHZhcmlhYmxlIHdpbGwgbm90IGJlIHJlYWQgYmVmb3JlIGl0J3MgYXNzaWduZWQgYSB2YWx1ZSBsaW5lIDk0Mi85NDUKCjIwMDktMDQtMDQgMTQ6Mzc6MTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBnc3R0YWdsaXN0OiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlLgoJICBXZSBkb24ndCBuZWVkIHRvIGFsbG9jYXRlIGEgdmFyaWFibGUgaWYgaXQncyB0aGUgcmV0dXJuIG9mIGEgZnVuY3Rpb24gY2FsbAoJICBhbmQgd2Ugb25seSBjaGVjayBpdCBvbmNlLgoKMjAwOS0wNC0wNCAxNDozNTozNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZ3N0c3RydWN0dXJlOiBPbmx5IHVzZSBtZXRob2RzIHVzZWQgaW4gZ18qIGNoZWNrcyBpZiBnbGliIGNoZWNrcyBhcmUgZGlzYWJsZWQKCjIwMDktMDQtMDQgMTA6NTk6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBnc3Q6IFVzZSBnX29uY2VfaW5pdCogb3IgR19ERUZJTkVfVFlQRQoKMjAwOS0wNC0wNCAxMDoyMDozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0aW50ZXJmYWNlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0eG1sLmM6CgkgIGdzdDogVXNlIEdfREVGSU5FX1RZUEUgYW5kIGZyaWVuZHMgb3IgYXQgbGVhc3QgZ19vbmNlX2luaXRfKiBpbiB0aGUgX2dldF90eXBlKCkgZnVuY3Rpb25zCgoyMDA5LTA0LTA0IDEwOjE4OjQyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGdzdDogVXNlIEdfREVGSU5FX1RZUEUgYW5kIGRvbid0IGNhbGwgZ190aHJlYWRfaW5pdCgpIGZyb20gY2xhc3NfaW5pdAoJICBjbGFzc19pbml0IGlzIHRvbyBsYXRlIGZvciBjYWxsaW5nIGdfdGhyZWFkX2luaXQoKSBhcyBnX3RocmVhZF9pbml0KCkKCSAgbmVlZHMgdG8gYmUgY2FsbGVkIGJlZm9yZSBhbnkgR09iamVjdCBmdW5jdGlvbi4KCjIwMDktMDQtMDMgMTM6NDY6MTggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgVXNlIGdfc2xpY2VfY29weSBpbnN0ZWFkIG9mIGdfc2xpY2VfZHVwLgoJICBBIChidWdneSkgZ2xpYiBnX3NsaWNlX2R1cCBtYWNybyBtYXkgY2F1c2UgY29tcGlsZXIgd2FybmluZ3Mgb24gZS5nLiB4ODZfNjQuCgoyMDA5LTA0LTAzIDEyOjIxOjU1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IHJlbW92ZSBkZWFkIGFzc2lnbm1lbnQuCgkgIFRoZSB2YWx1ZSBvZiBwcm9wIGlzIGJlaW5nIG92ZXJ3cml0dGVuIGp1c3QgYWZ0ZXIgd2l0aG91dCBiZWluZyByZWFkLgoKMjAwOS0wNC0wMyAxMjoyMDozNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZ3N0c3RydWN0dXJlOiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50LgoJICAndHlwZScgaXMgbmV2ZXIgdXNlZCB1bnRpbCBsaW5lIDE4NDcgd2hlcmUgaXQncyBvdmVyd3JpdHRlbi4KCjIwMDktMDQtMDMgMTI6MTk6NDAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogcmVtb3ZlIGRlYWQgYXNzaWdubWVudC4KCSAgVGhlIHZhbHVlIHNldCB0byB0b19jb3B5IGF0IHRoYXQgbGluZSBpcyBuZXZlciB1c2VkLCBhbmQgaXMgb3ZlcndyaXR0ZW4KCSAgZnVydGhlciBkb3duIGJlZm9yZSBiZWluZyByZWFkLgoKMjAwOS0wNC0wMyAxMjoxNzozMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgZ3N0YmluOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlLgoJICBUaGUgcmV0dXJuIHZhbHVlIG9mIGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSBpc24ndCB1c2VkIGFmdGVyIHRoYXQgY2FsbC4KCjIwMDktMDQtMDMgMTI6MTU6MzggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGlwZWxpbmU6IHJlbW92ZSByZWR1bmRhbnQgYXNzaWdubWVudC4KCSAgSWYgdGhhdCBibG9jayBpcyBlbnRlcmVkLCB0aGVuIHN0YXJ0X3RpbWUgYmVjb21lcyBHU1RfQ0xPQ0tfVElNRV9OT05FLgoJICBTaW5jZSBzdGFydF90aW1lIGlzIGludmFsaWQsIHRoZSBjb2RlIHdpbGwgZW50ZXIgdGhlIGJsb2NrIGF0IGxpbmUgNDM0IGFuZAoJICBuZXdfYmFzZV90aW1lIHdpbGwgYmUgc2V0IHRoZXJlLgoKMjAwOS0wNC0wMyAxMjoxMzozOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBnc3RyZWdpc3RyeWJpbmFyeTogcmVtb3ZlIHZhcmlhYmxlIG9ubHkgdXNlZCBmb3IgYSBjaGVjay4KCSAgdGhhdCB2YXJpYWJsZSBpc24ndCB1c2VkIGFueXdoZXJlIGVsc2Ugd2l0aGluIHRoYXQgYmxvY2suCgoyMDA5LTA0LTAzIDEyOjEzOjAwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luayA6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCgkgIHN5bmMgaXMgbmV2ZXIgdXNlZCBhbnl3aGVyZSBpbiB0aGF0IGNvZGUuCgoyMDA5LTA0LTAzIDEyOjEyOjA4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IG1vdmUgdW51c2VkIHZhcmlhYmxlIGluIHRoZSAjaWYgMCBibG9jay4KCSAgVGhhdCB2YXJpYWJsZSBpcyBvbmx5IHVzZWQgYnkgdGhlIGNvZGUgd2hpY2ggaGFzIGJlZW4gaWYgMCdkCgoyMDA5LTA0LTAzIDExOjU2OjQ4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgUmVtb3ZlIHVudXNlZCBpbmNyZW1lbnRzIGFzIGRldGVjdCBieSBMTFZNJ3MgQ0xhbmcgc3RhdGljIGFuYWx5emVyLgoKMjAwOS0wNC0wMyAxMTo1Mjo0OSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzoKCSogZ3N0L2dzdGludGVyZmFjZS5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzIGRldGVjdGVkIGJ5IExMVk0ncyBDbGFuZyBzdGF0aWMgYW5hbHl6ZXIuCgoyMDA5LTA0LTAzIDExOjE5OjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGRvY3M6IGltcHJvdmUgQVBJIHJlZmVyZW5jZSBmb3IgZ3N0X2NhcHNfZ2V0X3N0cnVjdHVyZSgpCgoyMDA5LTA0LTAyIDEzOjMyOjU4ICswMjAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXMgKGF0KSBhcGVzdGFhcnQgKGRvdCkgb3JnPgoKCSogZ3N0L2dzdGJpbi5oOgoJICBkb2NzOiBleHBsYWluIHJlZiBvd25lcnNoaXAgZm9yIGhhbmRsZV9tZXNzYWdlIGltcGxlbWVudGF0aW9ucwoKMjAwOS0wNC0wMiAxMDo0MzoxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBnc3RjaGVjazogQ2FsbCBnc3RfY2hlY2tfaW5pdCgpIGJlZm9yZSBjcmVhdGluZyB0aGUgc3VpdGUKCSAgVGhpcyBhbGxvd3MgdXNpbmcgdGhlIEdTdHJlYW1lciBvciBHT2JqZWN0IEFQSSBpbiB0aGUgc3VpdGUKCSAgY3JlYXRpb24gZnVuY3Rpb24uCgoyMDA5LTAzLTMxIDE4OjE0OjA4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0BlbWJlZGRlZC51ZmNnLmVkdS5icj4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogRml4ZXMgZXJyb3Igd2hlbiBESVNBQkxFX0ZBVUxUX0hBTkRMRVIgaXMgZGVmaW5lZAoJICBXaGVuIGRlZmluZWQsIHRoaXMgbWFjcm8gcHJldmVudGVkIHRoZSBkZWNsYXJhdGlvbiBvZiAnd2FpdGluZ19lb3MnLCBjYXVzaW5nIGFuIGVycm9yLgoKMjAwOS0wMy0yNiAxNzoyNTowOCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyLiBBbHdheXMgY2FsbHMgX3N1Z2dlc3QsIGV2ZW4gd2l0aCBOVUxMIGNhcHMuIEZpeGVzICM1NzQ4MDUKCjIwMDktMDMtMzAgMTU6NDU6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgdGVzdHM6IERvbid0IGRlZmluZSBnbG9iYWwgYnVmZmVycyB2YXJpYWJsZSwgaXQncyBhbHJlYWR5IGRlZmluZWQgYnkgbGliZ3N0Y2hlY2sKCjIwMDktMDMtMzAgMTA6MzM6NTEgKzAyMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSogZG9jcy9nc3QvYnVpbGRpbmcueG1sOgoJICBkb2NzOiBTb21lIGdyYW1tYXIgYW5kIHR5cG8gY29ycmVjdGlvbnMuCgoyMDA5LTAzLTI5IDEzOjQxOjIyICswMjAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYW5hLmFtYW50ZXM+CgoJKiBkb2NzL2dzdC9idWlsZGluZy54bWw6CgkgIEZpeCB0eXBvLgoKMjAwOS0wMy0yNyAxNzozMDoyMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGJpbmFyeXJlZ2lzdHJ5OiBpbml0IHZhcmlhYmxlLCB0aGF0IGlzIHJlZmVyZW5jZWQgaW4gZXJyb3IgY2FzZSBiZWxvdyB0aGUgZmFpbDogbGFiZWwKCjIwMDktMDMtMjcgMTY6MTU6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgY2xvY2s6IHdha2V1cCB0aGUgYXN5bmMgdGhyZWFkIGEgYml0IG1vcmUKCSAgQWxzbyB3YWtlIHVwIHRoZSBhc3luYyB0aHJlYWQgd2hlbiBpdCBpcyBkb2luZyBhbiBhc3luYyB3YWl0IGZvciBhbiBlbnRyeS4KCjIwMDktMDMtMjcgMTY6MTU6MTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBGaXggYSBsaXR0bGUgZGVidWcgbWVzc2FnZQoKMjAwOS0wMy0yNiAxMzowNzo1NiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGJpbmFyeXJlZ2lzdHJ5OiBjaGVjayBmb3Igbm90IHJlYWRpbmcgYmV5b25kIHRoZSBkYXRhIGFyZWEuIEZpeGVzICM1NzY4NDIKCSAgQ2hlY2sgYWxsIHJlYWRzIGFnYWluc3QgdGhlIGVuZCBvZiB0aGUgZGF0YSByZWdpb24uIFJvbGwgYmFjayByZWdpc3RyYXRpb24gb2YKCSAgcGFydGlhbCByZWFkcy4KCjIwMDktMDMtMjUgMTE6MDM6MjIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9idWlsZGluZy54bWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgIGRvY3M6IGFkZCBhIHBhZ2UgYWJvdXQgYnVpbGRpbmcgZ3N0cmVhbWVyIGFuZCBhcHBzCgoyMDA5LTAzLTI2IDEzOjA4OjAxIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0BlbWJlZGRlZC51ZmNnLmVkdS5icj4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgQWRkcyBmbGFnIGZvciBlb3Mgb24gc2h1dGRvd24gaW4gZ3N0LWxhdW5jaC4gRml4ZXMgIzU3NTgxNC4KCjIwMDktMDMtMjYgMjI6MDU6MzEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIGNsb2NrOiBtYWtlIFVOU0NIRURVTEVEIGNoZWNrcyB0aHJlYWRzYWZlCgkgIE1vdmUgdGhlIGNoZWNrcyBmb3IgdXNpbmcgYW4gdW5zY2hlZHVsZWQgZW50cnkgZnJvbSB0aGUgdW5zYWZlIEdzdENsb2NrIHRvIHRoZQoJICBTeXN0ZW1DbG9jayBvYmplY3Qgc28gdGhhdCB3ZSBjYW4gcGVyZm9ybSB0aGUgY29ycmVjdCBsb2NraW5nLgoJICBmaXggYSBsZWFrIGFuZCBwb3RlbnRpYWwgZGVhZGxvY2sgdGhlbiB0aGUgYXN5bmMgdGhyZWFkIGZhaWxzIHRvIHN0YXJ0LgoJICBTcHJpbmtsZSBzb21lIEdfTElLRUxZIGFyb3VuZCBiZWNhdXNlIHdlIGNhbi4KCjIwMDktMDMtMjYgMjE6NDA6MjAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgY2xvY2s6IHJlbW92ZSBwZW5kaW5nIGFzeW5jIHdha2V1cCBzb29uZXIKCSAgUmVtb3ZlIGEgcGVuZGluZyBhc3luYyB3YWtldXAgYmVmb3JlIHdlIGNoZWNrIGlmIHRoZSBuZXh0IGVudHJ5IGlzIFVOU0NIRURVTEVECgkgIGJlY2F1c2Ugd2UgbWlnaHQgbGVhdmUgdGhlIGNvbnRyb2wgc29ja2V0IGJ1c3kuCgoyMDA5LTAzLTI2IDE5OjMzOjQxICswMTAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGdzdHBvbGw6IENvcnJlY3RlZCBhIGRvY3VtZW50YXRpb24gdHlwby4KCjIwMDktMDMtMjYgMTk6MTM6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgY2xvY2s6IGFkZCBzb21lIG1vcmUgY29tbWVudHMuCgoyMDA5LTAzLTI2IDE4OjQ2OjM1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIGNsb2NrOiByZXdvcmsgdGhlIHdha2V1cCBvZiBlbnRyaWVzLgoJICBLZWVwIGEgY291bnRlciBmb3IgdGhlIGFtb3VudCBvZiBvdXRzdGFuZGluZyB3YWtldXBzIHRoYXQgd2UgcHJvZHVjZSBhbmQgb25seQoJICBwZXJmb3JtIGEgd3JpdGUvcmVhZCB0byB0aGUgY29udHJvbCBzb2NrZXQgd2hlbiAxIG9yIDAgcmVzcGVjdGl2ZWx5LgoJICBkb24ndCBwb2xsIHdoZW4gd2FpdGluZyBmb3IgdGhlIGVudHJpZXMgdG8gYmUgdW5ibG9ja2VkIGFuZCBjbGVhciB0aGVpciB3YWtldXAKCSAgY291bnRzLCBqdXN0IGFjdCBvbiB0aGUgc2lnbmFsIHdoZW4gdGhlIHdha2V1cCBjb3VudCBpcyAwLgoJICB1bnNjaGVkdWxlZCBlbnRyaWVzIHdpbGwgY2xlYXIgdGhlaXIgd2FrZXVwIGNvdW50IHRoZW1zZWx2ZXMuCgkgIEtlZXAgdHJhY2sgb2Ygd2hlbiB3ZSB3YWtldXAgdGhlIGFzeW5jIHRocmVhZCBiZWNhdXNlIHRoZSBsaXN0IG9mIGVudHJpZXMgaGFzCgkgIGNoYW5nZWQuCgkgIGRvbid0IHRyeSB0byBzZWUgaWYgdGhlIGxpc3QgY2hhbmdlZCBiZWNhdXNlIHdlIGNhbid0IHJlYWxseSBrbm93IHdoZW4gb25lIGVudHJ5CgkgIGlzIGFkZGVkIG11bHRpcGxlIHRpbWVzLgoJICBPbmx5IHdha2UgdXAgdGhlIGFzeW5jIHRocmVhZCB3aGVuIHdlIGFkZCBhbiBhc3luYyBlbnRyeSB0byB0aGUgaGVhZCBvZiB0aGUgbGlzdAoJICBhbmQgdGhlIG9sZCBlbnRyeSB3YXMgQlVTWS4KCjIwMDktMDMtMjUgMTc6MzE6MTYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGdzdHBvbGw6IEZpeCB1cCBkb2N1bWVudGF0aW9uIHN0cmluZ3MuCgkgIE5vdGUgdGhlIGNoYW5nZWQgYmVoYXZpb3VyIG9mIGdzdF9wb2xsX3dhaXQgZm9yIHRpbWVyIEdzdFBvbGwncywgYW5kCgkgIGZpeCBhIGNvdXBsZSBvZiBzcGVsbGluZyBlcnJvcnMuCgoyMDA5LTAzLTI2IDE1OjU1OjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBjbG9jazogZml4IDIgd2FrZXVwIHJhY2VzLgoJICB3aGVuIGFuIGVudHJ5IGJlaW5nIHdhaXRlZCBvbiBpbiB0aGUgYXN5bmMgdGhyZWFkIGlzIHVuc2NoZWR1bGVkLCBjbGVhciB0aGUKCSAgd2FrZXVwIHF1ZXVlIHNvIHdlIGNhbiBjb250aW51ZSB3YWl0aW5nIG9uIG90aGVyIGVudHJpZXMuCgkgIFdoZW4gYW4gZW50cnkgYmVpbmcgd2FpdGVkIG9uIGluIHRoZSBhc3luYyB0aHJlYWQgaXMgdW5sb2NrZWQgYmVjYXVzZSBhbiBlYXJsaWVyCgkgIGVudHJ5IHdhcyBhZGRlZCB0byB0aGUgbGlzdCwgc2V0IHRoZSBlbnRyeSB0byBPSyBhZ2Fpbi4gVGhpcyBtYWtlcyBzdXJlIHRoYXQKCSAgb25seSB0aGUgZW50cmllcyBiZWluZyB3YWl0ZWQgb24gaGF2ZSB0aGUgQlVTWSBmbGFnIHNldCBhbmQgd2FrZSB1cCB0aGUgdGltZXIKCSAgcG9sbCB3aGVuIHRoZXkgYXJlIHVuc2NoZWR1bGVkLgoKMjAwOS0wMy0yNiAxNDo0NDowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IGlnbm9yZSAuZ2l0IGRpcmVjdG9yeSB3aGVuIHJlY3Vyc2l2ZWx5IHNjYW5uaW5nIHBsdWdpbiBwYXRocyBmb3IgcGx1Z2lucwoJICBTYXZlcyBzb21lIGN5Y2xlcy9wYW5kYXMgZm9yIHRob3NlIG9mIHVzIHdobyBydW4gdW5pbnN0YWxsZWQgc2V0dXBzLgoKMjAwOS0wMy0yNiAxNDoxNjo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkgIHJlZ2lzdHJ5OiBkbyBmc3luYygpIGJlZm9yZSBjbG9zZSgpIGFuZCByZW5hbWUoKQoJICBUaGlzIGhlbHBzIHByZXZlbnQgZmlsZXN5c3RlbS9kYXRhIGluY29uc2lzdGVuY2llcyBpbiBjZXJ0YWluCgkgIGNpcmN1bXN0YW5jZXMgb24gY2VydGFpbiBmaWxlc3lzdGVtcyAobGlrZSBleHQ0LCB4ZnMsIHViaWZzKS4KCSAgQWxzbyBzZWUgYnVnICM1NjI5NzYuCgoyMDA5LTAzLTI2IDAxOjA5OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFQSTogYWRkIGdzdF90YWdfbGlzdF9nZXRfYnVmZmVye19pbmRleH0KCSAgQ29udmVuaWVuY2UgQVBJLCBtb3N0bHkgZm9yIGltYWdlIHRhZ3MsIHNvIHBlb3BsZSBkb24ndCBoYXZlIHRvCgkgIGZpZ3VyZSBvdXQgdGhlIHdob2xlIEdWYWx1ZS9Hc3RWYWx1ZSB0aGluZyBqdXN0IGZvciB0aGlzLgoKMjAwOS0wMy0yNSAyMzowMzozOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBDbGVhbiB1cCB0aGUgdGVzdHMgYSBiaXQuCgkgIEFkZCBzb21lIGNsZWFudXBzIHRvIHRoZSBzeXN0ZW0gY2xvY2sgdGVzdHMsIHRvIGZyZWUgYWxsIHRoZSBtZW1vcnkgYW5kCgkgIHVuc2NoZWR1bGUvdW5yZWYgYWxsIGNsb2NrIElEcyB3ZSBhbGxvY2F0ZS4KCSAgVXNlIGEgbXV0ZXggaW4gb25lIHRlc3QgdG8gYXZvaWQgcG90ZW50aWFsIHRocmVhZGluZyBwcm9ibGVtcyBvbiBtdWx0aWNvcmUKCSAgbWFjaGluZXMuCgoyMDA5LTAzLTI1IDIxOjM3OjM4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IEFkZCBhIHRlc3QgZm9yIHN5bmMvYXN5bmMgY2xvY2tpZCBpbnRlcmFjdGlvbnMKCSAgVGhpcyB0ZXN0IHJhbmRvbWx5IGhhbmdzIGlmIHRoZXJlIGFyZSBwcm9ibGVtcyB3aXRoIHRoZSByZWxpYWJpbGl0eSBvZgoJICB1bnNjaGVkdWxpbmcgc3luYyBhbmQgYXN5bmMgY2xvY2tJRCdzIG9uIHRoZSBzeXN0ZW0gY2xvY2suCgoyMDA5LTAzLTI2IDExOjE3OjAxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IFVzZSBnX3NsaWNlX2R1cCgpIG5vdwoKMjAwOS0wMy0yNiAxMTowODoyNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ2xpYi1jb21wYXQuaDoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIFJlbW92ZSBzb21lIGNvbXBhdGliaWxpdHkgc3R1ZmYgZm9yIEdMaWIgPCAyLjE0CgoyMDA5LTAzLTI1IDAwOjUwOjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIEFQSTogYWRkIEdTVF9UQUdfU1VCVElUTEVfQ09ERUMKCSAgWWVzLCAnY29kZWMnIGlzbid0IGV4YWN0bHkgdGhlIGJlc3Qgd29yZCwgYnV0IGxldCdzIGJlIGNvbnNpc3RlbnQgd2l0aCBBVURJT19DT0RFQwoJICBhbmQgVklERU9fQ09ERUMgKHdoaWNoIG1heSBiZSAncmF3JyBmb3JtYXRzIGFzIHdlbGwgYWZ0ZXIgYWxsKS4gUHJlcmVxdWlzaXRlIGZvcgoJICBidWcgICM1NzY1NTIuCgoyMDA5LTAzLTI0IDIxOjM5OjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgZG9jczogZ3N0LWxhdW5jaCBtYW4gcGFnZSBmaXgKCSAgVGhlIGNvbW1hbmQgbGluZSBvcHRpb24gaXMgLS1nc3QtZGVidWctZGlzYWJsZSwgbm90IC0tZ3N0LWRpc2FibGUtZGVidWcuCgkgIEZpeGVzICM1NzY1NTYuIFNwb3R0ZWQgYnkgQm9nZGFuIEhhcmpvYy4KCjIwMDktMDMtMjQgMTk6MzM6NTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0dXRpbHM6IGltcHJvdmUgcHJvcGVydHkgc2V0IGFuZCBjb252ZXJ0IGNvZGUKCSAgVXNlIHN0cmluZyBkZXNlcmlhbGlzYXRpb24gaW5zdGVhZCBvZiBjdXN0b20gcGFyc2luZyBjb2RlIHRvIGFsbG93IGZvciBhbGwKCSAgc3VwcG9ydGVkIHdheXMgb2Ygc3BlY2lmeWluZyBwcm9wZXJ0eSB2YWx1ZXMuCgkgIGZpeGVzICM1NzY1ODIuCgoyMDA5LTAzLTIzIDE1OjE4OjIxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJICBidWlsZDogZGVmaW5lIHN0dWJzIHdoZW4gZGlzYWJsaW5nIGdzdC1kZWJ1ZyBzdWJzeXN0ZW0uIEZpeGVzICM1NzU5MjIKCSAgUnVubmluZyBjb25maWd1cmUgd2l0aCBlLmcuIC0tZGlzYWJsZS1kc3QtZGVidWcgd2FzIGNvbXBpbGluZyBvdXQgdGhlIGRlYnVnCgkgIHN5c3RlbSAoQUJJIGJyZWFrKS4gTm93IHN0dWJzIGFyZSBhZGRlZCBhbmQgb25seSBpZiBvbmUgZG9lcyBlLmcuCgkgIG1ha2UgQ0ZMQUdTPSItREdTVF9SRU1PVkVfRElTQUJMRUQiIHRoZSBzeW1ib2xzIGFyZSBvbW1pdHRlZC4KCjIwMDktMDMtMjMgMTI6MzQ6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZml4IG9uY2UtcGVyLXNlY29uZCAnZW1lcmdlbmN5IHJlbmRlcmluZycgZm9yIGNhc2Ugd2hlcmUgYWxsIGJ1ZmZlcnMgYnV0IHRoZSB2ZXJ5IGZpcnN0IGFyZSBsYXRlCgkgIER1ZSB0byBhIHR5cG8gYmFzZXNpbmsgZGlkbid0IGRvIGFueSBlbWVyZ2VuY3kgcmVuZGVyaW5nIG9mIGxhdGUgYnVmZmVycwoJICBpZiB0aGUgb25seSBidWZmZXIgZXZlciByZW5kZXJlZCB3YXMgdGhlIGZpcnN0IG9uZSB3aXRoIHRpbWVzdGFtcCAwLiBUaGlzCgkgIG1lYW5zIHRoYXQgaW4gY2FzZXMgd2hlcmUgdGhlIGRlY29kZXIgaXMgdmVyeSB2ZXJ5IHNsb3csIHdlJ2QgbmV2ZXIgc2VlCgkgIGFueSBidWZmZXJzIGJ1dCB0aGUgdmVyeSBmaXJzdCBvbmUgcmVuZGVyZWQuIEZpeGVzICM1NzYzODEuCgoyMDA5LTAzLTIxIDAyOjM0OjA0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiB0d2VhayB0aGUgcmVsZWFzZSBwcm9jZWR1cmUgc2NyaXB0CgoyMDA5LTAzLTIwIDE0OjEyOjU1ICswMTAwICBMUk4gPGxybjE5ODYgYXQgZ21haWwgZG90IGNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICB3aW4zMjogZml4IHNlZWtpbmcgaW4gZmlsZXMgPjRHQgoJICBVc2UgNjQtYml0IGZ1bmN0aW9ucyBvbiB3aW5kb3dzIHRvIGltcGxlbWVudCBzZWVraW5nIGluIGZpbGVzIGJpZ2dlcgoJICB0aGFuIDRHQi4KCSAgRml4ZXMgIzU3NTk4OAoKMjAwOS0wMy0yMCAxMToyNjozMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIGNvbnRyb2xsZXI6IEZpeCBnZW5lcmF0aW9uIG9mIGNvbnRyb2wtY2hhbmdlIGFycmF5cy4KCSAgV2hlbiBnZW5lcmF0aW5nIGFycmF5cyBvZiBjb250cm9sIGNoYW5nZXMgdGltZXN0YW1wIHZhcmlhYmxlIHdhcyB1c2VkIGluc3RlYWQKCSAgdGhlIGxvY2FsIHRzIHZhcmlhYmxlIHRoYXQgd2UgaW5jcmVtZW50IHdoZW4gc3RlcHBpbmcgdGhyb3VnaCB0aGUgYXJyYXkuCgkgIFBvaW50ZWQgb3V0IGJ5IE1hcnRpbiBQb2tvcm55LgoKMjAwOS0wMy0yMCAwMDo0Mjo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBkZWJ1Z2dpbmc6IG1ha2UgR1NUX1BUUl9GT1JNQVQgd29yayBmb3IgcXVlcmllcyBhcyB3ZWxsCgoyMDA5LTAzLTIwIDAwOjM5OjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBBUEk6IGFkZCBHU1RfUVVFUllfQ0FTVAoJICBiZWNhdXNlIHdlIGNhbiwgYW5kIGZvciBjb25zaXN0ZW5jeS4KCjIwMDktMDMtMTkgMjE6Mjc6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgZ3N0Y2hlY2s6IGZpeCBmb3IgY2hlY2sgdmVyc2lvbnMgPiAwLjkuNgoJICBBIG5ldyBhcmd1bWVudCBhbGxvd2VkX2V4aXRfdmFsdWUgd2FzIGFkZGVkIGluIFNWTiByZWNlbnRseSAoIzU3NDIxMykuCgoyMDA5LTAzLTE5IDE3OjE5OjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IGZpeCBnc3RfcGFkX2Nhbl9saW5rCgkgIFdlIHdlcmUgY29udmVydGluZyB0aGUgR3N0UGFkTGlua1JldHVybiB0byBhIGdib29sZWFuLCB3aGljaCBpcyBub3Qgd2hhdCB3ZSB3YW50CgkgIHRvIGRvLgoKMjAwOS0wMy0xOSAxMDo0NDoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIGdzdC1ydHNwLXNlcnZlciBiaXRzIGFuZCBicmVhayB1cCBvdmVybHkgbG9uZyBsaW5lcwoJICBBZGQgc29tZSBvZiB0aGUgYml0cyBuZWVkZWQgZm9yIGFuIHVuaW5zdGFsbGVkIGdzdC1ydHNwLXNlcnZlciAoc28gZ2RiIHdvcmtzCgkgIG9uIHRoZSBleGFtcGxlcyBldGMuKS4gUHl0aG9uIGJpdHMgYXJlIHN0aWxsIG1pc3NpbmcsIGFuZCB3ZSBtaWdodCBuZWVkIGFuCgkgIC11bmluc3RhbGxlZC5wYyBmaWxlIGFzIHdlbGwgaW4gdGhlIGZ1dHVyZS4gQnJlYWsgdXAgdmVyeSBsb25nIGxpbmVzIHRvIG1ha2UKCSAgdGhlbSBlYXNpZXIgdG8gcmVhZCBhbmQgbWFpbnRhaW4uIEFsc28gcmVtb3ZlIGdzdC1wbHVnaW5zIHBhdGhzIGZyb20gdGhlCgkgIG9sZCBkYXlzLgoKMjAwOS0wMy0xOSAxMTo0NjoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcndsb2NrczoKCSAgZG9jczogaW50ZXJlc3RpbmcgaWRlYSBmb3IgZmFzdCBydyBsb2NrcwoJICAtLQoKMjAwOS0wMy0xOSAxMToxMTo0MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiBhZGQgbmV3IHN5bWJvbCB0byB3aW5kb3dzIC5kZWYgZmlsZQoJICBBZGQgdGhlIG5ldyB3aW5kb3dzIGNtZC5leGUgY29sb3JpbmcgbWV0aG9kIHRvIHRoZSAuZGVmIGZpbGUuCgoyMDA5LTAzLTE4IDE2OjM4OjUxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBkb2NzOiBtb3JlIGluZm8gYWJvdXQgd2hlbiBzdGF0ZSBjaGFuZ2VzIGNhbiBiZSBhc3luYyBhbmQgd2hlbiBub3QuCgoyMDA5LTAzLTE4IDE5OjA3OjAwICswMTAwICBEYW1pZW4gTGVzcGlhdSA8ZGFtaWVuLmxlc3BpYXUgYXQgZ21haWwuY29tPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogbW9yZSBpbmRlbnRhdGlvbiBmaXhlcwoJICBGaXhlcyAjNTE3MjMxLgoKMjAwOS0wMy0xOCAxOTowNjoyMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IGluZGVudGF0aW9uIGZpeAoKMjAwOS0wMy0xOCAxODo1NzoxNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHNpbXBseSBzb21lIG1vcmUKCjIwMDktMDMtMTggMTg6NDU6NDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiByZWZhY3RvciBkZWJ1ZyBjb2xvcnMgZm9yIHdpbjMyIGFuZCBvdGhlcgoJICBSZWZhY3RvciB0aGUgZGVidWcgbGluZSBjb2RlIHRvIHVzZSBhcyBtdWNoIGNvZGUgYXMgcG9zc2libGUgZm9yIHRoZSB3aW4zMiBhbmQKCSAgb3RoZXIgY29sb3IgY29kaW5ncy4KCSAgVXBkYXRlIGRvY3Mgd2l0aCBuZXcgc3ltYm9sLgoKMjAwOS0wMy0xOCAxNzozMDoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSAgd2luZG93czogaW5pdGlhbCBjb21taXQgZm9yIHRlcm1pbmFsIGNvbG9ycwoKMjAwOS0wMy0xOCAxNzowMToxNiArMDEwMCAgWmVlc2hhbiBBbGkgKEtoYXR0YWspIDx6ZWVzaGFuYWsgYXQgZ25vbWUgZG90IG9yZz4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIGdzdHBhZDogZml4IGdzdF9wYWRfY2FuX2xpbmsoKQoJICBNb3ZlIHRoZSBnc3RfcGFkX2Nhbl9saW5rKCkgaW1wbGVtZW50YXRpb24gZnJvbSBnc3R1dGlscyB0byBnc3RwYWQgYW5kIHVzZQoJICBnc3RfcGFkX2xpbmtfcHJlcGFyZSgpIHRvIG1ha2UgaXQgd29yayBjb3JyZWN0bHkgYW5kIGFsc28gY2hlY2sgdGhlIGNhcHMuCgkgIE1ha2UgdGhlIGJyb2tlbiBpbXBsZW1lbnRhdGlvbiBpbiBnc3R1dGlscyBzdGF0aWMuCgkgIFNtYWxsIGNsZWFudXBzIGluIHRoZSBfZ2V0X2ZpeGVkX2NhcHMoKSBmdW5jdGlvbi4KCSAgRml4ZXMgIzU3NTY4Mi4KCjIwMDktMDMtMTcgMjA6NDE6NDQgKzAwMDAgIERhdmlkIEFkYW0gPHphbmNoZXlAdWNjLmd1LnV3YS5lZHUuYXU+CgoJKiBnc3QvZ3N0LmM6CgkgIGNvbmZpZy5oIG5lZWRzIHRvIGJlIGluY2x1ZGVkIGZpcnN0LCBlaXRoZXIgZGlyZWN0bHkgb3IgdmlhIGdzdF9wcml2YXRlLmgKCSAgRml4ZXMgYnVpbGQgd2l0aCAtV2Vycm9yIGNhdXNlZCBieSAnX0ZJTEVfT0ZGU0VUX0JJVFMgcmVkZWZpbmVkJyB3YXJuaW5nIG9uCgkgIE9wZW5Tb2xhcmlzIHdoZXJlIF9GSUxFX09GRlNFVF9CSVRTIG1heSBiZSBkZWZpbmVkIGJvdGggaW4gb3VyIGNvbmZpZy5oCgkgIGFuZCB2aWEgc3RkaW8uaCAoIzU3NTY5NSkuCgoyMDA5LTAzLTE3IDE5OjAyOjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOgoJICBmYXE6IHJlbW92ZSBvdXRkYXRlZCBiaXRzIGZyb20gaW5kZW50aW5nIHNlY3Rpb24KCjIwMDktMDMtMTcgMTI6MDU6MzMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBmb3J3YXJkIHNlZ21lbnQtc3RhcnQgbGlrZSBzZWdtZW50LWRvbmUgaWYgcGFyZW50IGlzIGFsc28gYSBiaW4sIGZpeGVzICM1NzU1OTguCgkgIEJpbiBjb2xsZWN0cyBzZWdtZW50LXN0YXJ0IG1lc3NhZ2VzIGFuZCBzZWdlbnQtZG9uZSBtZXNzYWdlcy4gaXQgcG9zdHMgYQoJICBzZWdtZW50LWRvbmUgbWVzc2FnZSB0byBpdHMgcGFyZW50LCBvbmNlIGl0IGhhcyByZWNlaXZlZCBhIHNlZ21lbnQtZG9uZSBmb3IKCSAgZWFjaCBzZWdtZW50LXN0YXJ0LiBJbWhvIGl0IHNob3VsZCBhbHNvIHNlbmQgYSBzZWdtZW50LXN0YXJ0IGlmIGl0IHJlY2VpdmVzIHRoZQoJICBmaXJzdCBzZWdtZW50IHN0YXJ0IGFuZCBpZiBwYXJlbnQgaXMgIT1OVUxMLiBUaGlzIGlzIG5lZWRlZCBmb3IgYmlucyBpbiBiaW5zLAoJICBzbyB0aGF0IGFsc28gaGlnaGVyIG9yZGVyIGJpbnMgY2FuIGdyb3VwIHNlZ21lbnQtc3RhcnRzIGFuZCBzZWdtZW50LWRvbmVzLgoJICBSaWdodCBub3cgaGlnaGVyIG9yZGVyIGJpbnMgd2lsbCBwb3N0IGEgc2VnbWVudC1kb25lIGZvciBlYWNoIHNlZ21lbnQtZG9uZQoJICByZWNlaXZlZC4KCjIwMDktMDMtMTYgMjA6MTI6NDUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2ZhcS9naXQueG1sOgoJICBmYXE6IGZpeCB0eXBvIGluIGdpdCBjb21tYW5kCgoyMDA5LTAzLTE1IDIzOjQwOjM2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IHRoZXNlIHdhcm5pbmdzIGFyZSBzZXJpb3VzLCBnaXZlIG1vcmUgZGV0YWlsIGluIHRoZSBtZXNzYWdlCgoyMDA5LTAzLTE1IDIzOjM3OjI5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBhZGQgZGVidWcgbG9nZ2luZyB0byBtYWtlIGl0IGVhc2llciB0byB0cmFjZSBpdAoKMjAwOS0wMy0xMyAxMDo1Njo1NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICBGaXggaW5kZW50YXRpb24gb2YgLmggZmlsZXMKCSAgLS0KCjIwMDktMDMtMTIgMTI6MjA6MjUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3RzOiBhcHBseSBmaXggZm9yIHJlcGxhY2UgYWxsIGFsc28gdG8gZ3N0X3RhZ19saXN0X2FkZF92YWxpc3RfdmFsdWVzLiBGaXhlcyAjNTc0MjQxCgoyMDA5LTAzLTEyIDEwOjQ4OjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgZG9jczogSW1wcm92ZSBzb21lIGRvY3MKCSAgUmVuYW1lIHNvbWUgZnVuY3Rpb24gdmFyaWFibGVzIGFuZCBhZGQgc29tZSBSZXR1cm46IHRvIG1ha2UgdGhlIGRvY3MgbW9yZSBoYXBweS4KCjIwMDktMDMtMTIgMDA6NDE6MjQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBkb2NzOiBmaXggbGlua2luZyB0byBjb25zdGFudCBhbmQgZnVuY3Rpb25zCgoyMDA5LTAzLTExIDE1OjIwOjM2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkdW1wMmRvdDogZWxsaXBzaXplIGNhcHMgZmllbGRzLCBiZXR0ZXIgcGxhY2VtZW50IG9mIHVubmVnb3RpYXRlZCBjYXBzCgkgIExvbmcgY2FwcyBmaWVsZHMgbGlrZSBlbnVtcyBhcmUgZWxsaXBzaXNlZC4gSWYgY2FwcyBhcmUgbm90IG5lZ290aWF0ZWQsIHVzZQoJICBoZWFkLSBhbmQgdGFpbGxhYmVsIHRvIHBsYWNlIHRoZW0gY2xvc2VyIHRvIHRoZSBwYWRzLiBVc2Ugc21hcnRlciB3YXkgdG8gaW5kZW50LgoKMjAwOS0wMy0xMSAxMDoyNzoxNiArMDIwMCAgTGFzemxvIFBhbmR5IDxsYXN6bG9rMkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkdW1wMmRvdDogbWFrZSBjYXBzIGluIERPVCBkZWJ1ZyBncmFwaHMgbW9yZSByZWFkYWJsZS4gRml4ZXMgNTc0NDg0CgkgIFVzZSBhIG1vbm9zcGFjZSBmb250IGZvciBlZGdlIGxhYmVscyBhbmQgaW5kZW50LgoKMjAwOS0wMy0xMSAxNDoxMTozMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgcGFkdGVtcGxhdGU6IEFsbG93ICV1IGFzIGNvbnZlcnNpb24gbW9kaWZpZXIgYWRkaXRpb25hbCB0byAlZCBhbmQgJXMKCjIwMDktMDMtMTEgMTE6MjM6MDUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgZ3N0YmFzZXNyYzogdW5zaWduZWQgbG9uZyBpcyAiJWx1Iiwgbm90ICIldWwiLiBGaXhlcyBidWlsZCBvbiBtYWNvc3gKCjIwMDktMDMtMTAgMjE6MDg6MzQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGxvZ2dpbmc6IHNvbWUgYWRkaXRpb25hbCBsb2dnaW5nIGZvciB0cmFjaW5nIGNhcHMgbmVnb3RpYXRpb24uCgkgIERlbW90ZSBvbmUgbG9nIHRoYXQgY2FuIGNvbWUgcXVpdGUgb2Z0ZW4uIFJlbW92ZSBvbmUgZml4bWUgdGhhdCBpcyBkb25lLiBBcHBseQoJICBnc3QtaW5kZW50IGNoYW5nZXMuCgoyMDA5LTAzLTEwIDIxOjAzOjQ0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGNvbW1lbnQ6IGFkZCBhIGZpeG1lLTAuMTEKCjIwMDktMDMtMTAgMjE6MDE6MjEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJICBmb3JtYXR0aW5nOiB0YWJzIHRvIHNwYWNlcwoKMjAwOS0wMy0wOSAyMzoxMToyNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA3MDMyMTYzIHRvIGY4YjNkOTEKCjIwMDktMDMtMDkgMjA6MDc6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGdzdHJlYW1lci5zcGVjOiBmaXggc3RyYXkgQEdMSUIyX1JFUUAgdGhhdCBkaWRuJ3QgZ2V0IGV4cGFuZGVkIHByb3Blcmx5CgoyMDA5LTAzLTA5IDE2OjA5OjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkgIGRvY3M6IHJld29yZCBzdHVmZiBhYm91dCBjdXN0b20gbWFpbmxvb3BzCgkgIEZpeGVzICM1NzQyMjkuCgoyMDA5LTAzLTA5IDE2OjAxOjIwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkdW1wMmRvdDogZG9uJ3QgdXNlIEdTVF9USU1FX0ZPUk1BVCB3aGVuIGJ1aWxkaW5nIGZpbGVuYW1lcy4gZml4ZXMgIzU3NDYyMwoKMjAwOS0wMy0wOSAxMTozOTozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogY2FsbCBuZXcgY2FsbGJhY2tzIHNldCBpbiB0aGUgYmxvY2sgY2FsbGJhY2sKCSAgS2VlcCB0cmFjayBvZiB3aGVuIGEgbmV3IGNhbGxiYWNrIGlzIGluc3RhbGxlZCBpbiB0aGUgY2FsbGJhY2sgYW5kIGNhbGwgdGhlIG5ldwoJICBjYWxsYmFjayBpbiB0aGF0IGNhc2UuCgkgIEFkZCB1bml0IHRlc3QgZm9yIGNoZWNraW5nIHBhZCBibG9ja2luZy4KCSAgRml4ZXMgIzU3MzgyMy4KCjIwMDktMDMtMDggMTc6MjI6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgd2luMzI6IHVwZGF0ZSBlbnVtdHlwZXMgYW5kIGNvbmZpZy5oCgoyMDA5LTAzLTA4IDE3OjE1OjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIGRvY3M6IGltcHJvdmUgZG9jcyBmb3IgZ3N0X3RhZ19saXN0X2dldF9kYXRlKigpCgkgIE1lbnRpb24gdGhhdCB0aGUgZGF0ZSB2YWx1ZSBuZWVkcyB0byBiZSBmcmVlZCBhbmQgaG93IHRvIGZyZWUgaXQuCgoyMDA5LTAzLTA4IDEyOjAyOjE1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZmZhNzM4ZCB0byA3MDMyMTYzCgoyMDA5LTAzLTA4IDExOjE3OjUwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gM2YxM2U0ZSB0byBmZmE3MzhkCgoyMDA5LTAzLTA4IDAwOjI3OjI2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkdW1wMmRvdDogaW1wcm92ZSBjYXBzIGxvZ2dpbmcKCSAgRmFjdG9yIG91dCBjb2RlIHRvIGRlc2NyaWJlIGNhcHMuIEltcHJvdmUgZm9ybWF0aW5nIChubyBcbiBpbiBjYXBzIGZpZWxkcykuCgkgIENoZWNrIHBlZXIgY2FwcyB0b28gYW5kIHNob3cgYm90aCBpZiB0aGV5IGRpZmZlci4KCjIwMDktMDMtMDcgMTE6NDM6MzEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAzYzc0NTZiIHRvIDNmMTNlNGUKCjIwMDktMDMtMDcgMTA6NDM6MzIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA1N2M4M2YyIHRvIDNjNzQ1NmIKCjIwMDktMDMtMDYgMjI6MTA6MTAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IHJldmVydCBhY2NpZGVudGlhbCBjb21taXQgZnJvbSB0aGUgcXVldWUgKG1lIHNob3VsZCBzdGFydCB1c2luZyBicmFuY2hlcykKCjIwMDktMDMtMDYgMjE6NTk6MjAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgYXBpZG9jczogbWFya3VwIGV4YW1wbGUgYXMgaGlnaGxpZ2h0YWJsZSBleGFtcGxlIGFuZCBjb3B5IHNhbWUgZm9yIHN0cnVjdHVyZQoJICBzdHJ1Y3R1cmVzIGNhbiBiZSBwcmludGVkIGxpa2Ugd2UgY2FuIGRvIGZvciBjYXBzLiBNYXJrIHRoZSBleGFtcGxlIHNvIHRoYXQKCSAgZ3RrLWRvYyBjYW4gcHJldHR5IHByaW50IGFuZCB4cmVmIGl0LgoKMjAwOS0wMy0wNCAyMToyMTo1NiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogcmVsaWFibHkgZ28gdG8gZW9zLiBGaXhlcyAjNTc0MTYwCgkgIFVwZGF0ZSBjb2xsZWN0cGFkcyBzdGF0dXMgd2hlbiByZW1vdmluZyBwYWRzLgoKMjAwOS0wMy0wNiAxMjowODo0MiArMDEwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZGVjaW5hQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IGlnbm9yZSB0aGUgcmV0dXJuIHZhbHVlIG9mIGdzdF9wYWRfZXZlbnRfZGVmYXVsdCB3aGVuIHNlbmRpbmcgb3V0IHRoZSBuZXdzZWdtZW50IGV2ZW50IGluIHNpbmdsZS1zZWdtZW50IG1vZGUuCgkgIFRoaXMgbWFrZXMgaWRlbnRpdHkgc2luZ2xlLXNlZ21lbnQ9dHJ1ZSAhIG9nZ211eCB3b3JrIGFnYWluIGFmdGVyIGEgY2hhbmdlIGluCgkgIG9nZ211eCAoY29tbWl0IGIwZTNkNDQ5IGluIC1iYXNlKS4KCjIwMDktMDMtMDUgMTc6NDI6MjIgKzAxMDAgIEFuZHkgV2luZ28gPHdpbmdvQG9ibG9uZy5uZXQ+CgoJICBiYXNlc2luazogcHJvcGFnYXRlIFVQU1RSRUFNIGV2ZW50cyBpbiBwdWxsIG1vZGUgdG9vCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX3NlbmRfZXZlbnQpOiBQcm9wYWdhdGUKCSAgdXBzdHJlYW0gZXZlbnRzIGluIHB1bGwgbW9kZSB0b28uCgoyMDA5LTAzLTA1IDExOjI5OjQ4ICswMTAwICBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDBAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBHc3RQYWQ6IHJlbGF4IGZhaWx1cmUgdG8gZGVhY3RpdmF0ZSB1bmxpbmtlZCBwYWRzCgkgIFdoZW4gZGUvYWN0aXZhdGluZyBhIHBhZCBpbiBwdWxsIG1vZGUgdGhlIHBhZCBuZWVkcyB0byBkZS9hY3RpdmF0ZSB0aGUKCSAgcGVlciBwYWQgaXQgaXMgY29ubmVjdGVkIHRvLCBmYWlsdXJlIHRvIGJlIGFibGUgdG8gZG8gdGhpcyBpbiBhY3RpdmF0aW9uIG1vZGUKCSAgaXMgYW4gZXJyb3IuCgkgIEhvd2V2ZXIgaWYgdGhlcmUgaXMgbm8gcGVlcnBhZCwgd2UgY2FuIHN0aWxsIGRlYWN0aXZhdGUgdGhlIHBhZCBjb3JyZWN0bHkgYW5kCgkgIGFzc3VtZSB0aGUgYXBwbGljYXRpb24gd2lsbCBkZWFjdGl2YXRlIHRoZSB1bmxpbmtlZCBwZWVyIHBhZCBldmVudHVhbGx5LgoJICBGaXhlcyAjNTc0MTYzLgoKMjAwOS0wMy0wNSAxMTowMjo1OSArMDEwMCAgTFJOIDxscm4xOTg2IGF0IGdtYWlsIGRvdCBjb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBHc3RQb2xsOiBzZXQgdGhlIHJldHVybiB2YWx1ZSBvbiB3aW5kb3dzCgkgIE1ha2Ugc3VyZSB0aGF0IHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGZ1bmN0aW9ucyBfcmVhZC9fd3JpdGVfY29udHJvbCgpCgkgIHJldHVybiB0aGUgYWN0dWFsIHJlc3VsdCBpbnN0ZWFkIG9mIGFsd2F5cyBGQUxTRSBvbiB3aW5kb3dzLgoJICBGaXhlcyAjNTc0MjExLgoKMjAwOS0wMy0wNCAxMDo0NjoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgIHB3ZzogdXBkYXRlIGZvciBDVlMtdG8tZ2l0IG1pZ3JhdGlvbgoJICBGaXhlcyAjNTczOTQ2LgoKMjAwOS0wMy0wNCAwOToyMDo0MyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBHc3RBZGFwdGVyOiBEaXNjYXJkIGVtcHR5IGJ1ZmZlcnMgaW4gX3B1c2goKS4gRml4ZXMgIzU3NDAyNAoKMjAwOS0wMy0wMyAyMDowMTo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiAuZ2l0aWdub3JlOgoJICBVcGRhdGUgLmdpdGlnbm9yZQoKMjAwOS0wMy0wMyAxOTo1ODo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIGJpdHMgZm9yIHVuaW5zdGFsbGVkIGNoZWNrb3V0cyBvZiBnc3Qtb3Blbm1heCBhbmQgdG90ZW0KCjIwMDktMDMtMDIgMTY6MTc6NDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQVBJOiBBZGQgZ3N0X3V0aWxfYXJyYXlfYmluYXJ5X3NlYXJjaCgpIGZvciBiaW5hcnkgc2VhcmNocyBvbiBhIHNvcnRlZCBhcnJheQoJICBUaGlzIHdpbGwgYmUgbW9zdGx5IHVzZWZ1bCBpbiBhbGwgZWxlbWVudHMgdGhhdCBoYXZlIHNvbWUga2luZCBvZiBpbnRlcm5hbAoJICBzZWVrL2luZGV4IHRhYmxlLiBDdXJyZW50bHkgYWxtb3N0IGFsbCBvZiB0aGVtIChvciBldmVuIGFsbCBvZiB0aGVtKQoJICBhcmUgdXNpbmcgYSBsaW5lYXIgc2VhcmNoIGFsdGhvdWdoIHRoZSB1c2VkIGFycmF5IGlzIGFscmVhZHkgc29ydGVkLAoJICB3YXN0aW5nIHNvbWUgQ1BVIHRpbWUgd2l0aG91dCBnb29kIHJlYXNvbi4KCSAgRml4ZXMgYnVnICM1NzM2MjMuCgoyMDA5LTAyLTI4IDExOjE1OjI5IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIEJ1bXAgZ2xpYiByZXF1aXJlbWVudCB0byAyLjE0CgkgIEFsc28gcmVtb3ZlIGNvZGUgY29uZGl0aW9uYWwgb24gPCAyLjE0LgoKMjAwOS0wMi0yOCAxMzozNDowOCAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvTUFOSUZFU1Q6CgkgIFJlbW92ZSB3aW4zMi9jb21tb24vY29uZmlnLmguaW4gZnJvbSBNQU5JRkVTVCwgaXQgbm8gbG9uZ2VyIGV4aXN0cwoKMjAwOS0wMi0yNyAxMzozNTozNSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBQcm9wZXJseSByZXNldCB0aGUgY2Fwc2ZpbHRlciB3aGVuIHNldHRpbmcgY2FwcyBBTlkuCgoyMDA5LTAyLTI3IDEyOjM0OjI5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtZnJhbWVzdGVwLnR4dDoKCSAgZGVzaWduOiB1cGRhdGUgdGhlIGZyYW1lc3RlcCBkcmFmdAoJICBVcGRhdGUgdGhlIGRvY3MgYSBsaXR0bGUuCgkgIEFkZCBwcm9wZXJ0eSB0byBhbGxvdyBpbmNyZW1lbnRhbCBzdGVwcGluZyBzbyB0aGF0IHdlIGNhbiByZWR1Y2UgZXhjZXNzaXZlCgkgIHF1ZXVlaW5nLgoKMjAwOS0wMi0yNiAxNTo0MDoyNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogbW92ZSBsZWZ0IG92ZXIgaGFuZGxpbmcgb2YgdGhlIGVycm9yIGNhc2UgdG8gdGhlIGFjdGl2YXRlX2ZhaWxlZCBsYWJlbC4KCSAgSWYgd2FzIGxlZnQgYXMgZGVhZCBjb2RlLgoKMjAwOS0wMi0yNSAxOTo1OTo1NyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkgIGJ1aWxkOiBVcGRhdGUgc2hhdmUgaW5pdCBzdGF0ZW1lbnQgZm9yIGNoYW5nZXMgaW4gY29tbW9uLiBCdW1wIGNvbW1vbi4KCjIwMDktMDItMjUgMTA6NTE6NTcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBiaW5hcnkgcmVnaXN0cnk6IERvbid0IGF0dGVtcHQgdG8gcGFyc2UgZW1wdHkgY2FwcwoKMjAwOS0wMi0yNSAxNDoxOTowOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IFNldCB0eXBlZmluZCBmYWN0b3J5IGNhcHMgdG8gTlVMTCBpbnN0ZWFkIG9mIGVtcHR5IGNhcHMgaWYgdGhleSBvcmlnaW5hbGx5IHdlcmUgTlVMTAoKMjAwOS0wMi0yNSAxMTozMTozOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA5Y2Y4YzliIHRvIGE2Y2U1YzYKCjIwMDktMDItMjQgMTU6MTA6MTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5YmluYXJ5OiBDaGVjayBpZiB0eXBlZmluZCBmYWN0b3J5IGNhcHMgYXJlIE5VTEwgYmVmb3JlIGNvcHlpbmcgdGhlbQoKMjAwOS0wMi0yNCAxMTo0MDoxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIFJlbW92ZSB1bmRlY2xhcmVkIHN5bWJvbHMgZnJvbSBkb2NzCgkgIFJlbW92ZSBzb21lIHVuZGVjbGFyZWQgc3ltYm9scyBmcm9tIHRoZSBkb2NzLgoKMjAwOS0wMi0yMyAxMzowMToxMSAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBNYWtlZmlsZS5hbToKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIENoYW5nZSBob3cgd2luMzIvY29tbW9uL2NvbmZpZy5oIGlzIHVwZGF0ZWQKCSAgR2VuZXJhdGUgd2luMzIvY29tbW9uL2NvbmZpZy5oLW5ldyBkaXJlY3RseSBmcm9tIGNvbmZpZy5oLmluLAoJICB1c2luZyBzaGVsbCB2YXJpYWJsZXMgaW4gY29uZmlndXJlIGFuZCBzb21lIGhhcmQtY29kZWQgaW5mb3JtYXRpb24uCgkgIENoYW5nZSB0b3AtbGV2ZWwgbWFrZWZpbGUgc28gdGhhdCAnbWFrZSB3aW4zMi11cGRhdGUnIGNvcGllcyB0aGUKCSAgZ2VuZXJhdGVkIGZpbGUgdG8gd2luMzIvY29tbW9uL2NvbmZpZy5oLCB3aGljaCB3ZSBrZWVwIGluIHNvdXJjZQoJICBjb250cm9sLiAgSXQncyBrZXB0IGluIHNvdXJjZSBjb250cm9sIHNvIHRoYXQgdGhlIGdpdCB0cmVlIGlzCgkgIGJ1aWxkYWJsZSBmcm9tIFZTLgoKMjAwOS0wMi0yMyAxMDo1MjoxNCAtMDgwMCAgRGF2aWQgRmx5bm4gPGRhdmlkZkByZC5iYmMuY28udWs+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWJhc2UtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbGxlci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJICBBZGQgc3JjZGlyIHRvIGluY2x1ZGVzIGZvciBvdXQtb2Ytc291cmNlIGJ1aWxkcwoJICBXaGVuIHlvdSB1c2UgZ3N0cmVhbWVyIHVuaW5zdGFsbGVkIGFuZCBidWlsZCBvdXRzaWRlCgkgIHRoZSBzb3VyY2UgdHJlZSwgdGhlIGluY2x1ZGVzIG5lZWQgdG8gYmUgc3BlY2lmaWVkIGZvcgoJICBib3RoIHRoZSBzb3VyY2UgdHJlZSBhbmQgdGhlIGJ1aWxkIHRyZWUuCgkgIFNpZ25lZC1vZmYtYnk6IERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKMjAwOS0wMi0yMyAxNzozNjoyMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBFcnJvciBvdXQgbW9yZSBzcGVjaWZpY2FsbHkgb24gZW1wdHkgY2FwcwoJICBXaGVuIHdlIGdldCBlbXB0eSBjYXBzIGZyb20gdGhlIGdldGNhcHMgZnVuY3Rpb24gaW4gdGhlIGRlZmF1bHQgbmVnb3RpYXRlCgkgIGZ1bmN0aW9uLCBwb3N0IGEgbW9yZSBkZXNjcmlwdGl2ZSBlcnJvci4KCjIwMDktMDItMjMgMTU6MjQ6MDAgKzAxMDAgIEFuZHkgV2luZ28gPHdpbmdvQG9ibG9uZy5uZXQ+CgoJICBmaXggdXJpIGhhbmRsZXIgaXRlcmF0aW9uIGluIGdzdC1pbnNwZWN0CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYyAocHJpbnRfYWxsX3VyaV9oYW5kbGVycyk6IFdob29wcywgZml4IGl0ZXJhdGlvbi4KCSAgSSdtIHN0dXBpZC4KCjIwMDktMDItMjMgMTI6MzM6MTMgKzAxMDAgIExSTiA8bHJuMTk4NiBhdCBnbWFpbCBkb3QgY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBGaXggc2lnbmVkIHdoZW4gY29tcGlsaW5nIHdpdGggTVN5cy9NaW5HVwoJICBmaXggc2lnbmVkIGlzc3VlcyB3aGVuIGNvbXBpbGluZyB3aXRoIE1TeXMvTWluR1cuCgkgIEZpeGVzICM1NzI1OTEuCgoyMDA5LTAyLTIzIDEwOjUzOjE3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBEb24ndCBmb3J3YXJkIExBVEVOQ1kgZXZlbnQgd2hlbiBub3QgcmVhZHkKCSAgV2hlbiB3ZSBhcmUgbm90IHJlYWR5IHRvIGhhbmRsZSBhIGxhdGVuY3kgcXVlcnkgKHdlIGFyZSBub3QgeWV0IHByZXJvbGxlZCkgd2UKCSAgYWxzbyBkb24ndCB0cnkgdG8gZm9yd2FyZCB0aGUgbGF0ZW5jeSBldmVudCBiZWNhdXNlIHRoYXQgbWlnaHQgY2F1c2UgdW5leHBlY3RlZAoJICBlcnJvcnMgd2hlbiB1cHN0cmVhbSBpcyBub3QgeWV0IGxpbmtlZC4KCjIwMDktMDItMjIgMjI6MDk6MzkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9jb3JlOgoJICBSZW1vdmUgY29yZSBmaWxlIGZyb20gcHJldmlvdXMgY29tbWl0CgoyMDA5LTAyLTIyIDIwOjAxOjA1ICswMTAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB0ZXN0cy9jaGVjay9jb3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBHc3RQYWQ6IEFkZCBnc3RfcGFkX3NldF9ibG9ja2VkX2FzeW5jX2Z1bGwKCSAgVGhpcyBhbGxvd3MgY29ubmVjdGluZyBhIEdEZXN0cm95Tm90aWZ5IGZvciB3aGVuIHRoZSBjYWxsYmFjayBpcyByZW1vdmVkL3JlcGxhY2VkLgoJICBQYXJ0aWFsbHkgZml4ZXMgIzUxNDcxNwoKMjAwOS0wMi0yMiAxOTowNToyMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgSW5jbHVkZSBmbG9hdGluZyBwb2ludCB3cml0ZS9yZWFkIGZ1bmN0aW9ucyBpbiB0aGUgZG9jcyBieSB3b3JraW5nIGFyb3VuZCBhIGd0ay1kb2MgYnVnCgoyMDA5LTAyLTIyIDE4OjUzOjEwICswMTAwICBBbGkgU2FiaWwgPGFsaS5zYWJpbEBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIFVzZSB0aGUgY29ycmVjdCB1bnJlZiBmdW5jdGlvbgoKMjAwOS0wMi0yMiAxODo1MTowOCArMDEwMCAgQWxpIFNhYmlsIDxhbGkuc2FiaWxAZ21haWwuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIENvbnZlcnQgdW5yZWYvY29weSBmdW5jdGlvbnMgb2YgR3N0TWluaU9iamVjdCBzdWJjbGFzc2VzIHRvIHN0YXRpYyBpbmxpbmUgZnVuY3Rpb25zCgkgIHVucmVmIGFuZCBjb3B5IGZ1bmN0aW9ucyBhcmUgc29tZXRpbWVzIHVzZWQgYXMgZnVuY3Rpb24KCSAgcG9pbnRlcnMgZm9yIGV4YW1wbGUgaW4gdGhlIGNhc2Ugb2YgZ19oYXNoX3RhYmxlX25ld19mdWxsCgkgIGFzIGEgR0Rlc3Ryb3lOb3RpZnkgZnVuY3Rpb24uCgkgIEN1cnJlbnRseSBHc3RCdWZmZXIsIEdzdEV2ZW50LCBHc3RNZXNzYWdlIGFuZCBHc3RRdWVyeQoJICBkZWZpbmUgdGhlaXIgcmVzcGVjdGl2ZSB1bnJlZiBhbmQgY29weSBmdW5jdGlvbnMgYXMKCSAgbWFjcm9zLCBtYWtpbmcgdXNlIG9mIGdzdF9taW5pX29iamVjdF91bnJlZi9jb3B5LgoJICBUaGlzIGFwcHJvYWNoIHdvcmtzIHZlcnkgd2VsbCBmb3IgbW9zdCBjYXNlcywgZXhjZXB0CgkgIGZvciBzb21lIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJpbmRpbmdzIChjdXJyZW50bHkgVmFsYSksCgkgIHdoZXJlIHRoZSBtZW1vcnkgbWFuYWdlbWVudCBzZW1hbnRpY3MgYXJlIGRlZmluZWQKCSAgZGVjbGFyYXRpdmVseS4KCSAgVGhlIHBvc3NpYmxlIHNvbHV0aW9ucyB3b3VsZCBiZSB0byBlaXRoZXIgY29udmVydCBhbGwKCSAgdGhlIG1hY3JvcyBpbnRvIHN0YXRpYyBpbmxpbmUgZnVuY3Rpb24sIG9yIGNoYW5nZSB0aGUKCSAgc2lnbmF0dXJlIG9mIGdzdF9taW5pX29iamVjdF91bnJlZiB0byB0YWtlIGEgdm9pZCoKCSAgaW5zdGVhZCBvZiBhIEdzdE1pbmlPYmplY3QqLgoJICBGaXhlcyBidWcgIzU3MjQ4MC4KCjIwMDktMDItMjIgMTU6MjI6MTYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICBVc2Ugc2hhdmUgKGh0dHA6Ly9naXQubGVzcGlhdS5uYW1lL2NnaXQvc2hhdmUvKSB0byBzaW1wbGlmeSBidWlsZCBvdXRwdXQKCjIwMDktMDItMjIgMTU6NDQ6MzUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNWQ3YzljYyB0byA5Y2Y4YzliCgoyMDA5LTAyLTIxIDExOjEzOjMwIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gODBjNjI3ZCB0byA1ZDdjOWNjCgoyMDA5LTAyLTE5IDE4OjA1OjA3ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBHc3RCdWZmZXJGbGFnczogQWRkICJTaW5jZTogMC4xMC4yMyIgZm9yIHRoZSBuZXdseSBhZGRlZCBmbGFncwoKMjAwOS0wMi0xOSAxNjowNDo0MyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgR3N0QnVmZmVyRmxhZ3M6IEFkZCAzIG5ldyBtZWRpYS1zcGVjaWZpYyBidWZmZXIgZmxhZ3MuCgkgIFBhcnRpYWxseSBmaXhlcyAjMTYzNTc3CgoyMDA5LTAyLTE5IDEyOjU3OjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IHByaW50IG5vcm1hbCBvdXRwdXQgdG8gc3Rkb3V0LCBhbmQgb25seSBlcnJvcnMgYW5kIHdhcm5pbmdzIHRvIHN0ZGVyciBpbiBnc3QtbGF1bmNoCgkgIExldCdzIG5vdCBwcmludCBldmVyeXRoaW5nIHRvIHN0ZGVyci4gU3VwcHJlc3Mgc29tZSBtb3JlICdub3JtYWwnIG1lc3NhZ2VzIHdoZW4gLS1xdWlldCB3YXMgcGFzc2VkLgoKMjAwOS0wMi0xOSAxMjo0NTo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiB1c2UgZ19wcmludCooKSBpbnN0ZWFkIG9mICpwcmludGYoKSBpbiBnc3QtbGF1bmNoCgkgIFdlIHNob3VsZCB1c2UgR0xpYidzIGdfcHJpbnQqKCkgZnVuY3Rpb25zIGZvciBwcmludGluZyBzdHVmZiBpbiBnc3QtbGF1bmNoLCBub3QgcHJpbnRmIGFuZCBmcmllbmRzLCBzaW5jZSB3ZSdyZSBwcmludGluZwoJICB0cmFuc2xhdGVkIHN0cmluZ3MsIHdoaWNoIHdlIGdldCBpbiBVVEYtOCBlbmNvZGluZywgYW5kIEdMaWIncyBwcmludCBmdW5jdGlvbnMgZXhwZWN0IFVURi04IGVuY29kZWQgc3RyaW5ncyB3aGVyZWFzIHByaW50ZgoJICBldCBhbC4gZXhwZWN0IHN0cmluZ3MgaW4gdGhlIGxvY2FsZSBlbmNvZGluZywgd2hpY2ggbWF5IG9yIG1heSBub3QgYmUgVVRGLTguCgkgIEFsc28gYWRkIGEgUFJJTlQgY29udmVuaWVuY2UgbWFjcm8gc28gd2UgZG9uJ3QgaGF2ZSB0byBsaXR0ZXIgdGhlIGNvZGUgd2l0aCBpZiAoIXF1aWV0KSBzdGF0ZW1lbnRzLgoKMjAwOS0wMi0xOSAxMToxODowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkqIGRvY3MvcHdnL2ludHJvLWJhc2ljcy54bWw6CgkqIGRvY3MvcmFuZG9tL21pbWV0eXBlczoKCSAgZG9jczogZml4IGNvbnN0YW50cyBmb3IgR19MSVRUTEVfRU5ESUFOIGFuZCBHX0JJR19FTkRJQU4KCSAgV2UgZ290IHRoZSBjb25zdGFudHMgZm9yIEdfTElUVExFX0VORElBTiBhbmQgR19CSUdfRU5ESUFOIHRoZSB3cm9uZyB3YXkgYXJvdW5kIGluIHNvbWUgZG9jcyAoZml4ZXM6ICM1NzIzOTIpLiBBbHNvIG1lbnRpb24KCSAgR19CWVRFX09SREVSIGluIHRoZSBhdWRpbyB0eXBlcyBzZWN0aW9uLgoKMjAwOS0wMi0xOSAxMDoyNTozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IHN5bWJvbHMgdG8gZGVmIGZpbGVzCgkgIEFkZCB0aGUgbmV3IHJlcXVlc3RfbWVzc2FnZSBzeW1ib2xzIHRvIHRoZSB3aW5kb3dzIGRlZiBmaWxlLgoKMjAwOS0wMi0xOCAxNTozMTo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIEFkZCBtZXNzYWdlIHRvIHJlcXVlc3QgYSBzdGF0ZSBjaGFuZ2UKCSAgQWRkIGEgR1NUX01FU1NBR0VfUkVRVUVTVF9TVEFURSB0aGF0IGNhbiBiZSBwb3N0ZWQgYnkgZWxlbWVudCB3aGVuIHRoZXkgd291bGQKCSAgbGlrZSB0byBoYXZlIHRoZSBhcHBsaWNhdGlvbiBjaGFuZ2UgdGhlIHN0YXRlIG9mIHRoZSBwaXBlbGluZS4gdGhlIHByaW1hcnkgdXNlCgkgIGNhc2UgaXMgdG8gcGF1c2UgdGhlIHBpcGVsaW5lIHdoZW4gYW4gYXVkaW8gbWl4ZXIgaXMgbWl4aW5nIGEgaGlnaGVyIHByaW9yaXR5CgkgIHN0cmVhbSBidXQgaXQgY2FuIGFsc28gYmUgdXNlZCBmb3Igb3RoZXIgcHVycG9zZXMuCgkgIEFkZCBzb21lIGRvY3MgYW5kIGEgdW5pdCB0ZXN0LgoJICBJbXBsZW1lbnQgdGhlIFJFUVVFU1RfU1RBVEUgbWVzc2FnZSBpbiBnc3QtbGF1bmNoLgoJICBBUEk6IGdzdF9tZXNzYWdlX25ld19yZXF1ZXN0X3N0YXRlKCkKCSAgQVBJOiBnc3RfbWVzc2FnZV9wYXJzZV9yZXF1ZXN0X3N0YXRlKCkKCSAgQVBJOiBHU1RfTUVTU0FHRV9SRVFVRVNUX1NUQVRFCgoyMDA5LTAyLTE2IDEyOjU4OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBDbGVhciB0YXJnZXQgd2hlbiB0aGUgdGFyZ2V0IHBhZCBkaXNhcHBlYXJzCgkgIFdoZW4gdGhlIHRhcmdldCBwYWQgZGlzYXBwZWFycyAoYmVjYXVzZSBpdCB3YXMgZXhwbGljaXRseSB1bmxpbmtlZCBvciB0aGUKCSAgZWxlbWVudCB3YXMgcmVtb3ZlZC91bnJlZmZlZCkgbWFrZSBzdXJlIHdlIHJlY2VpdmUgYSBub3RpZnkgd2l0aCB0aGUgdW5saW5rCgkgIGZ1bmN0aW9uIG9uIHRoZSBwcm94eSBwYWQgYW5kIGNsZWFyIHRoZSB0YXJnZXQuIFdlIHVzZSBhIHNpbXBsZSBmbGFnIHRvIG5vdCBkbwoJICB0aGlzIGFuZCBjYXVzZSBkZWFkbG9ja3Mgd2hlbiB0aGUgdGFyZ2V0IHdhcyBjaGFuZ2VkIGV4cGxpY2l0bHkgdXNpbmcgdGhlCgkgIGdob3N0cGFkIGZ1bmN0aW9ucy4KCSAgVXBkYXRlIHRoZSB1bml0IHRlc3QgYmVjYXVzZSB3ZSBub3cgdW5yZWYgdGhlIHRhcmdldCBzb29uZXIgKGFuZCBjb3JyZWN0bHkpLgoKMjAwOS0wMi0xNSAxNjozNzoxNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgIGRvY3M6IGZvcm1hdCBhbmQgaW5kZW50IGV4YW1wbGVzLgoKMjAwOS0wMi0wOSAyMjo0OTowNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGFkZCAtcS8tLXF1aWV0IG9wdGlvbiB0byBzdXByZXNzIGFueSBub24gZXJyb3Igb3V0cHV0LgoJICBIYXZpbmcgbm8gb3V0cHV0IGlzIG5pY2UgZm9yIHNjcmlwdGluZy4gQWxzbyB1cGRhdGUgdGhlIG1hbnBhZ2UuCgoyMDA5LTAyLTE0IDEzOjM1OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOgoJKiBkb2NzL2ZhcS9mYXEueG1sOgoJKiBkb2NzL2ZhcS9nZXR0aW5nLnhtbDoKCSogZG9jcy9mYXEvZ2l0LnhtbDoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJKiBkb2NzL2ZhcS9zdGFydC54bWw6CgkqIGRvY3MvZmFxL3Ryb3VibGVzaG9vdGluZy54bWw6CgkqIGRvY3MvZmFxL3VzaW5nLnhtbDoKCSAgRkFROiB1cGRhdGUgZm9yIGdpdCBhbmQgbWlzY2VsbGFuZW91cyBzbWFsbCBmaXhlcyBhbmQgYWRkaXRpb25zCgkgIFJlcGxhY2UgYWxsIG1lbnRpb25zIG9mIENWUyB3aXRoIGdpdC4gQWRkIGxpbmsgdG8gZ3N0LXVuaW5zdGFsbGVkIHNjcmlwdCBpbiBjZ2l0IGFuZCB0byBTdWJtaXR0aW5nUGF0Y2hlcyBwYWdlIGluIHdpa2kuIEZpeCBzb21lIHR5cG9zLiBVcGRhdGUgaW5kZW50aW5nIHJ1bGVzIHRvIHdoYXQgd2UgYWN0dWFsbHkgdXNlICgjNTcxNjQ2KS4KCjIwMDktMDItMTMgMTY6MTc6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgKi5wbyBmaWxlcyBmb3IgbmV3bHktYWRkZWQgdHJhbnNsYXRhYmxlIHN0cmluZ3MKCSAgVGhlIG9ubHkgcGVvcGxlIHdobyBzaG91bGQgZ2V0IGNvbmZsaWN0cyBub3cgYXJlIHBlb3BsZSB3aG8gaGF2ZSBjbG9uZWQgYW5kIGJ1aWx0IGdzdHJlYW1lciBiZXR3ZWVuIHRoZSB0aW1lIHRob3NlIHN0cmluZ3MKCSAgd2VyZSBhZGRlZCBhbmQgdGhpcyBjb21taXQuCgoyMDA5LTAyLTEyIDEwOjM4OjA1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IEFQSTogQWRkIEhPTUVQQUdFIHRhZwoJICBUaGlzIHRhZyB3aWxsIGxpc3QgYSBob21lcGFnZSBmb3IgdGhlIG1lZGlhLAoJICBpLmUuIHRoZSBhcnRpc3QncyBvciBtb3ZpZSdzIGhvbWVwYWdlLgoJICBUaGlzIGlzIGRpZmZlcmVudCB0byBHU1RfVEFHX0xPQ0FUSU9OIGFzIHRoZSBsYXR0ZXIKCSAgbGlzdHMgdGhlIG9yaWdpbmFsIGxvY2F0aW9uIG9mIHRoZSBtZWRpYS4KCSAgRml4ZXMgYnVnICM1NzEyMjcuCgoyMDA5LTAyLTA5IDEyOjAwOjQzICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBCdW1wIHJldmlzaW9uIHRvIHVzZSBmb3IgY29tbW9uIHN1Ym1vZHVsZS4KCjIwMDktMDItMDggMTA6Mjg6MTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0dmVyc2lvbi5oLmluOgoJICBSZXBsYWNlIHNvbWUgbWVudGlvbnMgb2YgQ1ZTIGJ5IEdJVAoKMjAwOS0wMi0wNiAxMDo1MToyOCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGJpbmFyeSByZWdpc3RyeTogUmV3cml0ZSBzYW5pdHkgY2hlY2sgdG8gYWN0dWFseSBjYXRjaCBzb21ldGhpbmcuCgkgIFRoZSBwcmV2aW91cyBjb21taXQgd2FzIGJvZ3VzLCBhcyB3YXMgdGhlIGNoZWNrIGJlZm9yZS4gV2UganVzdCBwb2ludCBtIHRvIHRoZSBmaWxlIGRhdGEsCgkgIHNvIG5laXRoZXIgaXQgbm9yIGl0cyBtZW1iZXJzIHdpbGwgYmUgTlVMTC4gQmV0dGVyIGNoZWNrIGlmIHdlIGhhdmUgZW5vdWdoIGRhdGEuCgoyMDA5LTAyLTA1IDIzOjExOjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL01ha2V2YXJzOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IGF2b2lkIGNvbmZsaWN0cyBvZiBsb2NhbCAqLnBvIGZpbGVzIHdpdGggZmlsZXMgaW4gZ2l0CgkgIE1ha2UgaXQgc28gdGhhdCBmaWxlbmFtZXMgYW5kIGxpbmUgbnVtYmVycyBhcmUgb25seSBzdG9yZWQgaW4gdGhlICoucG90IGZpbGUgKHdoaWNoIGlzIG5vdCBpbiBnaXQpLCBidXQgbm90IGluIHRoZQoJICBpbmRpdmlkdWFsICoucG8gZmlsZXMuIFRoaXMgaW5mb3JtYXRpb24gaXMgaGFyZGx5IHVzZWZ1bCBmb3IgdHJhbnNsYXRvcnMgaW4gb3VyIGNhc2UsIGFuZCBpdCBzaG91bGQgYXZvaWQgdGhlIGNvbnN0YW50CgkgIGNvbmZsaWN0cyBvZiBsb2NhbCAqLnBvIGZpbGVzIHdpdGggdGhlIG9uZXMgaW4gZ2l0IHdoaWNoIGFyZSBjYXVzZWQgYnkgdGhlIHNvdXJjZSBmaWxlcyBjaGFuZ2luZyBhbmQgdGhlIGxpbmUgbnVtYmVycwoJICBiZWluZyB1cGRhdGVkLgoJICBUaGlzIGNvbW1pdCBpcyBsaWtlbHkgdG8gY2F1c2Ugb25lIGxhc3QgbWVyZ2UgY29uZmxpY3QgZm9yIHlvdSwgd2hpY2ggeW91IGNhbiB3b3JrIGFyb3VuZCB3aXRoICJnaXQgY2hlY2tvdXQgcG8vKi5wbyIKCSAgYmVmb3JlIG1lcmdpbmcgb3IgcHVsbGluZy4gQWZ0ZXIgdGhhdCB0aGVyZSBzaG91bGQgKGhvcGVmdWxseSkgbm90IGJlIGFueSBtb3JlIGxvY2FsIG1vZGlmaWNhdGlvbnMgb2YgdGhlc2UgZmlsZXMuCgoyMDA5LTAyLTA1IDE1OjIyOjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogYWRkIG5ldyBHc3RQb2xsIEFQSSB0byBsaWJnc3RyZWFtZXIuZGVmCgoyMDA5LTAyLTA1IDE3OjIzOjQ0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgY2xlYW51cDogcmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMgaW4gX2NsYXNzX2luaXQoKSBhbmQgcmVpbmRlbnQuCgoyMDA5LTAyLTA1IDE3OjA1OjU2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogcmVtb3ZlIHVudXNlZCBzZXQvZ2V0IHByb3BlcnR5IGZ1bmN0aW9ucwoKMjAwOS0wMi0wNSAxNTo1NjoxOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGJpbmFyeSByZWdpc3RyeTogY29tcGFyaW5nIGFycmF5cyBhZ2FpbnN0IE5VTEwgaXMgdXNlbGVzcwoKMjAwOS0wMi0wNSAxMzo1OTo0OCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogcmVtb3ZlIHVudXNlZCBjb2RlCgkgIFNraXAgbG9vcGluZyB0aHJ1IGEgZHVtbXkgaW1wbGVtZW50YXRpb24uCgoyMDA5LTAyLTA1IDEzOjU3OjA1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgdGVzdHM6IEdzdENsb2NrVGltZSBpcyBhbHdheXMgPj0gMAoKMjAwOS0wMi0wNSAxMzo0MjozMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSAgY29udHJvbGxlcjogcmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKMjAwOS0wMi0wNCAxNzoyMDoyMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGNsZWFudXA6IEVpdGhlciBjaGVjayBhbHdheXMgZm9yIGludGVybmFsIGJlaW5nIE5VTEwgb3IgZG9uJ3QuCgkgIElNSE8gdGhlIGdob3N0cGFkIGlzIGJvcmtlZCBpZiBpbnRlcm5hbCBpcyBOVUxMLiBTbyB0aGUgY2hlY2sgY2FuIGdvIGFuZCBpdCBpcwoJICB1c2VkIGxhdGVyIHVuY2hlY2tlZCBhbnl3YXkuCgoyMDA5LTAyLTA0IDE2OjI2OjIzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBjcmFzaDogRG9uJ3QgY3Jhc2ggb24gbm9uIGV4aXN0ZW50IHRhZ3MuCgoyMDA5LTAyLTA0IDE2OjE3OjM0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgbGVhazogRG9uJ3QgbGVhayB0eXBlIG5hbWUgaW4gZmFpbHVyZSBjYXNlcy4KCjIwMDktMDItMDQgMTY6MDc6MzAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBEb24ndCBhc3N1bWUgZ3N0X3BhZF9nZXRfcGVlciByZXR1cm5zIG5vbiBOVUxMIHZhbHVlLgoKMjAwOS0wMi0wNCAxNTo0MToyNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGxlYWs6IGRvbid0IHJldHVybiB3aXRob3V0IGNhbGxpbmcgdmFfZW5kCgoyMDA5LTAyLTAzIDE4OjA0OjQ2ICswMTAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmdAYXhpcy5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJICBJbXBsZW1lbnQgdGhlIHN5c3RlbWNsb2NrIHdpdGggZ3N0cG9sbAoJICBBZGQgYSBwcm9wZXJ0eSB0byBzZWxlY3QgdGhlIGNsb2NrIHR5cGUsIGN1cnJlbnRseSBSRUFMVElNRSBhbmQgTU9OT1RPTklDIHdoZW4KCSAgcG9zaXggdGltZXJzIGFyZSBhdmFpbGFibGUuCgkgIEltcGxlbWVudCB0aGUgc3lzdGVtY2xvY2sgd2l0aCBHc3RQb2xsIGluc3RlYWQgb2YgR0NvbmQuIFRoaXMgYWxsb3dzIHVzIHRvCgkgIHNjaGVkdWxlIHRpbWVvdXRzIHdpdGggbmFub3NlY29uZCBwcmVjaXNzaW9uIG9uIG5ld2VyIGtlcm5lbHMgYW5kIHdpdGggcHBvbGwKCSAgc3VwcG9ydC4gSXQncyBhbHNvIHJlc2lsaWVudCB0byBjaGFuZ2VzIHRvIHRoZSBzeXN0ZW1jbG9jayBiZWNhdXNlIG9mIE5UUCBvcgoJICBzaW1pbGFyLgoKMjAwOS0wMi0wMyAxNzo0OTowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGdzdC9nc3Rwb2xsLmg6CgkgIEdzdFBvbGw6IGFkZCBtZXRob2RzIHRvIHVzZSBnc3Rwb2xsIGZvciB0aW1lb3V0cwoJICBBZGQgYSBzcGVjaWFsIHRpbWVyIG1vZGUgaW4gR3N0UG9sbCB0aGF0IG1ha2VzIGl0IG9ubHkgdXNlIHRoZSBjb250cm9sIHNvY2tldAoJICB3aXRoIGEgdGltZW91dCB0byBzY2hlZHVsZSB0aW1lb3V0cy4gQWxzbyBhZGQgYSBwYWlyIG9mIG1ldGhvZHMgdG8gd2FrZXVwIHRoZQoJICB0aW1lb3V0IHRocmVhZC4KCSAgQVBJOiBHc3RQb2xsOjpnc3RfcG9sbF9uZXdfdGltZXIoKQoJICBBUEk6IEdzdFBvbGw6OmdzdF9wb2xsX3dyaXRlX2NvbnRyb2woKQoJICBBUEk6IEdzdFBvbGw6OmdzdF9wb2xsX3JlYWRfY29udHJvbCgpCgoyMDA5LTAyLTAzIDE1OjI3OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBHc3RCYXNlU2luazogdXNlIG5ldyB2YXJpYWJsZSB0byBzY2hlZHVsZSBwcmVyb2xsCgkgIFVzZSBhIHNlcGFyYXRlIHZhcmlhYmxlIHRvIGtlZXAgdHJhY2sgaWYgd2UgbmVlZCB0byBjYWxsIHRoZSBwcmVyb2xsIG1ldGhvZAoJICBpbnN0ZWFkIG9mIGFidXNpbmcgdGhlIGNvbW1pdGVkIHZhcmlhYmxlLgoKMjAwOS0wMi0wMyAxMjo1Mjo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSAgR3N0QmFzZVNpbms6IGF2b2lkIGNhbGxpbmcgcHJlcm9sbCBtdWx0aXBsZSB0aW1lcwoJICBGaXggYSByZWdyZXNzaW9uIGludHJvZHVjZWQgYnkgZml4IGZvciAjNTY3NzI1IGluIGNvbW1pdAoJICAxYzdhYjRlZDRmMTliNjNiYTA0NmE2ZjJmZTdkMDlhNmMxNzM1N2M1LiBXZSBzaG91bGQgb25seSBjYWxsIHRoZSBwcmVyb2xsCgkgIGZ1bmN0aW9uIG9uY2UgbmFtZWx5IHdoZW4gd2UgZGlkIG5vdCB5ZXQgY29tbWl0IHRoZSBzdGF0ZSBjaGFuZ2UuCgkgIEFkZCBhIHVuaXQgdGVzdCB0byBjaGVjayB0aGF0IHdlIGNhbGwgdGhlIHByZXJvbGwgZnVuY3Rpb24gd2hlbiBpbnRlcnJ1cHRpbmcgdGhlCgkgIGNsb2NrX3dhaXQgKHNlZSAjNTY3NzI1KS4KCSAgQWRkIGEgdW5pdCB0ZXN0IHRvIGNoZWNrIHRoYXQgd2Ugb25seSBjYWxsIHRoZSBwcmVyb2xsIGZ1bmN0aW9uIG9uY2UuCgoyMDA5LTAxLTI5IDEzOjMwOjQ1ICswMTAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIEZvcmNlIHJlY29uZmlndXJlIG9mIGJhc2V0cmFuc2Zvcm0gdG8gcmVjaGVjayBhbGxvYyByZXF1ZXN0CgkgIFdoaWxlIHJlY29uZmlndXJpbmcgYSBiYXNldHJhbnNmb3JtIGVsZW1lbnQgd2UgbmVlZCBhbHNvIHRvIHJlY2hlY2sKCSAgdGhlIGFsbG9jIHJlcXVlc3QuIEJlY2F1c2UgaXQncyBwb3NzaWJsZSB0aGF0IGR1ZSB0byBjYXBzIGNoYW5nZXMKCSAgdGhlIHByb3h5X2FsbG9jIHN0YXRlIGlzIG5vdCBjb3JyZWN0IGFueW1vcmUuCgkgIChSZS1jb21taXQgYWZ0ZXIgZGlzY3VzaW9uIHdpdGggV2ltIG9uIElSQykKCjIwMDktMDItMDIgMTQ6MTk6NTcgKzAxMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGdzdHJlZ2lzdHJ5YmluYXJ5OiBNYWtlIGl0IGNvbXBpbGUgd2l0aCBHU1RfRElTQUJMRV9HU1RfREVCVUcuCgoyMDA5LTAxLTMxIDIxOjM0OjI4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBkb2NzLy5naXRpZ25vcmU6CgkqIGRvY3MvbGlicy90bXBsLy5naXRpZ25vcmU6CgkqIGRvY3MvcGx1Z2lucy90bXBsLy5naXRpZ25vcmU6CgkgIHJlcG86IFJlYXJyYW5nZSBnaXRpZ25vcmVzIGluIGRvY3Mgc3ViZGlyCgkgIHRtcGwgZGlyZWN0b3JpZXMgYXJlIHJlbW92ZWQgYnkgbWFrZSBjbGVhbiwgd2hpY2ggZGVsZXRlcyB0aGUKCSAgLmdpdGlnbm9yZS4gVXNlIGEgLmdpdGlnbm9yZSBoaWdoZXIgdXAgdG8gaWdub3JlIHRoZSB0bXBsIGRpcnMgaW5zdGVhZC4KCjIwMDktMDEtMzEgMjE6MzI6MzYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzoKCSAgY2hlY2s6IEZpeCBjb21tZW50IGFib3V0IHRoZSB0aW1lb3V0IGZvciBnZW5lcmljIHN0cmVzcyB0ZXN0LgoJICBTZXR0aW5nIHRoZSB0aW1lb3V0IHRvIDAgbWFrZXMgaXQgaW5maW5pdGUsIHNvIGZpeCB0aGUgY29tbWVudAoJICBhYm92ZSBhY2NvcmRpbmdseS4KCjIwMDktMDEtMzEgMjE6MzE6NDggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJICBjaGVjazogSW5jcmVhc2UgdGltZW91dCBmb3IgdGhlIHRlZSB0ZXN0CgkgIFRoZSB0ZWUgc3RyZXNzIHRlc3Qga2VlcHMgdGltaW5nIG91dCBmb3IgbWUgb24gb25lIG9mIHRoZSBzbG93ZXIKCSAgbWFjaGluZXMsIHNvIGluY3JlYXNlIHRoZSB0aW1lb3V0IHRvIDMgbWlucy4KCjIwMDktMDEtMzAgMTQ6NTY6MDggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgVXBkYXRlIHRoZSB3aW4zMiBjb25maWcuaC5pbiB0ZW1wbGF0ZSBmcm9tIHRoZSBtYWluIGNvbmZpZy5oLmluCgoyMDA5LTAxLTMwIDIyOjE4OjE3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJICBBZGQgcmVsZWFzZWluZm8gd2l0aCBvbmxpbmUgdXJsLgoKMjAwOS0wMS0zMCAxODoxNzowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW50ZXJmYWNlLmg6CgkqIGdzdC9nc3R1cmkuaDoKCSAgUmVtb3ZlIGJyb2tlbiBjbGFzcyB0byBpbnRlcmZhY2UgY2FzdCBtYWNyb3MgZnJvbSBHc3RVcmlIYW5kbGVyIGFuZCBHc3RJbXBsZW1lbnRzSW50ZXJmYWNlIGhlYWRlcnMKCSAgUmVtb3ZlIGNsYXNzLXRvLWludGVyZmFjZS1zdHJ1Y3QgY2FzdCBtYWNyb3Mgd2hpY2ggZG9uJ3Qgd29yaywKCSAgZG9uJ3QgbWFrZSBzZW5zZSwgYW5kIGluIHNvbWUgY2FzZXMgd291bGRuJ3QgZXZlbiBjb21waWxlIGlmCgkgIHVzZWQuIFJlbW92YWwgc2hvdWxkIGJlIG9rIHNlZWluZyB0aGF0IGNvZGUgd2hpY2ggdXNlcyBhbnkgb2YKCSAgdGhlc2UgaXMgYnJva2VuIGFuZCBib3VuZCB0byBjcmFzaC4gRml4ZXMgIzU2NTYwNy4KCSAgQVBJOiByZW1vdmUgR1NUX0lNUExFTUVOVFNfSU5URVJGQUNFX0NMQVNTCgkgIEFQSTogcmVtb3ZlIEdTVF9JU19JTVBMRU1FTlRTX0lOVEVSRkFDRV9DTEFTUwoJICBBUEk6IHJlbW92ZSBHU1RfVVJJX0hBTkRMRVJfQ0xBU1MKCjIwMDktMDEtMzAgMTY6Mjg6MTQgKzAwMDAgIEphbiBTY2htaWR0IDxqYW4uc2NobWlkdEBzdW4uY29tPgoKCSogZG9jcy9nc3QvdG1wbC8uZ2l0aWdub3JlOgoJICBSZW1vdmUgZ2l0aWdub3JlIGluIGRvY3MvZ3N0L3RtcGwuCgkgIFRoaXMgZ2l0aWdub3JlIGZpbGUgc2VlbXMgdG8gZ2V0IGRlbGV0ZWQgYnkgdGhlIGJ1aWxkLCBhbmQgZG9lc24ndAoJICBzZWVtIHRvIGJlIGRvaW5nIGFueXRoaW5nIHVzZWZ1bCBhbnl3YXkuCgoyMDA5LTAxLTMwIDE2OjIxOjU1ICswMDAwICBKYW4gU2NobWlkdCA8amFuLnNjaG1pZHRAc3VuLmNvbT4KCgkqIGNvbW1vbjoKCSAgQnVtcCBjb21tb24KCjIwMDktMDEtMzAgMTQ6NTk6MDcgKzAwMDAgIEphbiBTY2htaWR0IC0gU3VuIE1pY3Jvc3lzdGVtcyAtIER1YmxpbiBJcmVsYW5kIDxqczIxMjQxOUBmbGFpbC4obm9uZSk+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgRml4IGNvbXBpbGF0aW9uIHdhcm5pbmcgd2l0aCBGb3J0ZS4KCjIwMDktMDEtMzAgMTA6NDM6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgUmV2ZXJ0ICJDaGVjayBzdWdnZXN0ZWQgY2FwcyBmb3IgcHJveHkgYWxsb2MiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNTBhZmQ0NTk1NzkxOTE3NzJmNDJkMWE0NGYzOTU5ZTUzMGM1YzI2OS4KCSAgSXQgYnJlYWtzIHRoZSBpbnRlcmFjdGl2ZSB0ZXN0LXNjYWxlIHVuaXQgdGVzdC4KCjIwMDktMDEtMzAgMTA6NDI6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgUmV2ZXJ0ICJGb3JjZSByZWNvbmZpZ3VyZSBvZiBiYXNldHJhbnNmb3JtIHRvIHJlY2hlY2sgYWxsb2MgcmVxdWVzdCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAzYTQ2MDJkNzcxOWRlM2MzZWY3YWVjZTY4YjVmOTQ4OWQwNzgwMTYyLgoJICBJdCBicmVha3MgdGhlIGludGVyYWN0aXZlIHRlc3Qtc2NhbGUgdW5pdCB0ZXN0LgoKMjAwOS0wMS0zMCAxMDoyOTo1NiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgQWxsb2NhdGUgZXZlcnl0aGluZyB0aGF0IGlzIHdyaXR0ZW4gdG8gdGhlIHJlZ2lzdHJ5IHdpdGggZ19tYWxsb2MwKCkKCSAgQWxsb2NhdGUgZXZlcnkgc3RydWN0dXJlIHRoYXQgaXMgZGlyZWN0bHkgd3JpdHRlbiB0byB0aGUgYmluYXJ5CgkgIHJlZ2lzdHJ5IHdpdGggZ19tYWxsb2MwKCkuIE90aGVyd2lzZSBzb21lIHBhcnRzIG9mIGl0IHdpbGwgYmUKCSAgdW5pbml0aWFsaXplZCAoc3RydWN0IHBhZGRpbmcgYmVjYXVzZSBvZiBhbGlnbm1lbnQsIGV0YykgYW5kCgkgIHZhbGdyaW5kIHdpbGwgY29tcGxhaW4gYWJvdXQgaXQuCgoyMDA5LTAxLTMwIDA4OjMwOjI4ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJICBVc2UgYSBzeW1ib2xpYyBsaW5rIGZvciB0aGUgcHJlLWNvbW1pdCBjbGllbnQtc2lkZSBob29rCgoyMDA5LTAxLTI5IDE1OjQ5OjI0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgTWFrZSBzdXJlIHRvIHRha2UgYSBjb3B5IG9mIHRoZSBzdHJpbmdzIHdlJ3JlIGdvaW5nIHRvIGZyZWUgbGF0ZXIuCgoyMDA5LTAxLTI2IDE3OjE1OjE1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIEFkZCBsb2dnaW5nIGluIGZhaWx1cmUgY2FzZS4gQWRkIG1vcmUgZGV0YWlscyB0byBhIHRvZG8gY29tbWVudC4KCjIwMDktMDEtMjYgMTc6MTQ6MDcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2JlbmNobWFya3MvaW5pdC5jOgoJICBBZGQgYSB0cml2aWFsIHNvdXJjZSBmb3IgdHJhY2tpbmcgZ3N0X2luaXQgdGltZSBhY2Nyb3NzIHZlcnNpb25zLgoKMjAwOS0wMS0yNiAxNzoxMzowOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIEFkZCB0b2RvIGNvbW1lbnRzLgoKMjAwOS0wMS0yOSAxMzozOToyOSArMDEwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBDaGVjayBzdWdnZXN0ZWQgY2FwcyBmb3IgcHJveHkgYWxsb2MKCSAgQmVjYXVzZSB3ZSBhcmUgdHJ5aW5nIHRvIHJlc29sdmUgYSBzdWdnZXN0aW9uIGhlcmUgd2UgZG9uJ3QgbmVlZAoJICB0byBjaGVjayBvbiBjYXBzIGZvciBwcm94eV9hbGxvYyBidXQgd2UgbmVlZCB0byBjaGVjayBvbiB0aGUgc3VnZ2VzdGVkCgkgIGNhcHMgaW5zdGVhZC4KCjIwMDktMDEtMjkgMTM6MzA6NDUgKzAxMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgRm9yY2UgcmVjb25maWd1cmUgb2YgYmFzZXRyYW5zZm9ybSB0byByZWNoZWNrIGFsbG9jIHJlcXVlc3QKCSAgV2hpbGUgcmVjb25maWd1cmluZyBhIGJhc2V0cmFuc2Zvcm0gZWxlbWVudCB3ZSBuZWVkIGFsc28gdG8gcmVjaGVjawoJICB0aGUgYWxsb2MgcmVxdWVzdC4gQmVjYXVzZSBpdCdzIHBvc3NpYmxlIHRoYXQgZHVlIHRvIGNhcHMgY2hhbmdlcwoJICB0aGUgcHJveHlfYWxsb2Mgc3RhdGUgaXMgbm90IGNvcnJlY3QgYW55bW9yZS4KCjIwMDktMDEtMjcgMjM6MTQ6NDkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBJbXByb3ZlIHRoZSBkb2NzIGZvciBnc3RfY2xvY2tfaWRfd2FpdF9hc3luYygpLgoJICBJdHMgbWVudGlvbmVkIGluIHRoZSBzZWN0aW9uIGRvY3MsIGJ1dCBsZXRzIHJlcGVhdCBhdCB0aGUgZnVuY3Rpb24gZG9jcyB0aGF0IHRoZSBjYWxsYmFjayBjYW4gYmUgaW52b2tlZCBmcm9tIGFueSB0aHJlYWQuCgoyMDA5LTAxLTI3IDE3OjUzOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIGRvY3M6IGRvbid0IHVzZSBFUlJPUl9DRkxBR1Mgd2hlbiBidWlsZGluZyAkZG9jbW9kdWxlLXNjYW4uYwoJICBXZSBkb24ndCB3YW50IHRvIHVzZSAtV2FsbCAtV2Vycm9yIGFuZCBmcmllbmRzIHdoZW4gYnVpbGRpbmcgdGhlIGd0ay1kb2MtZ2VuZXJhdGVkCgkgICRkb2Ntb2R1bGUtc2Nhbi5jLCBzaW5jZSB3ZSBjYW4ndCBlYXNpbHkgZml4IHN0dWZmIGlmIGEgY2VydGFpbiBndGstZG9jL2NvbXBpbGVyCgkgIGNvbWJpbmF0aW9uIGJyZWFrcyB0aGUgYnVpbGQuIEZpeGVzIGJ1aWxkIG9uIHVidW50dSBpbnRyZXBpZC4KCjIwMDktMDEtMjcgMTc6NTI6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogLmdpdGlnbm9yZToKCSAgTWFrZSBnaXQgaWdub3JlIGJhY2t1cCBmaWxlcy4KCjIwMDktMDEtMjYgMjE6Mjk6MDIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkgIERvbid0IGNoZWNrIHRpbWVzdGFtcCBoZXJlLCBpdHMgZG9uZSBpbiB0aGUgY2FsbGVkIGZ1bmN0aW9uIGFueXdheS4KCjIwMDktMDEtMjYgMTI6NTI6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBBdm9pZCB1bm5lZWRlZCByZWFkcyBmcm9tIHRoZSBjb250cm9sIHNvY2tldAoJICBBZGQgYSBuZXcgdmFyaWFibGUgdGhhdCBrZWVwcyB0cmFjayBvZiB0aGUgc3RhdHVzIG9mIHRoZSBjb250cm9sIHNvY2tldC4gVGhpcwoJICBhbGxvd3MgdXMgdG8gYXZvaWQgZG9pbmcgYSByZWFkKCkgb24gdGhlIGNvbnRyb2wgc29ja2V0IHdoZW4gd2UgZGlkIG5vdCB3cml0ZQoJICBhbnl0aGluZyB0byBpdC4KCSAgRml4ZXMgIzU2ODQzOC4KCjIwMDktMDEtMjUgMjI6MTc6MzEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBBZGQgbW9yZSBkZWJ1ZyBsb2dnaW5nIGZvciBmYWlsdXJlIGNhc2VzLgoKMjAwOS0wMS0yNSAyMjoxMTozMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBEb2N1bWVudCB0aGF0IEdTVF9QTFVHSU5fREVGSU5FIG1hY3JvcyB1c2UgUEFDS0FHRSBkZWZpbmUuIEZpeGVzICM1NTk3MjIuCgkgIFBBQ0tBR0UgaXMgZGVmaW5lZCBieSBhdXRvZm9vLiBJZiBwZW9wbGUgdXNlIHNvbWV0aGluZyBkaWZmZXJlbnQsIHRoZXkgbWlnaHQgd2FudCB0byBkZWZpbmUgaXQgdGhlbXNlbGYuCgoyMDA5LTAxLTI1IDE3OjU4OjUyICswMTAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIEZpeCB0eXBvCgoyMDA5LTAxLTI0IDIxOjUwOjA4ICswMTAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgT25seSBmcmVlIGxpc3Qgb2YgYnVmZmVycyBvbmNlCgoyMDA5LTAxLTI0IDE0OjM3OjE0ICswMTAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogZG9jcy9SRUFETUU6CgkgIEZpeCB0eXBvCgoyMDA5LTAxLTIzIDIzOjA4OjAzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBwby8uZ2l0aWdub3JlOgoJICBJZ25vcmUgYW5vdGhlciBmaWxlCgoyMDA5LTAxLTIzIDIxOjQ0OjExICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGFkZCBnc3RfdHlwZV9maW5kX2hlbHBlcl9mb3JfZXh0ZW5zaW9uIHRvIHRoZSB3aW4zMiBkZWZzIGZpbGUKCjIwMDktMDEtMjMgMTY6MDk6MzUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgVXBkYXRlIHdpbjMyIGNvbmZpZy5oIGZvciAwLjEwLjIyLjEgZGV2IGN5Y2xlLi4uCgoyMDA5LTAxLTIzIDE2OjA4OjA5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiAuZ2l0aWdub3JlOgoJKiBkb2NzL2dzdC8uZ2l0aWdub3JlOgoJKiBkb2NzL2xpYnMvLmdpdGlnbm9yZToKCSogZG9jcy9saWJzL3RtcGwvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvYmFzZS8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9jaGVjay8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9uZXQvLmdpdGlnbm9yZToKCSogcGx1Z2lucy9pbmRleGVycy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkgIFVwZGF0ZSBhIGJ1bmNoIG9mIGdpdGlnbm9yZXMgdG8gY2xlYW4gdXAgbXkgZ2l0IHN0YXR1cyBvdXRwdXQKCjIwMDktMDEtMjMgMDk6NTQ6NTMgKzAxMDAgIEJyaWFuIENhbWVyb24gPGJyaWFuLmNhbWVyb25Ac3VuLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBGaXggbGlua2luZyBmYWlsdXJlcyBvbiBTb2xhcmlzLiBGaXhlcyBidWcgIzU2ODQ4MS4KCSAgTGluayBsaWJnc3RyZWFtZXIgd2l0aCAkKExJQk0pIGFzIGl0IHVzZXMgbWF0aCBmdW5jdGlvbnMuCgkgIEFkZCBhIGNvbmZpZ3VyZSBjaGVjayBmb3Igc29ja2V0IGFuZCBuc2wgbGlicmFyeSBhbmQgYWRkCgkgIHRoZW0gdG8gTElCUyBpZiB0aGV5J3JlIGZvdW5kLiBUaGlzIGlzIG5lZWRlZCBvbiBTb2xhcmlzCgkgIGZvciBzb2NrZXQoKSBhbmQgZ2V0aG9zdGJ5bmFtZSgpLgoKMjAwOS0wMS0yMiAxODowMjoxOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBVcGRhdGUgY29tbW9uIHNuYXBzaG90LgoKMjAwOS0wMS0yMiAxMzo1ODo1NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIEltcHJvdmUgZGVidWcgb3V0cHV0IGJ5IGxvZ2dpbmcgdGhlIG9mZnNldHMuIEZpeGVzIGJ1ZyAjNTY4Njc4LgoJICBJbiBjcmVhdGUoKSBhbHNvIGxvZyB0aGUgb2Zmc2V0cyBhbmQgbm90IG9ubHkgdGhlCgkgIGJ1ZmZlciBzaXplLgoKMjAwOS0wMS0yMiAxMzo1MTowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogY29tbW9uOgoJICBGaXggcHJlLWNvbW1pdCBob29rCgoyMDA5LTAxLTIyIDEyOjUyOjUwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIG9mIHNzaDovL2dpdC5mcmVlZGVza3RvcC5vcmcvZ2l0L2dzdHJlYW1lci9nc3RyZWFtZXIKCjIwMDktMDEtMjIgMTE6NTQ6NDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBZGQgRG9jIGZvciBuZXcgdHlwZWZpbmQgbWV0aG9kLgoKMjAwOS0wMS0yMiAxMDo0NTo1OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50IC0+IDAuMTAuMjIuMQoKMjAwOS0wMS0yMiAxMDoxNjowMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBvZiBzc2g6Ly9naXQuZnJlZWRlc2t0b3Aub3JnL2dpdC9nc3RyZWFtZXIvZ3N0cmVhbWVyCgoyMDA5LTAxLTIyIDA1OjM1OjAyICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJICBJbnN0YWxsIGFuZCB1c2UgcHJlLWNvbW1pdCBpbmRlbnRhdGlvbiBob29rIGZyb20gY29tbW9uCgoyMDA5LTAxLTIxIDEyOjUwOjI5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgSWYgbm8gdHlwZSB3YXMgZm91bmQgdXNpbmcgdGhlIHR5cGVmaW5kIGZ1bmN0aW9ucywgdHJ5IGRvaW5nIGFuIHVwc3RyZWFtIFVSSSBxdWVyeSB0byBndWVzcyB0aGUgdHlwZSBmcm9tIHRoZSBleHRlbnNpb24uIFNlZSAjNTY2NjYxLgoKMjAwOS0wMS0yMSAxMjo0ODoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJICBBZGQgbmV3IHR5cGVmaW5nIGhlbHBlciBmdW5jdGlvbiB0byBndWVzcyB0aGUgY2FwcyBiYXNlZCBvbiB0aGUgZmlsZSBleHRlbnNpb24uIFNlZSAjNTY2NjYxLiBBUEk6IGdzdF90eXBlX2ZpbmRfaGVscGVyX2Zvcl9leHRlbnNpb24oKQoKMjAwOS0wMS0yMSAxMjo0NTo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkgIEFsbG93IGFkZGluZyBhIHR5cGVmaW5kZXIgd2l0aG91dCBhIHR5cGVmaW5kIGZ1bmN0aW9uIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgdG8gbWFwIHRoZSBjYXBzIHRvIHRoZSBleHRlbnNpb24uIFNlZSAjNTY2NjYxLgoKMjAwOS0wMS0yMSAxMjo0Mzo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgVXBkYXRlIHRoZSBsYXN0X2J1ZmZlciBleGFjdGx5IHdpdGggdGhlIGJ1ZmZlciB0aGF0IGNhdXNlZCB0aGUgcHJlcm9sbCBhbmQgYWxzbyBjYWxsIHRoZSBwcmVyb2xsIG1ldGhvZCB3aXRoIHRoYXQgcHJlcm9sbCBidWZmZXIuIEZpeGVzICM1Njc3MjUuCgoyMDA5LTAxLTIxIDEyOjIxOjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBkbyBub3QgY2FsbCB0aGUgdW5saW5rIGZ1bmN0aW9uIG9uIHRoZSB0YXJnZXQgcGFkIHdoZW4gdGhlIGdob3N0cGFkIGlzIHVubGlua2VkLiBBZGQgc29tZSB1bml0IHRlc3RzIGZvciB0aGlzIGJlaGF2aW91ci4gRml4ZXMgIzU2NjkzNi4KCjIwMDktMDEtMjEgMDQ6Mjk6MjUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBhdXRvZ2VuLnNoOgoJICBhdXRvZ2VuLnNoIDogVXNlIGdpdCBzdWJtb2R1bGUKCj09PSByZWxlYXNlIDAuMTAuMjIgPT09CgoyMDA5LTAxLTE5IDIyOjU4OjU5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuc2lnbmFsczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogcG8vTElOR1VBUzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTAuMjIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbGVhc2UgMC4xMC4yMgoKMjAwOS0wMS0xOSAyMToyMDo0MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwOS0wMS0xNyAyMTowNDo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RidXMuYzogRml4IG9yZGVyIG9mIG1lbWJlcnMgaW4gR3N0QnVzU291cmNlIHN0cnVjdHVyZSAtIHRoZSBmaXJzdCBtZW1iZXIgbXVzdCBiZSB0aGUgcGFyZW50IHN0cnVjdHVyZSBpZS4gR1NvdS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3NldF9tYWluX2NvbnRleHQpLCAoZ3N0X2J1c19jcmVhdGVfd2F0Y2gpOgoJICBGaXggb3JkZXIgb2YgbWVtYmVycyBpbiBHc3RCdXNTb3VyY2Ugc3RydWN0dXJlIC0gdGhlIGZpcnN0IG1lbWJlcgoJICBtdXN0IGJlIHRoZSBwYXJlbnQgc3RydWN0dXJlIGllLiBHU291cmNlLiBTaG91bGQgbWFrZSBidXMgc291cmNlcwoJICBhdHRhY2hlZCB0byBub24tZGVmYXVsdCBtYWluIGNvbnRleHRzIHdvcmsgaW4gYWxsIGNhc2VzIG5vdyAoaWUuCgkgIHByaW1hcmlseSBpbiBjYXNlcyB3aGVyZSB0aGUgY2FsbGJhY2sgaGFzIGEgbm9uLU5VTEwgdXNlciBkYXRhCgkgIGFyZ3VtZW50KS4gRml4ZXMgIzU2MjE3MC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6ICh0ZXN0X2N1c3RvbV9tYWluX2NvbnRleHQpOgoJICBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgYWJvdmUsIGJhc2VkIG9uIGNvZGUgYnkKCSAgSnVzdGluIEthcm5lZ2VzIDxqdXN0aW4gYXQgYWZmaW5peCBjb20+LgoKMjAwOS0wMS0xNSAxMDowNDozNyArMDAwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnQGF4aXMuY29tPgoKCSAgZ3N0L2dzdHBhZC5oOiBBIHNtYWxsIGRvY3VtZW50YXRpb24gZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEpvbmFzIEhvbG1iZXJnIDxqb25hcyBkb3QgaG9sbWJlcmcgYXQgYXhpcyBkb3QgY29tPgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgQSBzbWFsbCBkb2N1bWVudGF0aW9uIGZpeC4KCjIwMDktMDEtMTEgMDk6NDY6NTIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3R1dGlscy5oOiBJbml0aWFsaXplIGdfb25jZV9pbml0KiBkYXRhIHdpdGggMC4gRml4ZXMgYnVnICM1NjcyMjUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBJbml0aWFsaXplIGdfb25jZV9pbml0KiBkYXRhIHdpdGggMC4gRml4ZXMgYnVnICM1NjcyMjUuCgoyMDA5LTAxLTA5IDIzOjM3OjE5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogcHJlLXJlbGVhc2UgMC4xMC4yMS4zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgcHJlLXJlbGVhc2UgMC4xMC4yMS4zCgoyMDA5LTAxLTA5IDE1OjQzOjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay4qOiBGaXggZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHdhaXRfY2xvY2sgbWV0aG9kLCByZW5hbWUgYmFzZXNpbmsgLT4gc2luayBmb3IgY29uc2lzdGVuY3kuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3Npbmtfd2FpdF9jbG9jayk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBGaXggZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHdhaXRfY2xvY2sgbWV0aG9kLCByZW5hbWUgYmFzZXNpbmsgLT4gc2luawoJICBmb3IgY29uc2lzdGVuY3kuCgoyMDA5LTAxLTA4IDEzOjQxOjE5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0LmM6IENyZWF0ZSBhIHJlZ2lzdHJ5IGlmIHRoZXJlIGlzIG5vbmUgYWxzbyB3aGVuIHRoZSBvcHRpb24gZm9yIGdzdC1kaXNhYmxlLXJlZ2lzdHJ5LXVwZGF0ZSBoYXMgYmVlbiBzZWxlY3RlZC4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBDcmVhdGUgYSByZWdpc3RyeSBpZiB0aGVyZSBpcyBub25lIGFsc28gd2hlbiB0aGUgb3B0aW9uIGZvcgoJICBnc3QtZGlzYWJsZS1yZWdpc3RyeS11cGRhdGUgaGFzIGJlZW4gc2VsZWN0ZWQuIEZpeGVzICM1NjcwMDIKCjIwMDktMDEtMDYgMTg6MTA6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IFJlZiBuZXcgZW51bSB0eXBlIGluIGdzdF9pbml0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICBSZWYgbmV3IGVudW0gdHlwZSBpbiBnc3RfaW5pdC4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIHJlY2VudGx5LWFkZGVkIEFQSS4KCjIwMDktMDEtMDYgMTc6NTg6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgQVBJIGZvciBtYWtpbmcgYSBHU3RyZWFtZXIgcGx1Z2luICdkZXBlbmRlbnQnIG9uIGV4dGVybmFsIGZpbGVzLCBkaXJlY3RvcmllcyBvciBlbnZpcm9ubWVudCB2YXJpYWJsZXMsIHNvIHRoYXQgR1MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDo6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6IChHc3RQbHVnaW5EZXApLCAoX0dzdFBsdWdpblByaXZhdGUpOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5faW5pdCksIChnc3RfcGx1Z2luX2ZpbmFsaXplKSwKCSAgKGdzdF9wbHVnaW5fY2xhc3NfaW5pdCksIChnc3RfcGx1Z2luX2xpc3RfZnJlZSksCgkgIChnc3RfcGx1Z2luX2V4dF9kZXBfZ2V0X2Vudl92YXJzX2hhc2gpLAoJICAoX3ByaXZfcGx1Z2luX2RlcHNfZW52X3ZhcnNfY2hhbmdlZCksCgkgIChnc3RfcGx1Z2luX2V4dF9kZXBfZXh0cmFjdF9lbnZfdmFyc19wYXRocyksCgkgIChnc3RfcGx1Z2luX2V4dF9kZXBfZ2V0X2hhc2hfZnJvbV9zdGF0X2VudHJ5KSwKCSAgKGdzdF9wbHVnaW5fZXh0X2RlcF9kaXJlbnRyeV9tYXRjaGVzKSwKCSAgKGdzdF9wbHVnaW5fZXh0X2RlcF9zY2FuX2Rpcl9hbmRfbWF0Y2hfbmFtZXMpLAoJICAoZ3N0X3BsdWdpbl9leHRfZGVwX3NjYW5fcGF0aF93aXRoX2ZpbGVuYW1lcyksCgkgIChnc3RfcGx1Z2luX2V4dF9kZXBfZ2V0X3N0YXRfaGFzaCksCgkgIChfcHJpdl9wbHVnaW5fZGVwc19maWxlc19jaGFuZ2VkKSwgKGdzdF9wbHVnaW5fZXh0X2RlcF9mcmVlKSwKCSAgKGdzdF9wbHVnaW5fZXh0X2RlcF9zdHJ2X2VxdWFsKSwgKGdzdF9wbHVnaW5fZXh0X2RlcF9lcXVhbHMpLAoJICAoZ3N0X3BsdWdpbl9hZGRfZGVwZW5kZW5jeSksIChnc3RfcGx1Z2luX2FkZF9kZXBlbmRlbmN5X3NpbXBsZSk6CgkgICogZ3N0L2dzdHBsdWdpbi5oOiAoR3N0UGx1Z2luUHJpdmF0ZSksIChHc3RQbHVnaW5GbGFncyksCgkgIChHU1RfUExVR0lOX0RFUEVOREVOQ1lfRkxBR19OT05FKSwKCSAgKEdTVF9QTFVHSU5fREVQRU5ERU5DWV9GTEFHX1JFQ1VSU0UpLAoJICAoR1NUX1BMVUdJTl9ERVBFTkRFTkNZX0ZMQUdfUEFUSFNfQVJFX0RFRkFVTFRfT05MWSksCgkgIChHU1RfUExVR0lOX0RFUEVOREVOQ1lfRkxBR19GSUxFX05BTUVfSVNfU1VGRklYKSwKCSAgKEdzdFBsdWdpbkRlcGVuZGVuY3lGbGFncyksIChHc3RQbHVnaW5GaWx0ZXIpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfcGx1Z2luX2RlcCksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW5fZGVwX3N0cnYpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbl9kZXApLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbik6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6IChHU1RfTUFHSUNfQklOQVJZX1ZFUlNJT05fU1RSKSwKCSAgKEdzdEJpbmFyeVBsdWdpbkVsZW1lbnQpLCAoX0dzdEJpbmFyeURlcCksIChHc3RCaW5hcnlEZXApOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAoZ3N0X3JlZ2lzdHJ5X3htbF9zYXZlX3BsdWdpbik6CgkgIEFkZCBBUEkgZm9yIG1ha2luZyBhIEdTdHJlYW1lciBwbHVnaW4gJ2RlcGVuZGVudCcgb24gZXh0ZXJuYWwgZmlsZXMsCgkgIGRpcmVjdG9yaWVzIG9yIGVudmlyb25tZW50IHZhcmlhYmxlcywgc28gdGhhdCBHU3RyZWFtZXIga25vd3Mgd2hlbgoJICBpdCBuZWVkcyB0byByZS1sb2FkIEdTdHJlYW1lciBwbHVnaW5zIHRoYXQgd3JhcCBvdGhlciBwbHVnaW4gc3lzdGVtcy4KCSAgRml4ZXMgYnVnICMzNTA0NzcuCgkgIEFQSTogYWRkIGdzdF9wbHVnaW5fYWRkX2RlcGVuZGVuY3koKQoJICBBUEk6IGFkZCBnc3RfcGx1Z2luX2FkZF9kZXBlbmRlbmN5X3NpbXBsZSgpCgoyMDA5LTAxLTA2IDEzOjAwOjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBBZGQgbGliZ3N0YXBwLTAuMTAgZnJvbSAtYmFzZSB0byBzZWFyY2ggcGF0aCBhbmQgcmVtb3ZlIHRoZSBvbGQgbGliIGZyb20gLWJhZCBmcm9tIHRoZSBzZWFyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgQWRkIGxpYmdzdGFwcC0wLjEwIGZyb20gLWJhc2UgdG8gc2VhcmNoIHBhdGggYW5kIHJlbW92ZSB0aGUgb2xkCgkgIGxpYiBmcm9tIC1iYWQgZnJvbSB0aGUgc2VhcmNoIHBhdGguCgoyMDA5LTAxLTA1IDE1OjQyOjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBSZWxlYXNlIHRoZSBvYmplY3QgbG9jayBiZWZvcmUgY2FsbGluZyB0aGUgcXVlcnkgY29udmVydCBwYWQgZnVuY3Rpb25zIHRvIGF2b2lkIGRlYWRsb2Nrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb25fbGFzdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbl9wYXVzZWQpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBSZWxlYXNlIHRoZSBvYmplY3QgbG9jayBiZWZvcmUgY2FsbGluZyB0aGUgcXVlcnkgY29udmVydCBwYWQgZnVuY3Rpb25zCgkgIHRvIGF2b2lkIGRlYWRsb2Nrcy4KCjIwMDktMDEtMDUgMTU6NDE6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVzLmM6IFRoZSBsb2NrIG9yZGVyIHNob3VsZCBiZSBtYWluY29udGV4dCA+IE9CSkVDVF9MT0NLIHNvIHdlIG5lZWQgdG8gcmVsZWFzZSB0aGUgb2JqZWN0IGxvY2sgd2hlbiB3YWtpbmcgdXAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c193YWtldXBfbWFpbl9jb250ZXh0KToKCSAgVGhlIGxvY2sgb3JkZXIgc2hvdWxkIGJlIG1haW5jb250ZXh0ID4gT0JKRUNUX0xPQ0sgc28gd2UgbmVlZCB0byByZWxlYXNlCgkgIHRoZSBvYmplY3QgbG9jayB3aGVuIHdha2luZyB1cCB0aGUgbWFpbmxvb3AgdG8gYXZvaWQgZGVhZGxvY2tzLgoKMjAwOS0wMS0wNSAxMDoxNDoyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogVXNlIGFuIGl0ZXJhdG9yIHRvIHNldCB0aGUgY2xvY2sgYW5kIHRoZSBpbmRleCBzbyB0aGF0IHdlIGNhbiByZWxlYXNlIHRoZSBvYmplY3QgbG9jayBhcHByb3ByaWF0ZWx5LiBGaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3NldF9pbmRleF9mdW5jKSwgKGdzdF9iaW5fc2V0X2Nsb2NrX2Z1bmMpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgIFVzZSBhbiBpdGVyYXRvciB0byBzZXQgdGhlIGNsb2NrIGFuZCB0aGUgaW5kZXggc28gdGhhdCB3ZSBjYW4gcmVsZWFzZQoJICB0aGUgb2JqZWN0IGxvY2sgYXBwcm9wcmlhdGVseS4gRml4ZXMgIzU2NjM5My4KCjIwMDktMDEtMDMgMTg6Mzk6MzggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IFVzZSB0aGUgbmFtZSBvZiB0aGUgcGFkcyBpbnN0ZWFkIG9mIGEgcG9pbnRlciwgaGVscHMgaW4gZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2F2YWlsYWJsZSk6CgkgIFVzZSB0aGUgbmFtZSBvZiB0aGUgcGFkcyBpbnN0ZWFkIG9mIGEgcG9pbnRlciwgaGVscHMgaW4gZGVidWdnaW5nLgoKMjAwOS0wMS0wMyAxODoxNjo1NCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RpbmRleC5jOiBBZGQgYSBkZWJ1Z2dpbmcgY2F0ZWdvcnkgZm9yIEdzdEluZGV4LCBmaXJzdCBsaXR0bGUgc3RlcCBpbiBtYWtpbmcgaW5kZXhpbmcgdG9wLW5vdGNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5kZXguYzogKGdzdF9pbmRleF9nZXRfdHlwZSk6CgkgIEFkZCBhIGRlYnVnZ2luZyBjYXRlZ29yeSBmb3IgR3N0SW5kZXgsIGZpcnN0IGxpdHRsZSBzdGVwIGluIG1ha2luZwoJICBpbmRleGluZyB0b3Atbm90Y2guCgoyMDA5LTAxLTAzIDE4OjEwOjA4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0LzogQXNzaWduIGRlYnVnIHN0YXRlbWVudHMgdG8gcmVsZXZhbnQgY2F0ZWdvcmllcyBpbnN0ZWFkIG9mIHRoZSAnZGVmYXVsdCcgY2F0ZWdvcnkgc28gdGhleSBkb24ndCBnZXQgbG9zdCBpbiBkZWJ1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9tZXNzYWdlX2Z1bGwpLAoJICAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9kaXNwYXRjaF9wcm9wZXJ0aWVzX2NoYW5nZWQpOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhZF9wcm94eV9nZXRjYXBzKSwgKGdzdF9wYWRfcHJveHlfc2V0Y2FwcyksCgkgIChnc3RfcGFkX2FkZF9kYXRhX3Byb2JlX2Z1bGwpLCAoZ3N0X3BhZF9hZGRfZXZlbnRfcHJvYmVfZnVsbCksCgkgIChnc3RfcGFkX2FkZF9idWZmZXJfcHJvYmVfZnVsbCksIChnc3RfcGFkX3JlbW92ZV9kYXRhX3Byb2JlKSwKCSAgKGdzdF9wYWRfcmVtb3ZlX2V2ZW50X3Byb2JlKSwgKGdzdF9wYWRfcmVtb3ZlX2J1ZmZlcl9wcm9iZSk6CgkgIEFzc2lnbiBkZWJ1ZyBzdGF0ZW1lbnRzIHRvIHJlbGV2YW50IGNhdGVnb3JpZXMgaW5zdGVhZCBvZiB0aGUgJ2RlZmF1bHQnCgkgIGNhdGVnb3J5IHNvIHRoZXkgZG9uJ3QgZ2V0IGxvc3QgaW4gZGVidWdnaW5nLgoKMjAwOS0wMS0wMSAyMToyNzowNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGRlYnVndXRpbHMuYzogQWRkIHNvbWUgaWRlYXMsIGhvdyB0byBtYWtlIHRoZSBncmFwaCBzbWFsbGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBBZGQgc29tZSBpZGVhcywgaG93IHRvIG1ha2UgdGhlIGdyYXBoIHNtYWxsZXIuCgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIEFkZCBhIGNvbW1lbnQgZnJvbSBhIGRlYnVnIHNlc3Npb24uCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIExvZyBtb3JlIGNvbnRleHQuCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBJbmRldC4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgRml4IHR5cG8gaW4gZG9jcy4KCjIwMDgtMTItMjcgMTc6NDE6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YnVzLmM6IE1ha2UgR3N0QnVzU291cmNlIHdvcmsgd2l0aCBub24tZGVmYXVsdCBtYWluIGNvbnRleHRzICgjNTYyMTcwKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19kaXNwb3NlKSwgKGdzdF9idXNfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9idXNfd2FrZXVwX21haW5fY29udGV4dCksIChnc3RfYnVzX3NldF9tYWluX2NvbnRleHQpLAoJICAoZ3N0X2J1c19wb3N0KSwgKGdzdF9idXNfc291cmNlX3ByZXBhcmUpLCAoZ3N0X2J1c19zb3VyY2VfZmluYWxpemUpLAoJICAoZ3N0X2J1c19jcmVhdGVfd2F0Y2gpOgoJICBNYWtlIEdzdEJ1c1NvdXJjZSB3b3JrIHdpdGggbm9uLWRlZmF1bHQgbWFpbiBjb250ZXh0cyAoIzU2MjE3MCkuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOiAobWVzc2FnZV9mdW5jX2VvcyksIChtZXNzYWdlX2Z1bmNfYXBwKSwKCSAgKHRlc3Rfd2F0Y2gpLCAodGVzdF93YXRjaF93aXRoX2N1c3RvbV9jb250ZXh0KSwgKGdzdF9idXNfc3VpdGUpOgoJICBBZGQgdGVzdCBjYXNlIGZvciBHc3RCdXNTb3VyY2Ugd2l0aCBhIG5vbi1kZWZhdWx0IG1haW4gY29udGV4dC4KCSAgKiB0ZXN0cy9jaGVjay9saWJzLy5jdnNpZ25vcmU6CgkgIElnbm9yZSBtb3JlLgoKMjAwOC0xMi0yNyAxNjoyMzoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBXcmFwIG11bHRpLWxpbmUgbWFjcm9zIGluIEdfU1RNVF97U1RBUlR8RU5EfS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6ICh1bnBhY2tfZWxlbWVudCksICh1bnBhY2tfY29uc3Rfc3RyaW5nKSwKCSAgKHVucGFja19zdHJpbmcpOjoKCSAgV3JhcCBtdWx0aS1saW5lIG1hY3JvcyBpbiBHX1NUTVRfe1NUQVJUfEVORH0uCgoyMDA4LTEyLTIwIDE3OjMzOjQ0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBBUEk6IEFkZCBVUkkgcXVlcnkgdHlwZS4gVGhpcyBpcyB1c2VmdWwgdG8gcXVlcnkgdGhlIFVSSSBvZiBhIHNpbmsvc291cmNlIGVsZW1lbnQgYW5kIGNhbiBiZSB1c2VkIGJ5IGRlbXV4ZXJzIHRoYXQgbmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cXVhcmsuYzoKCSAgKiBnc3QvZ3N0cXVhcmsuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9uZXdfdXJpKSwgKGdzdF9xdWVyeV9zZXRfdXJpKSwKCSAgKGdzdF9xdWVyeV9wYXJzZV91cmkpOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBBUEk6IEFkZCBVUkkgcXVlcnkgdHlwZS4gVGhpcyBpcyB1c2VmdWwgdG8gcXVlcnkgdGhlIFVSSQoJICBvZiBhIHNpbmsvc291cmNlIGVsZW1lbnQgYW5kIGNhbiBiZSB1c2VkIGJ5IGRlbXV4ZXJzIHRoYXQKCSAgbmVlZCB0byBnZXQgZGF0YSBmcm9tIG90aGVyIGZpbGVzLgoJICBUaGlzIHF1ZXJ5IHNob3VsZCBnbyB1cHN0cmVhbSBieSBkZWZhdWx0LgoJICBGaXhlcyBidWcgIzU2Mjk0OS4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfcXVlcnkpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmRfc3JjX3F1ZXJ5KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX3F1ZXJ5KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9maWxlX3NyY19xdWVyeSk6CgkgIEltcGxlbWVudCBVUkkgcXVlcnkuCgoyMDA4LTEyLTE5IDE1OjExOjA2ICswMDAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkgIERvbid0IGZvcndhcmQgZ3N0X3BhZF9zZXRfY2FwcygpIG9uIGEgc291cmNlIGdob3N0cGFkIHRvIGl0cyB0YXJnZXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBEb24ndCBmb3J3YXJkIGdzdF9wYWRfc2V0X2NhcHMoKSBvbiBhIHNvdXJjZSBnaG9zdHBhZCB0byBpdHMgdGFyZ2V0LgoJICBUaGF0IHdvdWxkIGNhdXNlIHRoZSBnaG9zdHBhZCB0byBlbWl0IG5vdGlmeTo6Y2FwcyB0d28gdGltZXMgKGZpc3QKCSAgZnJvbSBnc3RfcGFkX3NldF9jYXBzKCkgYW5kIGFmdGVyIGZyb20gb25fc3JjX3RhcmdldF9ub3RpZnkoKSkuCgoyMDA4LTEyLTE5IDExOjI0OjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IEFkZCBzb21lIG1vcmUgdW5pdC10ZXN0cyBmb3IgdGhlIGdob3N0cGFkIG5vdGlmeSBzaWduYWwsIG9uZSBvZiB3aGljaCBjdXJyZW50bHkgZmFpbHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoZ2hvc3Rfbm90aWZ5X2NhcHMpLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgc29tZSBtb3JlIHVuaXQtdGVzdHMgZm9yIHRoZSBnaG9zdHBhZCBub3RpZnkgc2lnbmFsLCBvbmUgb2Ygd2hpY2gKCSAgY3VycmVudGx5IGZhaWxzLgoKMjAwOC0xMi0xOSAwOTo0NDo0OSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IEFkZCBnc3RfdGFnX3NldHRlcl9yZXNldF90YWdzIHRvIHRoZSBsaXN0IG9mIGV4cG9ydGVkIHN5bWJvbHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgZ3N0X3RhZ19zZXR0ZXJfcmVzZXRfdGFncyB0byB0aGUgbGlzdCBvZiBleHBvcnRlZCBzeW1ib2xzLgoKMjAwOC0xMi0xNyAxNjoxNjo0NSArMDAwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJICBJbiBhIHNvdXJjZSBnaG9zdHBhZCwgd2hlbiBjYXBzIGFyZSBjaGFuZ2VkIGluIHRoZSB0YXJnZXQgcGFkLCB0aGUgY2hhbmdlIG5lZWRzIHRvIGJlIHJlZmxlY3RlZCBpbiB0aGUgZ2hvc3RwYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBJbiBhIHNvdXJjZSBnaG9zdHBhZCwgd2hlbiBjYXBzIGFyZSBjaGFuZ2VkIGluIHRoZSB0YXJnZXQgcGFkLCB0aGUKCSAgY2hhbmdlIG5lZWRzIHRvIGJlIHJlZmxlY3RlZCBpbiB0aGUgZ2hvc3RwYWQuCgkgIEZpeGVzICM1NjQ4NjMuCgoyMDA4LTEyLTE3IDA5OjM3OjQ3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuYzogQWRkIEZJWE1FIGZvciAwLjExIHRvIHNldCB0aGUgcGFkIGFzIG1lc3NhZ2Ugc291cmNlIGFuZCBub3QgdGhlIGVsZW1lbnQuIE90aGVyd2lzZSBpdCdzIGltcG9zc2libGUgdG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9mb3VuZF90YWdzX2Zvcl9wYWQpOgoJICBBZGQgRklYTUUgZm9yIDAuMTEgdG8gc2V0IHRoZSBwYWQgYXMgbWVzc2FnZSBzb3VyY2UgYW5kIG5vdAoJICB0aGUgZWxlbWVudC4gT3RoZXJ3aXNlIGl0J3MgaW1wb3NzaWJsZSB0byBkZXRlY3QgZm9yIHdoaWNoCgkgIHBhZCB0aGUgdGFncyB3ZXJlIGZvdW5kIHdpdGhvdXQgYWRkaW5nIGFuIGV2ZW50IHByb2JlCgkgIG9yIHNvbWV0aGluZyBzaW1pbGFyIHRvIHRoZSBwYWQuCgoyMDA4LTEyLTE2IDIxOjMzOjU3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9mYXEvZ2VuZXJhbC54bWw6IFVwZGF0ZSB0aGUgZmFxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9nZW5lcmFsLnhtbDoKCSAgVXBkYXRlIHRoZSBmYXEuCgoyMDA4LTEyLTE2IDE1OjUxOjUyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBSZW5hbWUgYXBpIGFkZGVkIGluIHByZXZpb3VzIGNvbW1pdCBhbmQgYWRkIHNpbmNlIHRhZyB0byBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkgIFJlbmFtZSBhcGkgYWRkZWQgaW4gcHJldmlvdXMgY29tbWl0IGFuZCBhZGQgc2luY2UgdGFnIHRvIGRvY3MuCgkgIEFQSTogZ3N0X3RhZ19zZXR0ZXJfcmVzZXRfdGFncygpCgoyMDA4LTEyLTE2IDE0OjA1OjQwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBZGQgZnVuY3Rpb24gdG8gcmVzZXQgdGFnc2V0dGVyIGZvciBlbGVtZW50IHJldXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkgIEFkZCBmdW5jdGlvbiB0byByZXNldCB0YWdzZXR0ZXIgZm9yIGVsZW1lbnQgcmV1c2UuCgkgIEFQSTogZ3N0X3RhZ19zZXR0ZXJfZmx1c2goKQoKMjAwOC0xMi0xNiAwOTozNzo1MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuYzogQXZvaWQgY29weSBvZiBlbXB0eSB0YWdsaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBBdm9pZCBjb3B5IG9mIGVtcHR5IHRhZ2xpc3QuCgoyMDA4LTEyLTE2IDA5OjIzOjIxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBNb3JlIGNvbXBsZXRlIHVuaXQgdGVzdHMuIEZpeCBoYW5kbGluZyBvZiBlbXB0eSB0YWdsaXN0cyAodGhleSB3ZXJlIG5vdCBtZXJnZWQgYmVmb3JlKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkgIE1vcmUgY29tcGxldGUgdW5pdCB0ZXN0cy4gRml4IGhhbmRsaW5nIG9mIGVtcHR5IHRhZ2xpc3RzICh0aGV5IHdlcmUKCSAgbm90IG1lcmdlZCBiZWZvcmUpLgoKMjAwOC0xMi0xNiAwNzowNzozNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0LzogVXBkYXRlIEdzdFRhZ1NldHRlciBhbmQgR3N0VGFnTWVyZ2VNb2RlIGRvY3VtZW50YXRpb24uIE1lbnRpb24gdGhhdCB0YWdzIGNhbiBjb21lIGZyb20gZXZlbnRzIGFuZCBmcm9tIGFwcGxpY2F0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgICogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICBVcGRhdGUgR3N0VGFnU2V0dGVyIGFuZCBHc3RUYWdNZXJnZU1vZGUgZG9jdW1lbnRhdGlvbi4gTWVudGlvbgoJICB0aGF0IHRhZ3MgY2FuIGNvbWUgZnJvbSBldmVudHMgYW5kIGZyb20gYXBwbGljYXRpb24uIEZpeCBleGFtcGxlLgoKMjAwOC0xMi0xNSAxNToyNzowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IFJlbW92ZSB0aGUgc2VxbnVtIGVudHJ5IHRoYXQgd2UgaW1wbGVtZW50ZWQgaW4gMC4xMCBhbHJlYWR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBSZW1vdmUgdGhlIHNlcW51bSBlbnRyeSB0aGF0IHdlIGltcGxlbWVudGVkIGluIDAuMTAgYWxyZWFkeS4KCSAgQWRkIGVudHJ5IGFib3V0IHJlbW92aW5nIHRoZSBmb3JtYXQgcmV0dXJuIHZhbHVlIGZvciBxdWVyaWVzLgoKMjAwOC0xMi0xNSAxMjo0Nzo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRXhwb3NlIHRoZSByZW5kZXItZGVsYXkgYXMgYSBwcm9wZXJ0eSBzbyB0aGluZ3MgbGlrZSBhcHBzaW5rIGNhbiB1c2UgaXQgdG8gdHdlYWsgdGhlIHN5bi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19pbml0KSwgKGdzdF9iYXNlX3Npbmtfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Byb3BlcnR5KToKCSAgRXhwb3NlIHRoZSByZW5kZXItZGVsYXkgYXMgYSBwcm9wZXJ0eSBzbyB0aGluZ3MgbGlrZSBhcHBzaW5rIGNhbiB1c2UgaXQKCSAgdG8gdHdlYWsgdGhlIHN5bmNocm9uaXNhdGlvbi4KCjIwMDgtMTItMTAgMTU6MTk6NDUgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDogQWxsb3cgY2hlY2sgdGVzdHMgdG8gdXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6IEFsbG93IGNoZWNrIHRlc3RzIHRvIHVzZQoJICBNQUlOX1NUQVJUX1RIUkVBRFMoKS9NQUlOX1NUT1BfVEhSRUFEUygpIG11bHRpcGxlIHRpbWVzLiBBbHNvIGFsbG93cwoJICBDS19GT1JLPW5vIHRvIGJlIHVzZWQgd2l0aCBtdWx0aXBsZSBjaGVjayB0ZXN0IHRoYXQgdXNlIHRocmVhZHMuCgoyMDA4LTEyLTA5IDE2OjIzOjU4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuYzogRml4IGEgY2FwcyBtZW1vcnkgbGVhayBpbnRyb2R1Y2VkIGJ5IHRoZSBsYXN0IGNoYW5nZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWQpOgoJICBGaXggYSBjYXBzIG1lbW9yeSBsZWFrIGludHJvZHVjZWQgYnkgdGhlIGxhc3QgY2hhbmdlLgoKMjAwOC0xMi0wOSAxNTo0NTozNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IENoZWNrIGlmIHRoZSBjYXBzIG9mIHRoZSBwYWRzIGFyZSBjb21wYXRpYmxlIGJlZm9yZSByZXR1cm5pbmcgYSBwYWQgYW5kIGNsYWltaW5nIGl0IGlzIGNvbXBhdGlibGUuIFRoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkKToKCSAgQ2hlY2sgaWYgdGhlIGNhcHMgb2YgdGhlIHBhZHMgYXJlIGNvbXBhdGlibGUgYmVmb3JlIHJldHVybmluZwoJICBhIHBhZCBhbmQgY2xhaW1pbmcgaXQgaXMgY29tcGF0aWJsZS4gVGhpcywgYW1vbmcgb3RoZXIgdGhpbmdzLAoJICBmaXhlcyBhIGJ1ZyB3aXRoIGdzdC1sYXVuY2ggd2hlcmUgYW4gaW5jb21wYXRpYmxlIHBhZCBpcyBjaG9zZW4KCSAgYW5kIGxpbmtpbmcgZmFpbHMuIEZpeGVzIGJ1ZyAjNTQ0MDAzLgoKMjAwOC0xMi0wOSAxNDo0NjoyNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogUmV2ZXJ0IGFjY2lkZW50aWFsbHkgY29tbWl0ZWQgcGF0Y2ggZm9yIGJ1ZyAjNDA0NjMxIHdoaWNoIHRyaWVzIHRvIHByaW50IGEgYmFja3RyYWNlIGlmIGEgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfaW5pdCk6CgkgIFJldmVydCBhY2NpZGVudGlhbGx5IGNvbW1pdGVkIHBhdGNoIGZvciBidWcgIzQwNDYzMSB3aGljaAoJICB0cmllcyB0byBwcmludCBhIGJhY2t0cmFjZSBpZiBhIHRlc3RjYXNlIGlzIHRlcm1pbmF0ZWQgYnkKCSAgYSBzaWduYWwuIFRoaXMgY29kZSB3YXMgbmV2ZXIgYWN0aXZhdGVkIGFzIHRoZSBjb3JyZXNwb25kaW5nCgkgIGNvbmZpZ3VyZS5hYyBjaGFuZ2Ugd2Fzbid0IGNvbW1pdHRlZC4KCjIwMDgtMTItMDkgMTA6NTg6MDEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiBUaGlzIHRlc3Qgc2hvdWxkIHJldHVybiBUUlVFIG5vdyBhcyBzeW5jaW5nIGFuIHVuY29udHJvbGxlZCBvYmplY3Qgd2lsbCBzdWNjZWVkIG5vdyAodC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVGhpcyB0ZXN0IHNob3VsZCByZXR1cm4gVFJVRSBub3cgYXMgc3luY2luZyBhbiB1bmNvbnRyb2xsZWQKCSAgb2JqZWN0IHdpbGwgc3VjY2VlZCBub3cgKHRoZXJlJ3Mgbm90aGluZyB0byBzeW5jKS4KCjIwMDgtMTItMDkgMDk6NTY6MjUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBBZ2dyZWdhdGUgcmV0dXJuIHZhbHVlIGZvciBnc3RfY29udHJvbGxlcl9zeW5jX3ZhbHVlcygpLiBNb3JlIGluZm8gaW4gbG9nZ2luZy4gQS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgQWdncmVnYXRlIHJldHVybiB2YWx1ZSBmb3IgZ3N0X2NvbnRyb2xsZXJfc3luY192YWx1ZXMoKS4gTW9yZSBpbmZvIGluCgkgIGxvZ2dpbmcuIEFsd2F5cyBzZXQgdmFsdWVzIG9uIGZpcnN0IHN5bmMtY2FsbC4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xzb3VyY2UuYzoKCSAgTWljcm9vcHRpbWl6YXRpb25zLgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkgIEZpeCByZXR1cm4gY29kZSBhbmQgY29tbWVudC4KCjIwMDgtMTItMDkgMDk6MDA6NTcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guMS5pbjogRml4IGRlc2NyaXB0aW9uIG9mIGhvdyB0byBzcGVjaWZ5IGEgdHlwZSBpbiBjYXBzLiBGaXhlcyAjNTUzODczLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIEZpeCBkZXNjcmlwdGlvbiBvZiBob3cgdG8gc3BlY2lmeSBhIHR5cGUgaW4gY2Fwcy4gRml4ZXMgIzU1Mzg3My4KCSAgQWxzbyByYW5nZXMgYW5kIGxpc3QgY29udGFpbiB2YWx1ZXMgYW5kIG5vdCBwcm9wZXJ0eS1hc3NpZ25tZW50cy4KCjIwMDgtMTItMDggMjI6Mjg6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiBDaGVjayBmb3IgY2hhbmdlZCBwYWRzLWxpc3QgYmVmb3JlIGNoZWNraW5nIHRoZSBsYXN0IHJldHVybmVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2hhbmRsZV9idWZmZXIpOgoJICBDaGVjayBmb3IgY2hhbmdlZCBwYWRzLWxpc3QgYmVmb3JlIGNoZWNraW5nIHRoZSBsYXN0IHJldHVybmVkCgkgIEdzdEZsb3dSZXR1cm4gYmVjYXVzZSB0aGUgcGFkIGNvdWxkIGhhdmUgYmVlbiByZW1vdmVkIGFuZCB3ZQoJICBuZWVkIHRvIGlnbm9yZSB0aGUgdmFsdWUgaW4gdGhhdCBjYXNlLgoKMjAwOC0xMi0wOCAxODozNTo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS4qOiBBZGQgdm1ldGhvZCB0aGF0IGlzIGNhbGxlZCBiZWZvcmUgd2Ugc3RhcnQgdGhlIHRyYW5zZm9ybSBhbmQgd2hpY2ggY2FuIGJlIHVzZWQgdG8gYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldHJhbmdlKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFpbik6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIEFkZCB2bWV0aG9kIHRoYXQgaXMgY2FsbGVkIGJlZm9yZSB3ZSBzdGFydCB0aGUgdHJhbnNmb3JtIGFuZCB3aGljaCBjYW4KCSAgYmUgdXNlZCB0byBjb25maWd1cmUgdGhlIHRyYW5zZm9ybSwgc3VjaCBhcyBkeW5hbWljIHByb3BlcnRpZXMuCgoyMDA4LTEyLTA1IDIwOjMyOjAzICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3QuYzogU2VhcmNoIGZvciBwbHVnaW5zIG9uIHdpbjMyIGJhc2VkIG9uIHRoZSBsb2NhdGlvbiBvZiB0aGUgZ3N0cmVhbWVyIERMTC4gIEZpeGVzICM1NDg3ODYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBTZWFyY2ggZm9yIHBsdWdpbnMgb24gd2luMzIgYmFzZWQgb24gdGhlIGxvY2F0aW9uIG9mIHRoZQoJICBnc3RyZWFtZXIgRExMLiAgRml4ZXMgIzU0ODc4NgoKMjAwOC0xMi0wNCAyMDoxMDo0MiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgY29uZmlndXJlLmFjOiBBcHBhcmVudGx5IEFDX0NPTkZJR19NQUNST19ESVIgYnJlYWtzIHdoZW4gdXNpbmcgbW9yZSB0aGFuIG9uZSBtYWNybyBkaXJlY3RvcnksIHJldmVydGluZyBsYXN0IGNoYW5nZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBBcHBhcmVudGx5IEFDX0NPTkZJR19NQUNST19ESVIgYnJlYWtzIHdoZW4gdXNpbmcgbW9yZQoJICB0aGFuIG9uZSBtYWNybyBkaXJlY3RvcnksIHJldmVydGluZyBsYXN0IGNoYW5nZS4KCjIwMDgtMTItMDQgMTk6NDU6MDUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogU2V0IEFDX0NPTkZJR19NQUNST19ESVIgdG8gY29tbW9uL200IHRvIHBvaW50IGF1dG9jb25mIHRvIG91ciBNNCBtYWNyb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgU2V0IEFDX0NPTkZJR19NQUNST19ESVIgdG8gY29tbW9uL200IHRvIHBvaW50IGF1dG9jb25mIHRvCgkgIG91ciBNNCBtYWNyb3MuCgoyMDA4LTExLTI5IDEzOjI5OjE0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBSZXF1aXJlIGdldHRleHQgMC4xNyBiZWNhdXNlIG9sZGVyIHZlcnNpb25zIGRvbid0IG1peCB3aXRoIGxpYnRvb2wgMi4yLiBBdCBidWlsZCB0aW1lIGFuIG9sZGVyIGdldHRleHQgdmVyc2lvbiB3aWxsIHMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBDeWd3aW4gUG9ydHMgbWFpbnRhaW5lcgoJICA8eXNlbGtvd2l0eiBhdCB1c2VycyBkb3Qgc291cmNlZm9yZ2UgZG90IG5ldD4KCSAgKiBhdXRvZ2VuLnNoOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgUmVxdWlyZSBnZXR0ZXh0IDAuMTcgYmVjYXVzZSBvbGRlciB2ZXJzaW9ucyBkb24ndCBtaXggd2l0aCBsaWJ0b29sCgkgIDIuMi4gQXQgYnVpbGQgdGltZSBhbiBvbGRlciBnZXR0ZXh0IHZlcnNpb24gd2lsbCBzdGlsbCB3b3JrLgoJICBGaXhlcyBidWcgIzU1NjA5MS4KCjIwMDgtMTEtMjcgMTE6MTI6MzAgKzAwMDAgIOydtOusuO2YlSA8aXdpbmdzQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3Rwb2xsLmM6IEFkZHMgc3VwcG9ydCBmb3IgRkRfQ09OTkVDVCBldmVudCAod2luMzIpLiBTZWUgIzU2MjI1OC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiDsnbTrrLjtmJUgPGl3aW5ncyBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9nc3Rwb2xsLmM6IChnc3RfcG9sbF9mZF9jdGxfd3JpdGUpLCAoZ3N0X3BvbGxfZmRfaGFzX2Vycm9yKToKCSAgQWRkcyBzdXBwb3J0IGZvciBGRF9DT05ORUNUIGV2ZW50ICh3aW4zMikuIFNlZSAjNTYyMjU4LgoKMjAwOC0xMS0yNCAyMDowMjo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBUdXJuIGNvbW1lbnQgaW50byBndGstZG9jIGNvbW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgVHVybiBjb21tZW50IGludG8gZ3RrLWRvYyBjb21tZW50LgoKMjAwOC0xMS0yNCAxNToyNzo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBSZXZlcnQgcXVpY2sgYWNjZXBjYXBzIGF0dGVtcHQsIGl0J3Mgbm90IGZ1bGx5IGVxdWl2YWxlbnQgdG8gdGhlIG9sZCBiZWhhdmlvdXIgYW5kIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9hY2NlcHRjYXBzKToKCSAgUmV2ZXJ0IHF1aWNrIGFjY2VwY2FwcyBhdHRlbXB0LCBpdCdzIG5vdCBmdWxseSBlcXVpdmFsZW50IHRvIHRoZSBvbGQKCSAgYmVoYXZpb3VyIGFuZCB0aHVzIGNhdXNlcyByZWdyZXNzaW9ucy4KCjIwMDgtMTEtMjQgMTE6NTY6NDQgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogRml4IG1lbW9yeSBsZWFrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY191cmlfc2V0X3VyaSk6CgkgIEZpeCBtZW1vcnkgbGVhay4KCjIwMDgtMTEtMjQgMDk6NTk6MDcgKzAwMDAgIFNpbW9uIEhvbG0gVGjDuGdlcnNlbiA8b2RpZUBjcy5hYXUuZGs+CgoJICBnc3QvZ3N0cmVnaXN0cnkuYzogUmVkdWNlIHRoZSBudW1iZXIgb2Ygc3RhdCgpIGNhbGxzIGZvciBldmVyeSBmaWxlIGZyb20gdGhyZWUgdGltZXMgdG8gb25lIHRpbWUuIEZpeGVzIGJ1ZyAjNTYwMzYwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNpbW9uIEhvbG0gVGjDuGdlcnNlbiA8b2RpZSBhdCBjcyBkb3QgYWF1IGRvdCBkaz4KCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpOgoJICBSZWR1Y2UgdGhlIG51bWJlciBvZiBzdGF0KCkgY2FsbHMgZm9yIGV2ZXJ5IGZpbGUgZnJvbSB0aHJlZSB0aW1lcwoJICB0byBvbmUgdGltZS4gRml4ZXMgYnVnICM1NjAzNjAuCgoyMDA4LTExLTIyIDE1OjA5OjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFJlbmFtZSBhIHZhcmlhYmxlIHRvIG1ha2UgdGhlIGNvZGUgY2xlYXJlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYWNjZXB0Y2Fwcyk6CgkgIFJlbmFtZSBhIHZhcmlhYmxlIHRvIG1ha2UgdGhlIGNvZGUgY2xlYXJlci4KCjIwMDgtMTEtMjEgMjA6NTc6MTYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogRG9uJ3Qgd2FybmluZyBvbiBvZmZzZXQ9PS0xLiBUYWtlbiBmcm9tIF9jaGVja19pbXBlcmZlY3Rfb2Zmc2V0KCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgRG9uJ3Qgd2FybmluZyBvbiBvZmZzZXQ9PS0xLiBUYWtlbiBmcm9tIF9jaGVja19pbXBlcmZlY3Rfb2Zmc2V0KCkuCgoyMDA4LTExLTIxIDE4OjI2OjE0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogQ2hlY2sgZm9yIGxvY2FsaG9zdCBpbiBVUkkgd2FzIGJhY2t3YXJkcywgZml4IGl0LiBGaXhlcyB1bml0IHRlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBDaGVjayBmb3IgbG9jYWxob3N0IGluIFVSSSB3YXMgYmFja3dhcmRzLCBmaXggaXQuIEZpeGVzIHVuaXQgdGVzdC4KCjIwMDgtMTEtMjEgMTc6MTQ6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogQWRkIGJlZ2lubmluZ3Mgb2YgYSBtb3JlIG9wdGltaXplZCBhY2NlcHRjYXBzIGZ1bmN0aW9uIHRoYW4gdGhlIGRlZmF1bHQgY29yZSBvbmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldGNhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2ZpbmRfdHJhbnNmb3JtKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9hY2NlcHRjYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRyYW5nZSk6CgkgIEFkZCBiZWdpbm5pbmdzIG9mIGEgbW9yZSBvcHRpbWl6ZWQgYWNjZXB0Y2FwcyBmdW5jdGlvbiB0aGFuIHRoZSBkZWZhdWx0CgkgIGNvcmUgb25lLgoKMjAwOC0xMS0yMSAxNjo0ODo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogQXZvaWQgZ2V0dGluZyB0aGUgYWNjZXB0Y2FwcyBmdW5jdGlvbiB0b28gZWFybHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWNjZXB0X2NhcHMpOgoJICBBdm9pZCBnZXR0aW5nIHRoZSBhY2NlcHRjYXBzIGZ1bmN0aW9uIHRvbyBlYXJseS4KCjIwMDgtMTEtMjEgMDg6MDk6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IE1ha2UgZ3N0LWxhdW5jaCBoYW5kbGUgTEFURU5DWSBtZXNzYWdlcyBhbmQgbWFrZSBpdCByZWNhbGN1bGF0ZSB0aGUgbGF0ZW5jeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIE1ha2UgZ3N0LWxhdW5jaCBoYW5kbGUgTEFURU5DWSBtZXNzYWdlcyBhbmQgbWFrZSBpdCByZWNhbGN1bGF0ZSB0aGUKCSAgbGF0ZW5jeS4KCjIwMDgtMTEtMjAgMjE6MDU6MTQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiBVc2UgZ19maWxlbmFtZV9mcm9tX3VyaSgpIGZvciBVUkkgcGFyc2luZyBpbiBmaWxlc3JjIHJhdGhlciB0aGFuIHJvbGxpbmcgb3V0IG93biBzbGlnaC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgVXNlIGdfZmlsZW5hbWVfZnJvbV91cmkoKSBmb3IgVVJJIHBhcnNpbmcgaW4gZmlsZXNyYyByYXRoZXIgdGhhbiByb2xsaW5nCgkgIG91dCBvd24gc2xpZ2h0bHkgaW5jb3JyZWN0IHZlcnNpb24uIEZpeGVzIHVzZSBvZiBzb21lIHBhdGhzIG9uCgkgIHdpbjMyLgoKMjAwOC0xMS0yMCAyMDo0NDo1NiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IEluIHdpbjMyIGNvZGVwYXRoLCBpZiB3ZSBmYWlsIHRvIHdyaXRlIHRoZSByZWdpc3RyeSwgY3JlYXRlIHRoZSBkaXJlY3RvcnkgZm9yIGl0IGFuZCB0cnkgYWdhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBJbiB3aW4zMiBjb2RlcGF0aCwgaWYgd2UgZmFpbCB0byB3cml0ZSB0aGUgcmVnaXN0cnksIGNyZWF0ZSB0aGUKCSAgZGlyZWN0b3J5IGZvciBpdCBhbmQgdHJ5IGFnYWluLCBtYXRjaGluZyB0aGUgYmVoYXZpb3VyIGluIG5vbi13aW4zMgoJICBjb2RlcGF0aHMuCgoyMDA4LTExLTIwIDE0OjIzOjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBDaGFuZ2luZyB0aGUgcmVuZGVyIGRlbGF5IGNoYW5nZXMgdGhlIGxhdGVuY3kgYW5kIHNvIHdlIG11c3QgcG9zdCBhIGxhdGVuY3kgbWVzc2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19zZXRfcmVuZGVyX2RlbGF5KToKCSAgQ2hhbmdpbmcgdGhlIHJlbmRlciBkZWxheSBjaGFuZ2VzIHRoZSBsYXRlbmN5IGFuZCBzbyB3ZSBtdXN0IHBvc3QgYQoJICBsYXRlbmN5IG1lc3NhZ2UuCgoyMDA4LTExLTIwIDEwOjM1OjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHF1ZXJ5Lio6IEFkZCBHc3RRdWVyeVR5cGUgZm9yIGN1c3RvbSBxdWVyaWVzIGluc3RlYWQgb2YgaGF2aW5nIHRvIHVzZSB0aGUgbm90LXNvLXZlcnktY29udmVuaWVudCByZWdpc3RyYXRpb24gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWVyeS5jOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBBZGQgR3N0UXVlcnlUeXBlIGZvciBjdXN0b20gcXVlcmllcyBpbnN0ZWFkIG9mIGhhdmluZyB0byB1c2UgdGhlCgkgIG5vdC1zby12ZXJ5LWNvbnZlbmllbnQgcmVnaXN0cmF0aW9uIGluZnJhc3RydWN0dXJlIHRvIHJlZ2lzdGVyIG5ldwoJICB0eXBlcy4KCjIwMDgtMTEtMTkgMTI6MjA6MDMgKzAwMDAgIEFuZHJldyBGZXJlbiA8YWNmZXJlbkB5YWhvby5jb20+CgoJICBnc3QvZ3N0b2JqZWN0LmM6IFVucmVmIHRoZSBHRW51bUNsYXNzIGFmdGVyIHVzYWdlIGFnYWluLiBGaXhlcyBidWcgIzU2MTUwMS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBBbmRyZXcgRmVyZW4gPGFjZmVyZW4gYXQgeWFob28gZG90IGNvbT4KCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2RlZmF1bHRfZGVlcF9ub3RpZnkpOgoJICBVbnJlZiB0aGUgR0VudW1DbGFzcyBhZnRlciB1c2FnZSBhZ2Fpbi4gRml4ZXMgYnVnICM1NjE1MDEuCgoyMDA4LTExLTE5IDEyOjA2OjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi4qOiBBZGQgZG8tbGF0ZW5jeSBzaWduYWwgd2l0aCB0aGUgb2xkIGRlZmF1bHQgZmFsbGJhY2sgaW1wbGVtZW50YXRpb24uIFRoaXMgYWxsb3dzIGZvciBjdXN0b20gbGF0ZW5jeSBjYWxjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKF9nc3RfYm9vbGVhbl9hY2N1bXVsYXRvciksIChnc3RfYmluX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jpbl9yZWNhbGN1bGF0ZV9sYXRlbmN5KSwgKGdzdF9iaW5fZG9fbGF0ZW5jeV9mdW5jKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgQWRkIGRvLWxhdGVuY3kgc2lnbmFsIHdpdGggdGhlIG9sZCBkZWZhdWx0IGZhbGxiYWNrIGltcGxlbWVudGF0aW9uLiBUaGlzCgkgIGFsbG93cyBmb3IgY3VzdG9tIGxhdGVuY3kgY2FsY3VsYXRpb25zIGZvciB3aGVuIHRoZSBkZWZhdWx0IGlzIG5vdAoJICBzdWZmaWNpZW50LgoJICBBUEk6IEdzdEJpbjo6ZG8tbGF0ZW5jeSBzaWduYWwuCgoyMDA4LTExLTE4IDEzOjM2OjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IEFkZCBuZXcgc3ltYm9scyB0byAuZGVmIGZpbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IHN5bWJvbHMgdG8gLmRlZiBmaWxlLgoKMjAwOC0xMS0xOCAwOTo1ODozMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBtZXRob2QgdG8gcmVjYWxjdWxhdGUgYW5kIHJlZGlzdHJpYnV0ZSB0aGUgbGF0ZW5jeSBvbiBhIGJpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3JlY2FsY3VsYXRlX2xhdGVuY3kpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgICogZ3N0L2dzdGJpbi5oOgoJICBBZGQgbWV0aG9kIHRvIHJlY2FsY3VsYXRlIGFuZCByZWRpc3RyaWJ1dGUgdGhlIGxhdGVuY3kgb24gYSBiaW4uCgkgIEFQSTogZ3N0X2Jpbl9yZWNhbGN1bGF0ZV9sYXRlbmN5KCkuCgoyMDA4LTExLTE4IDA5OjUyOjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5oOiBEb2N1bWVudCB0aGUgZnJlZV9mdW5jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIERvY3VtZW50IHRoZSBmcmVlX2Z1bmMuCgoyMDA4LTExLTE3IDIxOjQzOjA2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogVXNlIGdzdF9ndWludDY0X3RvX2dkb3VibGUgaW5zdGVhZCBvZiBnc3RfdXRpbF9ndWludDY0X3RvX2dkb3VibGUgYXMgaXQgaXMgbWFwcGVkIHRvIGEgY2FzdCBvbiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIFVzZSBnc3RfZ3VpbnQ2NF90b19nZG91YmxlIGluc3RlYWQgb2YgZ3N0X3V0aWxfZ3VpbnQ2NF90b19nZG91YmxlCgkgIGFzIGl0IGlzIG1hcHBlZCB0byBhIGNhc3Qgb24gbm9uLXdpbjMyIHBsYXRmb3Jtcy4KCjIwMDgtMTEtMTcgMjE6NDE6MzUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvOiBLZWVwIGxhc3QtdmFsdWUgYW5kIG9ubHkgY2FsbCBzZXRfcHJvcGVydHkgaWYgdmFsdWUgaGFzIGNoYW5nZWQuIFRoaXMgc3VwcmVzc2VzIGFsbCB0aGUgZ19vYmplYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXJwcml2YXRlLmg6CgkgIEtlZXAgbGFzdC12YWx1ZSBhbmQgb25seSBjYWxsIHNldF9wcm9wZXJ0eSBpZiB2YWx1ZSBoYXMgY2hhbmdlZC4gVGhpcwoJICBzdXByZXNzZXMgYWxsIHRoZSBnX29iamVjdF9ub3RpZmllcyB3ZSB3b3VsZCB0cmlnZ2VyIG90aGVyd2lzZS4gSXQKCSAgYWxzbyBhbGxvd3MgdGhlIHVzZXIgdG8gY2hhZ2UgdGhlIHZhbHVlIHdoaWxlIHRoZXJlIGlzIG5vIGNvbnRyb2xsZXIKCSAgY2hhbmdlLgoKMjAwOC0xMS0xNyAyMToyNTozOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLmM6IERvbid0IGNyYXNoIGlmIGVpdGhlciBvZiB0aGUgc3RyaW5nIEdWYWx1ZXMgaXMgZW1wdHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICBEb24ndCBjcmFzaCBpZiBlaXRoZXIgb2YgdGhlIHN0cmluZyBHVmFsdWVzIGlzIGVtcHR5LgoKMjAwOC0xMS0xNyAxNTo0ODoxNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYyAocHJpbnRfYWxsX3VyaV9oYW5kbGVycyk6IE5ldyBmdW5jdGlvbiwgcHJpbnRzIGEgc3VtbWFyeSBvZiB3aGF0IFVSSSBzY2hlbWVzIGFyZSBzdXBwb3J0ZWQgYnkgd2hhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTExLTE3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmMgKHByaW50X2FsbF91cmlfaGFuZGxlcnMpOiBOZXcgZnVuY3Rpb24sCgkgIHByaW50cyBhIHN1bW1hcnkgb2Ygd2hhdCBVUkkgc2NoZW1lcyBhcmUgc3VwcG9ydGVkIGJ5IHdoYXQKCSAgZWxlbWVudHMuCgkgIChtYWluKTogUGx1bWIgaW4gc3VwcG9ydCBmb3IgLS11cmktaGFuZGxlcnMgb3IgLXUsIGFuZCBmaXggdGhlCgkgIGFyZ2MgY2hlY2sgZm9yIC1hIGFuZCAtdS4KCjIwMDgtMTEtMTcgMDQ6NDk6MDYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3R1dGlscy5oOiBBZGQgR19HTlVDX1BVUkUgdG8gZ3N0X3V0aWxfdWludDY0X3NjYWxlKiBhbmQgdGhlIGRvdWJsZTwtPnVpbnQ2NCBjb252ZXJzaW9uIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFkZCBHX0dOVUNfUFVSRSB0byBnc3RfdXRpbF91aW50NjRfc2NhbGUqIGFuZCB0aGUgZG91YmxlPC0+dWludDY0CgkgIGNvbnZlcnNpb24gZnVuY3Rpb25zLgoKMjAwOC0xMS0xMyAxODowOTo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogQXZvaWQgY29zdGx5IHR5cGVjaGVja2luZyBmb3IgdHJpdmlhbGx5IGNvcnJlY3QgcG9pbnRlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfZmluYWxpemUpOgoJICBBdm9pZCBjb3N0bHkgdHlwZWNoZWNraW5nIGZvciB0cml2aWFsbHkgY29ycmVjdCBwb2ludGVycy4KCSAgKiBnc3QvZ3N0cG9sbC5jOiAoZ3N0X3BvbGxfd2FpdCk6CgkgIEFkZCBzb21lIEdfTElLRUxZIGhlcmUgYW5kIHRoZXJlLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiAoZ3N0X2FkYXB0ZXJfcHVzaCk6CgkgIEFkZCBzb21lIGRlYnVnIGluZm8uCgoyMDA4LTExLTEzIDE4OjA1OjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9yYW5kb20vd3RheS9wb2xsLXRpbWVvdXQ6IFNtYWxsIHR3ZWFrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vd3RheS9wb2xsLXRpbWVvdXQ6CgkgIFNtYWxsIHR3ZWFrcy4KCjIwMDgtMTEtMTMgMTg6MDM6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9vbGQvdGVzdHN1aXRlLzogUmVtb3ZlIHJlZmVyZW5jZXMgdG8gZGVwcmVjYXRlZCBBUEkgZ19tZW1fY2h1bmsqLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvaW50ZXJzZWN0aW9uLmM6IChtYWluKToKCSAgKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi9sb2FkaW5nLmM6IChtYWluKToKCSAgUmVtb3ZlIHJlZmVyZW5jZXMgdG8gZGVwcmVjYXRlZCBBUEkgZ19tZW1fY2h1bmsqLgoJICBGaXhlcyAjNTYwNDQyLgoKMjAwOC0xMS0xMiAxNjo1NTowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEFkZCAtLXBsdWdpbiBvcHRpb24uIEZpeGVzICM1NjAzMDEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChtYWluKToKCSAgQWRkIC0tcGx1Z2luIG9wdGlvbi4gRml4ZXMgIzU2MDMwMS4KCjIwMDgtMTEtMTIgMTI6NDU6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL3JhbmRvbS93dGF5L3BvbGwtdGltZW91dDogUXVpY2sgYnJhaW5kdW1wIGZvciBhIHBvc3NpYmxlIChub3QgdG90YWxseSB2ZXJpZmllZCkgYXRvbWljIGNhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL3d0YXkvcG9sbC10aW1lb3V0OgoJICBRdWljayBicmFpbmR1bXAgZm9yIGEgcG9zc2libGUgKG5vdCB0b3RhbGx5IHZlcmlmaWVkKSBhdG9taWMgY2FzZS4KCjIwMDgtMTEtMTIgMTA6Mzk6MjUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS4qOiBEb24ndCB3cml0ZSBhbmQgY2hlY2sgYSBDUkMgZm9yIHRoZSBiaW5hcnkgcmVnaXN0cnkgZmlsZS4gSXQncyBndWFyYW50ZWVkIHRoYXQgdGhlIHJlZ2lzdHJ5IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGVfY2h1bmspLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9pbml0aWFsaXplX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGVfY2FjaGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9jaGVja19tYWdpYyk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgIERvbid0IHdyaXRlIGFuZCBjaGVjayBhIENSQyBmb3IgdGhlIGJpbmFyeSByZWdpc3RyeSBmaWxlLiBJdCdzCgkgIGd1YXJhbnRlZWQgdGhhdCB0aGUgcmVnaXN0cnkgaXMgY29tcGxldGVseSB3cml0dGVuIChpdCdzIGZpcnN0IHdyaXR0ZW4KCSAgdG8gYSB0ZW1wb3JhcnkgZmlsZSBhbmQgdGhlbiBtb3ZlZCkgYW5kIGlmIHRoZSByZWdpc3RyeSB3YXMgY29ycnVwdGVkCgkgIGJ5IHNvbWUgaGFyZHdhcmUgZmFpbHVyZSB3ZSB3b3VsZCBoYXZlIGJpZ2dlciBwcm9ibGVtcy4KCSAgQnVtcCBiaW5hcnkgcmVnaXN0cnkgdmVyc2lvbiB0byAwLjEwLjIxLjEgZm9yIHRoaXMgYXMgaXQncyBhbgoJICBpbmNvbXBhdGlibGUgY2hhbmdlIGFuZCB0byBlbnN1cmUgdGhhdCB0aGUgcmVnaXN0cnkgZ2V0cyByZWJ1aWxkCgkgIGFmdGVyIHRoZSB1cGRhdGUuCgkgIFRoaXMgc2F2ZXMgc29tZSBtaWxsaXNlY29uZHMgZm9yIHJlYWRpbmcvd3JpdGluZyB0aGUgcmVnaXN0cnkuCgkgIEZpeGVzIGJ1ZyAjNTYwMzk5LgoKMjAwOC0xMS0xMSAxNDo1MDoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvcmFuZG9tL3d0YXkvcG9sbC10aW1lb3V0OiBTb21lIHBzZXVkbyBjb2RlIGZvciBob3cgd2UgY291bGQgaW1wbGVtZW50IGNsb2NrIHRpbWVvdXRzIHdpdGggR3N0UG9sbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vd3RheS9wb2xsLXRpbWVvdXQ6CgkgIFNvbWUgcHNldWRvIGNvZGUgZm9yIGhvdyB3ZSBjb3VsZCBpbXBsZW1lbnQgY2xvY2sgdGltZW91dHMgd2l0aCBHc3RQb2xsLgoKMjAwOC0xMS0xMCAxMzo1Njo1MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IFVwZGF0ZSBBdXRob3Igc3RyaW5nIHRvIG1hdGNoIG90aGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBVcGRhdGUgQXV0aG9yIHN0cmluZyB0byBtYXRjaCBvdGhlcnMuCgoyMDA4LTExLTA2IDE1OjM3OjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IFJlb3JnYW5pemUgc29tZSBtb3JlLCBiZSBtb3JlIGNvbnNlcnZhdGl2ZSB3aXRoIHRoZSBHU1RfVFlQRV9BUlJBWSBub3QgYmVpbmcgZml4ZWQgYW5kIGlubGluZSB0aGUgdHJpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3R5cGVfaXNfZml4ZWQpLCAoZ3N0X3ZhbHVlX2lzX2ZpeGVkKToKCSAgUmVvcmdhbml6ZSBzb21lIG1vcmUsIGJlIG1vcmUgY29uc2VydmF0aXZlIHdpdGggdGhlIEdTVF9UWVBFX0FSUkFZIG5vdAoJICBiZWluZyBmaXhlZCBhbmQgaW5saW5lIHRoZSB0cml2aWFsIGNoZWNrLgoKMjAwOC0xMS0wNiAxNTowOTozNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IENhbGxncmluZCBtaWNybyBvcHRpbWlzYXRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfY29weSksIChfZ3N0X2NhcHNfZnJlZSksCgkgIChnc3RfY2Fwc19tZXJnZV9zdHJ1Y3R1cmUpLCAoZ3N0X2NhcHNfZ2V0X3N0cnVjdHVyZSksCgkgIChnc3RfY2Fwc19jb3B5X250aCksIChnc3RfY2Fwc19zZXRfc2ltcGxlKSwKCSAgKGdzdF9jYXBzX3NldF9zaW1wbGVfdmFsaXN0KSwgKGdzdF9jYXBzX2lzX2ZpeGVkKSwKCSAgKGdzdF9jYXBzX2lzX2VxdWFsX2ZpeGVkKSwgKGdzdF9jYXBzX2ludGVyc2VjdCksCgkgIChnc3RfY2Fwc19zdWJ0cmFjdCksIChnc3RfY2Fwc19ub3JtYWxpemUpLCAoZ3N0X2NhcHNfZG9fc2ltcGxpZnkpLAoJICAoZ3N0X2NhcHNfdG9fc3RyaW5nKToKCSAgQ2FsbGdyaW5kIG1pY3JvIG9wdGltaXNhdGlvbnMuCgkgIEF2b2lkIGFycmF5IGJvdW5kcyBjaGVja3MgYW5kIGZvcmNlIGlubGluZSBvZiB0cml2aWFsIGZ1bmN0aW9uLgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3Rfc2V0X25hbWVfZGVmYXVsdCk6CgkgIC0xIGlzIGVxdWl2YWxlbnQgdG8gbGV0dGluZyBnbGliIHRvIHRoZSBzdHJsZW4gYnV0IHRoZW4gdGhlcmUgaXMgbW9yZQoJICByb29tIGZvciBvcHRpbWlzYXRpb25zIGFuZCBpdCdzIG5vdCBvdXIgZmF1bHQuCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9pZF9lbXB0eV9uZXdfd2l0aF9zaXplKToKCSAgbm8gbmVlZCB0byBjbGVhciB0aGUgYXJyYXksIHdlJ3JlIGNvb2wuCgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdHlwZV9pc19maXhlZCksIChnc3RfdmFsdWVfaXNfZml4ZWQpOgoJICBUaGUgbW9zdCBjb21tb24gX2lzX2ZpeGVkKCkgY2hlY2sgaXMgZG9uZSBvbiBmdW5kYW1lbnRhbCBnbGliIGJhc2UKCSAgdHlwZXMgc28gd2UgY2hlY2sgdGhpcyBmaXJzdCBpbnN0ZWFkIG9mIGRvaW5nIGEgaHVnZSBhbW91bnQgb2YKCSAgdXNlbGVzcyBHU1RfVFlQRV9BUlJBWSBjYWxscy4KCjIwMDgtMTEtMDYgMTI6MDM6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuaDogQWRkIGEgU0tJUCBzZWVrIGZsYWcgZm9yIHVzZSB3aXRoIGFkdmFuY2VkIHRyaWNrbW9kZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBBZGQgYSBTS0lQIHNlZWsgZmxhZyBmb3IgdXNlIHdpdGggYWR2YW5jZWQgdHJpY2ttb2Rlcy4KCSAgQVBJOiBHc3RTZWVrRmxhZ3M6OkdTVF9TRUVLX0ZMQUdfU0tJUAoKMjAwOC0xMS0wNSAxNjo1NzozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogTm8gbmVlZCB0byBtZW1zZXQsIHdlIGNhbiBjbGVhciB0aGUgdmFsdWUgb3Vyc2VsdmVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2lkX2VtcHR5X25ld193aXRoX3NpemUpOgoJICBObyBuZWVkIHRvIG1lbXNldCwgd2UgY2FuIGNsZWFyIHRoZSB2YWx1ZSBvdXJzZWx2ZXMuCgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdHlwZV9pc19maXhlZCksCgkgIChnc3RfdmFsdWVfZ2V0X2NvbXBhcmVfZnVuYyk6CgkgIFNvbWUgb3B0aW1pc2F0aW9ucyBmcm9tIGEgZmV3IGNhbGxncmluZCBzZXNzaW9uczoKCSAgV2hlbiBjaGVja2luZyBpZiBhIHR5cGUgaXMgZml4ZWQsIGNoZWNrIGZvciB0cml2aWFsIGZ1bmRhbWVudGFsIHR5cGVzCgkgIGZpcnN0IGJlZm9yZSBjaGVja2luZyB0eXBlcyBmb3Igd2hpY2ggd2UgbmVlZCB0byBnZXQgdGhlIHR5cGUgZm9sbG93ZWQKCSAgYnkgdGhlIGhlYXZ5IGR1dHkgdHlwZSBjaGVja3MsIHRoaXMgcmVkdWNlcyB0aGUgYW1vdW50IG9mCgkgIGdfdHlwZV9mdW5kYW1lbnRhbCgpIGNhbGxzIGEgbG90LgoJICBXaGVuIGdldHRpbmcgdGhlIGNvbXBhcmUgZnVuY3Rpb24sIGZpcnN0IGNoZWNrIGZvciBvdXIgcmVnaXN0ZXJlZCB0eXBlcy4KCSAgSWYgdGhhdCBmYWlscywgZG8gdGhlIGhlYXZ5IGR1dHkgZ190eXBlX2lzX2EoKSBjaGVja3MsIHJlZHVjZXMgdGhlCgkgIGFtb3VudCBvZiBnX3R5cGVfaXNfYSgpIGNvbnNpZGVyYWJseS4KCjIwMDgtMTEtMDUgMTE6MTc6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBNdW1ibGUgc29tZXRoaW5nIGFib3V0IHJlbW92aW5nIEdzdFhNTC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgTXVtYmxlIHNvbWV0aGluZyBhYm91dCByZW1vdmluZyBHc3RYTUwuCgoyMDA4LTExLTA0IDE4OjEwOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBHZXQgdGhlIHNlcW51bSBiZWZvcmUgd2UgZGlzcG9zZSB0aGUgbWVzc2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgR2V0IHRoZSBzZXFudW0gYmVmb3JlIHdlIGRpc3Bvc2UgdGhlIG1lc3NhZ2UuCgoyMDA4LTExLTA0IDE2OjEwOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogUmVmZXIgdG8gdGhlIGZyYW1lc3RlcHBpbmcgZG9jdW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFJlZmVyIHRvIHRoZSBmcmFtZXN0ZXBwaW5nIGRvY3VtZW50LgoKMjAwOC0xMS0wNCAxNTo1Njo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIENvcHkgc2VxbnVtcyBmcm9tIGV2ZW50cyB0byBtZXNzYWdlcyBzbyB0aGF0IHRoZXkgY2FuIGFsbCBiZSByZWxhdGVkIGJhY2sgdG8gZWFjaG90aGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5faGFuZGxlX2FzeW5jX3N0YXJ0KSwKCSAgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyksIChnc3RfYmluX3F1ZXJ5KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3JlbmRlcl9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKSwgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBDb3B5IHNlcW51bXMgZnJvbSBldmVudHMgdG8gbWVzc2FnZXMgc28gdGhhdCB0aGV5IGNhbiBhbGwgYmUgcmVsYXRlZAoJICBiYWNrIHRvIGVhY2hvdGhlci4KCjIwMDgtMTEtMDQgMTU6NTI6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IFByaW50IHRoZSBtZXNzYWdlIHNlcW51bXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBQcmludCB0aGUgbWVzc2FnZSBzZXFudW1zLgoKMjAwOC0xMS0wNCAxMzo1NjozNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmMgKGdzdF91dGlsX3NlcW51bV9uZXh0KTogUmVmYWN0b3IgZm9yIGNsYXJpdHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTExLTA0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R1dGlscy5jIChnc3RfdXRpbF9zZXFudW1fbmV4dCk6IFJlZmFjdG9yIGZvciBjbGFyaXR5LgoJICBBbHNvIGFkZCBBUEk6IHRvIHByZXZpb3VzIGNoYW5nZWxvZyBlbnRyeS4KCjIwMDgtMTEtMDQgMTI6MjI6NTMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIEFkZCBzZXF1ZW5jZSBudW1iZXJzIHRvIGV2ZW50cyBhbmQgbWVzc2FnZXMuIFNlZSAjNTU5MjUwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0xMS0wNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgQWRkIHNlcXVlbmNlIG51bWJlcnMgdG8gZXZlbnRzIGFuZCBtZXNzYWdlcy4gU2VlICM1NTkyNTAuCgkgICogZ3N0L2dzdHV0aWxzLmMgKGdzdF91dGlsX3NlcW51bV9uZXh0LCBnc3RfdXRpbF9zZXFudW1fY29tcGFyZSk6CgkgIE5ldyBmdW5jdGlvbnMuCgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdGV2ZW50LmMgKF9nc3RfZXZlbnRfY29weSwgZ3N0X2V2ZW50X25ldyk6IEluaXRpYWxpemUgbmV3CgkgIGV2ZW50cyB3aXRoIGEgbmV3IHNlcXVlbmNlIG51bWJlciwgYW5kIGNvcHkgaXQgd2hlbiBjb3B5aW5nLgoJICAoZ3N0X2V2ZW50X2dldF9zZXFudW0sIGdzdF9ldmVudF9zZXRfc2VxbnVtKTogQWNjZXNzb3JzIGZvciBhbgoJICBldmVudCdzIHNlcXVlbmNlIG51bWJlci4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIGdzdC9nc3RtZXNzYWdlLmMgKF9nc3RfbWVzc2FnZV9jb3B5LCBnc3RfbWVzc2FnZV9uZXdfY3VzdG9tKToKCSAgKGdzdF9ldmVudF9nZXRfc2VxbnVtLCBnc3RfZXZlbnRfc2V0X3NlcW51bSk6IEFzIHdpdGggZXZlbnRzLCBzbwoJICB3aXRoIG1lc3NhZ2VzLgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBuZXcgZnVuY3Rpb25zIHRvIHRoZSBkb2NzLgoKMjAwOC0xMS0wNCAxMTo1NTowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvbWFudWFsLzogU29tZSBBcHBsaWNhdGlvbiBEZXZlbG9wbWVudCBNYW51YWwgZml4ZXMgdGhhbmtzIHRvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXBvc2l0aW9uLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYmlucy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2ludHJvLWdzdHJlYW1lci54bWw6CgkgICogZG9jcy9tYW51YWwvaW50cm8tcHJlZmFjZS54bWw6CgkgIFNvbWUgQXBwbGljYXRpb24gRGV2ZWxvcG1lbnQgTWFudWFsIGZpeGVzIHRoYW5rcyB0bwoJICBBbmRyZXcgRmVyZW4uIEZpeGVzICM1NTg0NTkuCgoyMDA4LTExLTAzIDEyOjI5OjEwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogRG9uJ3QgYm90aGVyIHdpdGggdGhlIEdUaW1lciBpZiB3ZSBkb24ndCBvdXRwdXQgdGhlIHJlc3VsdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBEb24ndCBib3RoZXIgd2l0aCB0aGUgR1RpbWVyIGlmIHdlIGRvbid0IG91dHB1dCB0aGUgcmVzdWx0cy4KCjIwMDgtMTEtMDMgMTA6NTk6NDkgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOiBBZGQgV0lOMzJfTElCUyB0byBsaWJnc3RuZXQgTElCQURELiBGaXhlcyAjNTU3MzAwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IERhdmlkIFNjaGxlZWYgIDxkc0BzY2hsZWVmLm9yZz4KCSAgKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIEFkZCBXSU4zMl9MSUJTIHRvIGxpYmdzdG5ldCBMSUJBREQuIEZpeGVzICM1NTczMDAuCgoyMDA4LTEwLTMxIDE1OjU0OjQ0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogT2ggbXksIHN0dWRpcCwgc3R1cGlkIG1lLiBSZW1vdmUgZG91YmxlIHN0YXQoKSBjYWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgT2ggbXksIHN0dWRpcCwgc3R1cGlkIG1lLiBSZW1vdmUgZG91YmxlIHN0YXQoKSBjYWxsLgoKMjAwOC0xMC0zMSAxNDoyNDo0OSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHByZXNldC5jOiBVc2UgZ191bmxpbmsgaW5zdGVhZCBvZiB1bmxpbmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwcmVzZXQuYzoKCSAgVXNlIGdfdW5saW5rIGluc3RlYWQgb2YgdW5saW5rLgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgVXNlIGdsaWIgdHlwZS4KCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgQWRkIGEgRklYTUU6LgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIEZvcm1hdHRpbmcgJiB3aGl0ZXNwYWNlcy4KCjIwMDgtMTAtMzEgMDg6NTM6MjcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogRG9jIHR5cG8uIFVzZSByZXR1cm4gdmFsdWUgb2YgcGFyZW50X2NsYXNzLT5ldmVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBEb2MgdHlwby4gVXNlIHJldHVybiB2YWx1ZSBvZiBwYXJlbnRfY2xhc3MtPmV2ZW50LgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIENoYWluIHVwIGF0IHRoZSBlbmQgZm9yIGNvbnNpc3RlbmN5LgoKMjAwOC0xMC0zMCAxNToyOTo1MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy86IENoYW5nZSB0byB4aW5jbHVkZSBiYXNlZCBidWlsZCAtIGl0cyBmYXN0ZXIgYW5kIGVhc2llciB0byBtYWludGFpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgQ2hhbmdlIHRvIHhpbmNsdWRlIGJhc2VkIGJ1aWxkIC0gaXRzIGZhc3RlciBhbmQgZWFzaWVyIHRvIG1haW50YWluLgoKMjAwOC0xMC0zMCAxNDoxNToxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0LzogVXNlIGdfdW5saW5rKCkgYXMgbm9uZSBvZiB0aGVzZSBhcmUgZGlyZWN0b3JpZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJICBVc2UgZ191bmxpbmsoKSBhcyBub25lIG9mIHRoZXNlIGFyZSBkaXJlY3Rvcmllcy4KCjIwMDgtMTAtMjkgMTc6MDQ6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogU29tZSBtb3JlIGNvbW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9wcm92aWRlX2Nsb2NrX2Z1bmMpOgoJICBTb21lIG1vcmUgY29tbWVudHMuCgoyMDA4LTEwLTI3IDE1OjAyOjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IElmIHdlIGhhdmUgYSBmaXhhdGUgZnVuY3Rpb24sIGNhbGwgaXQgZXZlbiBpZiB3ZSBhbHJlYWR5IGhhdmUgZml4ZWQgY2FwcyBiZWNhdXNlIHRoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2ZpbmRfdHJhbnNmb3JtKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRyYW5nZSk6CgkgIElmIHdlIGhhdmUgYSBmaXhhdGUgZnVuY3Rpb24sIGNhbGwgaXQgZXZlbiBpZiB3ZSBhbHJlYWR5IGhhdmUgZml4ZWQgY2FwcwoJICBiZWNhdXNlIHRoZSBzdWJjbGFzcyBtaWdodCBhZGQgc29tZSBjYXBzLiBNYWtlcyBhdWRpb2NvbnZlcnQgYWRkIGEKCSAgZGVmYXVsdCBjaGFubmVsIGxheW91dC4KCjIwMDgtMTAtMjQgMDk6NDE6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogQ2xlYXIgdGhlIG91dHB1dCBidWZmZXIgdmFyaWFibGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0cmFuZ2UpOgoJICBDbGVhciB0aGUgb3V0cHV0IGJ1ZmZlciB2YXJpYWJsZS4KCSAgQ2xlYW51cHMgdG8gdGhlIGVycm9yIHBhdGggaW4gdGhlIGdldHJhbmdlIGZ1bmN0aW9uLgoJICBGaXhlcyAjNTU3NjQ5LgoKMjAwOC0xMC0yMyAxMjo1Mjo1OCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IFVzZSBnc3RfYnVmZmVyX3RyeV9uZXdfYW5kX2FsbG9jKCkgYW5kIGhhbmRsZSBlcnJvcnMgaW5zdGVhZCBvZiB1c2luZyBnc3RfYnVmZmVyX25ld19hbmRfYWxsb2MoKSB3Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY3JlYXRlKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jcmVhdGVfcmVhZCk6CgkgIFVzZSBnc3RfYnVmZmVyX3RyeV9uZXdfYW5kX2FsbG9jKCkgYW5kIGhhbmRsZSBlcnJvcnMgaW5zdGVhZCBvZgoJICB1c2luZyBnc3RfYnVmZmVyX25ld19hbmRfYWxsb2MoKSB3aGljaCBhYm9ydHMgaWYgdGhlIGJ1ZmZlciBjb3VsZG4ndAoJICBiZSBhbGxvY2F0ZWQuCgoyMDA4LTEwLTIzIDA5OjQ5OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogU2V0IHRoZSBsYXN0X3N0b3AgdG8gYSBtb3JlIG1lYW5pbmdmdWwgcG9zaXRpb24gd2hlbiBjb25maWd1cmluZyB0aGUgc2VnbWVudC4gaWUuIHRoZSBzdGFydC9zdG9wIG9mLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudF9mdWxsKToKCSAgU2V0IHRoZSBsYXN0X3N0b3AgdG8gYSBtb3JlIG1lYW5pbmdmdWwgcG9zaXRpb24gd2hlbiBjb25maWd1cmluZyB0aGUKCSAgc2VnbWVudC4gaWUuIHRoZSBzdGFydC9zdG9wIG9mIHRoZSBzZWdtZW50IG9yIGNsaXBwZWQgYWdhaW5zdCB0aGUKCSAgdXBkYXRlZCBzZWdtZW50IGJvdW5kYXJpZXMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkIHNvbWUgdW5pdCB0ZXN0cyBmb3IgdGhlIGxhc3Rfc3RvcC4KCjIwMDgtMTAtMjMgMDc6MTE6NTQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOiBVc2UgR1NUXyhSRUFEfFdSSVRFKV8oRkxPQVR8RE9VQkxFKV8oTEV8QkUpIGluc3RlYWQgb2Ygb3VyIG93biBjb3BpZXMgb2YgdGhlbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIFVzZSBHU1RfKFJFQUR8V1JJVEUpXyhGTE9BVHxET1VCTEUpXyhMRXxCRSkgaW5zdGVhZCBvZiBvdXIgb3duCgkgIGNvcGllcyBvZiB0aGVtLgoKMjAwOC0xMC0yMyAwNzowOToyMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQVBJOiBNb3ZlIGZsb2F0IGVuZGlhbm5lc3MgY29udmVyc2lvbiBtYWNyb3MgZnJvbSBsaWJnc3RmbG9hdGNhc3QgdG8gY29yZSBhcyBpdCdzIHVzZWZ1bCBpbiBnZW5lcmFsLCBldmVuIGluIGNvcmUuIEZpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFQSTogTW92ZSBmbG9hdCBlbmRpYW5uZXNzIGNvbnZlcnNpb24gbWFjcm9zIGZyb20gbGliZ3N0ZmxvYXRjYXN0CgkgIHRvIGNvcmUgYXMgaXQncyB1c2VmdWwgaW4gZ2VuZXJhbCwgZXZlbiBpbiBjb3JlLiBGaXhlcyBidWcgIzU1NTE5Ni4KCSAgVGhpcyBhZGRzIEdET1VCTEVfRlJPTV9CRSwgR0RPVUJMRV9GUk9NX0xFLCBHRE9VQkxFX1RPX0JFLAoJICBHRE9VQkxFX1RPX0xFLCBHRE9VQkxFX1NXQVBfTEVfQkUsIEdGTE9BVF9GUk9NX0JFLCBHRkxPQVRfRlJPTV9MRSwKCSAgR0ZMT0FUX1RPX0JFLCBHRkxPQVRfVE9fTEUsIEdGTE9BVF9TV0FQX0xFX0JFLgoJICBBbHNvIGFkZCBHU1RfUkVBRF8gYW5kIEdTVF9XUklURV8gbWFjcm9zIGZvciBmbG9hdHMgYW5kIGRvdWJsZXM6CgkgIEdTVF9SRUFEX0ZMT0FUX0xFLCBHU1RfUkVBRF9GTE9BVF9CRSwgR1NUX1JFQURfRE9VQkxFX0xFLAoJICBHU1RfUkVBRF9ET1VCTEVfQkUsIEdTVF9XUklURV9GTE9BVF9MRSwgR1NUX1dSSVRFX0ZMT0FUX0JFLAoJICBHU1RfV1JJVEVfRE9VQkxFX0xFLCBHU1RfV1JJVEVfRE9VQkxFX0JFLgoKMjAwOC0xMC0yMiAxNDo0NzowNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQVBJOiBBZGQgZ3N0X2J5dGVfcmVhZGVyX2dldF9kYXRhIGFuZCBnc3RfYnl0ZV9yZWFkZXJfcGVla19kYXRhIHRvIGdldCBhIHBvaW50ZXIgdG8gdGhlIGRhdGEgYXQgdGhlIGN1cnJlbnQgcG9zaXRpb24gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6IChnc3RfYnl0ZV9yZWFkZXJfZ2V0X2RhdGEpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX3BlZWtfZGF0YSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBBUEk6IEFkZCBnc3RfYnl0ZV9yZWFkZXJfZ2V0X2RhdGEgYW5kIGdzdF9ieXRlX3JlYWRlcl9wZWVrX2RhdGEKCSAgdG8gZ2V0IGEgcG9pbnRlciB0byB0aGUgZGF0YSBhdCB0aGUgY3VycmVudCBwb3NpdGlvbiBhbmQgaGF2ZQoJICBhIGd1YXJhbnRlZWQgc2l6ZS4KCjIwMDgtMTAtMjIgMTQ6MjU6MTYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBGaXggYSBidWcgaW4gdGhlIG91dHB1dCBvZiB0aGUgY29uZmlndXJlIHNjcmlwdCBzdW1tYXJ5IHdoZW4gLS1nc3QtZGlzYWJsZS1yZWdpc3RyeSBpcyBzdXBwbGllZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEZpeCBhIGJ1ZyBpbiB0aGUgb3V0cHV0IG9mIHRoZSBjb25maWd1cmUgc2NyaXB0IHN1bW1hcnkKCSAgd2hlbiAtLWdzdC1kaXNhYmxlLXJlZ2lzdHJ5IGlzIHN1cHBsaWVkCgoyMDA4LTEwLTIyIDEzOjQ3OjIwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvOiBGaXggdGhlIG5hbWVzIG9mIDIgZnVuY3Rpb25zIGluIHRoZSBkb2NzIHN0cmluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIEZpeCB0aGUgbmFtZXMgb2YgMiBmdW5jdGlvbnMgaW4gdGhlIGRvY3Mgc3RyaW5ncy4KCjIwMDgtMTAtMjEgMTY6MzA6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogUHJvdGVjdCBzaW5rX2FsbG9jIGNhcHMgd2l0aCB0aGUgc2lua3BhZCBsb2NrIHRvIGF2b2lkIG5hc3R5IGNhcHMgcmVmY291bnQgcHJvYmxlbXMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3N1Z2dlc3QpOgoJICBQcm90ZWN0IHNpbmtfYWxsb2MgY2FwcyB3aXRoIHRoZSBzaW5rcGFkIGxvY2sgdG8gYXZvaWQgbmFzdHkgY2FwcwoJICByZWZjb3VudCBwcm9ibGVtcyBhcyBzZWVuIGluIGJhbnNoZWUgYW5kIG1heWJlIGFsc28gaW4gZmFyc2lnaHQyLgoJICBSZW1vdmUgYXRvbWljIGludCBub3cgdGhhdCB3ZSBuZWVkIHRvIHRha2UgdGhlIGxvY2sgYW55d2F5cy4KCjIwMDgtMTAtMjAgMTU6MTg6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEltcGxlbWVudCBtb3JlIHNlZWtpbmcgaW4gcHVsbCBtb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2RlZmF1bHRfZG9fc2VlayksCgkgIChnc3RfYmFzZV9zaW5rX2RlZmF1bHRfcHJlcGFyZV9zZWVrX3NlZ21lbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19wZXJmb3JtX3NlZWspLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb25fbGFzdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbl9wYXVzZWQpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSk6CgkgIEltcGxlbWVudCBtb3JlIHNlZWtpbmcgaW4gcHVsbCBtb2RlLgoJICBVc2UgcGFkIGNvbnZlcnQgZnVuY3Rpb25zIHRvIGNvbnZlcnQgcG9zaXRpb24gdG8gdGhlIHJlcXVlc3RlZCBmb3JtYXQuCgkgIEZpeCBwb3NpdGlvbi9kdXJhdGlvbiByZXBvcnRpbmcgaW4gcHVsbCBtb2RlLgoJICBJbXBsZW1lbnQgcG9zaXRpb24gYW5kIGR1cmF0aW9uIHJlcG9ydGluZyBpbiBvdGhlciBmb3JtYXRzIHRoYW4gdGltZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEFkZCBtZW1iZXIgdG8ga2VlcCB0cmFjayBvZiB3aGVuIHRoZSBzZWdtZW50IGlzIHBsYXlpbmcuCgoyMDA4LTEwLTIwIDEzOjMyOjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBXaGVuIHdlIHVzZSBnc3RfcGFkX2FsbG9jX2J1ZmZlcigpIHdpdGhvdXQgd2FudGluZyB0byBzZXQgdGhlIGNhcHMgd2UgYWxzbyBkb24ndCBuZWVkIHRvIGNoZWNrIGlmIHRoZSBjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfY29uZmlndXJlX3NyYyk6CgkgIFdoZW4gd2UgdXNlIGdzdF9wYWRfYWxsb2NfYnVmZmVyKCkgd2l0aG91dCB3YW50aW5nIHRvIHNldCB0aGUgY2FwcyB3ZQoJICBhbHNvIGRvbid0IG5lZWQgdG8gY2hlY2sgaWYgdGhlIGNhcHMgYXJlIGNvbXBhdGlibGUgYmVjYXVzZSB0aGUgY2FsbGVyCgkgIHByZXN1bWFibHkgaXMgZ29pbmcgdG8gcGVyZm9ybSBpdHMgb3duIGN1c3RvbSBjaGVja3MuIEZpeGVzIHNvbWUgY2FzZXMKCSAgd2hlcmUgYmFzZXRyYW5zZm9ybSBlbGVtZW50cyB3b3VsZCBlcnJvciBvdXQgd2hlbiBpdCB3YXMgbm90IG5lZWRlZC4KCjIwMDgtMTAtMjAgMTM6Mjk6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogVXBkYXRlIGNvbW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2Vlayk6CgkgIFVwZGF0ZSBjb21tZW50LgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3JlY29uZmlndXJlKToKCSAgQWRkIHNvbWUgZGVidWcgaW5mby4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIEFkZCBuZXcgbWV0aG9kLgoKMjAwOC0xMC0xOSAxOTo1NzoyNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZGVmYXVsdF9kb19zZWVrKTsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZGVmYXVsdF9kb19zZWVrKTsKCSAgUmVtb3ZlIGR1cGxpY2F0ZWQgYXNzaWdubWVudCBhbmQgbG9nIGEgbWVzc2FnZSBpbiBmYWlsdXJlIGNhc2UuCgoyMDA4LTEwLTE5IDEwOjEzOjM5ICswMDAwICBEaWcgR2UgPGRpZy5nZS5jbkBnbWFpbC5jb20+CgoJICB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzogRml4IGNvcHknbidwYXN0ZSBidWcgaW4gaGVsbG8gd29ybGQgZXhhbXBsZSAoIzU1NjkwMCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRGlnIEdlIDxkaWcuZ2UuY24gYXQgZ21haWwgY29tPgoJICAqIHRlc3RzL2V4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOiAobWFpbik6CgkgIEZpeCBjb3B5J24ncGFzdGUgYnVnIGluIGhlbGxvIHdvcmxkIGV4YW1wbGUgKCM1NTY5MDApLgoKMjAwOC0xMC0xNyAxMzoyNzo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUXVlcnkgdGhlIHRvdGFsIG51bWJlciBvZiBieXRlcyB3aGVuIGFjdGl2YXRpbmcgdGhlIHBhZCBpbiBwdWxsIG1vZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcGFkX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSk6CgkgIFF1ZXJ5IHRoZSB0b3RhbCBudW1iZXIgb2YgYnl0ZXMgd2hlbiBhY3RpdmF0aW5nIHRoZSBwYWQgaW4gcHVsbCBtb2RlLgoJICBJbXBsZW1lbnQgZHVyYXRpb24gcXVlcnkgaW4gcHVsbCBtb2RlIGJ5IHVzaW5nIHRoZSBpbnN0YWxsZWQgcGFkIGNvbnZlcnQKCSAgZnVuY3Rpb24gdG8gY29udmVydCBmcm9tIGJ5dGVzIHRvIHRoZSByZXF1ZXN0ZWQgZm9ybWF0LgoKMjAwOC0xMC0xNiAxNDowOToxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBtZXRob2QgdG8gY29tbWl0IHRoZSBzdGF0ZSBpbiBzdWJjbGFzc2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZG9fcHJlcm9sbCksCgkgIChnc3RfYmFzZV9zaW5rX2ZsdXNoX3N0YXJ0KSwgKGdzdF9iYXNlX3NpbmtfZmx1c2hfc3RvcCksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF9iYXNlX3NpbmtfbG9vcCksIChnc3RfYmFzZV9zaW5rX3BhZF9hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9iYXNlX3Npbmtfc2VuZF9ldmVudCksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBBZGQgbWV0aG9kIHRvIGNvbW1pdCB0aGUgc3RhdGUgaW4gc3ViY2xhc3Nlcy4KCSAgUmVmYWN0b3IgdGhlIGZsdXNoX3N0YXJ0IGFuZCBmbHVzaF9zdG9wIGNvZGUgYmVjYXVzZSB3ZSBuZWVkIGl0IGZvcgoJICBmbHVzaGluZyB3aGlsZSBzZWVraW5nIHRvby4KCSAgSW1wbGVtZW50IHRoZSBiZWdpbm5pbmdzIG9mIHNlZWtpbmcgaW4gcHVsbCBtb2RlLgoJICBVc2UgdGhlIHNlZ21lbnQgbGFzdF9zdG9wIGZpZWxkIGZvciB0aGUgcHVsbGluZyBvZmZzZXQuCgkgIEZpeCB0aGUgcGF1c2UgbWV0aG9kIGluIHB1bGwgbW9kZS4KCSAgQ29uZmlndXJlIHRoZSBzZWdtZW50IHRvIEJZVEVTIGZvciBwdWxsIG1vZGUuCgkgIEFQSTogR3N0QmFzZVNpbms6OmdzdF9iYXNlX3NpbmtfZG9fcHJlcm9sbCgpCgoyMDA4LTEwLTE2IDEzOjU2OjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFVwZGF0ZSBzb21lIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpOgoJICBVcGRhdGUgc29tZSBkb2NzLgoKMjAwOC0xMC0xNCAxNzoxMDo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RxdWFyay5jOiBGaXggcHJpbnRmIGZvcm1hdCB3YXJuaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVhcmsuYzogKF9wcml2X2dzdF9xdWFya3NfaW5pdGlhbGl6ZSk6CgkgIEZpeCBwcmludGYgZm9ybWF0IHdhcm5pbmcuCgoyMDA4LTEwLTE0IDEyOjM0OjU2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiBGaXggZmxvdyBhZ2dyZWdhdGlvbiBvZiB0ZWUuIEVycm9yIG91dCBpbW1lZGlhdGVseSBmb3IgYWxsIGZsb3cgcmV0dXJucyBleGNlcHQgT0sgYW5kIE5PVF8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfaGFuZGxlX2J1ZmZlcik6CgkgIEZpeCBmbG93IGFnZ3JlZ2F0aW9uIG9mIHRlZS4gRXJyb3Igb3V0IGltbWVkaWF0ZWx5IGZvciBhbGwgZmxvdyByZXR1cm5zCgkgIGV4Y2VwdCBPSyBhbmQgTk9UX0xJTktFRCwgcmV0dXJuIE5PVF9MSU5LRUQgaWYgYWxsIHBhZHMgYXJlIG5vdCBsaW5rZWQKCSAgYW5kIHJldHVybiBPSyBpZiBhdCBsZWFzdCBvbmUgcGFkIGlzIGxpbmtlZC4KCSAgQmVmb3JlIHdlIGVycm9yZWQgb3V0IG9uICJmYXRhbCIgZmxvdyByZXR1cm5zIChpLmUuIG5vdCBmb3IgV1JPTkdfU1RBVEUpCgkgIGFuZCBvdGhlcndpc2UgcmV0dXJuZWQgdGhlIGZsb3cgcmV0dXJuIG9mIHRoZSBsYXN0IHBhZCwgd2hpY2ggaXMgd3JvbmcuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6IChfZmFrZV9jaGFpbiksIChfZmFrZV9jaGFpbl9lcnJvciksCgkgIChHU1RfU1RBUlRfVEVTVCksICh0ZWVfc3VpdGUpOgoJICBBZGQgdW5pdCB0ZXN0cyBmb3IgdGhlIGZsb3cgYWdncmVnYXRpb24uCgoyMDA4LTEwLTEzIDE3OjE5OjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogUmVtb3ZlIGl0ZW0gZnJvbSB0aGUgdG9kbyBsaXN0IGJlY2F1c2UgaXQgd2FzIGZpeGVkIHdpdGggdGhlIGxhdGVuY3kgc3RhdGUgY2hhbmdlIHJld3JpdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBSZW1vdmUgaXRlbSBmcm9tIHRoZSB0b2RvIGxpc3QgYmVjYXVzZSBpdCB3YXMgZml4ZWQgd2l0aCB0aGUgbGF0ZW5jeQoJICBzdGF0ZSBjaGFuZ2UgcmV3cml0ZXMuCgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDoKCSAgVXBkYXRlIHNvbWUgZG9jcy4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfbmV3X3NlZ21lbnRfZnVsbCksCgkgIChnc3RfZXZlbnRfcGFyc2VfbmV3X3NlZ21lbnRfZnVsbCksIChnc3RfZXZlbnRfbmV3X2J1ZmZlcl9zaXplKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9idWZmZXJfc2l6ZSksIChnc3RfZXZlbnRfbmV3X3FvcyksCgkgIChnc3RfZXZlbnRfcGFyc2VfcW9zKSwgKGdzdF9ldmVudF9uZXdfc2VlayksCgkgIChnc3RfZXZlbnRfcGFyc2Vfc2VlayksIChnc3RfZXZlbnRfbmV3X2xhdGVuY3kpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX2xhdGVuY3kpOgoJICBVc2UgcXVhcmtzIHRvIGNvbnN0cnVjdCBhbmQgcGFyc2UgZXZlbnRzLgoJICAqIGdzdC9nc3RxdWFyay5jOiAoX3ByaXZfZ3N0X3F1YXJrc19pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0cXVhcmsuaDoKCSAgQWRkIHNvbWUgbW9yZSBxdWFya3MgdG8gdGhlIHRhYmxlLgoJICBFbWl0IGEgd2FybmluZyB3aGVuIHRoZSBxdWFyayB0YWJsZXMgYXJlIG5vdCBpbiBzeW5jLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkIGFuIGFzc2VydC4KCjIwMDgtMTAtMTMgMTY6NDc6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvOiBEb24ndCBpbnN0YWxsIHN0YXRpYyBsaWJzIGZvciBwbHVnaW5zLiBGaXhlcyAjNTUwODUxIGZvciBjb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkgIERvbid0IGluc3RhbGwgc3RhdGljIGxpYnMgZm9yIHBsdWdpbnMuIEZpeGVzICM1NTA4NTEgZm9yIGNvcmUuCgoyMDA4LTEwLTEzIDEwOjUwOjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1cy5jOiBGaXggZGVhZGxvY2ssIGdfc291cmNlX2dldF9pZCgpIGNhbm5vdCBiZSBjYWxsZWQgaW4gZmluYWxpemUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfc291cmNlX2ZpbmFsaXplKSwKCSAgKGdzdF9idXNfYWRkX3dhdGNoX2Z1bGxfdW5sb2NrZWQpLCAoZ3N0X2J1c19hZGRfd2F0Y2hfZnVsbCksCgkgIChnc3RfYnVzX2VuYWJsZV9zeW5jX21lc3NhZ2VfZW1pc3Npb24pLAoJICAoZ3N0X2J1c19kaXNhYmxlX3N5bmNfbWVzc2FnZV9lbWlzc2lvbiksCgkgIChnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2hfZnVsbCksIChnc3RfYnVzX3JlbW92ZV9zaWduYWxfd2F0Y2gpOgoJICBGaXggZGVhZGxvY2ssIGdfc291cmNlX2dldF9pZCgpIGNhbm5vdCBiZSBjYWxsZWQgaW4gZmluYWxpemUuCgkgIEtlZXAgdHJhY2sgb2YgdGhlIHdhdGNoIHNvdXJjZSBieSBrZWVwaW5nIGEgcG9pbnRlciB0byB0aGUgc291cmNlIG9iamVjdAoJICBpbnN0ZWFkLgoJICBVc2UgdGhlIGJ1cyBsb2NrIHRvIHByb3RlY3QgYWNjZXNzIHRvIHRoZSBwb2ludGVyIHRvIHRoZSBjdXJyZW50CgkgIHdhdGNoIHNvdXJjZS4KCjIwMDgtMTAtMTMgMDk6MjI6MjIgKzAwMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJICBnc3QvZ3N0YnVzLmM6IE9ubHkgYWxsb3cgb25lIGJ1cyB3YXRjaCB0byBiZSBzZXQgYXQgYSB0aW1lLiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBkaXNwYXRjaGVyIHBvcHMgdGhlIG1lc3NhZ2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2Ugb24gUGF0Y2ggYnk6IE9saXZpZXIgQ3JldGUgPHRlc3RlciBhdCB0ZXN0ZXIgZG90IGNhPgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfc291cmNlX2ZpbmFsaXplKSwKCSAgKGdzdF9idXNfYWRkX3dhdGNoX2Z1bGwpLCAoZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoX2Z1bGwpOgoJICBPbmx5IGFsbG93IG9uZSBidXMgd2F0Y2ggdG8gYmUgc2V0IGF0IGEgdGltZS4gVGhpcyBpcyBuZWNlc3NhcnkKCSAgYmVjYXVzZSB0aGUgZGlzcGF0Y2hlciBwb3BzIHRoZSBtZXNzYWdlIGZyb20gdGhlIGJ1cyBhbmQgdGhlIHNlY29uZAoJICB3YXRjaGVyIHdpbGwgdGhlbiBnZXQgTlVMTCBvciB0aGUgbmV4dCBtZXNzYWdlIChhbmQgdGhlIGZpcnN0IHdvbid0CgkgIGdldCB0aGlzIG5leHQgbWVzc2FnZSB0aGVuLCBldGMpLiBJZiBtb3JlIHRoYW4gb25lICJ3YXRjaGVyIiBpcwoJICByZXF1aXJlZCBzaWduYWwgd2F0Y2hlcyBzaG91bGQgYmUgdXNlZC4gRml4ZXMgYnVnICM1MjYwNDQuCgoyMDA4LTEwLTEyIDIyOjE2OjAwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogQ2hhbmdlIHRoZSBwcmludGluZyBvZiB0aGUgJ2J1ZmZlcmluZy4uLicgb3V0cHV0IHRvIGF2b2lkIHB1dHRpbmcgYSBcciBpbiBhIHRyYW5zbGF0ZWFibGUgc3RyaW5nIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIENoYW5nZSB0aGUgcHJpbnRpbmcgb2YgdGhlICdidWZmZXJpbmcuLi4nIG91dHB1dCB0byBhdm9pZCBwdXR0aW5nCgkgIGEgXHIgaW4gYSB0cmFuc2xhdGVhYmxlIHN0cmluZyAoZmxhZ2dlZCBieSB0aGUgVFApLgoKMjAwOC0xMC0xMCAxNTozODowNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHhtbC5jOiBDbGFyaWZ5IHRoYXQgdGhlIHNhdmVfdGh5c2VsZigpIGFuZCByZXN0b3JlX3RoeXNlbGYoKSB2aXJ0dWFsIGZ1bmN0aW9ucyBvZiBHc3RPYmplY3QgbmVlZCB0byBiZSBvdmVycmlkLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R4bWwuYzoKCSAgQ2xhcmlmeSB0aGF0IHRoZSBzYXZlX3RoeXNlbGYoKSBhbmQgcmVzdG9yZV90aHlzZWxmKCkgdmlydHVhbAoJICBmdW5jdGlvbnMgb2YgR3N0T2JqZWN0IG5lZWQgdG8gYmUgb3ZlcnJpZGVuLCBub3QKCSAgZ3N0X29iamVjdF8oc2F2ZXxyZXN0b3JlKV90aHlzZWxmKCkgd2hpY2ggaXMgaW1wb3NzaWJsZS4KCSAgRml4ZXMgYnVnICM1NTU3MDAuCgoyMDA4LTEwLTEwIDE1OjI3OjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBSZXZlcnQgYSBwYXRjaCBmcm9tIDIxIG1vbnRocyBhZ28gdGhhdCBicm9rZSBjYXBzIG5lZ290aWF0aW9uIGluIHB1bGwgbW9kZS4gQmFzaWNhbGx5LCBoYXZpbmcgYSBidWZmZXIgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X3JhbmdlKSwgKGdzdF9wYWRfcHVsbF9yYW5nZSk6CgkgIFJldmVydCBhIHBhdGNoIGZyb20gMjEgbW9udGhzIGFnbyB0aGF0IGJyb2tlIGNhcHMgbmVnb3RpYXRpb24gaW4gcHVsbAoJICBtb2RlLiBCYXNpY2FsbHksIGhhdmluZyBhIGJ1ZmZlciBwYXNzIG92ZXIgYSBwYWQgd2lsbCB0cmlnZ2VyIHRoZQoJICBzZXRjYXBzIGZ1bmN0aW9uIHdoZW4gY2FwcyBjaGFuZ2UsIGp1c3QgbGlrZSBpbiBwdXNoIG1vZGUuCgoyMDA4LTEwLTEwIDE1OjEyOjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6IFVwZGF0ZSB0aGUgZG9jcyBzb21lIG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICBVcGRhdGUgdGhlIGRvY3Mgc29tZSBtb3JlLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGhlbHBlcl9maW5kX3BlZWspOgoJICBJZiB3ZSBwdWxsIGEgYnVmZmVyIHdpdGggbm9uLXRyaXZpYWwgY2Fwcywgc3VnZ2VzdCB0aG9zZSBjYXBzIHdpdGggdGhlCgkgIG1heCBwcm9iYWJpbGl0eS4KCjIwMDgtMTAtMTAgMTQ6MzE6MDMgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBBZGQgYW5vdGhlciBsaW1pdGF0aW9uIG9mIHBhZC1ibG9ja2luZyB3aXRoIHNlZ21lbnQgc2Vla3Mgbm90IHB1c2hpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgQWRkIGFub3RoZXIgbGltaXRhdGlvbiBvZiBwYWQtYmxvY2tpbmcgd2l0aCBzZWdtZW50IHNlZWtzIG5vdCBwdXNoaW5nCgkgIEVPUyBldmVudHMuCgoyMDA4LTEwLTEwIDEzOjI0OjEzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHdpbjMyL2NvbW1vbi86IEFkZCBuZXcgc3ltYm9scyB0byB0aGUgd2luMzIgZGVmcyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgc3ltYm9scyB0byB0aGUgd2luMzIgZGVmcyBmaWxlcwoKMjAwOC0xMC0xMCAxMDozODoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogVGhlIG1lc3NhZ2Ugc3JjIGNhbiBiZSBOVUxMLCBkb24ndCB0cnkgdG8gcHJpbnQgdGhlIG9iamVjdCBuYW1lcyBpbiB0aGF0IGNhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAodXBkYXRlX2RlZ3JlZSksCgkgIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBUaGUgbWVzc2FnZSBzcmMgY2FuIGJlIE5VTEwsIGRvbid0IHRyeSB0byBwcmludCB0aGUgb2JqZWN0IG5hbWVzIGluIHRoYXQKCSAgY2FzZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3BhZF9hY3RpdmF0ZSk6CgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOiAocnVuX3BpcGVsaW5lKSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkIHNvbWUgZGVidWcuCgkgIEZpeCB0aGUgdGVzdCwgcHVsbCBiYXNlZCBzaW5rcyBnbyBBU1lOQyB0byBQQVVTRUQsIGp1c3QgbGlrZSBvdGhlcgoJICBzY2hlZHVsaW5nIG1vZGVzLgoKMjAwOC0xMC0xMCAxMDowMTozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OiBTbWFsbCBkb2MgdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgU21hbGwgZG9jIHVwZGF0ZS4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX3BhZF9nZXRjYXBzKSwgKGdzdF9iYXNlX3NpbmtfcGFkX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2Vfc2lua19pbml0KSwgKGdzdF9iYXNlX3Npbmtfc2V0X2Jsb2Nrc2l6ZSksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9ibG9ja3NpemUpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2Vfc2lua19uZWVkc19wcmVyb2xsKSwKCSAgKGdzdF9iYXNlX3NpbmtfbG9vcCksIChnc3RfYmFzZV9zaW5rX3BhZF9hY3RpdmF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX25lZ290aWF0ZV9wdWxsKSwgKGdzdF9iYXNlX3NpbmtfcGFkX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgQWRkIGJsb2Nrc2l6ZSBwcm9wZXJ0eSBhbmQgbWV0aG9kcyB0byBjb250cm9sIHRoZSBhbW91bnQgb2YgZGF0YQoJICB0byBwdWxsLgoJICBOZWdvdGlhdGUgZmlyc3QgYmVmb3JlIGFjdGl2YXRpbmcgdXBzdHJlYW0gaW4gcHVsbCBtb2RlIHNvIHRoYXQgdGhleSBjYW4KCSAgbmVnb3RpYXRlIHRoZW1zZWx2ZXMuCgkgIFdoZW4gd2Ugb3BlcmF0ZSBpbiBwdWxsIG1vZGUsIHdlIG9ubHkgYWNjZXB0IHRoZSBjYXBzIHRoYXQgd2UKCSAgbmVnb3RpYXRlZC4KCSAgTWFrZSB0aGUgc2luayBnbyBBU1lOQyB0byBQQVVTRUQsIGxpa2UgYWxsIG90aGVyIHNpbmtzLgoJICBBUEk6IEdzdEJhc2VTaW5rOjpnc3RfYmFzZV9zaW5rX3NldF9ibG9ja3NpemUoKQoJICBBUEk6IEdzdEJhc2VTaW5rOjpnc3RfYmFzZV9zaW5rX2dldF9ibG9ja3NpemUoKQoJICBBUEk6IEdzdEJhc2VTaW5rOjpibG9ja3NpemUKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY193YWl0X3BsYXlpbmcpLAoJICAoZ3N0X2Jhc2Vfc3JjX3NldF9saXZlKSwgKGdzdF9iYXNlX3NyY19pc19saXZlKSwKCSAgKGdzdF9iYXNlX3NyY19zZXRfZm9ybWF0KSwgKGdzdF9iYXNlX3NyY19xdWVyeV9sYXRlbmN5KSwKCSAgKGdzdF9iYXNlX3NyY19zZXRfYmxvY2tzaXplKSwgKGdzdF9iYXNlX3NyY19nZXRfYmxvY2tzaXplKSwKCSAgKGdzdF9iYXNlX3NyY19zZXRfZG9fdGltZXN0YW1wKSwgKGdzdF9iYXNlX3NyY19nZXRfZG9fdGltZXN0YW1wKSwKCSAgKGdzdF9iYXNlX3NyY19zZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2Vfc3JjX2dldF9wcm9wZXJ0eSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIEFkZCB0eXBlY2hlY2tpbmcgaW4gcHVibGljIEFQSSBmdW5jdGlvbnMuCgkgIEFkZCBtZXRob2RzIHRvIGNvbnRyb2wgdGhlIGJsb2Nrc2l6ZSBpbiBzdWJjbGFzc2VzLgoJICBBUEk6IEdzdEJhc2VTcmM6OmdzdF9iYXNlX3NyY19zZXRfYmxvY2tzaXplKCkKCSAgQVBJOiBHc3RCYXNlU3JjOjpnc3RfYmFzZV9zcmNfZ2V0X2Jsb2Nrc2l6ZSgpCgoyMDA4LTEwLTEwIDA5OjExOjEwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IFdlIG5vdyBzZWUgMyBldmVudHMgZ28gdGhyb3VnaCBvdXIgcGFkLCBzaW5jZSBiYXNlc2luayBub3cgc2VuZHMgdXBzdHJlYW0gbGF0ZW5jeSBldmVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiAocHJvYmVfZG9fbm90aGluZyksIChkYXRhX3Byb2JlKSwKCSAgKGJ1ZmZlcl9wcm9iZSksIChldmVudF9wcm9iZSksIChHU1RfU1RBUlRfVEVTVCk6CgkgIFdlIG5vdyBzZWUgMyBldmVudHMgZ28gdGhyb3VnaCBvdXIgcGFkLCBzaW5jZSBiYXNlc2luayBub3cgc2VuZHMKCSAgdXBzdHJlYW0gbGF0ZW5jeSBldmVudHMuCgoyMDA4LTEwLTA4IDE1OjIxOjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IFJlbGVhc2UgdGhlIG9iamVjdCBsb2NrIGJlZm9yZSB0cnlpbmcgdG8gZmx1c2ggdGhlIGJ1cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKToKCSAgUmVsZWFzZSB0aGUgb2JqZWN0IGxvY2sgYmVmb3JlIHRyeWluZyB0byBmbHVzaCB0aGUgYnVzLgoKMjAwOC0xMC0wOCAxNDoyMToxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRm9yd2FyZCBMQVRFTkNZIGV2ZW50cyB1cHN0cmVhbXMgc28gdGhhdCBlbGVtZW50cyBrbm93IGFib3V0IHRoZSB0b3RhbCBwaXBlbGluZSBsYXRlbmN5Li4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3NlbmRfZXZlbnQpOgoJICBGb3J3YXJkIExBVEVOQ1kgZXZlbnRzIHVwc3RyZWFtcyBzbyB0aGF0IGVsZW1lbnRzIGtub3cgYWJvdXQgdGhlIHRvdGFsCgkgIHBpcGVsaW5lIGxhdGVuY3kuIEZpeGVzICM1NTUzMDcuCgoyMDA4LTEwLTA4IDExOjIwOjE3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogQWxsb3cgdGhyb3VnaCBxdWVyaWVzIHdoZW4gd2UgZG9uJ3Qga25vdyBob3cgYXMgb3RoZXJ3aXNlIGl0J3Mgbm90IHBvc3NpYmxlIHRvIHF1ZXJ5IHRoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIEFsbG93IHRocm91Z2ggcXVlcmllcyB3aGVuIHdlIGRvbid0IGtub3cgaG93CgkgIHRvIGFkanVzdCB0aGVtIChub3QgVElNRSBvciBCWVRFUyksIGFzIG90aGVyd2lzZSBpdCdzCgkgIG5vdCBwb3NzaWJsZSB0byBxdWVyeSB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiBvcmRlcgoJICB0byBzZWVrIGluIG90aGVyIGZvcm1hdHMgYXQgYWxsLgoKMjAwOC0xMC0wOCAxMToxMjoxNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJICBjaGFuZ2Vsb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNoYW5nZWxvZwoKMjAwOC0xMC0wOCAxMToxMToyNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogUGxhY2F0ZSBkb2MgcGVuZGFudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTEwLTA4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IFBsYWNhdGUgZG9jIHBlbmRhbnRzLgoKMjAwOC0xMC0wOCAxMDozOToyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC4qOiBVbmJyZWFrIC1nb29kIGJ1aWxkLCBwcml2YXRlIGlzIGEgcmVzZXJ2ZWQgYysrIGtleXdvcmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5oOgoJICBVbmJyZWFrIC1nb29kIGJ1aWxkLCBwcml2YXRlIGlzIGEgcmVzZXJ2ZWQgYysrIGtleXdvcmQuCgoyMDA4LTEwLTA4IDEwOjE5OjExICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuKjogRml4IHVuaW50ZW5kZWQgQVBJIHJlbW92YWw6IHJlLWFkZCBHU1RfR0hPU1RfUEFEX0NBU1QgdG8gdGhlIGhlYWRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMTAtMDggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGdob3N0cGFkLmggKEdTVF9HSE9TVF9QQURfQ0FTVCk6CgkgICogZ3N0L2dzdGdob3N0cGFkLmMgKEdTVF9HSE9TVF9QQURfQ0FTVCk6IEZpeCB1bmludGVuZGVkIEFQSQoJICByZW1vdmFsOiByZS1hZGQgR1NUX0dIT1NUX1BBRF9DQVNUIHRvIHRoZSBoZWFkZXIuCgoyMDA4LTEwLTA4IDEwOjEyOjQ1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuaCAoR3N0UHJveHlQYWQsIEdzdFByb3h5UGFkQ2xhc3MsIEdzdEdob3N0UGFkKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0xMC0wOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuaCAoR3N0UHJveHlQYWQsIEdzdFByb3h5UGFkQ2xhc3MsIEdzdEdob3N0UGFkKQoJICAoR3N0R2hvc3RQYWRDbGFzcyk6IFB1YmxpY2FsbHkgZXhwb3NlIHRoZXNlIHN0cnVjdHVyZXMgc28gYXMgdG8KCSAgYWxsb3cgZWFzeSBzdWJjbGFzc2luZyBmcm9tIEMuIEhpZGUgdGhlIG1lbWJlciBkYXRhIGJlaGluZCBhCgkgIHByaXZhdGUgb3BhcXVlIGRhdGEgcG9pbnRlci4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogQWRhcHQgdG8gc3RvcmUgaW5zdGFuY2UgZGF0YSBpbiB0aGUgdHlwZQoJICBpbnN0YW5jZSdzIHByaXZhdGUgZGF0YSByZWdpb24sIG5vdCBpbiB0aGUgcHVibGljIHN0cnVjdC4KCjIwMDgtMTAtMDggMTA6MDc6MTUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBJZiB3ZSBjYW4ndCBnZXQgYSBjYWNoZSBmaWxlIGRvbid0IHRyeSB0byBzYXZlIHNvbWV0aGluZyB0byBpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlX2NhY2hlKToKCSAgSWYgd2UgY2FuJ3QgZ2V0IGEgY2FjaGUgZmlsZSBkb24ndCB0cnkgdG8gc2F2ZSBzb21ldGhpbmcgdG8gaXQuCgkgIERlcmVmZXJlbmNpbmcgTlVMTCBwb2ludGVycyB1c3VhbGx5IGlzbid0IGEgZ29vZCBpZGVhLgoKMjAwOC0xMC0wOCAwODo1NDo1NSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmMgKGdzdF9naG9zdF9wYWRfY29uc3RydWN0KTogSWYgd2UgZ290IGEgdGVtcGxhdGUgdmlhIGdfb2JqZWN0X2dldCgpLCBiZSBzdXJlIHRvIHVucmVmIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0xMC0wOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYyAoZ3N0X2dob3N0X3BhZF9jb25zdHJ1Y3QpOiBJZiB3ZSBnb3QgYQoJICB0ZW1wbGF0ZSB2aWEgZ19vYmplY3RfZ2V0KCksIGJlIHN1cmUgdG8gdW5yZWYgaXQuCgkgICogZ3N0L2dzdGJ1ZmZlci5oIChHU1RfQlVGRkVSX0ZSRUVfRlVOQyk6IEZpeCBpbmNvcnJlY3QgZG9jLgoKMjAwOC0xMC0wNyAxNToxMjoyMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay86IEFkZCBTcGFyYyBBQkkgY2hlY2tzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3NwYXJjLmg6CgkgICogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3Rfc3BhcmMuaDoKCSAgQWRkIFNwYXJjIEFCSSBjaGVja3MKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQ2FzdCBzaWduZWQgaW50ZWdlciB0byB1bnNpZ25lZCB0byBhdm9pZCBhIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDA4LTEwLTA3IDEyOjI2OjQwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzogVXNlIG5ldyBHU1RfUkVBRF9VSU5UMjRfKExFfEJFKSBtYWNyb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOiAoZ3N0X2J5dGVfcmVhZGVyX2dldF91aW50MjRfbGUpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX2dldF91aW50MjRfYmUpLCAoZ3N0X2J5dGVfcmVhZGVyX2dldF9pbnQyNF9sZSksCgkgIChnc3RfYnl0ZV9yZWFkZXJfZ2V0X2ludDI0X2JlKSwgKGdzdF9ieXRlX3JlYWRlcl9wZWVrX3VpbnQyNF9sZSksCgkgIChnc3RfYnl0ZV9yZWFkZXJfcGVla191aW50MjRfYmUpLCAoZ3N0X2J5dGVfcmVhZGVyX3BlZWtfaW50MjRfbGUpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX3BlZWtfaW50MjRfYmUpOgoJICBVc2UgbmV3IEdTVF9SRUFEX1VJTlQyNF8oTEV8QkUpIG1hY3Jvcy4KCjIwMDgtMTAtMDcgMTI6MDA6NDkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIEFsd2F5cyB1c2UgdGhlIHVuYWxpZ25lZCB2YXJpYW50cyBvZiBHU1RfUkVBRF9VSU5UKiBhbmQgR1NUX1dSSVRFX1VJTlQqIGFzIGl0J3MgdG9vIGVhc3kgdG8gYnJlYWsgdGhlIElTTyBDIHN0cmljdCBhbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBbHdheXMgdXNlIHRoZSB1bmFsaWduZWQgdmFyaWFudHMgb2YgR1NUX1JFQURfVUlOVCogYW5kIEdTVF9XUklURV9VSU5UKgoJICBhcyBpdCdzIHRvbyBlYXN5IHRvIGJyZWFrIHRoZSBJU08gQyBzdHJpY3QgYWxpYXNpbmcgcnVsZXMgd2l0aCBzaW1wbGUKCSAgY2FzdHMgdG8gdGhlIGNvcnJlc3BvbmRpbmcgdHlwZSBhbmQgdGhpcyB3b3VsZCBpbnRyb2R1Y2UgaGFyZCB0byBkZWJ1ZwoJICBidWdzLiBGaXhlcyBidWcgIzU0NTcxNC4KCSAgQVBJOiBBZGQgR1NUX1JFQURfVUlOVDI0XyhMRXxCRSkgYW5kIEdTVF9XUklURV9VSU5UMjRfKExFfEJFKS4KCjIwMDgtMTAtMDcgMDY6NTY6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBBZGQgJ1NpbmNlJyBiaXRzIHRvIGd0ay1kb2MgY2h1bmtzIGZvciBuZXcgQVBJLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6IChHU1RfQlVGRkVSX0ZSRUVfRlVOQyk6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfZ2hvc3RfcGFkX2NvbnN0cnVjdCk6CgkgIEFkZCAnU2luY2UnIGJpdHMgdG8gZ3RrLWRvYyBjaHVua3MgZm9yIG5ldyBBUEkuCgoyMDA4LTEwLTA2IDIxOjUyOjU3ICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogRml4IGRvY3VtZW50YXRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgRml4IGRvY3VtZW50YXRpb24KCjIwMDgtMTAtMDYgMTg6MDM6NTggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgY2hhbmdlbG9nLCBkb2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNoYW5nZWxvZywgZG9oCgoyMDA4LTEwLTA2IDE4OjAxOjQyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmggKEdTVF9CVUZGRVJfRlJFRV9GVU5DKTogTmV3IEFQSSwgYSBmcmVlIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgb24gdGhlIG1hbGxvY19kYXRhIHRvIGZyZWUgaXQuIEIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMTAtMDYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGJ1ZmZlci5oIChHU1RfQlVGRkVSX0ZSRUVfRlVOQyk6IE5ldyBBUEksIGEgZnJlZSBmdW5jdGlvbgoJICB0aGF0IHdpbGwgYmUgY2FsbGVkIG9uIHRoZSBtYWxsb2NfZGF0YSB0byBmcmVlIGl0LiBCYXNpY2FsbHkgYSB3YXkKCSAgdG8gYXZvaWQgc3ViY2xhc3Npbmcgd2hlbiBhbGwgeW91IG5lZWQgaXMgYSBkaWZmZXJlbnQgZnJlZQoJICBmdW5jdGlvbiwgaS5lLiBmcmVlKCkgaW5zdGVhZCBvZiBnX2ZyZWUoKS4KCSAgKiBnc3QvZ3N0YnVmZmVyLmMgKGdzdF9idWZmZXJfZmluYWxpemUpOiBGcmVlIG1hbGxvY19kYXRhIHZpYQoJICBjYWxsaW5nIHRoZSBmcmVlIGZ1bmN0aW9uLgoJICAoZ3N0X2J1ZmZlcl9pbml0KTogSW5pdGlhbGl6ZSB0aGUgZnJlZSBmdW5jdGlvbiB0byBnX2ZyZWUuCgoyMDA4LTEwLTA2IDE3OjU3OjI1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuKjogTmV3IGZ1bmN0aW9uLCBmaW5pc2hlcyB0aGUgaW5pdGlhbGl6YXRpb24gb2YgZ2hvc3QgcGFkLiBVc2VmdWwgZm9yIGxhbmd1YWdlIGJpbmRpbmdzIGFuZCBzdWJjbGFzc2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMTAtMDYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGdob3N0cGFkLmg6CgkgICogZ3N0L2dzdGdob3N0cGFkLmMgKGdzdF9naG9zdF9wYWRfY29uc3RydWN0KTogTmV3IGZ1bmN0aW9uLAoJICBmaW5pc2hlcyB0aGUgaW5pdGlhbGl6YXRpb24gb2YgZ2hvc3QgcGFkLiBVc2VmdWwgZm9yIGxhbmd1YWdlCgkgIGJpbmRpbmdzIGFuZCBzdWJjbGFzc2VycyBvZiBHc3RHaG9zdFBhZC4gRml4ZXMgIzUzOTEwOC4KCSAgKGdzdF9naG9zdF9wYWRfbmV3X2Z1bGwpOiBVc2UgdGhlIG5ldyBjb25zdHJ1Y3Rvci4KCjIwMDgtMTAtMDYgMTY6MTU6MDIgKzAwMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJICBnc3QvZ3N0YmluLmM6IEtlZXAgdHJhY2sgb2YgcGFkcyB0aGF0IGFyZSBiZWluZyBsaW5rZWQvdW5saW5rZWQgYW5kIHJlc3luYyB0aGUgc3RhdGUgY2hhbmdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2Ugb24gUGF0Y2ggYnk6IE9saXZpZXIgQ3JldGUgPHRlc3RlciBhdCB0ZXN0ZXIgZG90IGNhPgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faW5pdCksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAodXBkYXRlX2RlZ3JlZSksCgkgIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV3KSwgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIEtlZXAgdHJhY2sgb2YgcGFkcyB0aGF0IGFyZSBiZWluZyBsaW5rZWQvdW5saW5rZWQgYW5kIHJlc3luYyB0aGUgc3RhdGUKCSAgY2hhbmdlcy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9kaXJlY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfY2hhaW5fZnVuY3Rpb24pLCAoZ3N0X3BhZF9zZXRfZ2V0cmFuZ2VfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfY2hlY2tnZXRyYW5nZV9mdW5jdGlvbiksIChnc3RfcGFkX3VubGluayksCgkgIChnc3RfcGFkX2xpbmtfcHJlcGFyZSksIChnc3RfcGFkX2xpbmspLAoJICAoZ3N0X3BhZF9ldmVudF9kZWZhdWx0X2Rpc3BhdGNoKSwgKGdzdF9wYWRfY2hhaW4pLCAoZ3N0X3BhZF9wdXNoKSwKCSAgKGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSksIChnc3RfcGFkX2dldF9yYW5nZSksCgkgIChnc3RfcGFkX3B1bGxfcmFuZ2UpOgoJICBTb21lIGNvZGUgY2xlYW51cHMsIHVzZSBtYWNyb3MgdG8gY2hlY2sgcGFkIGRpcmVjdGlvbi4KCSAgRG9uJ3QgbmVlZCB0byB0YWtlIHRoZSBsb2NrIG9uIHRoZSBwYWQgZGlyZWN0aW9uLgoJICBQb3N0IHN0cnVjdHVyZSBjaGFuZ2Ugd2hlbiBwYWRzIGFyZSBsaW5rZWQvdW5saW5rZWQuCgkgIENoYW5nZSBzb21lIGNoZWNrcyBpbnRvIF9yZXR1cm5faWZfZmFpbCgpLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgKHRlc3RfbGlua19zdHJ1Y3R1cmVfY2hhbmdlX3N0YXRlX2NoYW5nZWRfc3luY19jYiksCgkgIChHU1RfU1RBUlRfVEVTVCksIChnc3RfYmluX3N1aXRlKToKCSAgQWRkIHRlc3RjYXNlIGZvciBwYWQgbGluay91bmxpbmtlIHJlc3luYyBkdXJpbmcgYSBzdGF0ZSBjaGFuZ2UuCgkgIEZpeGVzICM1MTAzNTQuCgoyMDA4LTEwLTA2IDE1OjMxOjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgSW1wbGVtZW50IFNUUlVDVFVSRV9DSEFOR0VEIG1lc3NhZ2VzLiBUaGVzZSBtZXNzYWdlcyB3aWxsIGJlIHVzZWQgdG8gc2lnbmFsIHRoZSBwYXJlbnQgYmluIG9mIGxpbmsvdW5saW5rIG9wZXJhdGlvbnMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19zdHJ1Y3R1cmVfY2hhbmdlKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3N0cnVjdHVyZV9jaGFuZ2UpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEltcGxlbWVudCBTVFJVQ1RVUkVfQ0hBTkdFRCBtZXNzYWdlcy4gVGhlc2UgbWVzc2FnZXMgd2lsbCBiZSB1c2VkIHRvCgkgIHNpZ25hbCB0aGUgcGFyZW50IGJpbiBvZiBsaW5rL3VubGluayBvcGVyYXRpb25zIHRoYXQgY291bGQgcmVxdWlyZSBhCgkgIHJlc3luYyB3aGVuIGRvaW5nIGEgc3RhdGUgY2hhbmdlLiBTZWUgIyM1MTAzNTQuCgkgIEFQSTogZ3N0X21lc3NhZ2VfbmV3X3N0cnVjdHVyZV9jaGFuZ2UoKQoJICBBUEk6IGdzdF9tZXNzYWdlX3BhcnNlX3N0cnVjdHVyZV9jaGFuZ2UoKQoKMjAwOC0xMC0wNiAxNToyMToxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RxdWFyay4qOiBBZGQgc29tZSBtb3JlIHF1YXJrcyBmb3IgbmV3IG1lc3NhZ2UuIFNlZSAjNTEwMzU0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVhcmsuYzoKCSAgKiBnc3QvZ3N0cXVhcmsuaDoKCSAgQWRkIHNvbWUgbW9yZSBxdWFya3MgZm9yIG5ldyBtZXNzYWdlLiBTZWUgIzUxMDM1NC4KCjIwMDgtMTAtMDYgMTI6NTc6MzkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIENoYW5nZUxvZzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IGFkZCBBUEkgdGFnCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogYWRkIEFQSSB0YWcKCjIwMDgtMTAtMDYgMTI6NDE6NTMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIEFkZCBiaXQgcmVhZGVyIGFuZCBieXRlIHJlYWRlciBjbGFzc2VzLCBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbiBhbmQgYW4gZXh0ZW5zaXZlIHVuaXQgdGVzdCBzdWl0ZS4gRml4ZXMgYnVnICM1NTM1NTQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6IChnc3RfYml0X3JlYWRlcl9uZXcpLAoJICAoZ3N0X2JpdF9yZWFkZXJfbmV3X2Zyb21fYnVmZmVyKSwgKGdzdF9iaXRfcmVhZGVyX2ZyZWUpLAoJICAoZ3N0X2JpdF9yZWFkZXJfaW5pdCksIChnc3RfYml0X3JlYWRlcl9pbml0X2Zyb21fYnVmZmVyKSwKCSAgKGdzdF9iaXRfcmVhZGVyX3NldF9wb3MpLCAoZ3N0X2JpdF9yZWFkZXJfZ2V0X3BvcyksCgkgIChnc3RfYml0X3JlYWRlcl9nZXRfcmVtYWluaW5nKSwgKGdzdF9iaXRfcmVhZGVyX3NraXApLAoJICAoZ3N0X2JpdF9yZWFkZXJfc2tpcF90b19ieXRlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOiAoR0RPVUJMRV9TV0FQX0xFX0JFKSwKCSAgKEdGTE9BVF9TV0FQX0xFX0JFKSwgKGdzdF9ieXRlX3JlYWRlcl9uZXcpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX25ld19mcm9tX2J1ZmZlciksIChnc3RfYnl0ZV9yZWFkZXJfZnJlZSksCgkgIChnc3RfYnl0ZV9yZWFkZXJfaW5pdCksIChnc3RfYnl0ZV9yZWFkZXJfaW5pdF9mcm9tX2J1ZmZlciksCgkgIChnc3RfYnl0ZV9yZWFkZXJfc2V0X3BvcyksIChnc3RfYnl0ZV9yZWFkZXJfZ2V0X3BvcyksCgkgIChnc3RfYnl0ZV9yZWFkZXJfZ2V0X3JlbWFpbmluZyksIChnc3RfYnl0ZV9yZWFkZXJfc2tpcCksCgkgIChnc3RfYnl0ZV9yZWFkZXJfZ2V0X3VpbnQ4KSwgKGdzdF9ieXRlX3JlYWRlcl9nZXRfaW50OCksCgkgIChnc3RfYnl0ZV9yZWFkZXJfcGVla191aW50OCksIChnc3RfYnl0ZV9yZWFkZXJfcGVla19pbnQ4KSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9nZXRfdWludDI0X2xlKSwgKGdzdF9ieXRlX3JlYWRlcl9nZXRfdWludDI0X2JlKSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9nZXRfaW50MjRfbGUpLCAoZ3N0X2J5dGVfcmVhZGVyX2dldF9pbnQyNF9iZSksCgkgIChnc3RfYnl0ZV9yZWFkZXJfcGVla191aW50MjRfbGUpLCAoZ3N0X2J5dGVfcmVhZGVyX3BlZWtfdWludDI0X2JlKSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9wZWVrX2ludDI0X2xlKSwgKGdzdF9ieXRlX3JlYWRlcl9wZWVrX2ludDI0X2JlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2JpdHJlYWRlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2JpdF9yZWFkZXJfc3VpdGUpOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX3N1aXRlKToKCSAgQWRkIGJpdCByZWFkZXIgYW5kIGJ5dGUgcmVhZGVyIGNsYXNzZXMsIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uCgkgIGFuZCBhbiBleHRlbnNpdmUgdW5pdCB0ZXN0IHN1aXRlLiBGaXhlcyBidWcgIzU1MzU1NC4KCjIwMDgtMTAtMDYgMDg6NTg6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEltcHJvdmUgcG9zaXRpb24gcmVwb3J0aW5nIHdoaWxlIGZsdXNoaW5nIGFuZCBvdGhlciBpbnRlcm1lZGlhdGUgc3RhdGUgY2hhbmdlcy4gRml4ZXMgIzUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSk6CgkgIEltcHJvdmUgcG9zaXRpb24gcmVwb3J0aW5nIHdoaWxlIGZsdXNoaW5nIGFuZCBvdGhlciBpbnRlcm1lZGlhdGUgc3RhdGUKCSAgY2hhbmdlcy4gRml4ZXMgIzU1Mzg3NC4KCjIwMDgtMTAtMDYgMDg6NDU6NDIgKzAwMDAgIEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMEBnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEZpeCBzbWFsbCByZWZvdW50IGxlYWsgaW4gY2FwcyBjb21wYXRpYmlsaXR5IGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMCBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfbGlua19jaGVja19jb21wYXRpYmxlX3VubG9ja2VkKToKCSAgT3JpZ2luYWwgcGF0Y2ggYnkgOiBTaW1vbiBEZXNjYXJpZXMKCSAgRml4IHNtYWxsIHJlZm91bnQgbGVhayBpbiBjYXBzIGNvbXBhdGliaWxpdHkgY2hlY2suCgkgIEZpeGVzICM1NTE2NzYuCgoyMDA4LTEwLTA2IDA3OjMwOjU3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC1yZXF1ZXN0LnhtbDogRml4IDAuOCBhcGkgdXNhZ2UgaW4gZXhhbXBsZS4gRml4ZXMgIzU1NDU2MQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1yZXF1ZXN0LnhtbDoKCSAgRml4IDAuOCBhcGkgdXNhZ2UgaW4gZXhhbXBsZS4gRml4ZXMgIzU1NDU2MQoJICAqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICBDaGFuZ2UgMC45IHRvIDAuMTAgaGVyZS4KCjIwMDgtMTAtMDYgMDc6MTM6MDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvbWFudWFsL2Jhc2ljcy1kYXRhLnhtbDogQ2hhbmdlICJldmVudC1ldmVudCBpbnRlcmFjdGlvbiIgdG8gImVsZW1lbnQtZWxlbWVudCBpbnRlcmFjdGlvbiIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1kYXRhLnhtbDoKCSAgQ2hhbmdlICJldmVudC1ldmVudCBpbnRlcmFjdGlvbiIgdG8gImVsZW1lbnQtZWxlbWVudCBpbnRlcmFjdGlvbiIuCgkgIEZpeGVzICM1NTI0NDguIEFsc28gZml4IHNhbXBsZSBjb2RlIGZvciBzZWVraW5nIGFuZCBkbyBtb3JlIDAuOC0+MC4xMAoJICB1cGRhdGVzLgoKMjAwOC0xMC0wNSAxMDowMTo1MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEJhY2sgdG8gZGV2ZWxvcG1lbnQgLT4gMC4xMC4yMS4xCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudCAtPiAwLjEwLjIxLjEKCj09PSByZWxlYXNlIDAuMTAuMjEgPT09CgoyMDA4LTEwLTAyIDIzOjU5OjUzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTAuMjEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbGVhc2UgMC4xMC4yMQoKMjAwOC0xMC0wMiAyMjo0MjoxOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA4LTA5LTI4IDIyOjQ5OjU2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogMC4xMC4yMC40IHByZS1yZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgMC4xMC4yMC40IHByZS1yZWxlYXNlCgoyMDA4LTA5LTI4IDIxOjE5OjE1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEZpeCBhc3NlcnRpb24gaW4gYmFzZXRyYW5zZm9ybSB3aGVuIHRoZSBzdWJjbGFzcyBjaG9vc2VzIG5vdCB0byBhbGxvY2F0ZSBhIGJ1ZmZlciBpbiBwcmVwYXJlX2J1ZmZlcigpLCBhbmQgbWFrZSBjYXBzZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2NhcHNmaWx0ZXIuYzoKCSAgRml4IGFzc2VydGlvbiBpbiBiYXNldHJhbnNmb3JtIHdoZW4gdGhlIHN1YmNsYXNzIGNob29zZXMgbm90IHRvCgkgIGFsbG9jYXRlIGEgYnVmZmVyIGluIHByZXBhcmVfYnVmZmVyKCksIGFuZCBtYWtlIGNhcHNmaWx0ZXIgZXJyb3Igb3V0CgkgIGNsZWFubHkgaWYgcmVxdWVzdGVkIHRvIGFwcGx5IGNhcHMgdGhhdCBkb24ndCBjb21wbGV0ZWx5IHNwZWNpZnkgdGhlCgkgIGJ1ZmZlci4gRml4ZXMgIzU1MTUwOQoKMjAwOC0wOS0yNCAxNTowMzo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBUYWtlIG5ldyBjYXBzIHJlZiBiZWNhdXNlIG91ciBvbGQgb25lIG1pZ2h0IGhhdmUgYmVlbiBnb25lIHdoZW4gdGhlIHN1YmNsYXNzIHBlcmZvci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpOgoJICBUYWtlIG5ldyBjYXBzIHJlZiBiZWNhdXNlIG91ciBvbGQgb25lIG1pZ2h0IGhhdmUgYmVlbiBnb25lIHdoZW4gdGhlCgkgIHN1YmNsYXNzIHBlcmZvcm1zIGEgZ3N0X3BhZF9zZXRfY2FwcygpIG9uIHRoZSBzcmNwYWQuIFNlZSAjNTQ4NzY0LgoKMjAwOC0wOS0xNiAxNTozNTowNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEFsc28gY29tbWl0IENoYW5nZUxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQWxzbyBjb21taXQgQ2hhbmdlTG9nCgoyMDA4LTA5LTE2IDE1OjI0OjA0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEdhaC4gQ29tbWl0IHByZS1yZWxlYXNlIGluZm8gdGhhdCBzaG91bGQgaGF2ZSBnb25lIGluIGxhc3Qgd2VlayBhbHJlYWR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgR2FoLiBDb21taXQgcHJlLXJlbGVhc2UgaW5mbyB0aGF0IHNob3VsZCBoYXZlIGdvbmUgaW4gbGFzdCB3ZWVrIGFscmVhZHkuCgkgIDIwMDgtMDktMTAgIEphbiBTY2htaWR0ICA8amFuLnNjaG1pZHRAc3VuLmNvbT4KCSAgKiBjb25maWd1cmUuYWM6CgkgIDAuMTAuMjAuMiBwcmUtcmVsZWFzZQoJICAqIHBvL0xJTkdVQVM6CgkgICogcG8vaWQucG86CgkgICogcG8vcHRfQlIucG86CgkgIE5ldyB0cmFuc2xhdGlvbnMuCgoyMDA4LTA5LTE1IDE1OjE4OjA3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjb25maWd1cmUuYWM6IERvIG5vdCBwcm9iZSBhdmFpbGFiaWxpdHkgb2YgY2hlY2sgdW5pdCB0ZXN0IGxpYnJhcnkgd2hlbiBjcm9zcyBjb21waWxpbmcsIGFzIHRlc3Qgd291bGQgbm90IHdvcmsgYW55d2EuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBEbyBub3QgcHJvYmUgYXZhaWxhYmlsaXR5IG9mIGNoZWNrIHVuaXQgdGVzdCBsaWJyYXJ5IHdoZW4gY3Jvc3MKCSAgY29tcGlsaW5nLCBhcyB0ZXN0IHdvdWxkIG5vdCB3b3JrIGFueXdheS4gQWxzbyBjbGVhbnVwIHZlcmJvc2Ugb3V0cHV0CgkgIG9mIHRoZSBjaGVjayB0ZXN0LiBGaXhlcyAjNTUxOTUyLgoKMjAwOC0wOS0xNCAyMjowMTozMCArMDAwMCAgQW50b2luZSBUcmVtYmxheSA8aGV4YTAwQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IEF2b2lkIGxlYWtpbmcgdGhlIHBhcmVudCByZWYgd2hlbiB3ZSBmYWlsIGNoYW5naW5nIHRoZSBzdGF0ZSBvZiB0aGUgZWxlbWVudCB1c2luZyBnc3RfZWxlbWVudF9zeW5jXy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMCBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zeW5jX3N0YXRlX3dpdGhfcGFyZW50KToKCSAgQXZvaWQgbGVha2luZyB0aGUgcGFyZW50IHJlZiB3aGVuIHdlIGZhaWwgY2hhbmdpbmcgdGhlIHN0YXRlIG9mIHRoZQoJICBlbGVtZW50IHVzaW5nIGdzdF9lbGVtZW50X3N5bmNfc3RhdGVfd2l0aF9wYXJlbnQoKS4gRml4ZXMgIzU1MTk3OC4KCjIwMDgtMDktMTEgMTY6NTY6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9pbnRyby1tb3RpdmF0aW9uLnhtbDogUmVtb3ZlIHNvbWUgYml0cyB0aGF0IG5vIGxvbmdlciBhcHBseSwgdXBkYXRlIG90aGVycyAoIzU1MTY0MikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2ludHJvLW1vdGl2YXRpb24ueG1sOjoKCSAgUmVtb3ZlIHNvbWUgYml0cyB0aGF0IG5vIGxvbmdlciBhcHBseSwgdXBkYXRlIG90aGVycyAoIzU1MTY0MikuCgoyMDA4LTA5LTA5IDE4OjQ3OjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOiBBZGQgR1NUX0RBVEFESVIsIGhhcmQtY29kZSBjcHUgdG8geDg2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIEFkZCBHU1RfREFUQURJUiwgaGFyZC1jb2RlIGNwdSB0byB4ODYuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIFNwYWNlcyB0byB0YWJzLgoKMjAwOC0wOS0wMyAwNTo1Mjo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0Lmg6IEZpeCBTaW5jZTogbWFya2VycyBmb3IgbmV3IGdlbyB0YWdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBGaXggU2luY2U6IG1hcmtlcnMgZm9yIG5ldyBnZW8gdGFncy4KCjIwMDgtMDktMDIgMjA6MDA6MjggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0Lmg6IEZpeCBhY3R1YWwgdGFnIG5hbWUgZGVmaW5lIGFmdGVyIHJlbmFtaW5nIGZyb20gYWx0aXR1ZGUgdG8gZWxldmF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBGaXggYWN0dWFsIHRhZyBuYW1lIGRlZmluZSBhZnRlciByZW5hbWluZyBmcm9tIGFsdGl0dWRlIHRvIGVsZXZhdGlvbi4KCjIwMDgtMDktMDEgMTQ6MDU6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEFkZCBmYWxsYmFjayB3aGVuIGNhbGxpbmcgdGhlIGRlcHJlY2F0ZWQgZnVuY3Rpb24gb24gYW4gZWxlbWVudCB0aGF0IGltcGxlbWVudHMgdGhlIG5ldyBpbnRlcm5hbF9saW5rIGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoYWRkX3VucmVmX3BhZF90b19saXN0KSwKCSAgKGdzdF9wYWRfZ2V0X2ludGVybmFsX2xpbmtzX2RlZmF1bHQpOgoJICBBZGQgZmFsbGJhY2sgd2hlbiBjYWxsaW5nIHRoZSBkZXByZWNhdGVkIGZ1bmN0aW9uIG9uIGFuIGVsZW1lbnQgdGhhdAoJICBpbXBsZW1lbnRzIHRoZSBuZXcgaW50ZXJuYWxfbGluayBoYW5kbGVyLgoKMjAwOC0wOS0wMSAxMzozNTozMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQWRkIG5ldyB0YWdzIGZvciBnZW8gbG9jYXRpb24gYW5kIGNsYXJpZnkgcHVycG9zZSBvZiBleGlzdGluZyBsb2NhdGlvbiB0YWcuIEZpeGVzICM0ODExNjkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIEFkZCBuZXcgdGFncyBmb3IgZ2VvIGxvY2F0aW9uIGFuZCBjbGFyaWZ5IHB1cnBvc2Ugb2YgZXhpc3RpbmcgbG9jYXRpb24KCSAgdGFnLiBGaXhlcyAjNDgxMTY5CgoyMDA4LTA5LTAxIDExOjI3OjQ1ICswMDAwICBPbGl2aWVyIENyZXRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSAgZ3N0L2dzdHBhZC5jOiBVc2UgdGhyZWFkLXNhZmUgaW50ZXJuYWwgbGlua3MgaXRlcmF0b3IuIEZpeGVzICM1NDk1MDQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xpdmllciBDcmV0ZSA8dGVzdGVyIGF0IHRlc3RlciBkb3QgY2E+CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9pdGVyYXRlX2ludGVybmFsX2xpbmtzX2RlZmF1bHQpLAoJICAoZ3N0X3BhZF9ldmVudF9kZWZhdWx0X2Rpc3BhdGNoKSwgKGdzdF9wYWRfZGlzcGF0Y2hlcik6CgkgIFVzZSB0aHJlYWQtc2FmZSBpbnRlcm5hbCBsaW5rcyBpdGVyYXRvci4gRml4ZXMgIzU0OTUwNC4KCjIwMDgtMDktMDEgMTA6NDI6MDQgKzAwMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJICBBZGQgdGhyZWFkc2FmZSByZXBsYWNlbWVudCBmdW5jdGlvbnMgZm9yIGdldHRpbmcgaW50ZXJuYWwgbGlua3Mgb2YgYW4gZWxlbWVudC4gRGVwcmVjYXRlIHRoZSBvbGQgaW50ZXJuYWwgbGlua3MgZnVuY3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBPbGl2aWVyIENyZXRlIDx0ZXN0ZXIgYXQgdGVzdGVyIGRvdCBjYT4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfaW5pdCksCgkgIChnc3RfcGFkX3NldF9pdGVyYXRlX2ludGVybmFsX2xpbmtzX2Z1bmN0aW9uKSwKCSAgKGludF9saW5rX2l0ZXJfZGF0YV9mcmVlKSwgKGl0ZXJhdGVfcGFkKSwKCSAgKGdzdF9wYWRfaXRlcmF0ZV9pbnRlcm5hbF9saW5rc19kZWZhdWx0KSwKCSAgKGdzdF9wYWRfaXRlcmF0ZV9pbnRlcm5hbF9saW5rcyksIChnc3RfcGFkX2dldF9pbnRlcm5hbF9saW5rcyk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBBZGQgdGhyZWFkc2FmZSByZXBsYWNlbWVudCBmdW5jdGlvbnMgZm9yIGdldHRpbmcgaW50ZXJuYWwgbGlua3Mgb2YgYW4KCSAgZWxlbWVudC4gRGVwcmVjYXRlIHRoZSBvbGQgaW50ZXJuYWwgbGlua3MgZnVuY3Rpb25zLgoJICBBUEk6R3N0UGFkOjpnc3RfcGFkX3NldF9pdGVyYXRlX2ludGVybmFsX2xpbmtzX2Z1bmN0aW9uKCkKCSAgQVBJOkdzdFBhZDo6R3N0UGFkSXRlckludExpbmtGdW5jdGlvbgoJICBBUEk6R3N0UGFkOjpnc3RfcGFkX2l0ZXJhdGVfaW50ZXJuYWxfbGlua3MoKQoJICBBUEk6R3N0UGFkOjpnc3RfcGFkX2l0ZXJhdGVfaW50ZXJuYWxfbGlua3NfZGVmYXVsdCgpCgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2RvX2l0ZXJhdGVfaW50ZXJuYWxfbGlua3MpLAoJICAoZ3N0X3Byb3h5X3BhZF9pbml0KToKCSAgSW1wbGVtZW50IHRocmVhZHNhZmUgaW50ZXJuYWwgbGlua3MuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6IChHU1RfU1RBUlRfVEVTVCksICh0ZWVfc3VpdGUpOgoJICBVbml0IHRlc3QgZm9yIGludGVybmFsIGxpbmtzIG9uIHRlZS4gU2VlICM1NDk1MDQuCgoyMDA4LTA4LTMwIDEyOjU3OjQ3ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06IGxpYnMvdHJhbnNmb3JtMSB0ZXN0IHJlcXVpcmVzIGxpYnMvdGVzdF90cmFuc2Zvcm0uYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgbGlicy90cmFuc2Zvcm0xIHRlc3QgcmVxdWlyZXMgbGlicy90ZXN0X3RyYW5zZm9ybS5jCgoyMDA4LTA4LTMwIDEyOjA3OjQxICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBEaWUgZXZpbCBkZWFkbG9jaywgZGllICEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfaW50ZXJuYWxfbGlua3NfZGVmYXVsdCk6CgkgIERpZSBldmlsIGRlYWRsb2NrLCBkaWUgIQoKMjAwOC0wOC0zMCAxMTo1NTo1OSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIEZpeCBhbGwgbGVha3MgZHVlIHRvIHRoZSBidWcgaW4gZ3N0X3BhZF90ZW1wbGF0ZV9uZXcoKSBieSB3aGljaCBpdCBkb2VzIG5vdCBzdGVhbCB0aGUgcmVmY291bnQgb2YgdGhlIGdpdmVuIGNhcHMgYXMgcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOiAobmFtZV9pc192YWxpZCksIChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBhbGwgbGVha3MgZHVlIHRvIHRoZSBidWcgaW4gZ3N0X3BhZF90ZW1wbGF0ZV9uZXcoKSBieSB3aGljaCBpdCBkb2VzCgkgIG5vdCBzdGVhbCB0aGUgcmVmY291bnQgb2YgdGhlIGdpdmVuIGNhcHMgYXMgc3RhdGVkLgoJICBSRVZFUlQgVEhJUyBDT01NSVQgT05DRSBGSVhFRCAhCgkgIFJFVkVSVCBUSElTIENPTU1JVCBPTkNFIEZJWEVEICEKCSAgUkVWRVJUIFRISVMgQ09NTUlUIE9OQ0UgRklYRUQgIQoJICBSRVZFUlQgVEhJUyBDT01NSVQgT05DRSBGSVhFRCAhCgkgIFJFVkVSVCBUSElTIENPTU1JVCBPTkNFIEZJWEVEICEKCSAgUkVWRVJUIFRISVMgQ09NTUlUIE9OQ0UgRklYRUQgIQoKMjAwOC0wOC0yOSAxNzo1ODoyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RpdGVyYXRvci4qOiBBZnRlciAzIHllYXJzIGl0J3MgYWJvdXQgdGltZSB0byByZXZpc2UgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIGl0ZXJhdG9yIG9iamVjdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOgoJICAqIGdzdC9nc3RpdGVyYXRvci5oOgoJICBBZnRlciAzIHllYXJzIGl0J3MgYWJvdXQgdGltZSB0byByZXZpc2UgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlCgkgIGl0ZXJhdG9yIG9iamVjdHMuCgoyMDA4LTA4LTI5IDE2OjEwOjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBNYWtlIHRoZSBpbnRlcm5hbCBsaW5rcyBmdW5jdGlvbiBsZXNzIHRocmVhZC11bnNhZmUgYW5kIGFkZCBzb21lIGNvbW1lbnRzLCBkdW5ubyB3aHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X2ludGVybmFsX2xpbmtzX2RlZmF1bHQpOgoJICBNYWtlIHRoZSBpbnRlcm5hbCBsaW5rcyBmdW5jdGlvbiBsZXNzIHRocmVhZC11bnNhZmUgYW5kIGFkZCBzb21lCgkgIGNvbW1lbnRzLCBkdW5ubyB3aHkuCgoyMDA4LTA4LTI5IDE0OjEyOjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdF9wcml2YXRlLmg6IEluY2x1ZGUgZ3N0aW5mby5oIGV2ZW4gaWYgR1NUX0RJU0FCTEVfR1NUX0RFQlVHIGlzIGRlZmluZWQuIEZpeGVzIGJ1aWxkIHdpdGggLS1kaXNhYmxlLWdzdC1kZWJ1Zy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgIEluY2x1ZGUgZ3N0aW5mby5oIGV2ZW4gaWYgR1NUX0RJU0FCTEVfR1NUX0RFQlVHIGlzIGRlZmluZWQuIEZpeGVzCgkgIGJ1aWxkIHdpdGggLS1kaXNhYmxlLWdzdC1kZWJ1Zy4KCjIwMDgtMDgtMjkgMDA6MzQ6NTggKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHBhZHRlbXBsYXRlLmM6IFJldmVydCBsYXN0IGNoYW5nZSwgc2luY2UgaXQgYnJlYWtzIGEgZmV3IHBsdWdpbnMsIGZmbXBlZywgYWxhdywgYW5kIG11bGF3LiAgQ29kZSBpcyBjb3JyZWN0LCBiLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOiBSZXZlcnQgbGFzdCBjaGFuZ2UsIHNpbmNlIGl0IGJyZWFrcwoJICBhIGZldyBwbHVnaW5zLCBmZm1wZWcsIGFsYXcsIGFuZCBtdWxhdy4gIENvZGUgaXMgY29ycmVjdCwKCSAgYnV0IHNob3VsZG4ndCBiZSBlbmFibGVkIHVudGlsIHdlJ3ZlIHJlbGVhc2VkIGZpeGVkIHZlcnNpb25zCgkgIG9mIC1nb29kIGFuZCAtZmZtcGVnLgoKMjAwOC0wOC0yOCAyMDoxMjo1NCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdG9iamVjdC5jOiBQdXQgdGhlIGdzdF9vYmplY3RfZ2V0X25hbWUoKSBiYWNrIGluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIFB1dCB0aGUgZ3N0X29iamVjdF9nZXRfbmFtZSgpIGJhY2sgaW4uCgoyMDA4LTA4LTI4IDEyOjMyOjE5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGFkdGVtcGxhdGUuYzogVGhlIG9sZCBiZWhhdmlvdXIgd2FzIHRoYXQgZ3N0X3BhZF90ZW1wbGF0ZV9uZXcoKSB0YWtlcyBvd25lcnNoaXAgb2YgdGhlIGNhcHMuIEFzIHdlIG5vdyBjYWxsIGcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIFRoZSBvbGQgYmVoYXZpb3VyIHdhcyB0aGF0IGdzdF9wYWRfdGVtcGxhdGVfbmV3KCkgdGFrZXMgb3duZXJzaGlwIG9mCgkgIHRoZSBjYXBzLiBBcyB3ZSBub3cgY2FsbCBnX29iamVjdF9uZXcoKSB3aGljaCBjYWxscyBnX29iamVjdF9zZXQoKSBhbmQKCSAgd2hpY2ggY29waWVzIHRoZSBjYXBzLCB3ZSBoYXZlIHRvIHVucmVmIHRoZW0gdG8gbm90IGxlYWsgdGhlbS4gRml4ZXMKCSAgbWFrZSB2YWxncmlkIGZvciBtZS4KCjIwMDgtMDgtMjggMTA6NDU6MDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R1cmkuYzogRG9uJ3Qgc2VnZmF1bHQgb24gaW5wdXQgbGlrZSAidGVsOisxLTEyMy01NTUtMTIzNCIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1cmkuYzoKCSAgRG9uJ3Qgc2VnZmF1bHQgb24gaW5wdXQgbGlrZSAidGVsOisxLTEyMy01NTUtMTIzNCIuCgoyMDA4LTA4LTI3IDA3OjE4OjM3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0b2JqZWN0LmM6IER1ZSB0byBwb3B1bGFyIHJlcXVlc3QgYWxzbyBpbmNsdWRlIE9iamVjdFR5cGUgaW4gZ3N0X29iamVjdF9nZXRfcGF0aF9zdHJpbmcoKS4gTWFrZXMgZ3N0LWxhdW5jaCAtdiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG9iamVjdC5jOgoJICBEdWUgdG8gcG9wdWxhciByZXF1ZXN0IGFsc28gaW5jbHVkZSBPYmplY3RUeXBlIGluCgkgIGdzdF9vYmplY3RfZ2V0X3BhdGhfc3RyaW5nKCkuIE1ha2VzIGdzdC1sYXVuY2ggLXYgYml0IG1vcmUgdXNlZnVsLgoKMjAwOC0wOC0yNyAwMzowNDoyMyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuYzogUmVtb3ZlIGNoZWNrIGluIGdzdF9wYWRfcXVlcnlfY29udmVydCgpIHRoYXQgc3JjX3ZhbCBtdXN0IGJlIHBvc2l0aXZlLCBiZWNhdXNlIHRoYXQncyBub3QgYSByZXF1aXJlbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IFJlbW92ZSBjaGVjayBpbiBnc3RfcGFkX3F1ZXJ5X2NvbnZlcnQoKSB0aGF0CgkgIHNyY192YWwgbXVzdCBiZSBwb3NpdGl2ZSwgYmVjYXVzZSB0aGF0J3Mgbm90IGEgcmVxdWlyZW1lbnQuCgkgIFRoaXMgY2F1c2VzIHByb2JsZW1zIHdpdGggY29udmVydGluZyBuZWdhdGl2ZSBncmFudWxlcG9zCgkgIHZhbHVlcyBmb3IgRGlyYWMuCgkgICogZ3N0L2dzdHF1ZXJ5LmM6IFNhbWUsIGdzdF9xdWVyeV9uZXdfY29udmVydCgpLgoKMjAwOC0wOC0yNyAwMjo1OTo1OSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuYzogUmVtb3ZlIGNoZWNrIGluIGdzdF9wYWRfcXVlcnlfY29udmVydCgpIHRoYXQgc3JjX3ZhbCBtdXN0IGJlIHBvc2l0aXZlLCBiZWNhdXNlIHRoYXQncyBub3QgYSByZXF1aXJlbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IFJlbW92ZSBjaGVjayBpbiBnc3RfcGFkX3F1ZXJ5X2NvbnZlcnQoKSB0aGF0CgkgIHNyY192YWwgbXVzdCBiZSBwb3NpdGl2ZSwgYmVjYXVzZSB0aGF0J3Mgbm90IGEgcmVxdWlyZW1lbnQuCgkgIFRoaXMgY2F1c2VzIHByb2JsZW1zIHdpdGggY29udmVydGluZyBuZWdhdGl2ZSBncmFudWxlcG9zCgkgIHZhbHVlcyBmb3IgRGlyYWMuCgoyMDA4LTA4LTI1IDExOjA2OjM0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNsb2NrLmM6IEFkZCBzb21lIG1vcmUgZGVidWdnaW5nIHRvIHRoZSBjbG9jayBzbGF2aW5nIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2FkZF9vYnNlcnZhdGlvbik6CgkgIEFkZCBzb21lIG1vcmUgZGVidWdnaW5nIHRvIHRoZSBjbG9jayBzbGF2aW5nIGNvZGUuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBBZGQgbmV3IGJhc2V0cmFuc2Zvcm0gbWV0aG9kLgoKMjAwOC0wOC0yNSAxMTowMDoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogVGFrZSB0aGUgKHJlY3Vyc2l2ZSkgc3RhdGUgbG9jayBiZXR3ZWVuIGdldHRpbmcgdGhlIGxvY2tlZCBzdGF0ZSBvZiBhbiBlbGVtZW50IGFuZCBjaGFuZ2luZyB0aGUgZWxlbWVudC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgVGFrZSB0aGUgKHJlY3Vyc2l2ZSkgc3RhdGUgbG9jayBiZXR3ZWVuIGdldHRpbmcgdGhlIGxvY2tlZCBzdGF0ZSBvZiBhbgoJICBlbGVtZW50IGFuZCBjaGFuZ2luZyB0aGUgZWxlbWVudCBzdGF0ZS4gVGhpcyBhbGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRvCgkgIGxvY2sgYW4gZWxlbWVudCdzIHN0YXRlIGFuZCB0aGVuIGNoYW5nZSBpdHMgc3RhdGUgd2l0aG91dCByYWNlcy4KCjIwMDgtMDgtMjUgMTA6NTI6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFdoZW4gYW4gZWxlbWVudCBpcyBpbiB0aGUgbG9ja2VkIHN0YXRlIHdlIHN0aWxsIHdhbnQgdG8gdXBkYXRlIHRoZSBiYXNlX3RpbWUgb2YgdGhlIGVsZW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpOgoJICBXaGVuIGFuIGVsZW1lbnQgaXMgaW4gdGhlIGxvY2tlZCBzdGF0ZSB3ZSBzdGlsbCB3YW50IHRvIHVwZGF0ZSB0aGUKCSAgYmFzZV90aW1lIG9mIHRoZSBlbGVtZW50LgoKMjAwOC0wOC0yMSAxMToxNzowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBVc2UgdGhlIHJlc3VsdCBmcm9tIGdzdF9wYWRfc2V0X2NhcHMoKSBpbnN0ZWFkIG9mIGFzc3VtaW5nIHRoZSBlbGVtZW50IGFsd2F5cyBhY2NlcHRlZCB0aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kZWZhdWx0X25lZ290aWF0ZSk6CgkgIFVzZSB0aGUgcmVzdWx0IGZyb20gZ3N0X3BhZF9zZXRfY2FwcygpIGluc3RlYWQgb2YgYXNzdW1pbmcgdGhlIGVsZW1lbnQKCSAgYWx3YXlzIGFjY2VwdGVkIHRoZSBjYXBzIGNvbXB1dGVkIGJ5IHRoZSBkZWZhdWx0IG5lZ290aWF0ZSBmdW5jdGlvbi4KCjIwMDgtMDgtMjAgMTA6NTI6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBJbXBsZW1lbnQgbWV0aG9kIGZvciByZWNvbmZpZ3VyaW5nIGJhc2V0cmFuc2Zvcm0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0cmFuZ2UpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9zdWdnZXN0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9yZWNvbmZpZ3VyZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIEltcGxlbWVudCBtZXRob2QgZm9yIHJlY29uZmlndXJpbmcgYmFzZXRyYW5zZm9ybS4KCSAgQVBJOiBHc3RCYXNlVHJhbnNmb3JtOjpnc3RfYmFzZV90cmFuc2Zvcm1fcmVjb25maWd1cmUoKQoKMjAwOC0wOC0yMCAwNzoyMjoxMSArMDAwMCAgTXVycmF5IEN1bW1pbmcgPG11cnJheWNAbXVycmF5Yy5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogTWVudGlvbiB0aGF0IHRoaXMgaXMganVzdCBsaWtlIGdzdF9idWZmZXJfbWVyZ2UoKSBidXQgd2l0aCBleHRyYSB1bnJlZmZpbmcgZm9yIEMgY29kZXJzLiBBZHZpc2UgbGFuZ3UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBNdXJyYXkgQ3VtbWluZyA8bXVycmF5Y0BtdXJyYXljLmNvbT4KCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgTWVudGlvbiB0aGF0IHRoaXMgaXMganVzdCBsaWtlIGdzdF9idWZmZXJfbWVyZ2UoKSBidXQgd2l0aCBleHRyYQoJICB1bnJlZmZpbmcgZm9yIEMgY29kZXJzLiBBZHZpc2UgbGFuZ3VhZ2UgYmluZGluZ3Mgbm90IHRvIHdyYXAgaXQuCgkgIEZpeGVzIEJ1ZyAjNTMzODU2LgoJICBBbHNvIGZpeCBmaWxlIGNvbW1lbnQuCgoyMDA4LTA4LTIwIDA3OjAzOjQwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogQ2FsbCBzdXBlcjo6ZXZlbnQoKSB3aGVuIG5vdCBoYW5kbGluZyBpdC4gRml4ZXMgIzU0NDg1NS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmlld2VkIGJ5OiBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgQ2FsbCBzdXBlcjo6ZXZlbnQoKSB3aGVuIG5vdCBoYW5kbGluZyBpdC4gRml4ZXMgIzU0NDg1NS4KCjIwMDgtMDgtMTkgMTc6MjM6MTggKzAwMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvQG5udmEub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IFVzZSA2NCBiaXQgdmFyaWFudHMgb2Ygc3RhdCBmdW5jdGlvbnMgb24gd2luMzIsIHRvIGVuYWJsZSBzdXBwb3J0IG9mIGxhcmdlIGZpbGVzIHRoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvQG5udmEub3JnPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBVc2UgNjQgYml0IHZhcmlhbnRzIG9mIHN0YXQgZnVuY3Rpb25zIG9uIHdpbjMyLCB0byBlbmFibGUgc3VwcG9ydAoJICBvZiBsYXJnZSBmaWxlcyB0aGVyZS4KCSAgRml4ZXMgIzU0NzI3Ny4KCjIwMDgtMDgtMTkgMTY6NDc6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEltcHJvdmUgcG9zaXRpb24gcmVwb3J0aW5nIGluIHRoZSBmbHVzaGluZyBzdGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19yZW5kZXJfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19jaGFpbl91bmxvY2tlZCksCgkgIChnc3RfYmFzZV9zaW5rX25lZ290aWF0ZV9wdWxsKSwgKGdzdF9iYXNlX3NpbmtfcGFkX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBJbXByb3ZlIHBvc2l0aW9uIHJlcG9ydGluZyBpbiB0aGUgZmx1c2hpbmcgc3RhdGUuCgkgIEFsc28gcmVwb3J0IHRoZSBwb3NpdGlvbiB3aGVuIHdlIGFyZSBub3QgeWV0IHByZXJvbGxlZCBidXQgd2UKCSAgaGF2ZSBhIG5ld3NlZ21lbnQgZXZlbnQuIEZpeGVzICM1NDM0NDQuCgkgIEltcHJvdmUgdGhlIHB1bGwtYmFzZWQgbmVnb3RpYXRpb24gY29kZS4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZmFrZXNpbmtfc3VpdGUpOgoJICBBZGQgdGVzdGNhc2UgZm9yIHBvc2l0aW9uIHJlcG9ydGluZyB3aGlsZSBmbHVzaGluZyBpbiBQQVVTRUQgYW5kCgkgIFBMQVlJTkcuCgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVcGRhdGUgdW5pdC10ZXN0LCB3ZSBjYW4gbm93IHF1ZXJ5IHRoZSBwb3NpdGlvbiBhcyBzb29uIGFzIHdlIHJlY2VpdmUgYQoJICBORVdTRUdNRU5UIGV2ZW50LgoKMjAwOC0wOC0xOSAwODo1MjowNSArMDAwMCAgSmFzb24gWmhhbyA8ZTM0MjNjQG1vdG9yb2xhLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogV2hlbiB0aGUgc3ViY2xhc3MgZXZlbnQgaGFuZGxlciByZWxlYXNlcyB0aGUgUFJFUk9MTF9MT0NLLCB3ZSBjb3VsZCBiZSBpbiB0aGUgZmx1c2hpbmcgcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IEphc29uIFpoYW8gPGUzNDIzYyBhdCBtb3Rvcm9sYSBkb3QgY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcmVuZGVyX29iamVjdCk6CgkgIFdoZW4gdGhlIHN1YmNsYXNzIGV2ZW50IGhhbmRsZXIgcmVsZWFzZXMgdGhlIFBSRVJPTExfTE9DSywgd2UgY291bGQgYmUKCSAgaW4gdGhlIGZsdXNoaW5nIHN0YXRlIGFuZCB3ZSBoYXZlIHRvIGlnbm9yZSB0aGUgZXZlbnQuIEZpeGVzICM1NDgzOTQuCgoyMDA4LTA4LTE4IDExOjI4OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC4xLmluOiBEb2N1bWVudCBHU1RfUkVHSVNUUllfVVBEQVRFIGVudmlyb25tZW50IHZhcmlhYmxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIERvY3VtZW50IEdTVF9SRUdJU1RSWV9VUERBVEUgZW52aXJvbm1lbnQgdmFyaWFibGUuCgoyMDA4LTA4LTE4IDA5OjU5OjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IElmIHRoZSBlbGVtZW50IGlzIGNvbmZpZ3VyZWQgaW4gcGFzc3Rocm91Z2ggbW9kZSBidXQgdGhlIHByZXBhcmVfb3V0cHV0X2J1ZmZlciBnYXZlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlcik6CgkgIElmIHRoZSBlbGVtZW50IGlzIGNvbmZpZ3VyZWQgaW4gcGFzc3Rocm91Z2ggbW9kZSBidXQgdGhlCgkgIHByZXBhcmVfb3V0cHV0X2J1ZmZlciBnYXZlIHVzIGEgbmV3IG91dHB1dCBidWZmZXIsIGRpc2NhcmQgdGhhdCBidWZmZXIKCSAgYW5kIHJldXNlIHRoZSBpbnB1dCBidWZmZXIuCgoyMDA4LTA4LTE1IDE3OjAxOjA3ICswMDAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuKjogUHJvdGVjdCBwYWRfYWxsb2Mgd2l0aCBhIG5ldyBsb2NrIHNvIHRoYXQgd2UgY2FuIGJlIHN1cmUgdGhhdCBub3RoaW5nIGlzIHBlcmZvcm1pbmcgYSBwYWRfLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzICA8b2xlLmFuZHJlLnJhdm5hcyBhdCB0YW5kYmVyZyBjb20+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfZmluYWxpemUpLCAoZ3N0X3RlZV9pbml0KSwKCSAgKGdzdF90ZWVfcmVxdWVzdF9uZXdfcGFkKSwgKGdzdF90ZWVfcmVsZWFzZV9wYWQpLAoJICAoZ3N0X3RlZV9maW5kX2J1ZmZlcl9hbGxvYyksIChnc3RfdGVlX2J1ZmZlcl9hbGxvYyk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgUHJvdGVjdCBwYWRfYWxsb2Mgd2l0aCBhIG5ldyBsb2NrIHNvIHRoYXQgd2UgY2FuIGJlIHN1cmUgdGhhdCBub3RoaW5nIGlzCgkgIHBlcmZvcm1pbmcgYSBwYWRfYWxsb2Mgd2hlbiByZW1vdmluZyB0aGUgcGFkLiBGaXhlcyAjNTQ3ODM1LgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOiAoYnVmZmVyX2FsbG9jX2hhcm5lc3Nfc2V0dXApLAoJICAoYnVmZmVyX2FsbG9jX2hhcm5lc3NfdGVhcmRvd24pLCAoYXBwX3RocmVhZF9mdW5jKSwKCSAgKGZpbmFsX3NpbmtwYWRfYnVmZmVyYWxsb2MpLCAoR1NUX1NUQVJUX1RFU1QpLCAodGVlX3N1aXRlKToKCSAgQWRkZWQgdGVzdGNhc2UgZm9yIHNodXRkb3duIHJhY2UuCgoyMDA4LTA4LTE0IDIwOjA1OjMzICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5oOiBBZGQgZG9jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgQWRkIGRvYwoKMjAwOC0wOC0xNCAxNjozNzoyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBHbyBvdmVyIHRoZSBidWZmZXJfYWxsb2MgZnVuY3Rpb24gYWdhaW4gYW5kIG1ha2Ugc3VyZSB3ZSBhbHdheXMgZW5kIHVwIGFsbG9jYXRpbmcgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIEdvIG92ZXIgdGhlIGJ1ZmZlcl9hbGxvYyBmdW5jdGlvbiBhZ2FpbiBhbmQgbWFrZSBzdXJlIHdlIGFsd2F5cyBlbmQgdXAKCSAgYWxsb2NhdGluZyBhIGJ1ZmZlci4KCSAgQWRkIHNvbWUgbW9yZSBkb2NzLgoJICBBdm9pZCBkb2luZyBwYWQgYWxsb2Mgd2hlbiB3ZSBoYXZlIGEgcGVuZGluZyBzdWdnZXN0aW9uIGJlY2F1c2Ugd2UKCSAgY2Fubm90IHlldCBkZWFsIHdpdGggY2hhbmdpbmcgY2FwcyBpbiB0aGF0IGNhc2UuIEZpeGVzICM1NDc3MjgKCjIwMDgtMDgtMTQgMTQ6MjY6MjAgKzAwMDAgIEx1YyBQaW9uY2hvbiA8bHVjLnBpb25jaG9uQG5va2lhLmNvbT4KCgkgIGRvY3MvbWFudWFsLzogQWRkIG9uZSBtb3JlIGltYWdlIHNob3dpbmcgZGlmZmVyZW50IHRpbWVzIHRvZ2V0aGVyIHdpdGggYSBkZXNjcmliaW5nIHBhcmFncmFwaC4gRml4ZXMgIzU0NzcyOS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBMdWMgUGlvbmNob24gPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtY2xvY2tzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9jbG9ja3MucG5nOgoJICAqIGRvY3MvbWFudWFsL2RpYWdyYW1zLWNsb2Nrcy5zdmc6CgkgIEFkZCBvbmUgbW9yZSBpbWFnZSBzaG93aW5nIGRpZmZlcmVudCB0aW1lcyB0b2dldGhlciB3aXRoIGEgZGVzY3JpYmluZwoJICBwYXJhZ3JhcGguIEZpeGVzICM1NDc3MjkuCgoyMDA4LTA4LTE0IDE0OjA0OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOiBBZGQgbmV3IG1ldGhvZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBBZGQgbmV3IG1ldGhvZC4KCjIwMDgtMDgtMTQgMTM6NTc6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRG9uJ3Qgb3ZlcndyaXRlIHRoZSBvdXRzaXplIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGV4cGVjdGVkIHNpemUgb2YgYSBuZXcgYnVmZmVyIGJlY2EuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9zdWdnZXN0KToKCSAgRG9uJ3Qgb3ZlcndyaXRlIHRoZSBvdXRzaXplIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGV4cGVjdGVkIHNpemUgb2YgYSBuZXcKCSAgYnVmZmVyIGJlY2F1c2Ugd2Ugc3RpbGwgbmVlZCBpdCBpbiBjYXNlIHdlIGNhbm5vdCBwcm9jZXNzIHRoZSBuZXcKCSAgYnVmZmVyLgoJICBXaGVuIGNvbnZlcnRpbmcgdGhlIHNpemUgb2YgdGhlIG5ldyBidWZmZXIgdG8gYW4gdXBzdHJlYW0gc2l6ZSwgYWN0dWFsbHkKCSAgdXNlIHRoZSBleHBlY3RlZCBzaXplIG9mIHRoZSBidWZmZXIsIG5vdCBzb21lIG90aGVyIHJhbmRvbSB2YWx1ZS4KCSAgVXNlIGFuIGF0b21pYyBpbnQgdG8gc2lnbmFsIHRoYXQgYSBuZXcgdXBzdHJlYW0gY2FwcyBzdWdnZXN0aW9uIGlzCgkgIGF2YWlsYWJsZS4KCSAgV2hlbiB3ZSBjYW4gY29udmVydCB0aGUgY3VycmVudCBidWZmZXIgdG8gYSBuZXcgZm9ybWF0LCBjaGVjayBpZiB0aGUKCSAgYnVmZmVyIHNpemUgaXMgb2YgdGhlIGV4cGVjdGVkIHNpemUgYW5kIGFsbG9jYXRlIGEgbmV3IGJ1ZmZlciBvZiB0aGUKCSAgZXhwZWN0ZWQgc2l6ZSB3aGVuIHRoaXMgaXMgbm90IHRoZSBjYXNlLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICByZW1vdmUgaWZkZWZmZWQgY29kZSBmcm9tIHRoZSB1bml0IHRlc3QuCgoyMDA4LTA4LTEyIDE4OjQ4OjQyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwa2djb25maWcvOiBSZW1vdmUgLWxnc3Rjb250cm9sLTAuMTAgd2hpY2ggbmV2ZXIgd29ya2VkIGFueXdheSBhcyB0aGUgbGliIGlzIGNhbGxlZCBnc3Rjb250cm9sbGVyLTAuMTAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSAgUmVtb3ZlIC1sZ3N0Y29udHJvbC0wLjEwIHdoaWNoIG5ldmVyIHdvcmtlZCBhbnl3YXkgYXMgdGhlIGxpYiBpcwoJICBjYWxsZWQgZ3N0Y29udHJvbGxlci0wLjEwLgoKMjAwOC0wOC0xMiAwNjoyNzozNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0LzogUmVtb3ZlIGRvdWJsZSBpbnRlcmZhY2UgZnJvbSBkb2Mtc3RyaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJICAqIGdzdC9nc3RwcmVzZXQuaDoKCSAgUmVtb3ZlIGRvdWJsZSBpbnRlcmZhY2UgZnJvbSBkb2Mtc3RyaW5nLgoKMjAwOC0wOC0xMiAwNjoxNjowMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS86IEZpeCBoZWFkaW5ncyBpbiBkb2NzIGFuZCBndGstZG9jIHdhcm5pbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgRml4IGhlYWRpbmdzIGluIGRvY3MgYW5kIGd0ay1kb2Mgd2FybmluZ3MuCgoyMDA4LTA4LTExIDE5OjA0OjA0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogRG9uJ3QgdXNlIGdfbWtzdG1wKCkgb24gd2luMzIsIGl0J3MgdW5zYWZlIGlmIGdsaWIgaXMgdXNpbmcgYSBkaWZmZXJlbnQgbGliYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIERvbid0IHVzZSBnX21rc3RtcCgpIG9uIHdpbjMyLCBpdCdzIHVuc2FmZSBpZiBnbGliIGlzIHVzaW5nIGEgZGlmZmVyZW50CgkgIGxpYmMuCgkgIEZpeGVzICM1NDQ3NzYuCgoyMDA4LTA4LTExIDE1OjE0OjI4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEZpeCBhICJtYXkgYmUgdXNlZCB1bml0aWFsaXplZCIgd2FybmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgRml4IGEgIm1heSBiZSB1c2VkIHVuaXRpYWxpemVkIiB3YXJuaW5nLgoKMjAwOC0wOC0xMSAwODowNjoyMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgRG9jdW1lbnQgcHJlc2V0LWlmYWNlIHZtZXRob2RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RwcmVzZXQuaDoKCSAgRG9jdW1lbnQgcHJlc2V0LWlmYWNlIHZtZXRob2RzLgoKMjAwOC0wOC0xMSAwNzowNzo0NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6IFR1cm4gdGhvdWdodHMgYWJvdXQgSEFMIGludG8gYSBub3RlLXRhZy4gUmVtb3ZlIG1lbnRpb25pbmcgdGhhdCBpcyBvbmx5IHVzZWQgdG8gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWludGVyZmFjZXMueG1sOgoJICBUdXJuIHRob3VnaHRzIGFib3V0IEhBTCBpbnRvIGEgbm90ZS10YWcuIFJlbW92ZSBtZW50aW9uaW5nIHRoYXQgaXMKCSAgb25seSB1c2VkIHRvIGRpc2NvdmVyIGRldmljZXMuCgoyMDA4LTA4LTA3IDE1OjQ5OjAwICswMDAwICBGcmVkZXJpYyBDcm96YXQgPGZjcm96YXRAbWFuZHJpdmEub3JnPgoKCSAgZ3N0L2dzdC5jOiBNYWtlIHN1cmUgZ2V0dGV4dCByZXR1cm5zIHRyYW5zbGF0aW9ucyBpbiBVVEYtOCBlbmNvZGluZyByYXRoZXIgdGhhbiBpbiB0aGUgY3VycmVudCBsb2NhbGUgZW5jb2RpbmcgKCM1NDY4Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRnJlZGVyaWMgQ3JvemF0IDxmY3JvemF0QG1hbmRyaXZhLm9yZz4KCSAgKiBnc3QvZ3N0LmM6IChpbml0X3ByZSk6CgkgIE1ha2Ugc3VyZSBnZXR0ZXh0IHJldHVybnMgdHJhbnNsYXRpb25zIGluIFVURi04IGVuY29kaW5nIHJhdGhlcgoJICB0aGFuIGluIHRoZSBjdXJyZW50IGxvY2FsZSBlbmNvZGluZyAoIzU0NjgyMikuCgoyMDA4LTA4LTA3IDEyOjI4OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogRml4IHN1YnNldCB0ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfc3RydWN0dXJlX2lzX3N1YnNldF9maWVsZCk6CgkgIEZpeCBzdWJzZXQgdGVzdC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBJbXByb3ZlIHVuaXQgdGVzdCBzdWJzZXQgdGVzdHMgYW5kIGFkZCBhIHRlc3RjYXNlIGZvciB0aGUgc3Vic2V0IGZhaWx1cmUKCSAgY2FzZXMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICBJbXByb3ZlIHN1YnRyYWN0aW9uIHVuaXQgdGVzdC4KCjIwMDgtMDgtMDcgMDc6MDE6MTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IFVubG9jaywgaW5zdGVhZCBvZiBsb2NraW5nIGFnYWluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBVbmxvY2ssIGluc3RlYWQgb2YgbG9ja2luZyBhZ2Fpbi4KCjIwMDgtMDgtMDUgMTY6NTA6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmg6IENsYXJpZnkgdGhlIGRvY3MgYSBiaXQgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBDbGFyaWZ5IHRoZSBkb2NzIGEgYml0IG1vcmUuCgoyMDA4LTA4LTA1IDE1OjQyOjAwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6IERvbid0IGxlYWsgb2xkIHRhZ2xpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzoKCSAgRG9uJ3QgbGVhayBvbGQgdGFnbGlzdC4KCjIwMDgtMDgtMDUgMTU6MDM6MjcgKzAwMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IEF2b2lkIG92ZXJmbG93cyBpbiBmaXhhdGlvbiBjb2RlIHdoZW4gZGVhbGluZyB3aXRoIE1BWElOVCB2YWx1ZXMsIHdoaWNoIHY0bDJzcmMgc2VlbXMgdG8gZG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xpdmllciBDcmV0ZSA8dGVzdGVyIGF0IHRlc3RlciBkb3QgY2E+CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICAoZ3N0X3N0cnVjdHVyZV9maXhhdGVfZmllbGRfbmVhcmVzdF9mcmFjdGlvbik6CgkgIEF2b2lkIG92ZXJmbG93cyBpbiBmaXhhdGlvbiBjb2RlIHdoZW4gZGVhbGluZyB3aXRoIE1BWElOVCB2YWx1ZXMsIHdoaWNoCgkgIHY0bDJzcmMgc2VlbXMgdG8gZG8uCgkgIEZpeGVzICM1NDYzMjguCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBNYWtlIGEgdW5pdCB0ZXN0IHRvIGNoZWNrIHRoZSBmaXguCgoyMDA4LTA4LTA1IDExOjEyOjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IFVzZSBuZXcgY2FwcyBzdWdnZXN0aW9uIGZlYXR1cmUgb2YgYmFzZXRyYW5zZm9ybSB0byByZXF1ZXN0IGEgY2FwcyBuZWdvdGlhdGlvbiB1cHN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoY29weV9mdW5jKSwKCSAgKGdzdF9jYXBzZmlsdGVyX3NldF9wcm9wZXJ0eSk6CgkgIFVzZSBuZXcgY2FwcyBzdWdnZXN0aW9uIGZlYXR1cmUgb2YgYmFzZXRyYW5zZm9ybSB0byByZXF1ZXN0IGEgY2FwcwoJICBuZWdvdGlhdGlvbiB1cHN0cmVhbS4KCjIwMDgtMDgtMDUgMTE6MTE6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBBZGQgbmV3IGZ1bmN0aW9uOgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBZGQgbmV3IGZ1bmN0aW9uOgoJICBBUEk6IEdzdEJhc2VUcmFuc2Zvcm06OmdzdF9iYXNlX3RyYW5zZm9ybV9zdWdnZXN0KCkKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9maW5hbGl6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9zaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jb25maWd1cmVfY2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2FuX3RyYW5zZm9ybSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZmluZF90cmFuc2Zvcm0pLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRyYW5nZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2FjdGl2YXRlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfcGFzc3Rocm91Z2gpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2lzX3Bhc3N0aHJvdWdoKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfaW5fcGxhY2UpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2lzX2luX3BsYWNlKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV91cGRhdGVfcW9zKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfcW9zX2VuYWJsZWQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2lzX3Fvc19lbmFibGVkKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfZ2FwX2F3YXJlKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9zdWdnZXN0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9yZWNvbmZpZ3VyZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIFJld3JpdGUgb2YgYmFzZXRyYW5zZm9ybSB0byBwZXJmb3JtIG5lZ290aWF0aW9uIG91dHNpZGUgb2YgdGhlCgkgIGJ1ZmZlcl9hbGxvYyBmdW5jdGlvbnMuICBGaXhlcyAjNTQ1ODUzLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoYnVmZmVyX2FsbG9jX2N0Mik6CgkgIFVwZGF0ZSB1bml0IHRlc3QuCgoyMDA4LTA4LTA1IDA1OjQ0OjAyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJlc2V0LmM6IE9ubHkgcnVuIHByZXNldCB0ZXN0cyB3aGVuICRIT01FIGlzIHdyaXRhYmxlLiBQcmVsaW1pbmFyeSBmaXggZm9yICM1NDU0MzMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwcmVzZXQuYzoKCSAgT25seSBydW4gcHJlc2V0IHRlc3RzIHdoZW4gJEhPTUUgaXMgd3JpdGFibGUuIFByZWxpbWluYXJ5IGZpeCBmb3IKCSAgIzU0NTQzMy4KCjIwMDgtMDgtMDQgMTU6NDk6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEZpeCByYWNlIGZvciBiaW5zIHRoYXQgc2ltdWxhdGUgQVNZTkMgc3RhdGUgY2hhbmdlcyBieSBpbnNlcnRpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX3JlbW92ZV9mdW5jKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpLCAoYmluX2hhbmRsZV9hc3luY19kb25lKSwKCSAgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIEZpeCByYWNlIGZvciBiaW5zIHRoYXQgc2ltdWxhdGUgQVNZTkMgc3RhdGUgY2hhbmdlcyBieSBpbnNlcnRpbmcKCSAgQVNZTkNfU1RBUlQgYW5kIEFTWU5DX0RPTkUgbWVzc2FnZXMgaW4gdGhlaXIgYnVzLiBXZSBuZWVkIHRvIGNoZWNrIGZvcgoJICBwZW5kaW5nIEFTWU5DIG1lc3NhZ2VzIGV2ZW4gd2hlbiB0aGUgYmluIGRvZXMgbm90IGhhdmUgQVNZTkMgY2hpbGRyZW4uCgkgIFdlIG5vdGUgZGV0ZWN0IHRoaXMgYmVoYXZpb3VyIGJlY2F1c2Ugd2Ugd2lsbCByZWNlaXZlIGFuIEFTWU5DIG1lc3NhZ2UKCSAgdGhhdCBpcyBvcmlnaW5hdGluZyBmcm9tIHRoZSBiaW4gaXRzZWxmLgoJICBGaXhlcyByYWNlcyB3aXRoIGRlY29kZWJpbjIgc3RhdGUgY2hhbmdlcy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZCBzb21lIG1vcmUgZGVidWcuCgoyMDA4LTA4LTA0IDEzOjAxOjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuYzogRml4IHR5cG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChfZ3N0X3RhZ19pbml0aWFsaXplKToKCSAgRml4IHR5cG8uCgoyMDA4LTA4LTA0IDEyOjQ2OjIzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5jOiBBcmdoLiBhY3R1YWxseSBzYXZlIHRoZSB0ZXh0IGJlZm9yZSBjb21taXR0aW5nLiBOb3cgYWRkcyBnc3RfdGFnX21lcmdlX3N0cmluZ3Nfd2l0aF9jb21tYSgpIHRvIGdzdF8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgQXJnaC4gYWN0dWFsbHkgc2F2ZSB0aGUgdGV4dCBiZWZvcmUgY29tbWl0dGluZy4gTm93IGFkZHMKCSAgZ3N0X3RhZ19tZXJnZV9zdHJpbmdzX3dpdGhfY29tbWEoKSB0byBnc3RfdGFnX3JlZ2lzdGVyKCkuCgoyMDA4LTA4LTA0IDEyOjMwOjI2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC4qOiBEbyBhcyB0aW0gcG9pbnRlZCBvdXQgYW5kIGFjdHVhbGx5IHJlZ2lzdGVyIHRoZSBuZXcgdGFnLiBBbHNvIGltcHJvdmUgdGUgZG9jcyBhbmQgdXNlIGdzdF90YWdfbWVyZ2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBEbyBhcyB0aW0gcG9pbnRlZCBvdXQgYW5kIGFjdHVhbGx5IHJlZ2lzdGVyIHRoZSBuZXcgdGFnLiBBbHNvIGltcHJvdmUKCSAgdGUgZG9jcyBhbmQgdXNlIGdzdF90YWdfbWVyZ2Vfc3RyaW5nc193aXRoX2NvbW1hKCkgbWV0aG9kIHRvIGFsbG93CgkgIHJldHJpdmluZyBhbGwga2V5d29yZHMgbWVyZ2VkIGluIG9uZSBsaXN0LgoKMjAwOC0wOC0wMSAxMTo1Nzo0MCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgUmV2ZXJ0ICdhY2NpZGVudGlhbCcgY2hhbmdlIG9mIHRoZSBjb25maWd1cmUgb3B0aW9uIHJlbW92YWwuIFdlIHN0aWxsIG5lZWQgdG8gZ2VuZXJhdGUgdGhlIHR5cGVzIGZpbGUgaW4gY29uZmlndXJlIC0tLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgIFJldmVydCAnYWNjaWRlbnRpYWwnIGNoYW5nZSBvZiB0aGUgY29uZmlndXJlIG9wdGlvbiByZW1vdmFsLiBXZSBzdGlsbAoJICBuZWVkIHRvIGdlbmVyYXRlIHRoZSB0eXBlcyBmaWxlIGluIGNvbmZpZ3VyZSAtLWRpc2FibGUtbG9hZC1zYXZlLgoKMjAwOC0wOC0wMSAxMTozNDowNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQWRkIG5ldyB0YWdsaXN0IGl0ZW0gR1NUX1RBR19LRVlXT1JEUywgbmVlZGVkIGZvciAjNTIwNjk0IC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBBZGQgbmV3IHRhZ2xpc3QgaXRlbSBHU1RfVEFHX0tFWVdPUkRTLCBuZWVkZWQgZm9yICM1MjA2OTQgLgoKMjAwOC0wOC0wMSAxMDowMjo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOiBBZGQgIm5hbWUtdGVtcGxhdGUiLCAiZGlyZWN0aW9uIiwgInByZXNlbmNlIiBhbmQgImNhcHMiIHByb3BlcnRpZXMsIHNvIHRoYXQgZ3N0X3BhZF90ZW1wbGF0ZV9uZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgKGdzdF9wYWRfdGVtcGxhdGVfY2xhc3NfaW5pdCksIChnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXQpLAoJICAoZ3N0X3BhZF90ZW1wbGF0ZV9uZXcpLCAoZ3N0X3BhZF90ZW1wbGF0ZV9wYWRfY3JlYXRlZCksCgkgIChnc3RfcGFkX3RlbXBsYXRlX3NldF9wcm9wZXJ0eSksIChnc3RfcGFkX3RlbXBsYXRlX2dldF9wcm9wZXJ0eSk6CgkgIEFkZCAibmFtZS10ZW1wbGF0ZSIsICJkaXJlY3Rpb24iLCAicHJlc2VuY2UiIGFuZCAiY2FwcyIgcHJvcGVydGllcywKCSAgc28gdGhhdCBnc3RfcGFkX3RlbXBsYXRlX25ldygpIGlzIGp1c3QgYSB0aGluIHdyYXBwZXIgYXJvdW5kCgkgIGdfb2JqZWN0X25ldygpLCB3aGljaCBpcyBiZXR0ZXIgZm9yIGJpbmRpbmdzLiAoRml4ZXM6ICM1Mzk3NzIpCgoyMDA4LTA3LTMxIDE3OjE2OjUwICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0dXJpLmM6IEJlIG1vcmUgbGliZXJhbCBpbiB3aGF0IFVSSXMgd2UgYWNjZXB0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXJpLmM6CgkgIEJlIG1vcmUgbGliZXJhbCBpbiB3aGF0IFVSSXMgd2UgYWNjZXB0LgoJICBEbyBub3QgdW5lc2NhcGUgYml0cyBvZiB0aGUgVVJJIGZvciBubyBhcHBhcmVudCByZWFzb24gYmVmb3JlIHBhc3NpbmcgdG8KCSAgdGhlIGVsZW1lbnQuIEZpeGVzICM1NDUzNTIuCgoyMDA4LTA3LTMxIDE1OjI0OjIxICswMDAwICBSb2JlcnQgU2Nod2ViZWwgPHIuc2Nod2ViZWxAcGVuZ3V0cm9uaXguZGU+CgoJICBnc3QvZ3N0LmM6IEluY2x1ZGUgZ3N0Y29uZmlnLmggYXMgbWFjcm9zIGZyb20gaXQgYXJlIHVzZWQuIEZpeGVzIGJ1ZyAjNTQ1NjA3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFJvYmVydCBTY2h3ZWJlbCA8ci5zY2h3ZWJlbEBwZW5ndXRyb25peC5kZT4KCSAgKiBnc3QvZ3N0LmM6CgkgIEluY2x1ZGUgZ3N0Y29uZmlnLmggYXMgbWFjcm9zIGZyb20gaXQgYXJlIHVzZWQuIEZpeGVzIGJ1ZyAjNTQ1NjA3LgoKMjAwOC0wNy0zMSAxNToyMDozMiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgUmVtb3ZlIEdTVF9ESVNBQkxFXyhFTlVNVFlQRVN8SU5ERVh8VVJJKSBldmVyeXdoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5fc2V0X2luZGV4X2Z1bmMpOgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X2luZGV4KToKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChsb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X3htbF9yZWFkX2NhY2hlKSwgKGdzdF9yZWdpc3RyeV94bWxfc2F2ZV9mZWF0dXJlKToKCSAgKiBwbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIHRvb2xzL2dzdC1pbmRlbnQ6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2luZGV4X2luZm8pLCAocHJpbnRfZWxlbWVudF9saXN0KSwKCSAgKHByaW50X3BsdWdpbl9mZWF0dXJlcyksIChwcmludF9lbGVtZW50X2ZlYXR1cmVzKToKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOiAocHJpbnRfZXZlbnRfbWFza3MpLAoJICAocHJpbnRfZWxlbWVudF9pbmZvKToKCSAgKiB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6CgkgIFJlbW92ZSBHU1RfRElTQUJMRV8oRU5VTVRZUEVTfElOREVYfFVSSSkgZXZlcnl3aGVyZS4KCSAgRGlzYWJsaW5nIHRoZSBpbmRleGVycyBhbmQgVVJJIGhhbmRsZXIgY29kZSB3aWxsIG9ubHkgcmVkdWNlIHRoZQoJICByZXF1aXJlZCBhbW91bnQgb2YgbWVtb3J5IGJ5IGEgdmVyeSBzbWFsbCBhbW91bnQgYnV0IG9uIHRoZSBvdGhlciBoYW5kCgkgIHJlcXVpcmVzIG11Y2ggbW9yZSBtYWludGFpbmNlIHdvcmsuIEFwYXJ0IGZyb20gdGhhdCBtYW55IHBsYWNlcyBvZgoJICBjb2RlIGFyZSBicm9rZW4gd2hlbiBkaXNhYmxpbmcgdGhlbS4KCSAgRGlzYWJsaW5nIHRoZSBlbnVtIHR5cGVzIGRvZXNuJ3QgcmVkdWNlIHRoZSByZXF1aXJlZCBhbW91bnQgb2YgbWVtb3J5CgkgIGJ5IG1vcmUgdGhhbiBhIGZldyBieXRlcyBhbmQgbWFrZXMgaXQgaGFyZCB0byBmaXggYnVncyBsaWtlICM1Mzk3NzIsCgkgIGkuZS4gdXNlIHRoZSBlbnVtcyBhcyBHT2JqZWN0IHByb3BlcnRpZXMuCgoyMDA4LTA3LTMxIDEzOjA2OjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogQWRkIHNvbWUgdGhvdWdodHMgYW5kIHByb2JsZW1zIHdpdGggdXBzdHJlYW0gcmVuZWdvdGlhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgQWRkIHNvbWUgdGhvdWdodHMgYW5kIHByb2JsZW1zIHdpdGggdXBzdHJlYW0gcmVuZWdvdGlhdGlvbi4KCjIwMDgtMDctMzEgMTI6NTA6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFJlbW92ZSBzaWxseSByZWR1bmRhbnQgZGVidWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWNjZXB0Y2Fwc19kZWZhdWx0KSwKCSAgKGdzdF9wYWRfY29uZmlndXJlX3NyYyksIChnc3RfcGFkX2FsbG9jX2J1ZmZlcl9mdWxsKToKCSAgUmVtb3ZlIHNpbGx5IHJlZHVuZGFudCBkZWJ1Zy4KCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICBDbGFyaWZ5IHRoZSBkb2NzIHJlZ2FyZGluZyBuZXcgY2FwcyByZWNlaXZlZCBmcm9tIHBhZF9hbGxvYy4KCjIwMDgtMDctMzEgMDk6NTU6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogTWFrZSBzZXR0aW5nIHRoZSBjYXBzIG1vcmUgdGhyZWFkc2FmZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2NhcHNmaWx0ZXJfZ2V0X3Byb3BlcnR5KSwgKGdzdF9jYXBzZmlsdGVyX3RyYW5zZm9ybV9jYXBzKToKCSAgTWFrZSBzZXR0aW5nIHRoZSBjYXBzIG1vcmUgdGhyZWFkc2FmZS4KCjIwMDgtMDctMzEgMDg6Mzk6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtdHJhbnNmb3JtLnR4dDogVXBkYXRlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC10cmFuc2Zvcm0udHh0OgoJICBVcGRhdGUgZG9jcy4KCjIwMDgtMDctMzEgMDg6Mzc6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IEFkZCBhbmQgdXNlIGEgY3VzdG9tIGFjY2VwdGNhcHMgZnVuY3Rpb24gaW5zdGVhZCBvZiBmYWxsaW5nIGJhY2sgdG8gdGhlIHBvdGVudGlhbGx5IGxlc3MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2luaXQpLAoJICAoZ3N0X3F1ZXVlX2FjY2VwdGNhcHMpOgoJICBBZGQgYW5kIHVzZSBhIGN1c3RvbSBhY2NlcHRjYXBzIGZ1bmN0aW9uIGluc3RlYWQgb2YgZmFsbGluZyBiYWNrIHRvIHRoZQoJICBwb3RlbnRpYWxseSBsZXNzIG9wdGltaXplZCBkZWZhdWx0IGltcGxlbWVudGF0aW9uLgoKMjAwOC0wNy0yOSAxNTozMjoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogT25seSBzYW5pdHktY2hlY2sgdGhlIGJ1ZmZlciBzaXplIGlmIHJlcXVlc3RlZF9jYXBzID09IGJ1ZmZlcl9jYXBzIChpZS4gZG9uJ3QgdGFrZSBwYWQgY2FwcyBpbnRvIGFjY291bi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FsbG9jX2J1ZmZlcl9mdWxsKToKCSAgT25seSBzYW5pdHktY2hlY2sgdGhlIGJ1ZmZlciBzaXplIGlmIHJlcXVlc3RlZF9jYXBzID09IGJ1ZmZlcl9jYXBzCgkgIChpZS4gZG9uJ3QgdGFrZSBwYWQgY2FwcyBpbnRvIGFjY291bnQsIHRoZXkncmUgbm90IHJlbGV2YW50IGhlcmUpCgoyMDA4LTA3LTI5IDE0OjMyOjUxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS4qOiBSZXZlcnRpbmcgYXMgbm90IGV2ZXJ5dGhpbmcgaXMgY2xlYXIgeWV0LiBOZWVkcyBzb21lIGdlbmVyYWwgZGVzaWduIHdvcmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgUmV2ZXJ0aW5nIGFzIG5vdCBldmVyeXRoaW5nIGlzIGNsZWFyIHlldC4gTmVlZHMgc29tZSBnZW5lcmFsIGRlc2lnbgoJICB3b3JrLgoKMjAwOC0wNy0yOSAxMzozNjozOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQ2hhbmdlTG9nOiBDaGFuZ2VMb2cgc3VyZ2VyeSBmb3IgdGVlIGNvbW1pdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeSBmb3IgdGVlIGNvbW1pdC4KCjIwMDgtMDctMjkgMTM6MzA6MDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IENsZWFudXAgc2VjdGlvbi1maWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBDbGVhbnVwIHNlY3Rpb24tZmlsZS4KCjIwMDgtMDctMjkgMTE6NTc6MTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLio6IFJlbGF5IHRhZyBldmVudHMgaW4gdGVlLiBGaXhlcyBwYXJ0cyBvZiAjNDc0MDE2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkgIFJlbGF5IHRhZyBldmVudHMgaW4gdGVlLiBGaXhlcyBwYXJ0cyBvZiAjNDc0MDE2LgoKMjAwOC0wNy0yOSAwMDo0NToyOSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgQnVpbGQgdGhlIG5ldCBsaWJyYXJ5IGlmIHdlIGhhdmUgd2luc29jazIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSAgQnVpbGQgdGhlIG5ldCBsaWJyYXJ5IGlmIHdlIGhhdmUgd2luc29jazIuCgoyMDA4LTA3LTI2IDEyOjAwOjM2ICswMDAwICBMdWMgUGlvbmNob24gPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+CgoJICBkb2NzL21hbnVhbC86IFJlcGxhY2Ugb25lIGRpYWdyYW0gd2l0aCB0d28gc2VwYXJhdGUgb25lcyBhbmQgdXBkYXRlcyBvdGhlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogTHVjIFBpb25jaG9uIDxsdWMucGlvbmNob25Abm9raWEuY29tPgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXRocmVhZHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2RpYWdyYW1zLXBpcGVsaW5lcy5zdmc6CgkgICogZG9jcy9tYW51YWwvaGVsbG8td29ybGQucG5nOgoJICAqIGRvY3MvbWFudWFsL2xpbmtlZC1lbGVtZW50cy5wbmc6CgkgICogZG9jcy9tYW51YWwvbWltZS13b3JsZC5wbmc6CgkgICogZG9jcy9tYW51YWwvcXVldWUucG5nOgoJICAqIGRvY3MvbWFudWFsL3RocmVhZC1idWZmZXJpbmcucG5nOgoJICAqIGRvY3MvbWFudWFsL3RocmVhZC1zeW5jaHJvbml6aW5nLnBuZzoKCSAgUmVwbGFjZSBvbmUgZGlhZ3JhbSB3aXRoIHR3byBzZXBhcmF0ZSBvbmVzIGFuZCB1cGRhdGVzIG90aGVycy4KCSAgRml4ZXMgIzU0MjQwMS4KCjIwMDgtMDctMjUgMTA6MjQ6NDMgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5oOiBGaXggbGluayBpbiBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBGaXggbGluayBpbiBkb2N1bWVudGF0aW9uLgoKMjAwOC0wNy0yNCAxNzozODo0MyArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RtZXNzYWdlLmM6IEZpeCBjb25mdXNpbmcgZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgRml4IGNvbmZ1c2luZyBkb2N1bWVudGF0aW9uLgoKMjAwOC0wNy0yNCAxNToxMzoyNCArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOiByZXZlcnQgdGhlIGNoYW5nZXMgdG8gdGhlIGhlYWRlciBmaWxlIGZvciB0aGUgQUJJLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgcmV2ZXJ0IHRoZSBjaGFuZ2VzIHRvIHRoZSBoZWFkZXIgZmlsZSBmb3IgdGhlIEFCSS4KCjIwMDgtMDctMjQgMTQ6NDc6NTggKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuKjogRG9uJ3QgY2FjaGUgdGhlIHNlZWthYmxlIHN0YXR1cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIERvbid0IGNhY2hlIHRoZSBzZWVrYWJsZSBzdGF0dXMuCgkgIEZpeGVzIGJ1ZyAjNTQ0MTc0CgoyMDA4LTA3LTI0IDEyOjM2OjIwICswMDAwICBSZW5lIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOiBBZGQgZmFrZXNpbmsgdG8gZXhhbXBsZSBjb2RlIHRvIGNsb3NlIHRoZSBwaXBlbGluZSBncmFwaC4gIFRoaXMgcHJldmVudHMgdGhlIHAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDogQWRkIGZha2VzaW5rIHRvIGV4YW1wbGUKCSAgY29kZSB0byBjbG9zZSB0aGUgcGlwZWxpbmUgZ3JhcGguICBUaGlzIHByZXZlbnRzIHRoZSBwcm9ncmFtIGZyb20KCSAgcHJpbnRpbmcgaW50ZXJuYWwgZGF0YSBmbG93IGVycm9ycy4KCjIwMDgtMDctMjMgMTU6NDQ6MDQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOiBDb3JyZWN0IHR5cG8uIEZpeGVzIGJ1ZyAjNTQ0MzIwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSAgQ29ycmVjdCB0eXBvLiBGaXhlcyBidWcgIzU0NDMyMC4KCjIwMDgtMDctMjIgMTg6MTI6NTQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogUmVtb3ZlIEFDX0lTQ19QT1NJWCBtYWNybzsgaXQncyBicm9rZW4gb24gc29tZSBwbGF0Zm9ybXMgYW5kIG5vdCBuZWVkZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgUmVtb3ZlIEFDX0lTQ19QT1NJWCBtYWNybzsgaXQncyBicm9rZW4gb24gc29tZSBwbGF0Zm9ybXMgYW5kIG5vdCBuZWVkZWQuCgkgIEFkZCBjaGVjayAodGFrZW4gZnJvbSAtYmFzZSkgZm9yIHdpbnNvY2ssIGFkZHMgV0lOMzJfTElCUwoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgQWRkIFdJTjMyX0xJQlMgdG8gTElCQUREIGZvciBsaWJnc3RyZWFtZXIuIE5lZWRlZCBub3cgdGhhdCBnc3Rwb2xsIHVzZXMKCSAgd2luc29jay4KCSAgRGVmaW5lIEdTVF9FWFBPUlRTIHdoZW4gYnVpbGRpbmcgbGliZ3N0cmVhbWVyIChvbmx5IHVzZWQgb24gd2luMzIpCgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgVXNlIEdTVF9FWFBPUlQgaW5zdGVhZCBvZiBsb2NhbGx5LWRlZmluZWQgKGFuZCBpbmNvcnJlY3QgSU1QT1JUX1NZTUJPTCkKCSAgZm9yIHN5bWJvbHMgdGhhdCB3ZSBuZWVkIHRvIGV4cG9ydCBpbiBib3RoIHRoZXNlIGZpbGVzLgoJICAqIGdzdC9nc3Rwb2xsLmM6CgkgIEluY2x1ZGUgZ3N0X3ByaXZhdGUuaCBoaWdoZXIgdXAgdG8gYXZvaWQgc29tZSBjb21waWxlIHByb2JsZW1zIG9uIHdpbjMyLgoKMjAwOC0wNy0yMiAwOToyNDozNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IEZpeCB0eXBvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIEZpeCB0eXBvcy4KCjIwMDgtMDctMjIgMDA6Mjk6NTUgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBQcmV2aW91cyBjb21taXQgd2FzIHdyb25nIE5VTEwgY2FwcyBkb2VzIG5vdCBleGlzdCBhbmQgaW5kaWNhdGUgYW4gZXJyb3IsIHNvIGFsc28gYWRkIGEgRklYTUUgdG8gZ3N0X2MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzoKCSAgUHJldmlvdXMgY29tbWl0IHdhcyB3cm9uZyBOVUxMIGNhcHMgZG9lcyBub3QgZXhpc3QKCSAgYW5kIGluZGljYXRlIGFuIGVycm9yLCBzbyBhbHNvIGFkZCBhIEZJWE1FIHRvCgkgIGdzdF9jYXBzX2lzX2VxdWFsIHdoZXJlIE5VTEwgY2FwcyBhcmUgYWNjZXB0ZWQuCgoyMDA4LTA3LTIxIDIzOjAyOjQwICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogQWxsb3cgcGFzc2luZyBvZiBOVUxMIHRvIGdzdF9jYXBzX3VuaW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6CgkgIEFsbG93IHBhc3Npbmcgb2YgTlVMTCB0byBnc3RfY2Fwc191bmlvbgoKMjAwOC0wNy0yMSAyMTozMjowNiArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBBZGQgaW4gZG9jIHRoYXQgZ3N0X2dob3N0X3BhZF9zZXRfdGFyZ2V0IGNhbiBhY2NlcHQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIEFkZCBpbiBkb2MgdGhhdCBnc3RfZ2hvc3RfcGFkX3NldF90YXJnZXQgY2FuIGFjY2VwdAoJICBOVUxMIHRvIGNsZWFyIHRhcmdldAoKMjAwOC0wNy0xNSAyMjo1MzowMCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0LzogR3N0UmVnaXN0cnlQb29sIGRvZXNuJ3QgZXhpc3Q7IGRvbid0IHJlZmVyIHRvIGl0IGluIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgR3N0UmVnaXN0cnlQb29sIGRvZXNuJ3QgZXhpc3Q7IGRvbid0IHJlZmVyIHRvIGl0IGluIGRvY3MuCgkgIERvbid0IHJlZmVyIHRvIGZ1bmN0aW9ucyB0aGF0IGRvbid0IGV4aXN0IGluIGRvY3MsIGl0J3MKCSAgdW5oZWxwZnVsLgoKMjAwOC0wNy0xMiAxNzo1MToxNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdC5jOiBGaXggc2Nhbm5pbmcgb2YgcGF0aHMgZ2l2ZW4gdmlhIC0tZ3N0LXBsdWdpbi1wYXRoLiBGaXhlcyBidWcgIzU0MjE3NS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBGaXggc2Nhbm5pbmcgb2YgcGF0aHMgZ2l2ZW4gdmlhIC0tZ3N0LXBsdWdpbi1wYXRoLiBGaXhlcyBidWcgIzU0MjE3NS4KCjIwMDgtMDctMTIgMTc6NDM6MTUgKzAwMDAgIHRtYXR0aCA8bGUuYnVzaW5lc3NtYW5AZ21haWwuY29tPgoKCSAgZG9jcy9wd2cvYnVpbGRpbmctdGVzdGFwcC54bWw6IERvbid0IHVzZSBhbiB1bmRlY2xhcmVkIHZhcmlhYmxlIGluIHRoZSBleGFtcGxlIHByb2dyYW0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogdG1hdHRoIDxsZSBkb3QgYnVzaW5lc3NtYW4gYXQgZ21haWwgZG90IGNvbT4KCSAgKiBkb2NzL3B3Zy9idWlsZGluZy10ZXN0YXBwLnhtbDoKCSAgRG9uJ3QgdXNlIGFuIHVuZGVjbGFyZWQgdmFyaWFibGUgaW4gdGhlIGV4YW1wbGUgcHJvZ3JhbS4KCSAgRml4ZXMgYnVnICM1NDI1NzMuCgoyMDA4LTA3LTEyIDA5OjU5OjMyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZGVidWd1dGlscy5jOiBTcXVlZXplIGdob3N0LXBhZCBsaW5rcyBhbmQgcmVtb3ZlIDw+IGZyb20gY2xhc3NuYW1lIGxhYmVscyB0byBzYXZlIG1vcmUgaG9yaXpvbnRhbCBzcGFjZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgU3F1ZWV6ZSBnaG9zdC1wYWQgbGlua3MgYW5kIHJlbW92ZSA8PiBmcm9tIGNsYXNzbmFtZSBsYWJlbHMgdG8gc2F2ZQoJICBtb3JlIGhvcml6b250YWwgc3BhY2UuCgoyMDA4LTA3LTExIDE5OjMwOjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZGVidWd1dGlscy5jOiBHaXZlIHJlcXVlc3QgYW5kIHNvbWV0aW1lcyBwYWRzIGEgZGlmZmVyZW50IHNocGUgc3R5bGUuIENvbmRlbnNlIHRoZSBncmFwaHMgYSBsaXR0bGUgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgR2l2ZSByZXF1ZXN0IGFuZCBzb21ldGltZXMgcGFkcyBhIGRpZmZlcmVudCBzaHBlIHN0eWxlLiBDb25kZW5zZSB0aGUKCSAgZ3JhcGhzIGEgbGl0dGxlIG1vcmUuCgoyMDA4LTA3LTEwIDAwOjMwOjAyICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBjb25maWd1cmUuYWM6IERvbid0IHJlcXVpcmUgZmxleCBhbmQgYmlzb24gaWYgdGhlIHBhcnNlciBpcyBkaXNhYmxlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBEb24ndCByZXF1aXJlIGZsZXggYW5kIGJpc29uIGlmIHRoZSBwYXJzZXIgaXMgZGlzYWJsZWQuCgoyMDA4LTA3LTA4IDExOjIwOjIyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6IERvbid0IHVzZSBkZWNsYXJhdGlvbnMgYWZ0ZXIgc3RhdGVtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICAoX2xpc3RfZmluZF9zb3J0ZWRfY3VzdG9tKToKCSAgRG9uJ3QgdXNlIGRlY2xhcmF0aW9ucyBhZnRlciBzdGF0ZW1lbnRzLgoKMjAwOC0wNy0wOCAwOTowNDoyNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdGNoaWxkcHJveHkuYzogQWRkIEZJWE1FcyBmb3IgMC4xMSB0byB1c2UgR1NUX1RZUEVfT0JKRUNUIGluIHRoZSBzaWduYXR1cmUgb2YgdGhlIHRoZSBjaGlsZC1hZGRlZCAvIC1yZW1vdmVkIHNpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjaGlsZHByb3h5LmM6IChnc3RfY2hpbGRfcHJveHlfYmFzZV9pbml0KToKCSAgQWRkIEZJWE1FcyBmb3IgMC4xMSB0byB1c2UgR1NUX1RZUEVfT0JKRUNUIGluIHRoZSBzaWduYXR1cmUKCSAgb2YgdGhlIHRoZSBjaGlsZC1hZGRlZCAvIC1yZW1vdmVkIHNpZ25hbHMgYXMgR3N0Q2hpbGRQcm94eQoJICBvbmx5IHN1cHBvcnRzIEdzdE9iamVjdHMuCgoyMDA4LTA3LTA3IDExOjAxOjI2ICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGRlYnVndXRpbHMuYzogRml4IG1lbWxlYWsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgRml4IG1lbWxlYWsKCjIwMDgtMDctMDYgMTI6NDk6NDMgKzAwMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvQG5udmEub3JnPgoKCSAgZ3N0L2dzdHBvbGwuYzogRml4ICJpZ25vcmVkIHJldHVybiB2YWx1ZSIgY29tcGlsZXIgd2FybmluZyB3aXRoIG5ld2VyIGdsaWJjLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvIGF0IG5udmEgZG90IG9yZz4KCSAgKiBnc3QvZ3N0cG9sbC5jOgoJICBGaXggImlnbm9yZWQgcmV0dXJuIHZhbHVlIiBjb21waWxlciB3YXJuaW5nIHdpdGggbmV3ZXIgZ2xpYmMuCgoyMDA4LTA3LTA1IDE2OjI4OjI4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0Y2hpbGRwcm94eS5jOiBGaXggY29weSZwYXN0ZSBlcnJvciBpbiBnc3RfY2hpbGRfcHJveHlfcmVtb3ZlZCgpIGRvY3VtZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkgIEZpeCBjb3B5JnBhc3RlIGVycm9yIGluIGdzdF9jaGlsZF9wcm94eV9yZW1vdmVkKCkgZG9jdW1lbnRhdGlvbi4KCjIwMDgtMDctMDIgMTQ6NDM6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IFByaW50IGVycm9yIGRlYnVnIG1lc3NhZ2UgaWYgcGx1Z2luIGRlc2NyaXB0aW9uIGZpZWxkcyB0aGF0IHNob3VsZCBiZSBzZXQgYXJlIE5VTEwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKENIRUNLX1BMVUdJTl9ERVNDX0ZJRUxEKSwgKGdzdF9wbHVnaW5fbG9hZF9maWxlKToKCSAgUHJpbnQgZXJyb3IgZGVidWcgbWVzc2FnZSBpZiBwbHVnaW4gZGVzY3JpcHRpb24gZmllbGRzIHRoYXQgc2hvdWxkCgkgIGJlIHNldCBhcmUgTlVMTC4KCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9jb25zdF9zdHJpbmcpOgoJICBEb24ndCBjcmFzaCBpZiB0aGUgc3RyaW5nIHRvIHNlcmlhbGlzZSBpcyBOVUxMIChpdCByZWFsbHkgc2hvdWxkCgkgIG5vdCBiZSwgYnV0IGFwcGFyZW50bHkgdGhpcyB1c2VkIHRvIHdvcmsgd2l0aCB0aGUgeG1sIHJlZ2lzdHJ5IC4uLikuCgoyMDA4LTA3LTAyIDEyOjIzOjEyICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LXBsb3QtdGltZWxpbmUucHk6IEZpeCBwYXJzaW5nIG9mIGxvZyBtZXNzYWdlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtcGxvdC10aW1lbGluZS5weToKCSAgRml4IHBhcnNpbmcgb2YgbG9nIG1lc3NhZ2VzCgoyMDA4LTA3LTAxIDA5OjI3OjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOiBTb3J0IGFscGhhYmV0aWNhbGx5IHNvIG1ha2UgY2hlY2stZXhwb3J0cyBkb2Vzbid0IGJhcmYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjo6CgkgIFNvcnQgYWxwaGFiZXRpY2FsbHkgc28gbWFrZSBjaGVjay1leHBvcnRzIGRvZXNuJ3QgYmFyZi4KCjIwMDgtMDctMDEgMDU6NTM6MzIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RldmVudC5jOiBVc2UgZ3N0X2Zvcm1hdF9nZXRfbmFtZSgpIHRvIGltcHJvdmUgZGVidWcgb3V0cHV0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgVXNlIGdzdF9mb3JtYXRfZ2V0X25hbWUoKSB0byBpbXByb3ZlIGRlYnVnIG91dHB1dC4KCSAgKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIFJlbW92ZSAjaWZkZWYnZWQgY29kZS4gQWRkIFRPRE8gY29tbWVudC4KCSAgKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBBZGQgZGVidWcgb3V0cHV0IHRvIGVhc2Ugc3BvdHRpbmcgZm9ybWF0ICE9IHNlZ21lbnQuZm9ybWF0IGFzc2VydGlvbnMuCgoyMDA4LTA2LTMwIDA5OjQyOjQzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOiBBbHNvIGVuYWJsZSB0aGUgR0RQIHVuaXQgdGVzdCBhZ2FpbiBvbiBQUEMgbm93IHRoYXQgdGhlIGJ1ZyBpcyBmaXhlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svbGlicy9nZHAuYzogKGdzdF9kcF9zdWl0ZSk6CgkgIEFsc28gZW5hYmxlIHRoZSBHRFAgdW5pdCB0ZXN0IGFnYWluIG9uIFBQQyBub3cgdGhhdCB0aGUgYnVnCgkgIGlzIGZpeGVkLgoKMjAwOC0wNi0zMCAwOTozODo0NSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBEb24ndCB3cml0ZSB0byB0aGUgc2FtZSByZWdpb24gb2YgbWVtb3J5IGFzIGEgdWludDY0IGFuZCB1aW50MTYgYXMgdGhpcyBicmVha3MgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgRG9uJ3Qgd3JpdGUgdG8gdGhlIHNhbWUgcmVnaW9uIG9mIG1lbW9yeSBhcyBhIHVpbnQ2NCBhbmQgdWludDE2CgkgIGFzIHRoaXMgYnJlYWtzIHN0cmljdCBhbGlhc2luZyBydWxlcyBhbmQgYXBwYXJhbnRseSBicmVha3Mgb24gUFBDCgkgIGFuZCBzMzkwLiBUaGFua3MgdG8gU2pvZXJkIFNpbW9ucyBmb3IgYW5hbHlzaW5nLiBGaXhlcyBidWcgIzM0ODExNC4KCjIwMDgtMDYtMjkgMTY6MTE6MjQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzogT3B0aW1pemUgbGlzdCBoYW5kbGluZy4gVXNlIG93biBmaW5kIGZ1bmN0aW9uLiBFeHBsb2l0IHRoYXQgZmFjdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIE9wdGltaXplIGxpc3QgaGFuZGxpbmcuIFVzZSBvd24gZmluZCBmdW5jdGlvbi4gRXhwbG9pdCB0aGF0IGZhY3QgdGhhdAoJICB0aGUgbGlzdCBpcyBzb3J0ZWQuIEFsc28gcGFzcyBiYWNrIHRoZSBub2RlIGJlZm9yZSwgc28gdGhhdCB3ZSBjYW4KCSAgaW5zZXJ0IHF1aWNrbHkuIEhhdmUgYSBmYXN0IHBhdGggZm9yIGFwcGVuZC4KCjIwMDgtMDYtMjkgMTU6MDA6MjYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZGVzaWduLzogRml4IHR3byB0eXBvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtZnJhbWVzdGVwLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgRml4IHR3byB0eXBvcy4KCjIwMDgtMDYtMjcgMDk6MDI6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzoKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBTaG93IGNvbmZpZ3VyYXRpb24gc3VtYXJ5IGFmdGVyIGNvbmZpZ3VyZSBydW4uIEJhc2VkIG9uIHBhdGNoIGJ5CgkgIEx1YyBQaW9uY2hvbiA8bHVjLnBpb25jaG9uQG5va2lhLmNvbT4uIEZpeGVzOiAjNTQwMTM0CgoyMDA4LTA2LTI3IDA3OjAzOjA1ICswMDAwICBMdWMgUGlvbmNob24gPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+CgoJICBkb2NzL21hbnVhbC86IEFkZCBzY2FsZSBmYWN0b3IgZm9yIHBkZiBvdXRwdXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogTHVjIFBpb25jaG9uICA8bHVjLnBpb25jaG9uQG5va2lhLmNvbT4KCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXRocmVhZHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgIEFkZCBzY2FsZSBmYWN0b3IgZm9yIHBkZiBvdXRwdXQuCgkgICogZG9jcy9tYW51YWwvaW50cm8tYmFzaWNzLnhtbDoKCSAgU3dpdGNoZWQgc2VjdGlvbnMgInBhZHMiIGFuZCAiYmlucyIgYW5kIGFkZGVkIGEgcGlwZWxpbmUgZGlhZ3JhbS4KCSAgKiBkb2NzL21hbnVhbC9pbnRyby1nc3RyZWFtZXIueG1sOgoJICBBZGRlZCBtb3JlIGluZm8gb24gZ3N0cmVhbWVyLgoJICAqIGRvY3MvbWFudWFsL2ludHJvLW1vdGl2YXRpb24ueG1sOgoJICBDb21tZW50ZWQgb3V0IHRoZSB3aG9sZSBzZWN0aW9uICJjdXJyZW50IHByb2JsZW0iLCB3aGljaCBzb3VuZHMKCSAgaGlzdG9yaWNhbCBhbmQgc29tZWhvdyBvc29sZXRlOyBpdCBjb3VsZCBiZSB0dXJuZWQgaW4gYSBwb3NpdGl2ZQoJICB3YXkgYW5kIHJldXNlZCB0byBpbXByb3ZlIHRoZSBkZXNpZ24gcHJpbmNpcGxlcy4KCSAgKiBkb2NzL21hbnVhbC9pbnRyby1wcmVmYWNlLnhtbDoKCSAgLSBVcGRhdGUgVVJMcyB0byBsaWJyYXJ5Lmdub21lLm9yZy4KCSAgLSBEbyBub3QgbWVudGlvbiBHVEsrIGluIHByZWxpbWluYXJ5IHJlYWRpbmcgKGlycmVsZXZhbnQpLgoJICAtIE1lbnRpb24gUGx1Z2luIFdyaXRlcidzIE1hbnVhbCBhbmQgZnVydGhlciByZWFkaW5nIG9ubHkgaW4gdGhlCgkgIHByZXZpb3VzIHNlY3Rpb24uCgkgIC0gQWRkZWQgYSBsaXN0IG9mIG1vc3QgcmVsZXZhbnQgR09iamVjdC9nbGliIHRvcGljcy4KCSAgKiBkb2NzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL21hbnVhbC9iaW4tZWxlbWVudC1naG9zdC5maWc6CgkgICogZG9jcy9tYW51YWwvYmluLWVsZW1lbnQtZ2hvc3QucG5nOgoJICAqIGRvY3MvbWFudWFsL2Jpbi1lbGVtZW50LW5vZ2hvc3QuZmlnOgoJICAqIGRvY3MvbWFudWFsL2Jpbi1lbGVtZW50LW5vZ2hvc3QucG5nOgoJICAqIGRvY3MvbWFudWFsL2Jpbi1lbGVtZW50LmZpZzoKCSAgKiBkb2NzL21hbnVhbC9iaW4tZWxlbWVudC5wbmc6CgkgICogZG9jcy9tYW51YWwvZmlsdGVyLWVsZW1lbnQtbXVsdGkuZmlnOgoJICAqIGRvY3MvbWFudWFsL2ZpbHRlci1lbGVtZW50LW11bHRpLnBuZzoKCSAgKiBkb2NzL21hbnVhbC9maWx0ZXItZWxlbWVudC5maWc6CgkgICogZG9jcy9tYW51YWwvZmlsdGVyLWVsZW1lbnQucG5nOgoJICAqIGRvY3MvbWFudWFsL2dzdHJlYW1lci1vdmVydmlldy5wbmc6CgkgICogZG9jcy9tYW51YWwvaGVsbG8td29ybGQuZmlnOgoJICAqIGRvY3MvbWFudWFsL2hlbGxvLXdvcmxkLnBuZzoKCSAgKiBkb2NzL21hbnVhbC9saW5rZWQtZWxlbWVudHMuZmlnOgoJICAqIGRvY3MvbWFudWFsL2xpbmtlZC1lbGVtZW50cy5wbmc6CgkgICogZG9jcy9tYW51YWwvbWltZS13b3JsZC5maWc6CgkgICogZG9jcy9tYW51YWwvbWltZS13b3JsZC5wbmc6CgkgICogZG9jcy9tYW51YWwvcXVldWUuZmlnOgoJICAqIGRvY3MvbWFudWFsL3F1ZXVlLnBuZzoKCSAgKiBkb2NzL21hbnVhbC9zaW1wbGUtcGxheWVyLnBuZzoKCSAgKiBkb2NzL21hbnVhbC9zaW5rLWVsZW1lbnQuZmlnOgoJICAqIGRvY3MvbWFudWFsL3NpbmstZWxlbWVudC5wbmc6CgkgICogZG9jcy9tYW51YWwvc3JjLWVsZW1lbnQuZmlnOgoJICAqIGRvY3MvbWFudWFsL3NyYy1lbGVtZW50LnBuZzoKCSAgKiBkb2NzL21hbnVhbC9kaWFncmFtcy1nZW5lcmFsLnN2ZzoKCSAgKiBkb2NzL21hbnVhbC9kaWFncmFtcy1waXBlbGluZXMuc3ZnOgoJICBSZW1vdmVkIC5maWcsIGFkZGVkIC5wbmcgY291bnRlcnBhcnQuCgkgIEZpeGVzOiAjNTM5MTM3CgoyMDA4LTA2LTI2IDIwOjI3OjAwICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLio6IHJldmVydCBleHRyYS1zaXplLWJ1ZmZlcnMgc3R1ZmYsIGNhdXNlZCBzb21lIHJhY2UgY29uZGl0aW9ucyBhbmQgZXh0cmEtc2l6ZS1idWZmZXJzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICByZXZlcnQgZXh0cmEtc2l6ZS1idWZmZXJzIHN0dWZmLCBjYXVzZWQgc29tZSByYWNlIGNvbmRpdGlvbnMKCSAgYW5kIGV4dHJhLXNpemUtYnVmZmVycyBpcyBub3QgdXNlZCBhbnltb3JlLiBEb2NzIG5lZWRzIHNvbWUgdXBkYXRlcwoKMjAwOC0wNi0yNiAxMjo1Mjo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi86IFVwZGF0ZSB3aW4zMiBmaWxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSAgKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkgICogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgVXBkYXRlIHdpbjMyIGZpbGVzLgoKMjAwOC0wNi0yNiAxMjoyNDowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6IEFkZCBtaXNzaW5nIFNpbmNlJyBtYXJrZXJzIHRvIGd0ay1kb2MgYmx1cmJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5oOiAoR3N0RGVidWdHcmFwaERldGFpbHMpLAoJICAoR1NUX0RFQlVHX0JJTl9UT19ET1RfRklMRSk6CgkgIEFkZCBtaXNzaW5nIFNpbmNlJyBtYXJrZXJzIHRvIGd0ay1kb2MgYmx1cmJzLgoKMjAwOC0wNi0yNiAxMTo1OTo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOiBBZGQgc29tZSBtb3JlIHRlc3RzIHdpdGggc3dpdGNoaW5nIGNhcHMgaW4gYnVmZmVyX2FsbG9jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzogKGJ1ZmZlcl9hbGxvY19wdDEpLAoJICAoc2V0X2NhcHNfcHQxKSwgKEdTVF9TVEFSVF9URVNUKSwgKHNldF9jYXBzX3B0MiksICh0cmFuc2Zvcm1faXBfMSksCgkgIChzZXRfY2Fwc18xKSwgKHNldF9jYXBzX2N0MSksICh0cmFuc2Zvcm1fY3QxKSwKCSAgKHRyYW5zZm9ybV9jYXBzX2N0MSksICh0cmFuc2Zvcm1fc2l6ZV9jdDEpLCAoYnVmZmVyX2FsbG9jX2N0MSksCgkgIChzZXRfY2Fwc19jdDIpLCAodHJhbnNmb3JtX2N0MiksICh0cmFuc2Zvcm1fY2Fwc19jdDIpLAoJICAodHJhbnNmb3JtX3NpemVfY3QyKSwgKGJ1ZmZlcl9hbGxvY19jdDIpOgoJICBBZGQgc29tZSBtb3JlIHRlc3RzIHdpdGggc3dpdGNoaW5nIGNhcHMgaW4gYnVmZmVyX2FsbG9jLgoKMjAwOC0wNi0yNSAxNzoyNzozMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2xpYnMvOiBNb3JlIHRlc3RzLCBwcmVwYXJlIGZvciB0ZXN0cyB3aXRoIHN3aXRjaGluZyBjYXBzIGluIGJ1ZmZlcl9hbGxvYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOiAoZ3N0X3Rlc3RfdHJhbnNfYmFzZV9pbml0KSwKCSAgKGdzdF90ZXN0X3RyYW5zX2NsYXNzX2luaXQpLCAocmVzdWx0X3NpbmtfY2hhaW4pLAoJICAocmVzdWx0X2J1ZmZlcl9hbGxvYyksIChnc3RfdGVzdF90cmFuc19uZXcpLCAoZ3N0X3Rlc3RfdHJhbnNfZnJlZSksCgkgIChnc3RfdGVzdF90cmFuc19wdXNoKSwgKGdzdF90ZXN0X3RyYW5zX3BvcCk6CgkgICogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6IChidWZmZXJfYWxsb2NfcHQxKSwKCSAgKHNldF9jYXBzX3B0MSksIChHU1RfU1RBUlRfVEVTVCksIChzZXRfY2Fwc19wdDIpLCAodHJhbnNmb3JtX2lwXzEpLAoJICAoc2V0X2NhcHNfMSksIChzZXRfY2Fwc19jdDEpLCAodHJhbnNmb3JtX2N0MSksCgkgICh0cmFuc2Zvcm1fY2Fwc19jdDEpLCAodHJhbnNmb3JtX3NpemVfY3QxKSwgKGJ1ZmZlcl9hbGxvY19jdDEpLAoJICAoc2V0X2NhcHNfY3QyKSwgKHRyYW5zZm9ybV9jdDIpLCAodHJhbnNmb3JtX2NhcHNfY3QyKSwKCSAgKHRyYW5zZm9ybV9zaXplX2N0MiksIChidWZmZXJfYWxsb2NfY3QyKSwKCSAgKGdzdF9iYXNldHJhbnNmb3JtX3N1aXRlKToKCSAgTW9yZSB0ZXN0cywgcHJlcGFyZSBmb3IgdGVzdHMgd2l0aCBzd2l0Y2hpbmcgY2FwcyBpbiBidWZmZXJfYWxsb2MuCgoyMDA4LTA2LTI1IDE1OjM5OjAyICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLio6IEZpeCBkZWFkLWxvY2sgaW4gdW5kZXJydW5fY2IKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIEZpeCBkZWFkLWxvY2sgaW4gdW5kZXJydW5fY2IKCjIwMDgtMDYtMjUgMTQ6NDk6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6IEZpeCBkZXZpY2Ugb3Blbi9jbG9zZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgIEZpeCBkZXZpY2Ugb3Blbi9jbG9zZSBkb2NzLgoKMjAwOC0wNi0yNSAxNDo0NzoxMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQ2hhbmdlTG9nOiBNZW50aW9uIGJ1Z251bWJlciBmb3IgbGFzdCBjb21taXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIENoYW5nZUxvZzoKCSAgTWVudGlvbiBidWdudW1iZXIgZm9yIGxhc3QgY29tbWl0LgoKMjAwOC0wNi0yNSAxNDo0NDo1MiArMDAwMCAgTHVjIFBpb25jaG9uIDxsdWMucGlvbmNob25Abm9raWEuY29tPgoKCSAgZG9jcy9tYW51YWwvbWFudWFsLnhtbDogLSBSZW9yZ2FuaXNlZCB0aGUgcHJldmlvdXMgImludHJvZHVjdGlvbiIgYnVuZGxlIGludG8gRm9yZXdvcmQsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogTHVjIFBpb25jaG9uICA8bHVjLnBpb25jaG9uQG5va2lhLmNvbT4KCSAgKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJICAtIFJlb3JnYW5pc2VkIHRoZSBwcmV2aW91cyAiaW50cm9kdWN0aW9uIiBidW5kbGUgaW50byBGb3Jld29yZCwKCSAgSW50cm9kdWN0aW9uLCBhbmQgQWJvdXQgR1N0cmVhbWVyLiBUaGUgdHdvIGZpcnN0IGFyZSA8cHJlZmFjZT4KCSAgZG9jYm9vayBlbGVtZW50cy4gVGhlIGxhdGVyIGlzIHRoZSBmaXJzdCBwYXJ0IG9mIHRoZSBib29rLgoJICAtIGFkZGVkIGludHJvLWdzdHJlYW1lci54bWwgKGNvbnRlbnQgcGFydGlhbGx5IGZyb20KCSAgaW50cm8tcHJlZmFjZS54bWwpCgkgIC0gbW92ZWQgYXBwZW5kaXgtd2luMzIueG1sIGludG8gYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sCgkgICogZG9jcy9tYW51YWwvaW50cm8tcHJlZmFjZS54bWw6IGdzdHJlYW1lciBzZWN0aW9uIG1vdmVkLi4uCgkgICogZG9jcy9tYW51YWwvaW50cm8tZ3N0cmVhbWVyLnhtbDogLi4uaGVyZS4gbmV3IGZpbGUuCgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtd2luMzIueG1sOiByZW1vdmVkIGZpbGUuIENvbnRlbnQgbW92ZWQuLi4KCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6IC4uLmhlcmUuCgkgICogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOiBzZWN0aW9uIGFib3V0IEdzdEVkaXRvciBtb3ZlZC4uLgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6IC4uLmhlcmUuCgoyMDA4LTA2LTI1IDE0OjMyOjUzICswMDAwICBMdWMgUGlvbmNob24gPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+CgoJICBkb2NzL21hbnVhbC86IC0gRXhwbGljaXRlbHkgaW5jbHVkZSBnbGliLmguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogTHVjIFBpb25jaG9uICA8bHVjLnBpb25jaG9uQG5va2lhLmNvbT4KCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkgICogZG9jcy9tYW51YWwvaGVsbG8td29ybGQuZmlnOgoJICAtIEV4cGxpY2l0ZWx5IGluY2x1ZGUgZ2xpYi5oLgoJICAtIERvIG5vdCB1c2UgZ2xvYmFsIHZhcmlhYmxlcy4KCSAgLSBVc2UgZ19wcmludGVycigpIGluc3RlYWQgb2YgZ19wcmludCgpLgoJICAtIE1pbm9yIGZvcm1hdGluZy9yZW5hbWluZyB0byBpbmNyZWFzZSByZWFkaWJpbGl0eS4KCSAgLSBSZW5hbWVkIG5ld19wYWQoKSB0byBvbl9wYWRfYWRkZWQoKQoJICAtIEltcHJvdmVkIGV4cGxlbmF0b3J5IGNvbW1lbnRzLgoJICAtIHJlbmFtZWQgb2dnIHBhcnNlciB0byBvZ2cgZGVtdXhlcgoJICAtIFVzZSAiYXV0b2F1ZGlvc2luayIgaW5zdGVhZCBvZiAiYWxzYXNpbmsiLgoJICBGaXhlczogIzUzODYxOQoKMjAwOC0wNi0yNSAxNDoyNzozNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQ2hhbmdlTG9nOiBSZW1vdmUgY3ZzIGNvbmZsaWN0IG1hcmtlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogQ2hhbmdlTG9nOgoJICBSZW1vdmUgY3ZzIGNvbmZsaWN0IG1hcmtlci4KCjIwMDgtMDYtMjUgMTQ6MjU6NDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvUkVBRE1FOiBEb2N1bWVudCB0aGF0IGZvciBwbGdpbi1kb2NzIHdlIGV4dHJheHQgaGUgc2hvcnQtZGVzYyBmcm9tIHRoZSBlbGVtZW50IGRldGFpbHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvUkVBRE1FOgoJICBEb2N1bWVudCB0aGF0IGZvciBwbGdpbi1kb2NzIHdlIGV4dHJheHQgaGUgc2hvcnQtZGVzYyBmcm9tIHRoZSBlbGVtZW50CgkgIGRldGFpbHMuCgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICBUZWxsIHRoYXQgZGV2aWNlcyBzaG91bGQgYmUgY2xvc2VkIGluIFBBVVNFRCAtPiBSRUFEWS4KCSAgKiBkb2NzL21hbnVhbC9SRUFETUU6CgkgIERvY3VtZW50IGhvdyB0ZXN0cyBpbiB0aGUgbWFudWFsIGFyZSBoYW5kbGVkLgoJICAqIGRvY3MvbWFudWFscy5tYWs6CgkgIFR5cG8gaW4gY29tbWVudC4KCjIwMDgtMDYtMjUgMTE6NTA6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IE9ubHkgY2FyZSBhYm91dCBsYXRlbmN5IG1pbiBhbmQgbWF4IHdoZW4gdGhlIHNpbmsgaXMgYWN0dWFsbHkgYSBsaXZlIHNpbmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9xdWVyeV9sYXRlbmN5X2ZvbGQpOgoJICBPbmx5IGNhcmUgYWJvdXQgbGF0ZW5jeSBtaW4gYW5kIG1heCB3aGVuIHRoZSBzaW5rIGlzIGFjdHVhbGx5IGEgbGl2ZQoJICBzaW5rLgoKMjAwOC0wNi0yNSAxMDo1Mzo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OiBGaXggdHlwby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkgIEZpeCB0eXBvLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC10cmFuc2Zvcm0udHh0OgoJICBBZGQgbm90ZXMgYWJvdXQgd2h5IHRyYW5zZm9ybSBuZWVkcyB0byBrbm93IGlucHV0L291dHB1dCBzaXplcy4KCSAgQWRkIHNvbWUgaXNzdWVzIHRoYXQgbmVlZCB0byBiZSBzb2x2ZWQuCgkgIEFkZCBzb21lIG1vcmUgdXNlIGNhc2VzLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzogKGdzdF90ZXN0X3RyYW5zX2Jhc2VfaW5pdCksCgkgIChnc3RfdGVzdF90cmFuc19jbGFzc19pbml0KSwgKHJlc3VsdF9zaW5rX2NoYWluKSwKCSAgKHJlc3VsdF9idWZmZXJfYWxsb2MpLCAoZ3N0X3Rlc3RfdHJhbnNfbmV3KSwgKGdzdF90ZXN0X3RyYW5zX2ZyZWUpLAoJICAoZ3N0X3Rlc3RfdHJhbnNfcHVzaCksIChnc3RfdGVzdF90cmFuc19wb3ApOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOiAoYnVmZmVyX2FsbG9jX3B0MSksCgkgIChzZXRfY2Fwc19wdDEpLCAoR1NUX1NUQVJUX1RFU1QpLCAoc2V0X2NhcHNfcHQyKSwgKHRyYW5zZm9ybV9pcF8xKSwKCSAgKHNldF9jYXBzXzEpLCAoc2V0X2NhcHNfY3QxKSwgKHRyYW5zZm9ybV9jdDEpLAoJICAodHJhbnNmb3JtX2NhcHNfY3QxKSwgKHRyYW5zZm9ybV9zaXplX2N0MSksIChidWZmZXJfYWxsb2NfY3QxKSwKCSAgKGdzdF9iYXNldHJhbnNmb3JtX3N1aXRlKToKCSAgQWRkIHN1cG9ydCBmb3IgZGlmZmVyZW50IHBhZCB0ZW1wbGF0ZXMgYW5kIGJ1ZmZlci1hbGxvYy4KCSAgQWRkIG1vcmUgY2hlY2tzIGZvciBjYXBzIGFuZCBidWZmZXItYWxsb2MuCgkgIEFkZCBjaGVja3MgZm9yIHByb3h5IGJ1ZmZlciBhbGxvYy4KCSAgQWRkIHVuaXQgdGVzdCBmb3IgY29weSB0cmFuc2Zvcm0uCgoyMDA4LTA2LTI0IDE5OjU2OjUxICswMDAwICBMdWMgUGlvbmNob24gPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+CgoJICBkb2NzL21hbnVhbC86IFR5cG8gYW5kIGZvcm1hdHRpbmcgZml4ZXMgKCM1Mzg1OTQpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEx1YyBQaW9uY2hvbiAgPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWxpY2Vuc2luZy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1jb21wb25lbnRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwteG1sLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9pbnRyby1iYXNpY3MueG1sOgoJICAqIGRvY3MvbWFudWFsL2ludHJvLXByZWZhY2UueG1sOgoJICBUeXBvIGFuZCBmb3JtYXR0aW5nIGZpeGVzICgjNTM4NTk0KS4KCjIwMDgtMDYtMjQgMDc6NDk6MzYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiBGaXggc29tZSBtZW1vcnkgbGVha3MgYW5kIHVzZXMgb2Ygb2JqZWN0IGluc3RhbmNlcyB0aGF0IHdlIGRvbid0IGFjdHVhbGx5IG93bi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBzb21lIG1lbW9yeSBsZWFrcyBhbmQgdXNlcyBvZiBvYmplY3QgaW5zdGFuY2VzIHRoYXQgd2UgZG9uJ3QKCSAgYWN0dWFsbHkgb3duLgoKMjAwOC0wNi0yMiAxOToxOTozNSArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBBZGQgZnVuY3Rpb25hbGl0eSB0byBleHRyYS1zaXplLWJ1ZmZlcnMgcHJvcGVydHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBBZGQgZnVuY3Rpb25hbGl0eSB0byBleHRyYS1zaXplLWJ1ZmZlcnMgcHJvcGVydHkuCgoyMDA4LTA2LTIyIDE0OjM1OjEzICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IERvbid0IHVwZGF0ZSB0aGUgY3VyX3RpbWUgb24gR1NUX0NMT0NLX1RJTUVfTk9ORSAoIzUzNzgwNCkgYW5kIGRvbid0IGFjdGl2YXRlIHRoZSBwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBEb24ndCB1cGRhdGUgdGhlIGN1cl90aW1lIG9uIEdTVF9DTE9DS19USU1FX05PTkUgKCM1Mzc4MDQpIGFuZCBkb24ndAoJICBhY3RpdmF0ZSB0aGUgcGFkcyBpZiB0aGV5IGFyZSBhZGRlZCBpbiBTVEFURV9OVUxMLgoKMjAwOC0wNi0yMSAyMToyMDoxMyArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEFkZCBuZXcgQVBJIHRvIGRvYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBZGQgbmV3IEFQSSB0byBkb2MKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIEFQSTogZ3N0X2NoZWNrX3RlYXJkb3duX3BhZF9ieV9uYW1lCgoyMDA4LTA2LTIxIDE5OjQ4OjUzICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suKjogQWxzbyBzZXR1cCByZXF1ZXN0IHBhZHMgYW5kIGFsbG93IHNldHVwIHBhZHMgYnkgbmFtZSAoIzUzNzgxMikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBBbHNvIHNldHVwIHJlcXVlc3QgcGFkcyBhbmQgYWxsb3cgc2V0dXAgcGFkcyBieSBuYW1lICgjNTM3ODEyKQoJICBBUEk6IGdzdF9jaGVja19zZXR1cF9zcmNfcGFkX2J5X25hbWUKCSAgQVBJOiBnc3RfY2hlY2tfc2V0dXBfc2lua19wYWRfYnlfbmFtZQoKMjAwOC0wNi0yMCAyMTowODo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0ZXN0cy9jaGVjay86IFVzZSBIQVZFX1ZBTEdSSU5EX0ggc29tZSBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBVc2UgSEFWRV9WQUxHUklORF9IIHNvbWUgbW9yZS4KCjIwMDgtMDYtMjAgMTY6Mjk6MjMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgc2NyaXB0cy9jdnMtdXBkYXRlLnNoOiBQYXNzIGFyZ3VtZW50cyB0byBtYWtlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzY3JpcHRzL2N2cy11cGRhdGUuc2g6CgkgIFBhc3MgYXJndW1lbnRzIHRvIG1ha2UuCgkgIFJ1biBhdXRvcmVnZW4uc2ggaWYgTWFrZWZpbGUgaXMgbm90IHRoZXJlLgoKMjAwOC0wNi0yMCAxNTo1NDo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBEb24ndCBhc3N1bWUgdGhhdCA8dmFsZ3JpbmQvdmFsZ3JpbmQuaD4gZXhpc3RzIGp1c3QgYmVjYXVzZSB0aGUgYmluYXJ5IGlzIHRoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgRG9uJ3QgYXNzdW1lIHRoYXQgPHZhbGdyaW5kL3ZhbGdyaW5kLmg+IGV4aXN0cyBqdXN0IGJlY2F1c2UKCSAgdGhlIGJpbmFyeSBpcyB0aGVyZS4KCjIwMDgtMDYtMjAgMTI6MDY6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay86IEFkZCBzb21lIHRlc3QgYmFzZXRyYW5zZm9ybSBlbGVtZW50IGFuZCB0aGUgYmVnaW5uaW5ncyBvZiB2YXJpb3VzIHVuaXQgdGVzdHMgZm9yIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6IChnc3RfdGVzdF90cmFuc19iYXNlX2luaXQpLAoJICAoZ3N0X3Rlc3RfdHJhbnNfY2xhc3NfaW5pdCksIChnc3RfdGVzdF90cmFuc19pbml0KSwKCSAgKGdzdF90ZXN0X3RyYW5zX3NldF9kYXRhKSwgKHJlc3VsdF9zaW5rX2NoYWluKSwKCSAgKGdzdF90ZXN0X3RyYW5zX25ldyksIChnc3RfdGVzdF90cmFuc19mcmVlKSwgKGdzdF90ZXN0X3RyYW5zX3B1c2gpLAoJICAoZ3N0X3Rlc3RfdHJhbnNfcG9wKToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKHRyYW5zZm9ybV9pcF8xKSwgKHNldF9jYXBzXzEpLCAoZ3N0X2Jhc2V0cmFuc2Zvcm1fc3VpdGUpOgoJICBBZGQgc29tZSB0ZXN0IGJhc2V0cmFuc2Zvcm0gZWxlbWVudCBhbmQgdGhlIGJlZ2lubmluZ3Mgb2YgdmFyaW91cwoJICB1bml0IHRlc3RzIGZvciBpdC4KCjIwMDgtMDYtMjAgMTE6MjQ6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IEluY3JlYXNlIGNvZGUgcmVhZGFiaWxpdHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGhlbHBlcl9maW5kX3BlZWspOgoJICBJbmNyZWFzZSBjb2RlIHJlYWRhYmlsaXR5LgoJICBEb24ndCB0cnkgdG8gY29tcGFyZSBidWZmZXIgb2Zmc2V0cyB3aGVuIHRoZXIgYXJlIGludmFsaWQuCgoyMDA4LTA2LTIwIDExOjA3OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06IERpc3Qgc29tZSBtb3JlIGRlc2lnbiBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSAgRGlzdCBzb21lIG1vcmUgZGVzaWduIGRvY3MuCgkgICogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkgIFNtYWxsIGFkZGl0aW9uOiBnb29kIHBsdWdpbnMgbXVzdG4ndCBoYXZlIGZ1bmN0aW9uYWwgY29kZQoJICB3aXRoaW4gYXNzZXJ0aW9uIG1hY3Jvcy4KCjIwMDgtMDYtMjAgMTA6MzI6MzQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1mcmFtZXN0ZXAudHh0OiBTb21lIGlkZWFzIGFib3V0IGEgZnJhbWVzdGVwIEFQSQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1mcmFtZXN0ZXAudHh0OgoJICBTb21lIGlkZWFzIGFib3V0IGEgZnJhbWVzdGVwIEFQSQoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC10cmFuc2Zvcm0udHh0OgoJICBTdGFydCBkZXNpZ24gYW5kIHVzZSBjYXNlcyBmb3IgYmFzZXRyYW5zZm9ybSBpbiBvcmRlciB0byBnZXQgaXQKCSAgZml4ZWQgc29vbi4KCjIwMDgtMDYtMjAgMTA6MjA6MDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YnVzLmM6IE1ha2UgaXQga25vd24gdGhhdCBnc3RfYnVzX3BvbGwoKSBpcyBwdXJlIGV2aWwgKGZpeGVzICM1Mzg4MTApLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgIE1ha2UgaXQga25vd24gdGhhdCBnc3RfYnVzX3BvbGwoKSBpcyBwdXJlIGV2aWwgKGZpeGVzICM1Mzg4MTApLgoKMjAwOC0wNi0yMCAxMDoxNDo1NCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IFJlbW92ZSBzaG9ydF9kZXNjcmlwdGlvbi4gQWRkIGJhc2ljIGRvY3MgZm9yIGdzdHR5cGVmaW5kZWxlbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgUmVtb3ZlIHNob3J0X2Rlc2NyaXB0aW9uLiBBZGQgYmFzaWMgZG9jcyBmb3IgZ3N0dHlwZWZpbmRlbGVtZW50LgoJICBTaW1wbGlmeSBtYXJrdXAgZm9yIGZha2VzcmMvZmRzcmMuCgoyMDA4LTA2LTIwIDEwOjA3OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiBBZGRlZCBTaW5jZSBkb2MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY2xhc3NfaW5pdCk6CgkgIEFkZGVkIFNpbmNlIGRvYy4KCjIwMDgtMDYtMjAgMTA6MDI6MTQgKzAwMDAgIGpvZWwgbGFyc3NvbiA8dGlsbGpvZWxAZ21haWwuY29tPgoKCSAgQWRkIHRpbWVvdXQgcHJvcGVydHkgbGlrZSB1ZHBzcmMuIEZpeGVzICM1Mzg2MjguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogam9lbCBsYXJzc29uIDx0aWxsam9lbCBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmRfc3JjX2luaXQpLCAoZ3N0X2ZkX3NyY191cGRhdGVfZmQpLAoJICAoZ3N0X2ZkX3NyY19zZXRfcHJvcGVydHkpLCAoZ3N0X2ZkX3NyY19nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2ZkX3NyY19jcmVhdGUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSAgQWRkIHRpbWVvdXQgcHJvcGVydHkgbGlrZSB1ZHBzcmMuIEZpeGVzICM1Mzg2MjguCgkgIEFkZCBzb21lIG1vcmUgZG9jcyBhbmQgZXhhbXBsZSBwaXBlbGluZXMuCgoyMDA4LTA2LTIwIDA4OjU0OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIG1ldGhvZCB0byBhbGxvdyBzaW5rcyB0byBzcGVjaWZ5IGFkZGl0aW9uYWwgZGVsYXkgYmV0d2VlbiB0aGUgc3luYyB0aW1lcyBhbmQgdGhlIGFjdHVhbCByZW5kZXJpbmcgb2YgdGhlIGRhdGEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnlfbGF0ZW5jeSksIChnc3RfYmFzZV9zaW5rX3NldF9yZW5kZXJfZGVsYXkpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcmVuZGVyX2RlbGF5KSwgKGdzdF9iYXNlX3Npbmtfd2FpdF9lb3MpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBBZGQgbWV0aG9kIHRvIGFsbG93IHNpbmtzIHRvIHNwZWNpZnkgYWRkaXRpb25hbCBkZWxheSBiZXR3ZWVuIHRoZSBzeW5jCgkgIHRpbWVzIGFuZCB0aGUgYWN0dWFsIHJlbmRlcmluZyBvZiB0aGUgZGF0YS4KCSAgQVBJOiBnc3RfYmFzZV9zaW5rX3NldF9yZW5kZXJfZGVsYXkoKQoJICBBUEk6IGdzdF9iYXNlX3NpbmtfZ2V0X3JlbmRlcl9kZWxheSgpCgoyMDA4LTA2LTIwIDA4OjQ1OjAxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQnVtcCB2ZXJzaW9uIG51bWJlciBiYWNrIHRvIGRldiAtPiAwLjEwLjIwLjEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCdW1wIHZlcnNpb24gbnVtYmVyIGJhY2sgdG8gZGV2IC0+IDAuMTAuMjAuMQoKMjAwOC0wNi0yMCAwODozOTo1NCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQVBJOiBBZGQgR1NUX1RBR19BVFRBQ0hNRU5UIGZvciBnZW5lcmljIGZpbGUgYXR0YWNobWVudHMgdG8gc3RyZWFtcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoX2dzdF90YWdfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgQVBJOiBBZGQgR1NUX1RBR19BVFRBQ0hNRU5UIGZvciBnZW5lcmljIGZpbGUgYXR0YWNobWVudHMgdG8gc3RyZWFtcy4KCSAgRml4ZXMgYnVnICM1Mzg1NjguCgoyMDA4LTA2LTIwIDA4OjM2OjQ2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogUmV2ZXJ0IG9uZSBjaGFuZ2UsIHRoYXQgbWFrZSByZXQgdmFsdWUgcG9zc2libGUgdW5pbml0aWFsaXplZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIFJldmVydCBvbmUgY2hhbmdlLCB0aGF0IG1ha2UgcmV0IHZhbHVlIHBvc3NpYmxlIHVuaW5pdGlhbGl6ZWQuCgoyMDA4LTA2LTIwIDA4OjMyOjM2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogVXNlIGZyZWV6ZS90aGF3IG5vdGlmeSB0byBzeW5jIG5vdGlmeSBlbWlzc2lvbiBhIGJpdCAoaXRzIGFsc28gbW9yZSBlZmZpY2llbnQpLiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIFVzZSBmcmVlemUvdGhhdyBub3RpZnkgdG8gc3luYyBub3RpZnkgZW1pc3Npb24gYSBiaXQgKGl0cyBhbHNvIG1vcmUKCSAgZWZmaWNpZW50KS4gTW92ZSBkZWJ1ZyBvdXRwdXQgdG8gTE9HIChpcyBjYWxsZWQgYSBsb3QgaW4gYSBsb29wKS4KCSAgQWx3YXlzIHVuc2V0IGdfdmFsdWVzIGlmIHRoZSBoYXZlIGJlZW4gaW5pdGlhbGl6ZWQuCgoyMDA4LTA2LTIwIDA4OjI4OjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBJZiB3ZSBoYXZlIG5vdCBzZWVuIGEgYnVmZmVyIGJlZm9yZSBFT1MsIHVzZSB0aGUgc2VnbWVudCB2YWx1ZXMgdG8gcmVwb3J0IHRoZSBjdXJyZW50IHBvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpLAoJICAoZ3N0X2Jhc2Vfc2lua193YWl0X2VvcyksIChnc3RfYmFzZV9zaW5rX2V2ZW50KToKCSAgSWYgd2UgaGF2ZSBub3Qgc2VlbiBhIGJ1ZmZlciBiZWZvcmUgRU9TLCB1c2UgdGhlIHNlZ21lbnQgdmFsdWVzIHRvCgkgIHJlcG9ydCB0aGUgY3VycmVudCBwb3NpdGlvbiBpbnN0ZWFkIG9mIGludmFsaWQgcG9zaXRpb25zLgoKMjAwOC0wNi0yMCAwODoyMTo0OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgSWdub3JlIG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy90bXBsLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgIElnbm9yZSBtb3JlLgoKMjAwOC0wNi0yMCAwODoxNzowOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgUmV3cml0ZSBoYW5kbGluZyBvZiBkZWZhdWx0IHZhbHVlcy4gRml4IG92ZXJmbG93IHdpdGggdW5zaWduZWQgdHlwZXMgaW4gbGluZWFyIGludGVycG9sYXRpb24uIFJlbW92ZSBub3cgb2Jzb2xldGUgX2ZpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgUmV3cml0ZSBoYW5kbGluZyBvZiBkZWZhdWx0IHZhbHVlcy4gRml4IG92ZXJmbG93IHdpdGggdW5zaWduZWQgdHlwZXMKCSAgaW4gbGluZWFyIGludGVycG9sYXRpb24uIFJlbW92ZSBub3cgb2Jzb2xldGUgX2ZpcnN0X3ZhbHVlKCkgZnVuY3Rpb24uCgkgIEFkZCBtb3JlIHRlc3RzLiBGaXhlcyAjNTM4MjAxLgoKMjAwOC0wNi0yMCAwODoxNDoyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBBZGQgZGVidWcgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2xhc3NfaW5pdCksIChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlcik6CgkgIEFkZCBkZWJ1ZyBpbmZvLgoJICBXaGVuIGEgYnVmZmVyIGlzIHdyaXRhYmxlLCBpdHMgbWV0YWRhdGEgaXMgYWxzbyB3cml0YWJsZSBzbyB3ZSBkb24ndAoJICBuZWVkIHRvIHN1YmJ1ZmZlciAod2hpY2ggdGhlbiBtYWtlcyB0aGUgYnVmZmVyIG5vdC13cml0YWJsZSBhbnltb3JlKS4KCj09PSByZWxlYXNlIDAuMTAuMjAgPT09CgoyMDA4LTA2LTE4IDEwOjU4OjM1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTAuMjAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbGVhc2UgMC4xMC4yMAoKMjAwOC0wNi0xOCAxMDo1NjoxOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwOC0wNi0xMSAyMToxNDoxNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IDAuMTAuMTkuMyBwcmUtcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIDAuMTAuMTkuMyBwcmUtcmVsZWFzZQoKMjAwOC0wNi0xMSAyMDowNzozMSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBSZW5hbWUgREFUQURJUiB0byBHU1RfREFUQURJUiB0byBhdm9pZCBidWlsZCBwcm9ibGVtcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2dzdHByZXNldC5jOgoJICBSZW5hbWUgREFUQURJUiB0byBHU1RfREFUQURJUiB0byBhdm9pZCBidWlsZCBwcm9ibGVtcwoJICBvbiB3aW4zMi4gUGF0Y2ggQnk6IERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoJICBGaXhlczogIzUzNjg1NwoKMjAwOC0wNi0wNSAxMDoxMzo0NSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgY29uZmlndXJlLmFjOiBFeHBsaWNpdGVseSBsaW5rIHdpdGggLWxkbCBpZiBkbGFkZHIoKSBpcyBmb3VuZCB0aGVyZS4gQmVmb3JlIGl0IHdhcyBpbXBsaWNpdGVseSBsaW5rZWQgYnkgdGhlIGdtb2R1bGUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRXhwbGljaXRlbHkgbGluayB3aXRoIC1sZGwgaWYgZGxhZGRyKCkgaXMgZm91bmQgdGhlcmUuIEJlZm9yZSBpdCB3YXMKCSAgaW1wbGljaXRlbHkgbGlua2VkIGJ5IHRoZSBnbW9kdWxlIHBrZ2NvbmZpZyBmaWxlIGJ1dCBpbiBnbGliIDIuMTcuMAoJICAtbGRsIGhhcyBtb3ZlZCBmcm9tIExpYnMgdG8gTGlicy5wcml2YXRlLiBGaXhlcyBidWcgIzUzNjc0NC4KCjIwMDgtMDYtMDUgMDk6NDI6MzEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBQdXQgcHJlLXJlbGVhc2UgY2hhbmVnbG9nIGVudHJ5IHdoZXJlIGl0IGFjdHVhbGx5IGhhcHBlbmVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQdXQgcHJlLXJlbGVhc2UgY2hhbmVnbG9nIGVudHJ5IHdoZXJlIGl0IGFjdHVhbGx5IGhhcHBlbmVkCgoyMDA4LTA2LTA1IDA5OjQxOjI1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogMC4xMC4xOS4yIHByZS1yZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgMC4xMC4xOS4yIHByZS1yZWxlYXNlCgoyMDA4LTA2LTA1IDA4OjU1OjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGVycm9yLmM6IEZpeCB0eXBvIChzcG90dGVkIGJ5IEZhYnJpY2lvIEdvZG95LCAjNTM2NzIzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVycm9yLmM6IChfZ3N0X3N0cmVhbV9lcnJvcnNfaW5pdCk6CgkgIEZpeCB0eXBvIChzcG90dGVkIGJ5IEZhYnJpY2lvIEdvZG95LCAjNTM2NzIzKS4KCjIwMDgtMDYtMDQgMTE6NDc6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEFkZCBzb21lIGRlYnVnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3NldF9hc3luY19lbmFibGVkKSwKCSAgKGdzdF9iYXNlX3Npbmtfc2V0X3RzX29mZnNldCksIChnc3RfYmFzZV9zaW5rX3BlcmZvcm1fcW9zKToKCSAgQWRkIHNvbWUgZGVidWcuCgkgIE1ha2Ugc3VyZSB3ZSBkb24ndCBnZW5lcmF0ZSBpbnZhbGlkIFFvUyBtZXNzYWdlcy4KCjIwMDgtMDYtMDQgMTE6MzE6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuYzogQWRkIHNvbWUgYXNzZXJ0IGFuZCBkb2NzIGZvciBpbnZhbGlkIGlucHV0IHRvIHRoZSBxb3MgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19xb3MpOgoJICBBZGQgc29tZSBhc3NlcnQgYW5kIGRvY3MgZm9yIGludmFsaWQgaW5wdXQgdG8gdGhlIHFvcyBmdW5jdGlvbi4KCjIwMDgtMDUtMzAgMTU6NDg6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFRoZSByZXBvcnRlZCBwb3NpdGlvbiBtdXN0IGFsd2F5cyBiZSBzbWFsbGVyIHRoYW4gdGhlIGxhc3Qgc2VlbiB0aW1lc3RhbXBzIChvciB0aW1lc3RhbXAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIFRoZSByZXBvcnRlZCBwb3NpdGlvbiBtdXN0IGFsd2F5cyBiZSBzbWFsbGVyIHRoYW4gdGhlIGxhc3Qgc2VlbgoJICB0aW1lc3RhbXBzIChvciB0aW1lc3RhbXAgKyBkdXJhdGlvbiBmb3IgcmV2ZXJzZSkuCgoyMDA4LTA1LTMwIDA3OjM2OjE3ICswMDAwICBSb2IgQnJhZGZvcmQgPHJvYkByb2JzdGVyLm9yZy51az4KCgkgIGdzdC9nc3RyZWdpc3RyeS5jOiBEb24ndCByZWN1cnNlIGludG8gLmRlYnVnIGRpcmVjdG9yaWVzIGFzIHNvbWUgZGlzdHJvcyBpbnN0YWxsIHRoZSBkZWJ1Z2dpbmcgc3ltYm9scyBuZXh0IHRvIHRoZSBwbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFJvYiBCcmFkZm9yZCA8cm9iIGF0IHJvYnN0ZXIgZG90IG9yZyBkb3QgdWs+CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKToKCSAgRG9uJ3QgcmVjdXJzZSBpbnRvIC5kZWJ1ZyBkaXJlY3RvcmllcyBhcyBzb21lIGRpc3Ryb3MgaW5zdGFsbAoJICB0aGUgZGVidWdnaW5nIHN5bWJvbHMgbmV4dCB0byB0aGUgcGx1Z2lucyBpbiAuZGVidWcgZGlyZWN0b3JpZXMKCSAgYW5kIGRsb3BlbigpIGNyYXNoZXMgb24gdGhlbSBzb21ldGltZXMuIEZpeGVzIGJ1ZyAjNTA4MDcwLgoJICBBZGQgRklYTUUgZm9yIDAuMTEgdG8gbm90IHJlY3Vyc2UgaW50byBkaXJlY3RvcmllcyBhdCBhbGwgYmVjYXVzZQoJICBpdCdzIHZlcnkgaW5jb25zaXN0ZW50IHRvIHRoZSBiZWhhdmlvdXIgb2Ygb3RoZXIgUEFUSCBlbnZpcm9ubWVudAoJICB2YXJpYWJsZXMuCgoyMDA4LTA1LTI5IDE2OjM0OjIyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBGaXggcG9zaXRpb24gcXVlcnkgcmFuZ2UgY2hlY2tzIGluIHJldmVyc2UgcGxheWJhY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb25fbGFzdCksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIEZpeCBwb3NpdGlvbiBxdWVyeSByYW5nZSBjaGVja3MgaW4gcmV2ZXJzZSBwbGF5YmFjay4KCjIwMDgtMDUtMjkgMDc6MTk6NDcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RlbGVtZW50Lio6IERlcHJlY2F0ZWQgZ3N0X2VsZW1lbnRfZ2V0X3BhZCgpIGFzIGl0IGNhbid0IGJlIHVzZWQgc2FuZWx5LiBJdCdzIG5vdCBjbGVhciBvZiB0aGUgcmVmZXJlbmNlIHRvIHRoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIERlcHJlY2F0ZWQgZ3N0X2VsZW1lbnRfZ2V0X3BhZCgpIGFzIGl0IGNhbid0IGJlIHVzZWQgc2FuZWx5LiBJdCdzIG5vdAoJICBjbGVhciBvZiB0aGUgcmVmZXJlbmNlIHRvIHRoZSByZXN1bHRpbmcgcGFkIG11c3QgYmUgcmVsZWFzZWQgbGF0ZXIKCSAgb3Igbm90LCByZXN1bHRpbmcgaW4gcG9zc2libGUgbGVha3MuIEZpeGVzIGJ1ZyAjNTMzODY1LgoKMjAwOC0wNS0yOCAxNjo0NjowNyArMDAwMCAgSm9zw6kgQWxidXJxdWVycXVlIDxqYWFsYnVycXVAc3ZuLmdub21lLm9yZz4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiBTbWFsbCBkb2MgZml4LiBGaXhlcyAjNTM1Mjg1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEpvc8OpIEFsYnVycXVlcnF1ZSA8amFhbGJ1cnF1IGF0IHN2biBkb3QgZ25vbWUgZG90IG9yZz4KCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgU21hbGwgZG9jIGZpeC4gRml4ZXMgIzUzNTI4NS4KCjIwMDgtMDUtMjggMTM6NDg6MTcgKzAwMDAgIEJqYXJuZSBSb3NlbmdyZW4gPGJqYXJuZUBheGlzLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBNYWtlIHNlbmRpbmcgYW4gRU9TIGV2ZW50IHRvIHRoZSBiYXNlc3JjIG5vbi1ibG9ja2luZyBldmVuIGlmIHRoZSBpbXBsZW1lbnRhdGlvbiBkb2VzIGJsby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IEJqYXJuZSBSb3NlbmdyZW4gPGJqYXJuZSBhdCBheGlzIGRvdCBjb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfc2VuZF9ldmVudCksCgkgIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlX3NyY19wYWRfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKSwgKGdzdF9iYXNlX3NyY19zZXRfZmx1c2hpbmcpLAoJICAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIE1ha2Ugc2VuZGluZyBhbiBFT1MgZXZlbnQgdG8gdGhlIGJhc2VzcmMgbm9uLWJsb2NraW5nIGV2ZW4gaWYgdGhlCgkgIGltcGxlbWVudGF0aW9uIGRvZXMgYmxvY2tpbmcgd2FpdHMgaW4gdGhlIGNyZWF0ZSBmdW5jdGlvbi4gVGhpcyBpcyBkb25lCgkgIGJ5IHVubG9ja2luZyB0aGUgY3JlYXRlIGZ1bmN0aW9uIHdoZW4gRU9TIGlzIHNlbnQuCgkgIEZpeGVzICM1MzUyMTguCgoyMDA4LTA1LTI4IDEwOjQ0OjE1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBJZiBwb3NzaWJsZSBwcmludCB0aGUgZWxlbWVudCB0eXBlIG9mIEdWYWx1ZUFycmF5IHByb3BlcnRpZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyk6CgkgIElmIHBvc3NpYmxlIHByaW50IHRoZSBlbGVtZW50IHR5cGUgb2YgR1ZhbHVlQXJyYXkgcHJvcGVydGllcy4KCjIwMDgtMDUtMjggMDc6NDc6MjIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RpdGVyYXRvci5jOiBSZW1vdmUgYW4gdW51c2VkIGZpZWxkIGZyb20gdGhlIHByaXZhdGUgR3N0TGlzdEl0ZXJhdG9yIHN0cnVjdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIFJlbW92ZSBhbiB1bnVzZWQgZmllbGQgZnJvbSB0aGUgcHJpdmF0ZSBHc3RMaXN0SXRlcmF0b3Igc3RydWN0LgoKMjAwOC0wNS0yNyAyMDoxOToxNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IEFkZCBwYXJhbWV0ZXIgZ3VhcmRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgQWRkIHBhcmFtZXRlciBndWFyZHMuCgoyMDA4LTA1LTI3IDE5OjQ3OjQ5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogUmV2ZXJ0IHRlc3QgY2hhbmdlIGFuZCBhZGQgY29tbWVudCB3aHkgaXQgc2hvdWxkIG5vdCB3b3JrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgUmV2ZXJ0IHRlc3QgY2hhbmdlIGFuZCBhZGQgY29tbWVudCB3aHkgaXQgc2hvdWxkIG5vdCB3b3JrLgoKMjAwOC0wNS0yNyAxODozMTozOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6IEV4dGVuZGluZyB0aGUgdGVzdCBhIGxpdHRsZSB0byB2ZXJpZnkgdGhhdCB3ZSBhbHNvIGdldCB0aGUgTlVMTCBzdGF0ZS0gY2hhbmdlIG1lc3NhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBFeHRlbmRpbmcgdGhlIHRlc3QgYSBsaXR0bGUgdG8gdmVyaWZ5IHRoYXQgd2UgYWxzbyBnZXQgdGhlIE5VTEwgc3RhdGUtCgkgIGNoYW5nZSBtZXNzYWdlLgoKMjAwOC0wNS0yNyAxNjozNzozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwcmVzZXQuYzogQWRkIFNpbmNlOiBtYXJrZXJzIHRvIGRvY3MgYmx1cmJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cHJlc2V0LmM6IChnc3RfcHJlc2V0X2RlZmF1bHRfZ2V0X21ldGEpLAoJICAoZ3N0X3ByZXNldF9nZXRfcHJlc2V0X25hbWVzKSwgKGdzdF9wcmVzZXRfZ2V0X3Byb3BlcnR5X25hbWVzKSwKCSAgKGdzdF9wcmVzZXRfbG9hZF9wcmVzZXQpLCAoZ3N0X3ByZXNldF9zYXZlX3ByZXNldCksCgkgIChnc3RfcHJlc2V0X3JlbmFtZV9wcmVzZXQpLCAoZ3N0X3ByZXNldF9kZWxldGVfcHJlc2V0KSwKCSAgKGdzdF9wcmVzZXRfc2V0X21ldGEpOgoJICBBZGQgU2luY2U6IG1hcmtlcnMgdG8gZG9jcyBibHVyYnMuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCByZWNlbnRseS1hZGRlZCBBUEkuCgoyMDA4LTA1LTI3IDE1OjExOjM1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJICBjb25maWd1cmUuYWM6IEFkZCBEQVRBRElSIGZvciBzdG9yaW5nIHByZXNldHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU3RlZmFuIEtvc3QgIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCSAgKiBjb25maWd1cmUuYWM6CgkgIEFkZCBEQVRBRElSIGZvciBzdG9yaW5nIHByZXNldHMuCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSAgQWRkIEdzdFByZXNldCB0byBkb2NzLgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdHByZXNldC5jOiAocHJlc2V0X2dldF9wYXRocyksIChwcmVzZXRfc2tpcF9wcm9wZXJ0eSksCgkgIChwcmVzZXRfb3Blbl9hbmRfcGFyc2VfaGVhZGVyKSwgKHByZXNldF9wYXJzZV92ZXJzaW9uKSwKCSAgKHByZXNldF9tZXJnZSksIChwcmVzZXRfZ2V0X2tleWZpbGUpLAoJICAoZ3N0X3ByZXNldF9kZWZhdWx0X2dldF9wcmVzZXRfbmFtZXMpLAoJICAoZ3N0X3ByZXNldF9kZWZhdWx0X2dldF9wcm9wZXJ0eV9uYW1lcyksCgkgIChnc3RfcHJlc2V0X2RlZmF1bHRfbG9hZF9wcmVzZXQpLAoJICAoZ3N0X3ByZXNldF9kZWZhdWx0X3NhdmVfcHJlc2V0c19maWxlKSwKCSAgKGdzdF9wcmVzZXRfZGVmYXVsdF9zYXZlX3ByZXNldCksCgkgIChnc3RfcHJlc2V0X2RlZmF1bHRfcmVuYW1lX3ByZXNldCksCgkgIChnc3RfcHJlc2V0X2RlZmF1bHRfZGVsZXRlX3ByZXNldCksIChnc3RfcHJlc2V0X2RlZmF1bHRfc2V0X21ldGEpLAoJICAoZ3N0X3ByZXNldF9kZWZhdWx0X2dldF9tZXRhKSwgKGdzdF9wcmVzZXRfZGVmYXVsdF9yYW5kb21pemUpLAoJICAoZ3N0X3ByZXNldF9kZWZhdWx0X3Jlc2V0KSwgKGdzdF9wcmVzZXRfZ2V0X3ByZXNldF9uYW1lcyksCgkgIChnc3RfcHJlc2V0X2dldF9wcm9wZXJ0eV9uYW1lcyksIChnc3RfcHJlc2V0X2xvYWRfcHJlc2V0KSwKCSAgKGdzdF9wcmVzZXRfc2F2ZV9wcmVzZXQpLCAoZ3N0X3ByZXNldF9yZW5hbWVfcHJlc2V0KSwKCSAgKGdzdF9wcmVzZXRfZGVsZXRlX3ByZXNldCksIChnc3RfcHJlc2V0X3NldF9tZXRhKSwKCSAgKGdzdF9wcmVzZXRfZ2V0X21ldGEpLCAoZ3N0X3ByZXNldF9jbGFzc19pbml0KSwKCSAgKGdzdF9wcmVzZXRfYmFzZV9pbml0KSwgKGdzdF9wcmVzZXRfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RwcmVzZXQuaDoKCSAgQWRkIEdzdFByZXNldCB0byBjb3JlLiBGaXhlcyAjMzk2Nzc5CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHByZXNldC5jOiAoZ3N0X3ByZXNldF90ZXN0X2dldF9wcm9wZXJ0eSksCgkgIChnc3RfcHJlc2V0X3Rlc3Rfc2V0X3Byb3BlcnR5KSwgKGdzdF9wcmVzZXRfdGVzdF9jbGFzc19pbml0KSwKCSAgKGdzdF9wcmVzZXRfdGVzdF9iYXNlX2luaXQpLCAoZ3N0X3ByZXNldF90ZXN0X2dldF90eXBlKSwKCSAgKGdzdF9wcmVzZXRfdGVzdF9wbHVnaW5faW5pdCksIChHU1RfU1RBUlRfVEVTVCksCgkgIChyZW1vdmVfcHJlc2V0X2ZpbGUpLCAodGVzdF9zZXR1cCksICh0ZXN0X3RlYXJkb3duKSwKCSAgKGdzdF9wcmVzZXRfc3VpdGUpOgoJICBBZGQgR3N0UHJlc2V0IHVuaXQgdGVzdHMuCgoyMDA4LTA1LTI3IDEwOjU5OjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBUaGUgZGVmYXVsdCBldmVudCBmdW5jdGlvbiBvbiBhIHNpbmtwYWQgc2hvdWxkIHJldHVybiBUUlVFIHdoZW4gdGhlcmUgYXJlIG5vIGludGVybmFsIGxpbmtzIGJ1dCBzaG91bGQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZXZlbnRfZGVmYXVsdF9kaXNwYXRjaCk6CgkgIFRoZSBkZWZhdWx0IGV2ZW50IGZ1bmN0aW9uIG9uIGEgc2lua3BhZCBzaG91bGQgcmV0dXJuIFRSVUUgd2hlbgoJICB0aGVyZSBhcmUgbm8gaW50ZXJuYWwgbGlua3MgYnV0IHNob3VsZCBjb2xsZWN0IHRoZSByZXR1cm4gdmFsdWVzIGZyb20KCSAgdGhlIGludGVybmFsIGxpbmtzIG90aGVyd2lzZS4KCjIwMDgtMDUtMjcgMTA6NTc6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBVc2UgZmFzdGVyIGFuZCBzYWZlciBfcGFkX3B1c2hfZXZlbnQoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9zcmNfZXZlbnQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCk6CgkgIFVzZSBmYXN0ZXIgYW5kIHNhZmVyIF9wYWRfcHVzaF9ldmVudCgpLgoKMjAwOC0wNS0yNyAxMDo1MDo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIGdzdF9iaW5fZmluZF91bmxpbmtlZF9wYWQoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZWxlbWVudF9maW5kX3VubGlua2VkX3BhZCksCgkgIChnc3RfYmluX2ZpbmRfdW5saW5rZWRfcGFkKSwgKGdzdF9iaW5fZmluZF91bmNvbm5lY3RlZF9wYWQpLAoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBUEk6IGFkZCBnc3RfYmluX2ZpbmRfdW5saW5rZWRfcGFkKCkKCSAgQVBJOiBkZXByZWNhdGUgZ3N0X2Jpbl9maW5kX3VuY29ubmVjdGVkX3BhZCgpICgjNDAxNDU2KQoKMjAwOC0wNS0yNiAxMDowNzowOSArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBnc3QvOiBGaXhlZCBhIGJ1bmNoIG9mIHR5cG9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBnc3QvZ3N0dGFzay5jOgoJICAqIGdzdC9nc3R0YXNrLmg6CgkgIEZpeGVkIGEgYnVuY2ggb2YgdHlwb3MuCgoyMDA4LTA1LTI1IDE2OjM0OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogJ3VuY29ubmVjdGVkIHBhZCcgLT4gJ3VubGlua2VkIHBhZCcgZm9yIGNvbnNpc3RlbmN5ICgjNDAxNDU2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfdW5saW5rKSwgKGVsZW1lbnRfZmluZF91bmxpbmtlZF9wYWQpLAoJICAoZ3N0X2Jpbl9maW5kX3VuY29ubmVjdGVkX3BhZCksIChnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24pLAoJICAoZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uX2Z1bGwpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAndW5jb25uZWN0ZWQgcGFkJyAtPiAndW5saW5rZWQgcGFkJyBmb3IgY29uc2lzdGVuY3kgKCM0MDE0NTYpLgoKMjAwOC0wNS0yNSAxNjoxMzozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcHdnL2FkdmFuY2VkLXRhZ2dpbmcueG1sOiBTbWFsbCBkb2NzIHVwZGF0ZSwgY2FuJ3QgYmUgYm90aGVyZWQgdG8gcmV3cml0ZSB0aGUgbm9uc2Vuc2ljYWwgZXhhbXBsZXMgcmlnaHQgbm93LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC10YWdnaW5nLnhtbDoKCSAgU21hbGwgZG9jcyB1cGRhdGUsIGNhbid0IGJlIGJvdGhlcmVkIHRvIHJld3JpdGUgdGhlIG5vbnNlbnNpY2FsCgkgIGV4YW1wbGVzIHJpZ2h0IG5vdy4KCjIwMDgtMDUtMjUgMTQ6NDQ6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZXZlbnQuaDogQ2xhcmlmeSBkb2NzIGZvciBHU1RfU0VFS19UWVBFX0NVUiAoIzUzNDUwNSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBDbGFyaWZ5IGRvY3MgZm9yIEdTVF9TRUVLX1RZUEVfQ1VSICgjNTM0NTA1KS4KCjIwMDgtMDUtMjUgMTQ6MTM6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvcGFyc2UvZ3JhbW1hci55OiBSZW1vdmUgdW5uZWVkZWQgY2FzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIFJlbW92ZSB1bm5lZWRlZCBjYXN0cy4KCjIwMDgtMDUtMjUgMTM6NTY6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBHZXQgYWxsIG1pc3NpbmcgZWxlbWVudHMgZnJvbSBhIHBhcnNlIGxhdW5jaCBzdHJpbmcgaWYgcG9zc2libGUgKGllLiBpZiB0aGUgRkFUQUxfRVJST1JTIGZsYWcgaGFzIGJlZW4gc3BlY2lmaWVkKS4gRmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIEdldCBhbGwgbWlzc2luZyBlbGVtZW50cyBmcm9tIGEgcGFyc2UgbGF1bmNoIHN0cmluZyBpZiBwb3NzaWJsZQoJICAoaWUuIGlmIHRoZSBGQVRBTF9FUlJPUlMgZmxhZyBoYXMgYmVlbiBzcGVjaWZpZWQpLiBGaXhlcyAjNTI4MTc4LgoKMjAwOC0wNS0yNCAxNjozODoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrLzogQWRkIHNvbWUgdW5pdCB0ZXN0cyBmb3IgdGhlIG5ldyBnc3RfcGFyc2VfbGF1bmNoKl9mdWxsKCkgQVBJLiAoRXhwb3NlcyBhIHByZXZpb3VzbHktZXhpc3RpbmcgbWVtb3J5IGxlYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIEFkZCBzb21lIHVuaXQgdGVzdHMgZm9yIHRoZSBuZXcgZ3N0X3BhcnNlX2xhdW5jaCpfZnVsbCgpIEFQSS4KCSAgKEV4cG9zZXMgYSBwcmV2aW91c2x5LWV4aXN0aW5nIG1lbW9yeSBsZWFrIGluIHRoZSBlcnJvciBjb2RlCgkgIHBhdGgsIHNvIGFkZGluZyB0byBWQUxHUklORF9UT19GSVggZm9yIG5vdykuCgoyMDA4LTA1LTI0IDE1OjMzOjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBnc3RfcGFyc2VfbGF1bmNoX2Z1bGwoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6IChfR3N0UGFyc2VDb250ZXh0KToKCSAgKiBnc3QvZ3N0cGFyc2UuYzogKGdzdF9wYXJzZV9lcnJvcl9xdWFyayksIChnc3RfcGFyc2VfY29udGV4dF9uZXcpLAoJICAoZ3N0X3BhcnNlX2NvbnRleHRfZnJlZSksIChnc3RfcGFyc2VfY29udGV4dF9nZXRfbWlzc2luZ19lbGVtZW50cyksCgkgIChnc3RfcGFyc2VfbGF1bmNodiksIChnc3RfcGFyc2VfbGF1bmNodl9mdWxsKSwgKGdzdF9wYXJzZV9sYXVuY2gpLAoJICAoZ3N0X3BhcnNlX2xhdW5jaF9mdWxsKToKCSAgKiBnc3QvZ3N0cGFyc2UuaDogKEdTVF9QQVJTRV9GTEFHX05PTkUpLCAoR1NUX1BBUlNFX0ZMQUdfRkFUQUxfRVJST1JTKSwKCSAgKEdzdFBhcnNlRmxhZ3MpLCAoR3N0UGFyc2VDb250ZXh0KToKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbiksCgkgIChnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb25fZnVsbCk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgKiBnc3QvcGFyc2UvdHlwZXMuaDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBnc3RfcGFyc2VfKl9mdWxsIEFQSSAoIzUyODE3OCk6CgkgIEFQSTogZ3N0X3BhcnNlX2xhdW5jaF9mdWxsKCkKCSAgQVBJOiBnc3RfcGFyc2VfbGF1bmNodl9mdWxsKCkKCSAgQVBJOiBnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb25fZnVsbCgpCgkgIEFQSTogZ3N0X3BhcnNlX2NvbnRleHRfbmV3KCkKCSAgQVBJOiBnc3RfcGFyc2VfY29udGV4dF9mcmVlKCkKCSAgQVBJOiBnc3RfcGFyc2VfY29udGV4dF9nZXRfbWlzc2luZ19lbGVtZW50cygpCgoyMDA4LTA1LTIzIDA2OjUwOjEwICswMDAwICBTdXJlc2ggS3VtYXIgUCA8c3VyZXNoa3VtYXIucHBAZ21haWwuY29tPgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBBbHNvIHN1cHBvcnQgZmZtcGVnIGluIGdzdC11bmluc3RhbGxlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBTdXJlc2ggS3VtYXIgUCA8c3VyZXNoa3VtYXIucHBAZ21haWwuY29tPgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgQWxzbyBzdXBwb3J0IGZmbXBlZyBpbiBnc3QtdW5pbnN0YWxsZWQuCgoyMDA4LTA1LTIyIDIwOjI5OjIwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBjb25maWd1cmUuYWM6IEFmdGVyIGRpc2N1c3Npb24gb24gSVJDIHVzZSB0aGUgYmluYXJ5IHJlZ2lzdHJ5IGFzIGRlZmF1bHQgYnV0IGFsbG93IHRvIGRpc2FibGUgaXQgd2l0aCAtLWRpc2FibGUtYmluYXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBBZnRlciBkaXNjdXNzaW9uIG9uIElSQyB1c2UgdGhlIGJpbmFyeSByZWdpc3RyeSBhcyBkZWZhdWx0CgkgIGJ1dCBhbGxvdyB0byBkaXNhYmxlIGl0IHdpdGggLS1kaXNhYmxlLWJpbmFyeS1yZWdpc3RyeS4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIHRoZSB0d28gbmV3IHN5bWJvbHMgZm9yIHRoZSBiaW5hcnkgcmVnaXN0cnkuCgoyMDA4LTA1LTIyIDE1OjM4OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogTW9yZSBndWFyZHMgYWdhaW5zdCBiYWQgaW5wdXQ7IHR5cG8gZml4OyBzb21lIG1pbm9yIGNsZWFuLXVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhcnNlLmM6IChfZ3N0X3BhcnNlX2VzY2FwZSksIChnc3RfcGFyc2VfbGF1bmNodik6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24pOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6IChncmFwaCk6CgkgIE1vcmUgZ3VhcmRzIGFnYWluc3QgYmFkIGlucHV0OyB0eXBvIGZpeDsgc29tZSBtaW5vciBjbGVhbi11cHMuCgoyMDA4LTA1LTIyIDA4OjMzOjI3ICswMDAwICBTam9lcmQgU2ltb25zIDxzam9lcmRAbHVvbi5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IElmIG5vdGhpbmcgZWxzZSBjYW4gYmUgdXNlZCwgdXNlIHRoZSBsYXN0IGJ1ZmZlcidzIHN0YXJ0IHRpbWUgYXMgdGhlIHNlZ21lbnQncyBsYXN0IHN0b3AuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTam9lcmQgU2ltb25zIDxzam9lcmQgYXQgbHVvbiBkb3QgbmV0PgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpOgoJICBJZiBub3RoaW5nIGVsc2UgY2FuIGJlIHVzZWQsIHVzZSB0aGUgbGFzdCBidWZmZXIncyBzdGFydCB0aW1lIGFzCgkgIHRoZSBzZWdtZW50J3MgbGFzdCBzdG9wLiBGaXhlcyBidWcgIzUzNDI1OC4KCjIwMDgtMDUtMjEgMTg6MzM6MDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IE1vdmUgc2l6ZSBzYW5pdHkgY2hlY2sgdG8gdGhlIHJpZ2h0IHBsYWNlOiBkb3duc3RyZWFtIG1heSByZXR1cm4gYSBidWZmZXIgd2l0aCBhIHNtYWxsZXIgc2l6ZSBpZiB0aGUgYnUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hbGxvY19idWZmZXJfZnVsbCk6CgkgIE1vdmUgc2l6ZSBzYW5pdHkgY2hlY2sgdG8gdGhlIHJpZ2h0IHBsYWNlOiBkb3duc3RyZWFtIG1heSByZXR1cm4KCSAgYSBidWZmZXIgd2l0aCBhIHNtYWxsZXIgc2l6ZSBpZiB0aGUgYnVmZmVyIGNhcHMgYXJlIGRpZmZlcmVudCB0aGFuCgkgIHRoZSByZXF1ZXN0ZWQgb25lcywgYXMgbWF5IGhhcHBlbiB3aGVuIGRvaW5nIHJldmVyc2UgbmVnb3RpYXRpb24uCgoyMDA4LTA1LTIxIDE2OjA2OjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IFNtYWxsIGNsZWFudXBzLiBBZGQgbm90ZSBhZGJvdXQgZ19mb3BlbigpIG9uIHdpbmRvd3MgYW5kIHdoeSB3ZSBkb24ndCB1c2UgaXQgeWV0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX3NldF9sb2NhdGlvbiksCgkgIChnc3RfZmlsZV9zaW5rX3JlbmRlcik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfc2V0X2xvY2F0aW9uKSwKCSAgKGdzdF9maWxlX3NyY19zdGFydCk6CgkgIFNtYWxsIGNsZWFudXBzLiBBZGQgbm90ZSBhZGJvdXQgZ19mb3BlbigpIG9uIHdpbmRvd3MgYW5kIHdoeSB3ZSBkb24ndAoJICB1c2UgaXQgeWV0LgoKMjAwOC0wNS0yMSAxNTo1Nzo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvbid0IHVzZSBnc3RfZWxlbWVudF9nZXRfcGFkKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfbG9hZF9hbmRfbGluayk6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9saW5rX3BhZHMpLAoJICAoZ3N0X2VsZW1lbnRfdW5saW5rX3BhZHMpOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfc2V0dXBfc3JjX3BhZCksCgkgIChnc3RfY2hlY2tfdGVhcmRvd25fc3JjX3BhZCksIChnc3RfY2hlY2tfc2V0dXBfc2lua19wYWQpLAoJICAoZ3N0X2NoZWNrX3RlYXJkb3duX3NpbmtfcGFkKSwKCSAgKGdzdF9jaGVja19lbGVtZW50X3B1c2hfYnVmZmVyX2xpc3QpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOiAoc2V0dXBfbXVsdGlxdWV1ZSksCgkgIChtcV9zaW5rcGFkX3RvX3NyY3BhZCk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChydW5fZGVsYXllZF90ZXN0KSwKCSAgKGdzdF9wYXJzZV90ZXN0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgRG9uJ3QgdXNlIGdzdF9lbGVtZW50X2dldF9wYWQoKS4KCjIwMDgtMDUtMjEgMTU6NTQ6MjggKzAwMDAgIEZlbGlwZSBDb250cmVyYXMgPGZlbGlwZS5jb250cmVyYXNAbm9raWEuY29tPgoKCSAgZG9jcy9NYWtlZmlsZS5hbTogRml4IGluc3RhbGxpbmcgcGx1Z2luIGRvY3VtZW50YXRpb24gd2hlbiBndGstZG9jIGlzIGRpc2FibGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL01ha2VmaWxlLmFtOgoJICBGaXggaW5zdGFsbGluZyBwbHVnaW4gZG9jdW1lbnRhdGlvbiB3aGVuIGd0ay1kb2MgaXMgZGlzYWJsZWQuCgoyMDA4LTA1LTIxIDE1OjUxOjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9tYW51YWwvOiBBdm9pZCB1c2luZyBhIGJhZCBmdW5jdGlvbiBpbiB0aGUgZXhhbXBsZSBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgICogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOgoJICBBdm9pZCB1c2luZyBhIGJhZCBmdW5jdGlvbiBpbiB0aGUgZXhhbXBsZSBjb2RlLgoKMjAwOC0wNS0yMSAxNTo0OToyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjbG9jay5jOiBGaXggZGVidWcgb2YgdGhlIG5ldyBjbG9jayByYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19zZXRfY2FsaWJyYXRpb24pOgoJICBGaXggZGVidWcgb2YgdGhlIG5ldyBjbG9jayByYXRlLgoKMjAwOC0wNS0yMSAxMToxMDozMiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOiBBZGQgZ3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKCkgdG8gdGhlIGV4cG9ydGVkIHN5bWJvbHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgQWRkIGdzdF9iYXNlX3Npbmtfd2FpdF9jbG9jaygpIHRvIHRoZSBleHBvcnRlZCBzeW1ib2xzLgoKMjAwOC0wNS0yMCAwODoyODoyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogVW5yZWYgZXZlbnRzIHRoYXQgdGhlIEdzdEJhc2VUcmFuc2Zvcm06OmV2ZW50IHZmdW5jIGRpZG4ndCB3YW50IHRvIGhhdmUgZm9yd2FyZGVkIGIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyICA8dGltLm11bGxlciBhdCBjb2xsYWJvcmEgY28gdWs+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19ldmVudCk6CgkgIFVucmVmIGV2ZW50cyB0aGF0IHRoZSBHc3RCYXNlVHJhbnNmb3JtOjpldmVudCB2ZnVuYyBkaWRuJ3Qgd2FudCB0bwoJICBoYXZlIGZvcndhcmRlZCBieSB0aGUgYmFzZSBjbGFzcy4gQ2xvc2VzIGEgbGVhayBpbiBpZGVudGl0eS4KCSAgRml4ZXMgYnVnICM0NDY3NjMuCgoyMDA4LTA1LTE5IDE2OjM2OjUxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRXhwb3NlIGEgbWV0aG9kIHRoYXQgd2FzIHByZXZpb3VzbHkgdXNlZCBpbnRlcm5hbGx5IHRvIHN5bmNocm9uaXplIGFnYWluc3QgdGhlIGNsb2NrIGJlY2F1c2UgaXQgY2FuIGJlIHVzZWZ1bCBmb3Igc3ViLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEV4cG9zZSBhIG1ldGhvZCB0aGF0IHdhcyBwcmV2aW91c2x5IHVzZWQgaW50ZXJuYWxseSB0byBzeW5jaHJvbml6ZQoJICBhZ2FpbnN0IHRoZSBjbG9jayBiZWNhdXNlIGl0IGNhbiBiZSB1c2VmdWwgZm9yIHN1YmNsYXNzZXMgdG9vLgoJICBHc3RCYXNlU2luazo6Z3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKCkKCjIwMDgtMDUtMTkgMTE6NTk6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IEFkZCBzYW5pdHkgY2hlY2sgdG8gbWFrZSBzdXJlIHdlIGRvbid0IGdldCBzbWFsbGVyIGJ1ZmZlcnMgdGhhbiByZXF1ZXN0ZWQgKGFuZCBmYWxsYmFjayB0byBub3JtYWwgYnVmZmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9idWZmZXJfYWxsb2NfdW5jaGVja2VkKToKCSAgQWRkIHNhbml0eSBjaGVjayB0byBtYWtlIHN1cmUgd2UgZG9uJ3QgZ2V0IHNtYWxsZXIgYnVmZmVycwoJICB0aGFuIHJlcXVlc3RlZCAoYW5kIGZhbGxiYWNrIHRvIG5vcm1hbCBidWZmZXIgYWxsb2MgaWYgd2UgZG8pLgoKMjAwOC0wNS0xOSAxMToxMTo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUmVmYWN0b3IgYWRqdXN0aW5nIHRoZSBydW5uaW5nX3RpbWUgd2l0aCBsYXRlbmN5IGFuZCBvZmZzZXQgaW50byBhIHNlcGFyYXRlIG1ldGhvZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19hZGp1c3RfdGltZSksCgkgIChnc3RfYmFzZV9zaW5rX3dhaXRfY2xvY2spLCAoZ3N0X2Jhc2Vfc2lua193YWl0X2VvcyksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19jaGFpbl91bmxvY2tlZCk6CgkgIFJlZmFjdG9yIGFkanVzdGluZyB0aGUgcnVubmluZ190aW1lIHdpdGggbGF0ZW5jeSBhbmQgb2Zmc2V0IGludG8gYQoJICBzZXBhcmF0ZSBtZXRob2QuCgkgIFdoZW4gZG9pbmcgY2xpcHBpbmcsIHdlIHN0aWxsIHdhbnQgdG8gdXNlIHRoZSBzdWJjbGFzcyBnZXRfdGltZXMgbWV0aG9kLAoJICBqdXN0IGluIGNhc2UgdGhlIERVUkFUSU9OIG9yIFRJTUVTVEFNUCBhcmUgbm90IHNldC4KCjIwMDgtMDUtMTkgMTA6NDY6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBnc3RfdHlwZV9maW5kX3N1Z2dlc3Rfc2ltcGxlKCksICM1MzM3NDAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6IChnc3RfdHlwZV9maW5kX3N1Z2dlc3Rfc2ltcGxlKToKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQVBJOiBhZGQgZ3N0X3R5cGVfZmluZF9zdWdnZXN0X3NpbXBsZSgpLCAjNTMzNzQwLgoKMjAwOC0wNS0xOSAxMDoyOTo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBVc2UgcmlnaHQgZXJyb3IgY29kZSB3aGVuIHR5cGVmaW5kaW5nIGZhaWxzLCBzbyB3ZSBjYW4gdXNlIHRoZSBkZWZhdWx0ICh0cmFuc2xhdGVkKSBlcnJvci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19zdGFydCk6CgkgIFVzZSByaWdodCBlcnJvciBjb2RlIHdoZW4gdHlwZWZpbmRpbmcgZmFpbHMsIHNvIHdlIGNhbiB1c2UKCSAgdGhlIGRlZmF1bHQgKHRyYW5zbGF0ZWQpIGVycm9yIG1lc3NhZ2VzLgoKMjAwOC0wNS0xOSAxMDowMzowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBXaGVuIHRoZSBzdWJjbGFzcyBkaWQgbm90IHNldCBjYXBzIG9uIG91dGdvaW5nIGJ1ZmZlcnMsIGNvbmZpZ3VyZSB0aGUgY2FwcyB3ZSBuZWdvdGlhdGVkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KToKCSAgV2hlbiB0aGUgc3ViY2xhc3MgZGlkIG5vdCBzZXQgY2FwcyBvbiBvdXRnb2luZyBidWZmZXJzLCBjb25maWd1cmUgdGhlCgkgIGNhcHMgd2UgbmVnb3RpYXRlZCBvbiB0aGUgc291cmNlIHBhZC4KCSAgV2hlbiB0aGUgdHlwZWZpbmQgaGVscGVyIGRvZXMgbm90IGZpbmQgY2FwcywgZXJyb3Igb3V0IHByb3Blcmx5IGluc3RlYWQKCSAgb2YgZG9pbmcgdGhpbmdzIHdpdGggTlVMTCBjYXBzLgoKMjAwOC0wNS0xOCAxODo1Mzo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R0eXBlZmluZC5oOiBUYWJzIHRvIHNwYWNlcywgb2ggeWVzIQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSAgVGFicyB0byBzcGFjZXMsIG9oIHllcyEKCjIwMDgtMDUtMTggMTI6MTM6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkgIENoYW5nZUxvZyBzdXJnZXJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeQoKMjAwOC0wNS0xOCAxMTo1MjozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6IEFkZCBEYXZpZCdzIGFuZCBCZW5qYW1pbidzIHRlc3RzIGZvciBhcnJheSBzdWJ0cmFjdGlvbiB0byB0aGUgdW5pdCB0ZXN0IHN1aXRlLCB3aGljaCBzdWdnZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOiAodGVzdF9pbnRlcnNlY3QyKSwgKGdzdF9jYXBzX3N1aXRlKToKCSAgQWRkIERhdmlkJ3MgYW5kIEJlbmphbWluJ3MgdGVzdHMgZm9yIGFycmF5IHN1YnRyYWN0aW9uIHRvIHRoZQoJICB1bml0IHRlc3Qgc3VpdGUsIHdoaWNoIHN1Z2dlc3RzIHRoYXQgIzE0NzkzMSBpcyBmaXhlZCB0aGVzZSBkYXlzLgoKMjAwOC0wNS0xOCAxMTozNTo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RldmVudC5jOiBEb2N1bWVudCB0aGF0IGdzdF9ldmVudF9uZXdfdGFnKCkgYW5kIGdzdF9ldmVudF9uZXdfbmF2aWdhdGlvbigpIHRha2Ugb3duZXJzaGlwIG9mIHRoZSB0YWdsaXN0L3N0cnVjdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgRG9jdW1lbnQgdGhhdCBnc3RfZXZlbnRfbmV3X3RhZygpIGFuZCBnc3RfZXZlbnRfbmV3X25hdmlnYXRpb24oKQoJICB0YWtlIG93bmVyc2hpcCBvZiB0aGUgdGFnbGlzdC9zdHJ1Y3R1cmUgcGFzc2VkIHRvIHRoZW0uICgjNTMzNjM1KS4KCjIwMDgtMDUtMTcgMTc6MjA6NTEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9NYWtlZmlsZS5hbTogRG9uJ3QgZGVzY2VuZCBpbnRvIHRoZSBwbHVnaW5zIGRpciBpZiBwbHVnaW4gZG9jcyBidWlsZGluZyBpcyBkaXNhYmxlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9NYWtlZmlsZS5hbToKCSAgRG9uJ3QgZGVzY2VuZCBpbnRvIHRoZSBwbHVnaW5zIGRpciBpZiBwbHVnaW4gZG9jcyBidWlsZGluZwoJICBpcyBkaXNhYmxlZC4KCSAgKiBkb2NzL1JFQURNRToKCSAgQWRkIGEgbm90ZSBhYm91dCB0aGUgbmV3IHR5cGU6R1R5cGVOYW1lIHN5bnRheCBmb3IgdGhlIHBsdWdpbgoJICBkb2N1bWVudGF0aW9uIC50eXBlcyBmaWxlLgoKMjAwOC0wNS0xNyAxMzo1NDo1MiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuKjogTWFyayB0aGUgZGVidWcgc3RyaW5nIHBhcmFtZXRlcnMgYXMgY29uc3QuIEZpeGVzIGJ1ZyAjNTMzNDkwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X2Vycm9yKSwKCSAgKGdzdF9tZXNzYWdlX25ld193YXJuaW5nKSwgKGdzdF9tZXNzYWdlX25ld19pbmZvKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBNYXJrIHRoZSBkZWJ1ZyBzdHJpbmcgcGFyYW1ldGVycyBhcyBjb25zdC4gRml4ZXMgYnVnICM1MzM0OTAuCgoyMDA4LTA1LTE2IDIxOjA5OjQ1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IFNvcnQgYnVmZmVyIGNhY2hlIGxpc3QgYnkgZW5kIG9mZnNldHMuIFRoaXMgbWFrZXMgc3VyZSB0aGF0IHdlIGRvbid0IHN0b3AgdG8gc2VhcmMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoaGVscGVyX2ZpbmRfcGVlayk6CgkgIFNvcnQgYnVmZmVyIGNhY2hlIGxpc3QgYnkgZW5kIG9mZnNldHMuIFRoaXMgbWFrZXMgc3VyZSB0aGF0IHdlIGRvbid0CgkgIHN0b3AgdG8gc2VhcmNoIGZvciBhIGNhY2hlZCBidWZmZXIgdGhhdCBjb250YWlucyB0aGUgcmVxdWVzdGVkIGRhdGEKCSAgdG9vIGVhcmx5LgoJICBBbHNvIHJlYWQgYSBtaW5pbXVtIG9mIDRrIGJ5dGVzIGluc3RlYWQgb2YgNTEyIGJ5dGVzIGFzIHRoaXMgaXMgYSBiaXQKCSAgbW9yZSBlZmZpY2llbnQuIEZpeGVzIGJ1ZyAjNDU5ODYyLgoKMjAwOC0wNS0xNCAxODoxNzozNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGluZm8uYzogRXhwbGFpbiB3aHkgd2UgY29weSB0aGUgbGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgRXhwbGFpbiB3aHkgd2UgY29weSB0aGUgbGlzdC4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgSW1wcm92ZSBkb2NzLgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBBZGQgb25lIGRlYnVnLWxvZyBzdGF0ZW1lbnQgdG8gaGVscCB0cmFjaW5nIHByb2JlbG1zIHdpdGggbGlua2luZyBwYWRzLgoKMjAwOC0wNS0xNCAxODowOTowMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzogQWRkIGEgdGVzdCBmb3IgcmVtb3ZpbmcgdGhlIGRlZmF1bHQgbG9nIGhhbmRsZXIuIFNlZW1zIHRvIGZhaWwgdW5kZXIgd2luZG93cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSAgQWRkIGEgdGVzdCBmb3IgcmVtb3ZpbmcgdGhlIGRlZmF1bHQgbG9nIGhhbmRsZXIuIFNlZW1zIHRvIGZhaWwgdW5kZXIKCSAgd2luZG93cy4KCjIwMDgtMDUtMTQgMTM6NTI6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFJlbGVhc2UgcGFkIGxvY2sgYmVmb3JlIGNhbGxpbmcgb3V0IHRvIGF2b2lkIGEgcG9zc2libGUgZGVhZGxvY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfcGVlcl9hY2NlcHRfY2Fwcyk6CgkgIFJlbGVhc2UgcGFkIGxvY2sgYmVmb3JlIGNhbGxpbmcgb3V0IHRvIGF2b2lkIGEgcG9zc2libGUgZGVhZGxvY2suCgoyMDA4LTA1LTE0IDEwOjIyOjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BhcnNlL2dyYW1tYXIueTogUmVtb3ZlIHVubmVlZGVkIHZhbHVlIHVuc2V0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBSZW1vdmUgdW5uZWVkZWQgdmFsdWUgdW5zZXQuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICBBZGQgdW5pdCB0ZXN0IGZvciBkZS9zZXJpYWxpemF0aW9uIG9mIGNhcHMuCgoyMDA4LTA1LTEzIDEyOjU0OjAwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogVXNlIGN1c3RvbSBtYXJzaGFsZXJzIHRoYXQgdGFrZSBHc3RNaW5pT2JqZWN0IGFzIGZpcnN0IHBhcmFtZXRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICAobWFyc2hhbF9WT0lEX19NSU5JT0JKRUNUX09CSkVDVCksIChnc3RfZmFrZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAobWFyc2hhbF9WT0lEX19NSU5JT0JKRUNUX09CSkVDVCksCgkgIChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCk6CgkgIFVzZSBjdXN0b20gbWFyc2hhbGVycyB0aGF0IHRha2UgR3N0TWluaU9iamVjdCBhcyBmaXJzdCBwYXJhbWV0ZXIuCgkgIFVzaW5nIE9CSkVDVCBhcyBwYXJhbWV0ZXIgd2hpbGUgYSBHc3RNaW5pT2JqZWN0IGlzIGdpdmVuIHdpbGwgbGVhZAoJICB0byBhc3NlcnRpb25zIGlmIGJ1aWx0IHdpdGggR19FTkFCTEVfREVCVUcuIEZpeGVzIGJ1ZyAjNTI1NTMyLgoKMjAwOC0wNS0xMyAxMjozODozMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogQ2xlYW4gdXAgb24gRkxVU0hfU1RPUCBhbmQgbm90IEZMVVNIX1NUQVJULiBGb3J3YXJkIGJvdGggZXZlbnRzIGltbWVkaWF0ZWx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfc2VuZF9jYWNoZWRfZXZlbnRzKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBDbGVhbiB1cCBvbiBGTFVTSF9TVE9QIGFuZCBub3QgRkxVU0hfU1RBUlQuIEZvcndhcmQgYm90aCBldmVudHMKCSAgaW1tZWRpYXRlbHkuCgoyMDA4LTA1LTEzIDExOjQ1OjI0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBGb3J3YXJkIEZMVVNIX1NUQVJUIGV2ZW50cyBpbW1lZGlhdGVseSBhbmQgY2xlYW4gdXAgaW5zdGVhZCBvZiBjYWNoaW5nIHRoZW0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2hhbmRsZV9zcmNfcXVlcnkpLCAoc3RvcF90eXBlZmluZGluZyksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9zZW5kX2NhY2hlZF9ldmVudHMpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgIEZvcndhcmQgRkxVU0hfU1RBUlQgZXZlbnRzIGltbWVkaWF0ZWx5IGFuZCBjbGVhbiB1cCBpbnN0ZWFkIG9mCgkgIGNhY2hpbmcgdGhlbS4KCjIwMDgtMDUtMTMgMDc6MTE6MDUgKzAwMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZEBsdW9uLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBDaGVjayB0aGUgY2FwcyBvZiB0aGUgYnVmZmVyIHJldHVybmVkIGJ5IGdzdF9wYWRfYWxsb2NfYnVmZmVyKCkgYW5kIGZhbGwgYmFjayB0byBkZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNqb2VyZCBTaW1vbnMgPHNqb2VyZCBhdCBsdW9uIGRvdCBuZXQ+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgQ2hlY2sgdGhlIGNhcHMgb2YgdGhlIGJ1ZmZlciByZXR1cm5lZCBieSBnc3RfcGFkX2FsbG9jX2J1ZmZlcigpIGFuZAoJICBmYWxsIGJhY2sgdG8gZGVmYXVsdCBuZWdvdGlhdGlvbiBpbiB0aGUgY2hhaW4gZnVuY3Rpb24gaWYgdGhlIGNhcHMKCSAgYXJlIGRpZmZlcmVudCBmcm9tIHdoYXQgd2FzIHJlcXVlc3RlZC4gRml4ZXMgYnVnICM1MjY3NjguCgoyMDA4LTA1LTA5IDIwOjQ4OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgTm8sIGxldCdzIG5vdCB1c2UgZ19zbGljZV97ZHVwfGNvcHl9IGhlcmUsIHNpbmNlIHRoZXkgb25seSBleGlzdCBzaW5jZSBHTGliIDIuMTQgYW5kIHdlIHN0aWxsIGRlcGVuZCBvbmx5IG9uID49IDIuMTIuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgTm8sIGxldCdzIG5vdCB1c2UgZ19zbGljZV97ZHVwfGNvcHl9IGhlcmUsIHNpbmNlIHRoZXkgb25seSBleGlzdAoJICBzaW5jZSBHTGliIDIuMTQgYW5kIHdlIHN0aWxsIGRlcGVuZCBvbmx5IG9uID49IDIuMTIuIEFsc28gYWRkCgkgIHVuaXQgdGVzdCBmb3IgZ3N0X3NlZ21lbnRfY29weSgpLgoKMjAwOC0wNS0wOSAxODoyNTo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R1dGlscy5oOiBUcnkgdG8gZml4ICdkZXJlZmVyZW5jaW5nIHR5cGUtcHVubmVkIHBvaW50ZXIgd2lsbCBicmVhayBzdHJpY3QgYWxpYXNpbmcgcnVsZXMnIHdhcm5pbmdzIHdpdGggQysrIGNvbS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDogKEdTVF9CT0lMRVJQTEFURV9GVUxMKToKCSAgVHJ5IHRvIGZpeCAnZGVyZWZlcmVuY2luZyB0eXBlLXB1bm5lZCBwb2ludGVyIHdpbGwgYnJlYWsgc3RyaWN0CgkgIGFsaWFzaW5nIHJ1bGVzJyB3YXJuaW5ncyB3aXRoIEMrKyBjb21waWxlcnMgYW5kIEdMaWIgPj0gMi4xNC4wOiBHTGliCgkgIGNoYW5nZWQgdGhlIGRlZmF1bHQgR1R5cGUgdHlwZWRlZiBmcm9tIGd1bG9uZyB0byBnc2l6ZSBhdCBzb21lIHBvaW50LAoJICBidXQga2VwdCBHVHlwZSB0eXBlZGVmJ2VkIHRvIGd1bG9uZyBmb3IgQysrIGZvciBBQkkgcmVhc29uczsgdGhlCgkgIGdfb25jZV8qIGZ1bmN0aW9ucyBhbGwgdGFrZSBhIGdzaXplICogdGhvdWdoLCBzbyB3b3JrIGFyb3VuZCB0aGUgdHlwZQoJICBtaXNtYXRjaCBmb3IgQysrIGJ5IGRvaW5nIGV2ZXJ5dGhpbmcgaW4gZ3NpemUgYW5kIGNhc3RpbmcgdG8gR1R5cGUKCSAgbGF0ZXIuCgoyMDA4LTA1LTA5IDE0OjAyOjUzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBBZGQgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHNpZ25hbHMgdG8gcHVzaCBvdXIgY29yZSBwbHVnaW4gZG9jcyBjb3ZlcmFnZSBiYWNrIHVwIHRvIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgQWRkIGRvY3VtZW50YXRpb24gZm9yIHRoZSBzaWduYWxzIHRvIHB1c2ggb3VyIGNvcmUgcGx1Z2luIGRvY3MKCSAgY292ZXJhZ2UgYmFjayB1cCB0byAxMDAlLgoKMjAwOC0wNS0wOCAxNDoyMzoxNiArMDAwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkgIGdzdC9nc3RpbmZvLmggKEdTVF9GVU5DVElPTik6IFJldmVydGVkIEdTVF9GVU5DVElPTiB0byB0aGUgb2xkIHZlcnNpb24gYXMgd2UgZG9uJ3Qgd2FudCB0aGUgZnVsbCBzaWduYXR1cmUgaW4gQysrIGNvZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5oIChHU1RfRlVOQ1RJT04pOgoJICBSZXZlcnRlZCBHU1RfRlVOQ1RJT04gdG8gdGhlIG9sZCB2ZXJzaW9uIGFzIHdlIGRvbid0IHdhbnQgdGhlCgkgIGZ1bGwgc2lnbmF0dXJlIGluIEMrKyBjb2RlLiBBbHNvIGFkZGVkIHN1cHBvcnQgZm9yIE1TVkMuCgoyMDA4LTA1LTA4IDExOjM3OjAzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuaDogSW50ZXJuIHRoZSB0eXBlIG5hbWUgc3RyaW5nLCBzaW1pbGFyIHRvIHdoYXQgR19ERUZJTkVfVFlQRSBkb2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgSW50ZXJuIHRoZSB0eXBlIG5hbWUgc3RyaW5nLCBzaW1pbGFyIHRvIHdoYXQgR19ERUZJTkVfVFlQRSBkb2VzLgoKMjAwOC0wNS0wOCAxMToyNzo1NiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmg6IE1ha2UgR1NUX0JPSUxFUlBMQVRFIHRocmVhZC1zYWZlIGlmIGJ1aWxkaW5nIHdpdGggR0xpYiAyLjE0IG9yIG5ld2VyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgTWFrZSBHU1RfQk9JTEVSUExBVEUgdGhyZWFkLXNhZmUgaWYgYnVpbGRpbmcgd2l0aCBHTGliIDIuMTQgb3IgbmV3ZXIuCgoyMDA4LTA1LTA4IDA1OjU1OjM0ICswMDAwICBTam9lcmQgU2ltb25zIDxzam9lcmRAbHVvbi5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRG9uJ3QgcGFzc3Rocm91Z2ggYnVmZmVyIGFsbG9jYXRpb24gdG9vIGVhc2lseSBpZiB0aGUgY2FwcyBjaGFuZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBhIHBhdGNoIGJ5OiBTam9lcmQgU2ltb25zIDxzam9lcmQgYXQgbHVvbiBkb3QgbmV0PgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIERvbid0IHBhc3N0aHJvdWdoIGJ1ZmZlciBhbGxvY2F0aW9uIHRvbyBlYXNpbHkgaWYgdGhlIGNhcHMgY2hhbmdlLgoJICBUaGlzIGJyZWFrcyB3aGVuIHdvcmtpbmcgaW4gcGFzc3Rocm91Z2ggbW9kZSBhbmQgdXBzdHJlYW0gY2hhbmdlcwoJICBpdCdzIGNhcHMuIEZpeGVzIGJ1ZyAjNTI2NzY4LgoKMjAwOC0wNS0wNyAxOToyNDo0NCArMDAwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkgIGdzdC9nc3RpbmZvLmMgKGdzdF9kZWJ1Z19sb2dfdmFsaXN0KTogSW1wcm92ZWQgdGhlIF9fRklMRV9fIHBhcnQgb2YgZGVidWcgb3V0cHV0IGZvciBNU1ZDLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jIChnc3RfZGVidWdfbG9nX3ZhbGlzdCk6CgkgIEltcHJvdmVkIHRoZSBfX0ZJTEVfXyBwYXJ0IG9mIGRlYnVnIG91dHB1dCBmb3IgTVNWQy4KCjIwMDgtMDUtMDcgMTk6MTU6MTQgKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfcXVlcnkpOiBEZWNsYXJhdGlvbiBhZnRlciBzdGF0ZW1lbnQgZml4IGZvciBjb21waWxlcnMgbGlrZSBNU1ZDLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfcXVlcnkpOgoJICBEZWNsYXJhdGlvbiBhZnRlciBzdGF0ZW1lbnQgZml4IGZvciBjb21waWxlcnMgbGlrZSBNU1ZDLgoKMjAwOC0wNS0wNyAxOTowOTowOCArMDAwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkgIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjogRG9uJ3QgZGVmaW5lIEdTVF9GVU5DVElPTiwgaWYgR0xpYiBzdXBwb3J0cyBNU1ZDIHdlJ2QgbXVjaCByYXRoZXIgdXNlIHRoZSByZWFsIHRoaW5nIHRoYW4gaC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIERvbid0IGRlZmluZSBHU1RfRlVOQ1RJT04sIGlmIEdMaWIgc3VwcG9ydHMgTVNWQyB3ZSdkIG11Y2ggcmF0aGVyCgkgIHVzZSB0aGUgcmVhbCB0aGluZyB0aGFuIGhhdmluZyAiPz8/IiB1bmNvbmRpdGlvbmFsbHkuCgoyMDA4LTA1LTA3IDE4OjUxOjIyICswMDAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSAgZ3N0L2dzdGluZm8uaCAoR1NUX0ZVTkNUSU9OKTogTWFkZSBHU1RfRlVOQ1RJT04gYW4gYWxpYXMgZm9yIEdfU1RSRlVOQyB0byBhdm9pZCBkdXBsaWNhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uaCAoR1NUX0ZVTkNUSU9OKToKCSAgTWFkZSBHU1RfRlVOQ1RJT04gYW4gYWxpYXMgZm9yIEdfU1RSRlVOQyB0byBhdm9pZCBkdXBsaWNhdGlvbi4KCjIwMDgtMDUtMDcgMDk6NDc6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogU21hbGwgY29kZSBjbGVhbnVwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogKGdzdF9hZGFwdGVyX2F2YWlsYWJsZV9mYXN0KToKCSAgU21hbGwgY29kZSBjbGVhbnVwLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcXVlcnlfbGF0ZW5jeSksCgkgIChnc3RfYmFzZV9zaW5rX3NldF9mbHVzaGluZyk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKToKCSAgRml4IHNvbWUgY29tbWVudHMuCgoyMDA4LTA1LTA3IDA5OjM0OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLio6IEFkZGVkIGZvcm1hdCBwcm9wZXJ0eSB0byBjb250cm9sIHRoZSBmb3JtYXQgb2YgdGhlIG5ld3NlZ21lbnQgZXZlbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9mYWtlX3NyY19pbml0KSwgKGdzdF9mYWtlX3NyY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Zha2Vfc3JjX2dldF9wcm9wZXJ0eSksIChnc3RfZmFrZV9zcmNfc3RhcnQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJICBBZGRlZCBmb3JtYXQgcHJvcGVydHkgdG8gY29udHJvbCB0aGUgZm9ybWF0IG9mIHRoZSBuZXdzZWdtZW50IGV2ZW50cy4KCSAgQVBJOiBHc3RGYWtlU3JjOmZvcm1hdAoKMjAwOC0wNS0wNiAwODo0NTowNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IEFkZCBnc3RfcGFkX2hhc19uYW1lKCkgdG8gdGhlIGV4cG9ydGVkIHN5bWJvbHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgZ3N0X3BhZF9oYXNfbmFtZSgpIHRvIHRoZSBleHBvcnRlZCBzeW1ib2xzLgoKMjAwOC0wNS0wNiAwODo0Mzo1NyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgRG9uJ3QgYWxsb3cgbmVnYXRpdmUgc2l6ZXMgd2hlbiBhbGxvY2F0aW5nIG5ldyBidWZmZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FsbG9jX2J1ZmZlcl9mdWxsKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpOgoJICBEb24ndCBhbGxvdyBuZWdhdGl2ZSBzaXplcyB3aGVuIGFsbG9jYXRpbmcgbmV3IGJ1ZmZlcnMuCgkgIEZpeGVzIGJ1ZyAjNDYxMjUzLgoKMjAwOC0wNS0wNSAxNjo0NzoyOSArMDAwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkQGx1b24ubmV0PgoKCSAgZ3N0L2dzdGJ1cy5jOiBEb24ndCBwcmludCBhIHdhcm5pbmcgaWYgdGhlIHF1ZXVlIGlzIGVtcHR5IHdoZW4gd2UgdHJ5IHRvIHBvcCBoZXJlLiBUaGF0IGNvdWxkIGhhcHBlbiBpZiBhbm90aGVyIHRocmVhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2pvZXJkIFNpbW9ucyA8c2pvZXJkIGF0IGx1b24gbmV0PgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfc291cmNlX2Rpc3BhdGNoKToKCSAgRG9uJ3QgcHJpbnQgYSB3YXJuaW5nIGlmIHRoZSBxdWV1ZSBpcyBlbXB0eSB3aGVuIHdlIHRyeSB0byBwb3AKCSAgaGVyZS4gVGhhdCBjb3VsZCBoYXBwZW4gaWYgYW5vdGhlciB0aHJlYWQgb3IgY2FsbGJhY2sgc2V0IHRoZQoJICBidXMgdG8gZmx1c2hpbmcgYmV0d2VlbiB0aGUgc291cmNlJ3MgY2hlY2svcHJlcGFyZSBhbmQgdGhlCgkgIGRpc3BhdGNoIGJlaW5nIGNhbGxlZCAoIzUzMTUzOCkuCgoyMDA4LTA1LTA1IDE2OjI1OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IFNtYWxsIGRvY3MgZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgU21hbGwgZG9jcyBmaXguCgoyMDA4LTA1LTA1IDE1OjUwOjM2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogQWRkIHVuaXQgdGVzdCBmb3IgZGVzZXJpYWxpemluZyB1aW50NjRzIGFuZCBjaGVjayBzb21lIHJlYWxseSBsYXJnZSBudW1iZXJzIGluIHRoZSBpbnQ2NCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICBBZGQgdW5pdCB0ZXN0IGZvciBkZXNlcmlhbGl6aW5nIHVpbnQ2NHMgYW5kIGNoZWNrIHNvbWUgcmVhbGx5IGxhcmdlCgkgIG51bWJlcnMgaW4gdGhlIGludDY0IHRlc3QuCgoyMDA4LTA1LTA0IDE5OjA3OjIxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBVc2UgIiVzIiBhcyBmb3JtYXQgc3RyaW5nIGluc3RlYWQgb2YgcHJpbnRpbmcgc3RyaW5ncyBkaXJlY3RseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKG5fcHJpbnQpLCAocHJpbnRfaGllcmFyY2h5KSwKCSAgKHByaW50X2ludGVyZmFjZXMpLCAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pLAoJICAocHJpbnRfc2lnbmFsX2luZm8pOgoJICBVc2UgIiVzIiBhcyBmb3JtYXQgc3RyaW5nIGluc3RlYWQgb2YgcHJpbnRpbmcgc3RyaW5ncyBkaXJlY3RseS4KCjIwMDgtMDUtMDQgMTQ6MjU6MDcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RjbG9jay5jOiBNYWtlIHNvbWUgY2hlY2tzIGFjdHVhbGx5IHVzZWZ1bC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfc2V0X2NhbGlicmF0aW9uKToKCSAgTWFrZSBzb21lIGNoZWNrcyBhY3R1YWxseSB1c2VmdWwuCgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGx1Z2luKToKCSAgUmVtb3ZlIHNvbWUgdW51c2VkIGNvZGUuIFVuc2lnbmVkIGludGVnZXJzIHRlbmQgdG8gYmUgPj0gMC4KCjIwMDgtMDUtMDMgMTk6MjM6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBGaXggJ1NpbmNlOicgdmVyc2lvbiBpbiBnc3RfdmFsdWVfZHVwX21pbmlfb2JqZWN0KCkgZG9jcyBibHVyYjogdGhpcyBmdW5jdGlvbiB3YXMgbm90IGluIHRoZSB1bnMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF92YWx1ZV9nZXRfbWluaV9vYmplY3QpOgoJICBGaXggJ1NpbmNlOicgdmVyc2lvbiBpbiBnc3RfdmFsdWVfZHVwX21pbmlfb2JqZWN0KCkgZG9jcyBibHVyYjogdGhpcwoJICBmdW5jdGlvbiB3YXMgbm90IGluIHRoZSB1bnNjaGVkdWxlZCAwLjEwLjE5IHJlbGVhc2UuCgoyMDA4LTA1LTAzIDE5OjEzOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmM6IE9ubHkgcHJpbnQgb25lIGxvZyBtZXNzYWdlIHBlciBub24tcGx1Z2luIGZpbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgIE9ubHkgcHJpbnQgb25lIGxvZyBtZXNzYWdlIHBlciBub24tcGx1Z2luIGZpbGUuCgoyMDA4LTA1LTAzIDE5OjA4OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZm8uYzogRml4IGFsaWdubWVudCBvZiBkZWJ1ZyBsb2cgY29sdW1ucyBvbiA2NC1iaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6IChnc3RfZGVidWdfbG9nX2RlZmF1bHQpOgoJICBGaXggYWxpZ25tZW50IG9mIGRlYnVnIGxvZyBjb2x1bW5zIG9uIDY0LWJpdC4KCjIwMDgtMDUtMDMgMTY6NTI6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2xpYnMvOiBJZ25vcmUgcHJpdmF0ZSBjb250cm9sbGVyIGhlYWRlcnMgZm9yIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBJZ25vcmUgcHJpdmF0ZSBjb250cm9sbGVyIGhlYWRlcnMgZm9yIGRvY3MuCgoyMDA4LTA1LTAzIDE1OjI1OjI1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogTW92ZSBzb21lIHByaXZhdGUgZGVjbGFyYXRpb25zIGludG8gcHJpdmF0ZSBoZWFkZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXJwcml2YXRlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlcHJpdmF0ZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvbGliLmM6CgkgIE1vdmUgc29tZSBwcml2YXRlIGRlY2xhcmF0aW9ucyBpbnRvIHByaXZhdGUgaGVhZGVycy4KCjIwMDgtMDUtMDIgMTA6MTI6MzMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6IFJlbW92ZSBzb21lIGNvZGUgdGhhdCBpcyB1bnVzZWQgYWZ0ZXIgU3RlZmFuJ3MgcmVmYWN0b3JpbmcgYW5kIHVzZXMgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMgbm93LC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOiAoZGVidWdfZHVtcF9lbGVtZW50X3BhZCk6CgkgIFJlbW92ZSBzb21lIGNvZGUgdGhhdCBpcyB1bnVzZWQgYWZ0ZXIgU3RlZmFuJ3MgcmVmYWN0b3JpbmcgYW5kIHVzZXMKCSAgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMgbm93LCByZXN1bHRpbmcgaW4gYSBjb21waWxlciB3YXJuaW5nLgoKMjAwOC0wNS0wMSAxMzowMzo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeS5jOiBSdW4gZ19zdHJfaGFzX3N1ZmZpeCgpIG9ubHkgb24gdGhlIGZpbGUgbmFtZSwgbm90IHRoZSBlbnRpcmUgZmlsZSBwYXRoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpOgoJICBSdW4gZ19zdHJfaGFzX3N1ZmZpeCgpIG9ubHkgb24gdGhlIGZpbGUgbmFtZSwgbm90IHRoZQoJICBlbnRpcmUgZmlsZSBwYXRoLgoKMjAwOC0wNC0zMCAxNDoyMDo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogU2luY2Ugd2UncmUgbm90IGNhbGxlZCBvbmx5IGZyb20gdGhlIGNoYWluIGZ1bmN0aW9uIGFueSBsb25nZXIsIHdlIGNhbid0IGFzc3VtZSB0aGF0IHRoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbGVha19kb3duc3RyZWFtKToKCSAgU2luY2Ugd2UncmUgbm90IGNhbGxlZCBvbmx5IGZyb20gdGhlIGNoYWluIGZ1bmN0aW9uIGFueSBsb25nZXIsCgkgIHdlIGNhbid0IGFzc3VtZSB0aGF0IHRoZXJlJ3MgYWx3YXlzIGRhdGEgaW4gdGhlIHF1ZXVlLCBzbyBtb3ZlCgkgIHRoZSBpc19mdWxsIGNoZWNrIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxvb3AgKG90aGVyd2lzZSB3ZSdkCgkgIGhpdCB0aGUgYXNzZXJ0IHdoZW4gY2hhbmdpbmcgdGhlIGxpbWl0IHByb3BlcnRpZXMgd2hpbGUgdGhlCgkgIHF1ZXVlIGlzIGVtcHR5IG9yIG5vdCBydW5uaW5nIHlldCkuCgkgIEFsc28sIG9ubHkgc2V0IGEgZGlzY29udCBpZiBpdGVtcyB3ZXJlIGFjdHVhbGx5IHJlbW92ZWQgZnJvbQoJICB0aGUgcXVldWUuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzogKHRlc3RfbGVha3lfZG93bnN0cmVhbSk6CgkgIFRlc3QgY2FzZSBmb3IgdGhlIGFib3ZlLgoKMjAwOC0wNC0zMCAwOTozNTo0MyArMDAwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnQGF4aXMuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBXaGVuIGNoYW5naW5nIHRociBtYXggY2FwYWNpdHkgb2YgYSBsZWFreSBxdWV1ZSwgaW1tZWRpYXRseSBkcm9wIGJ1ZmZlcnMgaW5zdGVhZCBvZiB3YWl0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSm9uYXMgSG9sbWJlcmcgPGpvbmFzIGRvdCBob2xtYmVyZyBhdCBheGlzIGRvdCBjb20+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2xlYWtfZG93bnN0cmVhbSksCgkgIChnc3RfcXVldWVfY2hhaW4pLCAocXVldWVfY2FwYWNpdHlfY2hhbmdlKSwKCSAgKGdzdF9xdWV1ZV9zZXRfcHJvcGVydHkpOgoJICBXaGVuIGNoYW5naW5nIHRociBtYXggY2FwYWNpdHkgb2YgYSBsZWFreSBxdWV1ZSwgaW1tZWRpYXRseSBkcm9wIGJ1ZmZlcnMKCSAgaW5zdGVhZCBvZiB3YWl0aW5nIGZvciBhIHB1c2ggb24gdGhlIHNpbmtwYWQuIEZpeGVzICM1MzA2MzcuCgoyMDA4LTA0LTMwIDA3OjU2OjM5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZGVidWd1dGlscy5jOiBSZWZhY3RvciBjb2RlIGFuZCBmaXggaGFuZGxpbmcgb2YgZ2hvc3RwYWRzIGFuZCB0aGVpciBwcm94eXBhZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIFJlZmFjdG9yIGNvZGUgYW5kIGZpeCBoYW5kbGluZyBvZiBnaG9zdHBhZHMgYW5kIHRoZWlyIHByb3h5cGFkcy4KCjIwMDgtMDQtMjkgMTE6MjM6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgbWV0aG9kIHRvIGNvbnZlbmllbnRseSBjaGVjayB0aGUgbmFtZSBvZiBhIGN1c3RvbSBldmVudCB3aXRoIGdzdF9ldmVudF9oYXNfbmFtZSgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X2hhc19uYW1lKToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkIG1ldGhvZCB0byBjb252ZW5pZW50bHkgY2hlY2sgdGhlIG5hbWUgb2YgYSBjdXN0b20gZXZlbnQgd2l0aAoJICBnc3RfZXZlbnRfaGFzX25hbWUoKS4KCSAgUmVmb3JtYXQgdGhlIGV2ZW50IGRvY3Mgc28gdGhhdCByZWxhdGVkIG1ldGhvZHMgYXJlIHB1dCB0b2dldGhlciBpbnN0ZWFkCgkgIG9mIHRoZSBkZWZhdWx0IGFscGhhYmV0aWNhbCBzb3J0LgoJICBVcGRhdGUgdW5pdCB0ZXN0IHdpdGggbmV3IG1ldGhvZC4KCSAgQVBJOiBHc3RFdmVudDo6Z3N0X2V2ZW50X2hhc19uYW1lKCkKCjIwMDgtMDQtMjggMTg6NDQ6NDggKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOiBEb24ndCBhZGQgYW4gZXhwbGljaXQgbGluayB0byBsaWJnc3RyZWFtZXItMC4xMC5sYTsgaXQncyBhbHJlYWR5IGluY2x1ZGVkIGluIEdTVF9PQkpfTElCUy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIERvbid0IGFkZCBhbiBleHBsaWNpdCBsaW5rIHRvIGxpYmdzdHJlYW1lci0wLjEwLmxhOyBpdCdzIGFscmVhZHkKCSAgaW5jbHVkZWQgaW4gR1NUX09CSl9MSUJTLgoKMjAwOC0wNC0yOCAwOToyMTozMyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdC5jOiBSZWdpc3RlciBHc3RDbG9jayB0eXBlIGZyb20gYSB0eXBlLXNhZmUgY29udGV4dC4gRml4ZXMgYnVnICM1MzAzMTcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgUmVnaXN0ZXIgR3N0Q2xvY2sgdHlwZSBmcm9tIGEgdHlwZS1zYWZlIGNvbnRleHQuIEZpeGVzIGJ1ZyAjNTMwMzE3LgoKMjAwOC0wNC0yNiAwMDoxMzowMyArMDAwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJICB0b29scy9nc3QtcnVuLmM6IEluY2x1ZGUgPHVuaXN0ZC5oPiBjb25kaXRpb25hbGx5IG9uIEhBVkVfVU5JU1REX0ggYXMgZWxzZXdoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnkgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgkgICogdG9vbHMvZ3N0LXJ1bi5jOgoJICBJbmNsdWRlIDx1bmlzdGQuaD4gY29uZGl0aW9uYWxseSBvbiBIQVZFX1VOSVNURF9IIGFzIGVsc2V3aGVyZS4KCjIwMDgtMDQtMjUgMTc6NTQ6MjggKzAwMDAgIEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMEBnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFVzZSB0aGUgR0xpYiBzdHVmZiB0byBjcmVhdGUgYSBwcml2YXRlIHN0cnVjdHVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5faW5pdCksCgkgIChnc3RfYmluX2Rpc3Bvc2UpOgoJICBVc2UgdGhlIEdMaWIgc3R1ZmYgdG8gY3JlYXRlIGEgcHJpdmF0ZSBzdHJ1Y3R1cmUuCgkgIEFkZCBzb21lIGxvY2tpbmcgYXJvdW5kIHNvbWUgZGlzcG9zZSBtZXRob2RzIHRvIG1ha2UgdGhlbSBhIGxpdHRsZQoJICBzYWZlciwgc2VlICM1Mjk3MjMuIFBhdGNoIGJ5OiBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDAgYXQgZ21haWwgZG90IGNvbT4KCjIwMDgtMDQtMjUgMTM6MjI6MzIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvOiBGaXggZG9jIHR5cG9zIGFuZCB1bmlmeSBjYXBzIGEgYml0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBGaXggZG9jIHR5cG9zIGFuZCB1bmlmeSBjYXBzIGEgYml0LgoKMjAwOC0wNC0yNSAxMzowOTo0MCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC4xLmluOiBGb3Jnb3QgdG8gYWxzbyBhZGQgdGhlIGVudnZhciBkb2NzIGhlcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgRm9yZ290IHRvIGFsc28gYWRkIHRoZSBlbnZ2YXIgZG9jcyBoZXJlLgoKMjAwOC0wNC0yNSAxMDowMTo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIFJlZiBzb21lIG1vcmUgY2xhc3NlcyBpbiBnc3RfaW5pdCgpIHRvIHdvcmsgYXJvdW5kIHRocmVhZC1zYWZldHkgaXNzdWVzIGluIHByZS0yLjE2IEdMaWJzLCBhbmQgYWRkIGJhc2ljIHVuaXQgdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KSwgKGdzdF9kZWluaXQpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAocGlwZWxpbmVfdGhyZWFkKSwKCSAgKHRlc3RfY29uY3VycmVudF9jcmVhdGUpLCAoZ3N0X3BpcGVsaW5lX3N1aXRlKToKCSAgUmVmIHNvbWUgbW9yZSBjbGFzc2VzIGluIGdzdF9pbml0KCkgdG8gd29yayBhcm91bmQgdGhyZWFkLXNhZmV0eQoJICBpc3N1ZXMgaW4gcHJlLTIuMTYgR0xpYnMsIGFuZCBhZGQgYmFzaWMgdW5pdCB0ZXN0LgoKMjAwOC0wNC0yNSAwNzoyMjoxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUmVhcnJhbmdlIHRoZSBsYXRlbmN5IHF1ZXJ5IGNvZGUuIFdlIGFsd2F5cyB3YW50IHRvIGRvIHRoZSB1cHN0cmVhbSBxdWVyeSwgZXZlbiBpZiB3ZSBhci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3F1ZXJ5X2xhdGVuY3kpLAoJICAoZ3N0X2Jhc2Vfc2lua19zZW5kX2V2ZW50KToKCSAgUmVhcnJhbmdlIHRoZSBsYXRlbmN5IHF1ZXJ5IGNvZGUuIFdlIGFsd2F5cyB3YW50IHRvIGRvIHRoZSB1cHN0cmVhbQoJICBxdWVyeSwgZXZlbiBpZiB3ZSBhcmUgbm90IGxpdmUgc28gdGhhdCB0aGUgdXBzdHJlYW0gZWxlbWVudHMgY2FuIGdldCB0aGUKCSAgbGF0ZW5jeSByZXN1bHRzIHRvby4gSWYgd2UgZmFpbCBkb2luZyB0aGUgcXVlcnkgYW5kIHdlIGFyZSBsaXZlLCB3ZQoJICByZXR1cm4gVFJVRSBhZnRlcndhcmRzLgoKMjAwOC0wNC0yNCAxNToxNDo1NCArMDAwMCAgSmFzb24gWmhhbyA8ZTM0MjNjQG1vdG9yb2xhLmNvbT4KCgkgIEVuYWJsZS9kaXNhYmxlIHNjYW5fYW5kX3VwZGF0ZV9yZWdpc3RyeSgpIGJhc2VkIG9uIGNvbW1hbmRsaW5lIHN3aXRjaCBvciBlbnZpcm9ubWVudCB2YXJpYWJsZS4gRml4ZXMgIzUyMDQ2OC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBKYXNvbiBaaGFvIDxlMzQyM2NAbW90b3JvbGEuY29tPgoJICAqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICAqIGdzdC9nc3QuYzoKCSAgRW5hYmxlL2Rpc2FibGUgc2Nhbl9hbmRfdXBkYXRlX3JlZ2lzdHJ5KCkgYmFzZWQgb24gY29tbWFuZGxpbmUgc3dpdGNoCgkgIG9yIGVudmlyb25tZW50IHZhcmlhYmxlLiBGaXhlcyAjNTIwNDY4LgoJICAqIENoYW5nZUxvZzoKCSAgRml4IHR5cG8gaW4gbXkgcHJldmlvdXMgY29tbWl0LgoKMjAwOC0wNC0yNCAwODoyNzo1OSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IEFkZCBhIHdhcm5pbmcgb2Ygd2UgaGl0IHVuaGFuZGxlZCBmYWN0b3JpZXMgd2hlbiBzYXZpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBBZGQgYSB3YXJuaW5nIG9mIHdlIGhpdCB1bmhhbmRsZWQgZmFjdG9yaWVzIHdoZW4gc2F2aW5nLgoJICBNb3JlIGRlYnVnIGxvZ2dpbmcgZGV0YWlsLCBidXQgbW92ZSB0byBMT0cgY2F0ZWdvcnkuCgoyMDA4LTA0LTI0IDA2OjQ2OjU0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnkuYzogVGVsbCB0aGUgKnRydXRoKiB3aGVuIGltcHJvdmluZyB0aGUgZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIFRlbGwgdGhlICp0cnV0aCogd2hlbiBpbXByb3ZpbmcgdGhlIGRvY3VtZW50YXRpb24uCgoyMDA4LTA0LTIzIDE0OjU0OjIwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogVW5yZWYgdGhlIGZhY3RvcnkgYWZ0ZXIgaXQgd2FzIHVzZWQgdGhlIGxhc3QgdGltZSwgbm90IGJlZm9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UpOgoJICBVbnJlZiB0aGUgZmFjdG9yeSBhZnRlciBpdCB3YXMgdXNlZCB0aGUgbGFzdCB0aW1lLCBub3QgYmVmb3JlLgoJICAqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzogKGdzdF9pbmRleF9mYWN0b3J5X21ha2UpOgoJICBJbXByb3ZlIGRlYnVnZ2luZyBhIGJpdCBhbmQgZG9uJ3QgbGVhayBhIHJlZiB0byB0aGUgaW5kZXggZmFjdG9yeSB3aXRoCgkgIGVhY2ggY2FsbC4KCjIwMDgtMDQtMjMgMTM6NTU6MDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeS5jOiBJbXByb3ZlIHRoZSBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgSW1wcm92ZSB0aGUgZG9jdW1lbnRhdGlvbi4KCjIwMDgtMDQtMjMgMTA6MTQ6MzggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IFRoZSBnbGliIG1hY3JvIHNlZW1zIHRvIGJlIGJvcmtlZC4gVXNlIGdfc2xpY2VfY29weSBkaXJlY3RseSBhbmQgY2FzdCBpbiB0aGUgaG9wZSB0aGF0IHRoaXMgZml4ZXMgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBUaGUgZ2xpYiBtYWNybyBzZWVtcyB0byBiZSBib3JrZWQuIFVzZSBnX3NsaWNlX2NvcHkgZGlyZWN0bHkgYW5kIGNhc3QKCSAgaW4gdGhlIGhvcGUgdGhhdCB0aGlzIGZpeGVzIHRoZSB3YXJuaW5nIG9uIDY0Yml0LgoKMjAwOC0wNC0yMyAwNzowODo1MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogRG9jdW1lbnQgdGhlIG5ldyBmdW5jdGlvbi4gVXNlIGdfc2xpY2VfZHVwKCkgKG5vIG5lZWQgZm9yIGdzdF9zZWdtZW50X2luaXQoKSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6CgkgIERvY3VtZW50IHRoZSBuZXcgZnVuY3Rpb24uIFVzZSBnX3NsaWNlX2R1cCgpIChubyBuZWVkIGZvcgoJICBnc3Rfc2VnbWVudF9pbml0KCkpLgoKMjAwOC0wNC0yMyAwNjo1NzozMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogTW92ZSBHUGFyYW1TZXBjIG1hY3JvcyB0byBzdGFuZGFydCBzZWN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBNb3ZlIEdQYXJhbVNlcGMgbWFjcm9zIHRvIHN0YW5kYXJ0IHNlY3Rpb24uCgkgICogZ3N0L2dzdGJpbi5jOgoJICBEbid0IGRvY3VtZW50IF9nZXRfdHlwZSAtIGl0cyBpbiBwcml2YXRlIHNlY3Rpb24gaW4gZG9jcyBhbnl3YXkgYW5kCgkgIHRoaXMgZG9jLWJsb2Igd2FzIGluY29tcGxldGUuCgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIEZpeCB3cm9uZyBzeW1ib2wgbmFtZXMgaW4gZG9jcy4KCSAgKiBnc3QvZ3N0bWFjcm9zLmg6CgkgIEFkZCBvbmNlIGRvYyBzZW50ZW5jZS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgSWdub3JlIG1vcmUuCgoyMDA4LTA0LTIxIDEwOjI1OjAyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9NYWtlZmlsZS5hbTogQW5kIHJlbW92ZSB0aG9zZSBsaWJzIGhlcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICBBbmQgcmVtb3ZlIHRob3NlIGxpYnMgaGVyZS4KCjIwMDgtMDQtMjEgMDk6Mjk6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2xpYnMvTWFrZWZpbGUuYW06IEZpeCBkb2NzIGJ1aWxkIGFnYWluIGJ5IGFkZGluZyBsaWJnc3RuZXQtMC4xMC5zbyB0byBTQ0FOT0JKX0RFUFMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgRml4IGRvY3MgYnVpbGQgYWdhaW4gYnkgYWRkaW5nIGxpYmdzdG5ldC0wLjEwLnNvIHRvIFNDQU5PQkpfREVQUy4KCjIwMDgtMDQtMjEgMDg6MzQ6MDkgKzAwMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IEFkZCB0aGUgbWluLXRocmVzaG9sZCB0byB0aGUgbWluIGxhdGVuY3kgaWYgcG9zc2libGUuIEZpeGVzICM1MjkxNDguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xpdmllciBDcmV0ZSA8dGVzdGVyIGF0IHRlc3RlciBkb3QgY2E+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpOgoJICBBZGQgdGhlIG1pbi10aHJlc2hvbGQgdG8gdGhlIG1pbiBsYXRlbmN5IGlmIHBvc3NpYmxlLiBGaXhlcyAjNTI5MTQ4LgoKMjAwOC0wNC0yMSAwNzo0NTo0OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOiBTdHVwaWQgZWRpdG9yLCBJIHJlbW92ZWQgdGhhdCBsaW5lIGFzIGl0IHNob3VsZCBnbyBpbiB5ZXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSAgU3R1cGlkIGVkaXRvciwgSSByZW1vdmVkIHRoYXQgbGluZSBhcyBpdCBzaG91bGQgZ28gaW4geWV0LgoKMjAwOC0wNC0yMSAwNzo0MjoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy86IFJlbW92ZSBsaWJyYXJ5IHR5cGVzIGZybyBjb3JlIGRvY3MgYW5kIGhhdmUgdGhlbSBpbiBsaWJzIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkgIFJlbW92ZSBsaWJyYXJ5IHR5cGVzIGZybyBjb3JlIGRvY3MgYW5kIGhhdmUgdGhlbSBpbiBsaWJzIGRvY3MuCgkgIFJlZm9ybWF0IGFuZCBjbGVhbnVwLiBBZGQgY29tbWVudCBmb3IgbWluaW9iamVjdCB0eXBlcy4KCjIwMDgtMDQtMjAgMTY6MzI6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dXJpLmM6IEZpeCBsZWFrOiBnX3N0cmRvd24gb3BlcmF0ZXMgb24gdGhlIHN0cmluZyBpbiBwbGFjZSwgd2hpbGUgZ19hc2NpaV9zdHJkb3duKCkgcmV0dXJucyBhIG5ld2x5LWFsbG9jYXRlZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHVyaS5jOiAoZ3N0X3VyaV9nZXRfcHJvdG9jb2wpOgoJICBGaXggbGVhazogZ19zdHJkb3duIG9wZXJhdGVzIG9uIHRoZSBzdHJpbmcgaW4gcGxhY2UsIHdoaWxlCgkgIGdfYXNjaWlfc3RyZG93bigpIHJldHVybnMgYSBuZXdseS1hbGxvY2F0ZWQgc3RyaW5nLgoKMjAwOC0wNC0yMCAwOTo1NToyNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogUHJpbnQgdGhlIFVSSSBwcm90b2NvbHMgYW5kIHRoZSBVUkkgdHlwZSBzdXBwb3J0ZWQgYnkgdGhlIGVsZW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF91cmlfaGFuZGxlcl9pbmZvKSwKCSAgKHByaW50X2VsZW1lbnRfaW5mbyk6CgkgIFByaW50IHRoZSBVUkkgcHJvdG9jb2xzIGFuZCB0aGUgVVJJIHR5cGUgc3VwcG9ydGVkIGJ5IHRoZSBlbGVtZW50LgoKMjAwOC0wNC0xOSAxNjowNTo1OCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHRhZ2xpc3QuYzogVXNlIGdfdmFsdWVfdGFrZV9zdHJpbmcoKSBpbnN0ZWFkIG9mIHRoZSBkZXByZWNhdGVkIGdfdmFsdWVfc2V0X3N0cmluZ190YWtlX293bmVyc2hpcCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoZ3N0X3RhZ19tZXJnZV9zdHJpbmdzX3dpdGhfY29tbWEpOgoJICBVc2UgZ192YWx1ZV90YWtlX3N0cmluZygpIGluc3RlYWQgb2YgdGhlIGRlcHJlY2F0ZWQKCSAgZ192YWx1ZV9zZXRfc3RyaW5nX3Rha2Vfb3duZXJzaGlwKCkuCgoyMDA4LTA0LTE5IDE1OjQyOjE5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogUmV0dXJuIHRoZSBvbGQgQ1JDIGluc3RlYWQgb2YgMCBpZiB3ZSBnaXZlIGEgTlVMTCBidWZmZXIgb3IgYSBidWZmZXIgd2l0aCBhIGxlbmd0aCBvZiAwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKF9nc3RfY3JjMzIpOgoJICBSZXR1cm4gdGhlIG9sZCBDUkMgaW5zdGVhZCBvZiAwIGlmIHdlIGdpdmUgYSBOVUxMIGJ1ZmZlcgoJICBvciBhIGJ1ZmZlciB3aXRoIGEgbGVuZ3RoIG9mIDAuCgoyMDA4LTA0LTE5IDE1OjM2OjIwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0dXJpLmM6IEEgdmFsaWQgVVJJIHNjaGVtZSBjYW4gYWxzbyBpbmNsdWRlICcrJywgJy0nIGFuZCAnLicgYWRkaXRpb25hbCB0byBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBhcyBwZXIgUkZDIDMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHVyaS5jOiAoZ3N0X3VyaV9wcm90b2NvbF9jaGVja19pbnRlcm5hbCksCgkgIChnc3RfdXJpX2dldF9wcm90b2NvbCksIChnc3RfdXJpX2hhc19wcm90b2NvbCksCgkgIChnc3RfdXJpX2NvbnN0cnVjdCksIChnc3RfdXJpX2hhbmRsZXJfc2V0X3VyaSk6CgkgIEEgdmFsaWQgVVJJIHNjaGVtZSBjYW4gYWxzbyBpbmNsdWRlICcrJywgJy0nIGFuZCAnLicgYWRkaXRpb25hbAoJICB0byBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBhcyBwZXIgUkZDIDM5ODYgU2VjdGlvbiAzLjEuCgkgIEhhbmRsZSBVUkkgc2NoZW1lcyBjYXNlIGluc2Vuc2l0aXZlIGluIGFsbCBwbGFjZXMgYW5kIGNvbnZlcnQKCSAgdG8gbG93ZXItY2FzZSB3aGVuIGNvbnN0cnVjdGluZyBhbiBVUkkgb3Igc2V0dGluZyBhbiBVUkkgd2l0aAoJICB0aGUgR3N0VVJJSGFuZGxlciBpbnRlcmZhY2UuIEZpeGVzIGJ1ZyAjNTI4ODY4LgoJICBBbGwgZWxlbWVudHMgY2FuIHN0aWxsIGFzc3VtZSAoYXMgYmVmb3JlKSB0aGF0IHRoZXkgd2lsbAoJICBnZXQgcGFzc2VkIFVSSXMgd2l0aCBhIGxvd2VyLWNhc2UgVVJJIHNjaGVtZSBieSB0aGUgR3N0VVJJSGFuZGxlcgoJICBpbnRlcmZhY2UuCgoyMDA4LTA0LTE3IDEwOjA5OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogRG9uJ3QgdXNlIGdfYXRvbWljX3NldF9pbnQgd2hlcmUgaXQncyBub3QgbmVlZGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X3N0YXRpY19jYXBzX2dldCk6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfZW50cnlfbmV3KToKCSAgRG9uJ3QgdXNlIGdfYXRvbWljX3NldF9pbnQgd2hlcmUgaXQncyBub3QgbmVlZGVkLgoKMjAwOC0wNC0xNyAwODo0NToxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEZpeCAyIGNhcHMgbGVha3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2NhcHMpOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIEZpeCAyIGNhcHMgbGVha3MuCgoyMDA4LTA0LTE3IDA4OjM0OjE0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuYzogVXNlIGdfYXRvbWljX2ludF9zZXQoKSBoZXJlIHRvbyBpbnN0ZWFkIG9mIGFzc2lnbm1lbnQgKyBnX2F0b21pY19pbnRfZ2V0KCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2F0b21pY19pbnRfc2V0KToKCSAgVXNlIGdfYXRvbWljX2ludF9zZXQoKSBoZXJlIHRvbyBpbnN0ZWFkIG9mIGFzc2lnbm1lbnQgKwoJICBnX2F0b21pY19pbnRfZ2V0KCkuCgoyMDA4LTA0LTE3IDA3OjE0OjQ2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuKjogQVBJOiBEZXByZWNhdGUgZ3N0X2F0b21pY19pbnRfc2V0KCksIGdfYXRvbWljX2ludF9zZXQoKSBzaG91bGQgYmUgdXNlZCBub3cgdGhhdCB3ZSBkZXBlbmQgb24gbmV3IGVub3UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFQSTogRGVwcmVjYXRlIGdzdF9hdG9taWNfaW50X3NldCgpLCBnX2F0b21pY19pbnRfc2V0KCkgc2hvdWxkIGJlIHVzZWQKCSAgbm93IHRoYXQgd2UgZGVwZW5kIG9uIG5ldyBlbm91Z2ggR0xpYi4KCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X3N0YXRpY19jYXBzX2dldCk6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfZW50cnlfbmV3KToKCSAgKiBnc3QvZ3N0aW5mby5jOiAoX2dzdF9kZWJ1Z19pbml0KSwgKGdzdF9kZWJ1Z19zZXRfY29sb3JlZCksCgkgIChnc3RfZGVidWdfc2V0X2RlZmF1bHRfdGhyZXNob2xkKSwgKF9nc3RfZGVidWdfY2F0ZWdvcnlfbmV3KSwKCSAgKGdzdF9kZWJ1Z19jYXRlZ29yeV9zZXRfdGhyZXNob2xkKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19zZXRfcW9zX2VuYWJsZWQpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9zZXRfcHJvcGVydHkpOgoJICBVc2UgZ19hdG9taWNfaW50X3NldCgpIGluc3RlYWQgb2YgZ3N0X2F0b21pY19pbnRfc2V0KCkuCgoyMDA4LTA0LTE2IDE4OjQ4OjAzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cXVlcnkuYzogQWxzbyB1c2UgR19HSU5UNjRfQ09OU1RBTlQgZm9yIHRoZSBxdWVyaWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVlcnkuYzoKCSAgQWxzbyB1c2UgR19HSU5UNjRfQ09OU1RBTlQgZm9yIHRoZSBxdWVyaWVzLgoKMjAwOC0wNC0xNiAxODozODoxNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdG1lc3NhZ2UuYzogVXNlIEdfR0lOVDY0X0NPTlNUQU5UIGluIHZhcmFyZ3MgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIFVzZSBHX0dJTlQ2NF9DT05TVEFOVCBpbiB2YXJhcmdzIGZ1bmN0aW9uLgoKMjAwOC0wNC0xNiAxNTo1MToxNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IEluaXRpYWxpemUgdGhlIHJlZ2lzdHJ5IG1hZ2ljIHdpdGggemVyb2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfaW5pdGlhbGl6ZV9tYWdpYyk6CgkgIEluaXRpYWxpemUgdGhlIHJlZ2lzdHJ5IG1hZ2ljIHdpdGggemVyb2VzLgoKMjAwOC0wNC0xNiAxNDoxODo1OCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lio6IEFkZCBjcmMzMiBjaGVja3N1bSB0byB0aGUgYmluYXJ5IHJlZ2lzdHJ5IGZpbGUgYW5kIGNoZWNrIHRoaXMgYmVmb3JlIGFjY2VwdGluZyBhIHJlZ2lzdHJ5IGZpbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoX2dzdF9jcmMzMiksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfaW5pdGlhbGl6ZV9tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlX2NhY2hlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfY2hlY2tfbWFnaWMpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgQWRkIGNyYzMyIGNoZWNrc3VtIHRvIHRoZSBiaW5hcnkgcmVnaXN0cnkgZmlsZSBhbmQgY2hlY2sgdGhpcyBiZWZvcmUKCSAgYWNjZXB0aW5nIGEgcmVnaXN0cnkgZmlsZS4KCSAgQWxzbyBmcmVlIHRoZSBkYXRhIGxpc3Qgd2hlbiB3cml0aW5nIHRvIHRoZSByZWdpc3RyeSBmaWxlIGZhaWxzLgoKMjAwOC0wNC0xNiAxMzoxNjo0NCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IElmIGFuIGVsZW1lbnQgc3VwcG9ydHMgdGhlIFVyaSBpbnRlcmZhY2UsIHJldHVybnMgYSB2YWxpZCBwb2ludGVyIHRvIHRoZSBzdXBwb3J0ZWQgVVJJIHByb3RvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbik6CgkgIElmIGFuIGVsZW1lbnQgc3VwcG9ydHMgdGhlIFVyaSBpbnRlcmZhY2UsIHJldHVybnMgYSB2YWxpZCBwb2ludGVyCgkgIHRvIHRoZSBzdXBwb3J0ZWQgVVJJIHByb3RvY29scyBidXQgdGhpcyBwb2ludGVyIGNvbnRhaW5zIG5vdGhpbmcKCSAgZG9uJ3QgdHJ5IHRvIHNhdmUgdGhhdCBhcyBpdCB3aWxsIGNvcnJ1cHQgdGhlIHJlZ2lzdHJ5LgoJICBEb24ndCB1bnJlZiB0aGUgcGx1Z2luIGlmIHdlIGFkZGVkIGl0IHRvIHRoZSByZWdpc3RyeSBhbHJlYWR5IGJ1dAoJICBmYWlsIHRvIGxvYWQgYSBmZWF0dXJlIGFzIGdzdF9yZWdpc3RyeV9hZGRfcGx1Z2luKCkgdGFrZXMgb3duZXJzaGlwCgkgIG9mIHRoZSBwbHVnaW4uCgkgIEltcHJvdmUgZGVidWdnaW5nIGEgYml0LgoKMjAwOC0wNC0xNiAwODozMDo1NyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuaDogQ2xhcmlmeSBzb21lIHRhZyBpdGVtIGRvY3MgYWZ0ZXIgZGlzY3Vzc2lvbiBvbiBpcmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIENsYXJpZnkgc29tZSB0YWcgaXRlbSBkb2NzIGFmdGVyIGRpc2N1c3Npb24gb24gaXJjLgoKMjAwOC0wNC0xNSAwNjoyMzoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDogUmVtb3ZlIGNvbW1lbnRlZCBvdXQgcGx1Z2lucyAodGhleSBoYXZlIHRoZWlyIG93biBkb2NzKS4gVXBkYXRlIGNvbW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICBSZW1vdmUgY29tbWVudGVkIG91dCBwbHVnaW5zICh0aGV5IGhhdmUgdGhlaXIgb3duIGRvY3MpLiBVcGRhdGUKCSAgY29tbWVudHMuCgoyMDA4LTA0LTE1IDA2OjE2OjMzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBZGQgR1NUX1BBUkFNX0NPTlRST0xMQUJMRSBhbmQgR1NUX1BBUkFNX1VTRVJfU0hJRlQuIE1vdmUgcGFyYW1zcGVjIGRvY3MgdG8gb3duIHNlY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJICAqIGdzdC9nc3RwYXJhbXNwZWNzLmg6CgkgIEFkZCBHU1RfUEFSQU1fQ09OVFJPTExBQkxFIGFuZCBHU1RfUEFSQU1fVVNFUl9TSElGVC4gTW92ZSBwYXJhbXNwZWMKCSAgZG9jcyB0byBvd24gc2VjdGlvbi4KCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgVGhpcyBub3cgb25seSBkb2N1bWVudHMgR1ZhbHVlLgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgIFJlbW92ZSBHU1RfUEFSQU1fQ09OVFJPTExBQkxFLgoKMjAwOC0wNC0xNSAwNTo1NDoxMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9SRUFETUU6IENvcnJlY3QgZmlsZSBwYXRoLiBUZWxsIGFib3V0IGhvdyB0byB1c2UgLW92ZXJyaWRlcy50eHQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvUkVBRE1FOgoJICBDb3JyZWN0IGZpbGUgcGF0aC4gVGVsbCBhYm91dCBob3cgdG8gdXNlIC1vdmVycmlkZXMudHh0LgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXRhZ3JlYWRpbmcudHh0OgoJICBTbWFsbCBkZXNpZ24gdXBkYXRlLgoKMjAwOC0wNC0xNCAxMjoxMjoyMiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IEZpeCBhIHR5cG8gaW4gYSBkZWJ1ZyBtZXNzYWdlIGFuZCByZXZlcnQgY2hhbmdlIGZyb20geWVzdGVyZGF5IGFzIGdzdF9yZWdpc3RyeV9hZGRfcGx1Z2luKCkgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbik6CgkgIEZpeCBhIHR5cG8gaW4gYSBkZWJ1ZyBtZXNzYWdlIGFuZCByZXZlcnQgY2hhbmdlIGZyb20geWVzdGVyZGF5IGFzCgkgIGdzdF9yZWdpc3RyeV9hZGRfcGx1Z2luKCkgd2lsbCBvbmx5IGZhaWwgaWYgc29tZXRoaW5nIGlzIHJlYWxseSB3cm9uZwoJICBhbHJlYWR5IGFuZCB3ZSBjYW4ndCBzdXJ2aXZlIGl0IGFueXdheS4KCjIwMDgtMDQtMTQgMDg6NDg6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IFByZS1yZWdpc3RlciBHc3RHRXJyb3IgR1R5cGUgZnJvbSBhIHRocmVhZC1zYWZlIGNvbnRleHQgKGZpeGVzICM1Mjc5NjcpOyB1bnJlZiBlbnVtIHR5cGUgY2xhc3NlcyBpbiBkZWluaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCksIChnc3RfZGVpbml0KToKCSAgUHJlLXJlZ2lzdGVyIEdzdEdFcnJvciBHVHlwZSBmcm9tIGEgdGhyZWFkLXNhZmUgY29udGV4dAoJICAoZml4ZXMgIzUyNzk2Nyk7IHVucmVmIGVudW0gdHlwZSBjbGFzc2VzIGluIGRlaW5pdC4KCjIwMDgtMDQtMTMgMTk6NTg6NDMgKzAwMDAgIFJlbmUgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkgIGdzdC9nc3R0YWdzZXR0ZXIuYzogTWVyZ2luZyBhbiBlbXB0eSBsaXN0IHdpdGggYW5vdGhlciBsaXN0IGluIEtFRVBfQUxMIG1vZGUgc2hvdWxkIHlpZWxkIGFuIGVtcHR5IGxpc3QgYXMgcmVzdWx0IGFuZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFJlbmUgU3RhZGxlciA8bWFpbCBhdCByZW5lc3RhZGxlciBkZT4KCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmM6IChnc3RfdGFnX3NldHRlcl9tZXJnZV90YWdzKToKCSAgTWVyZ2luZyBhbiBlbXB0eSBsaXN0IHdpdGggYW5vdGhlciBsaXN0IGluIEtFRVBfQUxMIG1vZGUgc2hvdWxkCgkgIHlpZWxkIGFuIGVtcHR5IGxpc3QgYXMgcmVzdWx0IGFuZCBub3QgdGhlIHNlY29uZCBsaXN0ICgjNTEyNTc4KS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnc2V0dGVyLmM6CgkgIEFkZCB1bml0IHRlc3QgZm9yIHRhZyBtZXJnZSBtb2RlcyBhbmQgdGhlIGFmb3JlbWVudGlvbmVkIGJ1Zy4KCjIwMDgtMDQtMTMgMTg6NTA6MDUgKzAwMDAgIFJlbmUgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkgIGdzdC9nc3R0YWdsaXN0Lmg6IEZpeCBkZXNjcmlwdGlvbiB0byBtYXRjaCB0aGUgb3JkZXIgaW4gdGhlIHRhYmxlICgjNTEyNTc3KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBSZW5lIFN0YWRsZXIgPG1haWwgYXQgcmVuZXN0YWRsZXIgZGU+CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgRml4IGRlc2NyaXB0aW9uIHRvIG1hdGNoIHRoZSBvcmRlciBpbiB0aGUgdGFibGUgKCM1MTI1NzcpLgoKMjAwOC0wNC0xMyAxNzo1MTowMiArMDAwMCAgS3dhbmcgWXVsIFNlbyA8a3dhbmd5dWwuc2VvLmdtYWlsLmNvbT4KCgkgIERlZmluZSBzb2NrbGVuX3QgYXMgaW50IGlmIGl0J3Mgbm90IGRlZmluZWQgeWV0LiBGaXhlcyBjb21waWxhdGlvbiB3aXRoIE1TVkM2IGFuZCBvdGhlciB2ZXJzaW9ucyB3aGVyZSBzb2NrbGVuX3QgaXMgbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEt3YW5nIFl1bCBTZW8gIDxrd2FuZ3l1bC5zZW8gZ21haWwgY29tPgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0Lmg6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgRGVmaW5lIHNvY2tsZW5fdCBhcyBpbnQgaWYgaXQncyBub3QgZGVmaW5lZCB5ZXQuIEZpeGVzIGNvbXBpbGF0aW9uCgkgIHdpdGggTVNWQzYgYW5kIG90aGVyIHZlcnNpb25zIHdoZXJlIHNvY2tsZW5fdCBpcyBub3QgZGVmaW5lZCBpbgoJICB0aGUgd2luZG93cyBoZWFkZXJzICgjNTE4MDIyKS4KCjIwMDgtMDQtMTMgMTM6NTQ6NTUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBJZiBnc3RfcmVnaXN0cnlfYWRkX3BsdWdpbigpIGZhaWxzIG91ciByZWZlcmVuY2UgdG8gdGhlIHBsdWdpbiBpcyBpbnZhbGlkIHNvIGRvbid0IHRyeSB0byB1cy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW4pOgoJICBJZiBnc3RfcmVnaXN0cnlfYWRkX3BsdWdpbigpIGZhaWxzIG91ciByZWZlcmVuY2UgdG8gdGhlIHBsdWdpbiBpcwoJICBpbnZhbGlkIHNvIGRvbid0IHRyeSB0byB1c2UgaXQgYW55bW9yZSBhbmQgaW5zdGVhZCBlcnJvciBvdXQuCgoyMDA4LTA0LTEyIDIwOjUyOjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogRGUtY3J1ZnQgYSBiaXQuIElmIG5vIGFyZ3VtZW50IGlzIHNwZWNpZmllZCwgcHJpbnQgYWxsIGVsZW1lbnRzIGluCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IChwcmludF9lbGVtZW50X2luZm8pLCAobWFpbik6CgkgIERlLWNydWZ0IGEgYml0LiBJZiBubyBhcmd1bWVudCBpcyBzcGVjaWZpZWQsIHByaW50IGFsbCBlbGVtZW50cyBpbgoJICBYTUwgc3ludGF4IHJhdGhlciB0aGFuIGEgZnJlZXN0eWxlIGxpc3Qgb2YgZWxlbWVudHMgbGlrZSBnc3QtaW5zcGVjdC4KCSAgQWxzbywgZG9uJ3QgcHJpbnQgWE1MIGhlYWRlciBjaHVuayB1bmxlc3Mgd2UgYWN0dWFsbHkgaGF2ZSBzb21ldGhpbmcKCSAgdG8gcHJpbnQgKGllLiBkb24ndCBwcmludCBpdCBiZWZvcmUgYW4gZXJyb3IgbWVzc2FnZSk7IHByaW50IGVycm9yCgkgIG1lc3NhZ2UgdG8gc3RkZXJyIG5vdCBzdGRvdXQuIFJlbW92ZSBzdXBwb3J0IGZvciBwcmludGluZyBwbHVnaW4KCSAgaW5mbyAoaXQgd291bGQganVzdCBvdXRwdXQgc29tZXRoaW5nIGZyZWVzdHlsZSBhbG9uZyB0aGUgbGluZXMgb2YKCSAgZ3N0LWluc3BlY3Qgc28gZmFyKSwgd2hpY2ggZml4ZXMgIzUxNDUwNy4gQWxzbyBhZGQgbGljZW5zZSBoZWFkZXIuCgoyMDA4LTA0LTExIDA5OjI3OjQ0ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIE1hYyBPUyBYIGxvdmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMDQtMTEgIEp1bGllbiBNb3V0dGUgIDxqdWxpZW5AZmx1ZW5kby5jb20+CgkgIE1hYyBPUyBYIGxvdmUuLi4KCSAgKiBjb25maWd1cmUuYWM6IE1lcmdlIHBsYXRmb3JtIHNwZWNpZmljIGRlZmluZXMsIGludHJvZHVjZSBhIG5ldwoJICBkZWZpbmUgb24gT1MgWCB0byByZW1lbWJlciB0aGF0IGZvcmtpbmcgd2hlbiB1cGRhdGluZyByZWdpc3RyeSBpcwoJICB1bnNhZmUuCgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBVcGRhdGVkIHRvIGluY2x1ZGUgZ3N0LWxpYnMgaW4gdGhlIGJhZAoJICBtb2R1bGUuCgkgICogZ3N0L2dzdC5jOiBEb24ndCBmb3JrIHdoZW4gdXBkYXRpbmcgcmVnaXN0cnkgaWYgR1NUX0hBVkVfVU5TQUZFX0ZPUksKCSAgaXMgZGVmaW5lZC4KCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpOiBGaXhlZCBhIGJvZ3VzCgkgIGNvbmRpdGlvbiB0aGF0IGxlYWRzIHRvIGFic29sdXRlbHkgbm8gcGx1Z2lucyBiZWluZyByZWdpc3RlcmVkIG9uCgkgIE9TIFguCgoyMDA4LTA0LTEwIDIwOjQ2OjUxICswMDAwICBKb3PDqSBBbGJ1cnF1ZXJxdWUgPGphYWxidXJxdUBzdm4uZ25vbWUub3JnPgoKCSAgQWRkIGdzdF9wYWRfYWRkXypfcHJvYmVfZnVsbCgpIGZ1bmN0aW9ucyB3aXRoIGEgbm90aWZ5IGNhbGxiYWNrIHRoYXQgbGV0cyB0aGUgY2FsbGVyIGZyZWUgdGhlIGRhdGEgaXQgcGFzc2VzIHRvIHRoZSBwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogSm9zw6kgQWxidXJxdWVycXVlIDxqYWFsYnVycXUgYXQgc3ZuIGRvdCBnbm9tZSBkb3Qgb3JnPgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhZF9hZGRfZGF0YV9wcm9iZSksCgkgIChnc3RfcGFkX2FkZF9kYXRhX3Byb2JlX2Z1bGwpLCAoZ3N0X3BhZF9hZGRfZXZlbnRfcHJvYmUpLAoJICAoZ3N0X3BhZF9hZGRfZXZlbnRfcHJvYmVfZnVsbCksIChnc3RfcGFkX2FkZF9idWZmZXJfcHJvYmUpLAoJICAoZ3N0X3BhZF9hZGRfYnVmZmVyX3Byb2JlX2Z1bGwpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBnc3RfcGFkX2FkZF8qX3Byb2JlX2Z1bGwoKSBmdW5jdGlvbnMgd2l0aCBhIG5vdGlmeSBjYWxsYmFjayB0aGF0CgkgIGxldHMgdGhlIGNhbGxlciBmcmVlIHRoZSBkYXRhIGl0IHBhc3NlcyB0byB0aGUgcHJvYmUgZnVuY3Rpb25zLiBUaGlzCgkgIGlzIHVzZWZ1bCBmb3IgYmluZGluZ3Mgc3VjaCBhcyBnc3QtcHl0aG9uIG9yIGdzdHJlYW1lcm1tICgjNTI2ODE0KS4KCSAgQVBJOiBnc3RfcGFkX2FkZF9kYXRhX3Byb2JlX2Z1bGwKCSAgQVBJOiBnc3RfcGFkX2FkZF9idWZmZXJfcHJvYmVfZnVsbAoJICBBUEk6IGdzdF9wYWRfYWRkX2V2ZW50X3Byb2JlX2Z1bGwKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgQWRkIG1pbmltYWwgdW5pdCB0ZXN0IHRvIG1ha2Ugc3VyZSBmcmVlaW5nIHRoZSBkYXRhIGFjdHVhbGx5IHdvcmtzCgkgIGFzIGV4cGVjdGVkLgoJICAqIHRlc3RzL2JlbmNobWFya3MvLmN2c2lnbm9yZToKCSAgUmFuZG9tIGN2c2lnbm9yZSBhZGRlbmR1bS4KCjIwMDgtMDQtMTAgMTk6MTM6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZGVidWd1dGlscy5oOiBNZW50aW9uIEdzdERlYnVnR3JhcGhEZXRhaWxzIGVudW0gdHlwZSBpbiBkb2MgYmx1cmIgc28gd2UgZ2V0IGEgbGluayB0byBpdCBpbiB0aGUgZG9jcyAoc2luY2UgdGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuaDogKEdTVF9ERUJVR19CSU5fVE9fRE9UX0ZJTEVfV0lUSF9UUyksCgkgIChHU1RfREVCVUdfQklOX1RPX0RPVF9GSUxFKToKCSAgTWVudGlvbiBHc3REZWJ1Z0dyYXBoRGV0YWlscyBlbnVtIHR5cGUgaW4gZG9jIGJsdXJiIHNvIHdlIGdldCBhIGxpbmsKCSAgdG8gaXQgaW4gdGhlIGRvY3MgKHNpbmNlIHRoZXNlIGFyZSBtYWNyb3MgdGhlIHR5cGVzIG9mIHRoZSBhcmd1bWVudHMKCSAgd29uJ3QgYmUgc2hvd24gaW4gdGhlIGRvY3Mgb3RoZXJ3aXNlKS4KCjIwMDgtMDQtMTAgMTQ6MTA6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogRG8gbm90IGFib3J0IG9uIG91dCBvZiBtZW1vcnkgZm9yIHBhZF9hbGxvY19idWZmZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgRG8gbm90IGFib3J0IG9uIG91dCBvZiBtZW1vcnkgZm9yIHBhZF9hbGxvY19idWZmZXIuCgoyMDA4LTA0LTEwIDEzOjU5OjI0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiBSZW1vdmUgYmxhbmsgbGluZSBiZXR3ZWVuIHN5bWJvbCBuYW1lIGFkIHBhcmFtZXRlcnMgdG8gZml4IGd0a2RvYyB3YXJuaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBSZW1vdmUgYmxhbmsgbGluZSBiZXR3ZWVuIHN5bWJvbCBuYW1lIGFkIHBhcmFtZXRlcnMgdG8gZml4IGd0a2RvYwoJICB3YXJuaW5nLgoKMjAwOC0wNC0wOSAyMjozNzoyMiArMDAwMCAgSm9zw6kgQWxidXJxdWVycXVlIDxqYWFsYnVycXVAc3ZuLmdub21lLm9yZz4KCgkgIEV4cG9zZSBnc3Rfc2VnbWVudF9jb3B5KCkgdG8gbWFrZSB0aGluZ3MgZWFzaWVyIGZvciB0aGUgYysrIGJpbmRpbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6ICBKb3PDqSBBbGJ1cnF1ZXJxdWUgPGphYWxidXJxdSBhdCBzdm4gZG90IGdub21lIGRvdCBvcmc+CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOgoJICAqIGdzdC9nc3RzZWdtZW50Lmg6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEV4cG9zZSBnc3Rfc2VnbWVudF9jb3B5KCkgdG8gbWFrZSB0aGluZ3MgZWFzaWVyIGZvciB0aGUgYysrIGJpbmRpbmdzLgoJICBGaXhlcyAjNTE4OTMyLgoJICBBUEk6IGdzdF9zZWdtZW50X2NvcHkoKQoKMjAwOC0wNC0wOSAyMToyNzo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogRml4IGNvbnN0IHBvc2l0aW9uOyByZWYgR1R5cGUgY2xhc3NlcyBmb3IgZW51bSB0eXBlcyB0byB3b3JrIGFyb3VuZCB0aHJlYWQtc2FmZXR5IGlzc3VlcyBpbiBHTGliIHZlcnNpb25zIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChnc3RfaW5pdF9nZXRfb3B0aW9uX2dyb3VwKSwgKGluaXRfcG9zdCk6CgkgIEZpeCBjb25zdCBwb3NpdGlvbjsgcmVmIEdUeXBlIGNsYXNzZXMgZm9yIGVudW0gdHlwZXMgdG8gd29yawoJICBhcm91bmQgdGhyZWFkLXNhZmV0eSBpc3N1ZXMgaW4gR0xpYiB2ZXJzaW9ucyA8IDIuMTYuCgoyMDA4LTA0LTA5IDE4OjI2OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OiBGaXggc29tZSB0eXBvcyBhbmQgc2V0IHRoZSBlc3RpbWF0ZWQgdG90YWwgZm9yIHB1c2ggbW9kZSB0byAtMS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJICBGaXggc29tZSB0eXBvcyBhbmQgc2V0IHRoZSBlc3RpbWF0ZWQgdG90YWwgZm9yIHB1c2ggbW9kZSB0byAtMS4KCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9uZXdfYnVmZmVyaW5nKToKCSAgU2V0IGJ1ZmZlcmluZy1sZWZ0IHRvIDAgYXMgd2UncmUgbm90IGJ1ZmZlcmluZyBieSBkZWZhdWx0LgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfcXVlcnkpOgoJICBJbXBsZW1lbnQgQlVGRkVSSU5HIHF1ZXJ5LgoKMjAwOC0wNC0wOSAxNzozNDo1NCArMDAwMCAgTWlsb3N6IERlcmV6eW5za2kgPGludGVybmFsZXJyb3JAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVycm9yLio6IEFkZCB0d28gbmV3IGVycm9yIGNvZGVzIGZvciBlbmNyeXB0ZWQgY29udGVudC4gRml4ZXMgIzUyNDY1OS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBNaWxvc3ogRGVyZXp5bnNraSA8aW50ZXJuYWxlcnJvciBnbWFpbCBjb20+CgkgICogZ3N0L2dzdGVycm9yLmM6IChfZ3N0X3N0cmVhbV9lcnJvcnNfaW5pdCk6CgkgICogZ3N0L2dzdGVycm9yLmg6CgkgIEFkZCB0d28gbmV3IGVycm9yIGNvZGVzIGZvciBlbmNyeXB0ZWQgY29udGVudC4gRml4ZXMgIzUyNDY1OS4KCSAgQVBJOiBHU1RfU1RSRUFNX0VSUk9SX0RFQ1JZUFQKCSAgQVBJOiBHU1RfU1RSRUFNX0VSUk9SX0RFQ1JZUFRfTk9LRVkKCjIwMDgtMDQtMDkgMTM6MTU6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cXVlcnkuaDogRml4IHR5cG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBGaXggdHlwby4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBmdW5jdGlvbnMuCgoyMDA4LTA0LTA5IDA4OjE5OjM2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IEZpeCBpbXBlcmZlY3QgdGltZXN0YW1wL29mZnNldCBjaGVja3Mgd2hlbiB3ZSBnZXQgYW5vdGhlciBORVdTRUdNRU5UIGV2ZW50IGFmdGVyIHByb2MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2V2ZW50KSwKCSAgKGdzdF9pZGVudGl0eV9zdGFydCk6CgkgIEZpeCBpbXBlcmZlY3QgdGltZXN0YW1wL29mZnNldCBjaGVja3Mgd2hlbiB3ZSBnZXQgYW5vdGhlciBORVdTRUdNRU5UCgkgIGV2ZW50IGFmdGVyIHByb2Nlc3Npbmcgc29tZSBkYXRhLiBGaXhlcyBidWcgIzUyNjA0Mi4KCjIwMDgtMDQtMDggMjA6Mjg6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBSZW5hbWUgX2F2YWlsIC0+IF9yYW5nZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X3BhcnNlX2xhdGVuY3kpLAoJICAoZ3N0X3F1ZXJ5X3NldF9idWZmZXJpbmdfcGVyY2VudCksCgkgIChnc3RfcXVlcnlfcGFyc2VfYnVmZmVyaW5nX3BlcmNlbnQpLAoJICAoZ3N0X3F1ZXJ5X3NldF9idWZmZXJpbmdfcmFuZ2UpLCAoZ3N0X3F1ZXJ5X3BhcnNlX2J1ZmZlcmluZ19yYW5nZSk6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIFJlbmFtZSBfYXZhaWwgLT4gX3JhbmdlCgkgIEFQSTogZ3N0X3F1ZXJ5X3NldF9idWZmZXJpbmdfcmFuZ2UKCSAgQVBJOiBnc3RfcXVlcnlfcGFyc2VfYnVmZmVyaW5nX3JhbmdlCgoyMDA4LTA0LTA4IDIwOjE3OjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIGJ1c3kgZmllbGQgYW5kIHF1YXJrIGZvciB0aGUgYnVmZmVyaW5nIHF1ZXJ5IHNvIHRoYXQgdGhlIGFwcCBjYW4gb25seSB1c2UgdGhlIHF1ZXJ5IHRvIHNlZSBpZiBidWZmZXJpbmcgaXMgaW4gcHJvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSAgKiBnc3QvZ3N0cXVhcmsuYzoKCSAgKiBnc3QvZ3N0cXVhcmsuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9wYXJzZV9sYXRlbmN5KSwKCSAgKGdzdF9xdWVyeV9uZXdfYnVmZmVyaW5nKSwgKGdzdF9xdWVyeV9zZXRfYnVmZmVyaW5nX3BlcmNlbnQpLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX2J1ZmZlcmluZ19wZXJjZW50KToKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgQWRkIGJ1c3kgZmllbGQgYW5kIHF1YXJrIGZvciB0aGUgYnVmZmVyaW5nIHF1ZXJ5IHNvIHRoYXQgdGhlIGFwcCBjYW4KCSAgb25seSB1c2UgdGhlIHF1ZXJ5IHRvIHNlZSBpZiBidWZmZXJpbmcgaXMgaW4gcHJvZ3Jlc3MuCgoyMDA4LTA0LTA4IDE5OjU5OjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgUmVvcmRlciB0aGUgbWVzc2FnZSBkb2NzIGFuZCBoZWFkZXJzIGZvciBjbGFyaXR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9zZXRfYnVmZmVyaW5nX3N0YXRzKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX2J1ZmZlcmluZ19zdGF0cyk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9uZXdfbGF0ZW5jeSksIChnc3RfcXVlcnlfc2V0X2xhdGVuY3kpLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX2xhdGVuY3kpLCAoZ3N0X3F1ZXJ5X25ld19idWZmZXJpbmcpLAoJICAoZ3N0X3F1ZXJ5X3NldF9idWZmZXJpbmdfcGVyY2VudCksCgkgIChnc3RfcXVlcnlfcGFyc2VfYnVmZmVyaW5nX3BlcmNlbnQpLAoJICAoZ3N0X3F1ZXJ5X3NldF9idWZmZXJpbmdfc3RhdHMpLCAoZ3N0X3F1ZXJ5X3BhcnNlX2J1ZmZlcmluZ19zdGF0cyksCgkgIChnc3RfcXVlcnlfc2V0X2J1ZmZlcmluZ19hdmFpbCksIChnc3RfcXVlcnlfcGFyc2VfYnVmZmVyaW5nX2F2YWlsKToKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgUmVvcmRlciB0aGUgbWVzc2FnZSBkb2NzIGFuZCBoZWFkZXJzIGZvciBjbGFyaXR5LgoJICBBZGQgYWRpdGlvbmFsIGJ1ZmZlcmluZyBzdGF0cyBBUEkgZm9yIG1lc3NhZ2VzLgoJICBBZGQgYnVmZmVyaW5nIHF1ZXJ5LgoJICBDb252ZXJ0IHNvbWUgbGVmdG92ZXIgcXVlcmllcyB0byB1c2UgR3N0UXVhcmsuCgkgIEFQSTogZ3N0X21lc3NhZ2Vfc2V0X2J1ZmZlcmluZ19zdGF0cwoJICBBUEk6IGdzdF9tZXNzYWdlX3BhcnNlX2J1ZmZlcmluZ19zdGF0cwoJICBBUEk6IEdTVF9RVUVSWV9CVUZGRVJJTkcKCSAgQVBJOiBHc3RCdWZmZXJpbmdNb2RlCgkgIEFQSTogZ3N0X3F1ZXJ5X25ld19idWZmZXJpbmcKCSAgQVBJOiBnc3RfcXVlcnlfc2V0X2J1ZmZlcmluZ19wZXJjZW50CgkgIEFQSTogZ3N0X3F1ZXJ5X3BhcnNlX2J1ZmZlcmluZ19wZXJjZW50CgkgIEFQSTogZ3N0X3F1ZXJ5X3NldF9idWZmZXJpbmdfc3RhdHMKCSAgQVBJOiBnc3RfcXVlcnlfcGFyc2VfYnVmZmVyaW5nX3N0YXRzCgkgIEFQSTogZ3N0X3F1ZXJ5X3NldF9idWZmZXJpbmdfYXZhaWwKCSAgQVBJOiBnc3RfcXVlcnlfcGFyc2VfYnVmZmVyaW5nX2F2YWlsCgoyMDA4LTA0LTA4IDE5OjUyOjIyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuYzogVXNlIEdzdFF1YXJrIGZvciBtZXNzYWdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19lcnJvciksCgkgIChnc3RfbWVzc2FnZV9uZXdfd2FybmluZyksIChnc3RfbWVzc2FnZV9uZXdfaW5mbyksCgkgIChnc3RfbWVzc2FnZV9uZXdfYnVmZmVyaW5nKSwgKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKSwKCSAgKGdzdF9tZXNzYWdlX25ld19jbG9ja19wcm92aWRlKSwgKGdzdF9tZXNzYWdlX25ld19jbG9ja19sb3N0KSwKCSAgKGdzdF9tZXNzYWdlX25ld19uZXdfY2xvY2spLCAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfZG9uZSksIChnc3RfbWVzc2FnZV9uZXdfZHVyYXRpb24pLAoJICAoZ3N0X21lc3NhZ2VfbmV3X2FzeW5jX3N0YXJ0KSwgKGdzdF9tZXNzYWdlX3BhcnNlX2J1ZmZlcmluZyksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zdGF0ZV9jaGFuZ2VkKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX2Nsb2NrX3Byb3ZpZGUpLCAoZ3N0X21lc3NhZ2VfcGFyc2VfY2xvY2tfbG9zdCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9uZXdfY2xvY2spLCAoZ3N0X21lc3NhZ2VfcGFyc2VfZXJyb3IpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfd2FybmluZyksIChnc3RfbWVzc2FnZV9wYXJzZV9pbmZvKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc2VnbWVudF9kb25lKSwgKGdzdF9tZXNzYWdlX3BhcnNlX2R1cmF0aW9uKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX2FzeW5jX3N0YXJ0KToKCSAgVXNlIEdzdFF1YXJrIGZvciBtZXNzYWdlcy4KCjIwMDgtMDQtMDggMTk6Mzk6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cXVhcmsuKjogQWRkIHNvbWUgbW9yZSBxdWFya3MgbmVlZGVkIGZvciBtZXNzYWdlcyBhbmQgcXVlcmllcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1YXJrLmM6IChfcHJpdl9nc3RfcXVhcmtzX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3RxdWFyay5oOgoJICBBZGQgc29tZSBtb3JlIHF1YXJrcyBuZWVkZWQgZm9yIG1lc3NhZ2VzIGFuZCBxdWVyaWVzLgoKMjAwOC0wNC0wOCAxOToxNDo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDogUmVtb3ZlIHRoZSAibm9uZSIgYnVmZmVyaW5nIG1vZGUsIFNUUkVBTSBpcyBhIGdvb2QgZGVmYXVsdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJICBSZW1vdmUgdGhlICJub25lIiBidWZmZXJpbmcgbW9kZSwgU1RSRUFNIGlzIGEgZ29vZCBkZWZhdWx0LgoJICBNb3ZlIGVzdGltYXRlZC10aW1lIHRvIHRoZSBhdmFpbCBxdWVyeSwgdGhhdCdzIHdoZW4gaXQgd2lsbCBiZSBuZWVkZWQuCgkgIE90aGVyIHNtYWxsIHR5cG8gZml4ZXMgYW5kIHVwZGF0ZXMuCgoyMDA4LTA0LTA3IDEzOjI3OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZGV4LmM6IERvbid0IHB1dCBkZXNjcmlwdGlvbnMgaW50byB0aGUgbmljayBmaWVsZCBvZiBhIEdFbnVtVmFsdWU6IGl0J3Mgbm90IG1lYW50IGZvciB0aGF0IGFuZCBzb21lIGxhbmd1YWdlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmRleC5jOiAoZ3N0X2luZGV4X3Jlc29sdmVyX2dldF90eXBlKToKCSAgRG9uJ3QgcHV0IGRlc2NyaXB0aW9ucyBpbnRvIHRoZSBuaWNrIGZpZWxkIG9mIGEgR0VudW1WYWx1ZTogaXQncyBub3QKCSAgbWVhbnQgZm9yIHRoYXQgYW5kIHNvbWUgbGFuZ3VhZ2UgYmluZGluZ3MgcmVseSBvbiB0aGUgbmljayBmaWVsZCB0bwoJICBjb25zdHJ1Y3QgY29uc3RhbnRzIGFuZCB0aGUgbGlrZS4gRml4ZXMgIzUyNjcwNS4KCjIwMDgtMDQtMDcgMTA6NDg6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBNZXJnZSBvdGhlciBjaGFuZ2VzIGZyb20gMC4xMC4xOSByZWxlYXNlIGJyYW5jaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTkVXUzoKCSAgKiBSRUxFQVNFOgoJICAqIGdzdHJlYW1lci5kb2FwOgoJICBNZXJnZSBvdGhlciBjaGFuZ2VzIGZyb20gMC4xMC4xOSByZWxlYXNlIGJyYW5jaC4KCjIwMDgtMDQtMDYgMDg6NTQ6NDcgKzAwMDAgIERhbWllbiBMZXNwaWF1IDxkYW1pZW4ubGVzcGlhdUBnbWFpbC5jb20+CgoJICBjb25maWd1cmUuYWM6IEFjdHVhbGx5IGJ1aWxkIGRsbHMgd2hlbiBjcm9zcy1jb21waWxpbmcgd2l0aCBtaW5ndzMyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IERhbWllbiBMZXNwaWF1IDxkYW1pZW4gZG90IGxlc3BpYXUgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBjb25maWd1cmUuYWM6CgkgIEFjdHVhbGx5IGJ1aWxkIGRsbHMgd2hlbiBjcm9zcy1jb21waWxpbmcgd2l0aCBtaW5ndzMyLgoJICBGaXhlcyBidWcgIzUyNjI0Ny4KCjIwMDgtMDQtMDUgMTA6NTg6MTEgKzAwMDAgIERhbWllbiBMZXNwaWF1IDxkYW1pZW4ubGVzcGlhdUBnbWFpbC5jb20+CgoJICBnc3QvZ3N0cG9sbC5jOiBGaXggY29tcGlsYXRpb24gb2YgR3N0UG9sbCB3aXRoIG1pbmd3MzIuIEZpeGVzIGJ1ZyAjNTI2MjM2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IERhbWllbiBMZXNwaWF1IDxkYW1pZW4gZG90IGxlc3BpYXUgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvZ3N0cG9sbC5jOgoJICBGaXggY29tcGlsYXRpb24gb2YgR3N0UG9sbCB3aXRoIG1pbmd3MzIuIEZpeGVzIGJ1ZyAjNTI2MjM2LgoKMjAwOC0wNC0wNCAxMzo0MzoyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OiBGaXggdHlwby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6CgkgIEZpeCB0eXBvLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSAgVXBkYXRlIGRlc2lnbiBkb2NzIHdpdGggbW9yZSBidWZmZXJpbmcgaWRlYXMuCgoyMDA4LTA0LTAzIDIxOjE1OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY29uZmlndXJlLmFjOiBCdW1wIHZlcnNpb24gdG8gMC4xMC4xOS4xIGFmdGVyIHRoZSB1bnNjaGVkdWxlZCAwLjEwLjE5IHJlbGVhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQnVtcCB2ZXJzaW9uIHRvIDAuMTAuMTkuMSBhZnRlciB0aGUgdW5zY2hlZHVsZWQgMC4xMC4xOSByZWxlYXNlLgoKMjAwOC0wNC0wMyAxNjo0NTowMiArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHVwZGF0ZSBzcGVjIHRvIHdvcmsgd2l0aCBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgc3BlYyB0byB3b3JrIHdpdGggZG9jcwoKMjAwOC0wNC0wMyAxNDo0OTowNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY29uZmlndXJlLmFjOiBSZXZlcnQgcGFydCB0aGF0IGJlbG9uZ3MgdG8gdGhlIHByZXNldCBwYXRjaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBSZXZlcnQgcGFydCB0aGF0IGJlbG9uZ3MgdG8gdGhlIHByZXNldCBwYXRjaC4KCjIwMDgtMDQtMDMgMTQ6MjY6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogQWRkIHFvdXRlcyB0byB0aGUgZGVmaW5lLiBGaXhlcyAjIDUyNTk2MS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBBZGQgcW91dGVzIHRvIHRoZSBkZWZpbmUuIEZpeGVzICMgNTI1OTYxLgoKMjAwOC0wNC0wMyAwNzo1MjozMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgcGx1Z2lucy9pbmRleGVycy86IFVzZSBHU2xpY2Ugd2hlbiBwb3NzaWJsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzogKF9maWxlX2luZGV4X2lkX2ZyZWUpLAoJICAoZ3N0X2ZpbGVfaW5kZXhfbG9hZCksIChnc3RfZmlsZV9pbmRleF9hZGRfaWQpLAoJICAoZ3N0X2ZpbGVfaW5kZXhfZ2V0X2Fzc29jX2VudHJ5KToKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6IChnc3RfbWVtX2luZGV4X2ZyZWVfZm9ybWF0KSwKCSAgKGdzdF9tZW1faW5kZXhfZnJlZV9pZCksIChnc3RfbWVtX2luZGV4X2FkZF9pZCksCgkgIChnc3RfbWVtX2luZGV4X2luZGV4X2Zvcm1hdCk6CgkgIFVzZSBHU2xpY2Ugd2hlbiBwb3NzaWJsZS4KCjIwMDgtMDQtMDIgMTc6NDU6MDggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzogVXNlIEdTbGljZSBmb3IgYWxsb2NhdGluZyB0aGUgY29udHJvbCBwb2ludHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgKGdzdF9jb250cm9sX3BvaW50X2ZyZWUpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2Vfc2V0X2ludGVybmFsKToKCSAgVXNlIEdTbGljZSBmb3IgYWxsb2NhdGluZyB0aGUgY29udHJvbCBwb2ludHMuCgoyMDA4LTA0LTAyIDE3OjIxOjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuKjogQ2xlYW51cCBwcm9wZXJ0aWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NsYXNzX2luaXQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X3NldF9wcm9wZXJ0eSksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9hY3RpdmF0ZSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgQ2xlYW51cCBwcm9wZXJ0aWVzLgoJICBGaXggcGFkIGxlYWsgd2hlbiBwZWVyIHF1ZXJ5IGZhaWxzLgoJICBXZSBjYW4gc3RpbGwgdHlwZWZpbmQgd2hlbiB0aGUgcGVlciByZXR1cm5zIC0xLgoJICBBZGQgcHJvcGVydHkgdG8gZm9yY2UgY2FwcyBhbmQgYnlwYXNzIHR5cGVmaW5kaW5nLiBUaGlzIHdpbGwgYmUgdXNlZCBpbgoJICB1cmlkZWNvZGViaW4uCgkgIEFQSTo6Zm9yY2UtY2FwcwoKMjAwOC0wNC0wMSAxMzo1NToyMCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgY29uZmlndXJlLmFjOiBSZXF1aXJlIEdMaWIgMi4xMi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBSZXF1aXJlIEdMaWIgMi4xMi4KCSAgKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19uZXdfZW1wdHkpLCAoX2dzdF9jYXBzX2ZyZWUpOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2VudHJ5X25ldyksIChfZ3N0X2Nsb2NrX2lkX2ZyZWUpOgoJICBVbmNvbmRpdGlvbmFsbHkgdXNlIEdTbGljZSBmb3IgYWxsb2NhdGlvbi4KCSAgKiBnc3QvZ3N0cG9sbC5jOiAoZ3N0X3BvbGxfbmV3KSwgKGdzdF9wb2xsX2ZyZWUpOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9uZXcpLCAoZ3N0X3NlZ21lbnRfZnJlZSk6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9pZF9lbXB0eV9uZXdfd2l0aF9zaXplKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfZnJlZSk6CgkgIFVzZSBHU2xpY2UgZm9yIGFsbG9jYXRpb24uCgoyMDA4LTA0LTAxIDEzOjQ4OjU5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvcGFyc2UvOiBSZXF1aXJlIGEgbmV3IGVub3VnaCBmbGV4IGFuZCBiaXNvbiBhbmQgcmVtb3ZlIHRoZSBwYXJzZXIgaGFja3MgdG8gdXNlIGEgcHJlLXJlZ2VuZXJhdGVkIHZlcnNpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci50YWIucHJlLmM6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIudGFiLnByZS5oOgoJICAqIGdzdC9wYXJzZS9sZXguX2dzdF9wYXJzZV95eS5wcmUuYzoKCSAgUmVxdWlyZSBhIG5ldyBlbm91Z2ggZmxleCBhbmQgYmlzb24gYW5kIHJlbW92ZSB0aGUgcGFyc2VyIGhhY2tzIHRvIHVzZQoJICBhIHByZS1yZWdlbmVyYXRlZCB2ZXJzaW9uLgoKMjAwOC0wNC0wMSAxMDoyNTozNSArMDAwMCAgSmFzb24gWmhhbyA8RTM0MjNDQG1vdG9yb2xhLmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQWRkIGEgY29uZmlndXJlIHN3aXRjaCB0byBkaXNhYmxlIG9wdGlvbiBwYXJzaW5nIGluIGdzdF9pbml0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0wNC0wMSAgSnVsaWVuIE1vdXR0ZSAgPGp1bGllbkBmbHVlbmRvLmNvbT4KCSAgcGF0Y2ggYnk6IEphc29uIFpoYW8gPEUzNDIzQ0Btb3Rvcm9sYS5jb20+CgkgICogY29uZmlndXJlLmFjOiBBZGQgYSBjb25maWd1cmUgc3dpdGNoIHRvIGRpc2FibGUgb3B0aW9uIHBhcnNpbmcKCSAgaW4gZ3N0X2luaXQuCgkgIEZpeGVzICM1MjI4ODIuCgoyMDA4LTAzLTMxIDEzOjQ3OjIyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBNYWNPUyBoYXMgcGx1Z2lucyB1bmRlciAuc28gb3IgdW5kZXIgLmR5bGliLiBBZGQgZGV0ZWN0aW9uIGZvciBNYWNPUyBhbmQgaGFuZGxlIHRoaXMgY2FzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBNYWNPUyBoYXMgcGx1Z2lucyB1bmRlciAuc28gb3IgdW5kZXIgLmR5bGliLiBBZGQgZGV0ZWN0aW9uIGZvciBNYWNPUwoJICBhbmQgaGFuZGxlIHRoaXMgY2FzZS4KCSAgKiBnc3QvZ3N0LmM6CgkgIEFkZCBhIGNvbW1lbnQgaGVyZSBkZXNjcmliaW5nLCB3aHkgd2Ugc3RhdCBlYWNoIHBsdWdpbiBhbmQgbm90IHRyeSB0bwoJICBiZSBzbWFydC4KCjIwMDgtMDMtMzEgMTA6MjE6NTcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBBbHNvIHVuc2V0IHRoZSBHQVAgZmxhZyBvbiBidWZmZXJzIGlmIHdlJ3JlIHdvcmtpbmcgaW5wbGFjZSBidXQgdGhlIGVsZW1lbnQgaXMgbm90IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpOgoJICBBbHNvIHVuc2V0IHRoZSBHQVAgZmxhZyBvbiBidWZmZXJzIGlmIHdlJ3JlIHdvcmtpbmcgaW5wbGFjZSBidXQKCSAgdGhlIGVsZW1lbnQgaXMgbm90IEdBUC1hd2FyZS4KCSAgTWFyayBhIGNvbW1lbnQgYXMgRklYTUUgMC4xMS4KCjIwMDgtMDMtMzEgMDg6MzI6MjYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3QuYzogRml4IHR5cGUgaW4gbG9nIG1lc3NhZ2UgYW5kIGFkZCBvbmUgdG8gZWFzZSBzZWVpbmcgaG93IGxvbmcgcmVnaXN0cnkgY2FjaGUgdmVyaWZpY2F0aW9uIHRha2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIEZpeCB0eXBlIGluIGxvZyBtZXNzYWdlIGFuZCBhZGQgb25lIHRvIGVhc2Ugc2VlaW5nIGhvdyBsb25nIHJlZ2lzdHJ5CgkgIGNhY2hlIHZlcmlmaWNhdGlvbiB0YWtlcy4KCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgT25seSB0ZXN0IHBsdWdpbiBmaWxlbmFtZXMgYWdhaW5zdCBHX01PRFVMRV9TVUZGSVguCgoyMDA4LTAzLTMxIDA3OjQ5OjI2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZGVidWd1dGlscy5jOiBJbXByb3ZlIGhhbmRsaW5nIGdob3N0L3Byb3h5IHBhZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIEltcHJvdmUgaGFuZGxpbmcgZ2hvc3QvcHJveHkgcGFkcy4KCjIwMDgtMDMtMjcgMTk6MTM6NDUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEV4cG9zZSBtYWNybyB0byBkb2NzIGFuZCBmaXggbGluayB0byBpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBFeHBvc2UgbWFjcm8gdG8gZG9jcyBhbmQgZml4IGxpbmsgdG8gaXQuCgoyMDA4LTAzLTI3IDE1OjIzOjU1ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IFdoZW4gY2FsY3VsYXRpbmcgR0RQIGJvZHkgQ1JDLCB1c2UgdGhlIGNvcnJlY3QgcG9pbnRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50XzFfMCk6CgkgIFdoZW4gY2FsY3VsYXRpbmcgR0RQIGJvZHkgQ1JDLCB1c2UgdGhlIGNvcnJlY3QgcG9pbnRlci4KCSAgRml4ZXMgcGFydCBvZiAjNTIyNDAxLgoKMjAwOC0wMy0yNCAxNjo1NjozNiArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3QHNreW5ldC5iZT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogSWRlbnRpdHkgaXMgbm90IGFsd2F5cyBhIHBhc3N0aHJvdWdoIGVsZW1lbnQsIGl0IGNhbiBtb2RpZnkgdGhlIGJ1ZmZlciB0aW1lc3RhbXBzIHdoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1dyBhdCBza3luZXQgYmU+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpLAoJICAoZ3N0X2lkZW50aXR5X2luaXQpLCAoZ3N0X2lkZW50aXR5X3ByZXBhcmVfb3V0cHV0X2J1ZmZlcik6CgkgIElkZW50aXR5IGlzIG5vdCBhbHdheXMgYSBwYXNzdGhyb3VnaCBlbGVtZW50LCBpdCBjYW4gbW9kaWZ5IHRoZSBidWZmZXIKCSAgdGltZXN0YW1wcyB3aGVuIGl0IGhhcyBhIGRhdGFyYXRlIGFuZCBvcGVyYXRlcyBpbiBzaW5nbGUtc2VnbWVudCBtb2RlLgoJICBXZSB0aGVyZWZvcmUgbWFrZSBpdCBhbiBpbl9wbGFjZSBmaWx0ZXIgd2l0aCBhIGN1c3RvbSBidWZmZXIgcHJlcGFyZQoJICBmdW5jdGlvbiB0aGF0IGNvbmRpdGlvbmFsbHkgbWFrZXMgdGhlIGlucHV0IGJ1ZmZlciBtZXRhZGF0YSB3cml0YWJsZQoJICB3aGVuIG5lZWRlZC4gIEZpeGVzICM1MjM5ODUuCgoyMDA4LTAzLTI0IDE2OjQ0OjI1ICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJlPgoKCSAgU21hbGwgZG9jdW1lbnRhdGlvbiBmaXhlcy4gRml4ZXMgIzUyMzk3OC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXcgYXQgc2t5bmV0IGJlPgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIFNtYWxsIGRvY3VtZW50YXRpb24gZml4ZXMuIEZpeGVzICM1MjM5NzguCgoyMDA4LTAzLTI0IDE2OjMxOjMwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IEFsc28gcmV0cnkgb3VyIHBvbGxfd2FpdCB3aGVuIHdlIGdldCBFQUdBSU4uIEZpeGVzICM1MjQwNDEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19yZW5kZXIpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY3JlYXRlKToKCSAgQWxzbyByZXRyeSBvdXIgcG9sbF93YWl0IHdoZW4gd2UgZ2V0IEVBR0FJTi4gRml4ZXMgIzUyNDA0MS4KCjIwMDgtMDMtMjQgMTA6Mzg6MzEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogV2hlbiB0cnlpbmcgdG8gbWFrZSByb29tIGluIHRoZSBxdWV1ZSwgYnVtcCB0aGUgbWF4IGFsbG93ZWQgYnVmZmVycyBiaWdnZXIgdGhhbiB0aGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChzaW5nbGVfcXVldWVfb3ZlcnJ1bl9jYiksCgkgIChzaW5nbGVfcXVldWVfdW5kZXJydW5fY2IpOgoJICBXaGVuIHRyeWluZyB0byBtYWtlIHJvb20gaW4gdGhlIHF1ZXVlLCBidW1wIHRoZSBtYXggYWxsb3dlZCBidWZmZXJzCgkgIGJpZ2dlciB0aGFuIHRoZSBjdXJyZW50IGFtb3VudCBvZiBidWZmZXJzIGluIHRoZSBxdWV1ZS4gdGhpcyBmaXhlcyBzb21lCgkgIG5hc3R5IGRlYWRsb2NrcyBpbiBtdWx0aXF1ZXVlIHdoZW4gZHluYW1pY2FsbHkgY2hhbmdpbmcgdGhlIGxpbWl0cyBvZgoJICB0aGUgcXVldWUuCgoyMDA4LTAzLTI0IDEwOjMzOjQxICswMDAwICBKb3PDqSBBbGJ1cnF1ZXJxdWUgPGphYWxidXJxdUBzdm4uZ25vbWUub3JnPgoKCSAgZ3N0L2dzdGNhcHMuKjogQ29uc3RpZnkgdGhlIGZpZWxkIGdjaGFyICogcGFyYW1zIGluIHNldF9zaW1wbGUgYW5kIGZyaWVuZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogIEpvc8OpIEFsYnVycXVlcnF1ZSA8amFhbGJ1cnF1IGF0IHN2biBkb3QgZ25vbWUgZG90IG9yZz4KCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfc2V0X3NpbXBsZSksCgkgIChnc3RfY2Fwc19zZXRfc2ltcGxlX3ZhbGlzdCksIChnc3RfY2Fwc19pbnRlcnNlY3QpOgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgIENvbnN0aWZ5IHRoZSBmaWVsZCBnY2hhciAqIHBhcmFtcyBpbiBzZXRfc2ltcGxlIGFuZCBmcmllbmRzLgoJICBGaXhlcyAjNTIyMzI2LgoKMjAwOC0wMy0yNCAxMDoyOTowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBUcmFuc2Zvcm0gYSBHc3RPYmplY3QgdG8gYSBtb3JlIG1lYW5pbmdmdWxsIHN0cmluZyB0aGF0IGluY2x1ZGVzIHRoZSBvYmplY3QgdHlwZSBpbiBhZGRpdGlvbiB0byBpdHMgbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV90cmFuc2Zvcm1fb2JqZWN0X3N0cmluZyk6CgkgIFRyYW5zZm9ybSBhIEdzdE9iamVjdCB0byBhIG1vcmUgbWVhbmluZ2Z1bGwgc3RyaW5nIHRoYXQgaW5jbHVkZXMgdGhlCgkgIG9iamVjdCB0eXBlIGluIGFkZGl0aW9uIHRvIGl0cyBuYW1lLgoKMjAwOC0wMy0yMyAxNToxNzoyNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQ2hhbmdlTG9nOiBDaGFuZ2VMb2cgc3VyZ2VyeSB0byBhZGQgYnVnbnVtYmVyIHRvIGNvbW1pdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeSB0byBhZGQgYnVnbnVtYmVyIHRvIGNvbW1pdC4KCjIwMDgtMDMtMjMgMTQ6MjQ6NDggKzAwMDAgIFJlbmUgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBGaXggY29uZnVzaW5nIGRvY3VtZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9nYXBfYXdhcmUpOiBGaXggY29uZnVzaW5nIGRvY3VtZW50YXRpb24uCgoyMDA4LTAzLTIzIDExOjQwOjU0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogUmVuYW1lIGNvbnN0YW50IGV2ZXJ5d2hlcmUgYW5kIGRvbid0IGZvcmdldCBvbmUgb2NjdXJlbmNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGUpOgoJICBSZW5hbWUgY29uc3RhbnQgZXZlcnl3aGVyZSBhbmQgZG9uJ3QgZm9yZ2V0IG9uZSBvY2N1cmVuY2UuCgoyMDA4LTAzLTIzIDExOjI5OjU0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogQWxpZ24gbWVtb3J5IHRvIHRoZSBwb2ludGVyIHNpemUgZXZlbiBpZiB0aGUgYXJjaGl0ZWN0dXJlIGFsbG93cyB1bmFsaWduZWQgbWVtb3J5IGFjY2Vzcy4gVW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlKToKCSAgQWxpZ24gbWVtb3J5IHRvIHRoZSBwb2ludGVyIHNpemUgZXZlbiBpZiB0aGUgYXJjaGl0ZWN0dXJlIGFsbG93cwoJICB1bmFsaWduZWQgbWVtb3J5IGFjY2Vzcy4gVW5hbGlnbmVkIG1lbW9yeSBhY2Nlc3MgdXN1YWxseSBjb21lcyB3aXRoCgkgIHBlcmZvcm1hbmNlIHBlbmFsaXR5LgoKMjAwOC0wMy0yMyAxMToyMzozMCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IEFsaWduIG1lbW9yeSB0byB0aGUgcG9pbnRlciBzaXplIGluc3RlYWQgb2YgYWx3YXlzIDMyIGJpdC4gRml4ZXMgdW5hbGlnbmVkIG1lbW9yeSBhY2Nlc3NlcyBvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2NoZWNrX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbik6CgkgIEFsaWduIG1lbW9yeSB0byB0aGUgcG9pbnRlciBzaXplIGluc3RlYWQgb2YgYWx3YXlzIDMyIGJpdC4gRml4ZXMKCSAgdW5hbGlnbmVkIG1lbW9yeSBhY2Nlc3NlcyBvbiBpYTY0IGFuZCBmcmllbmRzLgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICBCdW1wIGJpbmFyeSByZWdpc3RyeSBmb3JtYXQgdmVyc2lvbiBmb3IgdGhpcyBhcyBpdCBjaGFuZ2VzIHRoZQoJICBmb3JtYXQgb24gdGhvc2UgYXJjaGl0ZWN0dXJlcyB0aGF0IGRvbid0IGhhdmUgdW5hbGlnbmVkIGFjY2VzcwoJICBhbmQgNjQgYml0IHBvaW50ZXJzLgoKMjAwOC0wMy0yMiAxNDo1NjoxNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgRGVmaW5lIEdfUEFSQU1fU1RBVElDX1NUUklOR1MgaWYgaXQncyB1bmRlZmluZWQgKEdMaWIgPCAyLjEzLjApIGFuZCB1c2UgaXQgZXZlcnl3aGVyZSBmb3IgR1BhcmFtU3BlY3MgdGhhdCB1c2Ugc3RhdGljLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXByb3BzLnhtbDoKCSAgKiBkb2NzL3B3Zy9vdGhlci1zb3VyY2UueG1sOgoJICAqIGdzdC9nbGliLWNvbXBhdC5oOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzogKGdzdF9kYXRhX3F1ZXVlX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChfZ3N0X2NoZWNrX2ZhdWx0X2hhbmRsZXJfcmVzdG9yZSksCgkgIChfZ3N0X2NoZWNrX2ZhdWx0X2hhbmRsZXJfc2lnaGFuZGxlciksCgkgIChfZ3N0X2NoZWNrX2ZhdWx0X2hhbmRsZXJfc2V0dXApLCAoZ3N0X2NoZWNrX2luaXQpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoX2dzdF9jb250cm9sbGVyX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICAoZ3N0X2xmb19jb250cm9sX3NvdXJjZV9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3RfbXVsdGlfcXVldWVfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzogKGdzdF9maWxlX2luZGV4X2NsYXNzX2luaXQpOgoJICBEZWZpbmUgR19QQVJBTV9TVEFUSUNfU1RSSU5HUyBpZiBpdCdzIHVuZGVmaW5lZCAoR0xpYiA8IDIuMTMuMCkgYW5kCgkgIHVzZSBpdCBldmVyeXdoZXJlIGZvciBHUGFyYW1TcGVjcyB0aGF0IHVzZSBzdGF0aWMgc3RyaW5ncyAoaS5lLiBhbGwpLgoJICBUaGlzIGdpdmVzIHVzIGxlc3MgbWVtb3J5IHVzYWdlLCBmZXdlciBhbGxvY2F0aW9ucyBhbmQgdGh1cyBsZXNzCgkgIG1lbW9yeSBkZWZyYWdtZW50YXRpb24uIEZpeGVzIGJ1ZyAjNTIzODA2LgoKMjAwOC0wMy0yMiAxNDo1MToxNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQVBJOiBBZGQgR1NUX0lTX1BBUkFNX1NQRUNfTUlOSV9PQkpFQ1QsIEdTVF9QQVJBTV9TUEVDX01JTklfT0JKRUNUCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfdmFsdWVfZHVwX21pbmlfb2JqZWN0KSwKCSAgKGdzdF9wYXJhbV9zcGVjX21pbmlfb2JqZWN0KToKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFQSTogQWRkIEdTVF9JU19QQVJBTV9TUEVDX01JTklfT0JKRUNULCBHU1RfUEFSQU1fU1BFQ19NSU5JX09CSkVDVAoJICBHU1RfVFlQRV9QQVJBTV9NSU5JX09CSkVDVCBhbmQgZ3N0X3ZhbHVlX2R1cF9taW5pX29iamVjdC4gQWxzbyBtb3ZlCgkgIEdzdFBhcmFtU3BlY01pbmlPYmplY3QgaW50byBhIHB1YmxpYyBoZWFkZXIgZm9yIHRoaXMuCgkgIFRoaXMgbWFrZSBHc3RNaW5pT2JqZWN0IGEgYml0IG1vcmUgY29uc2lzdGVudCB3aXRoIEdPYmplY3QgYW5kIG1ha2VzCgkgIGl0IHBvc3NpYmxlIHRvIGV4dGVuZCB0aGUgcGFyYW0gc3BlY3MuCgkgIGdzdF92YWx1ZV9kdXBfbWluaV9vYmplY3QgaXMgbWFpbmx5IHVzZWZ1bCBmb3Igc2V0X3Byb3BlcnR5IG1ldGhvZHMuCgkgIEZpeGVzIGJ1ZyAjNTIzNzk4LgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyk6CgkgIFByaW50IHNvbWV0aGluZyB1c2VmdWwgZm9yIEdzdE1pbmlPYmplY3QgcHJvcGVydGllcyBhbmQgbm90IGp1c3QKCSAgInVua25vd24gdHlwZSIuCgoyMDA4LTAzLTIxIDE2OjExOjUxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBDYWxsIHRoZSB2ZXJzaW9uIEdTVF9NQUdJQ19CSU5BUllfVkVSU0lPTl9TVFIgdG8gYmUgbW9yZSBjb25zaXN0ZW50IGFuZCBhZGQgaXQgdG8gdGhlIChwcml2YXRlIHBhcnQpIG9mIHRoZSBkb2NzIHRvIGYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfaW5pdGlhbGl6ZV9tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2NoZWNrX21hZ2ljKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgQ2FsbCB0aGUgdmVyc2lvbiBHU1RfTUFHSUNfQklOQVJZX1ZFUlNJT05fU1RSIHRvIGJlIG1vcmUgY29uc2lzdGVudAoJICBhbmQgYWRkIGl0IHRvIHRoZSAocHJpdmF0ZSBwYXJ0KSBvZiB0aGUgZG9jcyB0byBmaXggdGhlIGJ1aWxkLgoKMjAwOC0wMy0yMSAxNTo1MjoxNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lio6IERvbid0IHVzZSBHU1RfTUFKT1JNSU5PUiBmb3IgdGhlIGJpbmFyeSByZWdpc3RyeSB2ZXJzaW9uLiBJbnN0ZWFkIGhhcmRjb2RlIGEgdmFsdWUgdGhhdCBtdXN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9pbml0aWFsaXplX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfY2hlY2tfbWFnaWMpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgRG9uJ3QgdXNlIEdTVF9NQUpPUk1JTk9SIGZvciB0aGUgYmluYXJ5IHJlZ2lzdHJ5IHZlcnNpb24uIEluc3RlYWQKCSAgaGFyZGNvZGUgYSB2YWx1ZSB0aGF0IG11c3QgYmUgY2hhbmdlZCB3aGVuZXZlciB0aGUgZm9ybWF0IGNoYW5nZXMKCSAgaW4gYW4gaW5jb21wYXRpYmxlIHdheS4KCSAgQWxzbyBkb24ndCBHU1RfRVJST1Igd2hlbiB0aGVyZSBpcyBhIHZlcnNpb24gbWlzbWF0Y2gsIGp1c3QKCSAgcmVnZW5lcmF0ZSB0aGUgcmVnaXN0cnkgc2lsZW50bHkuCgoyMDA4LTAzLTIxIDAwOjM1OjEwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQmFjayB0byBkZXZlbG9wbWVudCAtIDAuMTAuMTguMQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQgLSAwLjEwLjE4LjEKCj09PSByZWxlYXNlIDAuMTAuMTggPT09CgoyMDA4LTAzLTIxIDAwOjIwOjU5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMC4xOAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVsZWFzZSAwLjEwLjE4CgoyMDA4LTAzLTIwIDIzOjI2OjA1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA4LTAzLTE4IDEyOjE3OjU4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIDAuMTAuMTcuNCBwcmUtcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAwLjEwLjE3LjQgcHJlLXJlbGVhc2UKCjIwMDgtMDMtMTggMTA6NTQ6NTIgKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJICBBZGQgbmV3IGZ1bmN0aW9uIGdzdF9wb2xsX2ZkX2lnbm9yZWQoKSBmb3IgaW1wcm92ZWQgV2luZG93cyBjb21wYXRpYmlsaXR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcwoJICA8b2xlIGRvdCBhbmRyZSBkb3QgcmF2bmFzIGF0IHRhbmRiZXJnIGRvdCBjb20+CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cG9sbC5jOiAoZ3N0X3BvbGxfd2luc29ja19lcnJvcl90b19lcnJubyksCgkgIChnc3RfcG9sbF91cGRhdGVfd2luc29ja19ldmVudF9tYXNrKSwKCSAgKGdzdF9wb2xsX3ByZXBhcmVfd2luc29ja19hY3RpdmVfc2V0cyksCgkgIChnc3RfcG9sbF9jb2xsZWN0X3dpbnNvY2tfZXZlbnRzKSwgKGdzdF9wb2xsX25ldyksIChnc3RfcG9sbF9mcmVlKSwKCSAgKGdzdF9wb2xsX2FkZF9mZF91bmxvY2tlZCksIChnc3RfcG9sbF9mZF9jdGxfd3JpdGUpLAoJICAoZ3N0X3BvbGxfZmRfY3RsX3JlYWRfdW5sb2NrZWQpLCAoZ3N0X3BvbGxfZmRfaWdub3JlZCksCgkgIChnc3RfcG9sbF9mZF9oYXNfZXJyb3IpLCAoZ3N0X3BvbGxfZmRfY2FuX3JlYWRfdW5sb2NrZWQpLAoJICAoZ3N0X3BvbGxfY2hlY2tfY3RybF9jb21tYW5kcyksIChnc3RfcG9sbF93YWl0KToKCSAgKiBnc3QvZ3N0cG9sbC5oOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IGZ1bmN0aW9uIGdzdF9wb2xsX2ZkX2lnbm9yZWQoKSBmb3IgaW1wcm92ZWQgV2luZG93cwoJICBjb21wYXRpYmlsaXR5LgoJICBWYXJpb3VzIG1pbm9yIGZpeGVzIGFuZCBjbGVhbnVwcy4gU2VlICM1MjA4MDguCgoyMDA4LTAzLTE3IDEwOjIxOjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZGV4Lio6IERvbid0IGZyZWUga2V5IHN0cmluZ3Mgd2hpY2ggd2UgZG9uJ3Qgb3duLiBGaXhlcyBjcmFzaCBpbiBnc3RfaW5kZXhfZW50cnlfZnJlZSgpICgjNTIyNzQxKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfZW50cnlfZnJlZSk6CgkgICogZ3N0L2dzdGluZGV4Lmg6CgkgIERvbid0IGZyZWUga2V5IHN0cmluZ3Mgd2hpY2ggd2UgZG9uJ3Qgb3duLiBGaXhlcyBjcmFzaCBpbgoJICBnc3RfaW5kZXhfZW50cnlfZnJlZSgpICgjNTIyNzQxKS4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5kZXguYzogKHRlc3RfaW5kZXhfZW50cmllcyksCgkgIChnc3RfaW5kZXhfc3VpdGUpLCAoZ3N0X2luZGV4KToKCSAgQWRkIHVuaXQgdGVzdCBmb3IgdGhlIGFib3ZlLgoKMjAwOC0wMy0xMSAxNDowOTo0NiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IFJlbW92ZSBzeW1ib2xzIHRoYXQgd2VyZSByZW1vdmVkIHJlY2VudGx5LiBGaXhlcyBidWcgIzUyMTc0MC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIFJlbW92ZSBzeW1ib2xzIHRoYXQgd2VyZSByZW1vdmVkIHJlY2VudGx5LiBGaXhlcyBidWcgIzUyMTc0MC4KCjIwMDgtMDMtMTEgMDA6MjQ6MTggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgMC4xMC4xNy4zIHByZS1yZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIDAuMTAuMTcuMyBwcmUtcmVsZWFzZQoKMjAwOC0wMy0xMSAwMDoyMzowMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IFJlbGVhc2UgMC4xMC4xNy4zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgUmVsZWFzZSAwLjEwLjE3LjMKCjIwMDgtMDMtMDcgMTU6Mzk6NDUgKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJICBSZW1vdmUgR3N0UG9sbE1vZGUgZnJvbSB0aGUgQVBJLCBpdCBkb2VzIG5vdCBtYWtlIHNlbnNlIHRvIGxldCB0aGUgYXBwbGljYXRpb24gY29udHJvbCB0aGlzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcwoJICA8b2xlIGRvdCBhbmRyZSBkb3QgcmF2bmFzIGF0IHRhbmRiZXJnIGRvdCBjb20+CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cG9sbC5jOiAoZmluZF9pbmRleCksIChnc3RfcG9sbF9mcmVlX3dpbnNvY2tfZXZlbnQpLAoJICAoZ3N0X3BvbGxfdXBkYXRlX3dpbnNvY2tfZXZlbnRfbWFzayksIChnc3RfcG9sbF9uZXcpLAoJICAoZ3N0X3BvbGxfZnJlZSksIChnc3RfcG9sbF9mZF9pbml0KSwgKGdzdF9wb2xsX2FkZF9mZF91bmxvY2tlZCksCgkgIChnc3RfcG9sbF9yZW1vdmVfZmQpLCAoZ3N0X3BvbGxfZmRfY3RsX3dyaXRlKSwKCSAgKGdzdF9wb2xsX2ZkX2N0bF9yZWFkX3VubG9ja2VkKSwgKGdzdF9wb2xsX2ZkX2hhc19jbG9zZWQpLAoJICAoZ3N0X3BvbGxfZmRfaGFzX2Vycm9yKSwgKGdzdF9wb2xsX2ZkX2Nhbl9yZWFkX3VubG9ja2VkKSwKCSAgKGdzdF9wb2xsX2ZkX2Nhbl93cml0ZSksIChnc3RfcG9sbF93YWl0KSwKCSAgKGdzdF9wb2xsX3NldF9jb250cm9sbGFibGUpLCAoZ3N0X3BvbGxfcmVzdGFydCksCgkgIChnc3RfcG9sbF9zZXRfZmx1c2hpbmcpOgoJICAqIGdzdC9nc3Rwb2xsLmg6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IChnc3RfbmV0X2NsaWVudF9jbG9ja19uZXcpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzogKGdzdF9uZXRfdGltZV9wcm92aWRlcl9zdGFydCksCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfbmV3KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3Npbmtfc3RhcnQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfc3RhcnQpOgoJICAqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9sbHN0cmVzcy5jOiAobWFpbik6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBvbGwuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9wb2xsX3N1aXRlKToKCSAgUmVtb3ZlIEdzdFBvbGxNb2RlIGZyb20gdGhlIEFQSSwgaXQgZG9lcyBub3QgbWFrZSBzZW5zZSB0byBsZXQgdGhlCgkgIGFwcGxpY2F0aW9uIGNvbnRyb2wgdGhpcy4KCSAgQWRkIHN1cHBvcnQgZm9yIFdpbjMyLgoJICBGaXggdGhlIHRlc3RzdWl0ZS4gRml4ZXMgIzUyMDY3MS4KCjIwMDgtMDMtMDcgMTM6MTk6MTIgKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogSW5jbHVkZSBpby5oIGZvciB3cml0ZSgpIGFuZCBjbG9zZSgpIHdoZW4gYnVpbGRpbmcgd2l0aCBNU1ZDLiBGaXhlcyBidWcgIzUyMDg3Ny4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMKCSAgPG9sZSBkb3QgYW5kcmUgZG90IHJhdm5hcyBhdCB0YW5kYmVyZyBkb3QgY29tPgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBJbmNsdWRlIGlvLmggZm9yIHdyaXRlKCkgYW5kIGNsb3NlKCkgd2hlbiBidWlsZGluZyB3aXRoIE1TVkMuIEZpeGVzCgkgIGJ1ZyAjNTIwODc3LgoKMjAwOC0wMy0wNyAxMToxMjo1OSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgTW92ZSByZWdpc3RyeSBiYWNrZW5kIEFQSSB0byBwcml2YXRlIGhlYWRlcnMgd2hlcmUgd2UgY2FuLiBBZGQgZml4bWUtMC4xMSBjb21tZW50cyBmb3IgdGhlIG90aGVycy4gQWRkIHN0dWJzIGZvciB0aGUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgICogd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOgoJICBNb3ZlIHJlZ2lzdHJ5IGJhY2tlbmQgQVBJIHRvIHByaXZhdGUgaGVhZGVycyB3aGVyZSB3ZSBjYW4uIEFkZAoJICBmaXhtZS0wLjExIGNvbW1lbnRzIGZvciB0aGUgb3RoZXJzLiBBZGQgc3R1YnMgZm9yIHRoZSB4bWwgYmFja2VuZCB3aGVuCgkgIHVzaW5nIHRoZSBiaW5hcnkgdG8gZW5zdXJlIHRoZXkgZnVuY3Rpb25zIGV4aXN0cyAodGhleSBzaG91bGQgbm90IGJlCgkgIHVzZWQgdGhvdWdoKS4gRml4ZXMgIzUyMDc1Ni4KCjIwMDgtMDMtMDQgMDA6MTQ6NTIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgMC4xMC4xNy4yIHByZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIDAuMTAuMTcuMiBwcmVsZWFzZQoKMjAwOC0wMy0wMyAxODo0MjowNCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIFN3aXRjaCB0byB1c2luZyBwb3J0YWJsIGdzaXplL2dzc2l6ZSBpbnN0ZWFkIG9mIHNpemVfdC9zc2l6ZV90CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAoZ3N0X3JlZ2lzdHJ5X3NhdmUpOgoJICAqIGdzdC9nc3R1cmkuYzogKHVuZXNjYXBlX3N0cmluZyksIChnc3RfdXJpX2hhc19wcm90b2NvbCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19vcGVuX2ZpbGUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX21hcF9yZWdpb24pLAoJICAoZ3N0X2ZpbGVfc3JjX21hcF9zbWFsbF9yZWdpb24pLCAoZ3N0X2ZpbGVfc3JjX2NyZWF0ZV9tbWFwKToKCSAgU3dpdGNoIHRvIHVzaW5nIHBvcnRhYmwgZ3NpemUvZ3NzaXplIGluc3RlYWQgb2Ygc2l6ZV90L3NzaXplX3QKCSAgRml4ZXMgIzUyMDE1MgoKMjAwOC0wMy0wMyAxODoxNDozMyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IEltcG9ydCBnc3RfcHJpdmF0ZS5oIGJlZm9yZSBhbnkgb3RoZXIgaGVhZGVyIHRoYXQgbWlnaHQgaW5jbHVkZSBvdGhlciBnbGliIGhlYWRlcnMuIFRoaXMgZml4ZXMgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBJbXBvcnQgZ3N0X3ByaXZhdGUuaCBiZWZvcmUgYW55IG90aGVyIGhlYWRlciB0aGF0IG1pZ2h0IGluY2x1ZGUgb3RoZXIKCSAgZ2xpYiBoZWFkZXJzLiBUaGlzIGZpeGVzIHRoZSBidWlsZCBvbiB3aW5kb3dzIHVzaW5nIG5hdGl2ZSBjb21waWxlcnMuCgoyMDA4LTAzLTAzIDE0OjQ4OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOiBBZGQgaGVyZSB0b28sIGp1c3QgZm9yIGNvbXBsZXRlbmVzcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOgoJICBBZGQgaGVyZSB0b28sIGp1c3QgZm9yIGNvbXBsZXRlbmVzcy4KCjIwMDgtMDMtMDMgMTQ6NDM6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBGaXggYnJva2VuIHVzZSBvZiBjb25maWcuaC1kZWZpbmVkIHByZXByb2Nlc3NvciBkaXJlY3RpdmUgaW4gYSBwdWJsaWMgaGVhZGVyIGZpbGUuIEFkZCBhIGNvcnJlc3BvbmRpbmcgZGVmaW5lIHRvIGdzdGMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgRml4IGJyb2tlbiB1c2Ugb2YgY29uZmlnLmgtZGVmaW5lZCBwcmVwcm9jZXNzb3IgZGlyZWN0aXZlIGluIGEgcHVibGljCgkgIGhlYWRlciBmaWxlLiBBZGQgYSBjb3JyZXNwb25kaW5nIGRlZmluZSB0byBnc3Rjb25maWcuaCwgc2luY2Ugd2UgY2FuJ3QKCSAgcmVhbGx5IHJlbW92ZSB0aG9zZSBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgZnJvbSB0aGUgaGVhZGVyIGZpbGUgbm93CgkgIChvciBjYW4gd2U/IGFuZCB3aHkgYXJlIHRoZXkgdGhlcmUgaW4gdGhlIGZpcnN0IHBsYWNlPykuCgoyMDA4LTAzLTAzIDEwOjA3OjIxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmMgKEdTVF9TVEFSVF9URVNUKTogQWRkIGEgY2hlY2sgZm9yIHRoZSBuZXcgd2FybmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMDMtMDMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jIChHU1RfU1RBUlRfVEVTVCk6IEFkZCBhIGNoZWNrIGZvcgoJICB0aGUgbmV3IHdhcm5pbmcuCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jIChnc3Rfc3RydWN0dXJlX2Zyb21fc3RyaW5nKTogV2FybiBpZgoJICBzdHJ1Y3R1cmVfZnJvbV9zdHJpbmcgZGlkbid0IGNvbnN1bWUgdGhlIHdob2xlIHN0cmluZywgYnV0IHRoZQoJICBjYWxsZXIgZGlkIG5vdCBwcm92aWRlIGFuIGVuZCBwb2ludGVyLgoKMjAwOC0wMy0wMSAxMToyMTozMCArMDAwMCAgRmFicml6aW8gR2VubmFyaSA8ZmFicml6aW8uZ2VAdGlzY2FsaS5pdD4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBTdHJpbmdzIGFsbG9jYXRlZCBieSBsaWJ4bWwyIHNob3VsZCBiZSBmcmVlZCB3aXRoIHhtbEZyZWUoKSwgbm90IHdpdGggZ19mcmVlKCkuIEZpeGVzIGlzc3VlcyBvbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEZhYnJpemlvIEdlbm5hcmkgPGZhYnJpemlvLmdlIGF0IHRpc2NhbGkgaXQ+CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChyZWFkX3N0cmluZyksIChsb2FkX2ZlYXR1cmUpOgoJICBTdHJpbmdzIGFsbG9jYXRlZCBieSBsaWJ4bWwyIHNob3VsZCBiZSBmcmVlZCB3aXRoIHhtbEZyZWUoKSwgbm90CgkgIHdpdGggZ19mcmVlKCkuIEZpeGVzIGlzc3VlcyBvbiB3aW5kb3dzIGluIGNlcnRhaW4gY29udGV4dHMgKCM1MTk2OTgpLgoKMjAwOC0wMi0yOSAxODozODo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbnRlcmZhY2UuYzogRG9uJ3QgY3Jhc2ggaWYgdGhlIGVsZW1lbnQgc3VwcG9ydHMgdGhlIGludGVyZmFjZSBxdWVyaWVkLCBidXQgZG9lcyBub3QgaW1wbGVtZW50IEdzdEltcGxlbWVudHNJbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW50ZXJmYWNlLmM6IChnc3RfZWxlbWVudF9pbXBsZW1lbnRzX2ludGVyZmFjZSk6CgkgIERvbid0IGNyYXNoIGlmIHRoZSBlbGVtZW50IHN1cHBvcnRzIHRoZSBpbnRlcmZhY2UgcXVlcmllZCwgYnV0IGRvZXMKCSAgbm90IGltcGxlbWVudCBHc3RJbXBsZW1lbnRzSW50ZXJmYWNlLiBGaXhlcyAjNTE5NTg0LgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbnRlcmZhY2UuYzoKCSAgQWRkIHVuaXQgdGVzdCBmb3IgdGhlIGFib3ZlLgoKMjAwOC0wMi0yOSAxNTozOTo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU21hbGwgZG9jIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KToKCSAgU21hbGwgZG9jIHVwZGF0ZS4KCjIwMDgtMDItMjkgMTU6MjI6MzQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBJbXByb3ZlIHNvbWUgY29tbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9zZWVrKSwKCSAgKGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lKToKCSAgSW1wcm92ZSBzb21lIGNvbW1lbnQuCgkgIFVwZGF0ZSB2YXJpYWJsZXMgd2hlcmUgaXQgbWFrZXMgbW9yZSBzZW5zZS4KCjIwMDgtMDItMjkgMTQ6MjM6MTcgKzAwMDAgIFJlbmUgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkgIGdzdC9nc3R1cmkuYzogVXNlIHRoZSBnZXRfcHJvdG9jb2xzX2Z1bGwgdmZ1bmMgaWYgZ2V0X3Byb3RvY29scyBpcyBOVUxMLiAgRml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHVyaS5jOiAoZ3N0X3VyaV9oYW5kbGVyX2dldF9wcm90b2NvbHMpOgoJICBVc2UgdGhlIGdldF9wcm90b2NvbHNfZnVsbCB2ZnVuYyBpZiBnZXRfcHJvdG9jb2xzIGlzIE5VTEwuICBGaXhlcwoJICBVUklIYW5kbGVycyBpbXBsZW1lbnRlZCB1c2luZyBsYW5ndWFnZSBiaW5kaW5ncy4KCjIwMDgtMDItMjkgMTM6NTk6MjQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIEFuZCBjb3JyZWN0IGV2ZW4gbW9yZSB2YWxpZCBzcGFyc2Ugd2FybmluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOiAoc2V0dXBfZmFrZXNyYyk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmRzcmMuYzogKHNldHVwX2Zkc3JjKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOiAoc2V0dXBfZmlsZXNpbmspOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzogKHNldHVwX2ZpbGVzcmMpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6IChzZXR1cF9pZGVudGl0eSk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IChzZXR1cCksICh0ZWFyZG93bik6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOiAocHVsbF9tZXNzYWdlcyk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzogKG15X2Zvb19pbml0KToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6ICh0aHJlYWRfbmFtZV9vYmplY3QpLAoJICAoZ3N0X29iamVjdF9zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cG9sbC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YXNrLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9ocHBhLmg6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGMzMi5oOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjNjQuaDoKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOiAoY3JlYXRlX2FuZF9maWxsX2FkYXB0ZXIpOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9nc3RuZXRjbGllbnRjbG9jay5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaHBwYS5oOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2kzODYuaDoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9wcGMzMi5oOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3BwYzY0Lmg6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfeDg2XzY0Lmg6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzoKCSAgQW5kIGNvcnJlY3QgZXZlbiBtb3JlIHZhbGlkIHNwYXJzZSB3YXJuaW5ncy4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIGdzdF9wb2xsX2ZkX2luaXQgdG8gdGhlIGxpc3Qgb2Ygc3ltYm9scy4KCjIwMDgtMDItMjkgMTI6NDE6MzMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIENvcnJlY3QgYWxsIHJlbGV2YW50IHdhcm5pbmdzIGZvdW5kIGJ5IHRoZSBzcGFyc2Ugc2VtYW50aWMgY29kZSBhbmFseXplci4gVGhpcyBpbmNsdWRlIG1hcmtpbmcgc2V2ZXJhbCBzeW1ib2xzIHN0YXRpYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19yZWFkX2J1ZmZlcik6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19sb2dfbWVzc2FnZV9mdW5jKSwKCSAgKGdzdF9jaGVja19sb2dfY3JpdGljYWxfZnVuYyksIChnc3RfY2hlY2tfZHJvcF9idWZmZXJzKSwKCSAgKGdzdF9jaGVja19lbGVtZW50X3B1c2hfYnVmZmVyX2xpc3QpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfZ2V0KSwKCSAgKGdzdF9jb250cm9sbGVyX2dldF90eXBlKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOiAoZ3N0X29iamVjdF9jb250cm9sX3Byb3BlcnRpZXMpLAoJICAoZ3N0X29iamVjdF9nZXRfY29udHJvbGxlciksIChnc3Rfb2JqZWN0X2dldF9jb250cm9sX3NvdXJjZSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfbmV3KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgKGdzdF9sZm9fY29udHJvbF9zb3VyY2VfbmV3KToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIChnc3RfZHBfZXZlbnRfZnJvbV9wYWNrZXRfMF8yKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6IChfZmlsZV9pbmRleF9pZF9zYXZlX3htbCksCgkgIChnc3RfZmlsZV9pbmRleF9hZGRfYXNzb2NpYXRpb24pOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvbGxzdHJlc3MuYzogKG1lc3Nfc29tZV9tb3JlKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOiAoc2V0dXBfcXVldWUpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzogKHNldHVwKSwgKHRlYXJkb3duKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc3VpdGUpOgoJICAqIHRlc3RzL2V4YW1wbGVzL2FkYXB0ZXIvYWRhcHRlcl90ZXN0LmM6CgkgICogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOiAobWFrZV9waXBlbGluZSk6CgkgICogdGVzdHMvZXhhbXBsZXMveG1sL2NyZWF0ZXhtbC5jOgoJICAqIHRlc3RzL2V4YW1wbGVzL3htbC9ydW54bWwuYzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICAqIHRvb2xzL2dzdC1ydW4uYzoKCSAgQ29ycmVjdCBhbGwgcmVsZXZhbnQgd2FybmluZ3MgZm91bmQgYnkgdGhlIHNwYXJzZSBzZW1hbnRpYyBjb2RlCgkgIGFuYWx5emVyLiBUaGlzIGluY2x1ZGUgbWFya2luZyBzZXZlcmFsIHN5bWJvbHMgc3RhdGljLCB1c2luZwoJICBOVUxMIGluc3RlYWQgb2YgMCBmb3IgcG9pbnRlcnMsIG5vdCB1c2luZyB2YXJpYWJsZSBzaXplZCBhcnJheXMKCSAgb24gdGhlIHN0YWNrLCBtb3ZpbmcgdmFyaWFibGUgZGVjbGFyYXRpb25zIHRvIHRoZSBiZWdpbm5pbmcgb2YKCSAgYSBibG9jayBhbmQgdXNpbmcgImZvbyAodm9pZCkiIGluc3RlYWQgb2YgImZvbyAoKSIgZm9yIGRlY2xhcmF0aW9ucy4KCjIwMDgtMDItMjkgMTI6MDU6NTUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBEb24ndCByZXNldCBHc3RQb2xsRkRzLCB0aGlzIGlzIG5vdCBuZWNlc3NhcnkgYXQgYWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfdXBkYXRlX2ZkKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX3VwZGF0ZV9mZCk6CgkgIERvbid0IHJlc2V0IEdzdFBvbGxGRHMsIHRoaXMgaXMgbm90IG5lY2Vzc2FyeSBhdCBhbGwuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBvbGwuYzogKHRlc3RfcG9sbF93YWl0KSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKGRlbGF5ZWRfcmVzdGFydCksIChkZWxheWVkX2NvbnRyb2wpOgoJICBVc2UgR1NUX1BPTExfRkRfSU5JVC4KCjIwMDgtMDItMjkgMTE6NTc6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cG9sbC4qOiBBZGRlZCBTaW5jZSB0YWdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cG9sbC5jOiAoZ3N0X3BvbGxfZmRfaW5pdCk6CgkgICogZ3N0L2dzdHBvbGwuaDoKCSAgQWRkZWQgU2luY2UgdGFncy4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfdXBkYXRlX2ZkKToKCSAgVXNlIHNvbWUgbW9yZSBpbml0IG1hY3Jvcy4KCjIwMDgtMDItMjkgMTE6MjA6MDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogVXNlIGluaXQgbWFjcm9zIGFuZCBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19zdGFydCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY191cGRhdGVfZmQpOgoJICBVc2UgaW5pdCBtYWNyb3MgYW5kIGZ1bmN0aW9ucy4KCjIwMDgtMDItMjkgMTE6MDA6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgSU5JVCBtYWNybyBhbmQgX2luaXQgbWV0aG9kIGZvciBpbml0aWFsaXppbmcgdGhlIEdzdFBvbGxGRC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cG9sbC5jOiAoZ3N0X3BvbGxfZmRfaW5pdCk6CgkgICogZ3N0L2dzdHBvbGwuaDoKCSAgQWRkIElOSVQgbWFjcm8gYW5kIF9pbml0IG1ldGhvZCBmb3IgaW5pdGlhbGl6aW5nIHRoZSBHc3RQb2xsRkQuCgoyMDA4LTAyLTI4IDE5OjU4OjI2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBJbml0aWFsaXplIHNvbWUgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMgYXMgc3BvdHRlZCBieSB2YWxncmluZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX3N0YXJ0KSwKCSAgKGdzdF9mZF9zaW5rX3VwZGF0ZV9mZCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY191cGRhdGVfZmQpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwb2xsLmM6ICh0ZXN0X3BvbGxfd2FpdCksIChHU1RfU1RBUlRfVEVTVCksCgkgIChkZWxheWVkX3Jlc3RhcnQpLCAoZGVsYXllZF9jb250cm9sKToKCSAgSW5pdGlhbGl6ZSBzb21lIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzIGFzIHNwb3R0ZWQgYnkgdmFsZ3JpbmQuCgoyMDA4LTAyLTI4IDE1OjI1OjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvYmVuY2htYXJrcy86IEFkZCBwb2xsIHN0cmVzcyB0ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9sbHN0cmVzcy5jOiAobWVzc19zb21lX21vcmUpLCAocnVuX3Rlc3QpLAoJICAobWFpbik6CgkgIEFkZCBwb2xsIHN0cmVzcyB0ZXN0LgoKMjAwOC0wMi0yOCAxMDoxODowMiArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogUG9ydCB0byBHc3RQb2xsLiBTZWUgIzUwNTQxNy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgPHBraiBhdCBheGlzIGRvdCBjb20+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX3JlbmRlciksCgkgIChnc3RfZmRfc2lua19zdGFydCksIChnc3RfZmRfc2lua19zdG9wKSwgKGdzdF9mZF9zaW5rX3VubG9jayksCgkgIChnc3RfZmRfc2lua191bmxvY2tfc3RvcCksIChnc3RfZmRfc2lua191cGRhdGVfZmQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY191cGRhdGVfZmQpLAoJICAoZ3N0X2ZkX3NyY19zdGFydCksIChnc3RfZmRfc3JjX3N0b3ApLCAoZ3N0X2ZkX3NyY191bmxvY2spLAoJICAoZ3N0X2ZkX3NyY191bmxvY2tfc3RvcCksIChnc3RfZmRfc3JjX2NyZWF0ZSksCgkgIChnc3RfZmRfc3JjX3VyaV9zZXRfdXJpKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkgIFBvcnQgdG8gR3N0UG9sbC4gU2VlICM1MDU0MTcuCgoyMDA4LTAyLTI3IDIxOjE4OjMzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOiBBZGQgbmV3IGdzdF9wb2xsXyBzeW1ib2xzIHRvIHdpbjMyIGRlZnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IGdzdF9wb2xsXyBzeW1ib2xzIHRvIHdpbjMyIGRlZnMuCgoyMDA4LTAyLTI3IDE5OjAxOjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgVXNlIGEgcHJpdmF0ZSBzdHVjdCB0byBub3QgYnJlYWsgQUJJLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfY2xhc3NfaW5pdCksIChnc3RfbmV0X2NsaWVudF9jbG9ja19pbml0KSwKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2ZpbmFsaXplKSwgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2RvX3NlbGVjdCksCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja190aHJlYWQpLCAoZ3N0X25ldF9jbGllbnRfY2xvY2tfc3RhcnQpLAoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfc3RvcCksIChnc3RfbmV0X2NsaWVudF9jbG9ja19uZXcpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9jbGFzc19pbml0KSwgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9pbml0KSwKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9maW5hbGl6ZSksIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfdGhyZWFkKSwKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9zdGFydCksIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfc3RvcCksCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfbmV3KToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkgIFVzZSBhIHByaXZhdGUgc3R1Y3QgdG8gbm90IGJyZWFrIEFCSS4KCjIwMDgtMDItMjcgMTg6Mjc6NTkgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgbGlicy9nc3QvbmV0LzogTWFzc2l2ZSBjb2RlIHJlbW92YWwgYW5kIGNsZWFudXBzIGJlY2F1c2Ugb2YgR3N0UG9sbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgPHBraiBhdCBheGlzIGRvdCBjb20+CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IChnc3RfbmV0X2NsaWVudF9jbG9ja19pbml0KSwKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2ZpbmFsaXplKSwgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2RvX3NlbGVjdCksCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja190aHJlYWQpLCAoZ3N0X25ldF9jbGllbnRfY2xvY2tfc3RhcnQpLAoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfc3RvcCksIChnc3RfbmV0X2NsaWVudF9jbG9ja19uZXcpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzogKGdzdF9uZXRfdGltZV9wcm92aWRlcl9pbml0KSwKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9maW5hbGl6ZSksIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfdGhyZWFkKSwKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9zdGFydCksIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfc3RvcCksCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfbmV3KToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkgIE1hc3NpdmUgY29kZSByZW1vdmFsIGFuZCBjbGVhbnVwcyBiZWNhdXNlIG9mIEdzdFBvbGwuCgkgIEZpeGVzICM1MDU0MTcuCgoyMDA4LTAyLTI3IDE4OjAwOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY29uZmlndXJlLmFjOiBBZGQgY2hlY2tzIGZvciBwb2xsLCBwcG9sbCBhbmQgcHNlbGVjdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBBZGQgY2hlY2tzIGZvciBwb2xsLCBwcG9sbCBhbmQgcHNlbGVjdC4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBkb2NzIGZvciBHc3RQb2xsLgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdHBvbGwuYzogKGZpbmRfaW5kZXgpLCAoc2VsZWN0YWJsZV9mZHMpLAoJICAocG9sbGFibGVfdGltZW91dCksIChjaG9vc2VfbW9kZSksIChwb2xsZmRfdG9fZmRfc2V0KSwKCSAgKGZkX3NldF90b19wb2xsZmQpLCAoZ3N0X3BvbGxfbmV3KSwgKGdzdF9wb2xsX2ZyZWUpLAoJICAoZ3N0X3BvbGxfc2V0X21vZGUpLCAoZ3N0X3BvbGxfZ2V0X21vZGUpLAoJICAoZ3N0X3BvbGxfYWRkX2ZkX3VubG9ja2VkKSwgKGdzdF9wb2xsX2FkZF9mZCksCgkgIChnc3RfcG9sbF9yZW1vdmVfZmQpLCAoZ3N0X3BvbGxfZmRfY3RsX3dyaXRlKSwKCSAgKGdzdF9wb2xsX2ZkX2N0bF9yZWFkX3VubG9ja2VkKSwgKGdzdF9wb2xsX2ZkX2N0bF9yZWFkKSwKCSAgKGdzdF9wb2xsX2ZkX2hhc19jbG9zZWQpLCAoZ3N0X3BvbGxfZmRfaGFzX2Vycm9yKSwKCSAgKGdzdF9wb2xsX2ZkX2Nhbl9yZWFkX3VubG9ja2VkKSwgKGdzdF9wb2xsX2ZkX2Nhbl9yZWFkKSwKCSAgKGdzdF9wb2xsX2ZkX2Nhbl93cml0ZSksIChnc3RfcG9sbF93YWl0KSwKCSAgKGdzdF9wb2xsX3NldF9jb250cm9sbGFibGUpLCAoZ3N0X3BvbGxfcmVzdGFydCksCgkgIChnc3RfcG9sbF9zZXRfZmx1c2hpbmcpOgoJICAqIGdzdC9nc3Rwb2xsLmg6CgkgIEFkZCBnZW5lcmljIHBvbGwgYWJzdHJhY3Rpb24uIFdlIGlkZWFsbHkgZG9uJ3Qgd2FudCB0byBoYXZlIHRoaXMgaW4gY29yZQoJICBoZXJlIGJ1dCBpbiBnbGliIGludGVhZC4uLgoJICBUaGlzIGNvZGUgd2lsbCBiZSB1c2VkIGluIHZhcmlvdXMgbmV0d29yayBlbGVtZW50cyBhbmQgdWx0aW1hdGVseSBmb3IKCSAgdGhlIG5hbm9zZWNvbmQgcHJlY2lzaW9uIG1vbm90b25pYyBjbG9jayAodGhhdCdzIHdoeSBpdCdzIGhlcmUgaW4gY29yZSkuCgkgIEl0J2xsIGFsbG93IHVzIHRvIGltcGxlbWVudCBjYW5jZWxhYmxlIHNvY2tldCBvcGVyYXRpb25zIGZvciB3aW5kb3dzIHRvby4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cG9sbC5jOiAodGVzdF9wb2xsX3dhaXQpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZGVsYXllZF9zdG9wKSwgKGRlbGF5ZWRfcmVzdGFydCksIChkZWxheWVkX2ZsdXNoKSwKCSAgKGRlbGF5ZWRfY29udHJvbCksIChnc3RfcG9sbF9zdWl0ZSk6CgkgIEFkZCBHc3RQb2xsIHVuaXQgdGVzdC4KCjIwMDgtMDItMjUgMTU6Mzc6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZmlsdGVyLmM6IEltcHJvdmUgZG9jdW1lbnRhdGlvbiBvZiBnc3RfZmlsdGVyX3J1bigpLiBGaXhlcyAjNTE4NjI3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZmlsdGVyLmM6CgkgIEltcHJvdmUgZG9jdW1lbnRhdGlvbiBvZiBnc3RfZmlsdGVyX3J1bigpLiBGaXhlcyAjNTE4NjI3LgoKMjAwOC0wMi0yMyAxNjowMzozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvUkVBRE1FOiBBZGQgYSBmZXcgbGluZXMgYWJvdXQgdGhlIG5ldyAnY2hlY2staW5zcGVjdGVkLXZlcnNpb25zJyB0YXJnZXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvUkVBRE1FOgoJICBBZGQgYSBmZXcgbGluZXMgYWJvdXQgdGhlIG5ldyAnY2hlY2staW5zcGVjdGVkLXZlcnNpb25zJyB0YXJnZXQuCgoyMDA4LTAyLTIxIDEwOjMwOjUwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzogQWRkIHFvcyB0byB0aGUgZXZlbnQgdGVzdC4gUmVuYW1lIHRjYXNlL3RzdWl0ZTsgaXMgbm90IG9ubHkgYWJvdXQgY3VzdG9tIGV2ZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgIEFkZCBxb3MgdG8gdGhlIGV2ZW50IHRlc3QuIFJlbmFtZSB0Y2FzZS90c3VpdGU7IGlzIG5vdCBvbmx5IGFib3V0CgkgIGN1c3RvbSBldmVudHMuCgoyMDA4LTAyLTIxIDEwOjIyOjM2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IEVuc3VyZSB0aGF0IGJ1ZmZlciBtZXRhZGF0YSBpcyB3cml0ZWFibGUsIGJlZm9yZSBtb2RpZnlpbmcuIFNwb3R0ZWQgYnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBFbnN1cmUgdGhhdCBidWZmZXIgbWV0YWRhdGEgaXMgd3JpdGVhYmxlLCBiZWZvcmUgbW9kaWZ5aW5nLiBTcG90dGVkIGJ5CgkgIE1pa2UuCgoyMDA4LTAyLTIwIDE1OjQ0OjMzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLio6IFdoZW4gZHJvcHBpbmcgYnVmZmVycyBpbiBsZWFreSBtb2RlcywgbWFyayBuZXh0IGJ1ZmZlcnMgd2Ugc2VudCBhcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBXaGVuIGRyb3BwaW5nIGJ1ZmZlcnMgaW4gbGVha3kgbW9kZXMsIG1hcmsgbmV4dCBidWZmZXJzIHdlIHNlbnQgYXMKCSAgRElTQ09OVC4KCjIwMDgtMDItMjAgMTI6MzE6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogQWxzbywgaWYgbW1hcCgpIGZhaWxzIHRoYXQgd291bGQgYmUgYSBSRUFEIGVycm9yLCBub3QgT1BFTl9SRUFELgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19tYXBfcmVnaW9uKToKCSAgQWxzbywgaWYgbW1hcCgpIGZhaWxzIHRoYXQgd291bGQgYmUgYSBSRUFEIGVycm9yLCBub3QgT1BFTl9SRUFELgoKMjAwOC0wMi0yMCAxMjoyNjoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBSZW1vdmUgR3N0QnVmZmVyU3RvcmUsIG5vIGlkZWEgd2h5IHdlIHdlcmUgc3RpbGwgYnVpbGRpbmcgaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RidWZmZXJzdG9yZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0YnVmZmVyc3RvcmUuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICBSZW1vdmUgR3N0QnVmZmVyU3RvcmUsIG5vIGlkZWEgd2h5IHdlIHdlcmUgc3RpbGwgYnVpbGRpbmcgaXQuCgkgIEl0J3Mgbm90IHVzZWQgYW55d2hlcmUgYW5kIHN1cGVyc2VkZWQgYnkgR3N0QWRhcHRlci4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19tYXBfcmVnaW9uKSwKCSAgKGdzdF9maWxlX3NyY19jcmVhdGVfbW1hcCk6CgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzogKGdzdF9maWxlX2luZGV4X2FkZF9hc3NvY2lhdGlvbik6CgkgIFByaW50ZiBmb3JtYXQgZml4ZXMgZm9yIDY0LWJpdCBpbnRlZ2Vycy4KCjIwMDgtMDItMTkgMTM6MDA6MTQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogRG9uJ3Qgc2V0IEdTVF9DQUNIRV9ESVIgYW5kIGFsbG93IHRvIHNldCBpdCBieSBhIGNvbmZpZ3VyZSBwYXJhbWV0ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRG9uJ3Qgc2V0IEdTVF9DQUNIRV9ESVIgYW5kIGFsbG93IHRvIHNldCBpdCBieSBhIGNvbmZpZ3VyZSBwYXJhbWV0ZXIuCgkgIFdlJ3JlIG5vdCBpbiAwLjggdGltZXMgYW55bW9yZS4KCjIwMDgtMDItMTkgMTI6NTY6MjggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suKjogTWFrZSB0aGUgZGVjbGFyYXRpb24gaW4gdGhlIGhlYWRlciBmb3IgZ3N0X2NoZWNrX2VsZW1lbnRfcHVzaF9idWZmZXJfbGlzdCBtYXRjaCB0aGUgaW1wbGVtLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfZHJvcF9idWZmZXJzKSwKCSAgKGdzdF9jaGVja19lbGVtZW50X3B1c2hfYnVmZmVyX2xpc3QpOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIE1ha2UgdGhlIGRlY2xhcmF0aW9uIGluIHRoZSBoZWFkZXIgZm9yCgkgIGdzdF9jaGVja19lbGVtZW50X3B1c2hfYnVmZmVyX2xpc3QgbWF0Y2ggdGhlIGltcGxlbWVudGF0aW9uLgoJICBGaXggdXAgc3BlbGxpbmcsIGdyYW1tYXIgYW5kIHdvcmRpbmcgb2YgdGhlIGRvY3VtZW50YXRpb24gaW4gYSBmZXcKCSAgcGxhY2VzLCBhbmQgYWRkIHRoZSBTaW5jZSBrZXl3b3JkIHRvIG5ldyBBUEkgZnVuY3Rpb25zLgoJICBVc2UgZ19saXN0X2RlbGV0ZV9saW5rIGluc3RlYWQgb2YgZ19saXN0X3JlbW92ZSBpbgoJICBnc3RfY2hlY2tfZHJvcF9idWZmZXJzLCBzaW5jZSBpdCdzIGltbWVhc3VyYWJseSBtb3JlIGVmZmljaWVudC4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFVzZSBuZXcgZ3N0X2NoZWNrX2Ryb3BfYnVmZmVycyBmdW5jdGlvbiB3aGVyZSBhcHByb3ByaWF0ZS4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgc3ltYm9scyBnc3RfY29sbGVjdF9wYWRzX3Rha2VfYnVmZmVyLAoJICBnc3RfY29sbGVjdF9wYWRzX3JlYWRfYnVmZmVyLCBnc3RfaW5kZXhfc2V0X3Jlc29sdmVyX2Z1bGwgdG8gdGhlCgkgIGV4cG9ydHMKCSAgQ2hhbmdlbG9nIHN1cmdlcnkgdG8gYWRkIEFQSSBrZXl3b3JkIHRvIG5ldyBnc3RfY2hlY2sgQVBJLgoKMjAwOC0wMi0xOSAwODowNToxNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L3BhcnNlL2xleC5fZ3N0X3BhcnNlX3l5LnByZS5jOiBVcGRhdGUgcHJlLWdlbmVyYXRlZCBmbGV4IGZpbGVzIHdpdGggZmxleCAyLjMuMzQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9sZXguX2dzdF9wYXJzZV95eS5wcmUuYzogKHl5X2dldF9uZXh0X2J1ZmZlciksCgkgIChfZ3N0X3BhcnNlX3l5ZW5zdXJlX2J1ZmZlcl9zdGFjayksIChfZ3N0X3BhcnNlX3l5bGV4X2luaXRfZXh0cmEpOgoJICBVcGRhdGUgcHJlLWdlbmVyYXRlZCBmbGV4IGZpbGVzIHdpdGggZmxleCAyLjMuMzQuCgoyMDA4LTAyLTE5IDA1OjQ5OjMyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBBZGQgRklYTUUgZm9yIDAuMTEgdG8gbWFrZSBHc3RNaW5pT2JqZWN0Q2xhc3M6OmNvcHkoKSBhIGJpdCBtb3JlIGZyaWVuZGx5IHRvIHN1YmNsYXNzZXMgYW5kIG5vdCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgQWRkIEZJWE1FIGZvciAwLjExIHRvIG1ha2UgR3N0TWluaU9iamVjdENsYXNzOjpjb3B5KCkgYSBiaXQgbW9yZQoJICBmcmllbmRseSB0byBzdWJjbGFzc2VzIGFuZCBub3QgcmVxdWlyZSB0aGVtIHRvIGtub3cgYWxsIGludGVybmFscwoJICBvZiB0aGVpciBwYXJlbnQgY2xhc3MuCgoyMDA4LTAyLTE1IDEzOjE1OjE3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBZGQgc3ViLWJ1ZmZlciBmdW5jdGlvbnMgdG8gY29sbGVjdHBhZHMuIEZpeGVzICM1MTYxODcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgQWRkIHN1Yi1idWZmZXIgZnVuY3Rpb25zIHRvIGNvbGxlY3RwYWRzLiBGaXhlcyAjNTE2MTg3LgoJICBBUEk6IGdzdF9jb2xsZWN0X3BhZHNfdGFrZV9idWZmZXIoKSwgZ3N0X2NvbGxlY3RfcGFkc19yZWFkX2J1ZmZlcigpCgoyMDA4LTAyLTE1IDEyOjMzOjAwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IENvcHkgc2VsZWN0ZWQgYnVmZmVyLWZsYWdzIHdoZW4gY3JlYXRpbmcgc3ViYnVmZmVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICBDb3B5IHNlbGVjdGVkIGJ1ZmZlci1mbGFncyB3aGVuIGNyZWF0aW5nIHN1YmJ1ZmZlcnMuCgkgIEZpeGVzICM1MTYzOTUuCgoyMDA4LTAyLTEyIDEyOjA0OjQzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBQcm9wZXJseSBjaGFpbiB1cCBmaW5hbGl6ZSBmdW5jdGlvbnMgdG8gdGhlIHBhcmVudCBjbGFzcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9jbGFzc19pbml0KSwgKGdzdF9idWZmZXJfZmluYWxpemUpOgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X2NsYXNzX2luaXQpLCAoZ3N0X2V2ZW50X2ZpbmFsaXplKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfY2xhc3NfaW5pdCksCgkgIChnc3RfbWVzc2FnZV9maW5hbGl6ZSk6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfY2xhc3NfaW5pdCksIChnc3RfcXVlcnlfZmluYWxpemUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X21tYXBfYnVmZmVyX2NsYXNzX2luaXQpLAoJICAoZ3N0X21tYXBfYnVmZmVyX2ZpbmFsaXplKToKCSAgUHJvcGVybHkgY2hhaW4gdXAgZmluYWxpemUgZnVuY3Rpb25zIHRvIHRoZSBwYXJlbnQgY2xhc3MuCgoyMDA4LTAyLTExIDE3OjUzOjU3ICswMDAwICBTaWF2YXNoIFNhZmkgPHNpYXZhc2guc2FmaUBnbWFpbC5jb20+CgoJICBnc3QvZ3N0aW5kZXguKjogQWRkIG5ldyBmdW5jdGlvbiB3aXRoIG9wdGlvbiB0byBkaXNwb3NlIG9mIHVzZXJfZGF0YSBpbiByZXNvbHZlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTaWF2YXNoIFNhZmkgPHNpYXZhc2ggZG90IHNhZmkgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvZ3N0aW5kZXguYzogKGdzdF9pbmRleF9maW5hbGl6ZSksIChnc3RfaW5kZXhfc2V0X3Jlc29sdmVyKSwKCSAgKGdzdF9pbmRleF9zZXRfcmVzb2x2ZXJfZnVsbCk6CgkgICogZ3N0L2dzdGluZGV4Lmg6CgkgIEFkZCBuZXcgZnVuY3Rpb24gd2l0aCBvcHRpb24gdG8gZGlzcG9zZSBvZiB1c2VyX2RhdGEgaW4gcmVzb2x2ZXIuCgkgIEFjdHVhbGx5IGNhbGwgdGhlIGRpc3Bvc2UgZnVuY3Rpb24gd2hlbiBmaW5hbGl6aW5nIHRoZSBvYmplY3QgYW5kIG5vdAoJICBqdXN0IHdoZW4gY2hhbmdpbmcgdGhlIHJlc29sdmVyL2ZpbHRlci4KCSAgQVBJOiBHc3RJbmRleDo6Z3N0X2luZGV4X3NldF9yZXNvbHZlcl9mdWxsKCkKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgbmV3IGZ1bmN0aW9uIHRvIGRvY3MuIEZpeGVzICM1MTU0NjkuCgoyMDA4LTAyLTExIDA4OjUzOjA0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0aW5kZXguYzogQ2hhaW4gdXAgZmluYWxpemUgdG8gdGhlIHBhcmVudCBjbGFzcy4gRml4ZXMgbGVha2luZyB0aGUgR3N0T2JqZWN0IG5hbWUgYW5kIG90aGVyIHRoaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfZmluYWxpemUpOgoJICBDaGFpbiB1cCBmaW5hbGl6ZSB0byB0aGUgcGFyZW50IGNsYXNzLiBGaXhlcyBsZWFraW5nIHRoZSBHc3RPYmplY3QKCSAgbmFtZSBhbmQgb3RoZXIgdGhpbmdzLgoKMjAwOC0wMi0xMCAxOTo0ODowNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IEZpeCBKb3NlcCdzIHN1cm5hbWUgaW4gcHJldmlvdXMgY29tbWl0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IEZpeCBKb3NlcCdzIHN1cm5hbWUgaW4gcHJldmlvdXMgY29tbWl0cwoKMjAwOC0wMi0wOCAwMDo1NDoyOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IE1ha2UgRElTQUJMRV9ERVBSRUNBVEVEIGRlZmluZWQgKm9ubHkqIGR1cmluZyBDVlMsIG5vdCBkdXJpbmcgcHJlLXJlbGVhc2VzIG9yIHJlbGVhc2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIE1ha2UgRElTQUJMRV9ERVBSRUNBVEVEIGRlZmluZWQgKm9ubHkqIGR1cmluZyBDVlMsIG5vdCBkdXJpbmcKCSAgcHJlLXJlbGVhc2VzIG9yIHJlbGVhc2VzLgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgQWRkIGdzdC1wbHVnaW5zLWdsCgkgICogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgQ2hhbmdlIG9uZSBvZiB0aGUgc3RlcHMgLSB3ZSBvbmx5IHVwbG9hZCBjb3JlICYgYmFzZSB0byBHbm9tZSBGVFAKCjIwMDgtMDItMDYgMTI6MjE6MDUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3Rjb25maWcuaC5pbjogQWRkICdpZCcgZm9yIGV4YW1wbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgQWRkICdpZCcgZm9yIGV4YW1wbGUuCgkgICogZ3N0L2dzdHBhZC5jOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgIExpbmsgdG8gc2lnbmFscy4gRG9jIGFuZCBjb21tZW50IGZpeGVzLgoKMjAwOC0wMi0wNSAyMToyMjo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IFNvbWUgbWlub3IgZG9jcyBmaXhlczogZml4IHR5cG8sIG1lbnRpb24gdGhhdCBHU1RfRkxPV19SRVNFTkQgaXMgdW51c2VkIGFuZCB1bmltcGxlbWVudGVkOyBmaW5hbGx5LCBpdCBpcyBwbHVnaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmg6IChHU1RfUEFEX0xJTktfU1VDQ0VTU0ZVTCk6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDogKEdzdFBsdWdpbkZlYXR1cmVDbGFzcyk6CgkgIFNvbWUgbWlub3IgZG9jcyBmaXhlczogZml4IHR5cG8sIG1lbnRpb24gdGhhdCBHU1RfRkxPV19SRVNFTkQgaXMKCSAgdW51c2VkIGFuZCB1bmltcGxlbWVudGVkOyBmaW5hbGx5LCBpdCBpcyBwbHVnaW4gZmVhdHVyZXMsIG5vdAoJICBwbHVnaW5zLCB0aGF0IGhhdmUgcmFua3MuCgoyMDA4LTAyLTA1IDE5OjQyOjMxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOiBDbGFyaWZ5IEdzdFJhbmsgcmFuZ2UgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgQ2xhcmlmeSBHc3RSYW5rIHJhbmdlIGRvY3MuCgoyMDA4LTAyLTA1IDE4OjM3OjA4ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3QuYzogQWRkIGEgc2VwYXJhdGUgZ3N0X2RlaW5pdGlhbGl6ZWQgdGhhdCBwcmV2ZW50cyBnc3RfaW5pdCgpIGZyb20gYmVpbmcgY2FsbGVkIGFmdGVyIGdzdF9kZWluaXQoKS4gIEZpeGVzICM1MC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IEFkZCBhIHNlcGFyYXRlIGdzdF9kZWluaXRpYWxpemVkIHRoYXQgcHJldmVudHMKCSAgZ3N0X2luaXQoKSBmcm9tIGJlaW5nIGNhbGxlZCBhZnRlciBnc3RfZGVpbml0KCkuICBGaXhlcyAjNTA5NTU5CgoyMDA4LTAyLTA1IDE0OjE1OjE1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBSZXZlcnQgcHJldmlvdXMgY2hhbmdlcyB0byB0aGUgYmVoYXZpb3VyIG9mIEdzdFBhZFRlbXBsYXRlcywgZXRjIGFuZCB0aGUgcG9zc2libGl0eSB0byBjYWxsIHRoZW0gaW4gY2xhc3NfaW5pdCBhcyBpdCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9nZXRfdHlwZSksIChnc3RfYmluX2Jhc2VfaW5pdCksCgkgIChnc3RfYmluX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9iYXNlX2NsYXNzX2luaXQpLAoJICAoZ3N0X2VsZW1lbnRfY2xhc3NfYWRkX3BhZF90ZW1wbGF0ZSk6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6IChnc3RfcGFkX3RlbXBsYXRlX2luaXQpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2dldF90eXBlKSwKCSAgKGdzdF9waXBlbGluZV9iYXNlX2luaXQpLCAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfdHlwZSksCgkgIChnc3RfYmFzZV9zcmNfYmFzZV9pbml0KSwgKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX2Jhc2VfaW5pdCksCgkgIChnc3RfY2Fwc2ZpbHRlcl9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2Jhc2VfaW5pdCksCgkgIChnc3RfZmFrZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2Jhc2VfaW5pdCksCgkgIChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX2Jhc2VfaW5pdCksCgkgIChnc3RfZmRfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2Jhc2VfaW5pdCksCgkgIChnc3RfZmRfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfYmFzZV9pbml0KSwKCSAgKGdzdF9maWxlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfYmFzZV9pbml0KSwKCSAgKGdzdF9maWxlX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfYmFzZV9pbml0KSwKCSAgKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9iYXNlX2luaXQpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9iYXNlX2luaXQpLAoJICAoZ3N0X3F1ZXVlX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2Jhc2VfaW5pdCksCgkgIChnc3RfdGVlX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYmFzZV9pbml0KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jbGFzc19pbml0KToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc3VpdGUpOgoJICBSZXZlcnQgcHJldmlvdXMgY2hhbmdlcyB0byB0aGUgYmVoYXZpb3VyIG9mIEdzdFBhZFRlbXBsYXRlcywgZXRjCgkgIGFuZCB0aGUgcG9zc2libGl0eSB0byBjYWxsIHRoZW0gaW4gY2xhc3NfaW5pdCBhcyBpdCBicmVha3MgdG9vCgkgIG1hbnkgZWxlbWVudHMuIFJlb3BlbnMgYnVnICM0OTE1MDEuCgkgIFNob3VsZCBiZSBhcHBsaWVkIGFnYWluIGZvciAwLjExLCB0aHVzIGFkZGVkIGEgZmV3IEZJWE1FIDAuMTEgYXQKCSAgc2V2ZXJhbCBwbGFjZXMuCgoyMDA4LTAyLTA1IDA5OjI0OjE4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IER1bXAgb25lIGdyYXBoIHBlciBwaXBlbGluZSBzdGF0ZS1jaGFuZ2UgYW5kIHN0YXRlIGNoYW5nZSBuYW1lIChpZiBHU1RfREVCVUdfRFVNUF9ET1RfRElSIGlzIHNldCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgRHVtcCBvbmUgZ3JhcGggcGVyIHBpcGVsaW5lIHN0YXRlLWNoYW5nZSBhbmQgc3RhdGUgY2hhbmdlIG5hbWUKCSAgKGlmIEdTVF9ERUJVR19EVU1QX0RPVF9ESVIgaXMgc2V0KS4KCjIwMDgtMDItMDQgMTQ6MTQ6NDIgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBCZSBzdXJlIHRoYXQgd2UgaGF2ZSBhIG5ldyBjb3B5IG9mIHRoZSBjYXBzIGFuZCBub3QgcmVmZmVkIGNhcHMgZnJvbSBhIHRlbXBsYXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIEJlIHN1cmUgdGhhdCB3ZSBoYXZlIGEgbmV3IGNvcHkgb2YgdGhlIGNhcHMgYW5kIG5vdAoJICByZWZmZWQgY2FwcyBmcm9tIGEgdGVtcGxhdGUKCjIwMDgtMDItMDMgMTI6MDQ6MzcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIERvbid0IHVzZSBiYXNlX2luaXQgd2hlcmUgbm90IGFic29sdXRlbHkgbmVjZXNzYXJ5LiBGb3IgZXhhbXBsZSBpdCdzIG5vdCBuZWNlc3NhcnkgYW55bW9yZSBmb3IgYWRkaW5nIHBhZCB0ZW1wbGF0ZXMgby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2dldF90eXBlKSwgKGdzdF9iaW5fY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfZ2V0X3R5cGUpLAoJICAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3R5cGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfdHlwZSksCgkgIChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3R5cGUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfYmFzZV9pbml0KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzogKGdzdF9kYXRhX3F1ZXVlX2dldF90eXBlKToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfYmFzZV9pbml0KSwKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX2Jhc2VfaW5pdCksCgkgIChnc3RfY2Fwc2ZpbHRlcl9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2Jhc2VfaW5pdCksCgkgIChnc3RfZmFrZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2Jhc2VfaW5pdCksCgkgIChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX2Jhc2VfaW5pdCksCgkgIChnc3RfZmRfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2Jhc2VfaW5pdCksCgkgIChnc3RfZmRfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfYmFzZV9pbml0KSwKCSAgKGdzdF9maWxlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfYmFzZV9pbml0KSwKCSAgKGdzdF9maWxlX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfYmFzZV9pbml0KSwKCSAgKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9iYXNlX2luaXQpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9iYXNlX2luaXQpLAoJICAoZ3N0X3F1ZXVlX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2Jhc2VfaW5pdCksCgkgIChnc3RfdGVlX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYmFzZV9pbml0KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jbGFzc19pbml0KToKCSAgRG9uJ3QgdXNlIGJhc2VfaW5pdCB3aGVyZSBub3QgYWJzb2x1dGVseSBuZWNlc3NhcnkuIEZvciBleGFtcGxlIGl0J3MKCSAgbm90IG5lY2Vzc2FyeSBhbnltb3JlIGZvciBhZGRpbmcgcGFkIHRlbXBsYXRlcyBvciBzZXR0aW5nIGVsZW1lbnQKCSAgZGV0YWlscy4KCSAgTGVhdmUgZW1wdHkgYmFzZV9pbml0IGZ1bmN0aW9ucyBpbiBzZXZlcmFsIHBsYWNlcyBhcyBHU1RfQk9JTEVSUExBVEUKCSAgc3RpbGwgZGVmaW5lcyBhbmQgdXNlcyB0aGVtLgoKMjAwOC0wMi0wMyAxMDo0ODowMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0LzogTWFrZSBpdCBwb3NzaWJsZSAoYW5kIHJlY29tbWVuZGVkKSB0byBzZXQgZWxlbWVudCBkZXRhaWxzIGFuZCBhZGQgcGFkIHRlbXBsYXRlcyBpbiB0aGUgY2xhc3NfaW5pdCBmdW5jdGlvbnMgYnkgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9iYXNlX2NsYXNzX2luaXQpLAoJICAoZ3N0X2VsZW1lbnRfY2xhc3NfYWRkX3BhZF90ZW1wbGF0ZSk6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIE1ha2UgaXQgcG9zc2libGUgKGFuZCByZWNvbW1lbmRlZCkgdG8gc2V0IGVsZW1lbnQgZGV0YWlscyBhbmQgYWRkCgkgIHBhZCB0ZW1wbGF0ZXMgaW4gdGhlIGNsYXNzX2luaXQgZnVuY3Rpb25zIGJ5IGNvcHlpbmcgdGhlIGRldGFpbHMvcGFkCgkgIHRlbXBsYXRlcyBpbiBHc3RFbGVtZW50J3MgYmFzZV9pbml0LgoJICBBbHNvIG1ha2UgaXQgcG9zc2libGUgdG8gcmVwbGFjZSBleGlzdGluZyBwYWQgdGVtcGxhdGVzIGJ5IGFkZGluZwoJICBhIG5ldyBvbmUgd2l0aCB0aGUgc2FtZSBuYW1lLiBUaGlzIHdhcyBkb25lIGluIGEgaGFja2lzaCBmYXNoaW9uCgkgIGluIHNhbWUgZWxlbWVudHMgYmVmb3JlIGFscmVhZHkuCgkgIERvbid0IHJlZmVyZW5jZSBwYWQgdGVtcGxhdGVzIHRoYXQgYXJlIGFkZGVkIGEgc2Vjb25kIHRpbWUuIEEKCSAgbmV3IHBhZCB0ZW1wbGF0ZSBoYXMgYSByZWZjb3VudCBvZiBvbmUgYW5kIGlzIG5vdCBmbG9hdGluZyBhbnltb3JlCgkgIGFuZCB0byBiZSBvd25lZCBieSB0aGUgZWxlbWVudCdzIGNsYXNzLiBNYWtlIHRoaXMgbW9yZSBleHBsaWNpdCBieQoJICBtZW50aW9uaW5nIGl0IGluIHRoZSBkb2NzIG9mIGdzdF9lbGVtZW50X2NsYXNzX2FkZF9wYWRfdGVtcGxhdGUoKS4KCSAgVGhlc2UgY2hhbmdlcyBhcmUgYmFja3dhcmRzIGNvbXBhdGlibGUuIEZpeGVzIGJ1ZyAjNDkxNTAxLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkgIEFkZCB1bml0IHRlc3QgZm9yIHNldHRpbmcgZWxlbWVudCBkZXRhaWxzLCBhZGRpbmcgcGFkIHRlbXBsYXRlcyBhbmQKCSAgcmVwbGFjaW5nIHRoZW0gaW4gYSBzdWJjbGFzcy4KCjIwMDgtMDItMDIgMDY6NDg6MzcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEZpeCBhIGZldyBtZW1vcnkgbGVha3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9pbnRlcmZhY2VzKSwKCSAgKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKSwgKHByaW50X3BhZF9pbmZvKSwKCSAgKHByaW50X3NpZ25hbF9pbmZvKSwgKHByaW50X2VsZW1lbnRfaW5mbyk6CgkgIEZpeCBhIGZldyBtZW1vcnkgbGVha3MuCgoyMDA4LTAyLTAxIDE3OjE2OjI2ICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgQWRkIG1vcmUgZnVuY3Rpb25zIGZvciB1bml0IHRlc3Rpbmc6IGdzdF9jaGVja19kcm9wX2J1ZmZlcnMsIGdzdF9jaGVja19jYXBzX2VxdWFsLCBnc3RfY2hlY2tfZWxlbWVudF9wdXNoX2J1ZmZlcl9saXN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBBZGQgbW9yZSBmdW5jdGlvbnMgZm9yIHVuaXQgdGVzdGluZzogZ3N0X2NoZWNrX2Ryb3BfYnVmZmVycywKCSAgZ3N0X2NoZWNrX2NhcHNfZXF1YWwsIGdzdF9jaGVja19lbGVtZW50X3B1c2hfYnVmZmVyX2xpc3QsCgkgIGdzdF9jaGVja19lbGVtZW50X3B1c2hfYnVmZmVyCgoyMDA4LTAyLTAxIDE2OjM3OjIyICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBHU1RfQ0hFQ0tfVkVSU0lPTiB0byB0aGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0wMi0wMSAgSnVsaWVuIE1vdXR0ZSAgPGp1bGllbkBmbHVlbmRvLmNvbT4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgR1NUX0NIRUNLX1ZFUlNJT04gdG8gdGhlCgkgIGRvY3MKCSAgKiBnc3QvZ3N0aW5kZXguYzogKGdzdF9pbmRleF9jbGFzc19pbml0KSwKCSAgKGdzdF9pbmRleF9mcmVlX3dyaXRlciksCgkgIChnc3RfaW5kZXhfZmluYWxpemUpLCAoZ3N0X2luZGV4X2VudHJ5X2ZyZWUpLAoJICAoZ3N0X2luZGV4X2FkZF9hc3NvY2lhdGlvbik6IEZpeCBtZW1vcnkgbGVha3MuCgkgICogZ3N0L2dzdHZlcnNpb24uaC5pbjogQWRkIEdTVF9DSEVDS19WRVJTSU9OIG1hY3JvLgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzogKGdzdF9tZW1faW5kZXhfY2xhc3NfaW5pdCksCgkgIChnc3RfbWVtX2luZGV4X2ZyZWVfZm9ybWF0KSwgKGdzdF9tZW1faW5kZXhfZnJlZV9pZCksCgkgIChnc3RfbWVtX2luZGV4X2ZpbmFsaXplKTogRml4IG1lbW9yeSBsZWFrcy4KCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6IFVwZGF0ZWQgdG8gQ1ZTIEhFQUQuCgoyMDA4LTAyLTAxIDEyOjI1OjE3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL1JFQURNRTogU29tZSBtb3JlIGRldGFpbHMgYWJvdXQgaG93IHRoZSBwbHVnaW4gZG9jcyB3b3Jrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9SRUFETUU6CgkgIFNvbWUgbW9yZSBkZXRhaWxzIGFib3V0IGhvdyB0aGUgcGx1Z2luIGRvY3Mgd29ya3MuCgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgV2hpdGVzcGFjZSBjbGVhbnVwLgoKMjAwOC0wMi0wMSAxMjoxMDoxNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L3BhcnNlLzogQWRkIGRlbGF5ZWQgc2V0LXByb3BlcnR5LiBUaGlzIGFsbG93cyB0byBzZXQgcHJvcGVydGllcyBvbiBkeW5hbWljYWx5IGNyZWF0ZWQgb2JqZWN0cyAocGFkcyBpbiB2aWRlb214ZXIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci50YWIucHJlLmM6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIudGFiLnByZS5oOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgICogZ3N0L3BhcnNlL2xleC5fZ3N0X3BhcnNlX3l5LnByZS5jOgoJICBBZGQgZGVsYXllZCBzZXQtcHJvcGVydHkuIFRoaXMgYWxsb3dzIHRvIHNldCBwcm9wZXJ0aWVzIG9uIGR5bmFtaWNhbHkKCSAgY3JlYXRlZCBvYmplY3RzIChwYWRzIGluIHZpZGVvbXhlcikuCgoyMDA4LTAyLTAxIDExOjI3OjMyICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IENoZWNrIGlmIGNhcHMgYXJlIG5vdCBOVUxMIChmaXggYnVnICM1MTAxOTQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBDaGVjayBpZiBjYXBzIGFyZSBub3QgTlVMTCAoZml4IGJ1ZyAjNTEwMTk0KQoKMjAwOC0wMi0wMSAxMDoyNzoxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQWRkIGZpeG1lIHJlZ2FyZGluZyBFT1MgaW4gcHVsbCBtb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb25fcGF1c2VkKToKCSAgQWRkIGZpeG1lIHJlZ2FyZGluZyBFT1MgaW4gcHVsbCBtb2RlLgoJICBGaXggcG9zaXRpb24gcmVwb3J0aW5nIGluIFBBVVNFRCBmb3IgbmVnYXRpdmUgcmF0ZXMuCgoyMDA4LTAyLTAxIDEwOjIzOjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogV2hlbiByZXBsYWNpbmcgYSBtaW5pb2JqZWN0LCBkbyBhIHF1aWNrIGVxdWFsaXR5IGNoZWNrIGZpcnN0IHNvIHRoYXQgd2UgY2FuIGF2b2lkIGEgcmVmL3VucmVmIHBhaXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfbWluaV9vYmplY3RfcmVwbGFjZSk6CgkgIFdoZW4gcmVwbGFjaW5nIGEgbWluaW9iamVjdCwgZG8gYSBxdWljayBlcXVhbGl0eSBjaGVjayBmaXJzdCBzbyB0aGF0IHdlCgkgIGNhbiBhdm9pZCBhIHJlZi91bnJlZiBwYWlyLgoKMjAwOC0wMi0wMSAxMDoxNzo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDogVXBkYXRlIHNvbWUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJICBVcGRhdGUgc29tZSBkb2NzLgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIEFkZCBtdWx0aXF1ZXVlIHRvIHRoZSBkb2NzLgoKMjAwOC0wMS0zMCAxNDozODo0MyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEJhY2sgdG8gQ1ZTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBDVlMKCj09PSByZWxlYXNlIDAuMTAuMTcgPT09CgoyMDA4LTAxLTMwIDE0OjA1OjQ1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMC4xNwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVsZWFzZSAwLjEwLjE3CgoyMDA4LTAxLTMwIDEzOjEzOjQ5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgYWRkIENoYW5nZUxvZyBlbnRyeSBmb3IgcHJldmlvdXMgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgQ2hhbmdlTG9nIGVudHJ5IGZvciBwcmV2aW91cyBjb21taXQKCjIwMDgtMDEtMzAgMTM6MTI6MjQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IENoZWNrIGlmIGNhcHMgYXJlIG5vdCBOVUxMIChmaXggYnVnICM1MTAxOTQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBDaGVjayBpZiBjYXBzIGFyZSBub3QgTlVMTCAoZml4IGJ1ZyAjNTEwMTk0KQoKMjAwOC0wMS0zMCAxMjo1NTo0MiArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBDaGVjayBpZiBjYXBzIGFyZSBub3QgTlVMTCAoZml4IGJ1ZyAjNTEwMTk0KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgQ2hlY2sgaWYgY2FwcyBhcmUgbm90IE5VTEwgKGZpeCBidWcgIzUxMDE5NCkKCjIwMDgtMDEtMzAgMTI6NDQ6MTMgKzAwMDAgIEN5Z3dpbiBQb3J0cyBtYWludGFpbmVyIDx5c2Vsa293aXR6QHVzZXJzLnNvdXJjZWZvcmdlPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IEZpeCBjb21waWxhdGlvbiBvbiBzeXN0ZW1zIHRoYXQgaGF2ZSBwb3NpeCB0aW1lcnMgYnV0IG5vIG1vbm90b25pYyBjbG9jay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIEZpeCBjb21waWxhdGlvbiBvbiBzeXN0ZW1zIHRoYXQgaGF2ZSBwb3NpeCB0aW1lcnMgYnV0IG5vCgkgIG1vbm90b25pYyBjbG9jay4KCSAgRml4ZXM6ICM1MTI3MTUKCSAgUGF0Y2ggQnk6IEN5Z3dpbiBQb3J0cyBtYWludGFpbmVyIDx5c2Vsa293aXR6IGF0IHVzZXJzIGRvdCBzb3VyY2Vmb3JnZQoJICBkb3QgbmV0PgoKMjAwOC0wMS0zMCAxMjozOTo1MSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBSZXZlcnQgcHJldmlvdXMgY29tbWl0IGluIHByZXBhcmF0aW9uIGZvciBhbiBpbXByb21wdHUgMC4xMC4xNyByZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIFJldmVydCBwcmV2aW91cyBjb21taXQgaW4gcHJlcGFyYXRpb24gZm9yIGFuIGltcHJvbXB0dSAwLjEwLjE3IHJlbGVhc2UKCjIwMDgtMDEtMjkgMDk6NDM6MTEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEZpeCBhIGZldyBtZW1vcnkgbGVha3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9pbnRlcmZhY2VzKSwKCSAgKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKSwgKHByaW50X3BhZF9pbmZvKSwKCSAgKHByaW50X3NpZ25hbF9pbmZvKSwgKHByaW50X2VsZW1lbnRfaW5mbyk6CgkgIEZpeCBhIGZldyBtZW1vcnkgbGVha3MuCgoyMDA4LTAxLTI4IDIzOjMwOjQ1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQmFjayB0byBDVlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIENWUwoKPT09IHJlbGVhc2UgMC4xMC4xNiA9PT0KCjIwMDgtMDEtMjggMjM6Mjc6MTMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaW50ZXJmYWNlczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogcG8vTElOR1VBUzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTAuMTYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbGVhc2UgMC4xMC4xNgoKMjAwOC0wMS0yOCAyMToyMDoxNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwOC0wMS0yNCAyMzoyODo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogVXNlIEFDX1RSWV9DT01QSUxFIGluc3RlYWQgb2YgQUNfVFJZX1JVTiB0byBjaGVjayBmb3IgX1BPU0lYX1RJTUVSLCBfUE9TSVhfTU9OT1RPTklDX0NMT0NLLCBldGMuIE1ha2VzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFVzZSBBQ19UUllfQ09NUElMRSBpbnN0ZWFkIG9mIEFDX1RSWV9SVU4gdG8gY2hlY2sgZm9yCgkgIF9QT1NJWF9USU1FUiwgX1BPU0lYX01PTk9UT05JQ19DTE9DSywgZXRjLiBNYWtlcyBjb25maWd1cmUKCSAgbm90IGZhaWwgd2hlbiB0cnlpbmcgdG8gY3Jvc3Njb21waWxlIG9uIE9wZW5FbWJlZGRlZCAoIzUxMTc1MCkuCgoyMDA4LTAxLTIwIDE3OjA4OjU0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBkb2NzL21hbnVhbHMubWFrOiBVc2UgJChNQUtFKSBpbnN0ZWFkIG9mIG1ha2UgdG8gZml4IHRoZSBidWlsZCBpZiBHTlUgbWFrZSBpcyBjYWxsZWQgZGlmZmVyZW50LiBGaXhlcyBidWcgIzUxMDc0Ny4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWxzLm1hazoKCSAgVXNlICQoTUFLRSkgaW5zdGVhZCBvZiBtYWtlIHRvIGZpeCB0aGUgYnVpbGQgaWYgR05VIG1ha2UgaXMKCSAgY2FsbGVkIGRpZmZlcmVudC4gRml4ZXMgYnVnICM1MTA3NDcuCgoyMDA4LTAxLTIwIDE1OjA0OjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBGaXggb2xkLXN0eWxlIHN0YXRpYyBwbHVnaW5zIHZpYSBHU1RfUExVR0lOX0RFRklORV9TVEFUSUMgYWdhaW4sIHdoaWNoIEkgYnJva2UgdHdvIGNvbW1pdHMgYWdvIHdoZW4gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKF9nc3RfcGx1Z2luX2luaXRpYWxpemUpOgoJICBGaXggb2xkLXN0eWxlIHN0YXRpYyBwbHVnaW5zIHZpYSBHU1RfUExVR0lOX0RFRklORV9TVEFUSUMKCSAgYWdhaW4sIHdoaWNoIEkgYnJva2UgdHdvIGNvbW1pdHMgYWdvIHdoZW4gY2hhbmdpbmcgdGhlIEFQSQoJICBvZiBnc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYygpOiB0aGUgZ19saXN0X2ZvcmVhY2goKSBpbgoJICBfZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMgc3RpbGwgYXNzdW1lZCB0aGUgb2xkIGZ1bmN0aW9uCgkgIHNpZ25hdHVyZSBhbmQgd291bGQgdGhlcmVmb3JlIGZhaWwgKHJlLWZpeGVzICM1MTAxODcpLgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKF9udW1fc3RhdGljX3BsdWdpbnMpLCAoX3N0YXRpY19wbHVnaW5zKSwKCSAgKF9nc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYyksIChnc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYyk6CgkgIFJldmVydCB0aGUgKHRlY2huaWNhbGx5IGNvcnJlY3QpIGNoYW5nZSB0byBjYWxsIGdfdGhyZWFkX2luaXQoKSBmcm9tCgkgIHRoZSBwcmUtbWFpbigpIGNvbnN0cnVjdG9yLiBUaGlzIHdpbGwgYnJlYWsgcHJvZ3JhbXMgd2hpY2ggY2FsbAoJICBnX3RocmVhZF9pbml0KCkgd2l0aG91dCBhbiBpZiAoIWdfdGhyZWFkX3N1cHBvcnRlZCgpKSBndWFyZCBpbiB0aGVpcgoJICBtYWluIGZ1bmN0aW9uLiBXZSBjb3VsZCBqdXN0IGJsYW1lIGl0IG9uIEdMaWIgb3IgdGhlIGFwcGxpY2F0aW9uLCBidXQKCSAgaXQncyBwcm9iYWJseSBiZXN0IHRvIGp1c3QgYXZvaWQgdGhpcyBhbHRvZ2V0aGVyIGFuZCBzaW1wbHkgbm90IHVzZQoJICBhbnkgR0xpYiBmdW5jdGlvbnMgaGVyZSBhbmQgdXNlIHBsYWluIG9sZCBtYWxsb2MoKSB3aXRoIGEgc2ltcGxlCgkgIGFycmF5IHRvIHN0b3JlIHRoZSBwbHVnaW5zIHRvIHJlZ2lzdGVyIGxhdGVyIHdoZW4gZ3N0X2luaXQoKSBpcwoJICBmaW5hbGx5IGNhbGxlZCAocmUtZml4ZXMgIzUxMDE4NykuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOiAoR1NUX0dOVUNfQ09OU1RSVUNUT1JfREVGSU5FRCksCgkgIChHU1RfR05VQ19DT05TVFJVQ1RPUl9ERUZJTkVEKSwgKHBsdWdpbl9pbml0X2NvdW50ZXIpLAoJICAocGx1Z2luMV9pbml0KSwgKHBsdWdpbjJfaW5pdCksIChwbHVnaW4zX2luaXQpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3BsdWdpbl9zdWl0ZSk6CgkgIER1bWIgdW5pdCB0ZXN0IHRvIG1ha2Ugc3VyZSB0aGUgb2xkIEdTVF9QTFVHSU5fREVGSU5FX1NUQVRJQyBzdGlsbAoJICB3b3Jrcy4KCjIwMDgtMDEtMTcgMjI6MjI6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGx1Z2luLmg6IFJlbW92ZSBkZXByZWNhdGlvbiBndWFyZHMgYXJvdW5kIEdTVF9QTFVHSU5fREVGSU5FX1NUQVRJQy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5oOiAoR1NUX1BMVUdJTl9ERUZJTkVfU1RBVElDKToKCSAgUmVtb3ZlIGRlcHJlY2F0aW9uIGd1YXJkcyBhcm91bmQgR1NUX1BMVUdJTl9ERUZJTkVfU1RBVElDLgoJICBUaGlzIG1ha2VzIGd0ay1kb2MgY29tcGxhaW4sIGJ1dCByZXN1bHRzIGluIHNsaWdodGx5IGJldHRlcgoJICBjb21waWxlciBlcnJvcnMuIFRoZSBvbGQgX2dzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljKCkgaXMKCSAgc3RpbGwgZ3VhcmRlZCwgc28gdGhlcmUnbGwgYmUgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IHRoYXQKCSAgaW5zdGVhZC4gRml4ZXMgIzUxMDE4NyB0b28uCgoyMDA4LTAxLTE3IDIyOjE3OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogQ2hhbmdlIEFQSSBvZiBnc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYygpIHRvIG5vdCB0YWtlIGEgR3N0UGx1Z2luRGVzYywgYnV0IHJhdGhlciBqdXN0IHRha2UgYWxsIHRoZSBhcmd1bWVudHMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoX2dzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljKSwKCSAgKGdzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljKSwgKF9nc3RfcGx1Z2luX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3RwbHVnaW4uaDogKEdzdFBsdWdpbkZpbHRlcik6CgkgIENoYW5nZSBBUEkgb2YgZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMoKSB0byBub3QgdGFrZQoJICBhIEdzdFBsdWdpbkRlc2MsIGJ1dCByYXRoZXIganVzdCB0YWtlIGFsbCB0aGUgYXJndW1lbnRzCgkgIGluIGEgR3N0UGx1Z2luRGVzYyBkaXJlY3RseS4gVGhpcyBpcyBtb3JlIGludHVpdGl2ZSBhbmQKCSAgYXZvaWRzIGNlcnRhaW4gbWlzdGFrZXMgd2hlbiBwb3J0aW5nIGNvZGUgZnJvbQoJICBHU1RfUExVR0lOX0RFRklORV9TVEFUSUMgdG8gZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMoKS4KCSAgRml4ZXMgIzUxMDE4Ny4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgIEZpeCB1cCBmb3IgY2hhbmdlZCBBUEkuCgoyMDA4LTAxLTE3IDE4OjUwOjMxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvZmFxL2xlZ2FsLnhtbDogVXBkYXRlIEZBUSwgVG90ZW0gYWN0dWFsbHkgaGFzIGFuIGV4Y2VwdGlvbiB0aGVzZSBkYXlzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9sZWdhbC54bWw6CgkgIFVwZGF0ZSBGQVEsIFRvdGVtIGFjdHVhbGx5IGhhcyBhbiBleGNlcHRpb24gdGhlc2UgZGF5cy4KCjIwMDgtMDEtMTQgMjI6MjA6NDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IEFkZCBuZXcgQVBJIGRlY2xhcmF0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBBUEkgZGVjbGFyYXRpb25zCgoyMDA4LTAxLTE0IDEzOjE4OjM3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBTcGVsbGluZyBmaXhlcyBmb3IgdGhlIEFQSSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBTcGVsbGluZyBmaXhlcyBmb3IgdGhlIEFQSSBkb2NzLgoKMjAwOC0wMS0xNCAxMTo0NzozMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEFkZCBBUEkga2V5d29yZCBmb3IgZ3N0X3V0aWxfZ2V0X3RpbWVzdGFtcCwgYW5kIHJlbW92ZSB0aGUgdGFnIGZvciBHU1RfR0VUX1RJTUVTVE1BUCB3aGljaCBkaWRuJ3Qgc3Vydml2ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFkZCBBUEkga2V5d29yZCBmb3IgZ3N0X3V0aWxfZ2V0X3RpbWVzdGFtcCwgYW5kIHJlbW92ZSB0aGUgdGFnIGZvciBHU1RfR0VUX1RJTUVTVE1BUCB3aGljaCBkaWRuJ3Qgc3Vydml2ZS4KCjIwMDgtMDEtMTQgMTE6NDA6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBGaXggbG9uZyBwcm9wZXJ0eSBkZXNjcmlwdGlvbiBmb3IgUW9TLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgRml4IGxvbmcgcHJvcGVydHkgZGVzY3JpcHRpb24gZm9yIFFvUy4KCjIwMDgtMDEtMTIgMjA6MjI6MzAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdC5jOiBfZ3N0X3RyYWNlX29uIGlzIGFscmVhZHkgcHJvdmlkZWQgYnkgZ3N0dHJhY2UuaCwgbm8gbmVlZCB0byBkZWNsYXJlIGl0IG91cnNlbHZlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBfZ3N0X3RyYWNlX29uIGlzIGFscmVhZHkgcHJvdmlkZWQgYnkgZ3N0dHJhY2UuaCwgbm8gbmVlZCB0byBkZWNsYXJlCgkgIGl0IG91cnNlbHZlcy4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBZGQgJ2J1ZmZlcnMnLCAnY2hlY2tfY29uZCcgYW5kICdjaGVja19tdXRleCcgZnJvbSBsaWJnc3RjaGVjawoJICBhbmQgcmVtb3ZlIHN0cmFuZ2UgdGNhc2VfYWRkX3Rlc3Qgd2hpY2ggaXMgb3V0cHV0dGluZyBhIHdhcm5pbmcuCgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBQcm9wZXJseSBkZWNsYXJlICdidWZmZXJzJywgJ2NoZWNrX2NvbmQnLCAnY2hlY2tfbXV0ZXgnIGV4dGVybgoJICBhbmQgZGVmaW5lIHRoZW0gaW4gZ3N0Y2hlY2suYyBpbnN0ZWFkIG9mIGhhdmluZyBldmVyeSAuYyBmaWxlIHdoY2loCgkgIGluY2x1ZGVzIGdzdGNoZWNrLmggYmUgZGVmaW5pbmcgaXRzIG93biBjb3B5IGFuZCByZWx5aW5nIG9uIHN5bWJvbAoJICBpbnRlcnBvc2luZyB0byBtYXJyeSB0aGVtIGFsbCwgd2hpY2ggZG9lc24ndCB3b3JrIG9uIFNvbGFyaXMuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRG9uJ3QgZGVmaW5lICdidWZmZXJzJyBsb2NhbGx5LCBpdCBjb21lcyBmcm9tIGxpYmdzdGNoZWNrLgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogKHNlbmRfYnVmZmVyKToKCSAgRml4IHR5cGUgb2YgdmFyaWFibGUgKEdzdEZsb3dSZXR1cm4sIG5vdCBHc3RTdGF0ZUNoYW5nZVJldHVybikKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZCBhIGJ1bmNoIG9mIGNhc3RzIHRvIG1ha2UgdmFyaW91cyBjb25zdGFudHMgZml0IHRoZSB0eXBlcwoJICB0aGV5J3JlIGJlaW5nIGFzc2lnbmVkIHRvLgoKMjAwOC0wMS0xMCAyMTowNjo1OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGNoaWxkcHJveHkuYzogSW1wcm92ZSBkb2NzIGFuZCBhZGQgc29tZSBpZGVhcyBmb3IgbWFraW5nIHRoaXMgbW9yZSBnZW5lcmFsLXB1cnBvc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkgIEltcHJvdmUgZG9jcyBhbmQgYWRkIHNvbWUgaWRlYXMgZm9yIG1ha2luZyB0aGlzIG1vcmUgZ2VuZXJhbC1wdXJwb3NlLgoKMjAwOC0wMS0xMCAxNTo1NTozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RfcHJpdmF0ZS5oOiBBZGQgR1NUX0NBVF9UWVBFUywgZm9yIGNvbnNpc3RlbmN5LCBhbmQgc28gdGhhdCB0aGUgb3RoZXIgZGVidWcgY2F0ZWdvcmllcyBkb24ndCBtYWtlIGZ1biBvZiBpdC4gUy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDogKEdTVF9DQVRfVFlQRVMpOgoJICBBZGQgR1NUX0NBVF9UWVBFUywgZm9yIGNvbnNpc3RlbmN5LCBhbmQgc28gdGhhdCB0aGUgb3RoZXIKCSAgZGVidWcgY2F0ZWdvcmllcyBkb24ndCBtYWtlIGZ1biBvZiBpdC4gU3BvdHRlZCBieSBTYXVyIG9uIElSQy4KCjIwMDgtMDEtMTAgMTM6MDM6MzUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9wYXJzZS9NYWtlZmlsZS5hbTogTW92ZSB0eXBlcy5oIGZyb20gRVhUUkFfRElTVCB0byBub2luc3RfSEVBREVSUy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBNb3ZlIHR5cGVzLmggZnJvbSBFWFRSQV9ESVNUIHRvIG5vaW5zdF9IRUFERVJTLgoKMjAwOC0wMS0xMCAxMjoxNDowNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgYXV0b2dlbi5zaDogQWRkIC1Xbm8tcG9ydGFiaWxpdHkgdG8gdGhlIGF1dG9tYWtlIHBhcmFtZXRlcnMgdG8gc3RvcCB3YXJuaW5ncyBhYm91dCBHTlUgbWFrZSBleHRlbnNpb25zIGJlaW5nIHVzZWQuIFdlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGF1dG9nZW4uc2g6CgkgIEFkZCAtV25vLXBvcnRhYmlsaXR5IHRvIHRoZSBhdXRvbWFrZSBwYXJhbWV0ZXJzIHRvIHN0b3Agd2FybmluZ3MKCSAgYWJvdXQgR05VIG1ha2UgZXh0ZW5zaW9ucyBiZWluZyB1c2VkLiBXZSByZXF1aXJlIEdOVSBtYWtlIGluIGFsbW9zdAoJICBldmVyeSBNYWtlZmlsZSBhbnl3YXkuCgkgICogY29uZmlndXJlLmFjOgoJICBVc2UgQU1fUFJPR19DQ19DX08gYXMgYSBjb21waWxlciB0aGF0IGFjY2VwdHMgYm90aCAtYyBhbmQgLW8KCSAgYXQgdGhlIHNhbWUgdGltZSBpcyByZXF1aXJlZCBmb3IgcGVyIHRhcmdldCBmbGFncy4KCjIwMDgtMDEtMDkgMTg6MjM6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBnc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYygpIGFuZCBkZXByZWNhdGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKF9nc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYyksCgkgIChnc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYyksIChfZ3N0X3BsdWdpbl9pbml0aWFsaXplKSwKCSAgKGdzdF9wbHVnaW5fcmVnaXN0ZXJfZnVuYyk6CgkgICogZ3N0L2dzdHBsdWdpbi5oOiAoR1NUX1BMVUdJTl9ERUZJTkVfU1RBVElDKToKCSAgQVBJOiBhZGQgZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMoKSBhbmQgZGVwcmVjYXRlCgkgIEdTVF9QTFVHSU5fREVGSU5FX1NUQVRJQywgc2luY2UgaXQncyBub3QgcG9ydGFibGUKCSAgKCM0OTg5MjQpLgoJICBBbHNvLCBpbiBfZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMoKSwgbWFrZSBzdXJlIHRvIGNhbGwKCSAgZ190aHJlYWRfaW5pdCgpIGJlZm9yZSBjYWxsaW5nIEdMaWIgZnVuY3Rpb25zIHN1Y2ggYXMKCSAgZ19saXN0X2FwcGVuZCgpIGlmIHdlJ3JlIG5vdCBpbml0aWFsaXNlZCB5ZXQsIHNpbmNlIHRoYXQKCSAgbWF5IGxlYWQgdG8gcmFuZG9tIGNyYXNoZXMgd2l0aCBvbGRlciBHU2xpY2UvR0xpYiB2ZXJzaW9ucy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgIEFkYXB0IHVuaXQgdGVzdCB0byBhYm92ZSBjaGFuZ2VzLgoKMjAwOC0wMS0wOSAxNjozNjozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IFlldCBhbm90aGVyIGdyYXR1aXRvdXMgR1N0cmluZyBtaWNyby1vcHRpbWlzYXRpb246IGFkZCBhIChwcml2YXRlKSBmdW5jdGlvbiB0aGF0IHNlcmlhbGlzZXMgYSBzdHJ1Y3R1cmUgYXBwZW5kaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDogKFNUUlVDVFVSRV9FU1RJTUFURURfU1RSSU5HX0xFTik6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX3RvX3N0cmluZyk6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX0FTQ0lJX0lTX1NUUklORyksCgkgIChwcml2X2dzdF9zdHJ1Y3R1cmVfYXBwZW5kX3RvX2dzdHJpbmcpLCAoZ3N0X3N0cnVjdHVyZV90b19zdHJpbmcpOgoJICBZZXQgYW5vdGhlciBncmF0dWl0b3VzIEdTdHJpbmcgbWljcm8tb3B0aW1pc2F0aW9uOiBhZGQgYSAocHJpdmF0ZSkKCSAgZnVuY3Rpb24gdGhhdCBzZXJpYWxpc2VzIGEgc3RydWN0dXJlIGFwcGVuZGluZyB0byBhbiBleGlzdGluZwoJICBHU3RyaW5nLCBzbyB0aGF0IHdoZW4gd2Ugc2VyaWFsaXNlIGNhcHMgd2UgZG9uJ3QgbmVlZCB0byBhbGxvYytmcmVlCgkgIGEgdGhyb3dhd2F5IEdTdHJpbmcgZm9yIGVhY2ggc3RydWN0dXJlIChlYWNoIG9mIHdoaWNoIGFsc28gZW50YWlsaW5nCgkgIG11bHRpcGxlIHJlYWxsb2NzIG9uIHRoZSB3YXkpOyBhbHNvIHVzZSBnX3N0cmluZ19zaXplZF9uZXcoKSBpbgoJICB2YXJpb3VzIHBsYWNlcyB3aXRoIGFuIGFwcHJveGltYXRlIHN0cmluZyBsZW5ndGggdG8gYXZvaWQgcmVhbGxvY3MKCSAgd2l0aGluIEdTdHJpbmcuIFNlZSAjNTAwMTQzLgoKMjAwOC0wMS0wOSAxNTowNToyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogQWx3YXlzIGNoZWNrIFVURi04IGNvbmZvcm1hbmNlIG9mIHN0cnVjdHVyZSBzdHJpbmdzIGFuZCBub3Qgb25seSBpZiB0aGUgZGVidWdnaW5nIHN5c3RlbSBpcyBlbmFibC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2lkX3NldF92YWx1ZSk6CgkgIEFsd2F5cyBjaGVjayBVVEYtOCBjb25mb3JtYW5jZSBvZiBzdHJ1Y3R1cmUgc3RyaW5ncyBhbmQgbm90IG9ubHkKCSAgaWYgdGhlIGRlYnVnZ2luZyBzeXN0ZW0gaXMgZW5hYmxlZDsgcmVhc29uaW5nOiB0aGUgYmVoYXZpb3VyIG9mCgkgIHRoZSBhY3R1YWwgY29kZSBzaG91bGRuJ3QgcmVhbGx5IGNoYW5nZSBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUKCSAgZGVidWdnaW5nIHN5c3RlbSBpcyBlbmFibGVkIG9yIG5vdCAoIzUwODI5MSkuCgoyMDA4LTAxLTA5IDEzOjQ4OjAzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBNYWtlZmlsZS5hbTogUmVtb3ZlIG9sZCBjb3ZlcmFnZSB0YXJnZXQgaW4gZmF2b3VyIG9mICJtYWtlIGxjb3YiLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgUmVtb3ZlIG9sZCBjb3ZlcmFnZSB0YXJnZXQgaW4gZmF2b3VyIG9mICJtYWtlIGxjb3YiLgoKMjAwOC0wMS0wOSAxMjoyNToxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBUaGUgc3RhcnQgc2VnbWVudCBmb3IgcmV2ZXJzZSBwbGF5YmFjayBnb2VzIGZyb20gc3RhcnQgdG8gbGFzdF9zdG9wLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApOgoJICBUaGUgc3RhcnQgc2VnbWVudCBmb3IgcmV2ZXJzZSBwbGF5YmFjayBnb2VzIGZyb20gc3RhcnQgdG8gbGFzdF9zdG9wLgoKMjAwOC0wMS0wOSAxMjoyMjoyMiArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBnc3QvZ3N0Y2xvY2suaDogQ2FzdCB0aGUgcmVzdWx0cyBmcm9tIHRoZSB0aW1ldmFsL3NwZWNfdG9fdGltZSBtYWNyb3MgdG8gd2hhdCB0aGUgZG9jcyBzYXkgaXQgY2FzdHMgdG8sIGEgR3N0Q2xvY2tUaW0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgPHBraiBheGlzIGNvbT4KCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgQ2FzdCB0aGUgcmVzdWx0cyBmcm9tIHRoZSB0aW1ldmFsL3NwZWNfdG9fdGltZSBtYWNyb3MgdG8gd2hhdCB0aGUKCSAgZG9jcyBzYXkgaXQgY2FzdHMgdG8sIGEgR3N0Q2xvY2tUaW1lLiBmaXhlcyAjNTA4MTc1LgoKMjAwOC0wMS0wOSAxMjoxOTozMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogVXBkYXRlIHNvbWUgY29tbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgVXBkYXRlIHNvbWUgY29tbWVudHMuCgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKToKCSAgSW1wcm92ZSBwcmludGluZyBvZiBmbGFncy4KCjIwMDgtMDEtMDggMjE6MTM6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogUHJpbnQgZWxlbWVudCBuYW1lIHdpdGggZ193YXJuaW5nKCkgaWYgdGhlcmUncyBhIHByb2JsZW0gd2l0aCB0aGUgdW5pdCBzaXplLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fc2l6ZSk6CgkgIFByaW50IGVsZW1lbnQgbmFtZSB3aXRoIGdfd2FybmluZygpIGlmIHRoZXJlJ3MgYSBwcm9ibGVtCgkgIHdpdGggdGhlIHVuaXQgc2l6ZS4KCjIwMDgtMDEtMDggMDI6MDc6MzggKzAwMDAgIERhbWllbiBMZXNwaWF1IDxkYW1pZW4ubGVzcGlhdUBnbWFpbC5jb20+CgoJICBsaWJzL2dzdC86IEZpeCBlbXB0eSBwcm90b3R5cGVzLiAgRml4ZXMgYnVnICM1MDc5NTcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRGFtaWVuIExlc3BpYXUgPGRhbWllbi5sZXNwaWF1QGdtYWlsLmNvbT4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xzb3VyY2UuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmg6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJICBGaXggZW1wdHkgcHJvdG90eXBlcy4gIEZpeGVzIGJ1ZyAjNTA3OTU3LgoKMjAwOC0wMS0wOCAwMjowMTozNCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBkb2NzL2ZhcS9kZXBlbmRlbmNpZXMueG1sOiBGaXggdHlwby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZGVwZW5kZW5jaWVzLnhtbDogRml4IHR5cG8uCgoyMDA4LTAxLTA3IDExOjIzOjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IERvbid0IHVwZGF0ZSB0aGUgbGFzdF9zdG9wIHBvc2l0aW9uIGluIGRvX3NlZWssIHRoYXQncyB0aGUgcG9zaXRpb24gd2UgZGlkIGEgc2VlayB0by4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZGVmYXVsdF9kb19zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKToKCSAgRG9uJ3QgdXBkYXRlIHRoZSBsYXN0X3N0b3AgcG9zaXRpb24gaW4gZG9fc2VlaywgdGhhdCdzIHRoZSBwb3NpdGlvbiB3ZQoJICBkaWQgYSBzZWVrIHRvLgoJICBSZWFkIGJhY2t3YXJkcyB3aGVuIHdlIGhhdmUgYSBuZWdhdGl2ZSByYXRlLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzogKGV2ZW50X2Z1bmMpLCAod2FpdF9lb3MpLAoJICAoc2V0dXBfZmlsZXNyYyksIChjbGVhbnVwX2ZpbGVzcmMpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZmlsZXNyY19zdWl0ZSk6CgkgIEFkZCBjaGVjayBmb3IgcmV2ZXJzZSByZWFkaW5nLgoKMjAwOC0wMS0wNyAwOTo0Nzo0OSArMDAwMCAgQWxleGlzIEJhbGxpZXIgPGFiYWxsaWVyQGdlbnRvby5vcmc+CgoJICB0ZXN0cy9jaGVjay86IERlY2lkZSB3aGljaCBoZWFkZXIgdG8gaW5jbHVkZSBiYXNlZCBvbiB0aGUgdXNlcmxhbmQgQUJJIHRhcmdldCBhbmQgbm90IHRoZSBrZXJuZWwvY3B1LiBGaXggdXAgc3RydWN0dXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBBbGV4aXMgQmFsbGllciA8YWJhbGxpZXIgYXQgZ2VudG9vIG9yZz4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGM2NC5oOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3BwYzY0Lmg6CgkgIERlY2lkZSB3aGljaCBoZWFkZXIgdG8gaW5jbHVkZSBiYXNlZCBvbiB0aGUgdXNlcmxhbmQgQUJJIHRhcmdldAoJICBhbmQgbm90IHRoZSBrZXJuZWwvY3B1LiBGaXggdXAgc3RydWN0dXJlIHNpemVzIG9mIHBwYzY0IGhlYWRlcgoJICBmb3IgNjQtYml0IHVzZXJsYW5kICgjNTAzNTkwKS4gIE1pZ2h0IG5lZWQgc29tZXRoaW5nIHNpbWlsYXIgZm9yCgkgIHg4NiB0b28uCgoyMDA4LTAxLTA1IDEzOjQ1OjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGRlYnVndXRpbHMuYzogTG9nIHRoZSByZWFzb24gd2h5IGZvcGVuIGZhaWxzIGluIGFkZGl0aW9uIHRvIHRoZSBmYWN0IHRoYXQgaXQgZmFpbGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOiAoX2dzdF9kZWJ1Z19iaW5fdG9fZG90X2ZpbGUpOgoJICBMb2cgdGhlIHJlYXNvbiB3aHkgZm9wZW4gZmFpbHMgaW4gYWRkaXRpb24gdG8gdGhlIGZhY3QgdGhhdCBpdCBmYWlsZWQuCgoyMDA4LTAxLTA0IDE4OjQ0OjAzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvcGFyc2UvcGFyc2UubDogVXNlICIlb3B0aW9uIG5ldmVyLWludGVyYWN0aXZlIiB0byBwcmV2ZW50IHVzZWxlc3MgY2FsbHMgdG8gaXNhdHR5KCkgb24gZXZlcnkgaW5wdXQgd2hlbiBwYXJzaW5nLiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL3BhcnNlLmw6CgkgIFVzZSAiJW9wdGlvbiBuZXZlci1pbnRlcmFjdGl2ZSIgdG8gcHJldmVudCB1c2VsZXNzIGNhbGxzIHRvIGlzYXR0eSgpCgkgIG9uIGV2ZXJ5IGlucHV0IHdoZW4gcGFyc2luZy4gQWxzbyB1c2UgIiVvcHRpb24gbm9pbnB1dCIgdG8gbm90IGRlZmluZQoJICB0aGUgc3RhdGljIGlucHV0L3l5aW5wdXQgZnVuY3Rpb25zIHdoaWNoIHdlIGRvbid0IHVzZSBhbnl3YXkuIFRoaXMKCSAgcmVtb3ZlcyBhIGNvbXBpbGVyIHdhcm5pbmcgd2l0aCBnY2MgNC4zIGFuZCBzYXZlcyBzb21lIGJ5dGVzIGluIHRoZQoJICBsaWJyYXJ5LgoJICAqIGdzdC9wYXJzZS9sZXguX2dzdF9wYXJzZV95eS5wcmUuYzoKCSAgUmVnZW5lcmF0ZWQgZm9yIHRoZSBhYm92ZSBjaGFuZ2UuCgoyMDA4LTAxLTA0IDE4OjM5OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBEb24ndCBjcmFzaCB3aGVuIHRyeWluZyB0byBmaXhhdGUgYW5kIGVtcHR5IGxpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGZpeGF0ZV92YWx1ZSk6CgkgIERvbid0IGNyYXNoIHdoZW4gdHJ5aW5nIHRvIGZpeGF0ZSBhbmQgZW1wdHkgbGlzdC4KCSAgRml4ZXMgIzUwNjY0My4KCjIwMDgtMDEtMDMgMDk6NDM6NDEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogQ2xhcmlmeSB0aGUgY29tbWVudHMgdG8gbWFrZSB0aGUgdXNhZ2Ugb2YgdGhpcyBzY3JpcHQgYW5kIHdoYXQgaXQgZG9lcyBlYXNpZXIgdG8gdW5kZXJzdGFuZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBDbGFyaWZ5IHRoZSBjb21tZW50cyB0byBtYWtlIHRoZSB1c2FnZSBvZiB0aGlzIHNjcmlwdCBhbmQgd2hhdCBpdAoJICBkb2VzIGVhc2llciB0byB1bmRlcnN0YW5kLgoKMjAwOC0wMS0wMSAxNzoxMDozMiArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1wbG90LXRpbWVsaW5lLnB5OiBBZGQgbW9yZSBvcHRpb25zIHRvIGdzdC1wbG90LXRpbWVsaW5lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1wbG90LXRpbWVsaW5lLnB5OgoJICBBZGQgbW9yZSBvcHRpb25zIHRvIGdzdC1wbG90LXRpbWVsaW5lCgoyMDA3LTEyLTMxIDE5OjExOjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OiBTb21lIG1vcmUgaW5mbyBvbiBob3cgdGhlIHN0cmVhbV90aW1lIGluIEdzdEJhc2VTaW5rIGlzIGRvbmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSAgU29tZSBtb3JlIGluZm8gb24gaG93IHRoZSBzdHJlYW1fdGltZSBpbiBHc3RCYXNlU2luayBpcyBkb25lLgoKMjAwNy0xMi0zMCAxMzozNjozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IHJlbW92ZSBib2d1cyBjaGFuZ2Vsb2cgZW50cnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiByZW1vdmUgYm9ndXMgY2hhbmdlbG9nIGVudHJ5CgoyMDA3LTEyLTMwIDEzOjMxOjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiBQdXQgYmFjayB0aGUgdGNhc2Vfc2V0X3RpbWVvdXQoKSwgYXBwYXJlbnRseSBpdCdzIG5lZWRlZCBhZnRlciBhbGw7IGZpeCBpdCB1cCBpbiBhIHdheSB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogKGdzdF9zaW5rc19zdWl0ZSk6CgkgIFB1dCBiYWNrIHRoZSB0Y2FzZV9zZXRfdGltZW91dCgpLCBhcHBhcmVudGx5IGl0J3MgbmVlZGVkIGFmdGVyCgkgIGFsbDsgZml4IGl0IHVwIGluIGEgd2F5IHRoYXQgbWFrZXMgdGhpbmdzIHdvcmsgd2l0aCB2YWxncmluZCB0b28uCgoyMDA3LTEyLTMwIDEyOjIyOjQ5ICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGRlYnVndXRpbHMuYzogYWRkIHdhcm5pbmcgd2hlbiBmYWlsZWQgdG8gb3BlbiBmaWxlIGZvciB3cml0aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGFkZCB3YXJuaW5nIHdoZW4gZmFpbGVkIHRvIG9wZW4gZmlsZSBmb3Igd3JpdGluZwoKMjAwNy0xMi0yOCAxNDozNDozNCArMDAwMCAgTGF1cmVudCBHbGF5YWwgPHNwZ2xlZ2xlQHlhaG9vLmZyPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IE9wdGltaXNhdGlvbjogYmFpbCBvdXQgb2YgdGhlIGxvb3AgYXMgZWFybHkgYXMgcG9zc2libGUgKCM1MDAxNDMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IExhdXJlbnQgR2xheWFsICA8c3BnbGVnbGUgeWFob28gZnI+CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfaXNfZml4ZWQpOgoJICBPcHRpbWlzYXRpb246IGJhaWwgb3V0IG9mIHRoZSBsb29wIGFzIGVhcmx5IGFzIHBvc3NpYmxlICgjNTAwMTQzKS4KCjIwMDctMTItMjggMTQ6MTU6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBCdW5jaCBvZiBncmF0dWl0b3VzIG5hbm8tb3B0aW1pc2F0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX3RvX3N0cmluZyk6CgkgICogZ3N0L2dzdGluZm8uYzogKGdzdF9kZWJ1Z19jb25zdHJ1Y3RfdGVybV9jb2xvcik6CgkgICogZ3N0L2dzdHBhcnNlLmM6IChnc3RfcGFyc2VfbGF1bmNodik6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF9kdW1wX21lbSk6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfc2VyaWFsaXplX2FueV9saXN0KSwKCSAgKGdzdF92YWx1ZV90cmFuc2Zvcm1fYW55X2xpc3Rfc3RyaW5nKToKCSAgQnVuY2ggb2YgZ3JhdHVpdG91cyBuYW5vLW9wdGltaXNhdGlvbnMuCgoyMDA3LTEyLTI4IDEzOjU3OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiBGaXggbGVhayBpbiB1bml0IHRlc3QgKGJ1cyBzeW5jIGhhbmRsZXIgbXVzdCB1bnJlZiB0aGUgbWVzc2FnZSBpZiBpdCByZXR1cm5zIEdTVF9CVVNfRFJPLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogKGFzeW5jX2RvbmVfZnVuYyksCgkgIChhc3luY19kb25lX2Vvc19mdW5jKToKCSAgRml4IGxlYWsgaW4gdW5pdCB0ZXN0IChidXMgc3luYyBoYW5kbGVyIG11c3QgdW5yZWYgdGhlIG1lc3NhZ2UKCSAgaWYgaXQgcmV0dXJucyBHU1RfQlVTX0RST1ApLiBEb24ndCBmaWRkbGUgd2l0aCB0aGUgZGVmYXVsdCB0ZXN0CgkgIHRpbWVvdXQsIHRoaXMgaXMgc21hbGxlciB0aGFuIHRoZSBjdXJyZW50IHByZWNvbmZpZ3VyZWQgdmFsdWUKCSAgdmlhIENLX0RFRkFVTFRfVElNRU9VVCwgYW5kIGFsc28gYnJlYWtzIHRoaW5ncyB3aXRoIHZhbGdyaW5kCgkgIGJlY2F1c2UgaXQgb3ZlcnJpZGVzIHRoZSB2YWx1ZSBzcGVjaWZpZWQgaW4gQ0tfREVGQVVMVF9USU1FT1VULgoKMjAwNy0xMi0yNCAxOToyMTozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgQWRkIGJ1ZyB0aGF0IHdhcyBmaXhlZCB3aXRoIGxhc3QgY29tbWl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQWRkIGJ1ZyB0aGF0IHdhcyBmaXhlZCB3aXRoIGxhc3QgY29tbWl0LgoKMjAwNy0xMi0yNCAxOToxMToyOSArMDAwMCAgTGF1cmVudCBHbGF5YWwgPHNwZ2xlZ2xlQHlhaG9vLmZyPgoKCSAgY29uZmlndXJlLmFjOiBDaGVjayBmb3Igc3RkaW9fZXh0LmggZm9yIHRoZSBmaWxlc2luayBjaGFuZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gUGF0Y2ggYnk6IExhdXJlbnQgR2xheWFsIDxzcGdsZWdsZSBhdCB5YWhvbyBkb3QgZnI+CgkgICogY29uZmlndXJlLmFjOgoJICBDaGVjayBmb3Igc3RkaW9fZXh0LmggZm9yIHRoZSBmaWxlc2luayBjaGFuZ2VzLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGJ1ZmZlcl9tb2RlX2dldF90eXBlKSwKCSAgKGdzdF9maWxlX3NpbmtfY2xhc3NfaW5pdCksIChnc3RfZmlsZV9zaW5rX2luaXQpLAoJICAoZ3N0X2ZpbGVfc2lua19kaXNwb3NlKSwgKGdzdF9maWxlX3Npbmtfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9maWxlX3NpbmtfZ2V0X3Byb3BlcnR5KSwgKGdzdF9maWxlX3Npbmtfb3Blbl9maWxlKSwKCSAgKGdzdF9maWxlX3NpbmtfY2xvc2VfZmlsZSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJICBBZGQgdHdvIHByb3BlcnRpZXMgdG8gY29udHJvbCB0aGUgYnVmZmVyaW5nIG1vZGUgYW5kIHNpemUuCgkgIEFQSTogR3N0RmlsZVNpbms6OmJ1ZmZlci1tb2RlCgkgIEFQSTogR3N0RmlsZVNpbms6OmJ1ZmZlci1zaXplCgoyMDA3LTEyLTI0IDE0OjM1OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IEFkZCBzb21lIG1vcmUgZG9jcyB0byBleHBsYWluIHdoeSBhIEZJWE1FIHdhcyB3cm9uZ2x5IGFkZGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF9qaXR0ZXJfdW5sb2NrZWQpOgoJICBBZGQgc29tZSBtb3JlIGRvY3MgdG8gZXhwbGFpbiB3aHkgYSBGSVhNRSB3YXMgd3JvbmdseSBhZGRlZC4KCjIwMDctMTItMjIgMTI6NDg6MjYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RvYmplY3QuYzogRml4IHR5cG8gaW4gdGhlIGdzdF9vYmplY3Rfe3JlZix1bnJlZn0gZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG9iamVjdC5jOgoJICBGaXggdHlwbyBpbiB0aGUgZ3N0X29iamVjdF97cmVmLHVucmVmfSBkb2N1bWVudGF0aW9uLgoKMjAwNy0xMi0yMSAyMToxNzozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrLzogRG9uJ3QgdXNlIEdTVF9QTFVHSU5fREVGSU5FX1NUQVRJQywgaXQgaXMgbm90IHBvcnRhYmxlIGFuZCBpcyBnb2luZyB0byBiZSBkZXByZWNhdGVkIChzZWUgIzQ5ODkyNCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvdHlwZWZpbmRoZWxwZXIuYzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIERvbid0IHVzZSBHU1RfUExVR0lOX0RFRklORV9TVEFUSUMsIGl0IGlzIG5vdCBwb3J0YWJsZSBhbmQgaXMKCSAgZ29pbmcgdG8gYmUgZGVwcmVjYXRlZCAoc2VlICM0OTg5MjQpLgoKMjAwNy0xMi0yMSAyMDo1ODoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R0eXBlZmluZC5jOiBNYWtlIGdzdF90eXBlX2ZpbmRfcmVnaXN0ZXIgd29yayBmb3Igc3RhdGljIHR5cGVmaW5kIGZ1bmN0aW9ucywgaWUuIGFsbG93IHBhc3NpbmcgcGx1Z2luID09IE5VTEwgKC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzogKGdzdF90eXBlX2ZpbmRfcmVnaXN0ZXIpOgoJICBNYWtlIGdzdF90eXBlX2ZpbmRfcmVnaXN0ZXIgd29yayBmb3Igc3RhdGljIHR5cGVmaW5kIGZ1bmN0aW9ucywKCSAgaWUuIGFsbG93IHBhc3NpbmcgcGx1Z2luID09IE5VTEwgKHByZXJlcXVpc2l0ZSBmb3IgIzQ5ODkyNCkuCgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9yZWdpc3Rlcik6CgkgIFNtYWxsIGRvY3MgYWRkaXRpb24uCgoyMDA3LTEyLTIxIDEzOjU0OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBSZWFsbHkgdW5saW5rIHRoZSBwZWVyIHBhZCBpbnN0ZWFkIG9mIHNldHRpbmcgdGhlIHBlZXIgcG9pbnRlciB0byBOVUxMIHdoZW4gd2UgZGlzcG9zZSB0aGUgcGFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2Rpc3Bvc2UpOgoJICBSZWFsbHkgdW5saW5rIHRoZSBwZWVyIHBhZCBpbnN0ZWFkIG9mIHNldHRpbmcgdGhlIHBlZXIgcG9pbnRlciB0byBOVUxMCgkgIHdoZW4gd2UgZGlzcG9zZSB0aGUgcGFkLgoJICBUaGlzIGNvcnJlY3RseSBjYWxscyB0aGUgdW5saW5rIGZ1bmN0aW9ucyBhbmQgbWFrZXMgc3VyZSB0aGF0IHRoZSBwZWVyCgkgIGRvZXMgbm90IGhhdmUgYSBoYW5kbGUgdG8gaW52YWxpZCBtZW1vcnkuIFNlZSAjNTA0NjcxLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9wYWRfc3VpdGUpOgoJICBBZGQgdGVzdHN1aXRlIGZvciBhYm92ZSBjYXNlLgoKMjAwNy0xMi0yMCAwOToyMDoyNyArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOiBGaXggZGV0ZWN0aW9uIG9mIHRoZSBjaGVjayB2ZXJzaW9uIHdlJ3JlIGNvbXBpbGluZyBhZ2FpbnN0ICh3b3VsZCBvdGhlcndpc2UgYnJlYWsgaWYgY2hlY2suLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgPHBraiBheGlzIGNvbT4KCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBGaXggZGV0ZWN0aW9uIG9mIHRoZSBjaGVjayB2ZXJzaW9uIHdlJ3JlIGNvbXBpbGluZyBhZ2FpbnN0ICh3b3VsZAoJICBvdGhlcndpc2UgYnJlYWsgaWYgY2hlY2sgZ29lcyB2MC4xMC4wKTsgY29ycmVjdGx5IHJlcG9ydCB0aGUKCSAgbmFtZSBvZiB0aGUgZmFpbGVkIHRlc3QgYWdhaW4gaW4gY2FzZSBvZiBmYWlsdXJlLCBpbnN0ZWFkIG9mCgkgIGp1c3QgJ3RmJyAoZml4ZXMgIzUwNDQ5OSkuCgoyMDA3LTEyLTE5IDE3OjQ5OjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEFsbG93IHNlbmRpbmcgRU9TIHRvIHRoZSBzb3VyY2UgdG8gbWFrZSBpdCBzZW5kIG91dCBhbiBFT1MgZXZlbnQgZnJvbSB0aGUgc3RyZWFtaW5nIHRocmVhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfc2VuZF9ldmVudCksCgkgIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlX3NyY19wYWRfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKSwgKGdzdF9iYXNlX3NyY19zZXRfZmx1c2hpbmcpLAoJICAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIEFsbG93IHNlbmRpbmcgRU9TIHRvIHRoZSBzb3VyY2UgdG8gbWFrZSBpdCBzZW5kIG91dCBhbiBFT1MgZXZlbnQgZnJvbQoJICB0aGUgc3RyZWFtaW5nIHRocmVhZC4KCSAgVXBkYXRlIGRvY3MgYW5kIGRlcHJlY2F0ZSB0aGUgb2xkIE5VTEwvUkVBRFkgc2h1dGRvd24gbWV0aG9kLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2Jhc2VzcmNfc3VpdGUpOgoJICBBZGQgdW5pdCB0ZXN0IGZvciBjb250cm9sbGVkIHNodXRkb3duLgoKMjAwNy0xMi0xOSAxMjo0ODoxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDogU21hbGwgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJICBTbWFsbCB1cGRhdGVzLgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zZXRfc2VlayksCgkgIChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudF9mdWxsKSwgKGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lKSwKCSAgKGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSk6CgkgIFRoZSBzZWVrIGZvcm1hdCBjYW4gYmUgZGlmZmVyZW50IGZyb20gdGhlIHNlZ21lbnQgZm9ybWF0IHdoZW4gdGhlIHN0YXJ0CgkgIGFuZCBzdG9wIHZhbHVlcyBhcmUgbm90IHRvIGJlIHVwZGF0ZWQsIHdoZW4gd2Ugb25seSBkbyBhIHJhdGUgY2hhbmdlIGZvcgoJICBleGFtcGxlLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3Rfc2VnbWVudF9zdWl0ZSk6CgkgIEFkZCBhIHRlc3RjYXNlIGZvciB0aGUgcmF0ZS1vbmx5IHNlZWtzLCBjaGVja2luZyB0aGF0IHRoZSBmb3JtYXQgaXMKCSAgY29ycmVjdGx5IGlnbm9yZWQgd2hlbiBzdGFydCBhbmQgc3RvcCBhcmUgbm90IHVwZGF0ZWQuCgoyMDA3LTEyLTE4IDEzOjM4OjMxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkgIENoYW5nZUxvZyBzdXJnZXJ5LCBnc3RlbnVtdHlwZXMuYyBjaGFuZ2VzIHdlcmUgbm90IGNvbW1pdHRlZCBiZWNhdXNlIHRoZXJlIHdlcmUgbm9uZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBDaGFuZ2VMb2cgc3VyZ2VyeSwgZ3N0ZW51bXR5cGVzLmMgY2hhbmdlcyB3ZXJlIG5vdCBjb21taXR0ZWQgYmVjYXVzZSB0aGVyZSB3ZXJlIG5vbmUKCjIwMDctMTItMTggMTM6MTg6MzUgKzAwMDAgIE1hdHRoaWFzIEJvbHRlIDxwaG90b25AbWFpbC51cGIuZGU+CgoJICB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6IFNvbWUgaW5kZW50aW9uIGZpeGVzIGJ5IGdzdC1pbmRlbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzogKHJlZ2lzdGVyX2dzdF9idWZmZXJfZmxhZyksCgkgIChyZWdpc3Rlcl9nc3RfYnVmZmVyX2NvcHlfZmxhZ3MpLCAocmVnaXN0ZXJfZ3N0X2Nsb2NrX2ZsYWdzKSwKCSAgKHJlZ2lzdGVyX2dzdF9kZWJ1Z19ncmFwaF9kZXRhaWxzKSwKCSAgKHJlZ2lzdGVyX2dzdF9zdGF0ZV9jaGFuZ2VfcmV0dXJuKSwgKHJlZ2lzdGVyX2dzdF9zdGF0ZV9jaGFuZ2UpLAoJICAocmVnaXN0ZXJfZ3N0X2VsZW1lbnRfZmxhZ3MpLCAocmVnaXN0ZXJfZ3N0X2NvcmVfZXJyb3IpLAoJICAocmVnaXN0ZXJfZ3N0X2xpYnJhcnlfZXJyb3IpLCAocmVnaXN0ZXJfZ3N0X3Jlc291cmNlX2Vycm9yKSwKCSAgKHJlZ2lzdGVyX2dzdF9zdHJlYW1fZXJyb3IpLCAocmVnaXN0ZXJfZ3N0X2V2ZW50X3R5cGVfZmxhZ3MpLAoJICAocmVnaXN0ZXJfZ3N0X2V2ZW50X3R5cGUpLCAocmVnaXN0ZXJfZ3N0X2luZGV4X2VudHJ5X3R5cGUpLAoJICAocmVnaXN0ZXJfZ3N0X2Fzc29jX2ZsYWdzKSwgKHJlZ2lzdGVyX2dzdF9tZXNzYWdlX3R5cGUpLAoJICAocmVnaXN0ZXJfZ3N0X21pbmlfb2JqZWN0X2ZsYWdzKSwgKHJlZ2lzdGVyX2dzdF9wYWRfbGlua19yZXR1cm4pLAoJICAocmVnaXN0ZXJfZ3N0X2Zsb3dfcmV0dXJuKSwgKHJlZ2lzdGVyX2dzdF9wYWRfdGVtcGxhdGVfZmxhZ3MpLAoJICAocmVnaXN0ZXJfZ3N0X3BpcGVsaW5lX2ZsYWdzKSwgKHJlZ2lzdGVyX2dzdF9wbHVnaW5fZXJyb3IpLAoJICAocmVnaXN0ZXJfZ3N0X3RhZ19tZXJnZV9tb2RlKSwgKHJlZ2lzdGVyX2dzdF9hbGxvY190cmFjZV9mbGFncyksCgkgIChyZWdpc3Rlcl9nc3RfdHlwZV9maW5kX3Byb2JhYmlsaXR5KSwgKHJlZ2lzdGVyX2dzdF9wYXJzZV9lcnJvcik6CgkgIFNvbWUgaW5kZW50aW9uIGZpeGVzIGJ5IGdzdC1pbmRlbnQuCgkgIFBhdGNoIGJ5OiBNYXR0aGlhcyBCb2x0ZSA8cGhvdG9uIGF0IG1haWwgZG90IHVwYiBkb3QgZGU+CgkgICogd2luMzIvdnM4L2dyYW1tYXIudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3Rjb250cm9sbGVyLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0cmVhbWVyLnZjcHJvajoKCSAgRml4IGNvbXBpbGF0aW9uIHdpdGggVlM4IGFuZCBpbmNsdWRlIHNvbWUgbWlzc2luZyBmaWxlcy4KCjIwMDctMTItMTggMTI6MDM6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5jOiBTbWFsbCBkb2NzIGFkZGl0aW9uOiBtZW50aW9uIHRoYXQgdGhlIHN0cmluZ3MgcmV0dXJuZWQgYnkgZ3N0X3RhZ19saXN0X2dldF9zdHJpbmcqKCkgYXJlIGluIFVURi04IGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgU21hbGwgZG9jcyBhZGRpdGlvbjogbWVudGlvbiB0aGF0IHRoZSBzdHJpbmdzIHJldHVybmVkIGJ5CgkgIGdzdF90YWdfbGlzdF9nZXRfc3RyaW5nKigpIGFyZSBpbiBVVEYtOCBlbmNvZGluZy4KCjIwMDctMTItMTcgMTk6NTk6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBNYWtlZmlsZS5hbTogVGhlIGNoZWNrLWV4cG9ydHMgc3R1ZmYgbW92ZWQgdG8gY29tbW9uL3dpbjMyLm1haywgc28gaW5jbHVkZSB0aGF0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgVGhlIGNoZWNrLWV4cG9ydHMgc3R1ZmYgbW92ZWQgdG8gY29tbW9uL3dpbjMyLm1haywgc28gaW5jbHVkZSB0aGF0LgoKMjAwNy0xMi0xNyAxNjozODo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBNYWtlIF93YWl0X3BsYXlpbmcoKSBub3QgY2hlY2sgYW55IHZhcmlhYmxlcyBzbyB0aGF0IHdlIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24gZnJvbSBzdWJjbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY193YWl0X3BsYXlpbmcpLAoJICAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2VlayksIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19zZXRfcGxheWluZyksIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgTWFrZSBfd2FpdF9wbGF5aW5nKCkgbm90IGNoZWNrIGFueSB2YXJpYWJsZXMgc28gdGhhdCB3ZSBjYW4gY2FsbCB0aGlzCgkgIGZ1bmN0aW9uIGZyb20gc3ViY2xhc3Nlcy4gTW92ZSB0aGUgY2hlY2tzIGVsc2V3aGVyZSBzaW1pbGFyIHRvCgkgIF93YWl0X3ByZXJvbGwoKSBpbiBiYXNlc2luay4KCSAgQWRkIHNvbWUgZGVidWdnaW5nLgoJICBPbmx5IHNpZ25hbCB0aGUgTElWRSBjb25kIHdoZW4gd2UgYXJlIGdvaW5nIGJhY2sgdG8gUExBWUlORy4KCjIwMDctMTItMTYgMTg6Mjk6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogVXNlIGdfcmVtb3ZlKCkgYW5kIGdfcmVuYW1lKCkuIENoZWNrIHJlc3VsdCBvZiBnX3JlbmFtZSgpLCBhbmQgZG9uJ3QgbGVhayB0aGUgb3BlbiBmaWxlIGRlc2MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlX2NhY2hlKToKCSAgVXNlIGdfcmVtb3ZlKCkgYW5kIGdfcmVuYW1lKCkuIENoZWNrIHJlc3VsdCBvZiBnX3JlbmFtZSgpLCBhbmQKCSAgZG9uJ3QgbGVhayB0aGUgb3BlbiBmaWxlIGRlc2NyaXB0b3IgaWYgd2UgZXJyb3Igb3V0IHdoZW4gd3JpdGluZy4KCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGxvYWRfcGx1Z2luKSwgKGdzdF9yZWdpc3RyeV94bWxfd3JpdGVfY2FjaGUpOgoJICBNdXN0IGNoZWNrIHRoZSByZXR1cm4gdmFsdWUgb2YgY2xvc2UoKSBhZnRlciB3cml0aW5nIG91dCB0aGUgbmV3CgkgIHJlZ2lzdHJ5IGZpbGUuICBTb21ldGltZXMgd3JpdGUgcHJvYmxlbXMgc3VjaCBhcyBvdXQtb2YtZGlza3NwYWNlCgkgIGFyZSBvbmx5IHJlcG9ydGVkIHdoZW4gdGhlIGZpbGUgaXMgY2xvc2VkIGFuZCBub3QgYWxyZWFkeSBkdXJpbmcKCSAgdGhlIHdyaXRlLiAgVGhpcyBtYXkgaGF2ZSBjYXVzZWQgcGFydGlhbC9icm9rZW4gcmVnaXN0cnkgZmlsZXMgaW4KCSAgc29tZSByYXJlIGNpcmN1bXN0YW5jZXMuIFNob3VsZCBmaXggIzUwMzY3NS4KCjIwMDctMTItMTYgMTc6Mzc6MTEgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBkb2NzLzogSWdub3JlIGZpbGVzIGdlbmVyYXRlZCBieSBuZXcgY29tbW9uLyogbW9kaWZpY2F0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvbGlicy8uY3ZzaWdub3JlOgoJICAqIGRvY3MvcGx1Z2lucy8uY3ZzaWdub3JlOgoJICBJZ25vcmUgZmlsZXMgZ2VuZXJhdGVkIGJ5IG5ldyBjb21tb24vKiBtb2RpZmljYXRpb25zCgoyMDA3LTEyLTE1IDE1OjE5OjMyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6IFllcywgeW91IGNhbiBhbHNvIGhhdmUgYSA8VEFCPiBpZiB5b3Ugd2FudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBZZXMsIHlvdSBjYW4gYWxzbyBoYXZlIGEgPFRBQj4gaWYgeW91IHdhbnQuCgoyMDA3LTEyLTE1IDE0OjU4OjU5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6IEFkZCBuZXcgYmFzZXRyYW5zZm9ybSBBUEkgdG8gd2luIGV4cG9ydCBmaWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIEFkZCBuZXcgYmFzZXRyYW5zZm9ybSBBUEkgdG8gd2luIGV4cG9ydCBmaWxlLgoKMjAwNy0xMi0xNSAxNDo0MjoyNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiBBZGp1c3QgdGhlIHRlc3QgdG8gdGhlIHJlZmNvdW50IGNoYW5nZSB0d28gZGF5cyBhZ28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgQWRqdXN0IHRoZSB0ZXN0IHRvIHRoZSByZWZjb3VudCBjaGFuZ2UgdHdvIGRheXMgYWdvLgoKMjAwNy0xMi0xNCAyMTozNjo1MCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBkb2NzL2ZhcS9nZXR0aW5nLnhtbDogRml4IHR5cG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dldHRpbmcueG1sOiBGaXggdHlwby4KCjIwMDctMTItMTQgMTY6NTI6MzggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIEFQSTogQWRkIGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfZ2FwX2F3YXJlKCkgdG8gY29udHJvbCB3aGV0aGVyIHRoZSBlbGVtZW50IGNvcnJlY3RseSBoYW5kbGVzIEdTVF9CVUZGRVJfRkxBR19HQVAgb3Igcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X2dhcF9hd2FyZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIEFQSTogQWRkIGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfZ2FwX2F3YXJlKCkgdG8gY29udHJvbCB3aGV0aGVyCgkgIHRoZSBlbGVtZW50IGNvcnJlY3RseSBoYW5kbGVzIEdTVF9CVUZGRVJfRkxBR19HQVAgb3Igc2hvdWxkbid0CgkgIGdldCBidWZmZXJzIHdpdGggdGhpcyBmbGFnIGF0IGFsbC4gRml4ZXMgIzUwMzIzMS4KCjIwMDctMTItMTMgMTY6NDk6NTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvOiBSZXBsYWNlIGdzdF9wYWRfZ2V0X3BhcmVudCBieSBHU1RfT0JKRUNUX1BBUkVOVCBpbnNpZGUgc3RyZWFtaW5nIHRocmVhZC4gQ29ycmVjdCBsb2cgbWVzc2FnZSBpbiBnc3RiYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIFJlcGxhY2UgZ3N0X3BhZF9nZXRfcGFyZW50IGJ5IEdTVF9PQkpFQ1RfUEFSRU5UIGluc2lkZSBzdHJlYW1pbmcKCSAgdGhyZWFkLiBDb3JyZWN0IGxvZyBtZXNzYWdlIGluIGdzdGJhc2VzcmMuYy4KCjIwMDctMTItMTMgMTM6NTk6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuYzogRml4IHBvc3NpYmxlIGNvbXBpbGVyIHdhcm5pbmcgKCM1MDM0MTcpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGVsZW1lbnRfZmluZF91bmNvbm5lY3RlZF9wYWQpOgoJICBGaXggcG9zc2libGUgY29tcGlsZXIgd2FybmluZyAoIzUwMzQxNykuCgoyMDA3LTEyLTEzIDExOjQxOjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdG9iamVjdC5jOiBEb24ndCB1c2UgR1NUX0NBVF9FVkVOVCBoZXJlIGZvciBsb2dnaW5nLCBpdCBtYWtlcyBubyBzZW5zZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9kaXNwYXRjaF9wcm9wZXJ0aWVzX2NoYW5nZWQpOgoJICBEb24ndCB1c2UgR1NUX0NBVF9FVkVOVCBoZXJlIGZvciBsb2dnaW5nLCBpdCBtYWtlcyBubyBzZW5zZS4KCjIwMDctMTItMTMgMTA6MzE6MzMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEFkZCBzdXBwb3J0IGZvciBHc3RGcmFjdGlvbiBwcm9wZXJ0aWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICBBZGQgc3VwcG9ydCBmb3IgR3N0RnJhY3Rpb24gcHJvcGVydGllcy4KCjIwMDctMTItMTIgMjM6MjA6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBNYWtlZmlsZS5hbTogQWRkIGNoZWNrLWV4cG9ydHMgdGFyZ2V0IGFuZCBydW4gaXQgYXMgcGFydCBvZiAnbWFrZSBjaGVjaycgKHNlZSAjNDk5MTQwIGFuZCAjNDkzOTgzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgIEFkZCBjaGVjay1leHBvcnRzIHRhcmdldCBhbmQgcnVuIGl0IGFzIHBhcnQgb2YgJ21ha2UgY2hlY2snCgkgIChzZWUgIzQ5OTE0MCBhbmQgIzQ5Mzk4MykuCgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RpbmZvLmM6IChfcHJpdl9nc3RfaW5fdmFsZ3JpbmQpLCAoX2dzdF9kZWJ1Z19pbml0KSwKCSAgKF9wcml2X2dzdF9pbl92YWxncmluZCk6CgkgICogZ3N0L2dzdGluZm8uaDogKEdzdExvZ0Z1bmN0aW9uKToKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzogKHR5cGVfZmluZF9kZWJ1ZyksIChHU1RfQ0FUX0RFRkFVTFQpLAoJICAoZ3N0X3R5cGVfZmluZF9yZWdpc3Rlcik6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOiAodHlwZV9maW5kX2RlYnVnKSwgKEdTVF9DQVRfREVGQVVMVCksCgkgIChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfZ2V0X3R5cGUpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoR1NUX0NBVF9ERUZBVUxUKSwKCSAgKEdTVF9DQVRfREVGQVVMVCksIChwYXJlbnRfY2xhc3MpLCAocHJpdl9nc3RfY29udHJvbGxlcl9rZXkpLAoJICAoZ3N0X2NvbnRyb2xsZXJfbmV3X3ZhbGlzdCksIChnc3RfY29udHJvbGxlcl9uZXdfbGlzdCksCgkgIChfZ3N0X2NvbnRyb2xsZXJfZGlzcG9zZSksIChfZ3N0X2NvbnRyb2xsZXJfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sc291cmNlLmM6IChHU1RfQ0FUX0RFRkFVTFQpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6IChHU1RfQ0FUX0RFRkFVTFQpLAoJICAoR1NUX0NBVF9ERUZBVUxUKSwgKGdzdF9vYmplY3RfdW5jb250cm9sX3Byb3BlcnRpZXMpLAoJICAoZ3N0X29iamVjdF9nZXRfY29udHJvbGxlciksIChnc3Rfb2JqZWN0X3NldF9jb250cm9sbGVyKSwKCSAgKGdzdF9vYmplY3Rfc3VnZ2VzdF9uZXh0X3N5bmMpLCAoZ3N0X29iamVjdF9zeW5jX3ZhbHVlcyksCgkgIChnc3Rfb2JqZWN0X3NldF9jb250cm9sX3NvdXJjZSksIChnc3Rfb2JqZWN0X2dldF9jb250cm9sX3NvdXJjZSksCgkgIChnc3Rfb2JqZWN0X2dldF92YWx1ZV9hcnJheXMpLCAoZ3N0X29iamVjdF9nZXRfdmFsdWVfYXJyYXkpLAoJICAoZ3N0X29iamVjdF9nZXRfY29udHJvbF9yYXRlKSwgKGdzdF9vYmplY3Rfc2V0X2NvbnRyb2xfcmF0ZSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6IChHU1RfQ0FUX0RFRkFVTFQpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvbGliLmM6IChHU1RfQ0FUX0RFRkFVTFQpOgoJICBNYWtlIHNvbWUgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIHN0YXRpYyBzdGF0aWM7IHJlbmFtZSBzb21lCgkgIHByaXZhdGUgc3ltYm9scyBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGV4cG9ydGVkOyBhZGQgc29tZSBGSVhNRQoJICBjb21tZW50cyBzbyB3ZSBjYW4gbW92ZSBhY2NpZGVudGFsbHkgZXhwb3J0ZWQgZnVuY3Rpb25zIGludG8KCSAgb3VyIHByaXZhdGUgc2VjdGlvbiBpbiAwLjExLgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgZ3N0X3V0aWxzX2dldF90aW1lc3RhbXAoKS4KCjIwMDctMTItMTIgMTQ6MDQ6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS4qOiBBZGQgbW9yZSBtaXNzaW5nICJTaW5jZToiIHRhZ3MgdG8gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIEFkZCBtb3JlIG1pc3NpbmcgIlNpbmNlOiIgdGFncyB0byBkb2NzLgoKMjAwNy0xMi0xMiAwNjo1ODo1NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHV0aWxzLmM6IEFkZCBtaXNpbmcgIlNpbmNlOiIgdG8gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIEFkZCBtaXNpbmcgIlNpbmNlOiIgdG8gZG9jcy4KCjIwMDctMTItMTEgMjI6MDM6NTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwbHVnaW4uYzogSW5jbHVkZSAiZ2xpYi1jb21wYXQtcHJpdmF0ZS5oIiB0byBmaXggdGhlIGJ1aWxkIG9uIHN5c3RlbSB3aXRoIGdsaWIgPCAyLjEwLiBGaXhlcyAjNTAzMTMxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIEluY2x1ZGUgImdsaWItY29tcGF0LXByaXZhdGUuaCIgdG8gZml4IHRoZSBidWlsZCBvbiBzeXN0ZW0gd2l0aAoJICBnbGliIDwgMi4xMC4gRml4ZXMgIzUwMzEzMS4KCjIwMDctMTItMTEgMjA6MzI6MjkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R1dGlscy4qOiBBY3R1YWxseSBpdHMgbm90IFBVUkUgYXMgaXQgZ2V0cyB0aGUgdGltZSBmcm9tIGVsc2V3aGVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFjdHVhbGx5IGl0cyBub3QgUFVSRSBhcyBpdCBnZXRzIHRoZSB0aW1lIGZyb20gZWxzZXdoZXJlLgoKMjAwNy0xMi0xMSAyMDoyMzo1OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQ2hhbmdlIEdTVF9HRVRfVElNRVNUQU1QIGludG8gZ3N0X3V0aWxfZ2V0X3RpbWVzdGFtcCBhbmQgcmVwbGFjZSBhbGwgdXNlcyBhcyB3ZSBkb24ndCBoYXZlIEhBVkVfUE9TSVhfVElNRVJTIGluIHB1YmxpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIENoYW5nZSBHU1RfR0VUX1RJTUVTVEFNUCBpbnRvIGdzdF91dGlsX2dldF90aW1lc3RhbXAgYW5kIHJlcGxhY2UgYWxsCgkgIHVzZXMgYXMgd2UgZG9uJ3QgaGF2ZSBIQVZFX1BPU0lYX1RJTUVSUyBpbiBwdWJsaWMgaGVhZGVycy4KCSAgVGhhbmtzIFRpbSBmb3Igc3BvdHRpbmcuCgoyMDA3LTEyLTExIDE1OjI5OjI2ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgdXBkYXRlIHNwZWMgZmlsZSBieSBtaXJyb3JpbmcgbGF0ZXN0IEZlZG9yYSBvbmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBzcGVjIGZpbGUgYnkgbWlycm9yaW5nIGxhdGVzdCBGZWRvcmEgb25lCgoyMDA3LTEyLTA5IDA0OjI4OjAzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBjb25maWd1cmUuYWM6IERvbid0IGRlZmluZSBHU1RfRElTQUJMRV9ERVBSRUNBVEVEIGZvciByZWxlYXNlcy4gRml4ZXMgIzQ5ODE4MS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBEb24ndCBkZWZpbmUgR1NUX0RJU0FCTEVfREVQUkVDQVRFRCBmb3IgcmVsZWFzZXMuIEZpeGVzICM0OTgxODEuCgoyMDA3LTEyLTA4IDEyOjU0OjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBEb24ndCBjcmFzaCBpbiBfZnJvbV9zdHJpbmcoKSBpZiB0aGUgc3RydWN0dXJlIG5hbWUgaXMgbm90IHZhbGlkIChmaXhlcyAjNTAxNTYwKS4gIEFsbG93IHN0cnVjdHVyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfdmFsaWRhdGVfbmFtZSksCgkgIChnc3Rfc3RydWN0dXJlX25ld192YWxpc3QpLCAoZ3N0X3N0cnVjdHVyZV9wYXJzZV92YWx1ZSksCgkgIChnc3Rfc3RydWN0dXJlX2Zyb21fc3RyaW5nKToKCSAgRG9uJ3QgY3Jhc2ggaW4gX2Zyb21fc3RyaW5nKCkgaWYgdGhlIHN0cnVjdHVyZSBuYW1lIGlzIG5vdCB2YWxpZAoJICAoZml4ZXMgIzUwMTU2MCkuICBBbGxvdyBzdHJ1Y3R1cmUgbmFtZXMgdG8gc3RhcnQgd2l0aCBhIG51bWJlcgoJICBhZ2FpbiAodGhpcyBhcHBhcmVudGx5IGJyb2tlIHRoZSB1YnVudHUgY29kZWMgaW5zdGFsbGVyKS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCksIChHU1RfU1RBUlRfVEVTVCksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZCB1bml0IHRlc3QgZm9yIHRoZSBjcmFzaDsgdXBkYXRlIHVuaXQgdGVzdHMgZm9yIG5ldyBiZWhhdmlvdXIuCgoyMDA3LTEyLTAzIDExOjA0OjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IENsYXJpZnkgZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkKCkgZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIENsYXJpZnkgZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkKCkgZG9jdW1lbnRhdGlvbi4KCSAgRml4ZXMgIzUwMDkxOS4KCjIwMDctMTItMDIgMjA6MzM6NDkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOiBEb24ndCBmb3JnZXQgdG8gZGlzdCB7Z3N0LGxpYnN9L3N0cnVjdF9ocHBhLmguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBEb24ndCBmb3JnZXQgdG8gZGlzdCB7Z3N0LGxpYnN9L3N0cnVjdF9ocHBhLmguCgoyMDA3LTExLTI4IDEzOjAyOjMwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFVzZSBuZXcgQVBJIHRvIGdldCBlbGFwc2VkIHRpbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgVXNlIG5ldyBBUEkgdG8gZ2V0IGVsYXBzZWQgdGltZS4KCjIwMDctMTEtMjggMTI6NTI6NDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IEZpeCB3cm9uZyBvcmRlciBvZiBhcmdzIGluIEdTVF9DTE9DS19ESUZGKCkgdXNhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgRml4IHdyb25nIG9yZGVyIG9mIGFyZ3MgaW4gR1NUX0NMT0NLX0RJRkYoKSB1c2FnZS4KCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIFVzZSBuZXcgQVBJIHRvIGdldCBlbGFwc2VkIHRpbWUuCgoyMDA3LTExLTI4IDEyOjM1OjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBSZW5hbWUgbmV3IEFQSSArIENoYW5nZUxvZyBzdXJnZXJ5IHRvIHJlbW92ZSBvbGQgbmFtZSBmcm9tIGxhc3QgZW50cnkuLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgUmVuYW1lIG5ldyBBUEkgKyBDaGFuZ2VMb2cgc3VyZ2VyeSB0byByZW1vdmUgb2xkIG5hbWUgZnJvbSBsYXN0IGVudHJ5Li4KCSAgQVBJOiBHU1RfR0VUX1RJTUVTVEFNUAoKMjAwNy0xMS0yOCAxMjoxMTo1OSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgTm93IGhpZGUgdGhlIGRpZmZlcmVudCBjbG9jayBzdHVmZiBiZWhpbmQgYSBtYWNyby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgIE5vdyBoaWRlIHRoZSBkaWZmZXJlbnQgY2xvY2sgc3R1ZmYgYmVoaW5kIGEgbWFjcm8uCgkgIEFQSTogR1NUX0dFVF9DVVJSRU5UX1RJTUUKCjIwMDctMTEtMjggMTE6Mzk6MzUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFwcGx5IHRoZSBwb3NpeC10aW1lciBjaGVjayBmcm9tICMzNjExNTUuIENvbmRpdGlvbmFsbHkgdXNlIHRoZSBwb3NpeCB0aW1lciBmb3IgbG9nZ2luZy4gVGhpcyBnaXZlcyBiZXR0ZXIgdGltZXN0YW1wIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICBBcHBseSB0aGUgcG9zaXgtdGltZXIgY2hlY2sgZnJvbSAjMzYxMTU1LiBDb25kaXRpb25hbGx5IHVzZSB0aGUgcG9zaXgKCSAgdGltZXIgZm9yIGxvZ2dpbmcuIFRoaXMgZ2l2ZXMgYmV0dGVyIHRpbWVzdGFtcCBwcmVjaXNzaW9uLCBsZXNzCgkgIG92ZXJoZWFkIGFuZCBubyBudHAgaml0dGVyLgoKMjAwNy0xMS0yOCAxMToxMTo1OCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogU29tZSBjbGVhbnVwIGFuZCBjaGVja2luZyBhZ2FpbnN0IGludmFsaWQgZnVuY3Rpb24gcGFyYW1ldGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF9taW5pX29iamVjdF9nZXRfdHlwZSksCgkgIChnc3RfbWluaV9vYmplY3RfY2xhc3NfaW5pdCksIChnc3RfbWluaV9vYmplY3RfY29weV9kZWZhdWx0KSwKCSAgKGdzdF9taW5pX29iamVjdF9maW5hbGl6ZSksIChnc3RfbWluaV9vYmplY3RfY29weSksCgkgIChnc3RfbWluaV9vYmplY3RfaXNfd3JpdGFibGUpLCAoZ3N0X21pbmlfb2JqZWN0X21ha2Vfd3JpdGFibGUpLAoJICAoZ3N0X21pbmlfb2JqZWN0X3JlcGxhY2UpLCAocGFyYW1fbWluaV9vYmplY3RfdmFsaWRhdGUpLAoJICAoZ3N0X3BhcmFtX3NwZWNfbWluaV9vYmplY3RfZ2V0X3R5cGUpOgoJICBTb21lIGNsZWFudXAgYW5kIGNoZWNraW5nIGFnYWluc3QgaW52YWxpZCBmdW5jdGlvbiBwYXJhbWV0ZXJzLgoKMjAwNy0xMS0yOCAxMDo1ODozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFN0YXJ0IG1lcmdpbmcgaW4gdGhlIGVhc3kgYml0cyBvZiAjMzYxMTU1LCB0aGUgbW9ub3RvbmljIGNsb2NrIHBhdGNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3N5c3RlbWNsb2NrX3N1aXRlKToKCSAgU3RhcnQgbWVyZ2luZyBpbiB0aGUgZWFzeSBiaXRzIG9mICMzNjExNTUsIHRoZSBtb25vdG9uaWMgY2xvY2sgcGF0Y2guCgkgIFRoaXMgb25lIGFkZHMgYSBmZXcgaGFuZHkgbWFjcm9zIHdpdGggZG9jcyBhbmQgYSB0ZXN0c3VpdGUuCgoyMDA3LTExLTI3IDE4OjQ1OjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiBCZSBhIGJpdCBzbWFydGVyIHdoZW4gc2Vla2luZywgbGlrZSwgZG9uJ3QgdHJ5IHRvIGRvIGEgc2VlayB3aGVuIGl0J3Mgbm90IG5lZWRlZC4gVGhpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfZXZlbnQpOgoJICBCZSBhIGJpdCBzbWFydGVyIHdoZW4gc2Vla2luZywgbGlrZSwgZG9uJ3QgdHJ5IHRvIGRvIGEgc2VlayB3aGVuIGl0J3MKCSAgbm90IG5lZWRlZC4gVGhpcyBhdm9pZHMgZXJyb3JzIHdoZW4gdGhlIGZpbGUgaXMgbm90IHNlZWthYmxlLgoJICBGaXhlcyAjNDk5NzcxLgoKMjAwNy0xMS0yNiAxMzoxNjowMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgRHVlIHRvIHBvcHVsYXIgcmVxdWVzdCByZW1vdmUgcHJlc2V0IGludGVyZmFjZSBhZ2Fpbi4gOi0oLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdHByZXNldC5jOgoJICAqIGdzdC9nc3RwcmVzZXQuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIER1ZSB0byBwb3B1bGFyIHJlcXVlc3QgcmVtb3ZlIHByZXNldCBpbnRlcmZhY2UgYWdhaW4uIDotKC4KCjIwMDctMTEtMjIgMjE6MzI6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IFByaW50ICdkZWZhdWx0IHZhbHVlJyBmb3IgZW51bXMgYW5kIGZsYWdzIHRvby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgUHJpbnQgJ2RlZmF1bHQgdmFsdWUnIGZvciBlbnVtcyBhbmQgZmxhZ3MgdG9vLgoKMjAwNy0xMS0yMiAxNTo1OTowMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy9wcm9maWxpbmcudHh0OiBNb3JlIGlkZWFzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL3Byb2ZpbGluZy50eHQ6CgkgIE1vcmUgaWRlYXMuCgkgICogZ3N0L2dzdGJpbi5jOgoJICBGaXggdHlwbyBhbmQgZ2l2ZSBiZXR0ZXIgbG9nIG91dHB1dC4KCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6CgkgIE1vcmUgaWRlYXMsIG1ha2UgZ3JhcGhzIGEgYml0IHNtYWxsZXIgYW5kIGZpeCBwYXJhbSBuYW1lIGluIG1hY3JvLgoKMjAwNy0xMS0yMiAxMzo1NjoyNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHByZXNldC5jOiBUcnkgaGFyZGVyIHRvIHVzZSB0aGUgcmV0dXJuIHZhbHVlIGZyb20gZmdldHMoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHByZXNldC5jOgoJICBUcnkgaGFyZGVyIHRvIHVzZSB0aGUgcmV0dXJuIHZhbHVlIGZyb20gZmdldHMoKS4KCjIwMDctMTEtMjEgMTY6MDg6MjUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwcmVzZXQuYzogRm9yIHRoZXNlcyB0d28gZmdldHMgd2UgaGFuZGxlIHRoZSBlcnJvciBiZWxvdy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHByZXNldC5jOgoJICBGb3IgdGhlc2VzIHR3byBmZ2V0cyB3ZSBoYW5kbGUgdGhlIGVycm9yIGJlbG93LgoKMjAwNy0xMS0yMSAxMzo0Nzo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogT25seSBzZW5kIHVwc3RyZWFtIGV2ZW50cyB1cHN0cmVhbS4gRml4ZXMgIzQ5ODc0Ni4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19zZW5kX2V2ZW50KToKCSAgT25seSBzZW5kIHVwc3RyZWFtIGV2ZW50cyB1cHN0cmVhbS4gRml4ZXMgIzQ5ODc0Ni4KCjIwMDctMTEtMjEgMTM6Mjc6NTAgKzAwMDAgIExhdXJlbnQgR2xheWFsIDxzcGdsZWdsZUB5YWhvby5mcj4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuKjogQWRkIHByb3BlcnR5IHRvIGRpc2FibGUgaGFuZG9mZiBzaWduYWwgZW1pc3Npb24uIEZpeGVzICM0OTg2OTQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTGF1cmVudCBHbGF5YWwgPHNwZ2xlZ2xlIGF0IHlhaG9vIGRvdCBmcj4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCksCgkgIChnc3RfaWRlbnRpdHlfaW5pdCksIChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKSwKCSAgKGdzdF9pZGVudGl0eV9zZXRfcHJvcGVydHkpLCAoZ3N0X2lkZW50aXR5X2dldF9wcm9wZXJ0eSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICBBZGQgcHJvcGVydHkgdG8gZGlzYWJsZSBoYW5kb2ZmIHNpZ25hbCBlbWlzc2lvbi4gRml4ZXMgIzQ5ODY5NC4KCSAgQVBJOiBHc3RJZGVudGl0eTo6c2lnbmFsLWhhbmRvZmZzCgoyMDA3LTExLTIxIDA5OjQ2OjUwICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogWWV0IGFub3RoZXIgbWlzc2luZyBsaWJyYXJ5IGZvciB0aGUgdW5pbnN0YWxsZWQgc2NyaXB0IChmZnQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTExLTIxICBKdWxpZW4gTW91dHRlICA8anVsaWVuQGZsdWVuZG8uY29tPgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogWWV0IGFub3RoZXIgbWlzc2luZyBsaWJyYXJ5IGZvciB0aGUKCSAgdW5pbnN0YWxsZWQgc2NyaXB0IChmZnQpCgoyMDA3LTExLTIxIDAwOjI0OjA0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOiBBZGQgYSBxdWVzdGlvbiBhYm91dCBob3cgdG8gc3VibWl0IG5ldyB0cmFuc2xhdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOgoJICBBZGQgYSBxdWVzdGlvbiBhYm91dCBob3cgdG8gc3VibWl0IG5ldyB0cmFuc2xhdGlvbnMuCgkgICogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgVXBkYXRlIHRoZSBjb250YWN0IGVtYWlsIGFkZHJlc3MgZm9yIHRoZSBUcmFuc2xhdGlvbiBQcm9qZWN0CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICBUaGUgcGFyZW50X2NsYXNzIGZvciBmZHNyYyBpcyBwdXNoc3JjLCBub3QgR3N0RWxlbWVudC4KCjIwMDctMTEtMjAgMTY6MzQ6MzggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwcmVzZXQuYzogUGx1ZyBhIGxlYWsgYW5kIGZpeCBzYXZpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwcmVzZXQuYzoKCSAgUGx1ZyBhIGxlYWsgYW5kIGZpeCBzYXZpbmcuCgoyMDA3LTExLTIwIDE2OjEwOjIxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgbmV3IGdzdF9wcmVzZXRfX2dldF9wcm9wZXJ0eV9uYW1lcygpIGZ1bmN0aW9uIHRvIHRoZSBkb2NzIHRvIGZpeCB0aGUgYnVpbGQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBuZXcgZ3N0X3ByZXNldF9fZ2V0X3Byb3BlcnR5X25hbWVzKCkgZnVuY3Rpb24gdG8gdGhlIGRvY3MKCSAgdG8gZml4IHRoZSBidWlsZC4KCjIwMDctMTEtMjAgMTU6NDY6MzkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwcmVzZXQuKjogQ2hhbmdlIF9nZXRfcHJlc2V0X25hbWVzIEFQSSB0byByZXR1cm4gYSBzdHJ2IHdpdGggY29waWVzLiBBZGQgX2dldF9wcm9wZXJ0eV9uYW1lcyB0byBhbGxvdyBpbXBsZW1lbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cHJlc2V0LmM6CgkgICogZ3N0L2dzdHByZXNldC5oOgoJICBDaGFuZ2UgX2dldF9wcmVzZXRfbmFtZXMgQVBJIHRvIHJldHVybiBhIHN0cnYgd2l0aCBjb3BpZXMuIEFkZAoJICBfZ2V0X3Byb3BlcnR5X25hbWVzIHRvIGFsbG93IGltcGxlbWVudGF0aW9ucyB0byBmaWx0ZXIgYW5kIHByb3ZpZGUKCSAgZ29vZCBkZWZhdWx0IGltcGxlbWVudGF0aW9uLgoKMjAwNy0xMS0yMCAxMTo0NjozNSArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IEFkZCBhbm90aGVyIGxpYnJhcnkgdG8gdGhlIHVuaW5zdGFsbGVkIHNjcmlwdCAoc2RwKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMTEtMjAgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IEFkZCBhbm90aGVyIGxpYnJhcnkgdG8gdGhlIHVuaW5zdGFsbGVkCgkgIHNjcmlwdCAoc2RwKS4KCjIwMDctMTEtMTkgMTU6MjM6NDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwcmVzZXQuYzogTW9yZSBjbGVhbnVwcywgZG9jcywgYW5kIFRPRE9zIGZyb20gY29tbWVudHMgdGhhdCBub3cgc2xvd2x5IGNvbWUgaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwcmVzZXQuYzoKCSAgTW9yZSBjbGVhbnVwcywgZG9jcywgYW5kIFRPRE9zIGZyb20gY29tbWVudHMgdGhhdCBub3cgc2xvd2x5IGNvbWUgaW4uCgoyMDA3LTExLTE5IDE0OjM4OjQ5ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogQWRkIG5ldyBiYXNlIGxpYnJhcmllcyBpbiB0aGUgTEQgc2VhcmNoIHBhdGguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTExLTE5ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBBZGQgbmV3IGJhc2UgbGlicmFyaWVzIGluIHRoZSBMRAoJICBzZWFyY2ggcGF0aC4KCjIwMDctMTEtMTkgMTE6NTQ6MTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwcmVzZXQuYzogRml4IGJvZ3VzIHdhcm5pbmcgYW5kIG1ha2UgdGhlIHByb3BlcnR5IHR5cGUgc3BlY2lmaWMgY29kZSBtb3JlIHNpbWlsYXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwcmVzZXQuYzoKCSAgRml4IGJvZ3VzIHdhcm5pbmcgYW5kIG1ha2UgdGhlIHByb3BlcnR5IHR5cGUgc3BlY2lmaWMgY29kZSBtb3JlCgkgIHNpbWlsYXIuCgoyMDA3LTExLTE5IDA5OjMzOjA1ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RwcmVzZXQuYzogTWFrZSBpdCBidWlsZCBvbiBPUyBYLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0xMS0xOSAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9nc3RwcmVzZXQuYzogKGdzdF9wcmVzZXRfZGVmYXVsdF9jcmVhdGVfcHJlc2V0KTogTWFrZQoJICBpdCBidWlsZCBvbiBPUyBYLgoKMjAwNy0xMS0xOSAwODo1MDowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogQ2hhbmdlIGVtYWlsLCBjbGVhbnVwcyBhZGQgc29tZSBtb3JlIGRlYnVnIGFuZCBjb21tZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5faW5pdCksCgkgIChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyksIChnc3RfYmluX2NvbnRpbnVlX2Z1bmMpOgoJICBDaGFuZ2UgZW1haWwsIGNsZWFudXBzIGFkZCBzb21lIG1vcmUgZGVidWcgYW5kIGNvbW1lbnRzLgoJICBBbHNvIHNldCBidXMgYW5kIGNsb2NrIG9uIG5ldyBlbGVtZW50cyB3aGVuIHRoZSBwaXBlbGluZSB3YXMgaW4gZXJyb3IuCgoyMDA3LTExLTE4IDE5OjMwOjEwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBGaXggYnVpbGQgd2l0aCAtLWRpc2FibGUtZ3N0LWRlYnVnLiBGaXhlcyAjNDk3ODU5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgRml4IGJ1aWxkIHdpdGggLS1kaXNhYmxlLWdzdC1kZWJ1Zy4gRml4ZXMgIzQ5Nzg1OS4KCSAgU3BvdHRlZCBieSBTYW1lZXIgTmFpay4KCjIwMDctMTEtMTcgMTc6NTA6MjEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RldmVudC5jOiBMaXR0bGUgZG9jdW1lbnRhdGlvbiBpbXByb3ZtZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgTGl0dGxlIGRvY3VtZW50YXRpb24gaW1wcm92bWVudC4KCSAgKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIE1vcmUgVE9ETyBjbGVhbnVwcy4gUmVtb3ZlIGMrKyBjb21tZW50cy4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgQWRkIFRPRE8gYW5kIHVzZSBxdWFyayBmcm9tIHN0YXRpYyBzdHJpbmcuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIFVzZSBxdWFyayBmcm9tIHN0YXRpYyBzdHJpbmcuCgoyMDA3LTExLTE3IDE3OjI0OjUzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cHJlc2V0LmM6IEFkZCBzb21lIGNvbW1lbnRzIGFuZCBUT0RPcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHByZXNldC5jOgoJICBBZGQgc29tZSBjb21tZW50cyBhbmQgVE9ET3MuCgkgICogZ3N0L2dzdHByZXNldC5oOgoJICBBZGQgcGFkZGluZyBmb3IgZnV0dXJlIGNoYW5nZXMuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBJbXBsZW1lbnQgdGhlIGlmYWNlLgoKMjAwNy0xMS0xNyAxNjo0MzoxMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQWRkIHRoZSBwcmVzZXQgaW50ZXJmYWNlIChGaXhlcyAjMzk2Nzc5KS4gRG8gc29tZSBkb2MgY2xlYW51cHMgYWxvbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuaDoKCSAgKiBnc3QvZ3N0cHJlc2V0LmM6CgkgICogZ3N0L2dzdHByZXNldC5oOgoJICBBZGQgdGhlIHByZXNldCBpbnRlcmZhY2UgKEZpeGVzICMzOTY3NzkpLiBEbyBzb21lIGRvYyBjbGVhbnVwcyBhbG9uZy4KCjIwMDctMTEtMTYgMDA6MjM6MTggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBCYWNrIHRvIENWUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gQ1ZTCgo9PT0gcmVsZWFzZSAwLjEwLjE1ID09PQoKMjAwNy0xMS0xNiAwMDowNzo1NCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IHJlbGVhc2luZyAwLjEwLjE1LCAiT2N0b2JlciIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgID09PSByZWxlYXNlIDAuMTAuMTUgPT09CgkgIDIwMDctMTEtMTUgIEphbiBTY2htaWR0IDxqYW4uc2NobWlkdEBzdW4uY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgcmVsZWFzaW5nIDAuMTAuMTUsICJPY3RvYmVyIgoKMjAwNy0xMS0xNSAyMzozMToxMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNy0xMS0xNCAxMjoyNDowOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB3aW4zMi92czYvbGliZ3N0cmVhbWVyLmRzcDogQ29udmVydCBsaW5lIGVuZGluZ3MgYmFjayB0byBET1MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RyZWFtZXIuZHNwOgoJICBDb252ZXJ0IGxpbmUgZW5kaW5ncyBiYWNrIHRvIERPUy4KCjIwMDctMTEtMTMgMTE6MzA6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvOiBVcGRhdGUgZmFzdCB0YWdyZWFkaW5nIGRyYWZ0IGFuZCBwZXJmb3JtYW5jZSBwcm9maWxpbmcgaWRlYXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXRhZ3JlYWRpbmcudHh0OgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvcHJvZmlsaW5nLnR4dDoKCSAgVXBkYXRlIGZhc3QgdGFncmVhZGluZyBkcmFmdCBhbmQgcGVyZm9ybWFuY2UgcHJvZmlsaW5nIGlkZWFzLgoKMjAwNy0xMS0wOSAxNDowNTowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRG9uJ3QgaG9sZCB0aGUgb2JqZWN0IGxvY2sgd2hlbiB1bnJlZmZpbmcgYSBidWZmZXIgYmVjYXVzZSBpdCBjb3VsZCBjYXVzZSBhIGRlYWRsb2NrIHdoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3NldF9sYXN0X2J1ZmZlcik6CgkgIERvbid0IGhvbGQgdGhlIG9iamVjdCBsb2NrIHdoZW4gdW5yZWZmaW5nIGEgYnVmZmVyIGJlY2F1c2UgaXQgY291bGQKCSAgY2F1c2UgYSBkZWFkbG9jayB3aGVuIHRoZSBmaW5hbGl6ZSBmdW5jdGlvbiB3YW50cyB0byBncmFiIHRoZSBvYmplY3QKCSAgbG9jayB0b28uIEZpeGVzICM0OTUxMzMuCgoyMDA3LTExLTA5IDExOjU2OjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogQWxzbyBhY2N1bXVsYXRlIHRpbWUgY29ycmVjdGx5IHdoZW4gZG9pbmcgcmV2ZXJzZSBwbGF5YmFjay4gRml4ZXMgIzQ4ODIwMSwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50X2Z1bGwpLAoJICAoZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUpLCAoZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKToKCSAgQWxzbyBhY2N1bXVsYXRlIHRpbWUgY29ycmVjdGx5IHdoZW4gZG9pbmcgcmV2ZXJzZSBwbGF5YmFjay4gRml4ZXMKCSAgIzQ4ODIwMSwKCSAgV2hlbiBjb252ZXJ0aW5nIHRvIHJ1bm5pbmcgYW5kIHN0cmVhbSB0aW1lLCB1c2UgZGVmYXVsdCB2YWx1ZXMgZm9yCgkgIHN0YXJ0L3N0b3AvdGltZS9hY2N1bSB3aGVuIGNvbXBhcmluZyBkaWZmZXJlbnQgZm9ybWF0cy4gRml4ZXMgIzQ5NDI0NS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKToKCSAgRG8gcnVubmluZy9zdHJlYW0gdGltZSBpbiBUSU1FIGZvcm1hdC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3NlZ21lbnRfc3VpdGUpOgoJICAyIG5ldyB1bml0IHRlc3RzIGZvciBzZWdtZW50IGFjY3VtdWxhdGlvbi4KCjIwMDctMTEtMDcgMTU6NTM6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBNb3ZlIGdldGVudigpIGJhY2sgaW50byBnc3RfaW5pdCwgc28gZXZlcnlvbmUgY2FuIGxpdmUgaGFwcGlseSBldmVyIGFmdGVyLiBNYWtlIHN1cmUgdGhlIHN5bWJvbCBpc24ndCBleHBvcnRlZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wcmUpOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6IChwcml2X2dzdF9kdW1wX2RvdF9kaXIpLCAoZGVidWdfZHVtcF9lbGVtZW50KSwKCSAgKF9nc3RfZGVidWdfYmluX3RvX2RvdF9maWxlKToKCSAgTW92ZSBnZXRlbnYoKSBiYWNrIGludG8gZ3N0X2luaXQsIHNvIGV2ZXJ5b25lIGNhbiBsaXZlIGhhcHBpbHkKCSAgZXZlciBhZnRlci4gTWFrZSBzdXJlIHRoZSBzeW1ib2wgaXNuJ3QgZXhwb3J0ZWQgdGhvdWdoLgoKMjAwNy0xMS0wNiAyMzoxNzowOSArMDAwMCAgU2ViYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLio6IFVwZGF0ZSBlbnVtIHR5cGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNlYmFzdGllbiBNb3V0dGUgIDxzZWJhc3RpZW4gbW91dHRlIG5ldD4KCSAgKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkgICogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJICBVcGRhdGUgZW51bSB0eXBlcy4KCSAgKiB3aW4zMi92czYvbGliZ3N0cmVhbWVyLmRzcDoKCSAgVXBkYXRlIHZzNiBwcm9qZWN0IGZpbGVzICgjNDk0MzQzKS4KCjIwMDctMTEtMDYgMTc6MTg6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogVW5pZnkgZmx1c2hpbmcgY29kZSwgcmVtb3ZlIHNvbWUgb2xkIHVubG9jayBjb2RlIHRoYXQgaXMgbm8gbG9uZ2VyIHVzZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfcXVlcnkpLAoJICAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2VlayksIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9ldmVudCksCgkgIChnc3RfYmFzZV9zcmNfc2V0X2ZsdXNoaW5nKSwgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdWxsKToKCSAgVW5pZnkgZmx1c2hpbmcgY29kZSwgcmVtb3ZlIHNvbWUgb2xkIHVubG9jayBjb2RlIHRoYXQgaXMgbm8gbG9uZ2VyIHVzZWQuCgkgIFRha2UgdGhlIHN0cmVhbWluZyBsb2NrIHdoZW4gc2Vla2luZyB0byBhdm9pZCByYWNlcy4gRml4ZXMgIzQ5MjcyOS4KCSAgQWRkZWQgc29tZSBtb3JlIGNvbW1lbnRzLgoKMjAwNy0xMS0wNiAxNToxMDozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogTWFrZSAgX2dzdF9kaXNhYmxlX3NlZ3RyYXAgc3RhdGljLCBpdCdzIG9ubHkgdXNlZCBpbiBnc3RwbHVnaW4uYyBhbmQgd2UgY2FuIHVzZSBnc3Rfc2VndHJhcF9pc19lbmFibGVkKCkgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChfZ3N0X2Rpc2FibGVfc2VndHJhcCk6CgkgIE1ha2UgIF9nc3RfZGlzYWJsZV9zZWd0cmFwIHN0YXRpYywgaXQncyBvbmx5IHVzZWQgaW4gZ3N0cGx1Z2luLmMgYW5kCgkgIHdlIGNhbiB1c2UgZ3N0X3NlZ3RyYXBfaXNfZW5hYmxlZCgpIHRoZXJlIG5vdyB0aGF0IHdlIGhhdmUgdGhhdCBBUEkuCgkgIE1vdmUgX2dzdF9kZWJ1Z19kdW1wX2RvdF9kaXIgaW50byBnc3RkZWJ1Z3V0aWxzLmMsIHRoZXJlJ3Mgbm8gcmVhc29uCgkgIHRvIGRvIHRoZSBnZXRlbnYgaGVyZSAoYW5kIGV4cG9ydCB0aGUgdmFyaWFibGUpLgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6IChkZWJ1Z19kdW1wX2VsZW1lbnQpLAoJICAoX2dzdF9kZWJ1Z19iaW5fdG9fZG90X2ZpbGUpLCAoX2dzdF9kZWJ1Z19iaW5fdG9fZG90X2ZpbGVfd2l0aF90cyk6CgkgIERvbid0IHVzZSBWTEFzIHdoaWNoIGlzIGEgQzk5aXNtIGFuZCB0aHJvd3Mgb2ZmIE1TVkMgKCM0OTM5ODMpLgoJICAqIGdzdC9nc3RpbmZvLmM6IChfcHJpdl9nc3RfaW5mb19zdGFydF90aW1lKSwgKF9nc3RfZGVidWdfaW5pdCksCgkgIChnc3RfZGVidWdfbG9nX2RlZmF1bHQpOgoJICBSZW5hbWUgX2dzdF9pbmZvX3N0YXJ0X3RpbWUgdG8gcHJpdl9nc3RfaW5mb19zdGFydF90aW1lIHNvIGl0CgkgIGRvZXNuJ3QgZ2V0IGV4cG9ydGVkICh3YXMgbmV2ZXIgaW4gYW55IGhlYWRlcikuCgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoX2dzdF9wbHVnaW5fZmF1bHRfaGFuZGxlcl9zZXR1cCksCgkgIChnc3RfcGx1Z2luX2xvYWRpbmdfbXV0ZXgpOgoJICBNYWtlIHN0YXRpYyBtdXRleCBnc3RfcGx1Z2luX2xvYWRpbmdfbXV0ZXggcmVhbGx5IHN0YXRpYyAod2FzIG5ldmVyCgkgIGluIGFueSBoZWFkZXIpLCBhbmQgdXNlIGdzdF9zZWd0cmFwX2lzX2VuYWJsZWQoKSBpbnN0ZWFkIG9mCgkgIF9nc3RfZGlzYWJsZV9zZWd0cmFwLgoJICAqIGdzdC9nc3R0cmFjZS5jOiAoX2dzdF90cmFjZV9kZWZhdWx0KToKCSAgTWFrZSBsb2NhbCBfZ3N0X3RyYWNlX2RlZmF1bHQgc3RhdGljICh3YXMgbmV2ZXIgaW4gYW55IGhlYWRlcikuCgoyMDA3LTExLTA2IDE0OjQzOjE0ICswMDAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSAgd2luMzIvY29tbW9uLzogQWRkIG1vcmUgbWlzc2luZyBzeW1ib2xzLCByZW1vdmUgc29tZSBkdXBsaWNhdGVzLCBhbmQgc29ydCBhcyB0aGUgJ3NvcnQnIGNvbW1hbmQgc29ydHMgaXQgKHBhcnRpYWxseSBmLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzICA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0ZGF0YXByb3RvY29sLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG1vcmUgbWlzc2luZyBzeW1ib2xzLCByZW1vdmUgc29tZSBkdXBsaWNhdGVzLCBhbmQgc29ydAoJICBhcyB0aGUgJ3NvcnQnIGNvbW1hbmQgc29ydHMgaXQgKHBhcnRpYWxseSBmaXhlcyAjNDkzOTgzKS4KCjIwMDctMTEtMDYgMTI6Mjg6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBPbmx5IGNoYW5nZSB0aGUgc3RhdGUgY29va2llIGlmIGEgZGlmZmVyZW50IHN0YXRlIHdhcyBzZXQgb24gdGhlIGVsZW1lbnQuIFNlZSAjNDkyNzI5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2Z1bmMpOgoJICBPbmx5IGNoYW5nZSB0aGUgc3RhdGUgY29va2llIGlmIGEgZGlmZmVyZW50IHN0YXRlIHdhcyBzZXQgb24gdGhlCgkgIGVsZW1lbnQuIFNlZSAjNDkyNzI5LgoKMjAwNy0xMS0wNiAxMTo0MTozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBSZW1vdmUgdW51c2VkIGFuZCB1bmluaXRpYWxpc2VkIHR5cGUgdmFyaWFibGVzIHRoYXQgd2VyZSBzdGlsbCBleHBvcnRlZCBmb3Igc29tZSByZWFzb24gKHRoZXkgd2VyZSBuZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgUmVtb3ZlIHVudXNlZCBhbmQgdW5pbml0aWFsaXNlZCB0eXBlIHZhcmlhYmxlcyB0aGF0IHdlcmUgc3RpbGwKCSAgZXhwb3J0ZWQgZm9yIHNvbWUgcmVhc29uICh0aGV5IHdlcmUgbmV2ZXIgaW4gYW55IGhlYWRlciBmaWxlcwoJICB0aG91Z2gpLgoKMjAwNy0xMS0wNiAxMDozMzoyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRG9uJ3QgdHJ5IHRvIHJlcG9ydCBhIDAgcG9zaXRpb24gd2hlbiB3ZSBkb24ndCBrbm93LCByZXR1cm4gLTEgYW5kIEZBTFNFIGluc3RlYWQuIFRoaXMgbS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb25fbGFzdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbl9wYXVzZWQpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBEb24ndCB0cnkgdG8gcmVwb3J0IGEgMCBwb3NpdGlvbiB3aGVuIHdlIGRvbid0IGtub3csIHJldHVybiAtMSBhbmQgRkFMU0UKCSAgaW5zdGVhZC4gVGhpcyBtb3N0bHkgaGFwcGVucyB3aGVuIHdlIGFyZSBwcmVyb2xsaW5nLgoJICBNYWtlIHN1cmUgd2UgY2FuIHJlcG9ydCB0aGUgcmlnaHQgcG9zaXRpb24gYmVmb3JlIHdlIHBvc3QgdGhlIEFTWU5DX0RPTkUKCSAgbWVzc2FnZSBzbyB0aGF0IGEgbWVzc2FnZSBoYW5kbGVyIGNhbiBxdWVyeSBwb3NpdGlvbiB3aXRob3V0IHJhY2VzLgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogKHNlbmRfZW9zKSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKGFzeW5jX2RvbmVfaGFuZG9mZiksIChhc3luY19kb25lX2Z1bmMpLCAoc2VuZF9idWZmZXIpLAoJICAoYXN5bmNfZG9uZV9lb3NfZnVuYyksIChnc3Rfc2lua3Nfc3VpdGUpOgoJICBBZGQgdHdvIHRlc3RzIGZvciB0aGUgYWJvdmUuCgoyMDA3LTExLTA2IDEwOjIxOjAxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgTUFJTlRBSU5FUlM6IFVwZGF0ZSB3aXRoIG5ldyBlbWFpbCBhZGRyZXNzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNQUlOVEFJTkVSUzoKCSAgVXBkYXRlIHdpdGggbmV3IGVtYWlsIGFkZHJlc3MuCgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgQWRkIHNvbWUgbW9yZSBpbmZvIGFib3V0IGZ1dHVyZSBwYWQtYmxvY2sgYW5kIG5lZ290aWF0aW9uIGNoYW5nZXMuCgkgICogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJICBBZGQgc29tZSBpZGVhcyBhYm91dCBidWZmZXJpbmcgcmVwb3J0aW5nLgoKMjAwNy0xMS0wNiAxMDowMTowNyArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogTWFrZWZpbGUuYW06CgkqIGNvbW1vbjoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHVwZGF0ZSBTUEVDIGZpbGUgd2l0aCBsYXRlc3QgY2hhbmdlcywgYWxzbyBhZGQgTUFJTlRBSU5FUlMgZmlsZSB0byBFWFRSQV9ESVNULCB0aGUgb21taXNzaW9uIG9mIHRoaXMgY2F1c2UgYSB3ZWlyZCBSUC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIFNQRUMgZmlsZSB3aXRoIGxhdGVzdCBjaGFuZ2VzLCBhbHNvIGFkZCBNQUlOVEFJTkVSUyBmaWxlIHRvIEVYVFJBX0RJU1QsIHRoZSBvbW1pc3Npb24gb2YgdGhpcyBjYXVzZSBhIHdlaXJkIFJQTSBidWlsZCBlcnJvciBvbiBGQzgKCjIwMDctMTEtMDYgMDA6NTk6NTQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOiBEaXNhYmxlIHNpbGx5IHJhY3kgdGVzdCB0aGF0IGFsd2F5cyBmYWlscyBvbiB0aGlzIGNvbWJpbmF0aW9uIG9mIENQVSBhbmQga2VybmVsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIERpc2FibGUgc2lsbHkgcmFjeSB0ZXN0IHRoYXQgYWx3YXlzIGZhaWxzIG9uIHRoaXMgY29tYmluYXRpb24gb2YgQ1BVCgkgIGFuZCBrZXJuZWwuCgoyMDA3LTExLTA0IDEwOjE2OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogbWVudGlvbiBidWcgbnVtYmVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogbWVudGlvbiBidWcgbnVtYmVyCgoyMDA3LTExLTA0IDEwOjEzOjMzICswMDAwICBNdXJyYXkgQ3VtbWluZyA8bXVycmF5Y0BtdXJyYXljLmNvbT4KCgkgIGdzdC9nc3RvYmplY3QuYzogQ29ycmVjdGVkIHRoZSByZWdpc3RyYXRpb24gb2YgdGhlIHBhcmVudC1zZXQgYW5kIHBhcmVudC11bnNldCBzaWduYWxzOiBUaGUgcGFyYW1ldGVyIGlzIGEgR3N0T2JqZWN0LC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE11cnJheSBDdW1taW5nICA8bXVycmF5Y0BtdXJyYXljLmNvbT4KCSAgKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIENvcnJlY3RlZCB0aGUgcmVnaXN0cmF0aW9uIG9mIHRoZSBwYXJlbnQtc2V0IGFuZCBwYXJlbnQtdW5zZXQKCSAgc2lnbmFsczogVGhlIHBhcmFtZXRlciBpcyBhIEdzdE9iamVjdCwgbm90IGEgR09iamVjdC4KCjIwMDctMTEtMDIgMTg6MzU6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBNb3ZlIGRlY2xhcmF0aW9uIG9mIHByaXZhdGUgX2dzdF9mb29faW5pdGlhbGl6ZSgpIGZ1bmN0aW9ucyBpbnRvIG91ciBwcml2YXRlIGhlYWRlciBmaWxlIHdoZXJlIHRoZXkgc2hvdWxkIGhhdmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3Rmb3JtYXQuaDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBNb3ZlIGRlY2xhcmF0aW9uIG9mIHByaXZhdGUgX2dzdF9mb29faW5pdGlhbGl6ZSgpIGZ1bmN0aW9ucyBpbnRvCgkgIG91ciBwcml2YXRlIGhlYWRlciBmaWxlIHdoZXJlIHRoZXkgc2hvdWxkIGhhdmUgYmVlbiBhbGwgYWxvbmcuCgoyMDA3LTExLTAyIDE3OjQzOjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3RrLWRvYyBmaXhlczsgdHJhaWxpbmctY29tbWEtaW4tZW51bSBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuaDoKCSAgKiBnc3QvZ3N0eG1sLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBndGstZG9jIGZpeGVzOyB0cmFpbGluZy1jb21tYS1pbi1lbnVtIGZpeC4KCjIwMDctMTEtMDIgMTY6Mjc6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IENsZWFuIHVwIG9uIGRlaW5pdCAobm90IHRoZSBleHRlcm5hbCBvbmVzIHRob3VnaCwgZG9lc24ndCBzZWVtIHRvIGJlIG5lZWRlZCBmb3Igc29tZSByZWFzb24pLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChnc3RfZGVpbml0KToKCSAgQ2xlYW4gdXAgb24gZGVpbml0IChub3QgdGhlIGV4dGVybmFsIG9uZXMgdGhvdWdoLCBkb2Vzbid0IHNlZW0gdG8gYmUKCSAgbmVlZGVkIGZvciBzb21lIHJlYXNvbikuCgoyMDA3LTExLTAxIDIzOjUxOjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZm8uaDogUmVtb3ZlIF9fZGVjbHNwZWMoZGxsaW1wb3J0KSBmb3IgTVNWQyB0aGF0IHdhcyBjb3BpZWQgb3ZlciBpbnRvIGNvcmUgZnJvbSBhIHBsdWdpbiwgb2J2aW91c2x5IHdpdGhvdXQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmg6IChHU1RfREVCVUdfQ0FURUdPUllfRVhURVJOKToKCSAgUmVtb3ZlIF9fZGVjbHNwZWMoZGxsaW1wb3J0KSBmb3IgTVNWQyB0aGF0IHdhcyBjb3BpZWQgb3ZlciBpbnRvIGNvcmUKCSAgZnJvbSBhIHBsdWdpbiwgb2J2aW91c2x5IHdpdGhvdXQgZXZlciBoYXZpbmcgYmVlbiB0ZXN0ZWQgKG5vdGUgdGhlCgkgIHNpbmdsZSB1bmRlcnNjb3JlIGluIF9kZWNsc3BlYyBpbiB0aGUgaW5pdGlhbCBjb21taXQpLCBhbmQgdGhhdCBkb2Vzbid0CgkgIHJlYWxseSBtYWtlIHNlbnNlLiAgU2VlICM0OTIwNzcuCgoyMDA3LTExLTAxIDIxOjUwOjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ190eXBlX2NsYXNzX3JlZigpIG90aGVyIHR5cGVzIGFzIHdlbGwsIHNlZSAjMzQ5NDEwIGFuZCAjNjQ3NjQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChfZ3N0X2V2ZW50X2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoX2dzdF9xdWVyeV9pbml0aWFsaXplKToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmMgKGdzdF9kcF9pbml0KToKCSAgZ190eXBlX2NsYXNzX3JlZigpIG90aGVyIHR5cGVzIGFzIHdlbGwsIHNlZSAjMzQ5NDEwIGFuZCAjNjQ3NjQuCgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoX2dzdF9idWZmZXJfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKF9nc3RfbWVzc2FnZV9pbml0aWFsaXplKToKCSAgU2ltcGxpZnkgZXhpc3RpbmcgZ190eXBlX2NsYXNzX3JlZigpLgoKMjAwNy0xMS0wMSAyMDoxMDo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3Rmb3JtYXQuYzogZ190eXBlX2NsYXNzX3JlZigpIG91ciBHc3RGb3JtYXQgdHlwZSB0byBtYWtlIHN1cmUgd2UgYXZvaWQgdGhlIHRocmVhZC11bnNhZmUgYml0cyBvZiB0aGUgR09iamVjdC9HVC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Zm9ybWF0LmM6IChfZ3N0X2Zvcm1hdF9pbml0aWFsaXplKToKCSAgZ190eXBlX2NsYXNzX3JlZigpIG91ciBHc3RGb3JtYXQgdHlwZSB0byBtYWtlIHN1cmUgd2UgYXZvaWQgdGhlCgkgIHRocmVhZC11bnNhZmUgYml0cyBvZiB0aGUgR09iamVjdC9HVHlwZSBzeXN0ZW0sIGllLiBidWcgIzM0OTQxMCBhbmQKCSAgYnVnICM2NDc2NC4gU2hvdWxkIGZpeCBpbnRlcm1pdHRlbnQgdGVlIHVuaXQgdGVzdCBmYWlsdXJlcyAoIzQ3NDgyMykuCgoyMDA3LTExLTAxIDE5OjE5OjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6IFNpbXBsaWZ5LCBzaW1wbGlmeSwgc2ltcGxpZnkgLSBvciBub3QuICBSZXdyaXRlIHVuaXQgdGVzdCBub3QgdG8gdXNlIGdzdF9wYXJzZV9sYXVuY2goKTsgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOiAodGVzdF9udW1fYnVmZmVycyk6CgkgIFNpbXBsaWZ5LCBzaW1wbGlmeSwgc2ltcGxpZnkgLSBvciBub3QuICBSZXdyaXRlIHVuaXQgdGVzdAoJICBub3QgdG8gdXNlIGdzdF9wYXJzZV9sYXVuY2goKTsgYWxsb3cgTiBzdWItc3RyZWFtcy4gSW5jcmVhc2luZwoJICB0aGUgbnVtYmVyIG9mIHN1Yi1zdHJlYW1zIHNlZW1zIHRvIHJlcHJvZHVjZSAjNDc0ODIzIG1vcmUgZWFzaWx5LgoKMjAwNy0xMC0zMSAyMjowMTowMyArMDAwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkgIEZpeCBhIGNvdXBsZSBvZiBtaXNzaW5nIGluY2x1ZGVzIGZvciBNU1ZDMjAwNSBhbmQgYSBDOTkgaXNzdWUuIEFsc28sIHN0YXJ0aW5nIHdpdGggMi4xNC4wLCBHTGliIHdvbid0IHByb3ZpZGUgYSBwaXBlKC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyAgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoJICAqIGdzdC9nc3R0cmFjZS5jOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiAoZ3N0X25ldF9jbGllbnRfY2xvY2tfbmV3KToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOiAoZ3N0X25ldF90aW1lX3BhY2tldF9zZW5kKToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6IChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfbmV3KToKCSAgRml4IGEgY291cGxlIG9mIG1pc3NpbmcgaW5jbHVkZXMgZm9yIE1TVkMyMDA1IGFuZCBhIEM5OSBpc3N1ZS4gQWxzbywKCSAgc3RhcnRpbmcgd2l0aCAyLjE0LjAsIEdMaWIgd29uJ3QgcHJvdmlkZSBhIHBpcGUoKSBtYWNybyBhbnkgbG9uZ2VyLAoJICBzbyB1c2UgX3BpcGUoKSBkaXJlY3RseSAoIzQ5MjA3NykuCgkgICogd2luMzIvY29tbW9uL2RpcmVudC5jOiAoX3RyZWFkZGlyKToKCSAgQWRkIGEgY291cGxlIG9mIGNhc3RzIHRvIG1ha2UgaXQgYnVpbGQgd2l0aG91dCB3YXJuaW5ncyB3aXRoIE1TVkMuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBzb21lIG1vcmUgc3ltYm9scyB0aGF0IG5lZWQgdG8gYmUgZXhwb3J0ZWQuCgoyMDA3LTEwLTMxIDE4OjA4OjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOiBVc2UgX0tFRVAgYXMgbWVyZ2UgbW9kZSByYXRoZXIgdGhhbiBfS0VFUF9BTEwsIHNvIHRhZ3MgYXJyaXZpbmcgaW4gYSBzZWNvbmQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzogKG1lc3NhZ2VfbG9vcCk6CgkgIFVzZSBfS0VFUCBhcyBtZXJnZSBtb2RlIHJhdGhlciB0aGFuIF9LRUVQX0FMTCwgc28gdGFncwoJICBhcnJpdmluZyBpbiBhIHNlY29uZCBvciB0aGlyZCB0YWcgbWVzc2FnZSBhcmUgYWRkZWQgdG8KCSAgdGhlIHRhZyBsaXN0IGFzIHdlbGwuCgoyMDA3LTEwLTMxIDEzOjAxOjM0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogSXRzICJTaW5jZToiIGFuZCBub3QgIkBTaW5jZToiLiBBbmQgcmVtb3ZlIGFuIHN1cGVyZmxvdXMgY2FzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIEl0cyAiU2luY2U6IiBhbmQgbm90ICJAU2luY2U6Ii4gQW5kIHJlbW92ZSBhbiBzdXBlcmZsb3VzIGNhc3QuCgoyMDA3LTEwLTMwIDE4OjMwOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIGEgbmV3IGxhc3QtYnVmZmVyIHByb3BlcnR5IHRoYXQgY29udGFpbnMgdGhlIGxhc3QgYnVmZmVyIHVzZWQgaW4gYmFzZXNpbmsgZm9yIHByZXJvbGwgb3IgcmVuZGVyaW5nLiB1c2VmdWwgZm9yIG1hLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X2xhc3RfYnVmZmVyKSwgKGdzdF9iYXNlX3Npbmtfc2V0X2xhc3RfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlX3NpbmtfcmVuZGVyX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVldWVfb2JqZWN0X3VubG9ja2VkKSwgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgQWRkIGEgbmV3IGxhc3QtYnVmZmVyIHByb3BlcnR5IHRoYXQgY29udGFpbnMgdGhlIGxhc3QgYnVmZmVyIHVzZWQgaW4KCSAgYmFzZXNpbmsgZm9yIHByZXJvbGwgb3IgcmVuZGVyaW5nLiB1c2VmdWwgZm9yIG1ha2luZyBzbmFwc2hvdHMuCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19nZXRfbGFzdF9idWZmZXIoKQoJICBBUEk6IEdzdEJhc2VTaW5rOjpsYXN0LWJ1ZmZlcgoKMjAwNy0xMC0yOSAxMzo0NjoyNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgSW1wcm92ZSBiaW4gZ3JhcGggZHVtcGluZywgYnkgdXNpbmcgdGhlIGVudnZhciB0byBzcGVjaWZ5IGEgcGF0aC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuaDoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIEltcHJvdmUgYmluIGdyYXBoIGR1bXBpbmcsIGJ5IHVzaW5nIHRoZSBlbnZ2YXIgdG8gc3BlY2lmeSBhIHBhdGguCgkgIFJlbmFtZSB0aGUgZW52dmFyIHRvIEdTVF9ERUJVR19EVU1QX0RPVF9ESVIuCgoyMDA3LTEwLTI5IDEzOjEwOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogUG9zdCBzcGVjaWFsIGVycm9yIG1lc3NhZ2UgaWYgd2UgY2FuJ3QgZGV0ZXJtaW5lIHRoZSB0eXBlIG9mIGEgc3RyZWFtIGJlY2F1c2UgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9hY3RpdmF0ZSk6CgkgIFBvc3Qgc3BlY2lhbCBlcnJvciBtZXNzYWdlIGlmIHdlIGNhbid0IGRldGVybWluZSB0aGUgdHlwZSBvZiBhIHN0cmVhbQoJICBiZWNhdXNlIGl0J3MgZW1wdHkuCgoyMDA3LTEwLTI5IDEwOjA1OjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBEb2N1bWVudCBuZXcgZW52LXZhci4gQWRkIG9uZSBsb2ctbGluZSBhZnRlciBkdW1wbmcgYSBncmFwaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgRG9jdW1lbnQgbmV3IGVudi12YXIuIEFkZCBvbmUgbG9nLWxpbmUgYWZ0ZXIgZHVtcG5nIGEgZ3JhcGguCgoyMDA3LTEwLTI2IDE4OjM5OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY29uZmlndXJlLmFjOiBVZ2x5IGhhY2sgdG8gcHV0IHRoZSAocmVjZW50bHkgcmVtb3ZlZCBhbmQgbm9uLXBvcnRhYmxlLCBhcHBhcmVudGx5KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFVnbHkgaGFjayB0byBwdXQgdGhlIChyZWNlbnRseSByZW1vdmVkIGFuZCBub24tcG9ydGFibGUsIGFwcGFyZW50bHkpCgkgIC1XbCwtLWV4cG9ydC1keW5hbWljIGJhY2sgaW50byBsaWJnc3RjaGVjaydzIExERkxBR1Mgd2hlbiB3ZSdyZSB1c2luZwoJICBHTlUgbGQsIGJlY2F1c2Ugd2l0aG91dCB0aGF0ICdtYWtlIGNoZWNrJyBmYWlscyBtaXNlcmFibHkgb24gbXkgZGViaWFuCgkgIHN0YWJsZSBib3guICBTb21lb25lIHdpdGggbW9yZSBrbm93bGVkZ2Ugb2YgbGlua2VyIGludHJpY2FjaWVzIGFuZAoJICBwb3J0YWJpbGl0eSBpc3N1ZXMgdGhhbiBtZSBmaXggdGhpcyBwcm9wZXJseSBwbGVhc2UuCgoyMDA3LTEwLTI1IDE3OjIwOjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBSZXNldCBsYXN0IHNlZW4gcG9zaXRpb24gYWZ0ZXIgZmx1c2hpbmcgc28gdGhhdCB3ZSBkb24ndCByZXBvcnQgdGhlIG9sZCBwb3NpdGlvbiBhbnltb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2V2ZW50KToKCSAgUmVzZXQgbGFzdCBzZWVuIHBvc2l0aW9uIGFmdGVyIGZsdXNoaW5nIHNvIHRoYXQgd2UgZG9uJ3QgcmVwb3J0IHRoZSBvbGQKCSAgcG9zaXRpb24gYW55bW9yZS4KCjIwMDctMTAtMjUgMTY6MTk6MDUgKzAwMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvQG5udmEub3JnPgoKCSAgZ3N0LzogUGF0Y2ggZnJvbSBBbGVzc2FuZHJvIERlY2luYSBhZGRpbmcgZ2V0X3R5cGVfZnVsbCBhbmQgZ2V0X3Byb3RvY29sc19mdWxsIHByaXZhdGUgdmZ1bmNzIHRvIHRoZSBVUklIYW5kbGVyIGludGVyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoZ3N0X2VsZW1lbnRfcmVnaXN0ZXIpOgoJICAqIGdzdC9nc3R1cmkuaDoKCSAgUGF0Y2ggZnJvbSBBbGVzc2FuZHJvIERlY2luYSBhZGRpbmcgZ2V0X3R5cGVfZnVsbCBhbmQKCSAgZ2V0X3Byb3RvY29sc19mdWxsIHByaXZhdGUgdmZ1bmNzIHRvIHRoZSBVUklIYW5kbGVyIGludGVyZmFjZQoJICB0byBhbGxvdyBiaW5kaW5ncyB0byBzdXBwb3J0IGNyZWF0aW5nIFVSSSBoYW5kbGVycy4KCSAgUGFydGlhbGx5IGZpeGVzOiAjMzM5Mjc5CgkgIEFQSTogR3N0VVJJSGFuZGxlckludGVyZmFjZTo6Z2V0X3R5cGVfZnVsbAoJICBBUEk6IEdzdFVSSUhhbmRsZXJJbnRlcmZhY2U6OmdldF9wcm90b2NvbHNfZnVsbAoKMjAwNy0xMC0yNSAxNToxNDowMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogTWFrZSBpdCBzbyB0aGF0IHBhZHMgYXJlIGNvbnNpZGVyZWQgbGlua2VkIHVudGlsIGEgYnVmZmVyIGlzIHB1c2hlZCBhbmQgZGlzY292ZXJlZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3RfbXVsdGlfcXVldWVfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9yZXF1ZXN0X25ld19wYWQpLCAoZ3N0X3NpbmdsZV9xdWV1ZV9mbHVzaCksCgkgIChnc3RfbXVsdGlfcXVldWVfbG9vcCksIChnc3RfbXVsdGlfcXVldWVfc2lua19hY3RpdmF0ZV9wdXNoKToKCSAgTWFrZSBpdCBzbyB0aGF0IHBhZHMgYXJlIGNvbnNpZGVyZWQgbGlua2VkIHVudGlsIGEgYnVmZmVyIGlzIHB1c2hlZAoJICBhbmQgZGlzY292ZXJlZCBvdGhlcndpc2UuIFRoaXMgYXZvaWRzIHByb2JsZW1zIHdpdGggZGVjb2RlYmluMiBoYW5naW5nCgkgIGFmdGVyIGEgc2VlayBpbiB0aGUgZmlsZXNyYyAhIGRlY29kZWJpbjIgbmFtZT1kICEgZmFrZXNpbmsgZC4gISBmYWtlc2luawoJICBjYXNlLgoJICBNYWtlIHN1cmUgd2UgbG9jayB0aGUgbXVsdGlxdWV1ZSB3aGVuIHVwZGF0aW5nIHRoZSBtYXgtc2l6ZSBwcm9wZXJ0aWVzLgoJICBGaXggYSBjcmFzaCBvbiBTb2xhcmlzIGluIGEgZGVidWcgc3RhdGVtZW50IGluIGdldF9yZXF1ZXN0X3BhZCB0aGF0CgkgIHBhc3NlcyBhIE5VTEwgc3RyaW5nIHRvIEdTVF9ERUJVRy4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6IChtcV9kdW1teXBhZF9jaGFpbiksCgkgIChydW5fb3V0cHV0X29yZGVyX3Rlc3QpOgoJICBGaXggdGhlIHRlc3QgdG8gYWxsb3cgdGhlIGZpcnN0IGJ1ZmZlciBvbiBub3QtbGlua2VkIHBhZHMgdG8gY29tZSBvdXQKCSAgb2Ygc2VxdWVuY2Ugd2hpbGUgbXVsdGlxdWV1ZSBkaXNjb3ZlcnMgdGhhdCB0aGV5IGFyZSBub3QtbGlua2VkLgoKMjAwNy0xMC0yNSAxNDo1MDo0OCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBVc2UgYSBjdXN0b20gZXhwb3J0IHN5bWJvbCByZWdleCBmb3IgbGliZ3N0Y2hlY2ssIGFzIGl0IG5lZWRzIHRvIGV4cG9ydCBzeW1ib2xzIHRoYXQgZG9uJ3QgbWF0Y2ggdGhlIHN0YW5kYXJkIEdTdHJlYW0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBVc2UgYSBjdXN0b20gZXhwb3J0IHN5bWJvbCByZWdleCBmb3IgbGliZ3N0Y2hlY2ssIGFzIGl0IG5lZWRzCgkgIHRvIGV4cG9ydCBzeW1ib2xzIHRoYXQgZG9uJ3QgbWF0Y2ggdGhlIHN0YW5kYXJkIEdTdHJlYW1lciBnc3RfKgoJICBwYXR0ZXJuLCBhbmQgIC0tZXhwb3J0LWR5bmFtaWMgaXMgbm90IHBvcnRhYmxlIChvbmx5IHdvcmtzIG9uCgkgIEdOVSBsZCkKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX3NldHVwX3NyY19wYWQpLAoJICAoZ3N0X2NoZWNrX3NldHVwX3NpbmtfcGFkKToKCSAgTWFrZSBzdXJlIHRvIHBhc3MgYSBtZXNzYWdlIHBhcmFtZXRlciB0byB0aGUgZmFpbF8qIG1hY3Jvcy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggc29tZSBjb21waWxlciB3YXJuaW5ncy4KCjIwMDctMTAtMjUgMTQ6NDE6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IERpc2FibGUgdGVzdCB0aGF0IGNoZWNrcyB0aGF0IHdoaXRlIHNwYWNlcyBhcmUgbm90IGFsbG93ZWQgaW4gc3RydWN0dXJlIG5hbWVzIG9yIGZpZWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAodGVzdF90b19zdHJpbmcpOgoJICBEaXNhYmxlIHRlc3QgdGhhdCBjaGVja3MgdGhhdCB3aGl0ZSBzcGFjZXMgYXJlIG5vdCBhbGxvd2VkCgkgIGluIHN0cnVjdHVyZSBuYW1lcyBvciBmaWVsZCBuYW1lcywgc2luY2Ugd2UgbmVlZCB0bwoJICBzdXBwb3J0IHRoYXQgZm9yIG5vdyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgcmVhc29ucy4KCjIwMDctMTAtMjQgMTM6MTM6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBHU1RfVEFHX0FSVElTVF9TT1JUTkFNRQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgQVBJOiBhZGQgR1NUX1RBR19BUlRJU1RfU09SVE5BTUUKCSAgQVBJOiBhZGQgR1NUX1RBR19BTEJVTV9TT1JUTkFNRQoJICBBUEk6IGFkZCBHU1RfVEFHX1RJVExFX1NPUlROQU1FCgkgIEFkZCB0YWcgdmFyaWFudHMgZm9yIHNvcnRpbmcgKCM0MTQ1MzkpLgoKMjAwNy0xMC0yNCAxMzowMDo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogQWxzbyBhbGxvdyB3aGl0ZSBzcGFjZSBmb3IgbmFtZXMgc28gd2UgZG9uJ3QgYnJlYWsgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgQWxzbyBhbGxvdyB3aGl0ZSBzcGFjZSBmb3IgbmFtZXMgc28gd2UgZG9uJ3QgYnJlYWsKCSAgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuCgoyMDA3LTEwLTIyIDE1OjM3OjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBTbWFsbCB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2VnbWVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtcy50eHQ6CgkgIFNtYWxsIHVwZGF0ZXMuCgoyMDA3LTEwLTIyIDExOjMyOjE0ICswMDAwICBFZGdhcmQgTGltYSA8ZWRnYXJkLmxpbWFAaW5kdC5vcmcuYnI+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBGaXhlZCBkb2N1bWVudGF0aW9uIGZyb20gbXkgcHJldmlvdXMgY29tbWl0IChhZGRlZCBuZXcgQVBJIGFkZCBnc3RfdmFsdWVfc2V0X3N0cnVjdHUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgRml4ZWQgZG9jdW1lbnRhdGlvbiBmcm9tIG15IHByZXZpb3VzIGNvbW1pdCAoYWRkZWQgbmV3IEFQSSBhZGQKCSAgZ3N0X3ZhbHVlX3NldF9zdHJ1Y3R1cmUoKSwgYWRkIGdzdF92YWx1ZV9nZXRfc3RydWN0dXJlKCkgYW5kCgkgIEdTVF9WQUxVRV9IT0xEU19TVFJVQ1RVUkUpLgoKMjAwNy0xMC0yMiAxMToxMDoyOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGRlYnVndXRpbHMuYzogUmVmbG93IGNvZGUgdG8gZml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgd2FybmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgUmVmbG93IGNvZGUgdG8gZml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgd2FybmluZy4KCjIwMDctMTAtMjIgMDg6NTM6MjYgKzAwMDAgIEVkZ2FyZCBMaW1hIDxlZGdhcmQubGltYUBpbmR0Lm9yZy5icj4KCgkgIEFkZGVkIEdzdFN0cnVjdHVyZSB0byBnc3RfdmFsdWVfdGFibGUgYW5kIGl0cyByZWxhdGVkIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX3RvX3N0cmluZyksCgkgIChnc3RfY2Fwc19mcm9tX3N0cmluZ19pbnBsYWNlKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2dldF9hYmJycyksCgkgIChnc3Rfc3RydWN0dXJlX3RvX3N0cmluZyksIChnc3Rfc3RydWN0dXJlX2Zyb21fc3RyaW5nKToKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9zZXRfc3RydWN0dXJlKSwKCSAgKGdzdF92YWx1ZV9nZXRfc3RydWN0dXJlKSwgKGdzdF92YWx1ZV9zZXJpYWxpemVfc3RydWN0dXJlKSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9zdHJ1Y3R1cmUpLCAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3Rfc3RydWN0dXJlX3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkZWQgR3N0U3RydWN0dXJlIHRvIGdzdF92YWx1ZV90YWJsZSBhbmQgaXRzIHJlbGF0ZWQgZnVuY3Rpb25zLgoJICBDaGFuZ2VkIGdzdF9zdHJ1Y3R1cmVfdG9fc3RyaW5nIHRvIHByaW50ICc7JyBpbiB0aGUgZW5kLgoJICBDaGFuZ2VkIGdzdF9jYXBzX3RvX3N0cmluZyB0byBub3QgcHJpbnQgJzsnIGJldGV3ZWVuIGl0cwoJICBmaWVsZHMgKHN0cnVjdHVyZXMpIGFueW1vcmUgYW5kIHJlbW92ZSB0aGUgbGFzdGVzICc7JyBmcm9tIGxhdGVzdAoJICBzdHJ1Y3R1cmUuIE5vdyBpdCBpcyBwb3NzaWJsZSB0byBoYXZlIG5lc3RlZCBzdHJ1Y3R1cmVzLgoJICBJbiBhZGRpdGlvbiwgYmFja3dhcmQgY29tcGF0aWJpbHR5IGlzIGFzc3VyZWQgYnkgYWNjZXB0aW5nICdcMCcgYXMKCSAgZW5kIGRlbGltaXRlci4gRml4ZXM6ICM0ODc5NjkuCgkgIEFQSTogYWRkIGdzdF92YWx1ZV9zZXRfc3RydWN0dXJlKCkKCSAgQVBJOiBhZGQgZ3N0X3ZhbHVlX2dldF9zdHJ1Y3R1cmUoKQoKMjAwNy0xMC0xOSAwOTo0ODozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RidXMuYzogV2hlbiBubyBHU291cmNlIGNhbGxiYWNrIGhhcyBiZWVuIHNldCB1cCwgdGVsbCBkZXZlbG9wZXIgdG8gdXNlIGEgZnVuY3Rpb24gdGhhdCBhY3R1YWxseSBleGlzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzoKCSAgV2hlbiBubyBHU291cmNlIGNhbGxiYWNrIGhhcyBiZWVuIHNldCB1cCwgdGVsbCBkZXZlbG9wZXIKCSAgdG8gdXNlIGEgZnVuY3Rpb24gdGhhdCBhY3R1YWxseSBleGlzdHMuCgoyMDA3LTEwLTE3IDEyOjU4OjIzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBbGxvdyBkdW1waW5nIHBpcGVsaW5lcyBhcyBkb3QgZ3JhcGhzLiBGaXhlcyAjNDU2NTczLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdC5oOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuaDoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBBbGxvdyBkdW1waW5nIHBpcGVsaW5lcyBhcyBkb3QgZ3JhcGhzLiBGaXhlcyAjNDU2NTczLgoKMjAwNy0xMC0xNiAyMTo0ODoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogQWxsb3cgJysnIGFzIHdlbGwsIGl0IGNhbiBiZSBwYXJ0IG9mIG1lZGlhIG9yIG1pbWUgdHlwZXMgc3VjaCBhcyBpbWFnZS9zdmcreG1sLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIEFsbG93ICcrJyBhcyB3ZWxsLCBpdCBjYW4gYmUgcGFydCBvZiBtZWRpYSBvciBtaW1lIHR5cGVzCgkgIHN1Y2ggYXMgaW1hZ2Uvc3ZnK3htbC4KCjIwMDctMTAtMTYgMjA6MzA6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBnc3RfYnVzX3BvcF9maWx0ZXJlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RidXMuYzoKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgIEFQSTogYWRkIGdzdF9idXNfcG9wX2ZpbHRlcmVkCgkgIEFQSTogYWRkIGdzdF9idXNfdGltZWRfcG9wX2ZpbHRlcmVkCgkgIFR3byBuZXcgZnVuY3Rpb25zIGZvciB3YWl0aW5nIGZvciBzcGVjaWZpYyBtZXNzYWdlIHR5cGVzIG9uIHRoZQoJICBidXMgZm9yIGEgc3BlY2lmaWVkIGFtb3VudCBvZiB0aW1lIHdpdGhvdXQgaXRlcmF0aW5nIGFueSBtYWluCgkgIGxvb3BzIG9yIG1haW4gY29udGV4dHMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJICBTb21lIHRlc3RzIGZvciB0aGUgbmV3IGZ1bmN0aW9ucy4KCjIwMDctMTAtMTYgMTc6MjE6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBNYWtlIGd0ay1kb2MgaWdub3JlIHN0dWZmIGl0IHNob3VsZCBpZ25vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIE1ha2UgZ3RrLWRvYyBpZ25vcmUgc3R1ZmYgaXQgc2hvdWxkIGlnbm9yZS4KCjIwMDctMTAtMTYgMTY6MTI6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay4qOiBBbGxvdyBydW50aW1lIHNlbGVjdGlvbiBvZiB1bml0IHRlc3RzIHRvIHJ1biB2aWEgdGhlIEdTVF9DSEVDS1MgZW52aXJvbm1lbnQgdmFyaWFibGUgKHRlc3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBBbGxvdyBydW50aW1lIHNlbGVjdGlvbiBvZiB1bml0IHRlc3RzIHRvIHJ1biB2aWEgdGhlIEdTVF9DSEVDS1MKCSAgZW52aXJvbm1lbnQgdmFyaWFibGUgKHRlc3QgY2FzZSBmdW5jdGlvbiBuYW1lcywgY29tbWEtc2VwYXJhdGVkKS4KCjIwMDctMTAtMTYgMTM6NTg6NDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIFJldmVydCBzZXJpYWxpc2F0aW9uIGNoYW5nZSBhbmQgY29uc3RyYWluIHN0cnVjdHVyZS1uYW1lcyBhZnRlciBjb25zZW5zdXMgb24gaXJjLiBVcGRhdGUgYXBpIGRvY3VtZW50YXRpb24gdG8gcmVmbGVjdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBSZXZlcnQgc2VyaWFsaXNhdGlvbiBjaGFuZ2UgYW5kIGNvbnN0cmFpbiBzdHJ1Y3R1cmUtbmFtZXMgYWZ0ZXIKCSAgY29uc2Vuc3VzIG9uIGlyYy4gVXBkYXRlIGFwaSBkb2N1bWVudGF0aW9uIHRvIHJlZmxlY3QgdGhlIGNoYW5nZS4KCjIwMDctMTAtMTYgMDY6MzI6MDcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogSW1wcm92ZSBzZXJpYWxpemF0aW9uIGFuZCBmaXggdGVzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgSW1wcm92ZSBzZXJpYWxpemF0aW9uIGFuZCBmaXggdGVzdHMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBBZGQgYW5vdGhlciB0ZXN0IHRoYXQgY292ZXJzIHdoeSBJIGFjdHVhbGx5IGRpZCB0aGUgcHJldmlvdXMgc3RydWN0dXJlCgkgIGNoYW5nZS4KCjIwMDctMTAtMTUgMTQ6MzM6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBEb24ndCBjcmFzaCB3aGVuIGluc3BlY3RpbmcgYW4gZWxlbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfaW5mbyk6CgkgIERvbid0IGNyYXNoIHdoZW4gaW5zcGVjdGluZyBhbiBlbGVtZW50LgoKMjAwNy0xMC0xNSAxMTo1ODoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogQWRkIHVuaXQgdGVzdCBmb3IgZXNjYXBpbmcgb2Ygc3RydWN0dXJlIG5hbWUgd2hlbiBzZXJpYWxpc2luZyBhbmQgZGVzZXJpYWxpc2luZyB0by9mci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIEFkZCB1bml0IHRlc3QgZm9yIGVzY2FwaW5nIG9mIHN0cnVjdHVyZSBuYW1lIHdoZW4gc2VyaWFsaXNpbmcKCSAgYW5kIGRlc2VyaWFsaXNpbmcgdG8vZnJvbSBzdHJpbmdzLgoKMjAwNy0xMC0xNSAxMTozNjozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBGaXggcXVldWUgbmVnb3RpYXRpb24uIElmIGFjY2VwdGNhcHMgdW5jb25kaXRpb25hbGx5IHJldHVybnMgVFJVRSwgdXBzdHJlYW0gaXMgdHJpY2tlZCBpbnRvIHRoaW5raS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9zaW5nbGVfcXVldWVfcHVzaF9vbmUpLAoJICAoZ3N0X3NpbmdsZV9xdWV1ZV9uZXcpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9pbml0KSwKCSAgKGdzdF9xdWV1ZV9wdXNoX29uZSk6CgkgIEZpeCBxdWV1ZSBuZWdvdGlhdGlvbi4gSWYgYWNjZXB0Y2FwcyB1bmNvbmRpdGlvbmFsbHkgcmV0dXJucyBUUlVFLAoJICB1cHN0cmVhbSBpcyB0cmlja2VkIGludG8gdGhpbmtpbmcgaXQgY2FuIHN1Z2dlc3QgYSBmb3JtYXQgZG93bnN0cmVhbQoJICB3aGlsZSBkb3duc3RyZWFtIGRvZXMgbm90IHN1cHBvcnQgdGhhdCBmb3JtYXQuIFRoZSByZWFsIHByb2JsZW0gaXMgdGhhdAoJICBjb3JlIGNhbGxzIGFjY2VwdGNhcHMgd2hlbiBwdXNoaW5nIGEgYnVmZmVyIHdpdGggbmV3IGNhcHMsIGZvciB3aGljaCB3ZQoJICBkbyBhIGxpdHRsZSB3b3JrYXJvdW5kIGJ5IHNldHRpbmcgdGhlIGNhcHMgb24gdGhlIHNyY3BhZCBvdXJzZWx2ZXMKCSAgYmVmb3JlIHB1c2hpbmcgdGhlIGJ1ZmZlciAodW50aWwgdGhpcyBpcyBmaWd1cmVkIG91dCkuIEZpeGVzICM0ODY3NTguCgoyMDA3LTEwLTE1IDExOjE5OjM2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBBZGQgc29tZSBtb3JlIGNvbW1lbnRzIGFuZCBkZWJ1ZyBvdXRwdXQuIFF1b3RlIHN0cnVjdHVyZSBuYW1lIHRvIGZpeCBkZXNlcmlhbGlzYXRpb24gb2Ygc29tZSBzdHJpbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIEFkZCBzb21lIG1vcmUgY29tbWVudHMgYW5kIGRlYnVnIG91dHB1dC4gUXVvdGUgc3RydWN0dXJlIG5hbWUgdG8gZml4CgkgIGRlc2VyaWFsaXNhdGlvbiBvZiBzb21lIHN0cmluZ3MuCgoyMDA3LTEwLTE1IDA3OjM3OjM3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0YnVmZmVyLmg6IERlZmluZSBHU1RfQlVGRkVSX0ZMQUdfR0FQIG1vcmUgc3RyaWN0bHkgdG8gZW5hYmxlIG9wdGltaXphdGlvbnMgYmFzZWQgb24gaXQuIEZpeCBkb2NzIGZvciBHU1RfQlVGRkUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBEZWZpbmUgR1NUX0JVRkZFUl9GTEFHX0dBUCBtb3JlIHN0cmljdGx5IHRvIGVuYWJsZSBvcHRpbWl6YXRpb25zIGJhc2VkCgkgIG9uIGl0LiBGaXggZG9jcyBmb3IgR1NUX0JVRkZFUl9NQUxMT0NEQVRBIGFuZCBHc3RCdWZmZXIubWFsbG9jX2RhdGEuCgoyMDA3LTEwLTE1IDA3OjExOjA0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBTYXZlIGFwcHJveC4gNDAwIDEgYnl0ZSBhbGxvY3Mgd2hlbiBwcmludGluZy4gVXNlIEFQSSB0byBhY2NlcyBlbGVtZW50IGRldGFpbHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIFNhdmUgYXBwcm94LiA0MDAgMSBieXRlIGFsbG9jcyB3aGVuIHByaW50aW5nLiBVc2UgQVBJIHRvIGFjY2VzIGVsZW1lbnQKCSAgZGV0YWlscy4KCSAgKiB0b29scy9nc3QtcnVuLmM6CgkgIEF2b2lkIGEgc3RyZHVwLgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIFVzZSBBUEkgdG8gYWNjZXMgZWxlbWVudCBkZXRhaWxzLgoKMjAwNy0xMC0xNSAwNjo1MjowMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGluZm8uYzogRml4IHNvbWUgc3BlbGxpbmcgZXJyb3JzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICBGaXggc29tZSBzcGVsbGluZyBlcnJvcnMuCgoyMDA3LTEwLTE0IDE1OjU0OjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBDb3JyZWN0bHkgc2V0IHRoZSBuZXh0IHN0YXRlIGlmIGFsbCBvZiBvdXIgYXN5bmMgY2hpbGRyZW4gY29tbWl0ZWQgdGhlaXIgc3RhdGUuIFRoaXMgbWFrZXMgc3VyZSB3ZSBjYW4gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9oYW5kbGVfYXN5bmNfZG9uZSk6CgkgIENvcnJlY3RseSBzZXQgdGhlIG5leHQgc3RhdGUgaWYgYWxsIG9mIG91ciBhc3luYyBjaGlsZHJlbiBjb21taXRlZCB0aGVpcgoJICBzdGF0ZS4gVGhpcyBtYWtlcyBzdXJlIHdlIGNhbiBhY3R1YWxseSBjYW5jZWwgdGhlIHN0YXRlIGNoYW5nZSBpbgoJICBwcm9ncmVzcy4gRml4ZXMgYSByZWdyZXNzaW9uIGluIFJoeXRobWJveCB3aGVuIHNlZWtpbmcuCgoyMDA3LTEwLTEzIDE3OjQzOjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBEb24ndCBzaGFkb3cgbG9jYWwgdmFyaWFibGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzoKCSAgRG9uJ3Qgc2hhZG93IGxvY2FsIHZhcmlhYmxlLgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgIERvbid0IHNoYWRvdyBnbG9iYWwgZnVuY3Rpb24gbmFtZS4KCjIwMDctMTAtMTMgMTc6MjA6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBVc2UgYWxyZWFkeS1pbnRlcm5lZCBzdHJpbmcgZm9yIHRoZSBwcml2YXRlIEdzdFBsdWdpbkZlYXR1cmUgcGx1Z2luX25hbWUgZmllbGQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSAgVXNlIGFscmVhZHktaW50ZXJuZWQgc3RyaW5nIGZvciB0aGUgcHJpdmF0ZSBHc3RQbHVnaW5GZWF0dXJlCgkgIHBsdWdpbl9uYW1lIGZpZWxkLgoKMjAwNy0xMC0xMCAyMjo0MzoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEFkZCBuZXcgQVBJIHRvIGRvY3M7IGZpeGVzIHRoZSBidWlsZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgQWRkIG5ldyBBUEkgdG8gZG9jczsgZml4ZXMgdGhlIGJ1aWxkLgoKMjAwNy0xMC0xMCAxNToxODo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuKjogQWRkIGZ1bmN0aW9uIHRvIHdhaXQgZm9yIEVPUywgc3ViY2xhc3NlcyBjYW4gdXNlIHRoaXMgdG8gY29ycmVjdGx5IHdhaXQgZm9yIGRldmljZXMgdG8gZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggaW5zcGlyZWQgYnk6IEJlbm9pdCBGb3VldCA8YmVub2l0IGRvdCBmb3VldCBhdCBwdXJwbGVsYWJzIGRvdCBjb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua193YWl0X2VvcyksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEFkZCBmdW5jdGlvbiB0byB3YWl0IGZvciBFT1MsIHN1YmNsYXNzZXMgY2FuIHVzZSB0aGlzIHRvIGNvcnJlY3RseSB3YWl0CgkgIGZvciBkZXZpY2VzIHRvIGRyYWluIGJlZm9yZSBwZXJmb3JtaW5nIHRoZSBFT1MgbG9naWMuIEZpeGVzICM0ODUzNDMuCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua193YWl0X2VvcygpCgoyMDA3LTEwLTEwIDEwOjUzOjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBsdWdpbi5oOiBDYXN0IGRlc2NyaXB0aW9uIHN0cmluZyBjb25zdGFudHMgaW4gR1NUX1BMVUdJTl9ERUZJTkUgbWFjcm9zIHRvIGEgKGdjaGFyKikgdG8gbWFrZSBDKysgY29kZSB1c2luZyB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgQ2FzdCBkZXNjcmlwdGlvbiBzdHJpbmcgY29uc3RhbnRzIGluIEdTVF9QTFVHSU5fREVGSU5FIG1hY3JvcwoJICB0byBhIChnY2hhciopIHRvIG1ha2UgQysrIGNvZGUgdXNpbmcgdGhlc2UgbWFjcm9zIGNvbXBpbGUKCSAgd2l0aG91dCB3YXJuaW5nIHdpdGggZysrLTQuMiAoc2VlICM0NjI3MzcpLiAgRXZlbiBpZiBzbGlnaHRseQoJICB1Z2x5LCB0aGlzIHNlZW1zIHByZWZlcmFibGUgdG8gcHV0dGluZyB0aGUgZGVzY3JpcHRpb24gc3RyaW5ncwoJICBpbnRvIHRoZSBHTGliIHF1YXJrIHRhYmxlIG9yIG1ha2luZyB0aGUgc3RydWN0dXJlIG1lbWJlciBhCgkgIGNvbnN0IGdjaGFyICogYW5kIGRvaW5nIGNhc3RzIGluIGNvcmUgY29kZSB0aGF0IGFsbG9jcyBhbmQKCSAgZnJlZXMgdGhlc2Ugc3RyaW5ncywgb3IgcmVxdWlyaW5nIGEgY2FzdCBpbiB0aGUgQysrIGNvZGUuCgoyMDA3LTEwLTA5IDIwOjQ1OjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZm8uaDogVXNlIF9fRlVOQ1RJT05fXyBpbnN0ZWFkIG9mIF9fUFJFVFRZX0ZVTkNUSU9OX18sIGl0J3Mgc2lsbHkgdG8gcHJpbnQgdGhlIGVudGlyZSBjbGFzcy9mdW5jdGlvbiBzaWduYXR1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIFVzZSBfX0ZVTkNUSU9OX18gaW5zdGVhZCBvZiBfX1BSRVRUWV9GVU5DVElPTl9fLCBpdCdzIHNpbGx5CgkgIHRvIHByaW50IHRoZSBlbnRpcmUgY2xhc3MvZnVuY3Rpb24gc2lnbmF0dXJlIGludG8gdGhlIGxvZwoJICBmaWxlIGZvciBDKysgY29kZS4gIFRoaXMgb25seSBhZmZlY3RzIEMrKyBjb2RlLCBmb3IgQyBjb2RlCgkgIGV2ZXJ5dGhpbmcgcmVtYWlucyB0aGUgc2FtZS4KCjIwMDctMTAtMDkgMTY6MjA6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFdvcmsgYXJvdW5kIGEgcHJvYmxlbSB3aXRoIHBpcGVsaW5lcyBjb250YWluaW5nIChzZW1pKWxvb3BzIHVudGlsIGEgcHJvcGVyLCBtb3JlIGNvbXBsaWNhdGVkIHNvbHV0aW9uIGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAocmVtb3ZlX2Zyb21fcXVldWUpOgoJICBXb3JrIGFyb3VuZCBhIHByb2JsZW0gd2l0aCBwaXBlbGluZXMgY29udGFpbmluZyAoc2VtaSlsb29wcyB1bnRpbCBhCgkgIHByb3BlciwgbW9yZSBjb21wbGljYXRlZCBzb2x1dGlvbiBpcyByZWFkeS4gU2VlICM0NzU0NTUuCgoyMDA3LTEwLTA5IDE0OjE4OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogUHV0IG1vcmUgc3RyaW5ncyBpbnRvIHRoZSBHTGliIHF1YXJrIHRhYmxlLiBObyBuZWVkIHRvIGtlZXAgYSBodW5kcmVkLXNvbWV0aGluZyBjb3BpZXMgb2YgaWRlbnRpY2FsIHZlcnNpb24gc3RyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkgIFB1dCBtb3JlIHN0cmluZ3MgaW50byB0aGUgR0xpYiBxdWFyayB0YWJsZS4gTm8gbmVlZCB0byBrZWVwCgkgIGEgaHVuZHJlZC1zb21ldGhpbmcgY29waWVzIG9mIGlkZW50aWNhbCB2ZXJzaW9uIHN0cmluZ3MsCgkgIGxpY2Vuc2Ugc3RyaW5ncywgcGFja2FnZSBuYW1lIHN0cmluZ3MgYW5kIHBhY2thZ2Ugb3JpZ2luCgkgIHN0cmluZ3MgYXJvdW5kLgoKMjAwNy0xMC0wOSAxMDo0MTo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOiBEb24ndCBpbXBseSB0aGF0IGl0J3Mgb2theSB0byB1bmNvbmRpdGlvbmFsbHkgY2hhbmdlIGJ1ZmZlciBkYXRhIG9yIGJ1ZmZlciBtZXRhZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgRG9uJ3QgaW1wbHkgdGhhdCBpdCdzIG9rYXkgdG8gdW5jb25kaXRpb25hbGx5IGNoYW5nZQoJICBidWZmZXIgZGF0YSBvciBidWZmZXIgbWV0YWRhdGEgaW4gYSBwYWQgcHJvYmUgY2FsbGJhY2ssCgkgIGFuZCBhIGJ1bmNoIG9mIG90aGVyIGNvbW1lbnRzLiBGaXhlcyAjNDMwMDMxLgoKMjAwNy0xMC0wOCAyMDo0NTowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi86IFVwZGF0ZSBnZW5lcmF0ZWQgZmlsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSAgKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkgICogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgVXBkYXRlIGdlbmVyYXRlZCBmaWxlcy4KCjIwMDctMTAtMDggMTc6NTk6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOiBQcmVmaXggc2VjdGlvbiB3aXRoIGJyb2tlbiBjb2RlIHdpdGggYSB3YXJuaW5nIChzZWUgIzM0MjQzMikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkgIFByZWZpeCBzZWN0aW9uIHdpdGggYnJva2VuIGNvZGUgd2l0aCBhIHdhcm5pbmcgKHNlZSAjMzQyNDMyKS4KCjIwMDctMTAtMDggMTc6MjY6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC86IENhbGwgZ190aHJlYWRfaW5pdCgpIGJlZm9yZSBnX29wdGlvbl9jb250ZXh0X25ldygpIHRvIGF2b2lkIHdhcm5pbmdzLiBTcG90dGVkIGJ5IFJpdGVzaCBLaGFkZ2FyYXkuIEZpeGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1pbml0LnhtbDoKCSAgQ2FsbCBnX3RocmVhZF9pbml0KCkgYmVmb3JlIGdfb3B0aW9uX2NvbnRleHRfbmV3KCkgdG8KCSAgYXZvaWQgd2FybmluZ3MuIFNwb3R0ZWQgYnkgUml0ZXNoIEtoYWRnYXJheS4gRml4ZXMgIzQ4NDIyNS4KCjIwMDctMTAtMDggMTc6MDU6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFdoZW4gd2UgcmVjZWl2ZWQgRU9TIGFuZCBhcmUgd2FpdGluZyBmb3Igd2hlbiB0byBwb3N0IHRoZSBFT1MgbWVzc2FnZSwgb3VyIHN0YXRlIGlzIHByZXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2ZsdXNoKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVldWVfb2JqZWN0X3VubG9ja2VkKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVldWVfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19uZWVkc19wcmVyb2xsKSwgKGdzdF9iYXNlX3NpbmtfY2hhaW5fdW5sb2NrZWQpOgoJICBXaGVuIHdlIHJlY2VpdmVkIEVPUyBhbmQgYXJlIHdhaXRpbmcgZm9yIHdoZW4gdG8gcG9zdCB0aGUgRU9TIG1lc3NhZ2UsCgkgIG91ciBzdGF0ZSBpcyBwcmVyb2xsZWQgYW5kIHdlIHNob3VsZCBub3QgcmV0dXJuIEFTWU5DLgoJICBSZW9yZ2FuaXplIHNvbWUgY29kZSBwYXRocyB0byBpbXBsZW1lbnQgdGhpcyBiZWhhdmlvci4KCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IChzZW5kX2VvcyksIChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3Rfc2lua3Nfc3VpdGUpOgoJICBBZGQgdW5pdCB0ZXN0IHRvIHZlcmlmeSBhYm92ZSBFT1MgZml4LgoKMjAwNy0xMC0wOCAxMDoyODoxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IE1vdmUgZGV0ZWN0aW5nIHRoZSBpbnB1dCBjYXBzIG9mIHRoZSBzaW5rcGFkIHRvIHRoZSBzZXRjYXBzIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhdmVfdHlwZSksIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaW5pdCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfc2V0Y2FwcyksIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pOgoJICBNb3ZlIGRldGVjdGluZyB0aGUgaW5wdXQgY2FwcyBvZiB0aGUgc2lua3BhZCB0byB0aGUgc2V0Y2FwcyBmdW5jdGlvbi4KCSAgVGhpcyBhbGxvd3MgdXMgdG8gdXBkYXRlIHRoZSBvdXRwdXQgY2FwcyB3aGVuIHdlIHJlY2VpdmUgbmV3IGlucHV0IGNhcHMKCSAgaW5zdGVhZCBvZiBhbHdheXMgdXNpbmcgdGhlIGZpcnN0IGRldGVjdGVkIGNhcHMuCgoyMDA3LTEwLTA4IDEwOjIxOjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBEb24ndCB0cnkgdG8gcHJlcm9sbCBub24tYXN5bmMgZWxlbWVudHMgYWZ0ZXIgYSBmbHVzaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIERvbid0IHRyeSB0byBwcmVyb2xsIG5vbi1hc3luYyBlbGVtZW50cyBhZnRlciBhIGZsdXNoLgoJICBTdWJ0cmFjdCBsYXRlbmN5IGZvcm0gY2xvY2sgdGltZXMgd2hlbiByZXBvcnRpbmcgcG9zaXRpb24uCgoyMDA3LTEwLTA1IDE0OjQ0OjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogU21hbGwgY29tbWVudCBhbmQgZG9jdW1lbnRhdGlvbiB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfcGF1c2VfdGFzayk6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIFNtYWxsIGNvbW1lbnQgYW5kIGRvY3VtZW50YXRpb24gdXBkYXRlLgoKMjAwNy0xMC0wNSAxNDo0MDowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBSZXdvcmsgdGhlIGxvY2tpbmcgb2YgYmFzZXNyYyBpbiBhIHNpbWlsYXIgZmFzaGlvbiB0byBiYXNlc2luay4gV2UgYmFzaWNhbGx5IGhhdmUgb25lIGxvYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY193YWl0X3BsYXlpbmcpLAoJICAoZ3N0X2Jhc2Vfc3JjX3NldF9saXZlKSwgKGdzdF9iYXNlX3NyY19pc19saXZlKSwKCSAgKGdzdF9iYXNlX3NyY19xdWVyeV9sYXRlbmN5KSwgKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfZXZlbnQpLCAoZ3N0X2Jhc2Vfc3JjX3dhaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfcGFkX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfbG9vcCksCgkgIChnc3RfYmFzZV9zcmNfdW5sb2NrKSwgKGdzdF9iYXNlX3NyY191bmxvY2tfc3RvcCksCgkgIChnc3RfYmFzZV9zcmNfc2V0X2ZsdXNoaW5nKSwgKGdzdF9iYXNlX3NyY19zZXRfcGxheWluZyksCgkgIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCksIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgUmV3b3JrIHRoZSBsb2NraW5nIG9mIGJhc2VzcmMgaW4gYSBzaW1pbGFyIGZhc2hpb24gdG8gYmFzZXNpbmsuIFdlCgkgIGJhc2ljYWxseSBoYXZlIG9uZSBsb2NrIChMSVZFX0xPQ0spIHByb3RlY3RpbmcgdGhlIGRhdGFmbG93LiBUaGlzIGFsbG93cwoJICB1cyB0byBoYW5kbGUgbGl2ZSBzb3VyY2VzIGFuZCBzZW1pIGxpdmUgb25lcyBtdWNoIGJldHRlci4KCSAgU2ltcGxpZnkgZmx1c2hpbmcuCgkgIEZpeCB1bmxvY2tpbmcgd2hlbiBzZWVraW5nLCBzaHV0dGluZyBkb3duIGFuZCBwYXVzaW5nIGluIGxpdmUgc291cmNlcy4KCjIwMDctMTAtMDUgMTE6NTI6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOiBGaXggY29tcGlsYXRpb24gYWdhaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6IChydW5fcGlwZWxpbmUpOgoJICBGaXggY29tcGlsYXRpb24gYWdhaW4uCgoyMDA3LTEwLTAzIDE1OjI3OjI0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBVc2UgbWVhbmluZ2Z1bCBjYXRlZ29yaWVzIGZvciB0aGUgbG9ncyB0byBjbGVhbiB0aGUgZGVmYXVsdCBvbmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgIFVzZSBtZWFuaW5nZnVsIGNhdGVnb3JpZXMgZm9yIHRoZSBsb2dzIHRvIGNsZWFuIHRoZSBkZWZhdWx0IG9uZS4KCjIwMDctMTAtMDMgMTU6MDU6MzAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6IFByaW50IG1lc3NhZ2UgbmFtZSBhbmQgbm90IGp1c3QgbnVtYmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvY2xlYW51cC5jOgoJICBQcmludCBtZXNzYWdlIG5hbWUgYW5kIG5vdCBqdXN0IG51bWJlci4KCjIwMDctMTAtMDMgMTU6MDI6NDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LXRhZ3JlYWRpbmcudHh0OiBBZGQgc29tZSBtb3JlIHRob3VnaHRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC10YWdyZWFkaW5nLnR4dDoKCSAgQWRkIHNvbWUgbW9yZSB0aG91Z2h0cy4KCjIwMDctMTAtMDMgMTQ6NTE6MDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6IFByaW50IG1lc3NhZ2UgbmFtZSBhbmQgbm90IGp1c3QgbnVtYmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJICBQcmludCBtZXNzYWdlIG5hbWUgYW5kIG5vdCBqdXN0IG51bWJlci4KCjIwMDctMTAtMDMgMTI6MDU6MTcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogU3BlZWR1cCB0eXBlZmluZGluZy4gVGhpcyBpcyB3b3JrIGluIHByb2dyZXNzIChzZWUgIzQ1OTg2MikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgU3BlZWR1cCB0eXBlZmluZGluZy4gVGhpcyBpcyB3b3JrIGluIHByb2dyZXNzIChzZWUgIzQ1OTg2MikuCgoyMDA3LTEwLTAzIDExOjM2OjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IEZpeCBkb2NzIHRoYXQgbWVudGlvbiAncGx1Z2luX2Rlc2MnIGluc3RlYWQgb2YgJ2dzdF9wbHVnaW5fZGVzYycuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgRml4IGRvY3MgdGhhdCBtZW50aW9uICdwbHVnaW5fZGVzYycgaW5zdGVhZCBvZiAnZ3N0X3BsdWdpbl9kZXNjJy4KCSAgU3BvdHRlZCBieSBKb3NlcCBUb3JyYSBWYWxsZXMgPGpvc2VwQGZsdWVuZG8uY29tPi4KCjIwMDctMTAtMDMgMTE6MTY6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0Y2xvY2suaDogRml4IHVwIGJyb2tlbiBHU1RfQ0xPQ0tfRkxBR1MgbWFjcm8gYW5kIEdzdENsb2NrIGRvY3MuIFRoZSBmbGFncyBmaWVsZCBoYXMgbW92ZWQgdG8gR3N0T2JqZWN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgRml4IHVwIGJyb2tlbiBHU1RfQ0xPQ0tfRkxBR1MgbWFjcm8gYW5kIEdzdENsb2NrIGRvY3MuIFRoZSBmbGFncwoJICBmaWVsZCBoYXMgbW92ZWQgdG8gR3N0T2JqZWN0LgoKMjAwNy0xMC0wMiAxNToyMDo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBDYWxsIHVubG9jayBmb3IgbGl2ZSBzb3VyY2VzIHNvIHRoYXQgdGhleSBjYW4ndCBnZXQgc3R1Y2sgaW4gX2NyZWF0ZSBhbmQgcHJvZHVjZSBhIGJ1ZmZlci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIENhbGwgdW5sb2NrIGZvciBsaXZlIHNvdXJjZXMgc28gdGhhdCB0aGV5IGNhbid0IGdldCBzdHVjayBpbiBfY3JlYXRlIGFuZAoJICBwcm9kdWNlIGEgYnVmZmVyIGJlZm9yZSB0aGV5IGFyZSBzZXQgYmFjayB0byBQTEFZSU5HLgoKMjAwNy0xMC0wMiAwOToyMTo0OCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogQ29tbWVudCB0aGUgc2VnbWVudC1yZWxhdGVkIGNvZGUuLi4gaW4gdGhlIFBST1BFUiBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2xvY2tlZF9lbnF1ZXVlKSwKCSAgKGdzdF9xdWV1ZV9sb2NrZWRfZGVxdWV1ZSk6CgkgIENvbW1lbnQgdGhlIHNlZ21lbnQtcmVsYXRlZCBjb2RlLi4uIGluIHRoZSBQUk9QRVIgZnVuY3Rpb24uCgkgIFNlZSAjNDgyMTQ3IGFuZCBteSBjb21taXQgZnJvbSB5ZXN0ZXJkYXkuCgoyMDA3LTEwLTAxIDE3OjU5OjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEFsc28gaW5pdGlhbGl6ZSB0aGUgY291bnRlciB0aGF0IGNhbGN1bGF0ZXMgdGhlIGZpcnN0IHRpbWVzdGFtcCBvbiBhIGJ1ZmZlciBjb3JyZWN0bHkgZm9yLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIEFsc28gaW5pdGlhbGl6ZSB0aGUgY291bnRlciB0aGF0IGNhbGN1bGF0ZXMgdGhlIGZpcnN0IHRpbWVzdGFtcCBvbiBhCgkgIGJ1ZmZlciBjb3JyZWN0bHkgZm9yIG5vbi1saXZlIHNvdXJjZXMuCgoyMDA3LTEwLTAxIDEyOjMxOjI4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBEaXNhYmxlIGNvZGUgdGhhdCdzIGJyZWFraW5nIHRoZSBjdXJyZW50LXRpbWUtbGV2ZWwgcmVwb3J0aW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbG9ja2VkX2RlcXVldWUpOgoJICBEaXNhYmxlIGNvZGUgdGhhdCdzIGJyZWFraW5nIHRoZSBjdXJyZW50LXRpbWUtbGV2ZWwgcmVwb3J0aW5nLgoJICBTZWUgIzQ4MjE0NwoKMjAwNy0wOS0zMCAxODoxNjozNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIE1fUEkgYW5kIElNUE9SVF9TWU1CT0wgdG8gdGhlIHByaXZhdGUgcGFydCBvZiB0aGUgR3N0SW5mbyBzZWN0aW9uIGFzIHRoZXkgc2hvdWxkLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBNX1BJIGFuZCBJTVBPUlRfU1lNQk9MIHRvIHRoZSBwcml2YXRlIHBhcnQgb2YgdGhlIEdzdEluZm8gc2VjdGlvbgoJICBhcyB0aGV5IHNob3VsZG4ndCBzaG93IHVwLiBGaXhlcyB0aGUgZG9jcyBidWlsZC4KCjIwMDctMDktMjkgMTE6NDY6MzEgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmg6IEFkZCBhbiBleHBsaWNpdCB2YXJpYWJsZSBpbXBvcnRhdGlvbiBuZWVkZWQgb24gVlM2IChvbmx5IGZvciBNU0NfVkVSKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBBZGQgYW4gZXhwbGljaXQgdmFyaWFibGUgaW1wb3J0YXRpb24gbmVlZGVkIG9uIFZTNiAob25seSBmb3IgTVNDX1ZFUikKCSAgRGVmaW5lIE1fUEkgd2hpY2ggaXMgdXNlZCBpbiBmaWxlcyB3aGljaCBhcmUgaW5jbHVkaW5nIGdzdGluZm8uaC4KCSAgVlM2IGluY2x1ZGVzIGRvZXNuJ3QgZGVmaW5lIGl0LgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgZXhwb3J0ZWQgZnVuY3Rpb25zIGFuZCB2YXJpYWJsZXMuCgkgICogd2luMzIvdnM2L2xpYmdzdGNvbnRyb2xsZXIuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RyZWFtZXIuZHNwOgoJICBVcGRhdGUgdGhlIGxpc3Qgb2YgZmlsZXMgdG8gYnVpbGQuCgoyMDA3LTA5LTI4IDEwOjIyOjQwICswMDAwICBGZWxpcGUgQ29udHJlcmFzIDxmZWxpcGUuY29udHJlcmFzQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogSW1wcm92ZSBkZWJ1Z2dpbmcuIEZpeGVzICM0ODA4NTguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRmVsaXBlIENvbnRyZXJhcyA8ZmVsaXBlIGRvdCBjb250cmVyYXMgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6ICh1cGRhdGVfdGltZV9sZXZlbCksIChhcHBseV9idWZmZXIpLAoJICAoZ3N0X3F1ZXVlX2xvY2tlZF9kZXF1ZXVlKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksCgkgIChnc3RfcXVldWVfY2hhaW4pLCAoZ3N0X3F1ZXVlX2xvb3ApLCAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuIEZpeGVzICM0ODA4NTguCgoyMDA3LTA5LTI4IDEwOjE1OjIzICswMDAwICBGZWxpcGUgQ29udHJlcmFzIDxmZWxpcGUuY29udHJlcmFzQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogRmlyc3QgcGF0Y2ggb2YgY29kZSBjbGVhbnVwcywgdXNlIHRoZSBtYWNyb3MgYW5kIHJpZ2h0IGFyZ3VtZW50cyBpbiB0aGUgbWFjcm9zIHRvIHNpZ25hbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEZlbGlwZSBDb250cmVyYXMgPGZlbGlwZSBkb3QgY29udHJlcmFzIGF0IGdtYWlsIGRvdCBjb20+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KToKCSAgRmlyc3QgcGF0Y2ggb2YgY29kZSBjbGVhbnVwcywgdXNlIHRoZSBtYWNyb3MgYW5kIHJpZ2h0IGFyZ3VtZW50cyBpbiB0aGUKCSAgbWFjcm9zIHRvIHNpZ25hbCBhbmQgbG9jayB0aGUgcXVldWUuIFNlZSAjNDgwODU4LgoKMjAwNy0wOS0yNiAxODowNjo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidXMuYzogSW1wcm92ZSBkZWJ1Z2dpbmcgd2hlbiBkZWFsaW5nIHdpdGggX3BvbGwoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAocG9sbF9mdW5jKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcgd2hlbiBkZWFsaW5nIHdpdGggX3BvbGwoKS4KCjIwMDctMDktMjYgMTg6MDQ6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogRml4IG1lbW9yeSBsZWFrIEkgaW50cm9kdWNlZCBhIGZldyBkYXlzIGFnby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkgIEZpeCBtZW1vcnkgbGVhayBJIGludHJvZHVjZWQgYSBmZXcgZGF5cyBhZ28uCgoyMDA3LTA5LTI2IDE3OjAwOjIyICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IE1ha2UgaXQgb25jZSBhZ2FpbiBwb3NzaWJsZSB0byBmcmVlIEdzdEJ1ZmZlcnMgaW4gdGhlIGRlZmF1bHQgYnVpbGQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfZmluYWxpemUpOgoJICBNYWtlIGl0IG9uY2UgYWdhaW4gcG9zc2libGUgdG8gZnJlZSBHc3RCdWZmZXJzIGluIHRoZSBkZWZhdWx0CgkgIGJ1aWxkLgoJICBUaGUgcG9pc29uaW5nIHNjcmliYmxlcyBvbiBwYXJ0cyBvZiB0aGUgbWluaW9iamVjdCB3ZSBuZWVkIGluCgkgIG9yZGVyIHRvIGZyZWUgaXQuCgkgIEZpeGVzICM0ODAzNDEKCjIwMDctMDktMjUgMTg6MzU6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBHU1RfVEFHX0NPTVBPU0VSLCBmaXhlcyAjNDU5ODA5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgQVBJOiBhZGQgR1NUX1RBR19DT01QT1NFUiwgZml4ZXMgIzQ1OTgwOS4KCjIwMDctMDktMjQgMTc6NDE6MjUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RwbHVnaW4uKjogQWRkIHRoZSAzLWNsYXVzZSBCU0QgbGljZW5zZSBhbmQgdGhlIE1JVC9YMTEgbGljZW5zZSB0byB0aGUgbGljZW5zZSBsaXN0LiBGaXhlcyAjNDc5Nzg0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICBBZGQgdGhlIDMtY2xhdXNlIEJTRCBsaWNlbnNlIGFuZCB0aGUgTUlUL1gxMSBsaWNlbnNlIHRvIHRoZSBsaWNlbnNlCgkgIGxpc3QuIEZpeGVzICM0Nzk3ODQuCgoyMDA3LTA5LTI0IDE3OjIyOjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9mYXEvZ2V0dGluZy54bWw6IEFkZCBRK0EgYWJvdXQgZGlmZmVyZW50IEdTdHJlYW1lciB2ZXJzaW9ucyAoIzM2NDA1NikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dldHRpbmcueG1sOgoJICBBZGQgUStBIGFib3V0IGRpZmZlcmVudCBHU3RyZWFtZXIgdmVyc2lvbnMgKCMzNjQwNTYpLgoKMjAwNy0wOS0yNCAxMjo0NjoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUmV0dXJuIGNvcnJlY3QgZ2Jvb2xlYW4gZnJvbSBxdWVyeSBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19xdWVyeV9sYXRlbmN5KSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBSZXR1cm4gY29ycmVjdCBnYm9vbGVhbiBmcm9tIHF1ZXJ5IGZ1bmN0aW9uLgoKMjAwNy0wOS0yNCAxMjoyOToyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU2ltcGxpZnkgbGF0ZW5jeSBxdWVyeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19xdWVyeV9sYXRlbmN5KSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19xdWVyeSksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIFNpbXBsaWZ5IGxhdGVuY3kgcXVlcnkuCgkgIFdoZW4gbm90IHN5bmNocm9uaXppbmcsIHdlIGNhbiByZXBvcnQgbGF0ZW5jeSB3aXRob3V0IHF1ZXJ5aW5nIHRoZSBwZWVyCgkgIGVsZW1lbnQuCgoyMDA3LTA5LTI0IDExOjQ2OjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogRml4IHNtYWxsIHR5cG9zIGluIHRoZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIEZpeCBzbWFsbCB0eXBvcyBpbiB0aGUgZG9jcy4KCjIwMDctMDktMjQgMTE6MjI6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IERvY3VtZW50YXRpb24gdXBkYXRlcyBhbmQgdHlwbyBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtcHVzaC1wdWxsLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC10YWdyZWFkaW5nLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LU1ULXJlZmNvdW50aW5nLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWFjdGl2YXRpb24udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zb3VyY2UudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJpbi50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RlbGVtZW50LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdG9iamVjdC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1wcmVyb2xsLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXB1c2gtcHVsbC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcXVlcnkudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2NoZWR1bGluZy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgIERvY3VtZW50YXRpb24gdXBkYXRlcyBhbmQgdHlwbyBmaXhlcy4KCjIwMDctMDktMjMgMTA6MTY6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IEFkZCBzb21lIGRlYnVnIHRleHQgdG8gZXJyb3IgbWVzc2FnZSB0byBpbmRpY2F0ZSB0aGF0IHdlIGVycm9yZWQgb3V0IG9uIHJlcXVlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgQWRkIHNvbWUgZGVidWcgdGV4dCB0byBlcnJvciBtZXNzYWdlIHRvIGluZGljYXRlIHRoYXQKCSAgd2UgZXJyb3JlZCBvdXQgb24gcmVxdWVzdC4KCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIFdoZW4gdGhlIHN0YXRlIGNoYW5nZSB0byBQTEFZSU5HIGZhaWxzLCBjaGVjayBmb3IgYW4KCSAgZXJyb3IgbWVzc2FnZSBvbiB0aGUgYnVzIGFuZCBwcmludCBpdC4KCjIwMDctMDktMjIgMTc6MjI6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vY3MucG86CgkqIHBvL2h1LnBvOgoJKiBwby91ay5wbzoKCSAgdXBkYXRlZCB0cmFuc2xhdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZWQgdHJhbnNsYXRpb25zCgoyMDA3LTA5LTIyIDE3OjE4OjUyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvLzogQWRkZWQgU3BhbmlzaCB0cmFuc2xhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRyYW5zbGF0ZWQgYnk6IEpvcmdlIEdvbnrDoWxleiBHb256w6FsZXogPGFsb3JpZWxAZ21haWwuY29tPgoJICAqIHBvL0xJTkdVQVM6CgkgICogcG8vZXMucG86CgkgIEFkZGVkIFNwYW5pc2ggdHJhbnNsYXRpb24uCgoyMDA3LTA5LTIxIDE0OjM3OjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBGaXggcHJpbnRmIGFyZ3VtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX3B1c2hfb25lKToKCSAgRml4IHByaW50ZiBhcmd1bWVudHMuCgoyMDA3LTA5LTIwIDEwOjM2OjIzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOiBJbXByb3ZlZCBzdGF0ZSBjaGFuZ2UgdW5pdCB0ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJICBJbXByb3ZlZCBzdGF0ZSBjaGFuZ2UgdW5pdCB0ZXN0LgoKMjAwNy0wOS0yMCAwNzo0MjozNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGJpbi5oOiBNb3ZlIHByaXYgdG8gdGhlIHJpZ2h0IHBsYWNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmg6CgkgIE1vdmUgcHJpdiB0byB0aGUgcmlnaHQgcGxhY2UuCgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIEFkZCBGSVhNRTogYW5kIGltcHJvdmUgbG9nLgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgV29yayB3aXRoIGFsbCB0eXBlcyBvZiByZWdpc3RyaWVzLgoKMjAwNy0wOS0xOSAyMDozOTo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBEb24ndCB1bnJlZiB0aGUgZXZlbnQgYWZ0ZXIgcHVzaGluZyBpdC4gRml4ZXMgIzQ3ODQwMS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfc2VuZF9ldmVudCk6CgkgIERvbid0IHVucmVmIHRoZSBldmVudCBhZnRlciBwdXNoaW5nIGl0LiBGaXhlcyAjNDc4NDAxLgoKMjAwNy0wOS0xOSAxODowNzoxOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgSWdub3JlIHJlZ2lzdHJpZXMgaW4gYW55IGZvcm1hdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvLmN2c2lnbm9yZToKCSAgSWdub3JlIHJlZ2lzdHJpZXMgaW4gYW55IGZvcm1hdC4KCjIwMDctMDktMTkgMTM6Mjg6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOiBBZGQgY29tcGF0aWJpbGl0eSBtYWNybyBmb3IgZ19pbnRlcm5fc3RyaW5nKCkgZm9yCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkgIEFkZCBjb21wYXRpYmlsaXR5IG1hY3JvIGZvciBnX2ludGVybl9zdHJpbmcoKSBmb3IKCSAgR0xpYi0yLjggKGFueSByZWFzb24gd2UgY2FuJ3QganVzdCBidW1wIHRoZQoJICByZXF1aXJlbWVudCB0byBhdCBsZWFzdCAyLjEwPykKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgTWFrZSBHc3RTdGF0aWNQYWRUZW1wbGF0ZSdzIHRlbXBsX25hbWUgZmllbGQgYSBjb25zdCBnY2hhciAqIGFuZCBmaXgKCSAgdXAgdGhlIGludGVybmFsIGNvZGUgYWNjb3JkaW5nbHkuICBUaGlzIHNob3VsZG4ndCBiZSBhIHByb2JsZW0sIHNpbmNlCgkgIHRoZXJlIGlzIG5vIHJlYXNvbiBleHRlcm5hbCBjb2RlIGNvdWxkIGV2ZXIgYXNzdW1lIHRoZSBzdHJpbmcgaW4gc3VjaAoJICBhIHN0cnVjdHVyZSBpcyBkeW5hbWljYWxseSBhbGxvY2F0ZWQgdW5sZXNzIGl0IGRpZCB0aGF0IGl0c2VsZjsgIHRoZQoJICB1c2Ugb2YgZ19zdHJkdXAoKSBpcyBwcml2YXRlIHRvIGVsZW1lbnQgZmFjdG9yaWVzLiAgVGhlIG5ldyBjb2RlIGFsc28KCSAgc2F2ZXMgc29tZSBtZW1vcnkgYnkgcHV0dGluZyBwYWQgdGVtcGxhdGUgbmFtZSBzdHJpbmdzIGludG8gdGhlIEdMaWIKCSAgcXVhcmsgdGFibGUgaW5zdGVhZCBvZiBhbGxvY2F0aW5nIHRoZW0gZHluYW1pY2FsbHkuCgkgIERlY2xhcmluZyB0aGlzIGZpZWxkIGNvbnN0YW50IGZpeGVzIHdhcm5pbmdzIHdpdGggZysrLTQuMiB3aGVuIHVzaW5nCgkgIHRoZSBHU1RfU1RBVElDX1BBRF9URU1QTEFURSBtYWNybyBpbiBjKysgY29kZSAoIzQ3ODA5MikuCgoyMDA3LTA5LTE5IDEyOjMxOjE2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogUmVsZWFzZSBzdGF0aWMgY2Fwcy4gRml4ZXMgIzQ3NTcyMy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIFJlbGVhc2Ugc3RhdGljIGNhcHMuIEZpeGVzICM0NzU3MjMuCgoyMDA3LTA5LTE4IDIyOjEzOjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZm8uKjogTWFrZSBzb21lIGludGVybmFsIEFQSSB0YWtlIGNvbnN0IGdjaGFyICogaW5zdGVhZCBvZiBqdXN0IGdjaGFyICogdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZ3Mgd2l0aCBnKystLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgTWFrZSBzb21lIGludGVybmFsIEFQSSB0YWtlIGNvbnN0IGdjaGFyICogaW5zdGVhZCBvZiBqdXN0CgkgIGdjaGFyICogdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZ3Mgd2l0aCBnKystNC4yLjIgd2hlbgoJICBwYXNzaW5nIHN0cmluZyBjb25zdGFudHMgKHBhcnRpYWxseSBmaXhlcyAjNDc4MDkyKS4KCjIwMDctMDktMTcgMjA6NTU6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEEgbGF0ZW5jeSBxdWVyeSBmYWlscyB3aGVuIG9uZSBvZiB0aGUgc2lua3MgZmFpbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX3F1ZXJ5X2xhdGVuY3lfZm9sZCksIChnc3RfYmluX3F1ZXJ5KToKCSAgQSBsYXRlbmN5IHF1ZXJ5IGZhaWxzIHdoZW4gb25lIG9mIHRoZSBzaW5rcyBmYWlsLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfYmFzZV90aW1lKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuCgoyMDA3LTA5LTE3IDE3OjE3OjI5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEZpeCBtaW5vciBjb21waWxhdGlvbiB3YXJuaW5ncyBzaG93biB3aXRoIEZvcnRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NvbnRpbnVlX2Z1bmMpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RvX3N5bmMpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZF9mdWxsKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9sb29wKToKCSAgRml4IG1pbm9yIGNvbXBpbGF0aW9uIHdhcm5pbmdzIHNob3duIHdpdGggRm9ydGUuCgoyMDA3LTA5LTE3IDA2OjAxOjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBNZWFzdXJlIHF1ZXVlIGxldmVsIGJhc2VkIG9uIHRoZSBkaWZmIGJldHdlZW4gaGVhZCBhbmQgdGFpbCB0aW1lc3RhbXBzIGV2ZW4gd2hlbiBwdXNoaW5nLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGFwcGx5X2J1ZmZlciksCgkgIChnc3RfcXVldWVfbG9ja2VkX2VucXVldWUpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9kZXF1ZXVlKToKCSAgTWVhc3VyZSBxdWV1ZSBsZXZlbCBiYXNlZCBvbiB0aGUgZGlmZiBiZXR3ZWVuIGhlYWQgYW5kIHRhaWwgdGltZXN0YW1wcwoJICBldmVuIHdoZW4gcHVzaGluZyB0aGUgZmlyc3QgYnVmZmVyLgoKMjAwNy0wOS0xNCAyMzowNjozMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU2lua3MgdGhhdCBkb24ndCBwcmVyb2xsIGNhbiBhbHdheXMgYmUgcXVlcmllZCBmb3IgdGhlIGxhdGVuY3kuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgU2lua3MgdGhhdCBkb24ndCBwcmVyb2xsIGNhbiBhbHdheXMgYmUgcXVlcmllZCBmb3IgdGhlIGxhdGVuY3kuCgkgIERvbid0IHBvc3QgQVNZTkMgc3RhcnQgd2hlbiB3ZSBhcmUgbm90IGFzeW5jLgoKMjAwNy0wOS0xNCAyMDoyNDoyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuKjogV2hlbiBkb3duc3RyZWFtIHJldHVybnMgVU5FWFBFQ1RFRCBmcm9tIHB1c2hpbmcgYSBidWZmZXIsIGRvbid0IHRyeSB0byBwdXNoIG1vcmUgYnVmZmVycy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbG9ja2VkX2VucXVldWUpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbiksCgkgIChnc3RfcXVldWVfcHVzaF9vbmUpLCAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpLAoJICAoZ3N0X3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCksIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgV2hlbiBkb3duc3RyZWFtIHJldHVybnMgVU5FWFBFQ1RFRCBmcm9tIHB1c2hpbmcgYSBidWZmZXIsIGRvbid0IHRyeSB0bwoJICBwdXNoIG1vcmUgYnVmZmVycyBidXQgYWxsb3cgcHVzaGluZyBvZiBFT1MgYW5kIE5FV1NFR01FTlQuCgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mbyBoZXJlIGFuZCB0aGVyZS4gRml4ZXMgIzQ3NjUxNC4KCjIwMDctMDktMTQgMTU6NTI6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IExhdGVuY3kgcXVlcnkgaXMgYWxsb3dlZCBhZnRlciB3ZSBhcmUgcHJlcm9sbGVkLiBJbnRyb2R1Y2UgYSBuZXcgZmxhZyBmb3IgdGhpcyBhbmQgc3RvcCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCksIChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX3dhaXRfcHJlcm9sbCksIChnc3RfYmFzZV9zaW5rX25lZWRzX3ByZXJvbGwpLAoJICAoZ3N0X2Jhc2Vfc2lua19zZXRfZmx1c2hpbmcpLCAoZ3N0X2Jhc2Vfc2lua19xdWVyeSksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIExhdGVuY3kgcXVlcnkgaXMgYWxsb3dlZCBhZnRlciB3ZSBhcmUgcHJlcm9sbGVkLiBJbnRyb2R1Y2UgYSBuZXcgZmxhZwoJICBmb3IgdGhpcyBhbmQgc3RvcCBhYnVzaW5nIG90aGVyIHZhcmlhYmxlcy4KCjIwMDctMDktMTMgMjM6NTM6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogUHVzaCBPT0IgZXZlbnRzIGRvd25zdHJlYW0gd2hlbiB3ZSBnZXQgdGhlbSBpbiBzZW5kX2V2ZW50LiBUaGlzIGFsbG93cyB0aGUgYXBwbGljYXRpb24gdG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfc2VuZF9ldmVudCk6CgkgIFB1c2ggT09CIGV2ZW50cyBkb3duc3RyZWFtIHdoZW4gd2UgZ2V0IHRoZW0gaW4gc2VuZF9ldmVudC4gVGhpcyBhbGxvd3MKCSAgdGhlIGFwcGxpY2F0aW9uIHRvIGluc2VydCBldmVudHMgaW4gdGhlIHBpcGVsaW5lLgoJICBBZGQgc29tZSBtb3JlIGNvbW1lbnRzLgoKMjAwNy0wOS0xMyAyMToyNzozMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IE1vdmUgbGF0ZW5jeSBxdWVyeSBmcm9tIEdzdFBpcGVsaW5lIHRvIEdzdEJpbiBzbyB0aGF0IHdlIGNhbiBhbHNvIHVzZSBpdCB3aGVuIGFzeW5jLWhhbmRsaW5nIGlzIGVuYWJsZWQgb24gYmlucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGNsZWFyX3F1ZXVlKSwKCSAgKGRvX2Jpbl9sYXRlbmN5KSwgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6CgkgIE1vdmUgbGF0ZW5jeSBxdWVyeSBmcm9tIEdzdFBpcGVsaW5lIHRvIEdzdEJpbiBzbyB0aGF0IHdlIGNhbiBhbHNvCgkgIHVzZSBpdCB3aGVuIGFzeW5jLWhhbmRsaW5nIGlzIGVuYWJsZWQgb24gYmlucy4KCjIwMDctMDktMTMgMjE6MTk6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogVXBkYXRlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5X2xhdGVuY3kpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIFVwZGF0ZSBkb2NzLgoJICBDbGVhbiB1cCB0aGUgdGltZXN0YW1waW5nIGFuZCBzeW5jaW5nIGNvZGUgZm9yIHBzZXVkbyBsaXZlIHNvdXJjZXMuCgoyMDA3LTA5LTEzIDE5OjI3OjUzICswMDAwICBTdGV2ZSBGaW5rIDxzcGhpbmtAZ21haWwuY29tPgoKCSAgZG9jcy9tYW51YWwvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDogTWVudGlvbiBsZXNzIC1SIHN3aXRjaCBpbiB0aGUgc2VjdGlvbiBhYm91dCBkZWJ1ZyBvdXRwdXQgKCM0NzQwNTUpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFN0ZXZlIEZpbmsgIDxzcGhpbmsgZ21haWwgY29tPgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkgIE1lbnRpb24gbGVzcyAtUiBzd2l0Y2ggaW4gdGhlIHNlY3Rpb24gYWJvdXQgZGVidWcgb3V0cHV0ICgjNDc0MDU1KS4KCjIwMDctMDktMTMgMTc6MTU6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IFF1ZXVlIGNhbiBsYXRlbmN5IHRvIHRoZSBwaXBlbGluZSB1cCB0byB0aGUgY29uZmlndXJlZCBtYXggc2l6ZSBpbiB0aW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSk6CgkgIFF1ZXVlIGNhbiBsYXRlbmN5IHRvIHRoZSBwaXBlbGluZSB1cCB0byB0aGUgY29uZmlndXJlZCBtYXggc2l6ZSBpbiB0aW1lLgoJICBSZXBvcnQgdGhpcyBmYWN0IGluIHRoZSBsYXRlbmN5IHF1ZXJ5LgoKMjAwNy0wOS0xMyAwOTowODoyMyArMDAwMCAgU2ViYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogVXNlIGdzdF9ndWludDY0X3RvX2dkb3VibGUoKSB3aGVuIGNvbnZlcnRpbmcgZnJvbSBhIHVpbnQ2NCBvcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNlYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbiBhdCBtb3V0dGUgZG90IG5ldD4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgVXNlIGdzdF9ndWludDY0X3RvX2dkb3VibGUoKSB3aGVuIGNvbnZlcnRpbmcgZnJvbSBhIHVpbnQ2NCBvcgoJICBHc3RDbG9ja1RpbWUgdG8gZG91YmxlIHRvIGZpeCB0aGUgYnVpbGQgb24gd2luMzIuIEZpeGVzICM0NzQzNzEuCgoyMDA3LTA5LTEzIDA4OjQyOjU1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IEltcGxlbWVudCBwb2lzb25pbmcgZm9yIEdzdEJ1ZmZlciBpZiAtLWVuYWJsZS1wb2lzb25pbmcgaXMgc3BlY2lmaWVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX2ZpbmFsaXplKToKCSAgSW1wbGVtZW50IHBvaXNvbmluZyBmb3IgR3N0QnVmZmVyIGlmIC0tZW5hYmxlLXBvaXNvbmluZyBpcyBzcGVjaWZpZWQuCgkgIFdoZW4gZmluYWxpemluZyBhIGJ1ZmZlciB0aGUgY29tcGxldGUgc3RydWN0IGlzIGZpbGxlZCB3aXRoIDB4ZmYsCgkgIHRodXMgbWFraW5nIGEgdXNlIG9mIHRoZSBidWZmZXIgYWZ0ZXIgdGhlIGZpbmFsIHVucmVmIGltcG9zc2libGUuCgoyMDA3LTA5LTEzIDA4OjM2OjM3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogVXNlIGZhaWxfdW5sZXNzX2VxdWFsc19pbnQoYSwgYikgaW5zdGVhZCBvZiBmYWlsX3VubGVzc19lcXVhbHMgKGEgPT0gYikgdG8gZ2V0IGJldHRlciAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFVzZSBmYWlsX3VubGVzc19lcXVhbHNfaW50KGEsIGIpIGluc3RlYWQgb2YKCSAgZmFpbF91bmxlc3NfZXF1YWxzIChhID09IGIpIHRvIGdldCBiZXR0ZXIgb3V0cHV0IG9uIGZhaWx1cmVzLgoKMjAwNy0wOS0xMiAxNjozNTo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzogQWxzbyBjaGVjayBmb3IgdGhlIG90aGVyIGZpbGUgVVJJIHZhcmlhbnQgb24gd2luMzIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzoKCSAgQWxzbyBjaGVjayBmb3IgdGhlIG90aGVyIGZpbGUgVVJJIHZhcmlhbnQgb24gd2luMzIuCgoyMDA3LTA5LTEyIDEyOjM2OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHVyaS5jOiBJZiB0aGVyZSdzIG5vIGhvc3RuYW1lLCB3ZSB3YW50IHRvIHJldHVybiAnYzovZm9vL2Jhci50eHQnIGFuZCBub3QgJy9jOi9mb28vYmFyLnR4dCcgb24gV2luZG93cy4gRml4ZXMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1cmkuYzogKGdzdF91cmlfZ2V0X2xvY2F0aW9uKToKCSAgSWYgdGhlcmUncyBubyBob3N0bmFtZSwgd2Ugd2FudCB0byByZXR1cm4gJ2M6L2Zvby9iYXIudHh0JwoJICBhbmQgbm90ICcvYzovZm9vL2Jhci50eHQnIG9uIFdpbmRvd3MuIEZpeGVzICM0Njk0MDIuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOgoJICBVbml0IHRlc3QgZm9yIHRoZSBhYm92ZSBhbmQgYSBmZXcgbW9yZSB0aGluZ3MuCgoyMDA3LTA5LTExIDIzOjI3OjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1saXZlLXNvdXJjZS50eHQ6IEFkZCBkb2NzIG9uIGhvdyBsaXZlIHNvdXJjZXMgc2hvdWxkIHRpbWVzdGFtcC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1saXZlLXNvdXJjZS50eHQ6CgkgIEFkZCBkb2NzIG9uIGhvdyBsaXZlIHNvdXJjZXMgc2hvdWxkIHRpbWVzdGFtcC4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kb19zeW5jKToKCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICBGb3Igc3ViY2xhc3NlcyB0aGF0IGFyZSBsaXZlIGFuZCBsaWtlIHRvIHN5bmMsIGFkZCBhZGl0aW9uYWwgc3RhcnR1cAoJICBsYXRlbmN5IHRvIHN5bmMgdGltZSBhbmQgdGltZXN0YW1wcyBzbyB0aGF0IHdlIHRpbXN0YW1wIGFjY29yZGluZyB0byB0aGUKCSAgZGVzaWduIGRvYy4KCjIwMDctMDktMTEgMTg6NTk6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IEFsc28gZG8gYSBnX3R5cGVfY2xhc3NfcmVmKCkgZm9yIHRoZSBzdWJidWZmZXIgdHlwZSBpbiB0aGUgaW5pdCBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICBBbHNvIGRvIGEgZ190eXBlX2NsYXNzX3JlZigpIGZvciB0aGUgc3ViYnVmZmVyIHR5cGUgaW4KCSAgdGhlIGluaXQgZnVuY3Rpb24uCgoyMDA3LTA5LTExIDE1OjU1OjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIGZ1bmN0aW9uIHRvIHBlcmZvcm0gYSBxdWVyeSBvbiB0aGUgcGVlciBvZiBhIHBhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3BlZXJfcXVlcnkpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgQWRkIGZ1bmN0aW9uIHRvIHBlcmZvcm0gYSBxdWVyeSBvbiB0aGUgcGVlciBvZiBhIHBhZC4KCSAgQVBJOiBnc3RfcGFkX3BlZXJfcXVlcnkoKQoKMjAwNy0wOS0xMSAxMzo0Mzo1MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IENsZWFudXAgdGhlIHRlc3QgYSBsaXR0bGUgKHVzZSBnc3QtbG9nZ2luZyBhbmQgbm90IGdfbWVzc2FnZSkuIEltcHJvdmUgdGVzdCB0byBjaGVjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBDbGVhbnVwIHRoZSB0ZXN0IGEgbGl0dGxlICh1c2UgZ3N0LWxvZ2dpbmcgYW5kIG5vdCBnX21lc3NhZ2UpLiBJbXByb3ZlCgkgIHRlc3QgdG8gY2hlY2sgaWYgYSB3YWl0IHJlYWNoZWQgdGhlIHRhcmdldC4KCjIwMDctMDktMTEgMTA6MzM6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBBZGQgbmV3IEFQSSB0byBkb2NzIGFuZCBmaXggdGhlIGJ1aWxkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBZGQgbmV3IEFQSSB0byBkb2NzIGFuZCBmaXggdGhlIGJ1aWxkLgoKMjAwNy0wOS0xMCAxNjo1MDoxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy4qOiBBZGQgcHJvcGVydHkgdG8gbWFrZSB0aGUgYmFzZXNyYyB0aW1lc3RhbXAgYnVmZmVycyBiYXNlZCBvbiB0aGUgY3VycmVudCBydW5uaW5nIHRpbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2luaXQpLCAoZ3N0X2Jhc2Vfc3JjX3NldF9kb190aW1lc3RhbXApLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9kb190aW1lc3RhbXApLCAoZ3N0X2Jhc2Vfc3JjX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV9zcmNfZ2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlX3NyY19kb19zeW5jKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgQWRkIHByb3BlcnR5IHRvIG1ha2UgdGhlIGJhc2VzcmMgdGltZXN0YW1wIGJ1ZmZlcnMgYmFzZWQgb24gdGhlIGN1cnJlbnQKCSAgcnVubmluZyB0aW1lLgoJICBBUEk6IEdzdEJhc2VTcmM6OmRvLXRpbWVzdGFtcAoJICBBUEk6IGdzdF9iYXNlX3NyY19zZXRfZG9fdGltZXN0YW1wKCkKCSAgQVBJOiBnc3RfYmFzZV9zcmNfZ2V0X2RvX3RpbWVzdGFtcCgpCgoyMDA3LTA5LTA4IDIwOjI1OjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9yYW5kb20vcmVsZWFzZTogUmVhbGx5IG1ha2Ugc3VyZSB0cmFuc2xhdGlvbnMgYXJlIHVwLXRvLWRhdGUgYmVmb3JlIGEgcmVsZWFzZSAoIzQ2NTAxMCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIFJlYWxseSBtYWtlIHN1cmUgdHJhbnNsYXRpb25zIGFyZSB1cC10by1kYXRlIGJlZm9yZQoJICBhIHJlbGVhc2UgKCM0NjUwMTApLgoKMjAwNy0wOS0wNyAxNDo0Njo1MiArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGFkZCBsYXRlc3QgaGVhZGVyIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbGF0ZXN0IGhlYWRlciBmaWxlcwoKMjAwNy0wOS0wNyAwNDo1MDoyMyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IEFsd2F5cyBkZXN0cm95IHRoZSB0aW1lciwgYWxzbyBpbiBlcnJvciBjYXNlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICBBbHdheXMgZGVzdHJveSB0aGUgdGltZXIsIGFsc28gaW4gZXJyb3IgY2FzZXMuCgoyMDA3LTA5LTA1IDIyOjI5OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9tYW51YWwvaGlnaGxldmVsLXhtbC54bWw6IEZpeCBYTUwgZXhhbXBsZSBjb2RlLiBGaXhlcyAjNDcyNzE0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwteG1sLnhtbDoKCSAgRml4IFhNTCBleGFtcGxlIGNvZGUuIEZpeGVzICM0NzI3MTQuCgoyMDA3LTA5LTA1IDIyOjEyOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBQcm90ZWN0IGVvcyBhbmQgaGF2ZV9wcmVyb2xsIHdpdGggdGhlIE9CSkVDVCBsb2NrIHNvIHdlIGRvbid0IG5lZWQgdG8gdGFrZSB0aGUgUFJFUk9MTCBsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCksCgkgIChnc3RfYmFzZV9zaW5rX3dhaXRfcHJlcm9sbCksIChnc3RfYmFzZV9zaW5rX25lZWRzX3ByZXJvbGwpLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSk6CgkgIFByb3RlY3QgZW9zIGFuZCBoYXZlX3ByZXJvbGwgd2l0aCB0aGUgT0JKRUNUIGxvY2sgc28gd2UgZG9uJ3QgbmVlZCB0bwoJICB0YWtlIHRoZSBQUkVST0xMIGxvY2sgd2hlbiBxdWVyeWluZyB0aGUgbGF0ZW5jeS4gRml4ZXMgIzQ3Mzg0Ni4KCjIwMDctMDktMDUgMTM6MjQ6MzEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IEdpdmUgc29tZSBsb2ctbWVzc2FnZXMgYSBjYXRlZ29yeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgR2l2ZSBzb21lIGxvZy1tZXNzYWdlcyBhIGNhdGVnb3J5LgoKMjAwNy0wOS0wNSAwMTowMDo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogRml4IGZyYWN0aW9uIGxpc3QgZml4YXRpb24gY29kZS4gVGFrZSB0aGUgZnJhY3Rpb24gd2l0aCB0aGUgc21hbGxlc3QgZGlmZmVyZW5jZSB3aXRoIHRoZSB0YXJnZXQgaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIChnc3Rfc3RydWN0dXJlX2ZpeGF0ZV9maWVsZF9uZWFyZXN0X2ZyYWN0aW9uKToKCSAgRml4IGZyYWN0aW9uIGxpc3QgZml4YXRpb24gY29kZS4gVGFrZSB0aGUgZnJhY3Rpb24gd2l0aCB0aGUgc21hbGxlc3QKCSAgZGlmZmVyZW5jZSB3aXRoIHRoZSB0YXJnZXQgaW5zdGVhZCBvZiB0aGUgZmlyc3Qgb25lIGluIHRoZSBsaXN0LgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfc3VpdGUpOgoJICBBZGRlZCB0ZXN0IHRvIHZlcmlmeSBjb3JyZWN0IGZyYWN0aW9uIGxpc3QgZml4YXRpb24gYmVoYXZpb3VyLgoKMjAwNy0wOS0wMiAyMDozMDoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOiBFeHBvcnQgZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoIHRvby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEV4cG9ydCBnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2ggdG9vLgoKMjAwNy0wOC0zMCAxNzo1MDo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEFkZCBuZXcgbWV0aG9kcyB0byBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBZGQgbmV3IG1ldGhvZHMgdG8gZG9jcy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19pbml0KSwgKGdzdF9iYXNlX3Npbmtfc2V0X3RzX29mZnNldCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF90c19vZmZzZXQpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEFkZCB0cy1vZmZzZXQgcHJvcGVydHkgdG8gZmluZS10dW5lIHRoZSBzeW5jaHJvbmlzYXRpb24uCgkgIEFQSTogR3N0QmFzZVNpbms6OnRzLW9mZnNldCBwcm9wZXJ0eQoJICBBUEk6IGdzdF9iYXNlX3Npbmtfc2V0X3RzX29mZnNldCgpCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19nZXRfdHNfb2Zmc2V0KCkKCjIwMDctMDgtMjkgMjA6NTc6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLio6IEFkZCBhc3luYyBwcm9wZXJ0eSB0byBpbnN0cnVjdCB0aGUgc2luayBuZXZlciB0byBpbmZvcm0gdGhlIHBhcmVudCBhYm91dAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19pbml0KSwgKGdzdF9iYXNlX3Npbmtfc2V0X3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luYyksIChnc3RfYmFzZV9zaW5rX3NldF9tYXhfbGF0ZW5lc3MpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfbWF4X2xhdGVuZXNzKSwgKGdzdF9iYXNlX3Npbmtfc2V0X3Fvc19lbmFibGVkKSwKCSAgKGdzdF9iYXNlX3NpbmtfaXNfcW9zX2VuYWJsZWQpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfYXN5bmNfZW5hYmxlZCksCgkgIChnc3RfYmFzZV9zaW5rX2lzX2FzeW5jX2VuYWJsZWQpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgQWRkIGFzeW5jIHByb3BlcnR5IHRvIGluc3RydWN0IHRoZSBzaW5rIG5ldmVyIHRvIGluZm9ybSB0aGUgcGFyZW50IGFib3V0CgkgIEFTWU5DIHN0YXRlIGNoYW5nZXMsIHVwZGF0ZSBkb2NzLgoJICBDaGVjayBhcmd1bWVudCB3aXRoIGdfcmV0dXJuXyogZm9yIHRoZSBwdWJsaWMgZnVuY3Rpb25zLgoJICBBUEk6IEdzdEJhc2VTaW5rOjphc3luYyBwcm9wZXJ0eQoJICBBUEk6IGdzdF9iYXNlX3Npbmtfc2V0X2FzeW5jX2VuYWJsZWQoKQoJICBBUEk6IGdzdF9iYXNlX3NpbmtfaXNfYXN5bmNfZW5hYmxlZCgpCgoyMDA3LTA4LTI4IDE1OjAyOjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBJbXByb3ZlIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19sb29wKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcXVlcnlfbGF0ZW5jeSksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9xdWVyeSksIChnc3RfYmFzZV9zcmNfd2FpdCksCgkgIChnc3RfYmFzZV9zcmNfZG9fc3luYyksIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgUmVhcnJhbmdlIHNvbWUgY29kZSBzbyB0aGF0IHdlIGNhbiBhZGQgc3VwcG9ydCBmb3IgbWVhc3VyaW5nIHRoZQoJICBzdGFydHVwIGxhdGVuY3kuCgoyMDA3LTA4LTI3IDIwOjAwOjM5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljL2R5bmxpbmsudHh0OiBNb3JlIHRob3VnaHMgb24gdGhpcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9keW5saW5rLnR4dDoKCSAgTW9yZSB0aG91Z2hzIG9uIHRoaXMuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIEFkZCBidWd6aWxsYSB0aWNrZXQgbnVtYmVyIHRvIEZJWE1FIGNvbW1lbnQuCgoyMDA3LTA4LTI2IDE4OjMwOjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIE1BSU5UQUlORVJTOgoJICByZW1vdmUgdGVtcCBmaWxlcyBhZ2FpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHRlbXAgZmlsZXMgYWdhaW4KCjIwMDctMDgtMjYgMTY6NDI6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogTUFJTlRBSU5FUlM6CgkgIHRlc3QgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0ZXN0IGNvbW1pdAoKMjAwNy0wOC0yNiAxNTo1ODoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBBVVRIT1JTOgoJKiBNQUlOVEFJTkVSUzoKCSAgdGVzdCBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRlc3QgY29tbWl0CgoyMDA3LTA4LTI0IDIxOjUzOjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBVcGRhdGUgc29tZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJICBVcGRhdGUgc29tZSBkb2NzLgoKMjAwNy0wOC0yNCAxNjozOTowNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvTWFrZWZpbGUuYW06IFJldmVydCBwYXRjaCB3aGljaCB1c2VzICQoZ3N0X2hlYWRlcnMpIGluc3RlYWQgb2YgJF4gYmVjYXVzZSBpdCBicmVha3MgbWFrZSBkaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgIFJldmVydCBwYXRjaCB3aGljaCB1c2VzICQoZ3N0X2hlYWRlcnMpIGluc3RlYWQgb2YgJF4gYmVjYXVzZSBpdAoJICBicmVha3MgbWFrZSBkaXN0LgoKMjAwNy0wOC0yNCAxNDo1NTo0NiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IEZpeCBsZWFrcyBpbiB0aGUgbmV3IHVuaXQgdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggbGVha3MgaW4gdGhlIG5ldyB1bml0IHRlc3QuCgoyMDA3LTA4LTIzIDIwOjQxOjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBEb24ndCB1c2UgR1NUX0lORk8gYmVmb3JlIHRoZSBkZWJ1ZyBzeXN0ZW0gaXMgYWN0dWFsbHkgaW5pdGlhbGlzZWQgKHNob3VsZG4ndCBkbyBhbnkgaGFybSwgYnV0IHdvbid0IHByaW50Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgRG9uJ3QgdXNlIEdTVF9JTkZPIGJlZm9yZSB0aGUgZGVidWcgc3lzdGVtIGlzIGFjdHVhbGx5IGluaXRpYWxpc2VkCgkgIChzaG91bGRuJ3QgZG8gYW55IGhhcm0sIGJ1dCB3b24ndCBwcmludCBhbnl0aGluZyBlaXRoZXIsIHNvIHdlIGNhbgoJICBqdXN0IGFzIHdlbGwgcmVtb3ZlIGl0KS4KCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBHU1RfQ0FUX0xFVkVMX0xPR192YWxpc3QoKSwgd2hpY2ggaXMgb3VyIGlubGluZSBoZWxwZXIgZnVuY3Rpb24gZm9yCgkgIGNvbXBpbGVycyB0aGF0IGRvbid0IHN1cHBvcnQgdmFyaWFkaWMgbWFjcm9zIChzdWNoIGFzIE1TVkMpLCBzaG91bGQKCSAgY2hlY2sgZm9yIGRlYnVnX2xldmVsIDw9IF9fZ3N0X2RlYnVnX21pbiBhcyB3ZWxsLCBzaW5jZSB0aGF0J3MgdGhlCgkgIGZ1bmN0aW9uIGNhbGxlZCBmcm9tIGFsbCB0aGUgbGV2ZWwtc3BlY2lmaWMgR1NUX0NBVF8qX0xPR19PQkpFQ1QoKQoJICBpbmxpbmUgaGVscGVyIGZ1bmN0aW9ucy4gU2hvdWxkIGltcHJvdmUgcGVyZm9ybWFuY2UgYSBiaXQsIGJ1dCBhbHNvCgkgIG1ha2VzIHN1cmUgdXNlcyBvZiBHU1RfSU5GTyBldC5hbCBhcmUgaWdub3JlZCBpZiB0aGUgZGVidWdnaW5nCgkgIHN5c3RlbSBpc24ndCBpbml0aWFsaXNlZCB5ZXQgKGluc3RlYWQgb2YgcHJpbnRpbmcgYW4gYXNzZXJ0aW9uCgkgIGZhaWx1cmUpLgoKMjAwNy0wOC0yMyAwNzoxMDozMyArMDAwMCAgRGF2aWQgTmXEjWFzIDx5ZXRpQHBoeXNpY3MubXVuaS5jej4KCgkgIGdzdC9NYWtlZmlsZS5hbTogUmVwbGFjZSBzb21lIG5vbiBwb3J0YWJsZSBtYWtlZmlsZSBjb25zdHJ1Y3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggYnk6IERhdmlkIE5lxI1hcyA8eWV0aUBwaHlzaWNzLm11bmkuY3o+CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICBSZXBsYWNlIHNvbWUgbm9uIHBvcnRhYmxlIG1ha2VmaWxlIGNvbnN0cnVjdHMuCgoyMDA3LTA4LTIxIDE0OjEwOjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjb21tb24vZ3RrLWRvYy1wbHVnaW5zLm1hazogR3JycnJyLiBEb24ndCByZW1vdmUgdGhlIHR5cGVzIGZpbGUgb24gbWFrZSBjbGVhbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29tbW9uL2d0ay1kb2MtcGx1Z2lucy5tYWs6CgkgIEdycnJyci4gRG9uJ3QgcmVtb3ZlIHRoZSB0eXBlcyBmaWxlIG9uIG1ha2UgY2xlYW4uCgoyMDA3LTA4LTIwIDE3OjUxOjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC4xLmluOiBBZGQgY29sb3JzcGFjZSB0byBleGFtcGxlIHBpcGVsaW5lLiBGaXhlcyAjNDU4Mjc0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIEFkZCBjb2xvcnNwYWNlIHRvIGV4YW1wbGUgcGlwZWxpbmUuIEZpeGVzICM0NTgyNzQuCgoyMDA3LTA4LTIwIDEyOjMxOjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9yYW5kb20vcmVsZWFzZTogVGhlIHJlbGVhc2UgbWFuYWdlciBzaG91bGQgcnVuICdtYWtlIGRvd25sb2FkLXBvJyBiZWZvcmUgbWFraW5nIGEgcmVsZWFzZSB0byBtYWtlIHN1cmUgdHJhbnNsYXRpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIFRoZSByZWxlYXNlIG1hbmFnZXIgc2hvdWxkIHJ1biAnbWFrZSBkb3dubG9hZC1wbycgYmVmb3JlIG1ha2luZyBhCgkgIHJlbGVhc2UgdG8gbWFrZSBzdXJlIHRyYW5zbGF0aW9ucyBhcmUgdXAtdG8tZGF0ZS4KCSAgKiBwby9MSU5HVUFTOgoJICAqIHBvL2JlLnBvOgoJICAqIHBvL3BsLnBvOgoJICAqIHBvL3J3LnBvOgoJICBBZGQgc29tZSBuZXcgdHJhbnNsYXRpb25zLgoKMjAwNy0wOC0xNyAxMzo0ODoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogRG9uwrR0IHRyeSB0byBkbyBhbnkgc3RhdGUgbWFuYWdlbWVudCB3aGVuIGEgbGl2ZSBwaXBlbGluZSBwb3N0cyBidWZmZXJpbmcgbWVzc2FnZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApLCAobWFpbik6CgkgIERvbsK0dCB0cnkgdG8gZG8gYW55IHN0YXRlIG1hbmFnZW1lbnQgd2hlbiBhIGxpdmUgcGlwZWxpbmUgcG9zdHMKCSAgYnVmZmVyaW5nIG1lc3NhZ2VzLgoJICBBbHNvIG1ha2UgdGhlIGJ1ZmZlcmluZyBzdHJpbmcgdHJhbnNsYXRhYmxlLgoKMjAwNy0wOC0xNiAxMTowNDo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogSW1wcm92ZSBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGlzX2VvcyksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKGJpbl9oYW5kbGVfYXN5bmNfc3RhcnQpLCAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuCgkgIFdoZW4gYWRkaW5nIGVsZW1lbnRzLCBpbnNlcnQgbWVzc2FnZXMgaW50byB0aGUgYnVzIG9mIHRoZSBuZXdseSBhZGRlZAoJICBlbGVtZW50IGFuZCBtYWtlIHN1cmUgdGhlIGVsZW1lbnQgaXMgdGhlIHNvdXJjZSBvZiB0aGUgbWVzc2FnZS4gVGhpcwoJICBhbGxvd3MgdGhlIHBhcmVudCBiaW4gdG8gaW50ZXJjZXB0IHRoZSBtZXNzYWdlIGFuZCBkbyB0aGUKCSAgcmlnaHQgdGhpbmcuIEl0IGFsc28gYXZvaWRzIHVzIHBvc3RpbmcgQVNZTkNfU1RBUlQgYW5kIENMT0NLX1BST1ZJREUKCSAgbWVzc2FnZXMgdG8gdGhlIGFwcCAod2hpY2ggaXMgbm90IGFsbG93ZWQpLgoJICBVcGRhdGUgc29tZSBkb2NzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggdGVzdHN1aXRlIHNvIHRoYXQgaXMgZG9lcyBub3Qgd29yayBhcm91bmQgbWVzc2FnZXMgdGhhdCBzaG91bGQgbm90CgkgIGhhdmUgYmVlbiBwb3N0ZWQgaW4gdGhlIGZpcnN0IHBsYWNlLgoKMjAwNy0wOC0xNiAxMDoyNzoxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogRml4IGFubm95aW5nIGJ1ZyBpbiB0aGUgc29ydGVkIGl0ZXJhdG9yIHdoZXJlIGEgc2luayB0aGF0IGlzIG5vdCByZWFsbHkgYSBzaW5rICh3aGVuIGl0IGhhcyBkb3duc3RyZWFtIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChhZGRfdG9fcXVldWUpLCAocmVtb3ZlX2Zyb21fcXVldWUpLCAoY2xlYXJfcXVldWUpLAoJICAodXBkYXRlX2RlZ3JlZSksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV4dCk6CgkgIEZpeCBhbm5veWluZyBidWcgaW4gdGhlIHNvcnRlZCBpdGVyYXRvciB3aGVyZSBhIHNpbmsgdGhhdCBpcyBub3QgcmVhbGx5CgkgIGEgc2luayAod2hlbiBpdCBoYXMgZG93bnN0cmVhbSBsaW5rcykgc2NyZXdlZCB1cCB0aGUgaXRlcmF0b3IuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2Jpbl9zdWl0ZSk6CgkgIFVuaXQgdGVzdCB0byB2ZXJpZnkgdGhlIGZpeC4KCjIwMDctMDgtMTYgMTA6MDc6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0bWVzc2FnZS5oOiBBZGQgc29tZSBtb3JlIGRvY3MgZm9yIHRoZSBtZXNzYWdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgQWRkIHNvbWUgbW9yZSBkb2NzIGZvciB0aGUgbWVzc2FnZXMuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSk6CgkgIEFkZCBzb21lIG1vcmUgZGVidWdnaW5nLgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBXaGVuIGludGVycnVwdGluZywgZG9uJ3QgdHJ5IHRvIHNldCBwaXBlbGluZSB0byBQQVVTRUQgdHdpY2UuCgoyMDA3LTA4LTE0IDE0OjEwOjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBNb3ZlIEFTWU5DX1NUQVJUIG1lc3NhZ2UgcG9zdGluZyB0byB3aGVyZSBpdCBiZWxvbmdzLCBzaW1pbGFyIHRvIGFzeW5jX2RvbmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSksCgkgIChiaW5faGFuZGxlX2FzeW5jX3N0YXJ0KSwgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIE1vdmUgQVNZTkNfU1RBUlQgbWVzc2FnZSBwb3N0aW5nIHRvIHdoZXJlIGl0IGJlbG9uZ3MsIHNpbWlsYXIgdG8KCSAgYXN5bmNfZG9uZS4KCSAgRG9uJ3QgcG9zdCBBU1lOQ19TVEFSVCB3aGVuIHdlIGFyZSBpbiBlcnJvci4KCSAgUG9zdCBBU1lOQ19TVEFSVCB3aGVuIHdlIGFkZGVkIGFuIGFzeW5jIGVsZW1lbnQgdG8gYSBiaW4uCgoyMDA3LTA4LTE0IDEzOjQzOjQ0ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RpbmRleC5jOiBGaXggaW5kZXggZW50cnkgZ2VuZXJhdGlvbiBmcm9tIHZhcmdzLiBGaXhlcyAjNDY2NTk1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wOC0xNCAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9nc3RpbmRleC5jOiAoZ3N0X2luZGV4X2FkZF9hc3NvY2lhdGlvbik6IEZpeCBpbmRleCBlbnRyeQoJICBnZW5lcmF0aW9uIGZyb20gdmFyZ3MuIEZpeGVzICM0NjY1OTUuCgoyMDA3LTA4LTE0IDEzOjM3OjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBBbHdheXMgY2hhbmdlIHRoZSBzdGF0ZSBvZiBhIE5PX1BSRVJPTEwgZWxlbWVudCBldmVuIGlmIGl0IGhhcyBBU1lOQyBlbGVtZW50cyBpbnNpZGUgKGluIGNhc2Ugb2YgYSBiaW4pLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgQWx3YXlzIGNoYW5nZSB0aGUgc3RhdGUgb2YgYSBOT19QUkVST0xMIGVsZW1lbnQgZXZlbiBpZiBpdCBoYXMgQVNZTkMKCSAgZWxlbWVudHMgaW5zaWRlIChpbiBjYXNlIG9mIGEgYmluKS4KCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3Rfc2lua3Nfc3VpdGUpOgoJICBVbml0IHRlc3QgZm9yIHRoaXMgY2FzZS4KCjIwMDctMDgtMTMgMTM6MzM6MDcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFkZCBtb3JlIG1pc3NpbmcgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuYzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbHNvdXJjZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5oOgoJICBBZGQgbW9yZSBtaXNzaW5nIGRvY3MuCgoyMDA3LTA4LTEyIDE2OjQ0OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBBZGQgU2luY2UgdGFnIHRvIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgQWRkIFNpbmNlIHRhZyB0byBkb2NzLgoKMjAwNy0wOC0xMiAxNjo0MDo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBmdW5jdGlvbiB0byBnZXQgdWludCBmcm9tIGEgc3RydWN0dXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfZ2V0X3VpbnQpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgQWRkIGZ1bmN0aW9uIHRvIGdldCB1aW50IGZyb20gYSBzdHJ1Y3R1cmUuCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9nZXRfdWludCgpCgoyMDA3LTA4LTEyIDE2OjM4OjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogRml4IHByb3BlciBjaGVjayBmb3Igc2ltcGxlIGNhcHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19zZXRfc2ltcGxlX3ZhbGlzdCksCgkgIChnc3RfY2Fwc19pbnRlcnNlY3QpOgoJICBGaXggcHJvcGVyIGNoZWNrIGZvciBzaW1wbGUgY2Fwcy4KCjIwMDctMDgtMTAgMTc6MzU6MzAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvOiBSZW1vdmUgY3J1ZnQgYW5kIGRvIHNvbWUgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgUmVtb3ZlIGNydWZ0IGFuZCBkbyBzb21lIGNsZWFudXBzLgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgUHJlcGFyZSBmb3IgY29tbWluZyBndGtkb2MgZmVhdHVyZXMgKHJlYmFzZSBhZ2FpbnN0IG9ubGluZSBkb2NzKS4KCjIwMDctMDgtMTAgMTQ6NTI6NDEgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBnc3RfcmVnaXN0cnlfYWRkX3BhdGggdG8gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIGdzdF9yZWdpc3RyeV9hZGRfcGF0aCB0byBkb2NzLgoJICBBbHNvIGZpeCBmb3JtYXR0aW5nIG9mIGFuIG9sZGVyIGNoYW5nZWxvZyBlbnRyeQoKMjAwNy0wOC0xMCAxNDo0MDoyNiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5Lmg6IEFkZCBnc3RfcmVnaXN0cnlfYWRkX3BhdGgsIHdoaWNoIHdhcyBtaXNzaW5nIGZyb20gdGhpcyBoZWFkZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICBBZGQgZ3N0X3JlZ2lzdHJ5X2FkZF9wYXRoLCB3aGljaCB3YXMgbWlzc2luZyBmcm9tIHRoaXMgaGVhZGVyLgoKMjAwNy0wOC0xMCAxMDozMDoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOiBQcmludGYgZm9ybWF0IGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIFByaW50ZiBmb3JtYXQgZml4LgoKMjAwNy0wOC0wOSAyMTo1MDoxOSArMDAwMCAgUGhpbGlwcGUgS2FsYWYgPHBoaWxpcHBlLmthbGFmQGNvbGxhYm9yYS5jby51az4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRG9uJ3Qgc2VuZCBhbiBhc3luY19zdGFydCBtZXNzYWdlIGR1cmluZyBkb3dud2FyZHMgc3RhdGUgY2hhbmdlIGlmIHRhcmdldCBzdGF0ZSBpcyBsZXNzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIERvbid0IHNlbmQgYW4gYXN5bmNfc3RhcnQgbWVzc2FnZSBkdXJpbmcgZG93bndhcmRzIHN0YXRlIGNoYW5nZSBpZiB0YXJnZXQKCSAgc3RhdGUgaXMgbGVzcyB0aGFuIFJFQURZCgoyMDA3LTA4LTA5IDEwOjUwOjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvLzogQWRkZWQgSHVuZ2FyaWFuIHRyYW5zbGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdHJhbnNsYXRlZCBieTogR2Fib3IgS2VsZW1lbiA8a2VsZW1lbmdAZ25vbWUuaHU+CgkgICogcG8vTElOR1VBUzoKCSAgKiBwby9odS5wbzoKCSAgQWRkZWQgSHVuZ2FyaWFuIHRyYW5zbGF0aW9uLgoKMjAwNy0wOC0wOSAxMDo0ODo1MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwby86IFVwZGF0ZWQgdHJhbnNsYXRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwby9maS5wbzoKCSAgKiBwby9pdC5wbzoKCSAgKiBwby9ubC5wbzoKCSAgKiBwby9zdi5wbzoKCSAgKiBwby91ay5wbzoKCSAgVXBkYXRlZCB0cmFuc2xhdGlvbnMuCgoyMDA3LTA4LTA3IDE2OjA2OjQ3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06IERpc3QgZ3N0bGZvY29udHJvbHNvdXJjZXByaXZhdGUuaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICBEaXN0IGdzdGxmb2NvbnRyb2xzb3VyY2Vwcml2YXRlLmgKCjIwMDctMDgtMDcgMTU6MTU6NDAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOiBEb24ndCByZWdpc3RlciB0aGUgZW51bSB0eXBlIGdzdF9sZm9fd2F2ZWZvcm1fZ2V0X3R5cGUoKSBpbiB0aGUgLnR5cGVzIGZpbGUgLSBvbmx5IEdPLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSAgRG9uJ3QgcmVnaXN0ZXIgdGhlIGVudW0gdHlwZSBnc3RfbGZvX3dhdmVmb3JtX2dldF90eXBlKCkgaW4gdGhlCgkgIC50eXBlcyBmaWxlIC0gb25seSBHT2JqZWN0IGRlcml2ZWQgdHlwZXMgYmVsb25nLgoKMjAwNy0wOC0wNyAxNDowNDoyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuaDogUmVtb3ZlIGNvbW1hIGZyb20gbGFzdCBlbGVtZW50IGluIGVudW0gdG8gYXZvaWQgY29tcGlsZSBlcnJvcnMgd2hlbiB1c2luZyAtcGVuZGFudGljLiBGaXhlcyAjNDY0MzY2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IDxhcmVuZXZpZXIgYXQgZmRuIGRvdCBmcj4KCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIFJlbW92ZSBjb21tYSBmcm9tIGxhc3QgZWxlbWVudCBpbiBlbnVtIHRvIGF2b2lkIGNvbXBpbGUgZXJyb3JzIHdoZW4KCSAgdXNpbmcgLXBlbmRhbnRpYy4gRml4ZXMgIzQ2NDM2Ni4KCjIwMDctMDgtMDcgMDk6NTY6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBBZGQgc29tZSBtb3JlIFRPRE8gaXRlbXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgQWRkIHNvbWUgbW9yZSBUT0RPIGl0ZW1zCgkgICogZ3N0L2dzdGJpbi5jOiAoZmluZF9tZXNzYWdlKSwgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpOgoJICBJbXByb3ZlIGRlYnVnZ2luZy4KCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfaW50ZXJzZWN0KToKCSAgT3B0aW1pemUgdHJpdmlhbCBpbnRlcnNlY3Rpb24gY2FzZSBiZXR3ZWVuIGlkZW50aWNhbCBjYXBzIHBvaW50ZXJzLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jb250aW51ZV9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGVfZnVuYyk6CgkgICogZ3N0L2dzdHBhZC5jOgoJICBGaXggc3BlbGxpbmcgYW5kIGdyYW1tYXIgbWlzdGFrZXMuCgoyMDA3LTA4LTA1IDE0OjQ4OjA2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwby9QT1RGSUxFUy4qOiBVcGRhdGUgUE9URklMRVMuIEZpeGVzICM0NjE1OTkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBvL1BPVEZJTEVTLmluOgoJICAqIHBvL1BPVEZJTEVTLnNraXA6CgkgIFVwZGF0ZSBQT1RGSUxFUy4gRml4ZXMgIzQ2MTU5OS4KCjIwMDctMDgtMDMgMTk6MjU6NDUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3QuYzogRml4IGNvbmZ1c2luZyB0eXBvIGluIGRlYnVnIG91dHB1dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBGaXggY29uZnVzaW5nIHR5cG8gaW4gZGVidWcgb3V0cHV0LgoKMjAwNy0wOC0wMyAxNTo0NzoxNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci86IEFQSTogQWRkIEdzdExGT0NvbnRyb2xTb3VyY2UsIGEgY29udHJvbCBzb3VyY2UgdGhhdCBnaXZlcyB2YWx1ZXMgZm9yIHNwZWNpZmljIHRpbWVzdGFtcHMgYmFzZWQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXZpZXdlZCBieTogU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6IChfY2FsY3VsYXRlX3BvcyksCgkgIChnc3RfbGZvX3dhdmVmb3JtX2dldF90eXBlKSwgKGdzdF9sZm9fY29udHJvbF9zb3VyY2VfcmVzZXQpLAoJICAoZ3N0X2xmb19jb250cm9sX3NvdXJjZV9uZXcpLAoJICAoZ3N0X2xmb19jb250cm9sX3NvdXJjZV9zZXRfd2F2ZWZvcm0pLAoJICAoZ3N0X2xmb19jb250cm9sX3NvdXJjZV9iaW5kKSwgKGdzdF9sZm9fY29udHJvbF9zb3VyY2VfaW5pdCksCgkgIChnc3RfbGZvX2NvbnRyb2xfc291cmNlX2ZpbmFsaXplKSwKCSAgKGdzdF9sZm9fY29udHJvbF9zb3VyY2VfZGlzcG9zZSksCgkgIChnc3RfbGZvX2NvbnRyb2xfc291cmNlX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfbGZvX2NvbnRyb2xfc291cmNlX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfbGZvX2NvbnRyb2xfc291cmNlX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZXByaXZhdGUuaDoKCSAgQVBJOiBBZGQgR3N0TEZPQ29udHJvbFNvdXJjZSwgYSBjb250cm9sIHNvdXJjZSB0aGF0IGdpdmVzIHZhbHVlcwoJICBmb3Igc3BlY2lmaWMgdGltZXN0YW1wcyBiYXNlZCBvbiBzZXZlcmFsIHBlcmlvZGljIHdhdmVmb3Jtcy4KCSAgRml4ZXMgIzQ1OTcxNy4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJICBBZGQgZG9jdW1lbnRhdGlvbiBhbmQgdW5pdCB0ZXN0cyBmb3IgR3N0TEZPQ29udHJvbFNvdXJjZS4KCjIwMDctMDgtMDMgMTQ6NDA6MjIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBCYWNrIHRvIENWUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gQ1ZTCgo9PT0gcmVsZWFzZSAwLjEwLjE0ID09PQoKMjAwNy0wOC0wMyAxNDozOToxNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjEwLjE0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZWxlYXNlIDAuMTAuMTQKCjIwMDctMDgtMDMgMTM6MjA6NTAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDctMDgtMDIgMTE6NTE6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudC4qOiBNYWtlIHN0cmluZ3MgcGFzc2VkIHRvIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSgpIGNvbnN0YW50LCBhcyB0aGV5IHNob3VsZCBiZSAoIzQ2Mjc1MikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIE1ha2Ugc3RyaW5ncyBwYXNzZWQgdG8gZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlKCkKCSAgY29uc3RhbnQsIGFzIHRoZXkgc2hvdWxkIGJlICgjNDYyNzUyKS4KCjIwMDctMDgtMDIgMTE6MTU6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IERvbid0IGZvcmdldCBhYm91dCB0aGUgZmFjdCB0aGF0IHNvbWUgZWxlbWVudCB3ZW50IEFTWU5DIGV2ZW4gYWZ0ZXIgYSByZXN5bmMuIFRoaXMgbWFrZXMgdXMgcG9zdCB0aGUgQVMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyksCgkgIChiaW5faGFuZGxlX2FzeW5jX2RvbmUpLCAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgRG9uJ3QgZm9yZ2V0IGFib3V0IHRoZSBmYWN0IHRoYXQgc29tZSBlbGVtZW50IHdlbnQgQVNZTkMgZXZlbiBhZnRlciBhCgkgIHJlc3luYy4gVGhpcyBtYWtlcyB1cyBwb3N0IHRoZSBBU1lOQ19ET05FIG1lc3NhZ2UgY29ycmVjdGx5LgoJICBGaXhlcyAjNDYyNTU4LgoKMjAwNy0wNy0zMSAxMTo1MTozOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cmVnaXN0cnkuYzogV2hlbiByZXBsYWNpbmcgYW4gZXhpc3RpbmcgZmVhdHVyZSBpbiB0aGUgcmVnaXN0cnksIG1ha2Ugc3VyZSB0byBjb250aW51ZSBob2xkaW5nIGEgcmVmZXJlbmNlIHVudGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfYWRkX2ZlYXR1cmUpOgoJICBXaGVuIHJlcGxhY2luZyBhbiBleGlzdGluZyBmZWF0dXJlIGluIHRoZSByZWdpc3RyeSwgbWFrZSBzdXJlIHRvCgkgIGNvbnRpbnVlIGhvbGRpbmcgYSByZWZlcmVuY2UgdW50aWwgd2UndmUgcmVwbGFjZWQgdGhlIG5hbWUgc3RyaW5nCgkgIHdpdGhpbiBvdXIgZmVhdHVyZSBoYXNoIHRhYmxlLiBNYWtlIHN1cmUgdG8gdXNlIGdfaGFzaF90YWJsZV9yZXBsYWNlCgkgIGluc3RlYWQgb2YgZ19oYXNoX3RhYmxlX2luc2VydCB0byBlbnN1cmUgdGhlIG5ldyBuYW1lIHN0cmluZyBpcyB1c2VkCgkgIGFzIGEga2V5IGluc3RlYWQgb2YgdGhlIG9sZCBvbmUgdGhhdCB3ZSdyZSBhYm91dCB0byBmcmVlLgoJICBGaXhlczogIzQ2MjA4NQoKMjAwNy0wNy0zMSAxMDoxMDoyNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiBSZXZlcnQgcGF0Y2ggZnJvbSAjNDU5NDY2IHVudGlsIGFmdGVyIHRoZSByZWxlYXNlIGFuZCB3ZSBjYW4gd29yayBvdXQgZXhhY3RseSB3aGF0IHRoZSBwcm9ibGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogKGdzdF9wbHVnaW5fZmVhdHVyZV9maW5hbGl6ZSksCgkgIChnc3RfcGx1Z2luX2ZlYXR1cmVfc2V0X25hbWUpOgoJICBSZXZlcnQgcGF0Y2ggZnJvbSAjNDU5NDY2IHVudGlsIGFmdGVyIHRoZSByZWxlYXNlIGFuZCB3ZSBjYW4gd29yawoJICBvdXQgZXhhY3RseSB3aGF0IHRoZSBwcm9ibGVtIGlzIChpZiBhbnkpLgoKMjAwNy0wNy0yNiAxNTo0ODo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIEdTVF9UQUdfTElDRU5TRV9VUkkgYW5kIEdTVF9UQUdfQ09QWVJJR0hUX1VSSSAoIzQ1MTkzOSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBBUEk6IGFkZCBHU1RfVEFHX0xJQ0VOU0VfVVJJIGFuZCBHU1RfVEFHX0NPUFlSSUdIVF9VUkkgKCM0NTE5MzkpLgoKMjAwNy0wNy0yNiAxNDowNToyMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL2xpYnMvTWFrZWZpbGUuYW06IEluY2x1ZGUgb3VyIGJ1aWxkLXByZWZpeCBsaWJzIGFuZCBpbmNsdWRlcyBiZWZvcmUgdGhlIGdlbmVyaWMgb25lcyB0byBhdm9pZCBsaW5raW5nIGFnYWluc3QgdGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICBJbmNsdWRlIG91ciBidWlsZC1wcmVmaXggbGlicyBhbmQgaW5jbHVkZXMgYmVmb3JlIHRoZSBnZW5lcmljIG9uZXMgdG8KCSAgYXZvaWQgbGlua2luZyBhZ2FpbnN0IHRoZSBpbnN0YWxsZWQgbGlicyB3aGVuIHdlIHdhbnQgdGhlIGJ1aWxkLXRyZWUKCSAgb25lcy4KCjIwMDctMDctMjYgMDg6NDY6NDYgKzAwMDAgIFN0ZXZlIEZpbmsgPHNwaGlua0BnbWFpbC5jb20+CgoJICBkb2NzL3B3Zy9idWlsZGluZy10ZXN0YXBwLnhtbDogTWVudGlvbiB0aGF0IEdTVF9QTFVHSU5fUEFUSCBvciAtLWdzdC1wbHVnaW4tcGF0aCBtaWdodCBiZSBuZWVkZWQgaWYgcGVvcGxlIHRyeSB0byBidWkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTdGV2ZSBGaW5rICA8c3BoaW5rIGdtYWlsIGNvbT4KCSAgKiBkb2NzL3B3Zy9idWlsZGluZy10ZXN0YXBwLnhtbDoKCSAgTWVudGlvbiB0aGF0IEdTVF9QTFVHSU5fUEFUSCBvciAtLWdzdC1wbHVnaW4tcGF0aCBtaWdodCBiZSBuZWVkZWQKCSAgaWYgcGVvcGxlIHRyeSB0byBidWlsZCBvciBpbnN0YWxsIHRoZSBleGFtcGxlIGZyb20gdGhlIHBsdWdpbgoJICB0ZW1wbGF0ZSBhZ2FpbnN0IGEgR1N0cmVhbWVyIGZyb20gcGFja2FnZSB1c2luZyB0aGUgY29uZmlndXJlCgkgIGRlZmF1bHRzLgoKMjAwNy0wNy0yNSAyMjoyOTo1NyArMDAwMCAgU3RldmUgRmluayA8c3BoaW5rQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LjEuaW46IERvY3VtZW50IC0tcHJpbnQtYWxsIGFuZCAtLXByaW50LXBsdWdpbi1hdXRvLWluc3RhbGwtaW5mbyBjb21tYW5kIGxpbmUgb3B0aW9ucyBpbiBtYW4gcGFnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTdGV2ZSBGaW5rICA8c3BoaW5rIGdtYWlsIGNvbT4KCSAgKiB0b29scy9nc3QtaW5zcGVjdC4xLmluOgoJICBEb2N1bWVudCAtLXByaW50LWFsbCBhbmQgLS1wcmludC1wbHVnaW4tYXV0by1pbnN0YWxsLWluZm8gY29tbWFuZAoJICBsaW5lIG9wdGlvbnMgaW4gbWFuIHBhZ2UuCgoyMDA3LTA3LTI1IDE4OjQ2OjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIGRvY3MgZm9yIG5ldyBhcGkgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBkb2NzIGZvciBuZXcgYXBpIGZ1bmN0aW9uLgoKMjAwNy0wNy0yNSAxODozNzoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS4qOiBBUEk6IGdzdF9lbGVtZW50X2ZhY3RvcnlfaGFzX2ludGVyZmFjZSgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9oYXNfaW50ZXJmYWNlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgQVBJOiBnc3RfZWxlbWVudF9mYWN0b3J5X2hhc19pbnRlcmZhY2UoKQoJICBBZGRlZCBtZXRob2QgdG8gY2hlY2sgaWYgYW4gZWxlbWVudCBmYWN0b3J5IGltcGxlbWVudHMgYSBuYW1lZAoJICBpbnRlcmZhY2UuCgoyMDA3LTA3LTI1IDEzOjAwOjIzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBbm90aGVyIGNvbmRpdGlvbmFsIGRvYyBjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSAgQW5vdGhlciBjb25kaXRpb25hbCBkb2MgY2hlY2suCgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgKiBnc3QvZ3N0cGFyYW1zcGVjcy5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgKiBnc3QvZ3N0eG1sLmg6CgkgIEFQSS1kb2MgZml4ZXMuCgoyMDA3LTA3LTI0IDEzOjQ0OjA0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogUHJpbnQgZXJyb3IganVzdCBvbmNlIGFuZCB3aXRoIGFkZGl0aW9uYWwgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X2NoZWNrX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgUHJpbnQgZXJyb3IganVzdCBvbmNlIGFuZCB3aXRoIGFkZGl0aW9uYWwgaW5mby4KCjIwMDctMDctMjQgMTM6Mzg6MjEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogQ2xlYW51cCB0aGUgdHlwZWZpbmRoZWxwZXIgY29kZSBhbmQgYWRkIHByaXZhdGUgZG9jIGNvbW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChoZWxwZXJfZmluZF9wZWVrKSwKCSAgKGhlbHBlcl9maW5kX3N1Z2dlc3QpLCAoaGVscGVyX2ZpbmRfZ2V0X2xlbmd0aCksCgkgIChnc3RfdHlwZV9maW5kX2hlbHBlcl9nZXRfcmFuZ2UpLCAoYnVmX2hlbHBlcl9maW5kX3N1Z2dlc3QpLAoJICAoZ3N0X3R5cGVfZmluZF9oZWxwZXJfZm9yX2J1ZmZlcik6CgkgIENsZWFudXAgdGhlIHR5cGVmaW5kaGVscGVyIGNvZGUgYW5kIGFkZCBwcml2YXRlIGRvYyBjb21tZW50cy4KCjIwMDctMDctMjQgMTI6MzI6MzEgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogRml4IGNhcHNmaWx0ZXIgZm9yIGNhc2VzIHdoZXJlIHRoZSBjYXBzIHNldCBvbiBjYXBzZmlsdGVyIHdpbGwgcHJvdmlkZSBhZGRpdGlvbmFsIGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9jbGFzc19pbml0KSwKCSAgKGdzdF9jYXBzZmlsdGVyX3RyYW5zZm9ybV9zaXplKSwgKGdzdF9jYXBzZmlsdGVyX3ByZXBhcmVfYnVmKToKCSAgRml4IGNhcHNmaWx0ZXIgZm9yIGNhc2VzIHdoZXJlIHRoZSBjYXBzIHNldCBvbiBjYXBzZmlsdGVyIHdpbGwgcHJvdmlkZQoJICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uLgoJICBGaXhlcyAjNDQ5MTk3CgoyMDA3LTA3LTI0IDExOjMxOjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6IEZpeCBkb2NzIHRoYXQgcmVjb21tZW5lZCB3cm9uZyBmdW5jdGlvbiB0byB1c2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSAgRml4IGRvY3MgdGhhdCByZWNvbW1lbmVkIHdyb25nIGZ1bmN0aW9uIHRvIHVzZS4KCjIwMDctMDctMjMgMTM6MDM6NDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEFsc28gZ2l2ZSBtZWRpYS10eXBlIGZvciB0eXBlZmluZGVycyBpbiBlbGVtZW50IG91dHB1dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X3BsdWdpbl9mZWF0dXJlcyk6CgkgIEFsc28gZ2l2ZSBtZWRpYS10eXBlIGZvciB0eXBlZmluZGVycyBpbiBlbGVtZW50IG91dHB1dC4KCjIwMDctMDctMjMgMTE6NDI6MTIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeS4qOiBTcGVlZCB1cCBnc3RfcmVnaXN0cnlfbG9va3VwX2ZlYXR1cmVfbG9ja2VkKCkgYnkgdXNpbmcgYSBoYXNobWFwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9pbml0KSwgKGdzdF9yZWdpc3RyeV9maW5hbGl6ZSksCgkgIChnc3RfcmVnaXN0cnlfcmVtb3ZlX2ZlYXR1cmVzX2Zvcl9wbHVnaW5fdW5sb2NrZWQpLAoJICAoZ3N0X3JlZ2lzdHJ5X2FkZF9mZWF0dXJlKSwgKGdzdF9yZWdpc3RyeV9yZW1vdmVfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfbG9va3VwX2ZlYXR1cmVfbG9ja2VkKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgU3BlZWQgdXAgZ3N0X3JlZ2lzdHJ5X2xvb2t1cF9mZWF0dXJlX2xvY2tlZCgpIGJ5IHVzaW5nIGEgaGFzaG1hcC4KCSAgRml4ZXMgIzQ1OTUwMS4KCjIwMDctMDctMjMgMTA6Mzk6MTAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IEF2b2lkIGRvdWJsZSBtZW1vcnkgdXNhZ2UgZm9yIHBsdWdpbmZlYXR1cmUgbmFtZXMuIEZpeGVzICM0NTk0NjYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IChnc3RfcGx1Z2luX2ZlYXR1cmVfZmluYWxpemUpLAoJICAoZ3N0X3BsdWdpbl9mZWF0dXJlX3NldF9uYW1lKToKCSAgQXZvaWQgZG91YmxlIG1lbW9yeSB1c2FnZSBmb3IgcGx1Z2luZmVhdHVyZSBuYW1lcy4gRml4ZXMgIzQ1OTQ2Ni4KCjIwMDctMDctMjIgMTg6MjY6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGFkLmg6IFNtYWxsIGFkZGl0aW9uIHRvIEdTVF9GTE9XX0lTX0ZBVEFMKCkgZG9jczogbWVudGlvbiB0aGF0IGVsZW1lbnRzIGRyaXZpbmcgdGhlIHBpcGVsaW5lIG1heSBuZWVkIHRvIGV4cGwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBTbWFsbCBhZGRpdGlvbiB0byBHU1RfRkxPV19JU19GQVRBTCgpIGRvY3M6IG1lbnRpb24gdGhhdCBlbGVtZW50cwoJICBkcml2aW5nIHRoZSBwaXBlbGluZSBtYXkgbmVlZCB0byBleHBsaWNpdGx5IGNoZWNrIGZvciBOT1RfTElOS0VEIGFzCgkgIHdlbGwsIHNpbmNlIElTX0ZBVEFMIGRvZXNuJ3QgY292ZXIgdGhhdC4KCjIwMDctMDctMjIgMTg6MTY6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6IEZpeCB0eXBvIGFuZCBkdXBsaWNhdGUgZW50cnkgaW4gdmlkZW8gZm9ybWF0cyBsaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgIEZpeCB0eXBvIGFuZCBkdXBsaWNhdGUgZW50cnkgaW4gdmlkZW8gZm9ybWF0cyBsaXN0LgoKMjAwNy0wNy0yMiAxMjoxODo0NiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6IEFsc28gcm91bmQgdG8gdGhlIG5lYXJlc3QgaW50IHdoZW4gdXNpbmcgY3ViaWMgaW50ZXJwb2xhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIEFsc28gcm91bmQgdG8gdGhlIG5lYXJlc3QgaW50IHdoZW4gdXNpbmcgY3ViaWMgaW50ZXJwb2xhdGlvbi4KCjIwMDctMDctMjEgMjE6MjA6MzcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6IFdoZW4gbGluZWFybHkgaW50ZXJwb2xhdGluZyBpbnRlZ2VyIHR5cGVzLCByb3VuZCB0byB0aGUgbmVhcmVzdCBpbnQgYnkgYWRkaW5nLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICBXaGVuIGxpbmVhcmx5IGludGVycG9sYXRpbmcgaW50ZWdlciB0eXBlcywgcm91bmQgdG8gdGhlIG5lYXJlc3QgaW50CgkgIGJ5IGFkZGluZyAwLjUuIERvbid0IGRvIGl0IGZvciBmbG9hdC9kb3VibGUgdHlwZXMuCgkgIEZpeGVzIHRoZSBmYWlsaW5nIGNvbnRyb2xsZXIgdGVzdCBvbiBteSBtYWNoaW5lLCB3aGljaCBpcyBzb21laG93CgkgIHJvdW5kaW5nIGRpZmZlcmVudGx5IHRoYW4gb24gdGhlIGJ1aWxkYm90cy4KCjIwMDctMDctMjAgMDc6MzY6NDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRvb2xzL2dzdC1wbG90LXRpbWVsaW5lLnB5OiBCZXR0ZXIgbG9nIHBhcnNpbmcgKGNhdGVnb3JpZXMgY2FuIGhhdmUgLSkuIEFkanVzdCB0ZXh0IHZzLiBsaW5lcywgc28gdGhhdCB0aGV5IHNwYW4gdGhlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtcGxvdC10aW1lbGluZS5weToKCSAgQmV0dGVyIGxvZyBwYXJzaW5nIChjYXRlZ29yaWVzIGNhbiBoYXZlIC0pLiBBZGp1c3QgdGV4dCB2cy4gbGluZXMsIHNvCgkgIHRoYXQgdGhleSBzcGFuIHRoZSBzYW1lIHktcmFuZ2UuCgoyMDA3LTA3LTIwIDA3OjI2OjM5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljLzogU2F2ZSBteSB0aG91Z2h0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9hdWRpb2Jhc2VjbGFzc2VzLnR4dDoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2R5bmxpbmsudHh0OgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvcHJvZmlsaW5nLnR4dDoKCSAgU2F2ZSBteSB0aG91Z2h0cy4KCSAgKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSAgQWRkIG5vdGUgdG8gdXNlIGdfYXNzZXJ0IHR5cGUgbWFjcm9zLgoKMjAwNy0wNy0yMCAwNzowOToxMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQWRkIGxpYm0gY2hlY2sgYXMgd2UgdXNlIGluIGZvciBwbHVnaW5zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIEFkZCBsaWJtIGNoZWNrIGFzIHdlIHVzZSBpbiBmb3IgcGx1Z2lucy4KCjIwMDctMDctMTggMTQ6MzE6MjEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBDaGVjayB0aGF0IHRoZSBzdGF0ZV9jb29raWUgaGFzbid0IGNoYW5nZWQgc2luY2UgdGhlIGNvbnRpbnVlX2Z1bmMgd2FzIHNjaGVkdWxlZC4gQXZvaWRzIHByb2JsZW1zIHdoZXJlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY29udGludWVfZnVuYyk6CgkgIENoZWNrIHRoYXQgdGhlIHN0YXRlX2Nvb2tpZSBoYXNuJ3QgY2hhbmdlZCBzaW5jZSB0aGUgY29udGludWVfZnVuYwoJICB3YXMgc2NoZWR1bGVkLiBBdm9pZHMgcHJvYmxlbXMgd2hlcmUgdGhlIHN0YXRlIGNoYW5nZXMgYmFjayB0bwoJICBzb21ldGhpbmcgaXQgc2hvdWxkbid0IGJlIGJlY2F1c2UgaXQgd2FzIGNoYW5nZWQgaW4gdGhlIG1lYW50aW1lLgoKMjAwNy0wNy0xNyAwOTo0NDo1MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IEZpeCBtZW1vcnkgbGVhay4gQmUgbGVzcyB2ZXJib3NlIGluIHRoZSBsb2cuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX2NvbnN0X3N0cmluZyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfc3RyaW5nKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgIEZpeCBtZW1vcnkgbGVhay4gQmUgbGVzcyB2ZXJib3NlIGluIHRoZSBsb2cuCgoyMDA3LTA3LTE2IDE2OjQ0OjMxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6IEFkZCBmaWxlIHRvIGN2c2lnbm9yZSBhcyBjb21tYW5kZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6CgkgIEFkZCBmaWxlIHRvIGN2c2lnbm9yZSBhcyBjb21tYW5kZWQuCgoyMDA3LTA3LTE2IDE2OjA0OjQ5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzogVXNlIGEgR1N0YXRpY011dGV4IHRvIHByb3RlY3QgYWxsIGNhc2VzIHdoZXJlIGxpYmNoZWNrIGZhaWxfaWYvZmFpbF91bmxlc3MgbWFjcm9zIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6IChtcV9kdW1teXBhZF9jaGFpbiksCgkgIChtcV9kdW1teXBhZF9ldmVudCksIChydW5fb3V0cHV0X29yZGVyX3Rlc3QpOgoJICBVc2UgYSBHU3RhdGljTXV0ZXggdG8gcHJvdGVjdCBhbGwgY2FzZXMgd2hlcmUgbGliY2hlY2sKCSAgZmFpbF9pZi9mYWlsX3VubGVzcyBtYWNyb3MgbWlnaHQgYmUgY2FsbGVkIGZyb20gbXVsdGlwbGUgdGhyZWFkcwoJICBzaW11bHRhbmVvdXNseSB0byBhdm9pZCBlcnJvcnMgbGlrZToKCSAgImNoZWNrX3BhY2suYzoxMDc6IDotMTA4MTcyNTQwMDpCYWQgbWVzc2FnZSB0eXBlIGFyZyIKCjIwMDctMDctMTYgMTU6MTk6MDYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svcGlwZWxpbmVzL3N0cmVzcy5jOiBNYWtlIHN1cmUgd2Ugc2V0IHRoZSBwaXBlbGluZSBiYWNrIHRvIHRoZSBOVUxMIHN0YXRlIGJlZm9yZSBkcm9wcGluZyBvdXIgZmluYWwgcmVmZXJlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgTWFrZSBzdXJlIHdlIHNldCB0aGUgcGlwZWxpbmUgYmFjayB0byB0aGUgTlVMTCBzdGF0ZSBiZWZvcmUKCSAgZHJvcHBpbmcgb3VyIGZpbmFsIHJlZmVyZW5jZS4KCjIwMDctMDctMTYgMTQ6NTU6MjYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6IE1ha2UgdGhlIHRlZSBzdHJlc3MtdGVzdCBhIGxpdHRsZSBsZXNzIHN0cmVzc2Z1bCBzbyBpdCBkb2Vzbid0IGp1c3QgdGltZSBvdXQgb24gc2xvdy1tYWNoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBNYWtlIHRoZSB0ZWUgc3RyZXNzLXRlc3QgYSBsaXR0bGUgbGVzcyBzdHJlc3NmdWwgc28gaXQgZG9lc24ndCBqdXN0CgkgIHRpbWUgb3V0IG9uIHNsb3ctbWFjaGluZXMsIGFuZCByZW1vdmUgYSBzbWFsbCByYWNlIHdoZW4gaXQncyBzdGFydGluZwoJICB1cCBieSBhZGRpbmcgYSBnZXRfc3RhdGUoKSBjYWxsLgoKMjAwNy0wNy0xNiAxMjozNjoxOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdC5jOiBBdm9pZCByZWFkaW5nIHJlZ2lzdHJ5IHR3aWNlIG9uIHN0YXJ0dXAuIEZpeGVzICM0NTczMjIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgQXZvaWQgcmVhZGluZyByZWdpc3RyeSB0d2ljZSBvbiBzdGFydHVwLiBGaXhlcyAjNDU3MzIyLgoKMjAwNy0wNy0xMyAxNDoxMToyMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBwa2djb25maWcvOiBTdWJzdGl0dXRlIHRoZSBDRkxBR1MgZm9yIGxpYmNoZWNrIGludG8gb3VyIC5wYyBmaWxlIHRvbyBzbyB0aGF0IGRlcGVuZGVudCBtb2R1bGVzIHdpbGwgcGljayBpdCB1cCBwcm9wZXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLnBjLmluOgoJICBTdWJzdGl0dXRlIHRoZSBDRkxBR1MgZm9yIGxpYmNoZWNrIGludG8gb3VyIC5wYyBmaWxlIHRvbyBzbyB0aGF0CgkgIGRlcGVuZGVudCBtb2R1bGVzIHdpbGwgcGljayBpdCB1cCBwcm9wZXJseSBpZiBsaWJjaGVjayBpcyBpbnN0YWxsZWQKCSAgaW50byBzb21lIG90aGVyIHByZWZpeC4KCjIwMDctMDctMTMgMTM6NDk6MTQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBSZXZlcnQgdGhlIHBrZy1jb25maWcgY2hlY2sgZm9yIGxpYmNoZWNrLCBzaW5jZSBpdCBwdWxscyBpbiB0aGUgd3Jvbmcgbm9uLVBJQyBsaWJjaGVjay5hIG9uIFVidW50dSBhbmQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgUmV2ZXJ0IHRoZSBwa2ctY29uZmlnIGNoZWNrIGZvciBsaWJjaGVjaywgc2luY2UgaXQgcHVsbHMgaW4gdGhlCgkgIHdyb25nIG5vbi1QSUMgbGliY2hlY2suYSBvbiBVYnVudHUgYW5kIHByb2JhYmx5IEZlZG9yYSB0b28uIFdlIG5lZWQKCSAgYSBwcm9wZXIgc29sdXRpb24sIGVpdGhlciBmcm9tIHRoZSBjaGVjayBwcm9qZWN0LCBvciBzb21ldGhpbmcgZWxzZS4KCjIwMDctMDctMTIgMTE6MTA6MjIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogVXNlIHBrZy1jb25maWcgdG8gbG9jYXRlIGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFVzZSBwa2ctY29uZmlnIHRvIGxvY2F0ZSBjaGVjay4KCjIwMDctMDctMTAgMjA6MTA6MTYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0LmM6IEZpeCBkb2Mgc3ludGF4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBGaXggZG9jIHN5bnRheC4KCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQWRkIGRlcHJlY2F0aW9uIGd1YXJkcy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIERvbid0IGRvY3VtZW50IG9iamVjdCAodGhpcyBpcyBpbXBsaWNpdGx5IHByaXZhdGUpLgoKMjAwNy0wNy0wOCAxNDoxMTo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogV2hlbiBkZXNlcmlhbGlzaW5nIGZvbz1iYXIgd2l0aG91dCBhIHR5cGUgY2FzdCwgY2hlY2sgaWYgaXQncyBhIGJvb2xlYW4gYmVmb3JlIGZhbGxpbmcgYmFjayB0byBhIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3BhcnNlX3ZhbHVlKToKCSAgV2hlbiBkZXNlcmlhbGlzaW5nIGZvbz1iYXIgd2l0aG91dCBhIHR5cGUgY2FzdCwgY2hlY2sgaWYgaXQncyBhCgkgIGJvb2xlYW4gYmVmb3JlIGZhbGxpbmcgYmFjayB0byBhIHN0cmluZyB0eXBlLCBvdGhlcndpc2UgdGhpbmdzIGxpa2UKCSAgYXVkaW90ZXN0c3JjICEgYXVkaW8veC1yYXctaW50LHNpZ25lZD10cnVlICEgZmFrZXNpbmsgd29uJ3Qgd29yaywKCSAgYmVjYXVzZSB0aGUgZmlsdGVyY2FwcyBlbmQgdXAgaGF2aW5nIGEgc2lnbmVkPShzdHJpbmcpdHJ1ZSBmaWVsZCwKCSAgd2hpY2ggY2F1c2VzIHByb2JsZW1zIGxhdGVyIHdoZW4gaW50ZXJzZWN0aW9uIGNhcHMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgYSB1bml0IHRlc3QgZm9yIHRoaXMuCgoyMDA3LTA3LTA2IDIxOjUwOjAyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogQVBJOiBSZWZhY3RvciBHc3RDb250cm9sbGVyIGludG8gdGhlIGNvcmUgY29udHJvbGxlciB3aGljaCBjYW4gdGFrZSBhIEdzdENvbnRyb2xTb3VyY2UgZm9yIHByb3YuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIGJ5OiBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgkgICogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X2FkZF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlKSwKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X25ldyksIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9mcmVlKSwKCSAgKGdzdF9jb250cm9sbGVyX2ZpbmRfY29udHJvbGxlZF9wcm9wZXJ0eSksCgkgIChnc3RfY29udHJvbGxlcl9uZXdfdmFsaXN0KSwgKGdzdF9jb250cm9sbGVyX25ld19saXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX25ldyksIChnc3RfY29udHJvbGxlcl9yZW1vdmVfcHJvcGVydGllc192YWxpc3QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfcmVtb3ZlX3Byb3BlcnRpZXNfbGlzdCksCgkgIChnc3RfY29udHJvbGxlcl9yZW1vdmVfcHJvcGVydGllcyksCgkgIChnc3RfY29udHJvbGxlcl9zZXRfcHJvcGVydHlfZGlzYWJsZWQpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc2V0X2Rpc2FibGVkKSwgKGdzdF9jb250cm9sbGVyX3NldF9jb250cm9sX3NvdXJjZSksCgkgIChnc3RfY29udHJvbGxlcl9nZXRfY29udHJvbF9zb3VyY2UpLCAoZ3N0X2NvbnRyb2xsZXJfZ2V0KSwKCSAgKGdzdF9jb250cm9sbGVyX3N5bmNfdmFsdWVzKSwgKGdzdF9jb250cm9sbGVyX2dldF92YWx1ZV9hcnJheSksCgkgIChfZ3N0X2NvbnRyb2xsZXJfZGlzcG9zZSksIChnc3RfY29udHJvbGxlcl9nZXRfdHlwZSksCgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKSwKCSAgKGdzdF9jb250cm9sbGVyX3NldCksIChnc3RfY29udHJvbGxlcl9zZXRfZnJvbV9saXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX3Vuc2V0KSwgKGdzdF9jb250cm9sbGVyX3Vuc2V0X2FsbCksCgkgIChnc3RfY29udHJvbGxlcl9nZXRfYWxsKSwgKGdzdF9jb250cm9sbGVyX3NldF9pbnRlcnBvbGF0aW9uX21vZGUpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlcnByaXZhdGUuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xzb3VyY2UuYzoKCSAgKGdzdF9jb250cm9sX3NvdXJjZV9jbGFzc19pbml0KSwgKGdzdF9jb250cm9sX3NvdXJjZV9pbml0KSwKCSAgKGdzdF9jb250cm9sX3NvdXJjZV9nZXRfdmFsdWUpLAoJICAoZ3N0X2NvbnRyb2xfc291cmNlX2dldF92YWx1ZV9hcnJheSksIChnc3RfY29udHJvbF9zb3VyY2VfYmluZCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sc291cmNlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzogKGdzdF9vYmplY3Rfc2V0X2NvbnRyb2xfc291cmNlKSwKCSAgKGdzdF9vYmplY3RfZ2V0X2NvbnRyb2xfc291cmNlKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX2ZpbmRfY29udHJvbF9wb2ludF9ub2RlKSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX2dldF9maXJzdF92YWx1ZSksCgkgIChfaW50ZXJwb2xhdGVfbm9uZV9nZXQpLCAoaW50ZXJwb2xhdGVfbm9uZV9nZXQpLAoJICAoaW50ZXJwb2xhdGVfbm9uZV9nZXRfYm9vbGVhbl92YWx1ZV9hcnJheSksCgkgIChpbnRlcnBvbGF0ZV9ub25lX2dldF9lbnVtX3ZhbHVlX2FycmF5KSwKCSAgKGludGVycG9sYXRlX25vbmVfZ2V0X3N0cmluZ192YWx1ZV9hcnJheSksCgkgIChfaW50ZXJwb2xhdGVfdHJpZ2dlcl9nZXQpLCAoaW50ZXJwb2xhdGVfdHJpZ2dlcl9nZXQpLAoJICAoaW50ZXJwb2xhdGVfdHJpZ2dlcl9nZXRfYm9vbGVhbl92YWx1ZV9hcnJheSksCgkgIChpbnRlcnBvbGF0ZV90cmlnZ2VyX2dldF9lbnVtX3ZhbHVlX2FycmF5KSwKCSAgKGludGVycG9sYXRlX3RyaWdnZXJfZ2V0X3N0cmluZ192YWx1ZV9hcnJheSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICAoZ3N0X2NvbnRyb2xfcG9pbnRfZnJlZSksIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9yZXNldCksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9uZXcpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2Vfc2V0X2ludGVycG9sYXRpb25fbW9kZSksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9iaW5kKSwKCSAgKGdzdF9jb250cm9sX3BvaW50X2NvbXBhcmUpLCAoZ3N0X2NvbnRyb2xfcG9pbnRfZmluZCksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9zZXRfaW50ZXJuYWwpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2Vfc2V0KSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX3NldF9mcm9tX2xpc3QpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfdW5zZXQpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfdW5zZXRfYWxsKSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX2dldF9hbGwpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfZ2V0X2NvdW50KSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX2luaXQpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfZmluYWxpemUpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfZGlzcG9zZSksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZXByaXZhdGUuaDoKCSAgQVBJOiBSZWZhY3RvciBHc3RDb250cm9sbGVyIGludG8gdGhlIGNvcmUgY29udHJvbGxlciB3aGljaCBjYW4gdGFrZQoJICBhIEdzdENvbnRyb2xTb3VyY2UgZm9yIHByb3ZpZGluZyBhY3R1YWwgdmFsdWVzIGZvciB0aW1lc3RhbXBzLgoJICBJbXBsZW1lbnQgYSBpbnRlcnBvbGF0aW9uIGNvbnRyb2wgc291cmNlIGFuZCB1c2UgdGhpcyBmb3IgYmFja3dhcmQKCSAgY29tcGF0aWJpbGl0eSwgZGVwcmVjYXRlIGEgYnVuY2ggb2YgZnVuY3Rpb25zIHRoYXQgYXJlIG5vdyBoYW5kbGVkCgkgIGJ5IEdzdENvbnRyb2xTb3VyY2Ugb3IgR3N0SW50ZXJwb2xhdGlvbkNvbnRyb2xTb3VyY2UuCgkgIE1ha2UgaXQgcG9zc2libGUgdG8gZGlzYWJsZSB0aGUgY29udHJvbGxlciBjb21wbGV0ZWx5IG9yIG9ubHkgZm9yCgkgIHNwZWNpZmljIHByb3BlcnRpZXMuIEZpeGVzICM0NTA3MTEuCgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSAgQWRkIG5ldyBmdW5jdGlvbnMgYW5kIGNsYXNzZXMgdG8gdGhlIGRvY3MuCgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgICogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6IChtYWluKToKCSAgUG9ydCB1bml0IHRlc3QgYW5kIGV4YW1wbGUgdG8gdGhlIG5ldyBBUEkgYW5kIGFkZCBzb21lIG5ldwoJICB1bml0IHRlc3RzLgoKMjAwNy0wNy0wNSAwOTowNjowMiArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3QHNreW5ldC5iZT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBJbXBsZW1lbnQgbm9uLWRlZmF1bHQgR3N0UGFkSW50TGlua0Z1bmN0aW9uIGZvciBtdWx0aXF1ZXVlIHBhZHMgc28gdGhhdCB0aGUgcGlwZWxpbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1dyBhdCBza3luZXQgYmU+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIChnc3RfbXVsdGlfcXVldWVfZ2V0X2ludGVybmFsX2xpbmtzKSwgKGFwcGx5X2J1ZmZlciksCgkgIChzaW5nbGVfcXVldWVfb3ZlcnJ1bl9jYiksIChnc3Rfc2luZ2xlX3F1ZXVlX25ldyk6CgkgIEltcGxlbWVudCBub24tZGVmYXVsdCBHc3RQYWRJbnRMaW5rRnVuY3Rpb24gZm9yIG11bHRpcXVldWUgcGFkcyBzbyB0aGF0CgkgIHRoZSBwaXBlbGluZSBsYXlvdXQgY2FuIGJlIHRyYWNrZWQgY29ycmVjdGx5LiBGaXhlcyAjNDUzNzMyLgoKMjAwNy0wNy0wNSAwODo0Mjo0MiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy86IFNpbXBsaXR5IC0tZXh0cmEtZGlyIGFzIGd0a2RvYyBzY2FucyByZWN1cnNpdmVseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgU2ltcGxpdHkgLS1leHRyYS1kaXIgYXMgZ3RrZG9jIHNjYW5zIHJlY3Vyc2l2ZWx5LgoKMjAwNy0wNy0wMyAxNzowMTo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogV2hlbiB3ZSBnb3QgYW4gZXJyb3IsIHRoZXJlIGlzIG5vIHBvaW50IGluIHdhaXRpbmcgZm9yIHByZXJvbGwgd2hlbiBzaHV0dGluZyBkb3duLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgV2hlbiB3ZSBnb3QgYW4gZXJyb3IsIHRoZXJlIGlzIG5vIHBvaW50IGluIHdhaXRpbmcgZm9yIHByZXJvbGwgd2hlbgoJICBzaHV0dGluZyBkb3duLgoKMjAwNy0wNy0wMyAxNjoyNjoyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IEJlIGEgbG90IHNtYXJ0ZXIgd2hlbiBkZWNpZGluZyB3aGF0IHNyY3BhZCB0byB1c2UgZm9yIHByb3h5aW5nIHRoZSBidWZmZXJfYWxsb2MuIEFsc28gaGFuZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9iYXNlX2luaXQpLAoJICAoZ3N0X3RlZV9yZXF1ZXN0X25ld19wYWQpLCAoZ3N0X3RlZV9yZWxlYXNlX3BhZCksCgkgIChnc3RfdGVlX2ZpbmRfYnVmZmVyX2FsbG9jKSwgKGdzdF90ZWVfYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF90ZWVfZG9fcHVzaCksIChjbGVhcl9wYWRzKSwgKGdzdF90ZWVfaGFuZGxlX2J1ZmZlciksCgkgIChnc3RfdGVlX2NoYWluKToKCSAgQmUgYSBsb3Qgc21hcnRlciB3aGVuIGRlY2lkaW5nIHdoYXQgc3JjcGFkIHRvIHVzZSBmb3IgcHJveHlpbmcKCSAgdGhlIGJ1ZmZlcl9hbGxvYy4gQWxzbyBoYW5kbGUgcGFkIGFkZGVkL3JlbW92ZWQgd2hlbiBkb2luZyBzby4KCSAgRml4ZXMgIzM1Nzk1OS4KCSAgS2VlcCB0cmFjayBvZiB3aGF0IHBhZHMgd2UgYWxyZWFkeSBwdXNoZWQgb24gaW4gY2FzZSB3ZSBoYXZlIHBhZHMKCSAgYWRkZWQvcmVtb3ZlZCB3aGlsZSBwdXNoaW5nLiBGaXhlcyAjMzc0NjM5CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6IChoYW5kb2ZmKSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKHRlZV9zdWl0ZSk6CgkgIEFkZGVkIHVuaXQgdGVzdCBmb3IgcGFkIHJlc3luYy4KCjIwMDctMDctMDEgMjE6MzE6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG8vOiBVcGRhdGVkIHRyYW5zbGF0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcG8vbmwucG86CgkgICogcG8vc3YucG86CgkgIFVwZGF0ZWQgdHJhbnNsYXRpb25zLgoKMjAwNy0wNy0wMSAyMTozMDowOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwby86IEFkZGVkIG5ldyBGaW5uaXNoIHRyYW5zbGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdHJhbnNsYXRpb24gYnk6IFRvbW1pIFZhaW5pa2FpbmVuIDxUb21taS5WYWluaWthaW5lbkBpa2kuZmk+CgkgICogcG8vTElOR1VBUzoKCSAgKiBwby9maS5wbzoKCSAgQWRkZWQgbmV3IEZpbm5pc2ggdHJhbnNsYXRpb24uCgoyMDA3LTA2LTI4IDExOjI1OjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IFdoZW4gZmlndXJpbmcgb3V0IHdoZW4gYSBxdWV1ZSBpcyBmaWxsZWQsIHVzZSBvdXIgaW50ZXJuYWwgdGltZSBlc3RpbWF0ZSBiYXNlZCBvbiBzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoYXBwbHlfYnVmZmVyKSwKCSAgKHNpbmdsZV9xdWV1ZV9vdmVycnVuX2NiKToKCSAgV2hlbiBmaWd1cmluZyBvdXQgd2hlbiBhIHF1ZXVlIGlzIGZpbGxlZCwgdXNlIG91ciBpbnRlcm5hbCB0aW1lIGVzdGltYXRlCgkgIGJhc2VkIG9uIHNlZ21lbnRzLCBqdXN0IGxpa2UgY2hlY2tfZnVsbCBkb2VzLgoKMjAwNy0wNi0yNyAxMTo0Nzo0NiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIE1lbnRpb24gYnVnIDQzMDY4MiBjbG9zZWQgYnkgcHJldmlvdXMgY29tbWl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTWVudGlvbiBidWcgNDMwNjgyIGNsb3NlZCBieSBwcmV2aW91cyBjb21taXQuCgoyMDA3LTA2LTI3IDExOjQzOjA0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBSZW1vdmUgMyBkby1ub3RoaW5nIG1ldGhvZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfbWluaV9vYmplY3RfZ2V0X3R5cGUpOgoJICBSZW1vdmUgMyBkby1ub3RoaW5nIG1ldGhvZHMuCgoyMDA3LTA2LTI3IDExOjI0OjA4ICswMDAwICBUaW0gQW5ndXMgPHRpbUBuZ3VzLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiBUYWtlIGEgcmVmZXJlbmNlIGluc3RlYWQgb2YgYSBjb3B5IHdoZW4gc2V0dGluZyAiY2FwcyIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogVGltIEFuZ3VzIDx0aW0gYXQgbmd1cyBkb3QgbmV0PgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfY2xhc3NfaW5pdCksCgkgIChnc3RfY2Fwc2ZpbHRlcl9zZXRfcHJvcGVydHkpOgoJICBUYWtlIGEgcmVmZXJlbmNlIGluc3RlYWQgb2YgYSBjb3B5IHdoZW4gc2V0dGluZyAiY2FwcyIuCgkgIEZpeCBkb2N1bWVudGF0aW9uIHRvIGNsYXJpZnkgdGhpcyBiZWhhdmlvdXIuIEZpeGVzICM0NDk0MTQuCgoyMDA3LTA2LTI3IDEwOjEyOjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBSZW1vdmUgZW1wdHkgaW5zdGFuY2VfaW5pdCgpIGZ1bmN0aW9ucyB0byBzYXZlIHJlbG9jcyBhbmQgbGVzc2VuIHRoZSBub2lzZS4gUmVtb3ZlIHNvbWUgb2YgdGhlIGZ1bmN0aW9uIHByb3RvdHkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOiAoZ3N0X2luZGV4X2ZhY3RvcnlfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5faW5pdCk6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogKGdzdF9wbHVnaW5fZmVhdHVyZV9pbml0KToKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfaW5pdCk6CgkgICogZ3N0L2dzdHVyaS5jOiAoZ3N0X3VyaV9oYW5kbGVyX2Jhc2VfaW5pdCk6CgkgIFJlbW92ZSBlbXB0eSBpbnN0YW5jZV9pbml0KCkgZnVuY3Rpb25zIHRvIHNhdmUgcmVsb2NzIGFuZCBsZXNzZW4gdGhlCgkgIG5vaXNlLiBSZW1vdmUgc29tZSBvZiB0aGUgZnVuY3Rpb24gcHJvdG90eXBlcyB0aGF0IGFyZSBkb3VibGVkIGJ5CgkgIEdfREVGSU5FX1RZUEUuCgoyMDA3LTA2LTI3IDA5OjM0OjAxICswMDAwICDDiXRpZW5uZSBOb3JlYXUtSMOpYmVydCA8ZXRpZW5uZUBkZWVwdW5kZXIub3JnPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IEFkZCBwZWVyIGFuZCBkaXJlY3Rpb24gaW4gdGhlIFhNTCBzZXJpYWxpc2F0aW9uIG9mIGdob3N0cGFkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiDDiXRpZW5uZSBOb3JlYXUtSMOpYmVydCA8ZXRpZW5uZSBhdCBkZWVwdW5kZXIgZG90IG9yZz4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfc2F2ZV90aHlzZWxmKToKCSAgQWRkIHBlZXIgYW5kIGRpcmVjdGlvbiBpbiB0aGUgWE1MIHNlcmlhbGlzYXRpb24gb2YgZ2hvc3RwYWRzLgoJICBGaXhlcyAjNDQ5MjI2LgoKMjAwNy0wNi0yNiAxNjoyNDoyMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY29uZmlndXJlLmFjOiBQcmVzZXJ2ZSB1c2VmdWwgaW5mb3JtYXRpb24sIHRoYW5rcyBUaW0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgUHJlc2VydmUgdXNlZnVsIGluZm9ybWF0aW9uLCB0aGFua3MgVGltLgoKMjAwNy0wNi0yNiAxNDo0NToxNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuKjogVGFrZSB0aGUgbXVsdGlxdWV1ZSBsb2NrIHdoZW4gdXBkYXRpbmcgdGhlIGZpbGwgbGV2ZWwgc28gd2UgZG9uJ3QgZ2V0IGNvbmZ1c2VkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9pbml0KSwKCSAgKGdzdF9zaW5nbGVfcXVldWVfZmx1c2gpLCAoYXBwbHlfc2VnbWVudCksIChhcHBseV9idWZmZXIpLAoJICAoZ3N0X3NpbmdsZV9xdWV1ZV9wdXNoX29uZSksIChnc3RfbXVsdGlfcXVldWVfbG9vcCksCgkgIChnc3RfbXVsdGlfcXVldWVfc2lua19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCksICh3YWtlX3VwX25leHRfbm9uX2xpbmtlZCksCgkgIChjb21wdXRlX2hpZ2hfaWQpLCAoZ3N0X3NpbmdsZV9xdWV1ZV9uZXcpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBUYWtlIHRoZSBtdWx0aXF1ZXVlIGxvY2sgd2hlbiB1cGRhdGluZyB0aGUgZmlsbCBsZXZlbCBzbyB3ZSBkb24ndCBnZXQKCSAgY29uZnVzZWQuCgkgIEFmdGVyIGFwcGx5aW5nIGEgYnVmZmVyIG9yIGV2ZW50IG9uIHRoZSBzcmMgcGFkIHNlZ21lbnQsIG1ha2Ugc3VyZSB0bwoJICBjYWxsIGdzdF9kYXRhX3F1ZXVlX2xpbWl0c19jaGFuZ2VkKCkgdG8gZ2V0IHRoZSBkYXRhIHF1ZXVlIHRvIHVuYmxvY2sKCSAgYW5kIGNoZWNrIHRoZSBmaWxsZWQgc3RhdGUgYWdhaW4uCgkgIFJld29yayB0aGUgbm90LWxpbmtlZCBwYWQgaGFuZGxpbmcgc28gdGhlIGxvZ2ljIGlzIHRoYXQgbm90LWxpbmtlZAoJICBwYWRzIGNhbiBwdXNoIGFzIGZhc3QgYXMgdGhleSBsaWtlLCBidXQgb25seSBzbyB0aGV5IG5ldmVyIGdldAoJICBhaGVhZCBvZiBhbnkgbGlua2VkIHBhZHMuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOiAobXFfc2lua3BhZF90b19zcmNwYWQpLAoJICAobXFfZHVtbXlwYWRfZ2V0Y2FwcyksIChtcV9kdW1teXBhZF9jaGFpbiksIChtcV9kdW1teXBhZF9ldmVudCksCgkgIChydW5fb3V0cHV0X29yZGVyX3Rlc3QpLCAoR1NUX1NUQVJUX1RFU1QpLCAobXVsdGlxdWV1ZV9zdWl0ZSk6CgkgIEFkZCBhIHRlc3QgdG8gY2hlY2sgdGhhdCBub3QtbGlua2VkIHBhZHMgYWx3YXlzIHN0YXkgYmVoaW5kCgkgIGxpbmtlZCBwYWRzLgoKMjAwNy0wNi0yNiAxMTo1NzoyMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL3JhbmRvbS9yZWxlYXNlOiBTb21lIHVwZGF0ZXMgdG8gdGhlIHJlbGVhc2UgcHJvY2VkdXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBTb21lIHVwZGF0ZXMgdG8gdGhlIHJlbGVhc2UgcHJvY2VkdXJlLgoKMjAwNy0wNi0yNiAwODoyNjozNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IE1pY3Jvb3B0aW1pemF0aW9uIHRoYXQgc2F2ZXMgc3R1bm5pbmcgODAgYnl0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoX19nc3RfZWxlbWVudF9kZXRhaWxzX2NsZWFyKToKCSAgTWljcm9vcHRpbWl6YXRpb24gdGhhdCBzYXZlcyBzdHVubmluZyA4MCBieXRlcy4KCjIwMDctMDYtMjUgMTI6MzU6NDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcGx1Z2lucy86IFVwZGF0ZSBkb2NzIHdpdGggY2FwcyBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSAgVXBkYXRlIGRvY3Mgd2l0aCBjYXBzIGluZm8uCgoyMDA3LTA2LTIzIDIyOjU2OjI4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvL2l0LnBvOiBVcGRhdGVkIEl0YWxpYW4gdHJhbnNsYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBvL2l0LnBvOgoJICBVcGRhdGVkIEl0YWxpYW4gdHJhbnNsYXRpb24uCgoyMDA3LTA2LTIzIDExOjE5OjE2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgZml4IHdpbjMyIGFyY2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCB3aW4zMiBhcmNoCgoyMDA3LTA2LTIzIDExOjE4OjQ2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIDgwIGxpbmUgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICA4MCBsaW5lIGZpeAoKMjAwNy0wNi0yMyAxMToxNToxMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwby86IFVwZGF0ZSBWaWV0bmFtZXNlIHRyYW5zbGF0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogQ2hhbmdlTG9nOgoJICAqIHBvL3ZpLnBvOgoJICBVcGRhdGUgVmlldG5hbWVzZSB0cmFuc2xhdGlvbnMuCgoyMDA3LTA2LTIxIDIyOjM3OjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBSZW1vdmUgdW51c2VkIHNpZ25hbCBlbnVtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIFJlbW92ZSB1bnVzZWQgc2lnbmFsIGVudW0uCgoyMDA3LTA2LTIxIDE4OjAwOjU4ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBNQUlOVEFJTkVSUzoKCSAgdXBkYXRlIE1BSU5UQUlORVJTIGZpbGUgdG8gcmVmbGVjdCBjdXJyZW50IHJlYWxpdGllcyBiZXR0ZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBNQUlOVEFJTkVSUyBmaWxlIHRvIHJlZmxlY3QgY3VycmVudCByZWFsaXRpZXMgYmV0dGVyCgoyMDA3LTA2LTIxIDE2OjM5OjAxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEJlZWYgdXAgYW5kIGluY2x1ZGUgdGhlIGRvY3MgZm9yIGdzdF90eXBlX3JlZ2lzdGVyX3N0YXRpY19mdWxsIGFuZCBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUgYW5kIGFkZCB0aGUgQS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdHlwZV9yZWdpc3Rlcl9zdGF0aWNfZnVsbCk6CgkgIEJlZWYgdXAgYW5kIGluY2x1ZGUgdGhlIGRvY3MgZm9yIGdzdF90eXBlX3JlZ2lzdGVyX3N0YXRpY19mdWxsIGFuZAoJICBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUgYW5kIGFkZCB0aGUgQVBJIGtleXdvcmQKCSAgaW4gdGhlIENoYW5nZUxvZy4KCjIwMDctMDYtMjEgMTQ6MzU6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW1AZmx1ZW5kby5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogRml4IHNldHRpbmcgbWF4LSogcHJvcGVydGllcyBhZnRlciBhZGRpbmcgcXVldWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9zZXRfcHJvcGVydHkpLAoJICAodXBkYXRlX3RpbWVfbGV2ZWwpLCAoZ3N0X3NpbmdsZV9xdWV1ZV9wdXNoX29uZSksCgkgIChnc3RfbXVsdGlfcXVldWVfY2hhaW4pLCAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfZXZlbnQpLAoJICAoc2luZ2xlX3F1ZXVlX292ZXJydW5fY2IpLCAoc2luZ2xlX3F1ZXVlX3VuZGVycnVuX2NiKSwKCSAgKHNpbmdsZV9xdWV1ZV9jaGVja19mdWxsKToKCSAgRml4IHNldHRpbmcgbWF4LSogcHJvcGVydGllcyBhZnRlciBhZGRpbmcgcXVldWVzLgoJICBVc2UgSVNfRklMTEVEIGZvciBjaGVja2luZyB2aXNpYmxlIGl0ZW1zLgoJICBTaWduYWwgb3ZlcnJ1biBpZiBtdWx0aXBsZSBxdWV1ZXMgb3ZlcnJ1bi4KCSAgQWRkIGV4dHJhIGRlYnVnIG91dHB1dC4KCSAgUGF0Y2ggYnk6IFdpbSBUYXltYW5zIDx3aW1AZmx1ZW5kby5jb20+CgoyMDA3LTA2LTIxIDE0OjI5OjA1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBTYXZpbmcgcmVsb2NhdGlvbnMgZm9yIEdUeXBlSW5mbyBhbmQgR3N0RWxlbWVudERldGFpbHMuIEZpeGVzICM0Mzc0NTcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdHlwZV9yZWdpc3Rlcl9zdGF0aWNfZnVsbCk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9iYXNlX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfYmFzZV9pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19iYXNlX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19iYXNlX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfYmFzZV9pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2Jhc2VfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfYmFzZV9pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfYmFzZV9pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9iYXNlX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9iYXNlX2luaXQpLAoJICAoYXBwbHlfYnVmZmVyKSwgKGdzdF9xdWV1ZV9jaGFpbik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfYmFzZV9pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2Jhc2VfaW5pdCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2xhc3NfaW5pdCk6CgkgIFNhdmluZyByZWxvY2F0aW9ucyBmb3IgR1R5cGVJbmZvIGFuZCBHc3RFbGVtZW50RGV0YWlscy4gRml4ZXMgIzQzNzQ1Ny4KCjIwMDctMDYtMjEgMDk6NDY6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6IEZpeCB0eXBvIGluIGlhbmEub3JnIFVSSS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICBGaXggdHlwbyBpbiBpYW5hLm9yZyBVUkkuCgoyMDA3LTA2LTE5IDIxOjU4OjMwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTA2LTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmMKCSAgKHRlc3Rfc3RhdGVfY2hhbmdlX3JldHVybnMpOiBFbmFibGUgcHVsbC1tb2RlIHRlc3RzIG5vdyB0aGF0CgkgIGJhc2VzaW5rIGhhcyBiZWVuIGZpeGVkLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19uZWVkc19wcmVyb2xsKToKCSAgQ2hhbmdlZCBmcm9tIGdzdF9iYXNlX3NpbmtfaXNfcHJlcm9sbGVkLCByZXZlcnNpbmcgdGhlIHNlbnNlIG9mCgkgIHRoZSByZXR1cm4gdmFsdWUuIFJldHVybnMgRkFMU0UgYWxzbyBpZiB0aGUgc2luayBpcyBpbiBwdWxsIG1vZGUsCgkgIGluIHdoaWNoIGNhc2UgaXQgbmVlZHMgbm8gcHJlcm9sbC4KCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnksIGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKTogVXBkYXRlIGZvcgoJICBuZWVkc19wcmVyb2xsIGNoYW5nZS4KCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKTogQWRkIGEgY2FzZSBmb3IgUkVBRFlfVE9fUEFVU0VEIGFmdGVyCgkgIGNoYWluaW5nIHVwLCBpbiB3aGljaCB3ZSByZXR1cm4gU1VDQ0VTUyBkaXJlY3RseSBpZiB3ZSBhY3RpdmF0ZWQKCSAgaW4gcHVsbCBtb2RlIGluc3RlYWQgb2YgQVNZTkMuIEludm9sdmVzIGNvdW50ZXJpbmcgYW4gYXN5bmNfc3RhcnQKCSAgbWVzc2FnZSBzZW50IGJlZm9yZSBjaGFpbmluZyB1cDsgbm90IHN1cmUgaWYgdGhpcyBpcyBjb3JyZWN0LCBpbgoJICBhbiBpZGVhbCB3b3JsZCB3ZSBvbmx5IHNlbmQgYXN5bmMtc3RhcnQgd2hlbiBhY3RpdmF0aW5nIGluIHB1c2gKCSAgbW9kZS4KCjIwMDctMDYtMTkgMjE6Mjg6NTQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTA2LTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmMKCSAgKHRlc3Rfc3RhdGVfY2hhbmdlX3JldHVybnMpOiBOZXcgdGVzdCwgcGFydGlhbGx5IGRpc2FibGVkIHVudGlsCgkgIGJhc2VzaW5rIGlzIGZpeGVkLgoKMjAwNy0wNi0xOSAxNjowNToxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBGaXggZXZlbnQgbGVhay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChhcHBseV9idWZmZXIpLAoJICAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfZXZlbnQpOgoJICBGaXggZXZlbnQgbGVhay4KCjIwMDctMDYtMTkgMTA6NDE6MzMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IE1vdmUgdGhlIGNvbW1vbiBjb2RlIGZvciBwb3N0aW5nIHN0YXRlLWNoYW5nZSBtZXNzYWdlcyBpbnRvIG9uZSBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX3JlbW92ZV9mdW5jKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpLCAoYmluX3B1c2hfc3RhdGVfY29udGludWUpLAoJICAoYmluX2hhbmRsZV9hc3luY19zdGFydCksIChiaW5faGFuZGxlX2FzeW5jX2RvbmUpLAoJICAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgTW92ZSB0aGUgY29tbW9uIGNvZGUgZm9yIHBvc3Rpbmcgc3RhdGUtY2hhbmdlIG1lc3NhZ2VzIGludG8KCSAgb25lIGZ1bmN0aW9uLgoJICBCcm9hZGNhc3QgdGhlIHN0YXRlIHNpZ25hbCBhZnRlciB3ZSBwb3N0ZWQgdGhlIG1lc3NhZ2VzLgoJICBNYXJrIHRoZSBiaW4gYXMgYnVzeSB3aGVuIGl0J3MgZG9pbmcgYSBzdGF0ZS1jaGFuZ2UuCgkgIE1ha2Ugc3VyZSBhc3luYy1zdGFydC9kb25lIG1lc3NhZ2VzIGRvbid0IGludGVyZmVyZSB3aXRoIHRoZSBiaW4ncwoJICBzdGF0ZSB3aGVuIGl0J3MgYnVzeS4KCSAgQWZ0ZXIgdGhlIHN0YXRlIGNoYW5nZSwgbGV0IHRoZSBiaW4gY2hlY2sgd2hpY2ggZWxlbWVudHMgY29tcGxldGVkIHRoZQoJICBzdGF0ZSBjaGFuZ2Ugd2hpbGUgaXQgd2FzIGJ1c3kgc28gdGhhdCBpdCBjYW4gdXBkYXRlIGl0cyBzdGF0ZS4KCjIwMDctMDYtMTkgMTA6Mzg6MzkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9yYW5kb20vcmVsZWFzZTogQWRkIGEgbm90ZSBhYm91dCB1cGRhdGluZyB0aGUgZG9hcCBmaWxlIHRvIHRoZSByZWxlYXNlIGNoZWNrbGlzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBBZGQgYSBub3RlIGFib3V0IHVwZGF0aW5nIHRoZSBkb2FwIGZpbGUgdG8gdGhlIHJlbGVhc2UgY2hlY2tsaXN0CgoyMDA3LTA2LTE4IDE2OjQ0OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IE1ha2Ugc3VyZSB3ZSBkb24ndCByZWZlcmVuY2UgdGhlIGJ1ZmZlci9ldmVudCBhZnRlciB3ZSBoYXZlIGdpdmVuIGF3YXkgb3duZXJzaGlwIGluLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoYXBwbHlfYnVmZmVyKSwKCSAgKGdzdF9zaW5nbGVfcXVldWVfcHVzaF9vbmUpLCAoZ3N0X211bHRpX3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2V2ZW50KToKCSAgTWFrZSBzdXJlIHdlIGRvbid0IHJlZmVyZW5jZSB0aGUgYnVmZmVyL2V2ZW50IGFmdGVyIHdlIGhhdmUgZ2l2ZW4gYXdheQoJICBvd25lcnNoaXAgaW4gdGhlIHF1ZXVlLgoKMjAwNy0wNi0xOCAxNToxNTozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBVcGRhdGUgcXVldWUgc3RhdGUgX2FmdGVyXyBhZGRpbmcgdGhlIGl0ZW0gaW4gdGhlIHF1ZXVlIGJlY2F1c2UgZWxzZSB3ZSBjb3VsZCBlbmQgdS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9zaW5nbGVfcXVldWVfZmx1c2gpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2NoYWluKSwgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2V2ZW50KToKCSAgVXBkYXRlIHF1ZXVlIHN0YXRlIF9hZnRlcl8gYWRkaW5nIHRoZSBpdGVtIGluIHRoZSBxdWV1ZSBiZWNhdXNlIGVsc2Ugd2UKCSAgY291bGQgZW5kIHVwIGJlaW5nIGZ1bGwgd2l0aG91dCB0aGUgZWxlbWVudCBhZGRlZCB5ZXQuCgoyMDA3LTA2LTE4IDE1OjEyOjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi4qOiBJbW1lZGlhdGx5IGNvbW1pdCB0aGUgdG9wbGV2ZWwgYmluIHN0YXRlIHdoZW4gcmVjZWl2aW5nIGFuIGFzeW5jLWRvbmUgbWVzc2FnZS4gVGhpcyBlbmFibGVzIHVzIHRvIGF2b2lkLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faW5pdCksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKSwgKGdzdF9iaW5fY29udGludWVfZnVuYyksCgkgIChiaW5fcHVzaF9zdGF0ZV9jb250aW51ZSksIChiaW5faGFuZGxlX2FzeW5jX3N0YXJ0KSwKCSAgKGJpbl9oYW5kbGVfYXN5bmNfZG9uZSksIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgSW1tZWRpYXRseSBjb21taXQgdGhlIHRvcGxldmVsIGJpbiBzdGF0ZSB3aGVuIHJlY2VpdmluZyBhbiBhc3luYy1kb25lCgkgIG1lc3NhZ2UuIFRoaXMgZW5hYmxlcyB1cyB0byBhdm9pZCBzcGF3bmluZyBhIHRocmVhZCB0byBjb21taXQgdGhlIHN0YXRlCgkgIGluIHNvbWUgY29tbW9uIGNhc2VzIGFuZCBpdCBhbHNvIGF2b2lkcyBzb21lIHJhY2VzLgoJICBBdm9pZCBzcGF3bmluZyBhIHN0YXRlIHRocmVhZCB3aGVuIGFkZGluZy9yZW1vdmluZyBhc3luYyBlbGVtZW50cyB0byBhCgkgIHRvcGxldmVsIGJpbi4gSW5zdGVhZCB3ZSBpbW1lZGlhdGx5IHVwZGF0ZSB0aGUgYmluIHN0YXRlLgoJICBHZXQgcmlkIG9mIGl0ZXJhdGluZyBhbGwgdGhlIGNoaWxkcmVuIHdoZW4gZ2V0dGluZyB0aGUgc3RhdGUgaW4gdGhlIGJpbgoJICBiZWNhdXNlIGl0IGlzIG5vdyBhbHdheXMgdXAtdG8tZGF0ZS4KCSAgRml4IGJ1ZyB3aGVyZSBsb2NrZWQgZWxlbWVudHMgd291bGQgYWx3YXlzIHJldHVybiBfU1VDQ0VTUyBldmVuIGl0IHRoZXkKCSAgcmV0dXJuZWQgTk9fUFJFUk9MTCBiZWZvcmUgYmVpbmcgbG9ja2VkLgoJICBGaXggdGhlIG9yZGVyIG9mIHRoZSBzdGF0ZV9jaGFuZ2UsIGFzeW5jLXN0YXJ0L2RvbmUgbWVzc2FnZXMgdGhhdCB3YXMKCSAgc29tZXRpbWVzIGluY29ycmVjdC4KCSAgTWFyayB0aGUgc3RhdGVfZGlydHkgZmllbGQgYXMgZGVwcmVjYXRlZCwgd2UgZG9uJ3QgbmVlZCBpdCBhbnltb3JlIGFzIHdlCgkgIGFyZSBhbHdheXMgdXAtdG8tZGF0ZS4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2VsZW1lbnRfY29udGludWVfc3RhdGUpOgoJICBTbWFsbCBkZWJ1ZyBpbnByb3ZlbWVudHMuCgkgIFJldHVybiB0aGUgcHJldmlvdXMgZWxlbWVudCBzdGF0ZSByZXR1cm4gd2hlbiBub3RoaW5nIGlzIHBlbmRpbmcgaW5zdGVhZAoJICBvZiBibGluZGx5IHJldHVybmluZyBTVUNDRVNTLgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogKEdTVF9TVEFSVF9URVNUKSwgKHBhZF9ibG9ja2VkX2NiKSwKCSAgKGdzdF9zaW5rc19zdWl0ZSk6CgkgIEFkZCBhIHdob2xlIGJ1bmNoIG9mIG5ldyB0ZXN0Y2FzZXMuCgoyMDA3LTA2LTE3IDE3OjI2OjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvLzogVXBkYXRlIHRyYW5zbGF0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcG8vdWsucG86CgkgICogcG8vdmkucG86CgkgIFVwZGF0ZSB0cmFuc2xhdGlvbnMuCgoyMDA3LTA2LTE1IDE0OjM3OjI4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogRml4IHR5cG8gaW4gdGhlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgRml4IHR5cG8gaW4gdGhlIGRvY3MuCgoyMDA3LTA2LTE1IDExOjQ5OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogQWRkIGRvY3MgZm9yIG5ldyBtZXRob2RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBZGQgZG9jcyBmb3IgbmV3IG1ldGhvZHMuCgoyMDA3LTA2LTE1IDExOjM1OjIyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IERvbid0IHVzZSBHU2xpY2UgYmVjYXVzZSB3ZSBkb24ndCBkZXBlbmQgb24gPj0gMi4xMCB5ZXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX2l0ZW1fZGVzdHJveSksCgkgIChnc3RfbXVsdGlfcXVldWVfaXRlbV9uZXcpOgoJICBEb24ndCB1c2UgR1NsaWNlIGJlY2F1c2Ugd2UgZG9uJ3QgZGVwZW5kIG9uID49IDIuMTAgeWV0LgoKMjAwNy0wNi0xNSAxMTowOTozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBSZW1vdmUgZGVidWcgcHJpbnRmLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9zaW5nbGVfcXVldWVfZmx1c2gpLAoJICAodXBkYXRlX3RpbWVfbGV2ZWwpLCAoYXBwbHlfc2VnbWVudCksIChhcHBseV9idWZmZXIpLAoJICAoZ3N0X3NpbmdsZV9xdWV1ZV9wdXNoX29uZSksIChnc3RfbXVsdGlfcXVldWVfaXRlbV9uZXcpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2xvb3ApLCAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfbXVsdGlfcXVldWVfc2lua19ldmVudCksIChzaW5nbGVfcXVldWVfb3ZlcnJ1bl9jYiksCgkgIChzaW5nbGVfcXVldWVfdW5kZXJydW5fY2IpLCAoc2luZ2xlX3F1ZXVlX2NoZWNrX2Z1bGwpOgoJICBSZW1vdmUgZGVidWcgcHJpbnRmLgoKMjAwNy0wNi0xNSAxMTowMDozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLio6IFZhcmlvdXMgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6IChnc3RfZGF0YV9xdWV1ZV9jbGVhbnVwKSwKCSAgKGdzdF9kYXRhX3F1ZXVlX2ZpbmFsaXplKSwgKGdzdF9kYXRhX3F1ZXVlX2xvY2tlZF9pc19lbXB0eSksCgkgIChnc3RfZGF0YV9xdWV1ZV9zZXRfZmx1c2hpbmcpLCAoZ3N0X2RhdGFfcXVldWVfcHVzaCksCgkgIChnc3RfZGF0YV9xdWV1ZV9wb3ApLCAoZ3N0X2RhdGFfcXVldWVfZHJvcF9oZWFkKSwKCSAgKGdzdF9kYXRhX3F1ZXVlX2xpbWl0c19jaGFuZ2VkKSwgKGdzdF9kYXRhX3F1ZXVlX2dldF9sZXZlbCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSAgVmFyaW91cyBjbGVhbnVwcy4KCSAgQWRkZWQgbWV0aG9kcyB0byBnZXQgdGhlIGN1cnJlbnQgbGV2ZWxzIGFuZCB0byBpbmZvcm0gdGhlIHF1ZXVlIHRoYXQgdGhlCgkgICdmdWxsJyBsaW1pdHMgY2hhbmdlZC4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9pbml0KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9maW5hbGl6ZSksIChnc3RfbXVsdGlfcXVldWVfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9zaW5nbGVfcXVldWVfZmx1c2gpLCAodXBkYXRlX3RpbWVfbGV2ZWwpLCAoYXBwbHlfc2VnbWVudCksCgkgIChhcHBseV9idWZmZXIpLCAoZ3N0X3NpbmdsZV9xdWV1ZV9wdXNoX29uZSksCgkgIChnc3RfbXVsdGlfcXVldWVfaXRlbV9zdGVhbF9vYmplY3QpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2l0ZW1fZGVzdHJveSksIChnc3RfbXVsdGlfcXVldWVfaXRlbV9uZXcpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2xvb3ApLCAoZ3N0X211bHRpX3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2dldGNhcHMpLCAoZ3N0X211bHRpX3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9zcmNfcXVlcnkpLCAoc2luZ2xlX3F1ZXVlX292ZXJydW5fY2IpLAoJICAoc2luZ2xlX3F1ZXVlX3VuZGVycnVuX2NiKSwgKHNpbmdsZV9xdWV1ZV9jaGVja19mdWxsKSwKCSAgKGdzdF9zaW5nbGVfcXVldWVfbmV3KToKCSAgS2VlcCB0cmFjayBvZiB0aW1lIGluIHRoZSBxdWV1ZSBieSBtZWFzdXJpbmcgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbgoJICBydW5uaW5nX3RpbWUgb24gaW5wdXQgYW5kIG91dHB1dC4gVGhpcyBnaXZlcyBtb3JlIGFjY3VyYXRlIHJlc3VsdHMgYW5kCgkgIGNhbiBjb21wZW5zYXRlIGZvciBzZWdtZW50cyBjb3JyZWN0bHkuCgkgIE1ha2UgYSBxdWV1ZSBieSBkZWZhdWx0IG9ubHkgNSBidWZmZXJzIGRlZXAuIFdlIHdpbGwgbm93IGluY3JlYXNlIHRoZQoJICBidWZmZXIgc2l6ZSBkZXBlbmRpbmcgb24gdGhlIGZpbGxlZG5lc3Mgb2YgdGhlIG90aGVyIHF1ZXVlcy4KCSAgRmFjdG9yIG91dCBjb21tb25nIGZsdXNoIGNvZGUuCgkgIE1ha2Ugc3VyZSB3ZSBkb24ndCBhZGQgYWRkaXRpb25hbCByZWZjb3VudHMgdG8gYnVmZmVycyB3aGVuIHdlIGNhbiBhdm9pZAoJICBpdC4KCSAgUHJvcGFnYXRlIEdzdEZsb3dSZXR1cm4gZGlmZmVyZW50bHkuCgkgIFVzZSBHU2xpY2UgZm9yIGludGVybWVkaWF0ZSBHc3RNdWx0aVF1ZXVlSXRlbXMuCgkgIEtlZXAgdHJhY2sgb2YgRU9TLgoJICBSZXNpemUgcXVldWVzIG9uIG92ZXIgYW5kIHVuZGVycnVucyBiYXNlZCBvbiBmaWxsZWQgbGV2ZWwgb2Ygb3RoZXIKCSAgcXVldWVzLgoJICBXaGVuIGNoZWNraW5nIGlmIHRoZSBxdWV1ZSBpcyBmaWxsZWQsIHByZWZlciB0byBtZWFzdXJlIGluIHRpbWUgaWYgd2UKCSAgY2FuIGFuZCBmYWxsIGJhY2sgdG8gYnl0ZXMgd2hlbiBubyB0aW1lIGlzIGtub3duLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgRml4IHJldHVybiB2YWx1ZS4KCjIwMDctMDYtMTUgMTA6NDg6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogV29yayBhcm91bmQgdGhlIGJyb2tlbm5lc3Mgb2YgdGhlIGV2ZW50IHZtZXRob2QgaW4gYmFzZXRyYW5zZm9ybS4gUHJlZmVyIHRvIHJldHVybiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19ldmVudCk6CgkgIFdvcmsgYXJvdW5kIHRoZSBicm9rZW5uZXNzIG9mIHRoZSBldmVudCB2bWV0aG9kIGluIGJhc2V0cmFuc2Zvcm0uIFByZWZlcgoJICB0byByZXR1cm4gVFJVRSB3aGVuIHRoZSBzdWJjbGFzcyByZXR1cm5lZCBGQUxTRSAobWVhbmluZyBkb24ndCBmb3J3YXJkCgkgIHRoZSBldmVudCkuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIENsYXJpZnkgdGhlIGRvY3MuCgoyMDA3LTA2LTE1IDEwOjQzOjUxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfcHVzaF9ldmVudCksIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5X2xhdGVuY3kpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfcXVlcnkpLCAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfc3RhcnQpOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogKHNldHVwX3BpcGVsaW5lKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuCgoyMDA3LTA2LTE1IDA3OjI3OjAwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6IEFkZGVkIG1vcmUgZm9ybWF0cyB0byBjYXBzIHRhYmxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgIEFkZGVkIG1vcmUgZm9ybWF0cyB0byBjYXBzIHRhYmxlLgoKMjAwNy0wNi0xNSAwNzowMjowNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBSZW1vdmUgY3J1ZnkgY29kZS4gR09wdGlvbiBkb2VzIG5vdCBuZWVkIHRoaXMgd29ya2Fyb3VuZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgIFJlbW92ZSBjcnVmeSBjb2RlLiBHT3B0aW9uIGRvZXMgbm90IG5lZWQgdGhpcyB3b3JrYXJvdW5kLgoKMjAwNy0wNi0xNCAyMDoyOTowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IEZpeCB3cm9uZyBnZXR0ZXIgZm9yIGVudW1zIGluIGNvbnRyb2xsZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfc2V0X2ludGVycG9sYXRpb25fbW9kZSk6CgkgIEZpeCB3cm9uZyBnZXR0ZXIgZm9yIGVudW1zIGluIGNvbnRyb2xsZXIuCgoyMDA3LTA2LTE0IDE3OjM2OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogSW50ZXJjZXB0IGNyaXRpY2FscyBhbmQgd2FybmluZ3MgaW4gdGhlIEdzdC1QaG9ub24gbG9nIGRvbWFpbiwgc28KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19pbml0KToKCSAgSW50ZXJjZXB0IGNyaXRpY2FscyBhbmQgd2FybmluZ3MgaW4gdGhlIEdzdC1QaG9ub24gbG9nIGRvbWFpbiwgc28KCSAgQVNTRVJUX0NSSVRJQ0FMKCkgZXRjLiBjYW4gYmUgdXNlZCBpbiBnc3QtcGhvbm9uJ3MgdW5pdCB0ZXN0cyBhcwoJICB3ZWxsLgoKMjAwNy0wNi0xNCAxNjowNzowOSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RwYXJhbXNwZWNzLmM6IFNpbmNlIHRoaXMgZmlsZSBkb2Vzbid0IGluY2x1ZGUgImdzdC5oIiBpdCB3aWxsIG5vdCBnbyB0aHJvdWdoIHRoZSBtYWNyb3MgdGhhdCBkaXNhYmxlIEdTVF9MT0cgaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOiAoX2dzdF9wYXJhbV9mcmFjdGlvbl92YWxpZGF0ZSk6CgkgIFNpbmNlIHRoaXMgZmlsZSBkb2Vzbid0IGluY2x1ZGUgImdzdC5oIiBpdCB3aWxsIG5vdCBnbyB0aHJvdWdoIHRoZQoJICBtYWNyb3MgdGhhdCBkaXNhYmxlIEdTVF9MT0cgaWYgZGVidWdnaW5nIHdhcyBkaXNhYmxlZC4KCjIwMDctMDYtMTQgMTU6NTY6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBVZ2x5ICdmaXgnIGZvciB0aGUgY29udHJvbGxlciB1bml0IHRlc3Qgb24gdGhlIHA1IGJvdDogaW4gZmFpbF91bmxlc3NfZXF1YWxzX2Zsb2F0KCkgY2hlY2sgd2hldGhlciB0aGUgdmFsdWVzIGFyZSAnYWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2sucGMuaW46CgkgIFVnbHkgJ2ZpeCcgZm9yIHRoZSBjb250cm9sbGVyIHVuaXQgdGVzdCBvbiB0aGUgcDUgYm90OiBpbgoJICBmYWlsX3VubGVzc19lcXVhbHNfZmxvYXQoKSBjaGVjayB3aGV0aGVyIHRoZSB2YWx1ZXMgYXJlICdhbG1vc3QKCSAgZXF1YWwnIGJ5IGFsbG93aW5nIGEgc21hbGwgYWJzb2x1dGUgZXJyb3IsIHdoaWNoIHNob3VsZCBiZSBnb29kCgkgIGVub3VnaCBmb3Igb3VyIHVzZSBjYXNlcyAobm9ybWFsIG51bWJlcnMgYW5kIHZhbHVlcyBjbG9zZSB0byAwKS4KCSAgUHJvcGVyIGZpeGFnZSBsZWZ0IHRvIGZsb2F0aW5nIHBvaW50IGFyaXRobWV0aWMgYWZpY2lvbmFkb3MuCgoyMDA3LTA2LTE0IDEyOjAzOjQ0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEFkZCB0d28gYnJlYWtzIHRoYXRzIHdoZXJlIG1pc3NpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcmVzZXRfcW9zKSwKCSAgKGdzdF9iYXNlX3NpbmtfcmVuZGVyX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIEFkZCB0d28gYnJlYWtzIHRoYXRzIHdoZXJlIG1pc3NpbmcuCgoyMDA3LTA2LTE0IDExOjU2OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgZmFpbF91bmxlc3NfZXF1YWxzX2Zsb2F0KCkgYW5kIGFzc2VydF9lcXVhbHNfZmxvYXQoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBBUEk6IGFkZCBmYWlsX3VubGVzc19lcXVhbHNfZmxvYXQoKSBhbmQgYXNzZXJ0X2VxdWFsc19mbG9hdCgpLgoJICBBZGQgZG9jdW1lbnRhdGlvbiBmb3Igc29tZSBvZiB0aGUgbWFjcm9zLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVc2UgbmV3bHktYWRkZWQgYXNzZXJ0cy4KCjIwMDctMDYtMTQgMTA6MzM6MjggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogU2hvdyB0aGUgY2FwcyBjaGFuZ2UgaW4gdGhlIGxvZyB0byBoZWxwIHNwb3R0aW5nIHRoZSBjYXNlIG9mIG5vdCBleGFjdGx5IG1hdGNoaW5nIGNhcHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWxsb2NfYnVmZmVyX2Z1bGwpLCAoZ3N0X3BhZF9wdXNoKToKCSAgU2hvdyB0aGUgY2FwcyBjaGFuZ2UgaW4gdGhlIGxvZyB0byBoZWxwIHNwb3R0aW5nIHRoZSBjYXNlIG9mIG5vdAoJICBleGFjdGx5IG1hdGNoaW5nIGNhcHMuCgoyMDA3LTA2LTE0IDA4OjUyOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDogRml4IHR5cG9zLCBzcG90dGVkIGJ5IFRoaWpzIFZlcm1laXIgKCM0NDcxOTApLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICBGaXggdHlwb3MsIHNwb3R0ZWQgYnkgVGhpanMgVmVybWVpciAoIzQ0NzE5MCkuCgoyMDA3LTA2LTEzIDE2OjE1OjIzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvcGx1Z2lucy90bXBsLy5jdnNpZ25vcmU6IElnbm9yZSBmaWxlIHRvIGtlZXAgdGhlIGJ1aWxkYm90cyBoYXBweQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvdG1wbC8uY3ZzaWdub3JlOgoJICBJZ25vcmUgZmlsZSB0byBrZWVwIHRoZSBidWlsZGJvdHMgaGFwcHkKCjIwMDctMDYtMTMgMTU6Mzk6NTMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9wbHVnaW5zLzogUHVsbCBmZHNpbmsgaW50byB0aGUgZG9jcyB0b28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgIFB1bGwgZmRzaW5rIGludG8gdGhlIGRvY3MgdG9vLgoKMjAwNy0wNi0xMSAwNzoxNDo1MyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6IEFjdHVhbGx5IHVzZSB0aGUgbmV3IGZ1bmN0aW9ucyB3aXRoIG1pbi9tYXggY2hlY2tzIGZvciB0aGUgdHJpZ2dlciBhbmQgbm9uZSBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICBBY3R1YWxseSB1c2UgdGhlIG5ldyBmdW5jdGlvbnMgd2l0aCBtaW4vbWF4IGNoZWNrcyBmb3IgdGhlIHRyaWdnZXIgYW5kCgkgIG5vbmUgaW50ZXJwb2xhdGlvbiBtb2RlcyBmb3IgZ2V0KCkgYW5kIGdldF92YWx1ZV9hcnJheSgpIGluc3RlYWQgb2YKCSAganVzdCB0aGUgbGF0dGVyLgoKMjAwNy0wNi0xMCAxMjozODoxMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IFVuc2V0IHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIEdWYWx1ZXMgd2hlbiBmcmVlaW5nIHRoZSBjb3JyZXNwb25kaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfZnJlZSk6CgkgIFVuc2V0IHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIEdWYWx1ZXMgd2hlbiBmcmVlaW5nIHRoZSBjb3JyZXNwb25kaW5nCgkgIEdzdENvbnRyb2xsZXJQcm9wZXJ0eSBzdHJ1Y3QuCgoyMDA3LTA2LTA5IDE2OjU4OjMwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogUHJvdGVjdCBhZ2FpbnN0IHZhbHVlcyBsYXJnZXIgb3Igc21hbGxlciB0aGFuIHRoZSBtaW5pbXVtIG9yIG1heGltdW0gYWxsb3dlZCB2YWx1ZSBmb3IgdGhlIHByb3AuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9uZXcpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlcnByaXZhdGUuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X2ZpbmRfY29udHJvbF9wb2ludF9ub2RlKSwKCSAgKGludGVycG9sYXRlX25vbmVfZ2V0KSwgKGludGVycG9sYXRlX25vbmVfZ2V0X2VudW1fdmFsdWVfYXJyYXkpLAoJICAoaW50ZXJwb2xhdGVfbm9uZV9nZXRfc3RyaW5nX3ZhbHVlX2FycmF5KSwKCSAgKGludGVycG9sYXRlX3RyaWdnZXJfZ2V0KSwKCSAgKGludGVycG9sYXRlX3RyaWdnZXJfZ2V0X2VudW1fdmFsdWVfYXJyYXkpLAoJICAoaW50ZXJwb2xhdGVfdHJpZ2dlcl9nZXRfc3RyaW5nX3ZhbHVlX2FycmF5KToKCSAgUHJvdGVjdCBhZ2FpbnN0IHZhbHVlcyBsYXJnZXIgb3Igc21hbGxlciB0aGFuIHRoZSBtaW5pbXVtIG9yIG1heGltdW0KCSAgYWxsb3dlZCB2YWx1ZSBmb3IgdGhlIHByb3BlcnR5IHdoZW4gdXNpbmcgdmFsdWVzIHRoYXQgY2FuIGJlIGNvbXBhcmVkLgoJICBPcHRpbWl6ZSB0cmlnZ2VyIGludGVycG9sYXRvciBhIGJpdCBieSB0YWtpbmcgdGhlIGxhc3QgcmVxdWVzdGVkIHZhbHVlCgkgIGludG8gYWNjb3VudCBpbnN0ZWFkIG9mIGFsd2F5cyBsb29waW5nIHRocm91Z2ggdGhlIGNvbXBsZXRlIGxpc3QuCgkgIEZpeCBjb2Rpbmcgc3R5bGUgYSBiaXQsIGV2ZXJ5d2hlcmUgZWxzZSB3ZSB1c2UgInJldHVybiBmb28iIGluc3RlYWQKCSAgb2YgInJldHVybiAoZm9vKSIuCgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgIEFkZCB1bml0IHRlc3QgZm9yIHRoZSBwcm90ZWN0aW9uIGFnYWluc3QgdG9vIGxhcmdlIG9yIHRvbyBzbWFsbAoJICB2YWx1ZXMuCgoyMDA3LTA2LTA4IDIxOjA4OjI0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBkb2NzL3JhbmRvbS9zbG9tby9jb250cm9sbGVyLnR4dDogQWRkIHNvbWUgdGhvdWdodHMgYWJvdXQgdGhlIGZ1dHVyZSBvZiB0aGUgY29udHJvbGxlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vc2xvbW8vY29udHJvbGxlci50eHQ6CgkgIEFkZCBzb21lIHRob3VnaHRzIGFib3V0IHRoZSBmdXR1cmUgb2YgdGhlIGNvbnRyb2xsZXIuCgoyMDA3LTA2LTA4IDExOjAwOjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBEb24ndCBvdmVyZmxvdyBpbiByZXRpbWVzdGFtcGluZyBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKToKCSAgRG9uJ3Qgb3ZlcmZsb3cgaW4gcmV0aW1lc3RhbXBpbmcgY29kZS4KCjIwMDctMDYtMDcgMjA6NTE6MzUgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOiBVc2UgZ3N0X3V0aWxfZ3VpbnQ2NF90b19nZG91YmxlIGZvciBjb252ZXJzaW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6IChERUZJTkVfQ1VCSUNfR0VUKToKCSAgVXNlIGdzdF91dGlsX2d1aW50NjRfdG9fZ2RvdWJsZSBmb3IgY29udmVyc2lvbnMuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgZXhwb3J0ZWQgZnVuY3Rpb25zLgoKMjAwNy0wNi0wNyAxNzoyMjo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R1dGlscy5jOiBTbWFsbCBkb2NzIGFkZGl0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgU21hbGwgZG9jcyBhZGRpdGlvbi4KCjIwMDctMDYtMDcgMTQ6NDk6MDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIFJFQURNRTogUmVtb3ZlIHRoYXQgdGVzdCBsaW5lIGFnYWluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBSRUFETUU6CgkgIFJlbW92ZSB0aGF0IHRlc3QgbGluZSBhZ2Fpbi4KCjIwMDctMDYtMDcgMTQ6MzY6MDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIFJFQURNRTogVGVzdCBjb21taXQgbWFpbCBzZW5kaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBSRUFETUU6CgkgIFRlc3QgY29tbWl0IG1haWwgc2VuZGluZy4KCjIwMDctMDYtMDcgMTQ6MTc6NDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogRml4IHR5cG8gYW5kIHRlc3QgY29tbWl0IG1haWwgc2VuZGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBGaXggdHlwbyBhbmQgdGVzdCBjb21taXQgbWFpbCBzZW5kaW5nLgoKMjAwNy0wNi0wNyAxNDoxMjowNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6IEltcHJvdmUgY29tbWVudCBhbmQgdGVzdCBjb21taXQgbWFpbCBzZW5kaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSAgSW1wcm92ZSBjb21tZW50IGFuZCB0ZXN0IGNvbW1pdCBtYWlsIHNlbmRpbmcuCgoyMDA3LTA2LTA3IDEwOjExOjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBBZGQgaGVscGVyIGZ1bmN0aW9uIHRvIGZpbmQgbWVzc2FnZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGZpbmRfbWVzc2FnZSksIChiaW5fcmVwbGFjZV9tZXNzYWdlKSwgKGlzX2VvcyksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpLAoJICAoYmluX2hhbmRsZV9hc3luY19zdGFydCksIChiaW5faGFuZGxlX2FzeW5jX2RvbmUpLAoJICAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgQWRkIGhlbHBlciBmdW5jdGlvbiB0byBmaW5kIG1lc3NhZ2VzLgoJICBHZW5lcmF0ZSB0aGUgYXN5bmMtZG9uZSBtZXNzYWdlcyB0b2dldGhlciB3aXRoIHRoZSBzdGF0ZSBjaGFuZ2UKCSAgbWVzc2FnZXMuCgkgIFNtYWxsIGNsZWFudXBzIGluIGhhbmRsaW5nIHRvcGxldmVsIGJpbnMuCgoyMDA3LTA2LTA2IDE4OjExOjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgRml4IG11bHRpcXVldWUgbGVha2luZyBidWZmZXJzIGFuZCBldmVudHMgd2hlbiBkb3duc3RyZWFtIG9yIHRoZSBxdWV1ZSBhcmUgZmx1c2hpbmcuIE1ha2UgcmVmY291bnRpbmcgYXNzdW1wdGlvbnMgZXhwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9zaW5nbGVfcXVldWVfcHVzaF9vbmUpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2l0ZW1fbmV3KSwgKGdzdF9tdWx0aV9xdWV1ZV9jaGFpbiksCgkgIChnc3RfbXVsdGlfcXVldWVfc2lua19ldmVudCk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOiAobXVsdGlxdWV1ZV9zdWl0ZSk6CgkgIEZpeCBtdWx0aXF1ZXVlIGxlYWtpbmcgYnVmZmVycyBhbmQgZXZlbnRzIHdoZW4gZG93bnN0cmVhbSBvciB0aGUKCSAgcXVldWUgYXJlIGZsdXNoaW5nLiBNYWtlIHJlZmNvdW50aW5nIGFzc3VtcHRpb25zIGV4cGxpY2l0IGFuZAoJICBkb2N1bWVudCB0aGVtIChzaG91bGRuJ3QgYnJlYWsgZXhpc3RpbmcgY29kZSB0aGF0IHVzZXMgaXQgb3RoZXIgdGhhbgoJICBtYXliZSBsZWFrIG1pbmlvYmplY3RzLCBidXQgdGhhdCBhbHJlYWR5IGhhcHBlbnMgYW55d2F5KS4gQWRkIHVuaXQKCSAgdGVzdCBmb3IgdGhlIG1vc3QgY29tbW9uIGZsdXNoaW5nIGNhc2UuIEZpeGVzICM0MjM3MDAuCgoyMDA3LTA2LTA2IDE0OjIwOjAxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogQ2xhcmlmeSBkb2NzOiBUaGUgZ2V0X2FsbCwgZ2V0X3ZhbHVlX2FycmF5KHMpIGZ1bmN0aW9ucyBkb24ndCBtb2RpZnkgdGhlIEdPYmplY3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIENsYXJpZnkgZG9jczogVGhlIGdldF9hbGwsIGdldF92YWx1ZV9hcnJheShzKSBmdW5jdGlvbnMKCSAgZG9uJ3QgbW9kaWZ5IHRoZSBHT2JqZWN0IHByb3BlcnRpZXMuCgoyMDA3LTA2LTA2IDE0OjAxOjU2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogRmFjdG9yIG91dCB0aGUgJ3NldCcgbG9naWMgaW50byBnc3RfY29udHJvbGxlcl9zZXRfdW5sb2NrZWQgZm9yIHRoZSBnc3RfY29udHJvbGxlcl9zZXQgYW5kIGdzdF8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKSwKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X3ByZXBlbmRfZGVmYXVsdCksCgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9uZXcpLCAoZ3N0X2NvbnRyb2xsZXJfc2V0X3VubG9ja2VkKSwKCSAgKGdzdF9jb250cm9sbGVyX3NldCksIChnc3RfY29udHJvbGxlcl9zZXRfZnJvbV9saXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX3Vuc2V0KSwgKGdzdF9jb250cm9sbGVyX3Vuc2V0X2FsbCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVycHJpdmF0ZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICBGYWN0b3Igb3V0IHRoZSAnc2V0JyBsb2dpYyBpbnRvIGdzdF9jb250cm9sbGVyX3NldF91bmxvY2tlZCBmb3IgdGhlCgkgIGdzdF9jb250cm9sbGVyX3NldCBhbmQgZ3N0X2NvbnRyb2xsZXJfc2V0X2Zyb21fbGlzdCBmdW5jdGlvbnMuCgkgIFRvIG1ha2UgbGlmZSBvZiB0aGUgaW50ZXJwb2xhdG9ycyBlYXNpZXIgYWx3YXlzIGFkZCBhIGNvbnRyb2wgcG9pbnQKCSAgYXQgdGltZXN0YW1wIHplcm8gd2l0aCB0aGUgZGVmYXVsdCB2YWx1ZS4KCSAgSW4gdGhlIGxpbmVhciBpbnRlcnBvbGF0b3IgbWFrZSB0aGluZ3MgbW9yZSBvYnZpb3VzIGJ5IGJldHRlciB2YXJpYWJsZQoJICBuYW1pbmcgKHNsb3BlKS4KCSAgSW1wbGVtZW50IGN1YmljIGludGVycG9sYXRpb24gbW9kZSAoYnkgdXNpbmcgYSBuYXR1cmFsIGN1YmljIHNwbGluZSkKCSAgYW5kIG1hcCB0aGUgcXVhZHJhdGljIGludGVycG9sYXRpb24gbW9kZSB0byB0aGlzIHRvbyAoYXMgcXVhZHJhdGljCgkgIGRvZXNuJ3QgbWFrZSBtdWNoIHNlbnNlLCBzZWUgZGlzY3Vzc2lvbiBvbiB0aGUgbGlzdCkuCgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgIEFkZCB1bml0IHRlc3QgZm9yIHRoZSBjdWJpYyBpbnRlcnBvbGF0aW9uIG1vZGUgYW5kIGNoZWNrIGV2ZXJ5d2hlcmUKCSAgaWYgdGhlIGludGVycG9sYXRpb24gbW9kZSBjb3VsZCBiZSBzZXQgYXMgZXhwZWN0ZWQuCgoyMDA3LTA2LTA2IDExOjM4OjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBhcmFtc3BlY3MuYzogRG9uJ3QgdXNlIEdMaWItMi4xMCBmdW5jdGlvbnMsIHdlIHN0aWxsIGRlcGVuZCBvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOiAoZ3N0X3BhcmFtX3NwZWNfZnJhY3Rpb25fZ2V0X3R5cGUpOgoJICBEb24ndCB1c2UgR0xpYi0yLjEwIGZ1bmN0aW9ucywgd2Ugc3RpbGwgZGVwZW5kIG9uCgkgIEdMaWItaG93LW9sZC1pcy1pdC1hZ2Fpbi0yLjguCgoyMDA3LTA2LTA2IDExOjE4OjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgR3N0UGFyYW1TcGVjRnJhY3Rpb24sIHNvIGVsZW1lbnRzIGNhbiBoYXZlIGZyYWN0aW9uIHByb3BlcnRpZXMgd2l0aG91dCBsb3RzIG9mIHBhaW5mdWwgc3RyaW5nIHBhcnNpbmcgKCM0NDQ2Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdHBhcmFtc3BlY3MuYzogKF9nc3RfcGFyYW1fZnJhY3Rpb25faW5pdCksCgkgIChfZ3N0X3BhcmFtX2ZyYWN0aW9uX3NldF9kZWZhdWx0KSwgKF9nc3RfcGFyYW1fZnJhY3Rpb25fdmFsaWRhdGUpLAoJICAoX2dzdF9wYXJhbV9mcmFjdGlvbl92YWx1ZXNfY21wKSwKCSAgKGdzdF9wYXJhbV9zcGVjX2ZyYWN0aW9uX2dldF90eXBlKSwgKGdzdF9wYXJhbV9zcGVjX2ZyYWN0aW9uKToKCSAgKiBnc3QvZ3N0cGFyYW1zcGVjcy5oOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYXJhbXNwZWNzLmM6IChnc3RfZHVtbXlfb2JqX2Jhc2VfaW5pdCksCgkgIChnc3RfZHVtbXlfb2JqX2NsYXNzX2luaXQpLCAoZ3N0X2R1bW15X29ial9pbml0KSwKCSAgKGdzdF9kdW1teV9vYmpfc2V0X3Byb3BlcnR5KSwgKGdzdF9kdW1teV9vYmpfZ2V0X3Byb3BlcnR5KSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9wYXJhbV9zcGVjX3N1aXRlKToKCSAgQVBJOiBhZGQgR3N0UGFyYW1TcGVjRnJhY3Rpb24sIHNvIGVsZW1lbnRzIGNhbiBoYXZlIGZyYWN0aW9uCgkgIHByb3BlcnRpZXMgd2l0aG91dCBsb3RzIG9mIHBhaW5mdWwgc3RyaW5nIHBhcnNpbmcgKCM0NDQ2NDgpLgoKMjAwNy0wNi0wNSAxNjoyNTowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RvYmplY3QuYzogRml4IHNpZ25hbCBzaWduYXR1cmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfY2xhc3NfaW5pdCk6CgkgIEZpeCBzaWduYWwgc2lnbmF0dXJlLgoJICAqIGdzdC9nc3RzZWdtZW50LmM6CgkgIEFkZCBzbWFsbCBjbGFyaWZpY2F0aW9uIGluIHRoZSBhcGkgZG9jcy4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19zZXRfbG9jYXRpb24pOgoJICBTdGF0ZXMgYXJlIHByb3RlY3RlZCB3aXRoIG9iamVjdCBsb2NrLgoKMjAwNy0wNi0wNSAxNDoxMTo1OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBBVVRIT1JTOiBJIHNob3VsZCBwcm9iYWJseSBiZSBsaXN0ZWQgYXMgYW4gYXV0aG9yIGJ5IG5vdy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogQVVUSE9SUzoKCSAgSSBzaG91bGQgcHJvYmFibHkgYmUgbGlzdGVkIGFzIGFuIGF1dGhvciBieSBub3cuCgkgICogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgVXBkYXRlIHRoZSByZWxlYXNlIGRvYwoKMjAwNy0wNi0wNSAxMzo0OToxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBNYWtlIGRvY3MgZm9yIGdzdF92YWx1ZV9jb21wYXJlKCkgbWVudGlvbiByZXR1cm4gZW51bXMgdGhhdCBhY3R1YWxseSBleGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIE1ha2UgZG9jcyBmb3IgZ3N0X3ZhbHVlX2NvbXBhcmUoKSBtZW50aW9uIHJldHVybiBlbnVtcyB0aGF0CgkgIGFjdHVhbGx5IGV4aXN0LgoKMjAwNy0wNi0wNSAxMzoyMTo0MSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEJhY2sgdG8gQ1ZTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBDVlMKCj09PSByZWxlYXNlIDAuMTAuMTMgPT09CgoyMDA3LTA2LTA1IDEyOjQ3OjIzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnNpZ25hbHM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvdnM2L2dyYW1tYXIuZHNwOgoJKiB3aW4zMi92czYvZ3N0X2luc3BlY3QuZHNwOgoJKiB3aW4zMi92czYvZ3N0X2xhdW5jaC5kc3A6CgkqIHdpbjMyL3ZzNi9nc3RyZWFtZXIuZHN3OgoJKiB3aW4zMi92czYvbGliZ3N0YmFzZS5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3Rjb250cm9sbGVyLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdGNvcmVlbGVtZW50cy5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RkYXRhcHJvdG9jb2wuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0bmV0LmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdHJlYW1lci5kc3A6CgkgIFJlbGVhc2UgMC4xMC4xMyAiV2l0aCBvciB3aXRob3V0IHlvdSIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbGVhc2UgMC4xMC4xMyAiV2l0aCBvciB3aXRob3V0IHlvdSIKCjIwMDctMDYtMDUgMTI6MDY6NDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNy0wNS0yOSAxNTo1MDo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHRyaWdnZXIgYSBtYWlsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0cmlnZ2VyIGEgbWFpbAoKMjAwNy0wNS0yOSAxNDo0OTo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHRyaWdnZXIgYSBtYWlsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0cmlnZ2VyIGEgbWFpbAoKMjAwNy0wNS0yOSAxNDo0ODo1NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHRyaWdnZXIgYSBtYWlsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0cmlnZ2VyIGEgbWFpbAoKMjAwNy0wNS0yOSAxNDozNzoyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHNlbmQgYSBtYWlsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzZW5kIGEgbWFpbAoKMjAwNy0wNS0yOSAxMTo1MjoyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHRlc3QgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0ZXN0IGNvbW1pdAoKMjAwNy0wNS0yOSAxMTo0MDozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHRlc3QgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0ZXN0IGNvbW1pdAoKMjAwNy0wNS0yOSAxMTowMDoxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHRlc3QgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0ZXN0IGNvbW1pdAoKMjAwNy0wNS0yOSAxMDo0MzoyMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHRlc3QgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0ZXN0IGNvbW1pdAoKMjAwNy0wNS0yOSAxMDozNTo0MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHRlc3QgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0ZXN0IGNvbW1pdAoKMjAwNy0wNS0yOSAxMDozNDoxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHRlc3QgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0ZXN0IGNvbW1pdAoKMjAwNy0wNS0yOSAxMDoyMDoxMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHRlc3QgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0ZXN0IGNvbW1pdAoKMjAwNy0wNS0yNSAxNTozNjo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogTWFrZSBzdXJlIHRoYXQgdGhlIGNoaWxkIGJpbiBzdG9wcyBhZnRlciBjb21wbGV0aW5nIHRoZSBhc3luYyBzdGF0ZSBjaGFuZ2Ugc28gdGhhdCB0aGUgcGFyZW50IGNhbiBjb250aS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5faGFuZGxlX2FzeW5jX2RvbmUpOgoJICBNYWtlIHN1cmUgdGhhdCB0aGUgY2hpbGQgYmluIHN0b3BzIGFmdGVyIGNvbXBsZXRpbmcgdGhlIGFzeW5jIHN0YXRlCgkgIGNoYW5nZSBzbyB0aGF0IHRoZSBwYXJlbnQgY2FuIGNvbnRpbnVlIHRoZSBzdGF0ZSBjaGFuZ2UgdG8gUExBWUlORy4KCSAgRml4ZXMgIzQ0MTE1OS4KCjIwMDctMDUtMjUgMDk6MjY6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IFVzZSBhZGRpdGlvbmFsIHJlZmNvdW50aW5nIHRvIGF2b2lkIGNyYXNoZXMgd2hlbiBkeW5hbWljYWxseSBhZGRpbmcgYW5kIHJlbW92aW5nIHBhZHMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19maW5hbGl6ZSksCgkgICh1bnJlZl9kYXRhKSwgKGdzdF9jb2xsZWN0X3BhZHNfcmVtb3ZlX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2NoZWNrX3BhZHMpOgoJICBVc2UgYWRkaXRpb25hbCByZWZjb3VudGluZyB0byBhdm9pZCBjcmFzaGVzIHdoZW4gZHluYW1pY2FsbHkgYWRkaW5nIGFuZAoJICByZW1vdmluZyBwYWRzLiBGaXhlcyAjNDIwMjA2LgoKMjAwNy0wNS0yNCAxNTowMDo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogV2hlbiBidWZmZXJpbmcgZ29lcyBmcm9tIGEgdHdvIGRpZ2l0IHRvIGEgc2luZ2xlIGRpZ2l0IG51bWJlciwgbWFrZSBzdXJlIHRvIHJlbW92ZSB0aGUgb2xkIHNlY29uZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgV2hlbiBidWZmZXJpbmcgZ29lcyBmcm9tIGEgdHdvIGRpZ2l0IHRvIGEgc2luZ2xlIGRpZ2l0IG51bWJlciwgbWFrZSBzdXJlCgkgIHRvIHJlbW92ZSB0aGUgb2xkIHNlY29uZCBkaWdpdCBieSB3cml0aW5nIGEgYmxhbmsgb3ZlciBpdC4KCjIwMDctMDUtMjQgMTI6MTk6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOiBFbGltaW5hdGUgdGFicyBhbmQgdHJhaWxpbmcgY29tbWEgaW4gZW51bSBsaXN0OyBmaXggc29tZSB0eXBvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSAgRWxpbWluYXRlIHRhYnMgYW5kIHRyYWlsaW5nIGNvbW1hIGluIGVudW0gbGlzdDsgZml4IHNvbWUgdHlwb3MuCgoyMDA3LTA1LTI0IDExOjUwOjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiBBbGxvdyByZWZjb3VudCBvZiAzIGFuZCA0IGJlY2F1c2Ugc29tZSBzdGF0ZSB0aHJlYWQgbWlnaHQgc3RpbGwgYmUgYnVzeSB3aXRoIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFsbG93IHJlZmNvdW50IG9mIDMgYW5kIDQgYmVjYXVzZSBzb21lIHN0YXRlIHRocmVhZCBtaWdodCBzdGlsbCBiZSBidXN5CgkgIHdpdGggaXQuCgoyMDA3LTA1LTI0IDA5OjQxOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IFRoZXNlIGFyZSBub3QgaW5zdGFsbGVkIGhlYWRlcnMsIG5vIG5lZWQgZm9yIHBhZGRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBUaGVzZSBhcmUgbm90IGluc3RhbGxlZCBoZWFkZXJzLCBubyBuZWVkIGZvciBwYWRkaW5nLgoKMjAwNy0wNS0yNCAwODozNTowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogRW5hYmxlIGxhdGVuY3kgZm9yIG5leHQgcmVsZWFzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5fZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2Jpbl9jb250aW51ZV9mdW5jKToKCSAgRW5hYmxlIGxhdGVuY3kgZm9yIG5leHQgcmVsZWFzZS4KCSAgUmVzdG9yZSBTVEFURV9MT0NLIGFyb3VuZCByZWNhbGNfc3RhdGUgdGhhdCB3YXMgbGVmdCBvdXQgZHVyaW5nIHRoZQoJICByZXdyaXRlIGFuZCBjb3VsZCByZXN1bHQgaW4gcmFjeSBiZWhhdmlvdXIgd2hlbiBfZ2V0X3N0YXRlIGFuZAoJICByZWNhbGNfc3RhdGUgYXJlIHJ1biBjb25jdXJyZW50bHkuIFNlZSAjNDQwNDYzLgoKMjAwNy0wNS0yMyAxMzo1NjoyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOiBJbXByb3ZlIHRlc3RfYXN5bmNfb3JkZXIgdG8gYWxzbyB3b3JrIHdoZW4gYm90aCB0aW1lcnMgYXJlIGFscmVhZHkgZXhwaXJlZCB3aGVuIHdlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzogKHN0b3JlX2NhbGxiYWNrKSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgSW1wcm92ZSB0ZXN0X2FzeW5jX29yZGVyIHRvIGFsc28gd29yayB3aGVuIGJvdGggdGltZXJzIGFyZSBhbHJlYWR5CgkgIGV4cGlyZWQgd2hlbiB3ZSBnZXQgc2NoZWR1bGVkIHRvIGNoZWNrIGl0LgoKMjAwNy0wNS0yMiAxNzoxMDowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RiaW4uKjogJ3ByaXZhdGUnIGlzIGEgYysrIGtleXdvcmQsIGxldCdzIG5vdCB1c2UgdGhhdCBpbiBoZWFkZXIgZmlsZXMsIG90aGVyd2lzZSBjKysgY29tcGlsZXJzIHdpbGwgdGhyb3cgYSB0YS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2luaXQpLCAoZ3N0X2Jpbl9kaXNwb3NlKSwKCSAgKGdzdF9iaW5fc2V0X3Byb3BlcnR5KSwgKGdzdF9iaW5fZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgICdwcml2YXRlJyBpcyBhIGMrKyBrZXl3b3JkLCBsZXQncyBub3QgdXNlIHRoYXQgaW4gaGVhZGVyIGZpbGVzLAoJICBvdGhlcndpc2UgYysrIGNvbXBpbGVycyB3aWxsIHRocm93IGEgdGFudHJ1bS4KCjIwMDctMDUtMjIgMTE6NTU6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zLzogVXNlICNpZmRlZiBmb3IgSEFWRV9YWVogZm9yIGNvbnNpc3RlbmN5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19kb19zZWVrKSwKCSAgKGdzdF9maWxlX3NpbmtfZ2V0X2N1cnJlbnRfb2Zmc2V0KToKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGluZGV4ZXJzLmM6IChwbHVnaW5faW5pdCk6CgkgIFVzZSAjaWZkZWYgZm9yIEhBVkVfWFlaIGZvciBjb25zaXN0ZW5jeS4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6IChzZXR1cF9maWxlc2luayksCgkgIChjbGVhbnVwX2ZpbGVzaW5rKSwgKEdTVF9TVEFSVF9URVNUKSwgKGZpbGVzaW5rX3N1aXRlKToKCSAgQWRkIHNvbWUgdW5pdCB0ZXN0cyBmb3IgZmlsZXNpbmsuCgoyMDA3LTA1LTIyIDExOjQzOjA3ICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJlPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay4qOiBGaXggcG9zaXRpb24gcmVwb3J0aW5nOyByZW5hbWUgZGF0YV93cml0dGVuIG1lbWJlciB0byBjdXJyZW50X3BvcyB0byByZWZsZWN0IGl0cyByZWFsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3IGF0IHNreW5ldCBiZT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX29wZW5fZmlsZSksCgkgIChnc3RfZmlsZV9zaW5rX3F1ZXJ5KSwgKGdzdF9maWxlX3NpbmtfZG9fc2VlayksCgkgIChnc3RfZmlsZV9zaW5rX2dldF9jdXJyZW50X29mZnNldCksIChnc3RfZmlsZV9zaW5rX3JlbmRlcik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJICBGaXggcG9zaXRpb24gcmVwb3J0aW5nOyByZW5hbWUgZGF0YV93cml0dGVuIG1lbWJlciB0byBjdXJyZW50X3BvcyB0bwoJICByZWZsZWN0IGl0cyByZWFsIG1lYW5pbmcgKGZpeGVzICM0MTI2NDgpLgoKMjAwNy0wNS0yMiAxMTowOTo0NSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIEFkZCBhIHByb3BlcnR5IGZvciBiaW5zIHRoYXQgaGFuZGxlIHRoZSBzdGF0ZSBjaGFuZ2Ugb2YgdGhlaXIgY2hpbGRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX2luaXQpLAoJICAoZ3N0X2Jpbl9kaXNwb3NlKSwgKGdzdF9iaW5fc2V0X3Byb3BlcnR5KSwgKGdzdF9iaW5fZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgIEFkZCBhIHByb3BlcnR5IGZvciBiaW5zIHRoYXQgaGFuZGxlIHRoZSBzdGF0ZSBjaGFuZ2Ugb2YgdGhlaXIgY2hpbGRzLgoJICBGaXhlcyAjNDM1ODgwCgoyMDA3LTA1LTIyIDEwOjIxOjMxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXF1b3Rlcy54bWw6CgkqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgIGFkZCBxdW90ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHF1b3RlCgoyMDA3LTA1LTIyIDA5OjU2OjI1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzogVXNlIGFuIGFycmF5IG9mIHRoZSBjb3JyZWN0IHR5cGUgd2hlbiB1c2luZyBfZ2V0X3ZhbHVlX2FycmF5IHdpdGggbGluZWFyIGludGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIFVzZSBhbiBhcnJheSBvZiB0aGUgY29ycmVjdCB0eXBlIHdoZW4gdXNpbmcgX2dldF92YWx1ZV9hcnJheSB3aXRoCgkgIGxpbmVhciBpbnRlcnBvbGF0aW9uLgoKMjAwNy0wNS0yMiAwNjozNzozNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X3JlcXVpcmVzX2Nsb2NrLCBnc3RfZWxlbWVudF9wcm92aWRlc19jbG9jaywgZ3N0X2VsZW1lbnRfcmVxdWVzdF9wYWQsIGdzdF9lbGVtZW50X2NsYXNzXy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9yZXF1aXJlc19jbG9jaywKCSAgZ3N0X2VsZW1lbnRfcHJvdmlkZXNfY2xvY2ssIGdzdF9lbGVtZW50X3JlcXVlc3RfcGFkLAoJICBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlscywgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlLAoJICBnc3RfZWxlbWVudF9kZWZhdWx0X3NlbmRfZXZlbnQsIGdzdF9lbGVtZW50X2Fib3J0X3N0YXRlLAoJICBnc3RfZWxlbWVudF9jb250aW51ZV9zdGF0ZSwgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlLAoJICBnc3RfZWxlbWVudF9zZXRfc3RhdGVfZnVuYywgaXRlcmF0b3JfYWN0aXZhdGVfZm9sZF93aXRoX3Jlc3luYyk6CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2FjdGl2YXRlX3B1bGwsIGdzdF9wYWRfc2V0X2dldGNhcHNfZnVuY3Rpb24sCgkgIGdzdF9wYWRfZml4YXRlX2NhcHMsIGdzdF9wYWRfY29uZmlndXJlX3NpbmssIGdzdF9wYWRfY29uZmlndXJlX3NyYywKCSAgZ3N0X3BhZF9xdWVyeSwgZ3N0X3BhZF9zYXZlX3RoeXNlbGYsIGhhbmRsZV9wYWRfYmxvY2ssIGdzdF9wYWRfcHVzaCwKCSAgZ3N0X3BhZF9nZXRfcmFuZ2UsIGdzdF9wYWRfcHVsbF9yYW5nZSk6CgkgICogZ3N0L2dzdHBhZC5oIChHU1RfUEFEX0xJTktfU1VDQ0VTU0ZVTCwgR1NUX0ZMT1dfQ1VTVE9NX1NVQ0NFU1MsCgkgIEdTVF9GTE9XX05PVF9TVVBQT1JURUQsIEdTVF9GTE9XX0lTX0ZBVEFMLCBHc3RQYWRBY3RpdmF0ZUZ1bmN0aW9uLAoJICBHc3RQYWRBY3RpdmF0ZU1vZGVGdW5jdGlvbiwgR3N0UGFkQ2hhaW5GdW5jdGlvbiwKCSAgR3N0UGFkR2V0Q2Fwc0Z1bmN0aW9uLCBHc3RQYWRBY2NlcHRDYXBzRnVuY3Rpb24sCgkgIEdzdFBhZEZpeGF0ZUNhcHNGdW5jdGlvbiwgR3N0UGFkVGVtcGxhdGUpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlLAoJICBnc3RfcGlwZWxpbmVfc2V0X25ld19zdHJlYW1fdGltZSwgZ3N0X3BpcGVsaW5lX3VzZV9jbG9jaywKCSAgZ3N0X3BpcGVsaW5lX3NldF9jbG9jaywgZ3N0X3BpcGVsaW5lX2F1dG9fY2xvY2ssCgkgIGdzdF9waXBlbGluZV9nZXRfZGVsYXkpOgoJICBXaGl0ZXNwYWNlIGFuZCBkb2NzIGZpeGVzLgoKMjAwNy0wNS0yMSAyMTo0ODowNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6IEFkZCBzdXBwb3J0IGZvciByZXRyaWV2aW5nIHZhbHVlIGFycmF5cyB3aGVuIHVzaW5nIHRoZSB0cmlnZ2VyIGludGVycG9sYXRpb24gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAoaW50ZXJwb2xhdGVfdHJpZ2dlcl9nZXRfZW51bV92YWx1ZV9hcnJheSksCgkgIChpbnRlcnBvbGF0ZV90cmlnZ2VyX2dldF9zdHJpbmdfdmFsdWVfYXJyYXkpOgoJICBBZGQgc3VwcG9ydCBmb3IgcmV0cmlldmluZyB2YWx1ZSBhcnJheXMgd2hlbiB1c2luZyB0aGUgdHJpZ2dlcgoJICBpbnRlcnBvbGF0aW9uIG1vZGUuCgoyMDA3LTA1LTIxIDIxOjM0OjQ5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuKjogQ2xhcmlmeSB0aGUgZG9jcyBvZiBnc3RfY29udHJvbGxlcl9nZXRfdmFsdWVfYXJyYXkoKTogVGhlIGFycmF5IHdoZXJlIHRoZSB2YWx1ZXMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlcl9nZXRfdmFsdWVfYXJyYXkpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICBDbGFyaWZ5IHRoZSBkb2NzIG9mIGdzdF9jb250cm9sbGVyX2dldF92YWx1ZV9hcnJheSgpOiBUaGUgYXJyYXkgd2hlcmUKCSAgdGhlIHZhbHVlcyBzaG91bGQgYmUgd3JpdHRlbiB0byBtdXN0IGJlIGFsbG9jYXRlZCBhcyB0aGVyZSBzZWVtcyB0byBiZQoJICBubyB3YXkgdG8gZ2V0IHRoZSBzaXplIG9mIGEgcmFuZG9tIEdUeXBlLiBUaGlzIGRvZXNuJ3QgY2hhbmdlIGFueQoJICBiZWhhdmlvdXIuIEFsc28gZml4IHNvbWUgdHlwb3MgYWxsIG92ZXIgdGhlIHBsYWNlIGFuZCByZW1vdmUgYW4gdW51c2VkLAoJICBjb21tZW50ZWQgZnVuY3Rpb24gdGhhdCBpcyBub3QgbmVjZXNzYXJ5IGFzIGdfb2JqZWN0X3NldCgpIGNvdWxkIGJlCgkgIHVzZWQgaW5zdGVhZC4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgQWRkIHVuaXQgdGVzdCBmb3IgZ3N0X2NvbnRyb2xsZXJfZ2V0X3ZhbHVlX2FycmF5KCkuCgoyMDA3LTA1LTIxIDE0OjUwOjUxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzogRGlzYWJsZSBwYXJ0IG9mIHRoZSBnc3RfYnVmZmVyX3RyeV9uZXdfYW5kX2FsbG9jIHRlc3QsIGJlY2F1c2UgaXQgY2FuIGhhcHBpbHkgc3VjY2VlZCBvbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIERpc2FibGUgcGFydCBvZiB0aGUgZ3N0X2J1ZmZlcl90cnlfbmV3X2FuZF9hbGxvYyB0ZXN0LCBiZWNhdXNlCgkgIGl0IGNhbiBoYXBwaWx5IHN1Y2NlZWQgb24gNjQtYml0IHN5c3RlbXMgd2hlcmUgdGhlcmUncyBtb3JlIGFkZHJlc3MKCSAgc3BhY2UgYXZhaWxhYmxlLgoKMjAwNy0wNS0yMSAxMjowNTo1NiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOiBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgaW1wcm92ZWQgY2FwcyBjaGVja2luZyBmcm9tIGJ1ZyAjNDIxNTQzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfcGFkX3N1aXRlKToKCSAgQWRkIHVuaXQgdGVzdCBmb3IgdGhlIGltcHJvdmVkIGNhcHMgY2hlY2tpbmcgZnJvbSBidWcgIzQyMTU0My4KCjIwMDctMDUtMjEgMTI6MDU6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6IFNtYWxsIGFkZGl0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkgIFNtYWxsIGFkZGl0aW9uLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcXVlcnkpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGFwcGx5X3NlZ21lbnQpOgoJICBJbXByb3ZlIGRlYnVnZ2luZy4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBJbXByb3ZlIGRvY3MuCgoyMDA3LTA1LTIxIDEyOjAwOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBBZGRlZCBzaW1wbGUgdmVyc2lvbiBvZiBpbXByb3ZlZCBjYXBzIGNoZWNraW5nLiBJdCB3YXMgcHJldmlvdXNseSBhc3N1bWVkIHRoYXQgYSBzZXRjYXBzIGZ1bmN0aW9uIHdvdWxkLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X2NhcHNfdW5sb2NrZWQpLAoJICAoZ3N0X3BhZF9hY2NlcHRjYXBzX2RlZmF1bHQpLCAoZ3N0X3BhZF9jb25maWd1cmVfc2luayksCgkgIChnc3RfcGFkX2NvbmZpZ3VyZV9zcmMpOgoJICBBZGRlZCBzaW1wbGUgdmVyc2lvbiBvZiBpbXByb3ZlZCBjYXBzIGNoZWNraW5nLiBJdCB3YXMgcHJldmlvdXNseQoJICBhc3N1bWVkIHRoYXQgYSBzZXRjYXBzIGZ1bmN0aW9uIHdvdWxkIGNoZWNrIHRoZSB2YWxpZGl0eSBvZiB0aGUgY2FwcyBidXQKCSAgcGVvcGxlIHByZWZlciB1cyB0byBjaGVjayBjYXBzIGFnYWluc3QgdGhlIHRlbXBsYXRlIGF1dG9tYXRpY2FsbHkuCgkgIEZpeGVzICM0MjE1NDMuCgoyMDA3LTA1LTIxIDExOjI5OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6IEZpeCBtYWNybyBmb3IgbG9ja2luZy91bmxvY2tpbmcgdGhlIHRyYW5zZm9ybSBsb2NrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgRml4IG1hY3JvIGZvciBsb2NraW5nL3VubG9ja2luZyB0aGUgdHJhbnNmb3JtIGxvY2suCgoyMDA3LTA1LTE5IDEzOjUzOjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wbHVnaW5zL3RtcGwvLmN2c2lnbm9yZTogSWdub3JlIG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy90bXBsLy5jdnNpZ25vcmU6CgkgIElnbm9yZSBtb3JlLgoKMjAwNy0wNS0xOCAxNjo1MzoxOCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogSGVsbG8sIEkgYW0gTXIgVGF5bWFucycgcGVyc29uYWwgZGVidWdnZXIuIFRvZGF5IEkgd2lsbCBpbnRyb2R1Y2UgYSBmaXggZm9yIHRoZSBzdWJ0bGUgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbG9vcCk6CgkgIEhlbGxvLCBJIGFtIE1yIFRheW1hbnMnIHBlcnNvbmFsIGRlYnVnZ2VyLiBUb2RheSBJIHdpbGwgaW50cm9kdWNlIGEgZml4CgkgIGZvciB0aGUgc3VidGxlIGFydCBvZiB3YXJuaW5nIGEgcG90ZW50aWFsbHkgYmxvY2tpbmcgdGhyZWFkIHRoYXQgaXQKCSAgc2hvdWxkIGNoZWNrIHRoZSBzb3VyY2UgcGFkIHJldHVybiB2YWx1ZSwgYW5kIHJlbGF5IHRoZSBpbmZvcm1hdGlvbgoJICB1cHN0cmVhbS4KCjIwMDctMDUtMTggMTE6MjA6MzMgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IFJlbGVhc2UgdGhlIHF1ZXVlIGxvY2sgIQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpOgoJICBSZWxlYXNlIHRoZSBxdWV1ZSBsb2NrICEKCjIwMDctMDUtMTcgMTc6NTU6NDggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEFkZCB0aGUgdHdvIG5ldyBjb250cm9sbGVyIGZ1bmN0aW9ucyB0byB0aGUgYXBwcm9waWF0ZSBwbGFjZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIEFkZCB0aGUgdHdvIG5ldyBjb250cm9sbGVyIGZ1bmN0aW9ucyB0byB0aGUgYXBwcm9waWF0ZSBwbGFjZXMuCgoyMDA3LTA1LTE3IDE3OjM3OjU4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogQVBJOiBnc3RfY29udHJvbGxlcl9zdWdnZXN0X25leHRfc3luYygpLCBnc3Rfb2JqZWN0X3N1Z2dlc3RfbmV4dF9zeW5jKCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmlld2VkIGJ5OiBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlcl9zdWdnZXN0X25leHRfc3luYyksIChnc3RfY29udHJvbGxlcl9zeW5jX3ZhbHVlcyksCgkgIChfZ3N0X2NvbnRyb2xsZXJfZ2V0X3Byb3BlcnR5KSwgKF9nc3RfY29udHJvbGxlcl9zZXRfcHJvcGVydHkpLAoJICAoX2dzdF9jb250cm9sbGVyX2luaXQpLCAoX2dzdF9jb250cm9sbGVyX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6IChnc3Rfb2JqZWN0X3N1Z2dlc3RfbmV4dF9zeW5jKSwKCSAgKGdzdF9vYmplY3RfZ2V0X2NvbnRyb2xfcmF0ZSksIChnc3Rfb2JqZWN0X3NldF9jb250cm9sX3JhdGUpOgoJICBBUEk6IGdzdF9jb250cm9sbGVyX3N1Z2dlc3RfbmV4dF9zeW5jKCksIGdzdF9vYmplY3Rfc3VnZ2VzdF9uZXh0X3N5bmMoKQoJICBBZGQgQVBJIHRoYXQgcHJvdmlkZXMgc3luYyBzdWdnZXN0aW9uIHRpbWVzdGFtcHMgZm9yIGVsZW1lbnRzIHRoYXQKCSAgY2FsbCBnc3Rfb2JqZWN0X3N5bmNfdmFsdWVzKCkgZnJvbSB3aGljaCB0aG9zZSBlbGVtZW50cyBjYW4gc3ViZGl2aWRlCgkgIHRoZWlyIHByb2Nlc3NpbmcgbG9vcCB0byBnZXQgdGhlIGJlc3QgcmVzdWx0cyBmb3IgdGhlIGNvbnRyb2xsZWQKCSAgcHJvcGVydGllcy4gRm9yIG5vdyBpdCBqdXN0IHN1Z2dlc3RzIGxhc3Rfc3luYyArIGNvbnRyb2xfcmF0ZSBhcwoJICBuZXcgdGltZXN0YW1wIGJ1dCB0aGlzIHdpbGwgYmUgaW1wcm92ZWQgaW4gdGhlIGZ1dHVyZS4KCSAgV2hpbGUgZG9pbmcgdGhhdCBjaGFuZ2UgdGhlIGNvbnRyb2wtcmF0ZSBwcm9wZXJ0eSB0byBhIEdzdENsb2NrVGltZQoJICBmcm9tIGd1aW50IGFuZCBjaGFuZ2UgaXQncyBtZWFuaW5nIGZyb20gc2FtcGxlcyB0byBuYW5vc2Vjb25kcyBhcwoJICB0aGUgR3N0Q29udHJvbGxlciBkb2Vzbid0IGtub3cgYW55dGhpbmcgYWJvdXQgc2FtcGxpbmcgcmF0ZS4gU3RyaWN0bHkKCSAgc3BlYWtpbmcgdGhpcyBicmVha3MgQUJJIGJ1dCBhcyB0aGUgY29udHJvbC1yYXRlIHByb3BlcnR5IGRpZG4ndCBkbwoJICBhbnl0aGluZyBpbiB0aGUgcGFzdCBhbmQgYXMgc3VjaCBjb3VsZG4ndCBiZSB1c2VkIHRoaXMgc2hvdWxkIGJlIG5vCgkgIHByb2JsZW0uCgoyMDA3LTA1LTE3IDE3OjE2OjA5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogU2F2ZSBsYXN0IHN5bmNlZCB2YWx1ZSBmcm9tIHRoZSBsaXN0IHRvIGNvbnRpbnVlIHNlYXJjaGluZyBmcm9tIHRoZXJlIGluIGZ1dHVyZSBzeW5jcy4gVGhpcyBzcGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmlld2VkIGJ5OiBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChnc3RfY29udHJvbGxlcl91bnNldCksCgkgIChnc3RfY29udHJvbGxlcl91bnNldF9hbGwpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlcnByaXZhdGUuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X2ZpbmRfY29udHJvbF9wb2ludF9ub2RlKToKCSAgU2F2ZSBsYXN0IHN5bmNlZCB2YWx1ZSBmcm9tIHRoZSBsaXN0IHRvIGNvbnRpbnVlIHNlYXJjaGluZyBmcm9tIHRoZXJlCgkgIGluIGZ1dHVyZSBzeW5jcy4gVGhpcyBzcGVlZHMgZXZlcnl0aGluZyB1cCBhIGJpdC4KCjIwMDctMDUtMTcgMTc6MDU6MzYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvOiBBZGQgYSBuZXcgcHJpdmF0ZSBHc3RDb250cm9sUG9pbnQgc3RydWN0IHdoaWNoICJpbmhlcml0cyIgZnJvbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2aWV3ZWQgYnk6IFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sX3BvaW50X2NvbXBhcmUpLAoJICAoZ3N0X2NvbnRyb2xfcG9pbnRfZmluZCksIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9uZXcpLAoJICAoZ3N0X2NvbnRyb2xfcG9pbnRfZnJlZSksIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9mcmVlKSwKCSAgKGdzdF9jb250cm9sbGVyX3NldCksIChnc3RfY29udHJvbGxlcl9zZXRfZnJvbV9saXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX3Vuc2V0KSwgKGdzdF9jb250cm9sbGVyX3Vuc2V0X2FsbCksCgkgIChnc3RfY29udHJvbGxlcl9zeW5jX3ZhbHVlcyk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVycHJpdmF0ZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfZmluZF9jb250cm9sX3BvaW50X25vZGUpLAoJICAoaW50ZXJwb2xhdGVfbm9uZV9nZXQpLCAoaW50ZXJwb2xhdGVfdHJpZ2dlcl9nZXQpOgoJICBBZGQgYSBuZXcgcHJpdmF0ZSBHc3RDb250cm9sUG9pbnQgc3RydWN0IHdoaWNoICJpbmhlcml0cyIgZnJvbQoJICBHc3RUaW1lZFZhbHVlIHRvIGFsbG93IGRpZmZlcmVudCBpbnRlcnBvbGF0b3JzIHRvIHN0b3JlIGludGVybmFsCgkgIHZhbHVlcyBuZXh0IHRvIGVhY2ggY29udHJvbCBwb2ludC4gRnJvbSB0aGUgb3V0c2lkZSBldmVyeXRoaW5nIGlzCgkgIHN0aWxsIGEgR3N0Q29udHJvbFBvaW50IHNvIHdlIGRvbid0IGxvb3NlIGJpbmFyeSBjb21wYXRpYmlsaXR5LgoJICBBbHNvIGZpeHVwIGFsbCB0aGUgR1ZhbHVlIGhhbmRsaW5nIHRvIG5vdCBsZWFrIEdWYWx1ZXMgb3IgbGlzdCBub2Rlcy4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRnJlZSB0aGUgbGlzdCBub2RlcyBhbmQgR1ZhbHVlcyBpbiB0aGUgY29udHJvbGxlcl9taXNjIHRlc3QuCgoyMDA3LTA1LTE3IDExOjA1OjIyICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogU21hbGwgZG9jIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgU21hbGwgZG9jIGZpeC4KCjIwMDctMDUtMTYgMTk6MzU6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IElmIHdlIGZhaWwgdG8gbG9hZCBhIHBsdWdpbiBiZWNhdXNlIG9mIHVucmVzb2x2ZWQgc3ltYm9scyBvciBtaXNzaW5nIGxpYnJhcmllcyBhbmQgc3BldyBhIHdhcm5pbmcgdG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOgoJICBJZiB3ZSBmYWlsIHRvIGxvYWQgYSBwbHVnaW4gYmVjYXVzZSBvZiB1bnJlc29sdmVkIHN5bWJvbHMgb3IgbWlzc2luZwoJICBsaWJyYXJpZXMgYW5kIHNwZXcgYSB3YXJuaW5nIHRvIHN0ZGVyciwgd2UgbWF5IGp1c3QgYXMgd2VsbCBtZW50aW9uCgkgIHdoaWNoIHBsdWdpbiBpdCB3YXMgdGhhdCBmYWlsZWQgdG8gbG9hZC4KCjIwMDctMDUtMTMgMjA6Mjg6MTQgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZG9jcy9NYWtlZmlsZS5hbTogdGhlIGd0ay1kb2MgbWFrZWZpbGUgc25pcHBldCBjb3JyZWN0bHkgaGFuZGxlcyB0aGUgY2FzZSB3aGVuIEVOQUJMRV9HVEtfRE9DIGlzIGZhbHNlLCBhbmQgaW5zdGFsbHMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvTWFrZWZpbGUuYW06IHRoZSBndGstZG9jIG1ha2VmaWxlIHNuaXBwZXQgY29ycmVjdGx5CgkgIGhhbmRsZXMgdGhlIGNhc2Ugd2hlbiBFTkFCTEVfR1RLX0RPQyBpcyBmYWxzZSwgYW5kIGluc3RhbGxzCgkgIHRoZSBwcmVidWlsdCBkb2N1bWVudGF0aW9uLiAgU28gZ3RrLWRvYyBzdWJkaXJzIGFyZQoJICB1bmNvbmRpdGlvbmFsbHkgZW5hYmxlZC4gIEZpeGVzOiAjMzQ5MDk5LgoKMjAwNy0wNS0xMyAyMDoxMToyNyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuaDogUmV3b3JkIHNvbWUgZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmg6IFJld29yZCBzb21lIGRvY3VtZW50YXRpb24uCgoyMDA3LTA1LTEzIDAwOjIwOjM1ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RwbHVnaW4uYzogZ3N0X3BsdWdpbl9yZWdpc3Rlcl9mdW5jKCkgZG9lc24ndCBhY3R1YWxseSBkbyBhbnl0aGluZyB3aXRoIHRoZSBwYXNzZWQgIm1vZHVsZSIgcGFyYW1ldGVyLCBzbyByZW1vdi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IGdzdF9wbHVnaW5fcmVnaXN0ZXJfZnVuYygpIGRvZXNuJ3QgYWN0dWFsbHkKCSAgZG8gYW55dGhpbmcgd2l0aCB0aGUgcGFzc2VkICJtb2R1bGUiIHBhcmFtZXRlciwgc28gcmVtb3ZlIGl0LgoJICBBbGxvd3MgcmVtb3ZhbCBvZiBhZGRpdGlvbmFsIHZlc3RpZ2FsIGNvZGUuCgoyMDA3LTA1LTEzIDAwOjA5OjAwICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RwbHVnaW4uYzogVXNpbmcgc2lnYWN0aW9uIHNob3VsZCBkZXBlbmQgb24gSEFWRV9TSUdBQ1RJT04sIG5vdCBIQVZFX1dJTjMyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIFVzaW5nIHNpZ2FjdGlvbiBzaG91bGQgZGVwZW5kIG9uIEhBVkVfU0lHQUNUSU9OLCBub3QgSEFWRV9XSU4zMi4KCSAgU3dpdGNoIHRvIHVzaW5nIGdfc3RhdCgpIGJlY2F1c2UgaXQncyBtb3JlIHBvcnRhYmxlLgoKMjAwNy0wNS0xMiAyMzo1MzowOCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0LmM6IEFkZCBHU1RfRElTQUJMRV9PUFRJT05fUEFSU0lORywgaW4gb3JkZXIgdG8gZGlzYWJsZSBvcHRpb24gcGFyc2luZyBmb3IgZW1iZWRkZWQgc3lzdGVtcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBBZGQgR1NUX0RJU0FCTEVfT1BUSU9OX1BBUlNJTkcsIGluIG9yZGVyIHRvIGRpc2FibGUgb3B0aW9uCgkgIHBhcnNpbmcgZm9yIGVtYmVkZGVkIHN5c3RlbXMuCgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIEFsbG93IGdzdF9lbGVtZW50X3JlZ2lzdGVyKCkgdG8gYmUgY2FsbGVkIHdpdGggcGx1Z2luPT1OVUxMLgoJICBEaWQgbm9ib2R5IG5vdGljZSB0aGF0IHN0YXRpYyBlbGVtZW50cyB3ZXJlIGJyb2tlbj8KCjIwMDctMDUtMTIgMTU6Mzg6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IEdpdmUgbW9yZSBpbnRlcmVzdGluZyBpbmZvIHdoZW4gYnVmZmVyaW5nIHN0YXJ0cyBhbmQgc3RvcHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBHaXZlIG1vcmUgaW50ZXJlc3RpbmcgaW5mbyB3aGVuIGJ1ZmZlcmluZyBzdGFydHMgYW5kIHN0b3BzLgoJICBGaXggY2FzZSB3aGVyZSBidWZmZXJpbmcgc3RhcnRzIGJ1dCB3ZSBmYWlsIHRvIHVwZGF0ZSB0aGUgYnVmZmVyaW5nIGZsYWcKCSAgYmVjYXVzZSB0aGUgdGFyZ2V0IHN0YXRlIGlzIG5vdCBQTEFZSU5HLgoKMjAwNy0wNS0xMiAxNTozNTo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuKjogUmVmYWN0b3IgYW4gY2xlYW51cCBxdWV1ZSBhIGJpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2luaXQpLAoJICAoZ3N0X3F1ZXVlX2ZpbmFsaXplKSwgKHVwZGF0ZV90aW1lX2xldmVsKSwgKGFwcGx5X3NlZ21lbnQpLAoJICAoYXBwbHlfYnVmZmVyKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZmx1c2gpLAoJICAoZ3N0X3F1ZXVlX2xvY2tlZF9lbnF1ZXVlKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZGVxdWV1ZSksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9xdWV1ZV9wdXNoX29uZSksIChnc3RfcXVldWVfbG9vcCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBSZWZhY3RvciBhbiBjbGVhbnVwIHF1ZXVlIGEgYml0LgoJICBEbyBiZXR0ZXIgdGltZSBsZXZlbCBjYWxjdWxhdGlvbnMgdGhhdCBhbHNvIHdvcmsgd2hlbiB0aGUgc3JjcGFkIGlzIG5vdAoJICB5ZXQgcnVubmluZy4KCSAgUmVtb3ZlIHNvbWUgdW5uZWVkZWQgZGVidWcgbGluZXMuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzogKEdTVF9TVEFSVF9URVNUKSwgKHF1ZXVlX3N1aXRlKToKCSAgQWRkZWQgdGVzdGNhc2UgZm9yIHRpbWUgbGV2ZWwgbWVhc3VyZW1lbnQuCgkgIFRyeSB0byBtYWtlIHNvbWUgc3R1ZmYgbW9yZSByYWNlZnJlZS4KCjIwMDctMDUtMTEgMTQ6NDY6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dXJpLmM6IERvbid0IGxlYWsgcGx1Z2luIGZlYXR1cmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1cmkuYzogKGdzdF9lbGVtZW50X21ha2VfZnJvbV91cmkpOgoJICBEb24ndCBsZWFrIHBsdWdpbiBmZWF0dXJlLgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF91cmlfc3VpdGUpOgoJICBBZGQgYnJhaW4tZGVhZCB1bml0IHRlc3QuCgoyMDA3LTA1LTExIDE0OjI4OjU1ICswMDAwICBKZXJvZW4gV291dGVycyA8d291dGVyc2pAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHVyaS5jOiBUcmVhdCBwcm90b2NvbCBzdHJpbmdzIGluIGEgY2FzZS1pbnNlbnNpdGl2ZSB3YXkgKCM0Mzc1NjMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEplcm9lbiBXb3V0ZXJzIDx3b3V0ZXJzaiBhdCBnbWFpbCBjb20+CgkgICogZ3N0L2dzdHVyaS5jOiAoZ3N0X3VyaV9nZXRfcHJvdG9jb2wpLCAoc2VhcmNoX2J5X2VudHJ5KToKCSAgVHJlYXQgcHJvdG9jb2wgc3RyaW5ncyBpbiBhIGNhc2UtaW5zZW5zaXRpdmUgd2F5ICgjNDM3NTYzKS4KCjIwMDctMDUtMTEgMTA6NTY6NDggKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC86IERvbid0IHByaW50IGEgZ193YXJuaW5nIGZvciBhbnkgZmFpbHVyZSB0byBsb2FkIGEgc2hhcmVkIG9iamVjdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgIERvbid0IHByaW50IGEgZ193YXJuaW5nIGZvciBhbnkgZmFpbHVyZSB0byBsb2FkIGEgc2hhcmVkIG9iamVjdC4KCSAgSW5zdGVhZCwgcHVzaCB0aGlzIGRvd24gaW50byBnc3RwbHVnaW4uYywgYW5kIHdhcm4gX29ubHlfIGlmIHdlCgkgIGZhaWxlZCB0byBvcGVuIHRoZSBtb2R1bGUgKGkuZS4gZmFpbHVyZSB0byBsaW5rKS4KCSAgQXZvaWRzIHdhcm5pbmdzIG9uIG5vcm1hbCwgd29ya2luZywgbm9uLXBsdWdpbiAuc28gZmlsZXMuCgoyMDA3LTA1LTExIDA4OjI5OjEwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGx1Z2luLmMgKGdzdF9wbHVnaW5fbG9hZF9maWxlKTogZ3N0L2dzdHJlZ2lzdHJ5LmMgKEdTVF9DQVRfREVGQVVMVCwgZ3N0X3JlZ2lzdHJ5X2xvb2t1cF9mZWF0dXJlX2xvY2tlZCwgZ3N0X3IuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jIChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmMgKEdTVF9DQVRfREVGQVVMVCwKCSAgZ3N0X3JlZ2lzdHJ5X2xvb2t1cF9mZWF0dXJlX2xvY2tlZCwgZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgIFByaW50IGEgZ193YXJuaW5nIGlmIHRoZXJlIHdhcyBhbiBlcnJvciB3aGVuIGxvYWRpbmcgYSBwbHVnaW5zIGR1cmluZwoJICByZWdpc3RyeSBzY2FuLiBUaGUgc2h1bGQgaGVscCBiZWdpbm5lcnMgc3RhcnRpbmcgd2l0aCBnc3QtcGx1Z2luCgkgIHRlbXBsYXRlLgoKMjAwNy0wNS0xMCAxNToyMToyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuKjogQmUgc21hcnRlciB3aGVuIGNhbGN1bGF0aW5nIHRoZSBjdXJyZW50IGFtb3VudCBvZiBkYXRhIGluIHRoZSBxdWV1ZSBieSBtZWFzdXJpbmcgdGhlIGRpZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfY2xhc3NfaW5pdCksCgkgICh1cGRhdGVfdGltZV9sZXZlbCksIChnc3RfcXVldWVfbG9ja2VkX2ZsdXNoKSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfY2hhaW4pLAoJICAoZ3N0X3F1ZXVlX3B1c2hfb25lKSwgKGdzdF9xdWV1ZV9sb29wKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIEJlIHNtYXJ0ZXIgd2hlbiBjYWxjdWxhdGluZyB0aGUgY3VycmVudCBhbW91bnQgb2YgZGF0YSBpbiB0aGUgcXVldWUgYnkKCSAgbWVhc3VyaW5nIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gc3RhcnQgYW5kIGVuZCB0aW1lc3RhbXBzIChpbiBydW5uaW5nCgkgIHRpbWUpIGluc2lkZSB0aGUgcXVldWUuIEZpeGVzICM0MzI4NzYuCgkgIEFQSTogR3N0UXVldWU6OnB1c2hpbmcgdG8gbm90aWZ5IGVsZW1lbnRzIHRoYXQgd2UgYXJlIHB1c2hpbmcgZGF0YSBhZ2FpbgoJICBzaW5jZSB0aGUgcnVubmluZyBzaWduYWwgaXMgcmF0aGVyIGJyb2tlbiBmb3IgdGhpcyBwdXJwb3NlLgoKMjAwNy0wNS0xMCAxMjo0MDoxMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jIChfZG9faW5pdCwgZ3N0X3F1ZXVlX3NpZ25hbHMsIGdzdF9xdWV1ZV9iYXNlX2luaXQsIGdzdF9xdWV1ZV9pbml0KTogdXNlIEdTVF9CT0lMRVJQTEFURQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmMgKF9kb19pbml0LCBnc3RfcXVldWVfc2lnbmFscywKCSAgZ3N0X3F1ZXVlX2Jhc2VfaW5pdCwgZ3N0X3F1ZXVlX2luaXQpOgoJICB1c2UgR1NUX0JPSUxFUlBMQVRFCgoyMDA3LTA1LTA5IDIxOjA2OjA2ICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjogQWRkIG5ldyBleHBvcnRlZCBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IGV4cG9ydGVkIGZ1bmN0aW9ucy4KCSAgKiB3aW4zMi92czYvZ3JhbW1hci5kc3A6CgkgIFVzZSBncmFtbWFyIHByZS1nZW5lcmF0ZWQgZmlsZXMuCgoyMDA3LTA1LTA5IDE2OjMyOjA3ICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIGdzdC86IE1haW50YWluIEFQSSBhbmQgQUJJIHdoZW4gLS1kaXNhYmxlLXBhcnNlIGlzIHVzZWQuIE5vdyB0aGF0IHdlIGhhdmUgYW4gYXBwcm9wcmlhdGUgZXJyb3IgY29kZSwgd2UgY2FuIGp1c3QgcmV0dS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCAgPHBraiBhdCBheGlzIGNvbT4KCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdHBhcnNlLmM6IChnc3RfcGFyc2VfbGF1bmNodiksIChnc3RfcGFyc2VfbGF1bmNoKToKCSAgKiBnc3QvZ3N0cGFyc2UuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbik6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIE1haW50YWluIEFQSSBhbmQgQUJJIHdoZW4gLS1kaXNhYmxlLXBhcnNlIGlzIHVzZWQuIE5vdyB0aGF0CgkgIHdlIGhhdmUgYW4gYXBwcm9wcmlhdGUgZXJyb3IgY29kZSwgd2UgY2FuIGp1c3QgcmV0dXJuIE5VTEwgYW5kIHRoZQoJICBhcHByb3ByaWF0ZSBlcnJvciB3aGVuIGdzdF9wYXJzZV9sYXVuY2goKSBpcyB1c2VkIGRlc3BpdGUgaXQgaGF2aW5nCgkgIGJlZW4gZGlzYWJsZWQgKCMzNDI1NjQpLgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1kaXNhYmxlZC5jOgoJICBNYWtlIHN1cmUgdGhlc2UgZnVuY3Rpb25zIGV4aXN0IGFuZCByZXR1cm4gTlVMTCBwbHVzIGEgR0Vycm9yIHdoZW4KCSAgLS1kaXNhYmxlLXBhcnNlIGlzIHVzZWQuCgoyMDA3LTA1LTA5IDEwOjAxOjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvYmVuY2htYXJrcy86IFNldCBhIGdvb2QgZXhhbXBsZSBhbmQgZG9uJ3QgbGVhayBtZXNzYWdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvYmVuY2htYXJrcy9jb21wbGV4aXR5LmM6IChtYWluKToKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL21hc3MtZWxlbWVudHMuYzogKG1haW4pOgoJICBTZXQgYSBnb29kIGV4YW1wbGUgYW5kIGRvbid0IGxlYWsgbWVzc2FnZXMuCgoyMDA3LTA1LTA2IDE4OjI3OjI1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzLzogQ29ycmVjdCBmaXh4cmVmcyBvcHRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIENvcnJlY3QgZml4eHJlZnMgb3B0aW9ucy4KCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmMgKGdzdF9jYXBzZmlsdGVyX2RldGFpbHMpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5oIChfX0dTVF9DQVBTRklMVEVSX0hfXywKCSAgR1NUX1RZUEVfQ0FQU0ZJTFRFUiwgR1NUX0NBUFNGSUxURVIsIEdTVF9DQVBTRklMVEVSX0NMQVNTLAoJICBHU1RfSVNfQ0FQU0ZJTFRFUiwgR1NUX0lTX0NBUFNGSUxURVJfQ0xBU1MsIEdzdENhcHNGaWx0ZXIsCgkgIEdzdENhcHNGaWx0ZXJDbGFzcywgX0dzdENhcHNGaWx0ZXIsIHRyYW5zLCBmaWx0ZXJfY2FwcywKCSAgX0dzdENhcHNGaWx0ZXJDbGFzcywgdHJhbnNfY2xhc3MpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYyAobmFtZSwgcmFuaywgdHlwZSwgX2VsZW1lbnRzKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmMKCSAgKGdzdF9pZGVudGl0eV9jaGVja19pbXBlcmZlY3RfdGltZXN0YW1wLAoJICBnc3RfaWRlbnRpdHlfY2hlY2tfaW1wZXJmZWN0X29mZnNldCk6CgkgIERvY3VtZW50IGNhcHNmaWx0ZXIgYW5kIGFkZCBkb2MtYmx1cmIgdG8gaWRlbnRpdHkuCgoyMDA3LTA1LTA0IDEyOjM3OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci86IERvbid0IGNyYXNoIGlmIHNvbWVvbmUgdHJpZXMgdG8gc2V0IGFuIGludGVycG9sYXRpb24gbW9kZSB0aGF0IGlzIGludmFsaWQgb3IgdGhhdCBpc24ndCBzdXBwb3J0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfc2V0X2ludGVycG9sYXRpb25fbW9kZSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIERvbid0IGNyYXNoIGlmIHNvbWVvbmUgdHJpZXMgdG8gc2V0IGFuIGludGVycG9sYXRpb24gbW9kZSB0aGF0CgkgIGlzIGludmFsaWQgb3IgdGhhdCBpc24ndCBzdXBwb3J0ZWQgeWV0LiBGaXhlcyAjNDIyMjk1LgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3VpdGUpOgoJICBBZGQgYSB0ZXN0IGNhc2UgZm9yIHRoZSBhYm92ZS4KCjIwMDctMDUtMDMgMTY6NDQ6MzQgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogUHJvcGVybHkgc2V0IHRoZSBsYXN0X3N0b3AgcG9zaXRpb24gb24gR3N0U2VnbWVudC4gVGhpcyB3aWxsIG9ubHkgaGFwcGVuIGlmIHRoZXJlIGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pOgoJICBQcm9wZXJseSBzZXQgdGhlIGxhc3Rfc3RvcCBwb3NpdGlvbiBvbiBHc3RTZWdtZW50LiBUaGlzIHdpbGwgb25seSBoYXBwZW4KCSAgaWYgdGhlcmUgaXMgYSBidWZmZXIgdG8gcHVzaCBvdXQuCgoyMDA3LTA1LTAzIDE0OjU4OjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IGFsd2F5c19pbl9wbGFjZSBkb2VzIG5vdCBtZWFuIHRoYXQgdGhlIHNpbmsgYW5kIHNvdXJjZSBjYXBzIGFyZSB0aGUgc2FtZSEgTWFrZSBzdXJlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIGFsd2F5c19pbl9wbGFjZSBkb2VzIG5vdCBtZWFuIHRoYXQgdGhlIHNpbmsgYW5kIHNvdXJjZSBjYXBzIGFyZSB0aGUKCSAgc2FtZSEgTWFrZSBzdXJlIHdlIGRvbid0IGJsaW5kbHkgcHJveHkgdGhlIGJ1ZmZlcl9hbGxvYyBpbiB0aGlzIGNhc2UuCgoyMDA3LTA1LTAzIDE0OjU0OjM0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQVBJOiBnc3RfYmFzZV9zcmNfcXVlcnlfbGF0ZW5jeSgpLiBBZGRlZCBtZXRob2Qgc28gdGhhdCBzdWJjbGFzc2VzIGNhbiBlYXNpbHkgZ2V0IHRoZSBsYXRlbmN5IHZhbHVlcyBvZiB0aGUgYmFzZSBzb3VyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcXVlcnlfbGF0ZW5jeSksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9xdWVyeSksIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgQVBJOiBnc3RfYmFzZV9zcmNfcXVlcnlfbGF0ZW5jeSgpLiBBZGRlZCBtZXRob2Qgc28gdGhhdCBzdWJjbGFzc2VzIGNhbgoJICBlYXNpbHkgZ2V0IHRoZSBsYXRlbmN5IHZhbHVlcyBvZiB0aGUgYmFzZSBzb3VyY2UgY2xhc3MuCgoyMDA3LTA1LTAzIDA5OjI0OjU4ICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYyAocHJpbnRfaW1wbGVtZW50YXRpb25faW5mbyk6IFJlbW92ZSAwLjggY3J1ZnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmMgKHByaW50X2ltcGxlbWVudGF0aW9uX2luZm8pOgoJICBSZW1vdmUgMC44IGNydWZ0LgoKMjAwNy0wNS0wMiAxNzowOTozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzLzogRG9uJ3QgY3JlYXRlIGEgY3VzdG9taXNlZCBtYW4gcGFnZSBiYXNlZCBvbiB0aGUgaG9zdCBhcmNoaXRlY3R1cmUsIGRlc2NyaWJlIHRoZSBkZWZhdWx0IHJlZ2lzdHJ5IHBhdGggZ2VuZXJpYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9NYWtlZmlsZS5hbToKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIERvbid0IGNyZWF0ZSBhIGN1c3RvbWlzZWQgbWFuIHBhZ2UgYmFzZWQgb24gdGhlIGhvc3QgYXJjaGl0ZWN0dXJlLAoJICBkZXNjcmliZSB0aGUgZGVmYXVsdCByZWdpc3RyeSBwYXRoIGdlbmVyaWNhbGx5LiBUaGF0IHdheSB0aGUgbWFuCgkgIHBhZ2UgaXMgdGhlIHNhbWUgZm9yIGFsbCBhcmNoaXRlY3R1cmVzIGFuZCBwYWNrYWdlcnMgaGF2ZSBvbmUKCSAgbXVsdGlsaWIgaXNzdWUgbGVzcyB0byBkZWFsIHdpdGguIEZpeGVzICM0MzQ5MjYuCgoyMDA3LTA1LTAyIDE1OjE0OjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBGaXggZG9jdW1lbnRhdGlvbiBhcyBzcG90dGVkIGJ5IHJnIG9uIElSQy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOgoJICBGaXggZG9jdW1lbnRhdGlvbiBhcyBzcG90dGVkIGJ5IHJnIG9uIElSQy4KCjIwMDctMDQtMjkgMTc6MzY6MTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R1dGlscy5jOiBJbXByb3ZlIGRvY3MgZm9yIGdzdF9lbGVtZW50X3tsaW5rLHVubGlua30uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBJbXByb3ZlIGRvY3MgZm9yIGdzdF9lbGVtZW50X3tsaW5rLHVubGlua30uCgoyMDA3LTA0LTI5IDE0OjA0OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZG9jcy9SRUFETUU6CgkgIHVwZGF0ZSBSRUFETUUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBSRUFETUUKCjIwMDctMDQtMjggMTE6Mjk6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBUeXBvIGZpeGVzOyBtaW5vciBkb2NzIGFkZGl0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdHVyaS5jOgoJICAqIGdzdC9nc3R1cmkuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIFR5cG8gZml4ZXM7IG1pbm9yIGRvY3MgYWRkaXRpb24uCgoyMDA3LTA0LTI3IDA4OjMwOjU5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBBUEk6IEFkZCBnc3RfdXJpX3Byb3RvY29sX2lzX3N1cHBvcnRlZCgpLCB3aGljaCBjaGVja3MgaWYgYW4gc2luayBvciBzcmMgdGhhdCBzdXBwb3J0cyBhIGdpdmVuIFVSSSBwcm90b2NvbCBleGlzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHVyaS5jOiAoZ2V0X2VsZW1lbnRfZmFjdG9yaWVzX2Zyb21fdXJpX3Byb3RvY29sKSwKCSAgKGdzdF91cmlfcHJvdG9jb2xfaXNfc3VwcG9ydGVkKSwgKGdzdF9lbGVtZW50X21ha2VfZnJvbV91cmkpOgoJICAqIGdzdC9nc3R1cmkuaDoKCSAgQVBJOiBBZGQgZ3N0X3VyaV9wcm90b2NvbF9pc19zdXBwb3J0ZWQoKSwgd2hpY2ggY2hlY2tzIGlmIGFuIHNpbmsKCSAgb3Igc3JjIHRoYXQgc3VwcG9ydHMgYSBnaXZlbiBVUkkgcHJvdG9jb2wgZXhpc3RzLgoKMjAwNy0wNC0yNyAwNzozNDoxMCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IFNldCB0aGUgbG9jYXRpb24gdG8gTlVMTCBpZiAiZmlsZTovLyIgaXMgc2V0IGFzIFVSSS4gT3RoZXJ3aXNlIHNvbWUgcmFuZG9tIHByZXZpb3VzIFVSSSB3b3VsZCBzdGlsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfdXJpX3NldF91cmkpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX3VyaV9zZXRfdXJpKToKCSAgU2V0IHRoZSBsb2NhdGlvbiB0byBOVUxMIGlmICJmaWxlOi8vIiBpcyBzZXQgYXMgVVJJLiBPdGhlcndpc2UKCSAgc29tZSByYW5kb20gcHJldmlvdXMgVVJJIHdvdWxkIHN0aWxsIGJlIHNldCBpZiAiZmlsZTovLyIgaXMKCSAgc2V0IG9uIGFuIGFscmVhZHkgdXNlZCBmaWxlc2luay9maWxlc3JjLgoKMjAwNy0wNC0yNyAwNzoyNzozNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IFNwZWNpYWwgY2FzZSB0aGUgImZpbGU6Ly8iIFVSSSBhcyBhcyB0aGlzIGlzIHVzZWQgYnkgc29tZSBhcHBsaWNhdGlvbnMgdG8gdGVzdCB3aXRoIGdzdF9lbGVtZW50X21hLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfdXJpX3NldF91cmkpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX3VyaV9zZXRfdXJpKToKCSAgU3BlY2lhbCBjYXNlIHRoZSAiZmlsZTovLyIgVVJJIGFzIGFzIHRoaXMgaXMgdXNlZCBieSBzb21lCgkgIGFwcGxpY2F0aW9ucyB0byB0ZXN0IHdpdGggZ3N0X2VsZW1lbnRfbWFrZV9mcm9tX3VyaSBpZiB0aGVyZSdzCgkgIGFuIGVsZW1lbnQgdGhhdCBzdXBwb3J0cyB0aGUgVVJJIHByb3RvY29sLgoJICBBbHNvIG1vdmUgdGhlIGdfcGF0aF9pc19hYnNvbHV0ZSgpIGNoZWNrIGZvciB0aGUgbG9jYXRpb24gcGFydAoJICBvZiB0aGUgVVJJIHRvIGFsc28gY2hlY2sgdGhpcyBmb3IgImZpbGU6Ly9sb2NhbGhvc3QvYmxhIiBVUklzLgoKMjAwNy0wNC0yNiAxMDowMDo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIGdzdF9idWZmZXJfdHJ5X25ld19hbmRfYWxsb2MoKSBwbHVzIHVuaXQgdGVzdCAoIzQzMTk0MCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl90cnlfbmV3X2FuZF9hbGxvYyk6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9idWZmZXJfc3VpdGUpOgoJICBBUEk6IGFkZCBnc3RfYnVmZmVyX3RyeV9uZXdfYW5kX2FsbG9jKCkgcGx1cyB1bml0IHRlc3QgKCM0MzE5NDApLgoKMjAwNy0wNC0yNiAwNzozMjowOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lio6IEltcGxlbWVudCBuby1tbWFwIGFsdGVybmF0aXZlIGZvciByZWdpc3RyeSByZWFkaW5nLiBEbyBjb2RlIGNsZWFudXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGVfY2FjaGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgIEltcGxlbWVudCBuby1tbWFwIGFsdGVybmF0aXZlIGZvciByZWdpc3RyeSByZWFkaW5nLiBEbyBjb2RlIGNsZWFudXBzLgoJICBBZGQgbW9yZSBjb21tZW50cyBhYm91dCBhdm9pZGluZyBzdHJkdXBzIGZvciBhbGwgdGV4dCBkYXRhLiBDb21tZW50cwoJICB3ZWxjb21lLgoKMjAwNy0wNC0yNSAxMjozMDoyNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmggKEdzdEJpbmFyeVBsdWdpbkVsZW1lbnQsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oIChHc3RCaW5hcnlQbHVnaW5FbGVtZW50LAoJICBHc3RCaW5hcnlQbHVnaW5GZWF0dXJlLCBfR3N0QmluYXJ5RWxlbWVudEZhY3RvcnksIHBsdWdpbl9mZWF0dXJlLAoJICBHc3RCaW5hcnlFbGVtZW50RmFjdG9yeSwgX0dzdEJpbmFyeVR5cGVGaW5kRmFjdG9yeSwgcGx1Z2luX2ZlYXR1cmUpOgoJICBDb21tZW50IHN0cnVjdHMgYW5kIHJlZm9ybWF0IHRvIGZpeCB0aGUgYnVpbGQgKHRoYXQgc3R1ZmYgc2hvdWxkIGdvCgkgIGludG8gYSBwcml2LiBoZWFkZXIpLgoKMjAwNy0wNC0yNSAxMTo0NDoyOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lio6IFJlZmFjdG9yIHNvIHRoYXQgd2UgY2FuIGltcGxlbWVudCBtdWx0aXBsZSBmZWF0dXJlcy4gQWRkIHN1cHBvcnQgZm9yCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX2ZlYXR1cmUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICBSZWZhY3RvciBzbyB0aGF0IHdlIGNhbiBpbXBsZW1lbnQgbXVsdGlwbGUgZmVhdHVyZXMuIEFkZCBzdXBwb3J0IGZvcgoJICBUeXBlRmluZEZhY3RvcnkgZmVhdHVyZXMuCgoyMDA3LTA0LTI0IDA2OjE0OjM1ICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPFBldGVyLktqZWxsZXJzdGVkdEBheGlzLmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogRml4IEFNX0NPTkRJVElPTkFMKEdTVF9ESVNBQkxFX0dTVF9ERUJVRywuLi4pIGFuZCB1cGRhdGUgY29tbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgPFBldGVyLktqZWxsZXJzdGVkdEBheGlzLmNvbT4KCSAgKiBjb25maWd1cmUuYWM6CgkgIEZpeCBBTV9DT05ESVRJT05BTChHU1RfRElTQUJMRV9HU1RfREVCVUcsLi4uKSBhbmQgdXBkYXRlIGNvbW1lbnQuCgoyMDA3LTA0LTIzIDA3OjMwOjM4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IEZpeCBidWlsZCB3aXRoIC0tZ3N0LWRpc2FibGUtZ3N0LWRlYnVnCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpLAoJICAoaXRlcmF0b3JfYWN0aXZhdGVfZm9sZF93aXRoX3Jlc3luYyksIChnc3RfYmluX2NvbnRpbnVlX2Z1bmMpLAoJICAoYmluX2hhbmRsZV9hc3luY19kb25lKSwgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIEZpeCBidWlsZCB3aXRoIC0tZ3N0LWRpc2FibGUtZ3N0LWRlYnVnCgoyMDA3LTA0LTIxIDEzOjI3OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IE1ha2Ugc3VyZSBzdHJlYW1pbmcgaGFzIGZpbmlzaGVkIGJlZm9yZSBjYWxsaW5nIHRoZSA6OnN0b3AoKSB2ZnVuYywgc2luY2UgdGhhdCB2ZnVuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2FjdGl2YXRlKToKCSAgTWFrZSBzdXJlIHN0cmVhbWluZyBoYXMgZmluaXNoZWQgYmVmb3JlIGNhbGxpbmcgdGhlIDo6c3RvcCgpIHZmdW5jLAoJICBzaW5jZSB0aGF0IHZmdW5jIG1pZ2h0IGNsZWFyIHN0YXRlIHdoaWNoIGlzIGJlaW5nIHVzZWQgaW4gdGhlCgkgIHN0cmVhbWluZyB0aHJlYWQuIFRoaXMgZml4ZXMgYSByYWNlIHRoYXQgY2F1c2VkIGNyYXNoZXMgaW4KCSAgYXVkaW9yZXNhbXBsZSB3aGVuIHNodXR0aW5nIGRvd24gYSBwaXBlbGluZSAoIzQyMDEwNikuCgoyMDA3LTA0LTIwIDA4OjUzOjQxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBUaGF0IHdhcyBvbmUgYnl0ZSBtaXNzaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBUaGF0IHdhcyBvbmUgYnl0ZSBtaXNzaW5nLgoKMjAwNy0wNC0yMCAwODozOTozNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgMm5kIGF0dGVtcHQgdG8gaGF2ZSBhIHhtbC1sZXNzIGJ1aWxkIGFzIGEgam9pbmVkIGVmZm9ydCBvZiAjNDEzMTIzIGFuZCAjNDIxNDgwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfY2xhc3NfaW5pdCksCgkgIChnc3Rfc2lnbmFsX29iamVjdF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIDJuZCBhdHRlbXB0IHRvIGhhdmUgYSB4bWwtbGVzcyBidWlsZCBhcyBhIGpvaW5lZCBlZmZvcnQgb2YgIzQxMzEyMwoJICBhbmQgIzQyMTQ4MC4KCjIwMDctMDQtMjAgMDg6MjE6MTkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LXRhZ3JlYWRpbmcudHh0OiBBZGRlZCBvcGVuIGlzc3Vlcy90aG91Z2h0cyB0byBkcmFmdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtdGFncmVhZGluZy50eHQ6CgkgIEFkZGVkIG9wZW4gaXNzdWVzL3Rob3VnaHRzIHRvIGRyYWZ0LgoKMjAwNy0wNC0xOSAxNDozMjo0OSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L3BhcnNlLzogVXBkYXRlIHRoZSBwcmVidWlsZCBwYXJzZXIgc291cmNlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIudGFiLnByZS5jOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnRhYi5wcmUuaDoKCSAgKiBnc3QvcGFyc2UvbGV4Ll9nc3RfcGFyc2VfeXkucHJlLmM6CgkgIFVwZGF0ZSB0aGUgcHJlYnVpbGQgcGFyc2VyIHNvdXJjZXMuCgoyMDA3LTA0LTE5IDE0OjIzOjI1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvcGFyc2UvTWFrZWZpbGUuYW06IEFuZCBub3cgZml4IHRoZSBidWlsZGluZyBvZiB0aGUgZmxleCBzb3VyY2VzLiBOb3cgZXZlcnl0aGluZyBzaG91bGQgd29yayBhcyBleHBlY3RlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBBbmQgbm93IGZpeCB0aGUgYnVpbGRpbmcgb2YgdGhlIGZsZXggc291cmNlcy4gTm93IGV2ZXJ5dGhpbmcgc2hvdWxkCgkgIHdvcmsgYXMgZXhwZWN0ZWQuCgoyMDA3LTA0LTE5IDE0OjA2OjUyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvcGFyc2UvTWFrZWZpbGUuYW06IE5vdyBob3BlZnVsbHkgZml4IHRoZSBidWlsZCBmYWlsdXJlcyBieSBzZXR0aW5nIHByb3BlciBydWxlIGRlcGVuZGVuY2llcyBhbmQgbW92aW5nIGluc3RlYWQgb2YuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBOb3cgaG9wZWZ1bGx5IGZpeCB0aGUgYnVpbGQgZmFpbHVyZXMgYnkgc2V0dGluZyBwcm9wZXIgcnVsZQoJICBkZXBlbmRlbmNpZXMgYW5kIG1vdmluZyBpbnN0ZWFkIG9mIGNvcHlpbmcuCgoyMDA3LTA0LTE5IDEwOjQzOjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9iZW5jaG1hcmtzLzogVG90YWwgbGljZW5zaWZpY2F0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbXBsZXhpdHkuZ251cGxvdDoKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbXBsZXhpdHkuc2NtOgoJICAqIHRlc3RzL2JlbmNobWFya3MvbWFzcy1lbGVtZW50cy5nbnVwbG90OgoJICAqIHRlc3RzL2JlbmNobWFya3MvbWFzcy1lbGVtZW50cy5zY206CgkgIFRvdGFsIGxpY2Vuc2lmaWNhdGlvbi4KCjIwMDctMDQtMTkgMTA6MjI6MjkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9wYXJzZS9NYWtlZmlsZS5hbTogRml4IHRoZSBidWlsZCBieSBjb3JyZWN0aW5nIHRoZSBydWxlIHRoYXQgZ2F2ZSB3cm9uZyBmaWxlcyB0byBmbGV4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIEZpeCB0aGUgYnVpbGQgYnkgY29ycmVjdGluZyB0aGUgcnVsZSB0aGF0IGdhdmUgd3JvbmcgZmlsZXMgdG8gZmxleC4KCjIwMDctMDQtMTkgMDg6NDA6MzMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2JlbmNobWFya3MvOiBDaGFuZ2UgbGljZW5jZSB0byBMR1BMIGFzIGdyYW50ZWQgYnkgQmVuamFtaW4gYW5kIEFuZHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2JlbmNobWFya3MvY29tcGxleGl0eS5jOgoJICAqIHRlc3RzL2JlbmNobWFya3MvbWFzcy1lbGVtZW50cy5jOgoJICBDaGFuZ2UgbGljZW5jZSB0byBMR1BMIGFzIGdyYW50ZWQgYnkgQmVuamFtaW4gYW5kIEFuZHkuCgoyMDA3LTA0LTE5IDA2OjE4OjI0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvcGFyc2UvTWFrZWZpbGUuYW06IEFkZCBjb3JyZWN0IGdyYW1tYXIudGFiLmggZGVwZW5kZW5jeSBpZiBjb21waWxpbmcgd2l0aG91dCBuZXcgZW5vdWdoIGZsZXguIEZpeGVzICM0MzExNTAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgQWRkIGNvcnJlY3QgZ3JhbW1hci50YWIuaCBkZXBlbmRlbmN5IGlmIGNvbXBpbGluZyB3aXRob3V0IG5ldyBlbm91Z2gKCSAgZmxleC4gRml4ZXMgIzQzMTE1MC4KCjIwMDctMDQtMTggMTM6MzQ6NDggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9wYXJzZS9NYWtlZmlsZS5hbTogRml4IHR5cG8gYW5kIHVzZSBvdXRkYXRlZCBzb3VyY2VzIGlmIHRoZSBmbGV4L2Jpc29uIHNvdXJjZXMgYXJlIG5ld2VyIHRoYW4gdGhlIHByZWdlbmVyYXRlZCBvbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIEZpeCB0eXBvIGFuZCB1c2Ugb3V0ZGF0ZWQgc291cmNlcyBpZiB0aGUgZmxleC9iaXNvbiBzb3VyY2VzIGFyZSBuZXdlcgoJICB0aGFuIHRoZSBwcmVnZW5lcmF0ZWQgb25lcyBidXQgZmxleCBpcyB0b28gb2xkLiBQcmludCBhIHdhcm5pbmcgaW4KCSAgdGhhdCBjYXNlLiBUaGlzIHNob3VsZCBmaXggdGhlIGJ1aWxkIG9uIHRoZSBidWlsZCBib3QuCgoyMDA3LTA0LTE4IDEyOjM0OjUxICswMDAwICBNYXJjLUFuZHJlIEx1cmVhdSA8bWFyY2FuZHJlLmx1cmVhdUBnbWFpbC5jb20+CgoJICBnc3QvcGFyc2UvOiBNYWtlIHRoZSBwYXJzZXIgcmVlbnRyYW50IGFuZCByZWN1cnNpdmVseSBjYWxsYWJsZS4gVGhpcyByZXF1aXJlcyBmbGV4ID49IDIuNS4zMSwgZm9yIG9sZGVyIHZlcnNpb25zIHByZWcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJjLUFuZHJlIEx1cmVhdSA8bWFyY2FuZHJlIGRvdCBsdXJlYXUgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgKiBnc3QvcGFyc2UvcGFyc2UubDoKCSAgTWFrZSB0aGUgcGFyc2VyIHJlZW50cmFudCBhbmQgcmVjdXJzaXZlbHkgY2FsbGFibGUuIFRoaXMgcmVxdWlyZXMgZmxleAoJICA+PSAyLjUuMzEsIGZvciBvbGRlciB2ZXJzaW9ucyBwcmVnZW5lcmF0ZWQgc291cmNlcyBhcmUgdXNlZCBhcyB3ZQoJICBjYW4ndCBidW1wIHRoZSBidWlsZCBkZXBlbmRlbmN5LiBGaW5hbGx5IGZpeGVzICMzNDkxODAuCgkgICogZ3N0L2dzdHBhcnNlLmM6IChnc3RfcGFyc2VfbGF1bmNoKToKCSAgRHJvcCB0aGUgSEFWRV9NVF9TQVZFX0ZMRVggI2lmZGVmcyBhcyB3ZSBhbHdheXMgdXNlIGEgbmV3IGVub3VnaCBmbGV4CgkgIG5vdyBhbnl3YXkuCgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIudGFiLnByZS5jOiAoX19nc3RfcGFyc2Vfc3RyZHVwKSwKCSAgKF9fZ3N0X3BhcnNlX3N0cmZyZWUpLCAoX19nc3RfcGFyc2VfbGlua19uZXcpLAoJICAoX19nc3RfcGFyc2VfbGlua19mcmVlKSwgKF9fZ3N0X3BhcnNlX2NoYWluX25ldyksCgkgIChfX2dzdF9wYXJzZV9jaGFpbl9mcmVlKSwgKFNFVF9FUlJPUiksIChZWVBSSU5URiksCgkgIChnc3RfcGFyc2VfZWxlbWVudF9zZXQpLCAoZ3N0X3BhcnNlX2ZyZWVfbGluayksCgkgIChnc3RfcGFyc2VfZm91bmRfcGFkKSwgKGdzdF9wYXJzZV9wZXJmb3JtX2RlbGF5ZWRfbGluayksCgkgIChnc3RfcGFyc2VfcGVyZm9ybV9saW5rKSwgKHl5dG5hbWVyciksICh5eXN5bnRheF9lcnJvciksICh5eWVycm9yKSwKCSAgKF9nc3RfcGFyc2VfbGF1bmNoKToKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci50YWIucHJlLmg6CgkgICogZ3N0L3BhcnNlL2xleC5fZ3N0X3BhcnNlX3l5LnByZS5jOiAoUFJJTlQpLCAoeXlfZ2V0X25leHRfYnVmZmVyKSwKCSAgKHl5X2dldF9wcmV2aW91c19zdGF0ZSksICh5eV90cnlfTlVMX3RyYW5zKSwgKGlucHV0KSwKCSAgKF9nc3RfcGFyc2VfeXlyZXN0YXJ0KSwgKF9nc3RfcGFyc2VfeXlfc3dpdGNoX3RvX2J1ZmZlciksCgkgIChfZ3N0X3BhcnNlX3l5X2xvYWRfYnVmZmVyX3N0YXRlKSwgKF9nc3RfcGFyc2VfeXlfY3JlYXRlX2J1ZmZlciksCgkgIChfZ3N0X3BhcnNlX3l5X2RlbGV0ZV9idWZmZXIpLCAoX2dzdF9wYXJzZV95eV9pbml0X2J1ZmZlciksCgkgIChfZ3N0X3BhcnNlX3l5X2ZsdXNoX2J1ZmZlciksIChfZ3N0X3BhcnNlX3l5cHVzaF9idWZmZXJfc3RhdGUpLAoJICAoX2dzdF9wYXJzZV95eXBvcF9idWZmZXJfc3RhdGUpLAoJICAoX2dzdF9wYXJzZV95eWVuc3VyZV9idWZmZXJfc3RhY2spLCAoX2dzdF9wYXJzZV95eV9zY2FuX2J1ZmZlciksCgkgIChfZ3N0X3BhcnNlX3l5X3NjYW5fc3RyaW5nKSwgKF9nc3RfcGFyc2VfeXlfc2Nhbl9ieXRlcyksCgkgICh5eV9mYXRhbF9lcnJvciksIChfZ3N0X3BhcnNlX3l5Z2V0X2V4dHJhKSwKCSAgKF9nc3RfcGFyc2VfeXlnZXRfbGluZW5vKSwgKF9nc3RfcGFyc2VfeXlnZXRfY29sdW1uKSwKCSAgKF9nc3RfcGFyc2VfeXlnZXRfaW4pLCAoX2dzdF9wYXJzZV95eWdldF9vdXQpLAoJICAoX2dzdF9wYXJzZV95eWdldF9sZW5nKSwgKF9nc3RfcGFyc2VfeXlnZXRfdGV4dCksCgkgIChfZ3N0X3BhcnNlX3l5c2V0X2V4dHJhKSwgKF9nc3RfcGFyc2VfeXlzZXRfbGluZW5vKSwKCSAgKF9nc3RfcGFyc2VfeXlzZXRfY29sdW1uKSwgKF9nc3RfcGFyc2VfeXlzZXRfaW4pLAoJICAoX2dzdF9wYXJzZV95eXNldF9vdXQpLCAoX2dzdF9wYXJzZV95eWdldF9kZWJ1ZyksCgkgIChfZ3N0X3BhcnNlX3l5c2V0X2RlYnVnKSwgKF9nc3RfcGFyc2VfeXlnZXRfbHZhbCksCgkgIChfZ3N0X3BhcnNlX3l5c2V0X2x2YWwpLCAoX2dzdF9wYXJzZV95eWxleF9pbml0KSwKCSAgKHl5X2luaXRfZ2xvYmFscyksIChfZ3N0X3BhcnNlX3l5bGV4X2Rlc3Ryb3kpLCAoeXlfZmxleF9zdHJuY3B5KSwKCSAgKHl5X2ZsZXhfc3RybGVuKSwgKF9nc3RfcGFyc2VfeXlhbGxvYyksIChfZ3N0X3BhcnNlX3l5cmVhbGxvYyksCgkgIChfZ3N0X3BhcnNlX3l5ZnJlZSk6CgkgIElmIHRoZSBpbnN0YWxsZWQgZmxleCB2ZXJzaW9uIGlzIHRvbyBvbGQgdXNlIHByZS1nZW5lcmF0ZWQgcGFyc2VyCgkgIHNvdXJjZXMuIFRoZXNlIHByZS1nZW5lcmF0ZWQgcGFyc2VyIHNvdXJjZXMgYXJlIGFsd2F5cyB1cGRhdGVkIHdoZW4KCSAgdGhlIGFjdHVhbCBmbGV4L2Jpc29uIHNvdXJjZXMgY2hhbmdlIGJ1dCByZXF1aXJlIGV2ZXJ5Ym9keSB3aG8gd2FudHMKCSAgdG8gY2hhbmdlIHNvbWV0aGluZyBpbiB0aGUgcGFyc2VyIHRvIGhhdmUgZmxleCA+PSAyLjUuMzEgaW5zdGFsbGVkLgoKMjAwNy0wNC0xOCAxMDo1ODozMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgTWFrZSAtLWRpc2FibGUtbmxzIHRvIHdvcmsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29tbW9uL200L2dzdC1nZXR0ZXh0Lm00OgoJICAqIGdzdC9nc3QtaTE4bi1saWIuaDoKCSAgTWFrZSAtLWRpc2FibGUtbmxzIHRvIHdvcmsKCjIwMDctMDQtMTcgMTY6MTI6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y29uZmlnLmguaW46IFJldmVydCBwcmV2aW91cyBjaGFuZ2UgdGhhdCBicm9rZSB0aGUgYnVpbGQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgUmV2ZXJ0IHByZXZpb3VzIGNoYW5nZSB0aGF0IGJyb2tlIHRoZSBidWlsZC4KCjIwMDctMDQtMTcgMTQ6MzY6MzUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBNQU5QQVRIIGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTUFOUEFUSCBmaXgKCjIwMDctMDQtMTcgMTA6NDY6NDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIERyb3AgbGlieG1sMiBkZXBlbmRlbmN5IHdoZW4gYnVpbGRpbmcgd2l0aAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgRHJvcCBsaWJ4bWwyIGRlcGVuZGVuY3kgd2hlbiBidWlsZGluZyB3aXRoCgkgIC0tZW5hYmxlLWJpbmFyeS1yZWdpc3RyeSAtLWRpc2FibGUtbG9hZHNhdmUKCjIwMDctMDQtMTYgMjE6NDE6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0cmVhbWVyLmRvYXA6CgkgIGZpeCB0aGUgcmVsZWFzZSBkYXRlIGluIHRoZSBkb2FwIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCB0aGUgcmVsZWFzZSBkYXRlIGluIHRoZSBkb2FwIGZpbGUKCjIwMDctMDQtMTYgMTk6NDU6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuKjogUmVtb3ZlIHVubmVjZXNzYXJ5IDxzeXMvbW1hbi5oPiBpbmNsdWRlIHdoaWNoIGJyb2tlIHRoZSB3aW4zMiBidWlsZCB3aXRoIE1pbmdXOyBtb3ZlIGluY2x1ZGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlX2NhY2hlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgIFJlbW92ZSB1bm5lY2Vzc2FyeSA8c3lzL21tYW4uaD4gaW5jbHVkZSB3aGljaCBicm9rZSB0aGUgd2luMzIgYnVpbGQKCSAgd2l0aCBNaW5nVzsgbW92ZSBpbmNsdWRlcyBmcm9tIGhlYWRlciBmaWxlIHRvIC5jIGZpbGUsIGV2ZW4gaWYgdGhlCgkgIGhlYWRlciBmaWxlIGlzbid0IGluc3RhbGxlZDsgdXNlIGdfc3RyZXJyb3IoKSB3aGVyZSBVVEYtOCBzdHJpbmdzCgkgIGFyZSBleHBlY3RlZCwgc3VjaCBhcyBpbiBHU1RfREVCVUcgbWVzc2FnZXMuCgoyMDA3LTA0LTEzIDE1OjE1OjUwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IFJlbW92ZSBib2d1cyBhZGRpdGlvbiBmb3IgQVBJIEkgZGlkbid0IGVuZCB1cCBrZWVwaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBSZW1vdmUgYm9ndXMgYWRkaXRpb24gZm9yIEFQSSBJIGRpZG4ndCBlbmQgdXAga2VlcGluZy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgTWVudGlvbiBTaW5jZTogMC4xMC4xMyBpbiB0aGUgZG9jdW1lbnRhdGlvbi4KCSAgQWRkIHRoZSBBUEkga2V5d29yZCB0byB0aGUgcHJldmlvdXMgQ2hhbmdlTG9nIGVudHJ5LgoKMjAwNy0wNC0xMyAxNDoxODo0NCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBBbGxvdyBiYXNlc3JjIGRlcml2ZWQgY2xhc3NlcyB0byBleGVjdXRlIHNlZWtzIGluIG90aGVyIGZvcm1hdHMgYnkgcHJvdmlkaW5nIGEgcHJlcGFyZV9zZWVrX3NlZ21lbnQgdm1ldGhvZC4gU3ViLWNsYXMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X3ByZXBhcmVfc2Vla19zZWdtZW50KSwKCSAgKGdzdF9iYXNlX3NyY19wcmVwYXJlX3NlZWtfc2VnbWVudCksIChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgQWxsb3cgYmFzZXNyYyBkZXJpdmVkIGNsYXNzZXMgdG8gZXhlY3V0ZSBzZWVrcyBpbiBvdGhlciBmb3JtYXRzCgkgIGJ5IHByb3ZpZGluZyBhIHByZXBhcmVfc2Vla19zZWdtZW50IHZtZXRob2QuIFN1Yi1jbGFzc2VzIGNhbiBjaG9vc2UKCSAgdG8gcHJlcGFyZSB0aGUgR3N0U2VnbWVudCBpbiBhbnkgZm9ybWF0IHRoYXQgdGhlaXIgcGVyZm9ybV9zZWVrIG1ldGhvZAoJICB3aWxsIGJlIGFibGUgdG8gdW5kZXJzdGFuZC4gVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gcHJvdmlkZXMgdGhlCgkgIG9sZCBiZWhhdmlvdXIgb2YgYXR0ZW1wdGluZyB0byBjb252ZXJ0IHRoZSBzZWVrIG9mZnNldHMgdG8gdGhlCgkgIGNvbmZpZ3VyZWQgbmF0aXZlIGZvcm1hdC4KCjIwMDctMDQtMTMgMTE6NTM6MDAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogRG9uJ3Qgb3V0cHV0IHRoZSBzYW1lIGRlYnVnIHN0YXRlbWVudCB0d2ljZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKToKCSAgRG9uJ3Qgb3V0cHV0IHRoZSBzYW1lIGRlYnVnIHN0YXRlbWVudCB0d2ljZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogKGdzdF9hZGFwdGVyX3RyeV90b19tZXJnZV91cCksCgkgIChnc3RfYWRhcHRlcl9wZWVrKSwgKGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyKToKCSAgT3B0aW1pc2UgdGhlIGNhc2Ugd2hlcmUgd2UgaGF2ZSBidWZmZXJzIGF0IHRoZSBoZWFkIG9mIHRoZSBxdWV1ZSB0aGF0CgkgIGNhbiBiZSBqb2luZWQgcXVpY2tseSAoYmVjYXVzZSB0aGV5J3JlIGNvbnRpZ3VvdXMgc3ViLWJ1ZmZlcnMpIGJ5CgkgIG1lcmdpbmcgdGhlbSB0b2dldGhlciByYXRoZXIgdGhhbiBjb3B5aW5nIGRhdGEgb3V0IGludG8gbmV3IG1lbW9yeS4KCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgRml4IGEgbGVhayBpbiBhbiBlcnJvciBwYXRoIGZvciBwYXJzZV9sYXVuY2gsIGFuZCBhZGQgYSBjaGVjawoJICBmb3IgaXQgdG8gdGhlIHRlc3RzdWl0ZS4KCjIwMDctMDQtMTMgMTE6MjA6NDggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IERvbid0IGRlYWRsb2NrIHdoZW4gcmVsZWFzaW5nIGEgcGFkIC0gZ3N0X3BhZF9zZXRfYWN0aXZlIG1heSB0cnkgYW5kIHRha2UgdGhlIG11bHRpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX3JlbGVhc2VfcGFkKToKCSAgRG9uJ3QgZGVhZGxvY2sgd2hlbiByZWxlYXNpbmcgYSBwYWQgLSBnc3RfcGFkX3NldF9hY3RpdmUgbWF5IHRyeQoJICBhbmQgdGFrZSB0aGUgbXVsdGlxdWV1ZSBsb2NrIHRvby4KCjIwMDctMDQtMTIgMTI6NTk6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZXJyb3IuKjogQVBJOiBhZGQgR1NUX0NPUkVfRVJST1JfRElTQUJMRUQgKCMzOTI4MDQpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzogKF9nc3RfY29yZV9lcnJvcnNfaW5pdCk6CgkgICogZ3N0L2dzdGVycm9yLmg6CgkgIEFQSTogYWRkIEdTVF9DT1JFX0VSUk9SX0RJU0FCTEVEICgjMzkyODA0KS4KCjIwMDctMDQtMTIgMTA6MzI6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBkb24ndCBnZXQgZW1wdHkgcGF0aHMgb24gdGhlIFBBVEggdmFyaWFibGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgZG9uJ3QgZ2V0IGVtcHR5IHBhdGhzIG9uIHRoZSBQQVRIIHZhcmlhYmxlcwoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9pc19hY3RpdmUsIGdzdF9wYWRfc2V0X2Jsb2NrZWRfYXN5bmMpOgoJICBEb24ndCBmb3JtYXQgZm9yIHRoZSB1bmNvbW1vbiB0ZXJtaW5hbCB3aWR0aCBvZiA4NCBjaGFyYWN0ZXJzLgoKMjAwNy0wNC0wOSAxMTo1OToyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIGJhY2sgdG8gaGVhZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBoZWFkCgoyMDA3LTA0LTA5IDA4OjE3OjEzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZG9uJ3QgZm9ybWF0IGZvciB0aGUgdW5jb21tb24gZWRpdG9yIHdpZHRoIG9mIDg0IGNoYXJhY3RlcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvbid0IGZvcm1hdCBmb3IgdGhlIHVuY29tbW9uIGVkaXRvciB3aWR0aCBvZiA4NCBjaGFyYWN0ZXJzCgoyMDA3LTA0LTA2IDExOjQ4OjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IE9ubHkgdHJ5IHRvIHNlbGVjdCBhIGRpZmZlcmVudCBwaXBlbGluZSBjbG9jayB3aGVuIHdlIHdlbnQgYmFjayB0bwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKHJlc2V0X3N0cmVhbV90aW1lKSwKCSAgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X3BpcGVsaW5lX3NldF9uZXdfc3RyZWFtX3RpbWUpOgoJICBPbmx5IHRyeSB0byBzZWxlY3QgYSBkaWZmZXJlbnQgcGlwZWxpbmUgY2xvY2sgd2hlbiB3ZSB3ZW50IGJhY2sgdG8KCSAgUEFVU0VEIGFuZCBub3Qgd2hlbiB3ZSBtZXJlbHkgZ290IGZsdXNoZWQuCgoyMDA3LTA0LTA1IDE2OjE3OjI0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICB0b29scy9nc3QtbGF1bmNoLjEuaW46IGZyYWN0aW9ucyBhcmUgYmV0dGVyIHN1cHBvcnRlZCBpbiBnc3RyZWFtZXIgdGhhbiByYWN0aW9ucywgc28gc3VnZ2VzdCB1c2luZyB0aG9zZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBmcmFjdGlvbnMgYXJlIGJldHRlciBzdXBwb3J0ZWQgaW4gZ3N0cmVhbWVyIHRoYW4gcmFjdGlvbnMsIHNvCgkgIHN1Z2dlc3QgdXNpbmcgdGhvc2UuCgoyMDA3LTA0LTA1IDEzOjQ5OjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL25sLnBvOgoJICB1cGRhdGUgZHV0Y2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBkdXRjaAoKMjAwNy0wNC0wNSAxMzo0Njo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwby86IEFkZGVkIERhbmlzaCB0cmFuc2xhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFN1Ym1pdHRlZCBieTogTW9nZW5zIEphZWdlciA8bW9nZW5zQGphZWdlci50Zj4KCSAgKiBwby9MSU5HVUFTOgoJICAqIHBvL2RhLnBvOgoJICBBZGRlZCBEYW5pc2ggdHJhbnNsYXRpb24uCgoyMDA3LTA0LTA1IDExOjE2OjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBGaXggbGVhayBjYXVzZWQgd2hlbiByZWZ1c2luZyBuZXdzZWdtZW50IGFmdGVyIEVPUy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICAoZ3N0X2Jhc2Vfc2lua19xdWV1ZV9vYmplY3RfdW5sb2NrZWQpLCAoZ3N0X2Jhc2Vfc2lua19ldmVudCk6CgkgIEZpeCBsZWFrIGNhdXNlZCB3aGVuIHJlZnVzaW5nIG5ld3NlZ21lbnQgYWZ0ZXIgRU9TLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfZmFrZV9zaW5rX2luaXQpLCAoZ3N0X2Zha2Vfc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Zha2Vfc2lua19nZXRfcHJvcGVydHkpLCAoZ3N0X2Zha2Vfc2lua19wcmVyb2xsKSwKCSAgKGdzdF9mYWtlX3NpbmtfcmVuZGVyKSwgKGdzdF9mYWtlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkgIEFkZCBudW0tYnVmZmVycyBwcm9wZXJ0eSB0byBtYWtlIHRoZSBlbGVtZW50IGdlbmVyYXRlIEVPUyBhZnRlciBhCgkgIGNvbmZpZ3VyYWJsZSBhbW91bnQgb2YgYnVmZmVycy4KCSAgQVBJOiBmYWtlc2luazo6bnVtLWJ1ZmZlcnMgcHJvcGVydHkuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGZha2VzaW5rX3N1aXRlKToKCSAgRml4IEdzdEJ1cyBsZWFrIGluIHRlc3QuCgkgIFRlc3QgZm9yIGZha2VzaW5rIG51bS1idWZmZXJzLgoKMjAwNy0wNC0wNSAxMDoxMDowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRG9uJ3QgYWNjZXB0IGFueXRoaW5nIGFmdGVyIGFuIEVPUywgcmV0dXJuIFVORVhQRUNURUQgaW5zdGVhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICAoZ3N0X2Jhc2Vfc2lua19xdWV1ZV9vYmplY3RfdW5sb2NrZWQpLCAoZ3N0X2Jhc2Vfc2lua19ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIERvbid0IGFjY2VwdCBhbnl0aGluZyBhZnRlciBhbiBFT1MsIHJldHVybiBVTkVYUEVDVEVEIGluc3RlYWQuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGZha2VzaW5rX3N1aXRlKToKCSAgVW5pdCB0ZXN0IGZvciBuZXcgRU9TIGJlaGF2aW91ci4KCjIwMDctMDQtMDUgMTA6MDg6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBNYWtlIHBhZHRlbXBsYXRlcyBhbHNvIHdvcmsgd2hlbiB0aGV5IGRvbid0IGNvbnRhaW4gJXMgb3IgJWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfcmVxdWVzdF9wYWQpOgoJICBNYWtlIHBhZHRlbXBsYXRlcyBhbHNvIHdvcmsgd2hlbiB0aGV5IGRvbid0IGNvbnRhaW4gJXMgb3IgJWQuCgoyMDA3LTA0LTA1IDEwOjA2OjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgSW1wcm92ZSBfYWRqdXN0X3VubG9ja2VkKCkgc28gdGhhdCBpdCBvdmVyZmxvd3MgbGVzcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19hZGp1c3RfdW5sb2NrZWQpLAoJICAoZ3N0X2Nsb2NrX3VuYWRqdXN0X3VubG9ja2VkKSwgKGdzdF9jbG9ja19zZXRfY2FsaWJyYXRpb24pOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBJbXByb3ZlIF9hZGp1c3RfdW5sb2NrZWQoKSBzbyB0aGF0IGl0IG92ZXJmbG93cyBsZXNzLgoJICBBZGQgZ3N0X2Nsb2NrX3VuYWRqdXN0X3VubG9ja2VkIHRvIGNvbnZlcnQgZnJvbSBleHRlcm5hbCB0aW1lIHRvCgkgIGludGVybmFsIHRpbWUgYmFzZWQgb24gY2FsaWJyYXRpb24uCgkgIEFkZCBzb21lIG1vcmUgZGVidWcuCgkgIEFQSTogR3N0Q2xvY2s6OmdzdF9jbG9ja191bmFkanVzdF91bmxvY2tlZCgpCgoyMDA3LTA0LTAzIDExOjAyOjQxICswMDAwICBUb21taSBNecO2aMOkbmVuIDxleHQtdG9tbWkubXlvaGFuZW5Abm9raWEuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IERlYWN0aXZhdGUgcGFkcyBhbmQgZnJlZSBHc3RTaW5nbGVRdWV1ZSB3aXRoIGdzdF9zaW5nbGVfcXVldWVfZnJlZSgpIHdoZW4gcmVsZWFzaW5nLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogVG9tbWkgTXnDtmjDpG5lbiA8ZXh0LXRvbW1pIGRvdCBteW9oYW5lbiBhdCBub2tpYSBkb3QgY29tPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX3JlbGVhc2VfcGFkKToKCSAgRGVhY3RpdmF0ZSBwYWRzIGFuZCBmcmVlIEdzdFNpbmdsZVF1ZXVlIHdpdGggZ3N0X3NpbmdsZV9xdWV1ZV9mcmVlKCkKCSAgd2hlbiByZWxlYXNpbmcgc2luayBwYWQuIEZpeGVzICM0MjU0MDAuCgoyMDA3LTA0LTAyIDE0OjQ4OjEyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljL2R5bmxpbmsudHh0OiBNb3JlIHdvcmsgb24gcHJvcG9zYWwgZm9yIG5ldyBjb3JlIGFwaS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9keW5saW5rLnR4dDoKCSAgTW9yZSB3b3JrIG9uIHByb3Bvc2FsIGZvciBuZXcgY29yZSBhcGkuCgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgQVBJOiBHU1RfQkFTRV9UUkFOU0ZPUk1fTE9DSy9VTkxPQ0sgYWRkZWQKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKG9uX29iamVjdF9jb250cm9sbGVkX3Byb3BlcnR5X2NoYW5nZWQpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3luY192YWx1ZXMpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc2V0X2ludGVycG9sYXRpb25fbW9kZSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgIExlc3MgdmVyYm9zZSBsb2dnaW5nIGFkZCBkb2NzIGZvciB1bmltcGxlbWVudGVkIHBhcnRzIGFuZCBjb3JyZWN0bHkKCSAgcmV0dXJuIHdoZW4gdXNpbmcgdW5hdmFpbGFibGUgcGFydHMuCgoyMDA3LTAzLTI5IDE2OjA0OjQ1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RjbG9jay5jOiBNb3ZlIGFsbCB0aGUgZGVidWcgdG8gdGhlIENMT0NLIGNhdGVnb3J5LCBhbmQgYXNzb2NpYXRlIGl0IHdpdGggdGhlIGNsb2NrIG9iamVjdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfc2V0X21hc3RlciksIChkb19saW5lYXJfcmVncmVzc2lvbik6CgkgIE1vdmUgYWxsIHRoZSBkZWJ1ZyB0byB0aGUgQ0xPQ0sgY2F0ZWdvcnksIGFuZCBhc3NvY2lhdGUgaXQgd2l0aAoJICB0aGUgY2xvY2sgb2JqZWN0LgoKMjAwNy0wMy0yOSAxNTo1MzowMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogTWFrZSB0YWtlX2J1ZmZlciBhIGJpdCBxdWlja2VyIGJ5IHJlbW92aW5nIHJlZHVuZGFudCBjaGVja3MgY2F1c2VkIGJ5IGNhbGxpbmcgZ3N0X2FkYXB0ZXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6IChnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcik6CgkgIE1ha2UgdGFrZV9idWZmZXIgYSBiaXQgcXVpY2tlciBieSByZW1vdmluZyByZWR1bmRhbnQgY2hlY2tzCgkgIGNhdXNlZCBieSBjYWxsaW5nIGdzdF9hZGFwdGVyX3Rha2UuCgoyMDA3LTAzLTI4IDE4OjM4OjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IERvbid0IGxlYWsgR0NvbmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X3NpbmdsZV9xdWV1ZV9mcmVlKToKCSAgRG9uJ3QgbGVhayBHQ29uZC4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzogKHNldHVwX211bHRpcXVldWUpLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAobXVsdGlxdWV1ZV9zdWl0ZSk6CgkgIEFkZCBzb21lIGRlYWQgc2ltcGxlIHVuaXQgdGVzdHMgZm9yIHRoZSAnbXVsdGlxdWV1ZScgZWxlbWVudAoJICAoc29tZSBiaXRzIGRvbid0IHdvcmsgeWV0IGFuZCBhcmUgZGlzYWJsZWQgZm9yIG5vdykuCgoyMDA3LTAzLTI4IDE4OjI1OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogTWFrZSBnc3RfZWxlbWVudF9nZXRfcmVxdWVzdF9wYWQoKSBjcmVhdGUgcmVxdWVzdCBwYWRzIG9ubHkgZm9yIHJlcXVlc3QgcGFkIHRlbXBsYXRlcyBhbmQgbm90IGZvciwgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfcmVxdWVzdF9wYWQpLAoJICAoZ3N0X2VsZW1lbnRfY2xhc3NfZ2V0X3JlcXVlc3RfcGFkX3RlbXBsYXRlKToKCSAgTWFrZSBnc3RfZWxlbWVudF9nZXRfcmVxdWVzdF9wYWQoKSBjcmVhdGUgcmVxdWVzdCBwYWRzIG9ubHkgZm9yCgkgIHJlcXVlc3QgcGFkIHRlbXBsYXRlcyBhbmQgbm90IGZvciwgc2F5LCBzb21ldGltZXMgcGFkIHRlbXBsYXRlcy4KCjIwMDctMDMtMjggMTM6NDQ6NDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDogQWRkIGV4YW1wbGUgdGhhdCBuZWVkcyBtb3JlIHRoaW5raW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkgIEFkZCBleGFtcGxlIHRoYXQgbmVlZHMgbW9yZSB0aGlua2luZy4KCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OgoJICBNb3JlIHRob3VnaHRzIGFib3V0IHd0cmFwcGVyIHBsdWdpbnMuCgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9lbWJlZGRlZC50eHQ6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9wcm9maWxpbmcudHh0OgoJICBNb3JlIGRlc2lnbiB3b3JrLgoKMjAwNy0wMy0yNSAxNTozMzozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBPbmx5IHB1c2ggdGhlIHNlZ21lbnQgZXZlbnRzIGluIHRoZSBQTEFZSU5HIHN0YXRlIGZvciBsaXZlIHNvdXJjZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCk6CgkgIE9ubHkgcHVzaCB0aGUgc2VnbWVudCBldmVudHMgaW4gdGhlIFBMQVlJTkcgc3RhdGUgZm9yIGxpdmUgc291cmNlcy4KCjIwMDctMDMtMjMgMTc6NTI6MTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IE1vZGlmeSB0aGUgY2xvY2sgZGlzdHJpYnV0aW9uIHBhdGggaW4gUEFVU0VELT5QTEFZSU5HIHNvIHRoYXQgd2UgbmV2ZXIgYXR0ZW1wdCB0byBjaG9vc2UgYSBuZXcgY2xvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6CgkgIE1vZGlmeSB0aGUgY2xvY2sgZGlzdHJpYnV0aW9uIHBhdGggaW4gUEFVU0VELT5QTEFZSU5HIHNvIHRoYXQgd2UKCSAgbmV2ZXIgYXR0ZW1wdCB0byBjaG9vc2UgYSBuZXcgY2xvY2sgdW5sZXNzIHdlJ3JlIGFjdHVhbGx5IGxlYXZpbmcKCSAgdGhlIFBBVVNFRCBzdGF0ZSBmb3IgdGhlIGZpcnN0IHRpbWUuIFRoaXMgcHJldmVudHMgY2hvb3NpbmcgYQoJICBkaWZmZXJlbnQgY2xvY2sgd2hlbiB0aGUgc3RhdGVfY2hhbmdlIGdldHMgY2FsbGVkIGZvciBhIDJuZCB0aW1lIGR1ZQoJICB0byBzb21lIGVsZW1lbnQgZG9pbmcgYW4gYXN5bmMgc3RhdGUgY2hhbmdlLgoKMjAwNy0wMy0yMiAxODoyODowMCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHBhZC5jOiBSZXZlcnQgbGFzdCBjb21taXQuIFRoaXMgbmVlZHMgc29tZSBtb3JlIHRob3VnaHRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9jYXBzKSwgKGdzdF9wYWRfY29uZmlndXJlX3NpbmspLAoJICAoZ3N0X3BhZF9jb25maWd1cmVfc3JjKSwgKGdzdF9wYWRfYWxsb2NfYnVmZmVyX2Z1bGwpLAoJICAoZ3N0X3BhZF9jaGFpbl91bmNoZWNrZWQpLCAoZ3N0X3BhZF9wdXNoKToKCSAgUmV2ZXJ0IGxhc3QgY29tbWl0LiBUaGlzIG5lZWRzIHNvbWUgbW9yZSB0aG91Z2h0cy4KCjIwMDctMDMtMjIgMTc6MTI6MjMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RwYWQuYzogQ2hlY2sgaW4gc2V0X2NhcHMgaWYgdGhlIGNhcHMgYXJlIGNvbXBhdGlibGUgd2l0aCB0aGUgcGFkIGFuZCByZW1vdmUgdHdvIGZ1bmN0aW9ucyB0aGF0IGFyZSByZWR1bmRhbnQgbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9jYXBzKSwgKGdzdF9wYWRfYWxsb2NfYnVmZmVyX2Z1bGwpLAoJICAoZ3N0X3BhZF9jaGFpbl91bmNoZWNrZWQpLCAoZ3N0X3BhZF9wdXNoKToKCSAgQ2hlY2sgaW4gc2V0X2NhcHMgaWYgdGhlIGNhcHMgYXJlIGNvbXBhdGlibGUgd2l0aCB0aGUgcGFkIGFuZCByZW1vdmUKCSAgdHdvIGZ1bmN0aW9ucyB0aGF0IGFyZSByZWR1bmRhbnQgbm93LiBGaXhlcyAjNDIxNTQzLgoKMjAwNy0wMy0yMiAxMjozMTo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOiBVbnJlZiBzb21lIG1vcmUgdG8gbWFrZSB2YWxncmluZCBoYXBweS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChtaXhlZF90aHJlYWQpLCAobWl4ZWRfYXN5bmNfY2IpLCAoZ3N0X3N5c3RlbWNsb2NrX3N1aXRlKToKCSAgVW5yZWYgc29tZSBtb3JlIHRvIG1ha2UgdmFsZ3JpbmQgaGFwcHkuCgoyMDA3LTAzLTIyIDExOjU4OjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IEZpeCBhbm95aW5nIHJlZ3Jlc3Npb24gdGhhdCBzdXJ2aXZlZCBhIGZldyByZWxlYXNlcy4gV2hlbiBhZGRpbmcgYW4gYXN5bmMgZW50cnkgd2hpbGUgYmxvY2tpbmcgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X2ppdHRlcl91bmxvY2tlZCksCgkgIChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3dhaXRfaml0dGVyKSwKCSAgKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF9hc3luYyksIChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3Vuc2NoZWR1bGUpOgoJICBGaXggYW5veWluZyByZWdyZXNzaW9uIHRoYXQgc3Vydml2ZWQgYSBmZXcgcmVsZWFzZXMuIFdoZW4gYWRkaW5nIGFuCgkgIGFzeW5jIGVudHJ5IHdoaWxlIGJsb2NraW5nIG9uIGEgc3luYyBlbnRyeSwgdGhlIHN5bmMgZW50cnkgd2lsbCB1bmJsb2NrCgkgIGJ1dCBzdGlsbCBiZSBidXN5LCBzbyBpdCBzaG91bGQgY29udGludWUgdG8gd2FpdCBpbnN0ZWFkIG9mIHJldHVybmluZwoJICBfQlVTWSB0byB0aGUgYXBwLgoJICBBZGQgc29tZSBjb21tZW50cyBoZXJlIGFuZCB0aGVyZS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzogKG1peGVkX3RocmVhZCksCgkgIChtaXhlZF9hc3luY19jYiksIChHU1RfU1RBUlRfVEVTVCksIChnc3Rfc3lzdGVtY2xvY2tfc3VpdGUpOgoJICBBZGQgdGVzdGNhc2UgZm9yIHRoaXMuCgoyMDA3LTAzLTIyIDExOjE5OjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEhhbmRsZSBlcnJvcnMgZnJvbSB0aGUgY2xvY2sgc3luYyBiZXR0ZXIsIG9ubHkgVU5TQ0hFRFVMRUQgaW5kaWNhdGVzIGEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKToKCSAgSGFuZGxlIGVycm9ycyBmcm9tIHRoZSBjbG9jayBzeW5jIGJldHRlciwgb25seSBVTlNDSEVEVUxFRCBpbmRpY2F0ZXMgYQoJICBXUk9OR19TVEFURSBhbmQgY2FuIHNpbGVudGx5IHBhdXNlIHRoZSB0YXNrLiBBbGwgb3RoZXIgY2FzZXMgc2hvdWxkCgkgIGVycm9yIG91dC4KCjIwMDctMDMtMjIgMDg6MjM6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEZpeCBwb3NzaWJsZSBkZWFkbG9jayBpZiBwYWQgZXZlbnRmdW5jIGlzIG5vdCBzcGVjaWZpZWQuICBGaXhlcyAjNDIxMTc3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IDxzeXJqYWxhIGF0IHNjaSBkb3QgZmk+CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hbGxvY19idWZmZXJfZnVsbCksIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBGaXggcG9zc2libGUgZGVhZGxvY2sgaWYgcGFkIGV2ZW50ZnVuYyBpcyBub3Qgc3BlY2lmaWVkLiAgRml4ZXMgIzQyMTE3Ny4KCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuCgoyMDA3LTAzLTIxIDE4OjEzOjQwICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6IEZpeCBzb21lIGVycm9ycyBpbiB0aGUgdHlwZWZpbmRpbmcgZG9jcyBwb2ludGVkIG91dCBvbiBpcmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgRml4IHNvbWUgZXJyb3JzIGluIHRoZSB0eXBlZmluZGluZyBkb2NzIHBvaW50ZWQgb3V0IG9uIGlyYy4KCjIwMDctMDMtMjEgMTc6NTA6NDYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IENsYXJpZnkgRklYTUUgY29tbWVudCBpbiB0aGUgZmFjZSBvZiBoYXZpbmcgYWRkZWQgdW5sb2NrX3N0b3AoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgQ2xhcmlmeSBGSVhNRSBjb21tZW50IGluIHRoZSBmYWNlIG9mIGhhdmluZyBhZGRlZCB1bmxvY2tfc3RvcCgpCgoyMDA3LTAzLTIxIDExOjUyOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBQcmVwYXJlIGZvciByZWxlYXNlIHdoZXJlIHdlIHdhcm4gYWdhaW5zdCBwb3NzaWJsZSBhcHAgYnJlYWthZ2UgaW4gdGhlIGNhc2Ugb2YgbGl2ZSBwaXBlbGluZXMgYWxvbmcgd2l0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZ2V0X3R5cGUpLCAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSk6CgkgIFByZXBhcmUgZm9yIHJlbGVhc2Ugd2hlcmUgd2Ugd2FybiBhZ2FpbnN0IHBvc3NpYmxlIGFwcCBicmVha2FnZSBpbiB0aGUKCSAgY2FzZSBvZiBsaXZlIHBpcGVsaW5lcyBhbG9uZyB3aXRoIGFuIGVudiB2YXIgdG8gZW5hYmxlL2Rpc2FibGUgbGl2ZQoJICBwcmVyb2xsIG1vZGUgKEdTVF9DT01QQVQ9W25vLV1saXZlLXByZXJvbGwpLgoKMjAwNy0wMy0yMCAxNDoyNToxNSArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYyAoZ3N0X2lkZW50aXR5X2NoZWNrX2ltcGVyZmVjdF9vZmZzZXQpOiBTbyB3ZSBzaG91bGQgdXNlIGNvcnJlY3QgY29uc3RhbnRzIGZvciBjaGVja2luZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmMgKGdzdF9pZGVudGl0eV9jaGVja19pbXBlcmZlY3Rfb2Zmc2V0KToKCSAgU28gd2Ugc2hvdWxkIHVzZSBjb3JyZWN0IGNvbnN0YW50cyBmb3IgY2hlY2tpbmcgZm9yIE5vbmUgb2Zmc2V0LgoKMjAwNy0wMy0yMCAxNDoxNzo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OiBNZW50aW9uIHRoZSBmYWN0IHRoYXQgdGhlIG5ld2x5IHN3aXRjaGVkIGVsZW1lbnQgc2hvdWxkIGJlIHNldCB0byBhdCBsZWFzdCBQQVVTRUQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJICBNZW50aW9uIHRoZSBmYWN0IHRoYXQgdGhlIG5ld2x5IHN3aXRjaGVkIGVsZW1lbnQgc2hvdWxkIGJlIHNldCB0byBhdAoJICBsZWFzdCBQQVVTRUQuCgoyMDA3LTAzLTIwIDEwOjIzOjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdC5jOiBGaXggY29tcGlsYXRpb24gd2l0aCByZWdpc3RyeSBkaXNhYmxlZCBhcyBzcG90dGVkIGJ5IFNhdXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgRml4IGNvbXBpbGF0aW9uIHdpdGggcmVnaXN0cnkgZGlzYWJsZWQgYXMgc3BvdHRlZCBieSBTYXVyLgoKMjAwNy0wMy0yMCAwOTo0NjoxMSArMDAwMCAgT2xpdmllciBDcmV0ZSA8dGVzdGVyQHRlc3Rlci5jYT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IExvb2sgYXQgdGhlIHBlbmRpbmcgc3RhdGUgdG9vIHdoZW4gc3luY2luZyB0aGUgZWxlbWVudCBzdGF0ZSB0byB0aGUgcGFyZW50LiBGaXhlcyAjNDIwMTMzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9saXZpZXIgQ3JldGUgPHRlc3RlciBhdCB0ZXN0ZXIgZG90IGNhPgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zeW5jX3N0YXRlX3dpdGhfcGFyZW50KToKCSAgTG9vayBhdCB0aGUgcGVuZGluZyBzdGF0ZSB0b28gd2hlbiBzeW5jaW5nIHRoZSBlbGVtZW50IHN0YXRlIHRvIHRoZQoJICBwYXJlbnQuIEZpeGVzICM0MjAxMzMuCgoyMDA3LTAzLTE5IDE1OjAxOjQwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvOiBBZGQgOjp1bmxvY2tfc3RvcCB0byBiYXNlc3JjIGFuZCBiYXNlc2luay4gVGhpcyBhbGxvd3MgYW4gb3Bwb3J0dW5pdHkgZm9yIHN1Yi1jbGFzc2VzIHRvIGNvcnJlY3RseSBjbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3NldF9mbHVzaGluZyksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9ldmVudCksIChnc3RfYmFzZV9zcmNfdW5sb2NrX3N0b3ApLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlYWN0aXZhdGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBBZGQgOjp1bmxvY2tfc3RvcCB0byBiYXNlc3JjIGFuZCBiYXNlc2luay4gVGhpcyBhbGxvd3MgYW4gb3Bwb3J0dW5pdHkKCSAgZm9yIHN1Yi1jbGFzc2VzIHRvIGNvcnJlY3RseSBjbGVhciBhbnkgc3RhdGUgdGhleSBzZXQgdHJ5aW5nIHRvCgkgIHVubG9jaywgc3VjaCBhcyBjbGVhcmluZyBvdXQgdW5sb2NrIGNvbW1hbmRzIGZyb20gYSBjb21tYW5kIGZkLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9mZF9zaW5rX3JlbmRlciksIChnc3RfZmRfc2lua191bmxvY2spLAoJICAoZ3N0X2ZkX3NpbmtfdW5sb2NrX3N0b3ApOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmRfc3JjX2luaXQpLCAoZ3N0X2ZkX3NyY191bmxvY2spLCAoZ3N0X2ZkX3NyY191bmxvY2tfc3RvcCksCgkgIChnc3RfZmRfc3JjX2NyZWF0ZSksIChnc3RfZmRfc3JjX2dldF9zaXplKSwgKGdzdF9mZF9zcmNfZG9fc2Vlayk6CgkgIEltcGxlbWVudCB1bmxvY2tfc3RvcCBpbiBmZHNyYyBhbmQgZmRzaW5rLgoJICBJbXBsZW1lbnQgc2Vla2luZyBpbiBmZHNyYyB3aGVuIGEgc2Vla2FibGUgZmQgaXMgcGFzc2VkLCBhcyBpbgoJICBnc3QtbGF1bmNoLTAuMTAgZmRzcmMgISAuLi4gISB4dmltYWdlc2luayA8IC9wYXRoL3RvL2ZpbGUKCjIwMDctMDMtMTkgMTI6MDc6MzIgKzAwMDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMuZGFzaC5ncm91cC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBGaXggcGFkLWFkZGVkIGFuZCBwYWQtcmVtb3ZlZCBzaWduYWwgc2lnbmF0dXJlcyBzbyB0aGF0IHRoZSBwYWQgdHlwZSBpcyBzdGF0ZWQgYXMgR1NUX1RZUEVfUEFEIGluc3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBFdmFuIE5lbWVyc29uIDxldmFuIGF0IGNvZXVzIGRhc2ggZ3JvdXAgZG90IGNvbT4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3NfaW5pdCk6CgkgIEZpeCBwYWQtYWRkZWQgYW5kIHBhZC1yZW1vdmVkIHNpZ25hbCBzaWduYXR1cmVzIHNvIHRoYXQgdGhlIHBhZCB0eXBlIGlzCgkgIHN0YXRlZCBhcyBHU1RfVFlQRV9QQUQgaW5zdGVhZCBvZiBHX1RZUEVfT0JKRUNULiBGaXhlcyAjNDE5ODUxLgoKMjAwNy0wMy0xOSAxMDo0Nzo1NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBuZXcgZWxlbWVudCBmaWVsZCBhbmQgbWV0aG9kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgbmV3IGVsZW1lbnQgZmllbGQgYW5kIG1ldGhvZC4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9pbml0KSwKCSAgKGJpbl9yZW1vdmVfbWVzc2FnZXMpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX3JlbW92ZV9mdW5jKSwKCSAgKGdzdF9iaW5fcmVjYWxjX3N0YXRlKSwgKGdzdF9iaW5fZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSksIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9iaW5fY29udGludWVfZnVuYyksIChiaW5fYnVzX2hhbmRsZXIpLAoJICAoYmluX3B1c2hfc3RhdGVfY29udGludWUpLCAoYmluX2hhbmRsZV9hc3luY19zdGFydCksCgkgIChiaW5faGFuZGxlX2FzeW5jX2RvbmUpLCAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgTWFrZSBhc3luYyBzdGF0ZSBjaGFuZ2VzIGEgYml0IHNtYXJ0ZXIgYnkgdXNpbmcgbmV3IEFTWU5DX1NUQVJUIGFuZAoJICBBU1lOQ19ET05FIG1lc3NhZ2VzLiBUaGlzIHJlZHVjZXMgdGhlIG51bWJlciBvZiB0aW1lcyB3ZSBydW4gdGhlIHN0YXRlCgkgIHJlY2FsY3VsYXRpb24gdGhyZWFkLgoJICBEb24ndCBjaGFuZ2Ugc3RhdGUgb2YgZWxlbWVudCB3aXRoIGEgcGVuZGluZyBBU1lOQ19TVEFSVCBtZXNzYWdlLgoJICBEZXByZWNhdGUgU1RBVEVfRElSVFkgbWVzc2FnZXMuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2luaXQpLCAoZ3N0X2VsZW1lbnRfc2VuZF9ldmVudCksCgkgIChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksIChnc3RfZWxlbWVudF9jb250aW51ZV9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKSwgKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgS2VlcCB0aGUgc3RhdGUgdGhhdCB3YXMgbGFzdCBzZXQgYnkgdGhlIGFwcCBpbiBhIG5ldyBlbGVtZW50IGZpZWxkLgoJICBEb24ndCBhbGxvdyBzdGF0ZSBjaGFuZ2VzIHdoZW4gaGFuZGxpbmcgYW4gZWxlbWVudCBldmVudC4KCSAgUG9zdCBBU1lOQ19TVEFSVCBhbmQgQVNZTkNfRE9ORSBtZXNzYWdlcy4KCSAgQ2hhbmdlIGxvc3Rfc3RhdGUgc28gdGhhdCB3ZSBnbyB0byBQQVVTRUQgYW5kIHdhaXQgZm9yIHRoZSBwYXJlbnQgdG8gc2V0CgkgIHVzIHRvIFBMQVlJTkcgYWdhaW4gKHNvIGxhdGVuY3kgY2FsY3VsYXRpb24gY2FuIGJlIHBlcmZvcm1lZCkKCSAgRXhwb3J0IGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSgpIG1ldGhvZCBzbyB0aGF0IHN1YmNsYXNzZXMgY2FuIHVzZSBpdC4KCSAgQVBJOiBnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUoKQoJICBBUEk6IEdTVF9TVEFURV9UQVJHRVQKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jbGFzc19pbml0KSwKCSAgKHJlc2V0X3N0cmVhbV90aW1lKSwgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3BpcGVsaW5lX2hhbmRsZV9tZXNzYWdlKSwgKGdzdF9waXBlbGluZV9zZXRfbmV3X3N0cmVhbV90aW1lKToKCSAgVXNpbmcgdGhlIG5ldyBBU1lOQ19TVEFSVCBtZXNzYWdlIHdlIGNhbiByZXNldCB0aGUgYmFzZV90aW1lIHdoZW4KCSAgbmVlZGVkLiBUaGlzIGNhbiB0aGVuIGJlIHVzZWQgdG8gaW1wbGVtZW50IGJhc2VfdGltZSByZWRpc3RyaWJ1dGlvbiBpbgoJICBmbHVzaGluZyBzZWVrcyBzbyB0aGF0IHdlIGNhbiByZW1vdmUgdGhlIGV4cGxpY2l0IHNlZWsgaGFuZGxpbmcuCgkgIFBlcmZvcm0gbGF0ZW5jeSBxdWVyeSBhbmQgY29uZmlndXJhdGlvbiB3aGVuIGdvaW5nIHRvIFBMQVlJTkcuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIFBvc3QgbmV3IEFTWU5DX1NUQVJUL0FTWU5DX0RPTkUgbWVzc2FnZXMuCgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggdGVzdCBiZWNhdXNlIHRoZSBiaW4gd2lsbCBub3Qgc2V0IHRoZSBhc3luYyBlbGVtZW50IHRvIFBMQVlJTkcgcmlnaHQKCSAgYXdheS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IChwb3BfYXN5bmNfZG9uZSksIChHU1RfU1RBUlRfVEVTVCk6CgkgIE1ha2UgdGhlIG1lc3NhZ2UgY2hlY2sgYSBsaXR0bGUgc3Ryb25nZXIuCgkgIEhhbmRsZSBBU1lOQyBtZXNzYWdlcy4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvY2xlYW51cC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEV4cGVjdCBBU1lOQ19ET05FIG1lc3NhZ2VzLgoKMjAwNy0wMy0xOSAwOTo1NTowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBBU1lOQ19TVEFSVCBhbmQgQVNZTkNfRE9ORSBtZXNzYWdlcyB0byBwcmVwYXJlIGZvciBsYXRlbmN5IHN1cHBvcnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19hc3luY19zdGFydCksCgkgIChnc3RfbWVzc2FnZV9uZXdfYXN5bmNfZG9uZSksIChnc3RfbWVzc2FnZV9wYXJzZV9pbmZvKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX2FzeW5jX3N0YXJ0KToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBBZGQgQVNZTkNfU1RBUlQgYW5kIEFTWU5DX0RPTkUgbWVzc2FnZXMgdG8gcHJlcGFyZSBmb3IgbGF0ZW5jeQoJICBzdXBwb3J0LgoKMjAwNy0wMy0xNSAyMjozMzoxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkgIHR5cG9zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0eXBvcwoKMjAwNy0wMy0xNSAxMjozNzo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IE5vdyB0aGF0IHdlIGRvbid0IGNoZWNrIGZvciB0aGUgJ0NvZGVjJyBrZXl3b3JkIGFueSBsb25nZXIgaW4gdGhlIGtsYXNzLCB3ZSBzaG91bGRuJ3Qgc3BldyBhIHdhci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICAocHJpbnRfcGx1Z2luX2F1dG9tYXRpY19pbnN0YWxsX2luZm9fY29kZWNzKToKCSAgTm93IHRoYXQgd2UgZG9uJ3QgY2hlY2sgZm9yIHRoZSAnQ29kZWMnIGtleXdvcmQgYW55IGxvbmdlciBpbiB0aGUKCSAga2xhc3MsIHdlIHNob3VsZG4ndCBzcGV3IGEgd2FybmluZyBpZiB0aGUga2xhc3MgaXNuJ3QgYSBkZWNvZGVyIG9yCgkgIGVuY29kZXIgKHNpbmNlIGl0IG1pZ2h0IGJlIGEgU291cmNlL05ldHdvcmssIGZvciBleGFtcGxlKS4KCjIwMDctMDMtMTQgMTc6MjQ6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBEb24ndCByZXF1aXJlIGRlY29kZXIvZGVtdXhlci9kZXBheWxvYWRlciBlbGVtZW50cyBvciBlbmNvZGVyL211eGVyL3BheWxhZGVyIGVsZW1lbnRzIHRvIGhhdmUgJ0MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgKHByaW50X3BsdWdpbl9hdXRvbWF0aWNfaW5zdGFsbF9pbmZvX2NvZGVjcyk6CgkgIERvbid0IHJlcXVpcmUgZGVjb2Rlci9kZW11eGVyL2RlcGF5bG9hZGVyIGVsZW1lbnRzIG9yCgkgIGVuY29kZXIvbXV4ZXIvcGF5bGFkZXIgZWxlbWVudHMgdG8gaGF2ZSAnQ29kZWMnIGFzIHBhcnQgb2YgdGhlaXIKCSAgZmFjdG9yeSBjbGFzcyBzdHJpbmcgd2hlbiBpbnRyb3NwZWN0aW5nIGEgcGx1Z2luJ3MgY2FwYWJpbGl0aWVzLgoJICBkcmFmdC1rbGFzcy50eHQgbWVudGlvbnMgdGhhdCBpdCBtaWdodCBiZSByZW1vdmVkIGluIGZ1dHVyZSwgYW5kCgkgIGZsdW1wM2RlYyBkb2Vzbid0IGhhdmUgaXQgYXMgcGFydCBvZiBpdHMgY2xhc3Mgc3RyaW5nLCBzbyBjaGFuY2VzCgkgIGFyZSBvdGhlcnMgbWlnaHQgYWxzbyBub3QgaGF2ZSBpdC4KCjIwMDctMDMtMTQgMTU6NDI6MDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vaTE4bjoKCSAgdXBkYXRlIGkxOG4gZG9jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgaTE4biBkb2MKCjIwMDctMDMtMTQgMTU6MTc6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICByZWZvcm1hdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVmb3JtYXQKCjIwMDctMDMtMTQgMTU6MTU6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG8vOiBVcGRhdGUgdHJhbnNsYXRpb25zIGZyb20gdHJhbnNsYXRpb24gcHJvamVjdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwby9hZi5wbzoKCSAgKiBwby9hei5wbzoKCSAgKiBwby9iZy5wbzoKCSAgKiBwby9jYS5wbzoKCSAgKiBwby9jcy5wbzoKCSAgKiBwby9kZS5wbzoKCSAgKiBwby9lbl9HQi5wbzoKCSAgKiBwby9mci5wbzoKCSAgKiBwby9pdC5wbzoKCSAgKiBwby9uYi5wbzoKCSAgKiBwby9ubC5wbzoKCSAgKiBwby9ydS5wbzoKCSAgKiBwby9zcS5wbzoKCSAgKiBwby9zci5wbzoKCSAgKiBwby9zdi5wbzoKCSAgKiBwby90ci5wbzoKCSAgKiBwby91ay5wbzoKCSAgKiBwby92aS5wbzoKCSAgKiBwby96aF9DTi5wbzoKCSAgKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIHRyYW5zbGF0aW9ucyBmcm9tIHRyYW5zbGF0aW9uIHByb2plY3QKCjIwMDctMDMtMTQgMTM6NDA6MjggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RjaGlsZHByb3h5LmM6IEludmVydCBwcmVjb25kaXRpb24gY2hlY2sgdG8gYmUgYWxpa2UgdGhlIG9uZXMgaW4gdGhlIG1pbWljZWQgZ29iamVjdCBhcGkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjaGlsZHByb3h5LmM6IChnc3RfY2hpbGRfcHJveHlfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9jaGlsZF9wcm94eV9zZXRfcHJvcGVydHkpOgoJICBJbnZlcnQgcHJlY29uZGl0aW9uIGNoZWNrIHRvIGJlIGFsaWtlIHRoZSBvbmVzIGluIHRoZSBtaW1pY2VkIGdvYmplY3QKCSAgYXBpLgoKMjAwNy0wMy0xNCAxMToyMTo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGZpeCBtaXNsZWFkaW5nIGxvZyBzdGF0ZW1lbnQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBtaXNsZWFkaW5nIGxvZyBzdGF0ZW1lbnQKCjIwMDctMDMtMTMgMTQ6NTM6MjEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvOiBEbyBzb21lIEFyY2hpdGVjdCB3b3JrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC10YWdyZWFkaW5nLnR4dDoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2F1ZGlvYmFzZWNsYXNzZXMudHh0OgoJICBEbyBzb21lIEFyY2hpdGVjdCB3b3JrLgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3Rfc2V0X25hbWUpOgoJICBBZGQgYSBXQVJOSU5HLgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgQWRkIGRvY3MgdGhhdCBwb2ludCBmcm9tIGdzdF9wYWRfZ2V0X3JhbmdlIHRvIGdzdF9wYWRfcHVsbF9yYW5nZQoKMjAwNy0wMy0xMiAxNToyNzowNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0c3lzdGVtY2xvY2suYzogRGVmZXIgc3RhcnRpbmcgdGhlIGFzeW5jIHN5c3RlbSBjbG9jayB0aHJlYWQgdW50aWwgdGhlIGZpcnN0IGFzeW5jIHdhaXQgaXMgc2NoZWR1bGVkLiBGaXhlcyAjNDEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2luaXQpLAoJICAoZ3N0X3N5c3RlbV9jbG9ja19zdGFydF9hc3luYyksIChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3dhaXRfYXN5bmMpOgoJICBEZWZlciBzdGFydGluZyB0aGUgYXN5bmMgc3lzdGVtIGNsb2NrIHRocmVhZCB1bnRpbCB0aGUgZmlyc3QgYXN5bmMKCSAgd2FpdCBpcyBzY2hlZHVsZWQuIEZpeGVzICM0MTQ5ODYuCgoyMDA3LTAzLTEyIDE0OjIzOjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IEZpeCBzbWFsbCBsZWFrIChmcmVlIEdzdFNpbmdsZVF1ZXVlIHN0cnVjdHVyZSB0b28sIG5vdCBvbmx5IGNvbnRlbnRzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3RfbXVsdGlfcXVldWVfZmluYWxpemUpLAoJICAoZ3N0X3NpbmdsZV9xdWV1ZV9mcmVlKToKCSAgRml4IHNtYWxsIGxlYWsgKGZyZWUgR3N0U2luZ2xlUXVldWUgc3RydWN0dXJlIHRvbywgbm90IG9ubHkgY29udGVudHMpLgoKMjAwNy0wMy0xMCAxNTo0NDo0NCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBVc2UgR1NUX1NUUl9OVUxMIHRvIHByZXZlbnQgTlVMTCBwb2ludGVyIHRvIGJlIHBhc3NlZCB0byBHU1RfQ0FUX0RFQlVHLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6KGdzdF9iaW5fYWRkKToKCSAgVXNlIEdTVF9TVFJfTlVMTCB0byBwcmV2ZW50IE5VTEwgcG9pbnRlciB0byBiZSBwYXNzZWQgdG8gR1NUX0NBVF9ERUJVRy4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgZXhwb3J0ZWQgZnVuY3Rpb25zLgoKMjAwNy0wMy0wOSAxNjozOToyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6IEZpeCBHc3RUZWUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgRml4IEdzdFRlZSBkb2NzLgoKMjAwNy0wMy0wOSAxNjozMDozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBtZXRhZGF0YSBjb3B5IGZ1bmN0aW9ucy4gRml4ZXMgIzM5MzA5OS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX2NvcHlfbWV0YWRhdGEpLCAoX2dzdF9idWZmZXJfY29weSk6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBBZGQgbWV0YWRhdGEgY29weSBmdW5jdGlvbnMuIEZpeGVzICMzOTMwOTkuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfYnVmZmVyX3N0YW1wKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpOgoJICBVc2UgbmV3IG1ldGFkYXRhIGNvcHkgZnVuY3Rpb25zLgoKMjAwNy0wMy0wOSAxNDoyMDoyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lio6IFNlcGFyYXRlIG91dCBjaGVjay1pbXBlcmZlY3QtdGltZXN0YW1wIGFuZCBjaGVjay1pbXBlcmZlY3Qtb2Zmc2V0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCksCgkgIChnc3RfaWRlbnRpdHlfaW5pdCksIChnc3RfaWRlbnRpdHlfY2hlY2tfcGVyZmVjdCksCgkgIChnc3RfaWRlbnRpdHlfY2hlY2tfaW1wZXJmZWN0X3RpbWVzdGFtcCksCgkgIChnc3RfaWRlbnRpdHlfY2hlY2tfaW1wZXJmZWN0X29mZnNldCksIChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKSwKCSAgKGdzdF9pZGVudGl0eV9zZXRfcHJvcGVydHkpLCAoZ3N0X2lkZW50aXR5X2dldF9wcm9wZXJ0eSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICBTZXBhcmF0ZSBvdXQgY2hlY2staW1wZXJmZWN0LXRpbWVzdGFtcCBhbmQgY2hlY2staW1wZXJmZWN0LW9mZnNldC4KCSAgUHV0IGJhY2sgY2hlY2stcGVyZmVjdCBhcyBpdCB3YXMgdG8ga2VlcCBjb21wYXRpYmlsaXR5LgoKMjAwNy0wMy0wOSAxMjozNDo0NiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBUaGVyZSdzIG5vIG5lZWQgdG8gd2FybiBpZiBWT0lEX1BFTkRJTkcgaXMgbm90IE5PTkUgaGVyZSwgYXMgbG9uZyBhcyB0aGUgc3RhdGUgaXMgTlVMTCBpdCdzIG9rLCBhbmQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2Rpc3Bvc2UpOgoJICBUaGVyZSdzIG5vIG5lZWQgdG8gd2FybiBpZiBWT0lEX1BFTkRJTkcgaXMgbm90IE5PTkUgaGVyZSwgYXMKCSAgbG9uZyBhcyB0aGUgc3RhdGUgaXMgTlVMTCBpdCdzIG9rLCBhbmQgdGhhdCdzIGNoZWNrZWQgaW1tZWRpYXRlbHkKCSAgYWJvdmUuCgoyMDA3LTAzLTA4IDE3OjU4OjU3ICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBGaXggY2hlY2sgZm9yIHBlcmZlY3Qgc3RyZWFtIHRvIGlnbm9yZSBidWZmZXJzIHdpdGggLTEgb2Zmc2V0cy9vZmZzZXQgZW5kcyB3aGVuIGNoZWNrLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAzLTA4ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NoZWNrX3BlcmZlY3QpOgoJICBGaXggY2hlY2sgZm9yIHBlcmZlY3Qgc3RyZWFtIHRvIGlnbm9yZSBidWZmZXJzIHdpdGggLTEKCSAgb2Zmc2V0cy9vZmZzZXQgZW5kcyB3aGVuIGNoZWNraW5nIGRhdGEgY29udGlndWl0eS4KCjIwMDctMDMtMDggMTY6MjY6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IFByaW50IElORk8gbWVzc2FnZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBQcmludCBJTkZPIG1lc3NhZ2VzLgoKMjAwNy0wMy0wOCAxMTo0MDoxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS4qOiBBZGQgc3VwcG9ydCBmb3IgZHJvcHBpbmcgYnVmZmVycyB3aXRoIGN1c3RvbSBHc3RGbG93UmV0dXJuLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2V2ZW50ZnVuYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2FjdGl2YXRlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgQWRkIHN1cHBvcnQgZm9yIGRyb3BwaW5nIGJ1ZmZlcnMgd2l0aCBjdXN0b20gR3N0Rmxvd1JldHVybi4KCSAgU2V0IERJU0NPTlQgZmxhZ3Mgb24gb3V0Z29pbmcgYnVmZmVycyBiYXNlZCBvbiBRb1MsIGluY29tbWluZyBESVNDT05UCgkgIGJ1ZmZlcnMgb3IgZHJvcHBlZCBidWZmZXJzLgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGRvY3MgZm9yIG5ldyBjdXN0b20gcmV0dXJuIGNvZGUuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCk6CgkgIFVzZSBkcm9wIHN1cHBvcnQgaW4gYmFzZSBjbGFzcyB0byBpbXBsZW1lbnQgZHJvcC1wcm9iYWJpbGl0eS4KCjIwMDctMDMtMDcgMTc6MjY6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBSZW1vdmUgbmV3bGluZXMgYXQgZW5kIG9mIGRlYnVnIGxvZyBzdHJpbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChsb2FkX3BsdWdpbl9mdW5jKToKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2xvYWRfYnlfbmFtZSksIChnc3RfcGx1Z2luX2xvYWQpOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgKiBnc3QvZ3N0dHJhY2UuYzogKGdzdF90cmFjZV9uZXcpLCAoZ3N0X2FsbG9jX3RyYWNlX3NldF9mbGFnc19hbGwpOgoJICBSZW1vdmUgbmV3bGluZXMgYXQgZW5kIG9mIGRlYnVnIGxvZyBzdHJpbmdzLgoKMjAwNy0wMy0wNyAxNzoxNDo1MyArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogT25seSBwb3N0IGJ1cyBtZXNzYWdlIGF0IG1heCwgb25jZSBwZXIgYnVmZmVyIHJlY2VpdmVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMy0wNyAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jaGVja19wZXJmZWN0KToKCSAgT25seSBwb3N0IGJ1cyBtZXNzYWdlIGF0IG1heCwgb25jZSBwZXIgYnVmZmVyIHJlY2VpdmVkLgoKMjAwNy0wMy0wNyAxNzoxMzoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogQWRkIGRvYyBhYm91dCBzeW5jaHJvbmlzYXRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgICogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJICBBZGQgZG9jIGFib3V0IHN5bmNocm9uaXNhdGlvbgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJ1cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1saXZlLXNvdXJjZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW1zLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgoyMDA3LTAzLTA3IDE3OjA5OjU3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdHJlYW1lci5kb2FwOiBVcGRhdGUgdGhlIGRvYXAgZmlsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0cmVhbWVyLmRvYXA6CgkgIFVwZGF0ZSB0aGUgZG9hcCBmaWxlLgoKMjAwNy0wMy0wNyAxNzowMjo1MSArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogUmVuYW1lIG5vbi1wZXJmZWN0IHRvIGltcGVyZmVjdCBmb3IgTWlrZSBhbmQgZm9yIHRoZSBzYW5jdGl0eSBvZiB0aGUgbGFuZ3VhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAzLTA3ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NoZWNrX3BlcmZlY3QpOgoJICBSZW5hbWUgbm9uLXBlcmZlY3QgdG8gaW1wZXJmZWN0IGZvciBNaWtlIGFuZCBmb3IgdGhlIHNhbmN0aXR5IG9mCgkgIHRoZSBsYW5ndWFnZS4KCSAgQWxzbyBtYWtlIHN1cmUgYnVzIG1lc3NhZ2UgZ2V0cyBlbWl0dGVkIGZvciBkYXRhLWluY29udGlndWl0aWVzLgoKMjAwNy0wMy0wNyAxNjo1ODo0MiArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuKjogRW1pdCBidXMgbWVzc2FnZSBpZiBjaGVjay1wZXJmZWN0IGlzIHRydWUgYW5kIHdlIGVuY291bnRlciBhIG5vbi1wZXJmZWN0IHN0cmVhbSBiZXR3ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMy0wNyAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jaGVja19wZXJmZWN0KSwKCSAgKGdzdF9pZGVudGl0eV9zdGFydCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICBFbWl0IGJ1cyBtZXNzYWdlIGlmIGNoZWNrLXBlcmZlY3QgaXMgdHJ1ZSBhbmQgd2UgZW5jb3VudGVyIGEKCSAgbm9uLXBlcmZlY3Qgc3RyZWFtIGJldHdlZW4gMiBjb25zZWN1dGl2ZSBidWZmZXJzLgoJICBGaXhlcyAjNDE1Mzk0LgoKMjAwNy0wMy0wNyAxNjo1NTowMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEJhY2sgdG8gQ1ZTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBDVlMKCj09PSByZWxlYXNlIDAuMTAuMTIgPT09CgoyMDA3LTAzLTA3IDE2OjQ0OjA0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMC4xMgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVsZWFzZSAwLjEwLjEyCgoyMDA3LTAzLTA3IDE2OjMxOjMwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNy0wMy0wNyAxMjo1MToyMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBjb21tb246CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNy0wMy0wMSAxODo0NjozNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IFZlcnNpb24gMC4xMC4xMS4yICgwLjEwLjEyIHByZS1yZWxlYXNlKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFZlcnNpb24gMC4xMC4xMS4yICgwLjEwLjEyIHByZS1yZWxlYXNlKQoJICBCdW1wIGxpYnRvb2wgdmVyc2lvbmluZy4KCjIwMDctMDMtMDEgMTQ6NDk6NDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBMb2cgZmxvdy1uYW1lcyBhbmQgbm90IG51bWJlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2xvb3ApOgoJICBMb2cgZmxvdy1uYW1lcyBhbmQgbm90IG51bWJlcnMuCgoyMDA3LTAyLTI4IDE5OjI1OjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogQ29udmVydCB0byBuZXcgQUdfR1NUIHN0eWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIENvbnZlcnQgdG8gbmV3IEFHX0dTVCBzdHlsZS4KCjIwMDctMDItMjggMTg6NTE6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IERvbid0IHVucmVmIHF1ZXJ5IHR3aWNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3F1ZXJ5X2xhdGVuY3kpOgoJICBEb24ndCB1bnJlZiBxdWVyeSB0d2ljZS4KCjIwMDctMDItMjggMTY6NTc6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dmFsdWUuYzogSW1wbGVtZW50IEdzdE9iamVjdCAtPiBzdHJpbmcgdHJhbnNmb3JtIHNvIHdlIHByaW50IG9iamVjdCBuYW1lcyB3aGVuIHNlcmlhbGl6aW5nIEdWYWx1ZXMgY29udGFpbmluZyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfdHJhbnNmb3JtX29iamVjdF9zdHJpbmcpLAoJICAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgSW1wbGVtZW50IEdzdE9iamVjdCAtPiBzdHJpbmcgdHJhbnNmb3JtIHNvIHdlIHByaW50IG9iamVjdCBuYW1lcwoJICB3aGVuIHNlcmlhbGl6aW5nIEdWYWx1ZXMgY29udGFpbmluZyBHc3RPYmplY3RzLgoKMjAwNy0wMi0yOCAxNjo1NTo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBuZXcgc3R1ZmYgdG8gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIG5ldyBzdHVmZiB0byBkb2NzLgoKMjAwNy0wMi0yOCAxNjo0NjowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogSW1wcm92ZSBsYXRlbmN5IHF1ZXJ5IGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcXVlcnlfbGF0ZW5jeSksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXVlX29iamVjdF91bmxvY2tlZCksIChnc3RfYmFzZV9zaW5rX3NlbmRfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBJbXByb3ZlIGxhdGVuY3kgcXVlcnkgY29kZS4KCSAgRG9uJ3QgbGVhayBsYXRlbmN5IGV2ZW50cy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEltcHJvdmUgZGVidWdnaW5nLgoKMjAwNy0wMi0yOCAxNjo0Mzo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50Lio6IEltcHJvdmUgZG9jcyBhIGxpdHRsZS4gQWRkZWQgU2luY2U6IGZvciBuZXcgbWFjcm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9tZXNzYWdlX2Z1bGwpLAoJICAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIEltcHJvdmUgZG9jcyBhIGxpdHRsZS4gQWRkZWQgU2luY2U6IGZvciBuZXcgbWFjcm8uCgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9zaW5rKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3BpcGVsaW5lX3NldF9uZXdfc3RyZWFtX3RpbWUpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5oOgoJICBJbXByb3ZlIGRlYnVnZ2luZyBhbmQgZG9jcy4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3N0YXRlX2NoYW5nZV9yZXR1cm5fZ2V0X25hbWUpOgoJICBJbXByb3ZlIGRlYnVnZ2luZy4KCjIwMDctMDItMjggMTY6NDA6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBIYW5kbGUgSU5GTyBtZXNzYWdlcyBmcm9tIHRoZSBHU1RfRUxFTUVOVF9JTkZPIG1hY3JvIGFzIHdlbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9tZXNzYWdlX2Z1bGwpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X2xvY2tlZF9zdGF0ZSksIChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBIYW5kbGUgSU5GTyBtZXNzYWdlcyBmcm9tIHRoZSBHU1RfRUxFTUVOVF9JTkZPIG1hY3JvIGFzIHdlbGwuCgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4KCSAgU21hbGwgY29kZSBjbGVhbnVwcy4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X2luZm8pLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2VfaW5mbyk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgQVBJOiBnc3RfbWVzc2FnZV9uZXdfaW5mbygpCgkgIEFQSTogZ3N0X21lc3NhZ2VfcGFyc2VfaW5mbygpCgkgIEFkZCBJTkZPIG1lc3NhZ2UgY3JlYXRlIGFuZCBwYXJzZSBjb2RlLgoKMjAwNy0wMi0yOCAxNjozNTo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogQWxzbyByZXBvcnQgdGhlIGxpdmUgcGFyYW1ldGVyIG9mIGEgbGF0ZW5jeSBxdWVyeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX3F1ZXJ5X21pbl9tYXhfaW5pdCksIChiaW5fcXVlcnlfbGF0ZW5jeV9mb2xkKSwKCSAgKGJpbl9xdWVyeV9sYXRlbmN5X2RvbmUpOgoJICBBbHNvIHJlcG9ydCB0aGUgbGl2ZSBwYXJhbWV0ZXIgb2YgYSBsYXRlbmN5IHF1ZXJ5LgoKMjAwNy0wMi0yOCAxMjo1Nzo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJICBwbHVnIHRlc3QgbGVhawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGx1ZyB0ZXN0IGxlYWsKCjIwMDctMDItMjggMTI6NDM6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGFjdHVhbGx5IHVzZSB0aGUgZW52IHZhciBmb3IgdGVzdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFjdHVhbGx5IHVzZSB0aGUgZW52IHZhciBmb3IgdGVzdHMKCjIwMDctMDItMjggMTI6NDA6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogQ29weSB0aGUgY3VycmVudCBnZW5lcmljL3N0YXRlcyBleGFtcGxlIGZyb20gLWJhc2UgYW5kIGFkYXB0IHNvIHdlIGNhbiB1c2UgdGhlIGV4YWN0IHNhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IChHU1RfU1RBUlRfVEVTVCksIChzdGF0ZXNfc3VpdGUpOgoJICBDb3B5IHRoZSBjdXJyZW50IGdlbmVyaWMvc3RhdGVzIGV4YW1wbGUgZnJvbSAtYmFzZSBhbmQgYWRhcHQgc28KCSAgd2UgY2FuIHVzZSB0aGUgZXhhY3Qgc2FtZSBjb2RlIGV2ZXJ5d2hlcmUuCgkgIENoZWNrIGEgU1RBVEVTX0lHTk9SRV9FTEVNRU5UUyBlbnYgdmFyIHdoaWNoIGNhbiBiZSB1c2VkCgkgIHRvIGlnbm9yZSBjZXJ0YWluIGVsZW1lbnQgZmFjdG9yaWVzIGZvciB0aGlzIHRlc3QsIHdoaWNoIGlzCgkgIHdoYXQgaXMgYmVpbmcgZG9uZSBpbiAtYmFzZQoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBNZW50aW9uIHRoaXMgZW52aXJvbm1lbnQgdmFyaWFibGUuCgoyMDA3LTAyLTI3IDE3OjIyOjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQVBJOiBnc3RfYnVzX3RpbWVkX3BvcCgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19pbml0KSwgKGdzdF9idXNfZGlzcG9zZSksIChnc3RfYnVzX3Bvc3QpLAoJICAoZ3N0X2J1c190aW1lZF9wb3ApLCAoZ3N0X2J1c19wb3ApOgoJICAqIGdzdC9nc3RidXMuaDoKCSAgQVBJOiBnc3RfYnVzX3RpbWVkX3BvcCgpCgkgIEltcGxlbWVudCBnc3RfYnVzX3RpbWVkX3BvcCgpIHRvIGRvIGEgYmxvY2tpbmcgdGltZWQgd2FpdCBmb3IgYQoJICBtZXNzYWdlIHRvIGFycml2ZSBvbiB0aGUgYnVzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzogKEdTVF9TVEFSVF9URVNUKSwgKHBvcF90aHJlYWQpLAoJICAoZ3N0X2J1c19zdWl0ZSk6CgkgIFR3byB1bml0IHRlc3RzIGZvciBuZXcgX3RpbWVkX3BvcCgpIGZ1bmN0aW9uLgoKMjAwNy0wMi0yMyAxNzo0MjowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBEb24ndCByZWYgYSBOVUxMIGNsb2NrIGluIF9wcm92aWRlX2Nsb2NrX2Z1bmMoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9waXBlbGluZV9wcm92aWRlX2Nsb2NrX2Z1bmMpLCAoZ3N0X3BpcGVsaW5lX3NldF9kZWxheSk6CgkgIERvbid0IHJlZiBhIE5VTEwgY2xvY2sgaW4gX3Byb3ZpZGVfY2xvY2tfZnVuYygpLgoJICBEb24ndCBhbGxvdyBhbiBJTlZBTElEIGRlbGF5LgoJICBEb24ndCB0cnkgdG8gY2FsY3VsYXRlIGJhc2VfdGltZSB3aXRoIGFuIGludmFsaWQgc3RhcnRfdGltZS4KCSAgQWxzbyBkaXN0cmlidXRlIGFuZCBub3RpZnkgYSBOVUxMIGNsb2NrIHdoZW4gaXQgd2FzIHNlbGVjdGVkLgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBEb24ndCBjcmFzaCB3aGVuIGEgTlVMTCBjbG9jayB3YXMgc2VsZWN0ZWQgaW4gdGhlIHBpcGVsaW5lLgoKMjAwNy0wMi0yMyAxMzo0MjoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvOiBTb21lIHNtYWxsIHVwZGF0ZXM6IHVwZGF0ZSBwbHVnaW4gc3lzdGVtIGlkZW50aWZpZXIgcHJlZml4IG1lbnRpb24gb3VyIG5ldyBpbnN0YWxsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6CgkgICogZG9jcy9yYW5kb20vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDoKCSAgU29tZSBzbWFsbCB1cGRhdGVzOiB1cGRhdGUgcGx1Z2luIHN5c3RlbSBpZGVudGlmaWVyIHByZWZpeAoJICAoJ2dzdHJlYW1lci5uZXQnIHRvICdnc3RyZWFtZXInKSwgbWVudGlvbiBvdXIgbmV3IGluc3RhbGwKCSAgQVBJIGluIGxpYmdzdGJhc2V1dGlscyByYXRoZXIgdGhhbiBsaWJnaW1tZS1jb2RlYywgYWRkCgkgIHJlZmVyZW5jZSB0byB0aGUgb25saW5lIGRvY3MuCgoyMDA3LTAyLTIxIDE1OjM1OjE5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHdpbjMyL2NvbW1vbi9jb25maWcuaDogUHJldHR5IHN1cmUgQmlsbCBuZXZlciBtYWRlIGEgcG93ZXJwYyB2ZXJzaW9uLiAgUG93ZXJwYyBoYWNrZXJzLCB1c2UgbW9hcCBjbCBjaSB0byBvbmx5IGNoZWNrIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFByZXR0eSBzdXJlIEJpbGwgbmV2ZXIgbWFkZSBhIHBvd2VycGMgdmVyc2lvbi4gIFBvd2VycGMgaGFja2VycywKCSAgdXNlIG1vYXAgY2wgY2kgdG8gb25seSBjaGVjayBpbiB3aGF0IGlzIG1lbnRpb25lZCBpbiB0aGUgQ2hhbmdlTG9nLgoKMjAwNy0wMi0yMSAxNTozNDoxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBGaXggdXAgZG9jdW1lbnRhdGlvbiB0byBsaW5rIHRvIHRoZSBjb3JyZWN0IEdzdEdFcnJvciBzZWN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIEZpeCB1cCBkb2N1bWVudGF0aW9uIHRvIGxpbmsgdG8gdGhlIGNvcnJlY3QgR3N0R0Vycm9yIHNlY3Rpb24uCgkgIEFkZCBHU1RfRUxFTUVOVF9JTkZPIG1hY3JvIHNpbmNlIHNvbWVvbmUgZWxzZSBhZGRlZCBhIEluZm8gbWVzc2FnZS4KCjIwMDctMDItMjEgMTU6MzA6NTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBNYWtlIHN1cmUgdGhhdCB3ZSBhY3R1YWxseSBzaG93IHRoZSBpbXBvcnRhbnQgbWVzc2FnZSBwYXJ0IG9mIGEgd2FybmluZyBtZXNzYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgTWFrZSBzdXJlIHRoYXQgd2UgYWN0dWFsbHkgc2hvdyB0aGUgaW1wb3J0YW50IG1lc3NhZ2UgcGFydCBvZiBhCgkgIHdhcm5pbmcgbWVzc2FnZS4KCSAgTm8gbmVlZCB0byBjaGVjayBpZiB0aGUgZ2Vycm9yIGlzIG5vdCBOVUxMIHRvIGZyZWU7IGZpcnN0IG9mIGFsbAoJICBnX2ZyZWUgYWNjZXB0cyBOVUxMOyBhbmQgc2Vjb25kIHRoZSBkZWZhdWx0IGVycm9yIGhhbmRsZXIgd291bGQKCSAgc2VnZmF1bHQgaWYgZ2Vycm9yIHdhcyBOVUxMLgoKMjAwNy0wMi0yMSAxMjoxMDoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IFJlbW92ZWQgZG9jcyBhcyB3ZWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBSZW1vdmVkIGRvY3MgYXMgd2VsbC4KCjIwMDctMDItMjEgMTI6MDE6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0bWVzc2FnZS4qOiBSZW1vdmUgbmV3IG1lc3NhZ2VzIGZvciByZWxlYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfcGFyc2VfZHVyYXRpb24pOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIFJlbW92ZSBuZXcgbWVzc2FnZXMgZm9yIHJlbGVhc2UuCgoyMDA3LTAyLTIwIDE4OjAyOjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgTWFrZSB0aGUgZ2hvc3RwYWQgYSBwYXJlbnQgb2YgdGhlIGludGVybmFsIHBhZCBhZ2FpbiBmb3IgYmV0dGVyIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuIERvbid0IHdyaXRlIGNvZGUgdGhhdCByZWxpZXMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X2dob3N0X3BhZF9kaXNwb3NlKSwKCSAgKGdzdF9naG9zdF9wYWRfbmV3X2Z1bGwpOgoJICBNYWtlIHRoZSBnaG9zdHBhZCBhIHBhcmVudCBvZiB0aGUgaW50ZXJuYWwgcGFkIGFnYWluIGZvciBiZXR0ZXIgYmFja3dhcmQKCSAgY29tcGF0aWJpbGl0eS4gRG9uJ3Qgd3JpdGUgY29kZSB0aGF0IHJlbGllcyBvbiB0aGlzIGhvd2V2ZXIuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hY3RpdmF0ZV9wdWxsKSwgKGdzdF9wYWRfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfcGFkX2xpbmtfY2hlY2tfaGllcmFyY2h5KToKCSAgUmVxdWlyZSB0aGF0IHBhcmVudHMgc2hvdWxkIGJlIEdzdEVsZW1lbnRzIGluIHRoZSBoaWVyYXJjaHkgY2hlY2suCgoyMDA3LTAyLTIwIDEwOjQ1OjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBJbXByb3ZlIGRlYnVnIGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9yZXBsYWNlX21lc3NhZ2UpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwgKGJpbl9xdWVyeV9taW5fbWF4X2luaXQpLAoJICAoYmluX3F1ZXJ5X2xhdGVuY3lfZm9sZCksIChiaW5fcXVlcnlfbGF0ZW5jeV9kb25lKSwKCSAgKGdzdF9iaW5fcXVlcnkpOgoJICBJbXByb3ZlIGRlYnVnIGluZm8uCgkgIEltcGxlbWVudCBsYXRlbmN5IHF1ZXJ5LgoKMjAwNy0wMi0yMCAxMDoxNjoyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvIG5vdCBzZXQgdGhlIGludGVybmFsIHBhZCBhcyBhIHBhcmVudCBhbnltb3JlIHNvIHdlIGNhbiBhdm9pZCBoaWVyYXJjaHkgbGlua2luZyBlcnJvcnMgd2hlbiB0aGUgZ2hvc3RwYWQgaGFzIG5vIHBhci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfY2xhc3NfaW5pdCksCgkgIChnc3RfZ2hvc3RfcGFkX2ludGVybmFsX2RvX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X2dob3N0X3BhZF9pbnRlcm5hbF9kb19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVzaCksIChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2dob3N0X3BhZF9kb19saW5rKSwgKGdzdF9naG9zdF9wYWRfZGlzcG9zZSksCgkgIChnc3RfZ2hvc3RfcGFkX25ld19mdWxsKSwgKGdzdF9naG9zdF9wYWRfc2V0X3RhcmdldCk6CgkgIERvIG5vdCBzZXQgdGhlIGludGVybmFsIHBhZCBhcyBhIHBhcmVudCBhbnltb3JlIHNvIHdlIGNhbiBhdm9pZAoJICBoaWVyYXJjaHkgbGlua2luZyBlcnJvcnMgd2hlbiB0aGUgZ2hvc3RwYWQgaGFzIG5vIHBhcmVudCB5ZXQuIFRoaXMgYWxzbwoJICBmaXhlcyBmYWlsZWQgYWN0aXZhdGlvbiBiZWNhdXNlIG9mIHVubGlua2VkIGludGVybmFsIHBhZHMsIHdoaWNoIGluCgkgIHR1cm4gZml4ZXMgdGhlIGltcG9zc2libGUgY2FzZSB3aGVyZSB5b3UgaGF2ZSB0byBhY3RpdmF0ZSBhIHBhZCBiZWZvcmUKCSAgeW91IGNhbiBhZGQgaXQgdG8gYSBydW5uaW5nIGVsZW1lbnQuCgkgIEFsc28gZml4IHRoZSBkb2NzLgoJICAqIGdzdC9nc3RwYWQuYzogKHByZV9hY3RpdmF0ZSksIChwb3N0X2FjdGl2YXRlKSwKCSAgKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X3BhZF9hY3RpdmF0ZV9wdXNoKSwgKGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSk6CgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCSAgTWFyayBhY3RpdmF0aW9uIG1vZGUgaW4gcHJlX2FjdGl2YXRlIHNvIHRoYXQgd2UgZG9uJ3QgdHJ5IHRvIGFjdGl2YXRlIGluCgkgIGVuZGxlc3MgbG9vcHMuIEZpeGVzICMzODUwODQuCgoyMDA3LTAyLTE5IDE4OjA4OjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEltcGxlbWVudCBhIGNoZWNrZ2V0cmFuZ2UgZnVuY3Rpb24gaW5zdGVhZCBvZiByZWx5aW5nIG9uIHRoZSBkZWZhdWx0IGNvcmUgYmVoYXZpb3VyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoZWNrX2dldF9yYW5nZSk6CgkgIEltcGxlbWVudCBhIGNoZWNrZ2V0cmFuZ2UgZnVuY3Rpb24gaW5zdGVhZCBvZiByZWx5aW5nIG9uIHRoZSBkZWZhdWx0CgkgIGNvcmUgYmVoYXZpb3VyIHRoYXQgYXNzdW1lcyB3ZSBjYW4gb3BlcmF0ZSBpbiBwdWxsIG1vZGUgaWYgd2UgaGF2ZSBhCgkgIGdldHJhbmdlIGZ1bmN0aW9uLiBGaXJzdCBzdGVwIGF0IGZpeGluZyAjMzg1MDg0LgoKMjAwNy0wMi0xNSAxMjowNTowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgTW9yZSBkb2NzIGNvdmVyYWdlIGFuZCBzb21lIENoYW5nZUxvZyBzdXJnZXJ5IChhZGQgbWlzc2luZyBuYW1lcykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIE1vcmUgZG9jcyBjb3ZlcmFnZSBhbmQgc29tZSBDaGFuZ2VMb2cgc3VyZ2VyeSAoYWRkIG1pc3NpbmcgbmFtZXMpCgoyMDA3LTAyLTE1IDExOjMyOjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBTb21lIGRvYyB1cGRhdGVzLiBTdGFydCByZW5hbWluZyBmcm9tIHN0cmVhbV90aW1lIHRvIHJ1bm5pbmdfdGltZSB3aGVyZSBpdCB3YXMgdXNlZCB3cm9uZ2x5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYWN0aXZhdGlvbi50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc291cmNlLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RiaW4udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YnVzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdHBpcGVsaW5lLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWxpdmUtc291cmNlLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1xdWVyeS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6CgkgIFNvbWUgZG9jIHVwZGF0ZXMuIFN0YXJ0IHJlbmFtaW5nIGZyb20gc3RyZWFtX3RpbWUgdG8gcnVubmluZ190aW1lIHdoZXJlCgkgIGl0IHdhcyB1c2VkIHdyb25nbHkuCgoyMDA3LTAyLTE1IDA5OjA3OjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEFuc3dlciBMQVRFTkNZIHF1ZXJ5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kZWZhdWx0X3F1ZXJ5KToKCSAgQW5zd2VyIExBVEVOQ1kgcXVlcnkuCgoyMDA3LTAyLTE1IDA4OjQwOjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6IEltcHJvdmUgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzogKGV2ZW50X3Byb2JlKSwgKHRlc3RfZXZlbnQpLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICBJbXByb3ZlIGRlYnVnZ2luZy4KCjIwMDctMDItMTUgMDg6Mzc6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEltcHJvdmUgZGVidWdnaW5nIG9mIGRlZmF1bHQgcGFkIGRpc3BhdGNoZXIgYW5kIHF1ZXJ5IGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfaW50ZXJuYWxfbGlua3NfZGVmYXVsdCksCgkgIChnc3RfcGFkX2Rpc3BhdGNoZXIpOgoJICBJbXByb3ZlIGRlYnVnZ2luZyBvZiBkZWZhdWx0IHBhZCBkaXNwYXRjaGVyIGFuZCBxdWVyeSBmdW5jdGlvbnMuCgoyMDA3LTAyLTE1IDA4OjMxOjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogUmVtb3ZlIG9sZCB1bnVzZWQgbWV0aG9kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBSZW1vdmUgb2xkIHVudXNlZCBtZXRob2QuCgoyMDA3LTAyLTEzIDE1OjUxOjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogRml4IGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBjaGVjawoKMjAwNy0wMi0xMyAxNTozNDoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6IFNvbWUgc21hbGwgdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJICBTb21lIHNtYWxsIHVwZGF0ZS4KCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspOgoJICBSZXZlcnQgb2xkIGJvZ3VzIGNoYW5nZSB0aGF0IHNob3VsZCBtYWtlIHNlZWtpbmcgd29yayBhZ2Fpbi4KCjIwMDctMDItMTMgMTQ6NTI6NDcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvOiBQb3NzaWJsZSBkeW5hbWljIHJlY29ubmVjdGlvbiBhcGksIHBsdXMgc29tZSB0eXBlIGZpeGVzIHRoZSBvdGhlciB0d28gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9keW5saW5rLnR4dDoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2ludGVyZmFjZXMudHh0OgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvcmVjZWlwaWVzLnR4dDoKCSAgUG9zc2libGUgZHluYW1pYyByZWNvbm5lY3Rpb24gYXBpLCBwbHVzIHNvbWUgdHlwZSBmaXhlcyB0aGUgb3RoZXIgdHdvCgkgIGRvY3MuCgoyMDA3LTAyLTEzIDEzOjQwOjA1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogQWxzbyBjaGVjayBmb3IgYW4gYWJzb2x1dGUgcGF0aCBmb2xsb3dpbmcgZmlsZTovLyBpbiB0aGUgZmlsZXNyYyBlbGVtZW50LiBSZW1vdmUgcmVkdW5kYW50IGNoZWNrIGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua191cmlfc2V0X3VyaSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfdXJpX3NldF91cmkpOgoJICBBbHNvIGNoZWNrIGZvciBhbiBhYnNvbHV0ZSBwYXRoIGZvbGxvd2luZyBmaWxlOi8vIGluIHRoZSBmaWxlc3JjCgkgIGVsZW1lbnQuIFJlbW92ZSByZWR1bmRhbnQgY2hlY2sgYW5kIGNhbGwgZ19wYXRoX2lzX2Fic29sdXRlKCkgb24gdGhlCgkgIHVuZXNjYXBlZCBsb2NhdGlvbi4KCjIwMDctMDItMTMgMDk6MTA6NTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDogQWRkIGV4aXN0aW5nIGNhdGVnb3J5IGFuYWx5c2lzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkgIEFkZCBleGlzdGluZyBjYXRlZ29yeSBhbmFseXNpcy4KCSAgKiBnc3QvZ3N0Y2Fwcy5jOgoJICBGaXggZG9jIGV4YW1wbGUsIGZyYW1lcmF0ZSBpcyBhIGZyYWN0aW9uLgoKMjAwNy0wMi0xMiAxOTo1NToyNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQWRkIGNyb3NzcmVmZXJlbmNlcyB0byBnbGliL2dvYmplY3QgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgIEFkZCBjcm9zc3JlZmVyZW5jZXMgdG8gZ2xpYi9nb2JqZWN0IGRvY3MuCgoyMDA3LTAyLTEyIDExOjMyOjIyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6IFNtYWxsIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6CgkgIFNtYWxsIHVwZGF0ZS4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9sYXRlbmN5KSwgKGdzdF9iYXNlX3NpbmtfcXVlcnlfbGF0ZW5jeSksCgkgIChnc3RfYmFzZV9zaW5rX3dhaXRfY2xvY2spLCAoZ3N0X2Jhc2Vfc2lua19zZW5kX3FvcyksCgkgIChnc3RfYmFzZV9zaW5rX3BlcmZvcm1fcW9zKSwgKGdzdF9iYXNlX3NpbmtfcXVldWVfb2JqZWN0X3VubG9ja2VkKSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhaW5fdW5sb2NrZWQpLCAoZ3N0X2Jhc2Vfc2lua19zZW5kX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwgKGdzdF9iYXNlX3NpbmtfcXVlcnkpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgQVBJOiBnc3RfYmFzZV9zaW5rX3F1ZXJ5X2xhdGVuY3koKSB0byBsZXQgc3ViY2xhc3NlcyBxdWVyeSB0aGUgdXBzdHJlYW0KCSAgbGF0ZW5jeS4KCSAgQVBJOiBnc3RfYmFzZV9zaW5rX2dldF9sYXRlbmN5KCkgdG8gbGV0IHN1YmNsYXNzZXMgcXVlcnkgdGhlIGNvbmZpZ3VyZWQKCSAgbGF0ZW5jeSBpbiB0aGUgc2luay4KCSAgSW1wbGVtZW50IHF1ZXJ5IGFuZCBzZXQgbGF0ZW5jeS4KCSAgVXBkYXRlIHNvbWUgZG9jcy4KCSAgQXMgc3BvdHRlZCBieSBXaWxsIE5ld3RvbiA8d2lsbCBkb3QgbmV3dG9uIGF0IGdtYWlsIGRvdCBjb20+OiBNYWtlIHN1cmUgd2UKCSAgZG9uJ3QgY29udGludWUgcHJlcm9sbCB3aGVuIHdlIGFyZSBmbHVzaGluZy4gRml4ZXMgIzQwNTI4NC4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc3RyZXNzLmM6IChjaGFuZ2Vfc3RhdGVfdGltZW91dCksCgkgIChxdWl0X3RpbWVvdXQpLCAoR1NUX1NUQVJUX1RFU1QpLCAoc3RyZXNzX3N1aXRlKToKCSAgVGVzdCBmb3IgIzQwNTI4NC4KCjIwMDctMDItMTIgMTA6NTA6MjAgKzAwMDAgIFJlbsOpIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJICBBUEk6IGFkZCBHU1RfVEFHX1JFRkVSRU5DRV9MRVZFTCAoIzQwMzU5NykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUmVuw6kgU3RhZGxlciA8bWFpbCBhdCByZW5lc3RhZGxlciBkZT4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChfZ3N0X3RhZ19pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBBUEk6IGFkZCBHU1RfVEFHX1JFRkVSRU5DRV9MRVZFTCAoIzQwMzU5NykuCgoyMDA3LTAyLTExIDE5OjU5OjEyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2xpYnMvTWFrZWZpbGUuYW06IEZpeCBwYXRoIHRvIGNvcmUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICBGaXggcGF0aCB0byBjb3JlIGRvY3MuCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9nZXRfYnlfaW50ZXJmYWNlKSwKCSAgKGdzdF9iaW5faXRlcmF0ZV9hbGxfYnlfaW50ZXJmYWNlKToKCSAgUmVmaXggZG9jcyBieSBhbHNvIHJlbmFtaW5nICdpbnRlcmZhY2UnIHRvICdpZmFjZScgaW4gaW1wbGVtZW50YXRpb24uCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOgoJICAqIGdzdC9nc3RjaGlsZHByb3h5LmM6IChnc3RfY2hpbGRfcHJveHlfYmFzZV9pbml0KToKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfbmV3KToKCSAgRG9jdW1lbnQgbW9yZS4KCjIwMDctMDItMTAgMTg6MzE6MTIgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RiaW4uaDogUmVwbGFjZSBpbnRlcmZhY2UgcGFyYW1ldGVyIG5hbWUgYnkgaWZhY2UgYXMgaW50ZXJmYWNlIGlzIGEgcmVzZXJ2ZWQga2V5d29yZCBpbiBWaXN1YWwgU3R1ZGlvIGZvciBDKysgcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmg6KGdzdF9iaW5fZ2V0X2J5X2ludGVyZmFjZSksCgkgIChnc3RfYmluX2l0ZXJhdGVfYWxsX2J5X2ludGVyZmFjZSk6CgkgIFJlcGxhY2UgaW50ZXJmYWNlIHBhcmFtZXRlciBuYW1lIGJ5IGlmYWNlIGFzIGludGVyZmFjZSBpcwoJICBhIHJlc2VydmVkIGtleXdvcmQgaW4gVmlzdWFsIFN0dWRpbyBmb3IgQysrIHByb2plY3RzIHNvIGl0IHJlbW92ZXMKCSAgYSBidWlsZCBlcnJvciBmb3IgYXBwbGljYXRpb24gZGV2ZWxvcHBlcnMgdXNpbmcgVlMuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6KGdzdF9maWxlX3NyY191cmlfc2V0X3VyaSk6CgkgIEZpeCBhIGJ1ZyBvbiBXaW5kb3dzIGluIHVyaSBmb3JtYXQgY2hlY2suIE5vdyB0aGUgcHJlZml4IGNoZWNrZWQKCSAgaXMgZmlsZTovLyBhbmQgbmV4dCB3ZSBjaGVjayBpZiB0aGUgcGF0aCBhZnRlciBmaWxlOi8vIGlzIGFic29sdXRlLgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0ZGF0YXByb3RvY29sLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0Z3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBleHBvcnRlZCBmdW5jdGlvbnMuCgoyMDA3LTAyLTA5IDE1OjI1OjQ1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkgIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDItMDkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYwoJICAoc2ltcGxlX2xhdW5jaF9saW5lc19zdWl0ZSwgdGVzdF90ZWUpOiBEaXNhYmxlIHRlZSB0ZXN0IHVudGlsIEkKCSAgaGF2ZSB0aW1lIHRvIGZpeCBpdCA6LSgKCjIwMDctMDItMDkgMTM6NTk6MzIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzL2NoZWNrLzogQWRkIEFCSSBjaGVja3MgZm9yIFBQQzMyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMi0wOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbSAobm9pbnN0X0hFQURFUlMpOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3BwYzMyLmg6IEFkZCBBQkkgY2hlY2tzIGZvciBQUEMzMi4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGMzMi5oOiBBZGQgQUJJIGNoZWNrcyBmb3IgUFBDMzIuCgoyMDA3LTAyLTA5IDEzOjQ1OjI3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jICh0ZXN0X3RlZSk6IEFkZCB0ZXN0cyBmb3IgcHVzaCBhbmQgcHVsbCB0ZWUgYmVoYXZpb3IuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAyLTA5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmMgKHRlc3RfdGVlKTogQWRkCgkgIHRlc3RzIGZvciBwdXNoIGFuZCBwdWxsIHRlZSBiZWhhdmlvci4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IERlc2NyaWJlIGhhcy1zaW5rLWxvb3AgYmV0dGVyLCBhbmQKCSAgbWFyayBhcyBkZXByZWNhdGVkIGFzIHdlbGwgYXMgdW5pbXBsZW1lbnRlZC4gSXQgd2FzIGEgY3JhY2sgaWRlYS4KCSAgQWRkIHN1cHBvcnQgZm9yIHRlZSBvcGVyYXRpbmcgaW4gcHVsbCBtb2RlLCBvZmYgYnkgZGVmYXVsdC4KCjIwMDctMDItMDkgMTM6NDE6MjQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jIChsb2FkX2ZlYXR1cmUsIGxvYWRfcGx1Z2luKTogRHJvcCBzb21lIG5vcm1hbC1jYXNlIGxvZ3MgZG93biB0byBMT0csIHJhaXNlIGVycm9ycyB0byBXQVJOSU5HLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMi0wOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYyAobG9hZF9mZWF0dXJlLCBsb2FkX3BsdWdpbik6IERyb3Agc29tZQoJICBub3JtYWwtY2FzZSBsb2dzIGRvd24gdG8gTE9HLCByYWlzZSBlcnJvcnMgdG8gV0FSTklORy4KCSAgKGdzdF9yZWdpc3RyeV94bWxfcmVhZF9jYWNoZSk6IERvbid0IGxvZyBiZWZvcmUgY2FsbGluZyBhIGZ1bmN0aW9uCgkgIHRoYXQgbG9ncy4KCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYyAoZ3N0X3JlZ2lzdHJ5X2ZpbmFsaXplKTogTGVzcyBkZWJ1ZyBvbiBwcm9ncmFtCgkgIGV4aXQgKHJlZ2lzdHJ5IGZpbmFsaXplKS4KCSAgKGdzdF9yZWdpc3RyeV9hZGRfcGx1Z2luLCBnc3RfcmVnaXN0cnlfYWRkX2ZlYXR1cmUpOiBObyBuZWVkIGZvciBhCgkgIERFQlVHIGxvZyB3aGVuIHdlIGVtaXQgc2lnbmFscyB0aGF0IHBlb3BsZSBkb24ndCBldmVuIGhhdmUgdGhlCgkgIGNoYW5jZSB0byBjb25uZWN0IHRvLgoJICAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6IExlc3MgbG9nZ2luZyBpbiB0aGUgbm9ybWFsIGNhc2UuCgoyMDA3LTAyLTA1IDEzOjE1OjQ0ICswMDAwICBNaWNoYWwgQmVuZXMgPG1pY2hhbC5iZW5lc0BpdG9uaXMudHY+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogQ29ycmVjdGx5IGdlbmVyYXRlIEVPUyBmb3Igbm9uLXNlZWthYmxlIGZpbGVzLiBXZSBkb24ndCBoYXZlIGEgdG90YWwgbGVuZ3RoIGZvciB0aGVtIGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNaWNoYWwgQmVuZXMgPG1pY2hhbCBkb3QgYmVuZXMgYXQgaXRvbmlzIGRvdCB0dj4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jcmVhdGVfcmVhZCk6CgkgIENvcnJlY3RseSBnZW5lcmF0ZSBFT1MgZm9yIG5vbi1zZWVrYWJsZSBmaWxlcy4gV2UgZG9uJ3QgaGF2ZSBhIHRvdGFsCgkgIGxlbmd0aCBmb3IgdGhlbSBhbmQgd291bGQgZ2V0IGFuIHVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgaWYgd2Ugb25seQoJICBzcGVjaWFsLWNhc2VkIGZvciByZWd1bGFyIGZpbGVzLiAoRml4ZXM6ICM0MDQ1NjkpCgoyMDA3LTAyLTA1IDA4OjE1OjI2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6IEFkZCB1bml0IHRlc3QgZm9yIHRoZSBHc3RVUklIYW5kbGVyIGludGVyZmFjZSBpbiBmaWxlc3JjLiBUaGlzIGFsc28gdGVzdHMgdGhlIG5ld2x5IGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZmlsZXNyY19zdWl0ZSk6CgkgIEFkZCB1bml0IHRlc3QgZm9yIHRoZSBHc3RVUklIYW5kbGVyIGludGVyZmFjZSBpbiBmaWxlc3JjLiBUaGlzIGFsc28KCSAgdGVzdHMgdGhlIG5ld2x5IGFkZGVkIGZpbGU6Ly9sb2NhbGhvc3QvZm9vL2JhciBzdXBwb3J0LgoKMjAwNy0wMi0wNCAxNjoxNDoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOiBUaGUga2xhc3Mgc3RyaW5nIGlzIG5vdCBhIGhpZXJhcmNoeS4gQWRkIHJlZmVyZW5jZSB0byB0aGUgZGVzaWduIGRvYyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgVGhlIGtsYXNzIHN0cmluZyBpcyBub3QgYSBoaWVyYXJjaHkuIEFkZCByZWZlcmVuY2UgdG8gdGhlIGRlc2lnbiBkb2MKCSAgZm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGNvbW1vbiB0eXBlcy4KCjIwMDctMDItMDIgMTg6MDg6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cXVlcnkuYzogUmVtb3ZlIG9sZCBzdHJ1Y3R1cmUgZmllbGQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X25ld19sYXRlbmN5KToKCSAgUmVtb3ZlIG9sZCBzdHJ1Y3R1cmUgZmllbGQuCgoyMDA3LTAyLTAyIDEyOjI3OjE2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLjEuaW46IEdpdmUgZXhhbXBsZSBmb3IgbmV0d29yayBzdHJlYW1pbmcgKCMzNTE5OTgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgR2l2ZSBleGFtcGxlIGZvciBuZXR3b3JrIHN0cmVhbWluZyAoIzM1MTk5OCkKCjIwMDctMDItMDIgMTE6NDg6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgZG9jcyBmb3IgbmV3IG1ldGhvZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBkb2NzIGZvciBuZXcgbWV0aG9kcy4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfbGF0ZW5jeSksCgkgIChnc3RfZXZlbnRfcGFyc2VfbGF0ZW5jeSk6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIEFkZCBuZXcgTEFURU5DWSBldmVudCB0byBjb25maWd1cmUgbGF0ZW5jeSBpbiBhIHBpcGVsaW5lLgoJICBBUEk6IGdzdF9ldmVudF9uZXdfbGF0ZW5jeQoJICBBUEk6IGdzdF9ldmVudF9wYXJzZV9sYXRlbmN5CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19idWZmZXJpbmcpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X2xvc3RfcHJlcm9sbCksIChnc3RfbWVzc2FnZV9uZXdfcHJlcm9sbGVkKSwKCSAgKGdzdF9tZXNzYWdlX25ld19sYXRlbmN5KSwgKGdzdF9tZXNzYWdlX3BhcnNlX2J1ZmZlcmluZyksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9sb3N0X3ByZXJvbGwpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEFkZGVkIG1lc3NhZ2VzIHVzZWQgaW4gZHJhZnQtbGF0ZW5jeS4KCSAgQVBJOiBnc3RfbWVzc2FnZV9uZXdfbG9zdF9wcmVyb2xsCgkgIEFQSTogZ3N0X21lc3NhZ2VfcGFyc2VfbG9zdF9wcmVyb2xsCgkgIEFQSTogZ3N0X21lc3NhZ2VfbmV3X3ByZXJvbGxlZAoJICBBUEk6IGdzdF9tZXNzYWdlX25ld19sYXRlbmN5CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbmV3X2xhdGVuY3kpLCAoZ3N0X3F1ZXJ5X3NldF9sYXRlbmN5KSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9sYXRlbmN5KToKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgSW1wbGVtZW50ZWQgbmV3IGxhdGVuY3kgcXVlcnkgYXMgaW4gZGVzaWduIGRvYy4KCSAgQVBJOiBnc3RfcXVlcnlfbmV3X2xhdGVuY3kKCSAgQVBJOiBnc3RfcXVlcnlfc2V0X2xhdGVuY3kKCSAgQVBJOiBnc3RfcXVlcnlfcGFyc2VfbGF0ZW5jeQoKMjAwNy0wMi0wMiAxMTozMzoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OiBTbGlnaHQgcmVkZXNpZ24gdG8gYWxsb3cgZm9yIGR5bmFtaWMgbGF0ZW5jeSBhZGp1c3RtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6CgkgIFNsaWdodCByZWRlc2lnbiB0byBhbGxvdyBmb3IgZHluYW1pYyBsYXRlbmN5IGFkanVzdG1lbnRzLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICBGaXggc29tZSB0eXBvcy4KCjIwMDctMDItMDIgMTA6NDE6MjkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBBbGxvdyBmaWxlOi8vbG9jYWxob3N0L2Zvby9iYXIgVVJMcyBhbmQgY29ycmVjdGx5IGZhaWwgZm9yIGV2ZXJ5IG90aGVyIGhvc3RuYW1lIHRoYXQgb25lIHNldHMuIFRoaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2aWV3ZWQgYnk6IFdpbSBUYXltYW5zIDx3aW1AZmx1ZW5kby5jb20+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua191cmlfc2V0X3VyaSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfdXJpX3NldF91cmkpOgoJICBBbGxvdyBmaWxlOi8vbG9jYWxob3N0L2Zvby9iYXIgVVJMcyBhbmQgY29ycmVjdGx5IGZhaWwgZm9yIGV2ZXJ5IG90aGVyCgkgIGhvc3RuYW1lIHRoYXQgb25lIHNldHMuIFRoaXMgd2FzIGdub21ldmZzc3JjIGlzIGxpbmtlZCBmb3IgdGhvc2UgaWYKCSAgaW5zdGFsbGVkIGFzIGl0IGNhbiBoYW5kbGUgaXQgKCM0MDMxNzIpCgoyMDA3LTAyLTAxIDE5OjAwOjQ4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLio6IERvbid0IHB1dCB0aGUgcHJldmlvdXNseSBhZGRlZCBkZXN0cm95IG5vdGlmeSBpbiB0aGUgR3N0Q29sbGVjdERhdGEgc3RydWN0IGFzIGFsbCBpdCcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmlld2VkIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0gYXQgY2VudHJpY3VsYXIgZG90IG5ldD4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2ZpbmFsaXplKSwKCSAgKHVucmVmX2RhdGEpLCAoZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkX2Z1bGwpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgRG9uJ3QgcHV0IHRoZSBwcmV2aW91c2x5IGFkZGVkIGRlc3Ryb3kgbm90aWZ5IGluIHRoZSBHc3RDb2xsZWN0RGF0YQoJICBzdHJ1Y3QgYXMgYWxsIGl0J3MgcGFkZGluZyBpcyBhbHJlYWR5IHVzZWQgYW5kIHdlIGRvbid0IHdhbnQgdG8gYnJlYWsKCSAgQUJJLiBJbnN0ZWFkIHB1dCBpbiB0aGUgcGFkJ3MgR09iamVjdCBkYXRhIGZvciBub3cuIFRoaXMgc2hvdWxkIGJlCgkgIGNsZWFuZWQgdXAgZm9yIDAuMTEgKCM0MDIzOTMpLgoKMjAwNy0wMi0wMSAxNzo1MjoxMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQVBJOiBBZGQgZnVuY3Rpb24gdG8gc3BlY2lmeSBhIGRlc3Ryb3kgbm90aWZpY2F0aW9uIGZvciBjdXN0b20KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmlld2VkIGJ5OiBXaW0gVGF5bWFucyA8d2ltQGZsdWVuZG8uY29tPgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19maW5hbGl6ZSksCgkgICh1bnJlZl9kYXRhKSwgKGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWRfZnVsbCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBBUEk6IEFkZCBmdW5jdGlvbiB0byBzcGVjaWZ5IGEgZGVzdHJveSBub3RpZmljYXRpb24gZm9yIGN1c3RvbQoJICBHc3RDb2xsZWN0RGF0YSB3aGVuIGFkZGluZyBuZXcgcGFkcyBpbiBHc3RDb2xsZWN0UGFkcyAoIzQwMjM5MykuCgoyMDA3LTAyLTAxIDE3OjEwOjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcG8vc3YucG86IFVwZGF0ZSBTd2VkaXNoIHRyYW5zbGF0aW9uICgjMzc4MjU1KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcG8vc3YucG86CgkgIFVwZGF0ZSBTd2VkaXNoIHRyYW5zbGF0aW9uICgjMzc4MjU1KS4KCjIwMDctMDEtMzEgMTE6NDI6NTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDogRml4IHRoZSBwcmV2aW91cyBjaGFuZ2UsIHRoaXMgaXMgYSBsaXN0IG9mIGNhdGVnb3JpZXMgYW5kIG5vdCBhIGhpZXJhcmNoeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJICBGaXggdGhlIHByZXZpb3VzIGNoYW5nZSwgdGhpcyBpcyBhIGxpc3Qgb2YgY2F0ZWdvcmllcyBhbmQgbm90IGEgaGllcmFyY2h5LgoKMjAwNy0wMS0zMSAxMTowMjoyOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OiBBZGQgaW5mbyBhYm91dCBob3cgdG8gZ2V0IGEgbGlzdCBvZiB1c2VkIGNsYXNzZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDoKCSAgQWRkIGluZm8gYWJvdXQgaG93IHRvIGdldCBhIGxpc3Qgb2YgdXNlZCBjbGFzc2VzLgoKMjAwNy0wMS0zMCAxOToxMjo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IERvbid0IGxlYWsgZm91bmQgY2FwcyBpbiBjaGFpbiBmdW5jdGlvbiAobm8gaWRlYSB3aHkgdGhhdCBuZXZlciBzaG93ZWQgdXAgYXMgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluX2RvX3R5cGVmaW5kaW5nKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBEb24ndCBsZWFrIGZvdW5kIGNhcHMgaW4gY2hhaW4gZnVuY3Rpb24gKG5vIGlkZWEgd2h5IHRoYXQgbmV2ZXIKCSAgc2hvd2VkIHVwIGFzIGEgbGVhayBhbnl3aGVyZSkuCgoyMDA3LTAxLTMwIDE1OjA0OjMzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGx1Z2luLmg6IEZpeCBhbmQgZXhwYW5kIEdzdFBsdWdpbkRlc2MgQVBJIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgRml4IGFuZCBleHBhbmQgR3N0UGx1Z2luRGVzYyBBUEkgZG9jcy4KCjIwMDctMDEtMjkgMTU6NTQ6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogY29tbWVudCBhYm91dCByZWZpbmluZyB0aGUgeG1sIGRlcHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBjb21tZW50IGFib3V0IHJlZmluaW5nIHRoZSB4bWwgZGVwcwoJICAqIGRvY3MvbWFudWFscy5tYWs6CgkgIGNvbW1lbnRzIGFib3V0IG1vdmluZyBhd2F5IGZyb20gamFkZSBmb3IgZG9jcwoJICAqIGdzdC9nc3QuYzoKCSAgcmVjb21taXQgdGhlIGlmZGVmcyB0byB1c2UgdGhlIGJpbmFyeSByZWdpc3RyeQoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpOgoJICB0aGlzIGJyZWFrIGlzIG9ic29sZXRlCgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIGJldHRlciBHU1RfRUxFTUVOVF9ERVRBSUxTIGRvY3MsIGFkZCBjb21tZW50IGFib3V0IHRyYW5zbGF0aW9uCgkgICogZ3N0L2dzdGluZm8uaDoKCSAgcmVtb3ZlIGVvbCBzbGFzaAoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9zaWduYWxfb2JqZWN0X2dldF90eXBlKToKCSAgYWRkIEdfVU5MSUtFTFkgYXMgdXN1YWwKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2V2ZW50X2RlZmF1bHQpOgoJICBhZGQgZmFsbCB0cmh1IGNvbW1lbnQKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9pbml0aWFsaXplX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9zdHJpbmcpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGVfY2FjaGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9jaGVja19tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgY29tbWVudCB0eXBvIGFuZCBmb3JtYXR0aW5nCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZSksCgkgIChnc3RfZWxlbWVudF9zdGF0ZV9jaGFuZ2VfcmV0dXJuX2dldF9uYW1lKToKCSAgcmVtb3ZlIG9ic29sZXRlIGJyZWFrcwoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X2RhdGVfZ2V0X3R5cGUpLCAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgYWRkIEZJWE1FIDAuMTEgYW5kIHJlbW92ZSBjcHAgY29tbWVudAoKMjAwNy0wMS0yOSAxNTowMjoxMSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBGaXggcHJpbnQgc3RhdGVtZW50IGluIGFuIGV2ZW4gbW9yZSBwb3J0YWJsZSB3YXkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgRml4IHByaW50IHN0YXRlbWVudCBpbiBhbiBldmVuIG1vcmUgcG9ydGFibGUgd2F5LgoKMjAwNy0wMS0yOSAxMzo0MDozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIEdTVF9ST1VORF9ET1dOXyogbWFjcm9zICgjNDAxNzgxKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQVBJOiBhZGQgR1NUX1JPVU5EX0RPV05fKiBtYWNyb3MgKCM0MDE3ODEpLgoKMjAwNy0wMS0yNyAxODo0NDoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIERvY3VtZW50IHJlZ2lzdHJ5IHNpZ25hbHMgYW5kIG1ha2UgZ3RrLWRvYyBwaWNrIHRoZW0gdXAgKCM0MDEzODEpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfY2xhc3NfaW5pdCk6CgkgIERvY3VtZW50IHJlZ2lzdHJ5IHNpZ25hbHMgYW5kIG1ha2UgZ3RrLWRvYyBwaWNrIHRoZW0gdXAgKCM0MDEzODEpLgoKMjAwNy0wMS0yNiAxODoyNDo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcHdnL2J1aWxkaW5nLXRlc3RhcHAueG1sOiBBZGQgc29tZSBhdWRpb2NvbnZlcnRzIGFuZCBhdWRpb3Jlc2FtcGxlIHRvIHRoZSBwaXBlbGluZSwgYW5kIHNvbWUgbW9yZSBjb21tZW50cyBhbmQgZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy10ZXN0YXBwLnhtbDoKCSAgQWRkIHNvbWUgYXVkaW9jb252ZXJ0cyBhbmQgYXVkaW9yZXNhbXBsZSB0byB0aGUgcGlwZWxpbmUsIGFuZCBzb21lCgkgIG1vcmUgY29tbWVudHMgYW5kIGVycm9yIGhhbmRsaW5nLgoKMjAwNy0wMS0yNiAxMzowNzozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvOiBGaXggdHlwbyAoIzQwMDk4NykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgICogZG9jcy9wd2cvcHdnLnhtbDoKCSAgRml4IHR5cG8gKCM0MDA5ODcpLgoKMjAwNy0wMS0yNiAwOTozNzowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IEluaXQgY2FwcyBmbGFncyB0b28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3Rfc3RhdGljX2NhcHNfZ2V0KToKCSAgSW5pdCBjYXBzIGZsYWdzIHRvby4KCjIwMDctMDEtMjUgMTc6NTQ6MDcgKzAwMDAgIEppbmRyaWNoIE1ha292aWNrYSA8amluZHJpY2gubWFrb3ZpY2tAaXRvbmlzLnR2PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IElmIG5vdCB1c2luZyBtbWFwJ2VkIGZpbGVzIHRyeSB0byBzZWVrIHRvIHRoZSBlbmQgaW5zdGVhZCBvZiB0aGUgc3RhcnQgdG8gZGV0ZXJtaW5lIHdoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSmluZHJpY2ggTWFrb3ZpY2thIDxqaW5kcmljaC5tYWtvdmljayBhdCBpdG9uaXMgZG90IHR2PgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX3N0YXJ0KToKCSAgSWYgbm90IHVzaW5nIG1tYXAnZWQgZmlsZXMgdHJ5IHRvIHNlZWsgdG8gdGhlIGVuZCBpbnN0ZWFkIG9mIHRoZQoJICBzdGFydCB0byBkZXRlcm1pbmUgd2hldGhlciB3ZSBjYW4gc2VlayBhdCBhbGwuIFRoaXMgZml4ZXMgdGhlIGNhc2UKCSAgb2YgMkdCKyBmaWxlcyBvdmVyIE5GUywgd2hlcmUgc2Vla3MgaW4gdGhlIGZpcnN0IDJHQiBjYW4gc3VjY2VlZCBidXQKCSAgc2Vla3MgZm9yIGV2ZXJ5dGhpbmcgYWZ0ZXJ3YXJkcyBmYWlsLiBGaXhlcyAjNDAwNjU2CgoyMDA3LTAxLTI1IDE3OjQxOjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogQWRkIHNvbWUgcmVmY291bnQgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoX2dzdF9jYXBzX2ZyZWUpLCAoZ3N0X3N0YXRpY19jYXBzX2dldCk6CgkgIEFkZCBzb21lIHJlZmNvdW50IGRlYnVnZ2luZy4KCSAgTWFrZSBnc3Rfc3RhdGljX2NhcHNfZ2V0IHRocmVhZHNhZmUsIHdoaWNoIGlzIG5lZWRlZCB3aGVuIGF1dG9wbHVnZ2luZwoJICBpbiBtdWx0aXBsZSBzdHJlYW1pbmcgdGhyZWFkcy4KCjIwMDctMDEtMjUgMTA6NTA6MDMgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgQVBJOiBnc3RfYWRhcHRlcl9jb3B5KCkgdGhhdCBjYW4gcmVkdWNlIHRoZSBhbW91bnQgb2YgbWVtY3B5IHdoZW4gZ2V0dGluZyBkYXRhIGZyb20gdGhlIGFkYXB0ZXIuIEZpeGVzICMzODgyMDEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRGF2aWQgU2NobGVlZiA8ZHMgYXQgc2NobGVlZiBkb3Qgb3JnPgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6IChnc3RfYWRhcHRlcl9jb3B5KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgQVBJOiBnc3RfYWRhcHRlcl9jb3B5KCkgdGhhdCBjYW4gcmVkdWNlIHRoZSBhbW91bnQgb2YgbWVtY3B5IHdoZW4KCSAgZ2V0dGluZyBkYXRhIGZyb20gdGhlIGFkYXB0ZXIuIEZpeGVzICMzODgyMDEuCgoyMDA3LTAxLTI1IDEwOjE0OjA5ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IEluIHByaW50IHN0YXRlbWVudHMsICIleCIgaXMgZm9yIGd1aW50LiBGaXhlcyBidWlsZCBvbiBtYWNvc3guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgSW4gcHJpbnQgc3RhdGVtZW50cywgIiV4IiBpcyBmb3IgZ3VpbnQuIEZpeGVzIGJ1aWxkIG9uIG1hY29zeC4KCjIwMDctMDEtMjQgMTE6MzI6MDAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogU21hbGwgZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgKGdzdF9tdWx0aV9xdWV1ZV9sb29wKToKCSAgU21hbGwgZml4LgoJICAoc2luZ2xlX3F1ZXVlX292ZXJydW5fY2IpLCAoc2luZ2xlX3F1ZXVlX3VuZGVycnVuX2NiKSwKCSAgKHNpbmdsZV9xdWV1ZV9jaGVja19mdWxsKSwgKGdzdF9zaW5nbGVfcXVldWVfbmV3KToKCSAgSW1wbGVtZW50IHNpbmdsZSBxdWV1ZSBncm93dGggc3lzdGVtLgoJICBUaGlzIHVzZXMgdGhlIGV4dHJhLXNpemUgcHJvcGVydGllcywgYW5kIHdpbGwgZ3JvdyBzaW5nbGUgcXVldWVzIGJ5CgkgIHRoYXQgbXVjaCBpZiBvbmUgZ29lcyBmdWxsIHdoZXJlYXMgdGhlcmUgYXJlIG90aGVycyBlbXB0eS4gVGhpcyBpcwoJICBjYWxsZWQgZXh0cmEtbW9kZSBpbiB0aGUgY29kZS4KCSAgV2hlbiBhIHNpbmdsZSBxdWV1ZSdzIGxldmVscyBnbyBiYWNrIGJlbG93IHRoZSBpbml0aWFsIG1heC1zaXplCgkgIGxpbWl0cywgaXQgaXMgbm8gbG9uZ2VyIGluIGV4dHJhLW1vZGUuIFRoaXMgaXMgdG8gZW5zdXJlIHdlIGRvbid0CgkgIGNvbnN1bWUgdG9vIG11Y2ggbWVtb3J5LgoJICBGaXhlcyAjMzk5ODc1CgoyMDA3LTAxLTIzIDEzOjUwOjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBNYWtlIHdhcm5pbmcgYWJvdXQgbGF0ZSBnX3RocmVhZF9pbml0KCkgY2FsbHMgYSBiaXQgbW9yZSBleHBsaWNpdCwgc28gdGhhdCBpdCdzIG1vcmUgb2J2aW91cyB0byBhcHBsaWNhdGlvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGdzdF9pbml0X2dldF9vcHRpb25fZ3JvdXApOgoJICBNYWtlIHdhcm5pbmcgYWJvdXQgbGF0ZSBnX3RocmVhZF9pbml0KCkgY2FsbHMgYSBiaXQgbW9yZSBleHBsaWNpdCwKCSAgc28gdGhhdCBpdCdzIG1vcmUgb2J2aW91cyB0byBhcHBsaWNhdGlvbiBkZXZlbG9wZXJzIHdoYXQgdGhleSBuZWVkCgkgIHRvIGRvIGlmIGEgdXNlciBmaWxlcyBhIGJ1ZyBhZ2FpbnN0IHRoZWlyIGFwcGxpY2F0aW9uLgoKMjAwNy0wMS0yMiAxNjowMDozOSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBSZW1vdmUgcHJldmlvdXMgaGFjayBvZiB1bnNldHRpbmcgdGhlIGZsdXNoaW5nIGZsYWcgZm9yIHRoZSBzb3VyY2UgcGFkIGluc3RlYWQgb2YgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgKGdzdF9tdWx0aV9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCksIChnc3Rfc2luZ2xlX3F1ZXVlX25ldyk6CgkgIFJlbW92ZSBwcmV2aW91cyBoYWNrIG9mIHVuc2V0dGluZyB0aGUgZmx1c2hpbmcgZmxhZyBmb3IgdGhlIHNvdXJjZSBwYWQKCSAgaW5zdGVhZCBvZiBhY3RpdmF0aW5nIGl0LiBJbnN0ZWFkLCBmaXggdGhlIHNvdXJjZSBwYWQgYWN0aXZhdGUgZnVuY3Rpb24KCSAgc28gdGhhdCBpdCBubyBsb25nZXIgZGVwZW5kcyBvbiBoYXZpbmcgYSBwYXJlbnQgc2V0IG9yIG5vdC4KCjIwMDctMDEtMjIgMTQ6MzA6MjcgKzAwMDAgIENhcmxvcyBTYW5tYXJ0aW4gRG9taW5ndWV6IDxjc2FubWFydGluQGlnYWxpYS5jb20+CgoJICBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDogRml4IGV4YW1wbGUgY29kZSwgZ3N0X2VsZW1lbnRfdW5yZWYoKSBkb2Vzbid0IGV4aXN0IGFueSBsb25nZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQ2FybG9zIFNhbm1hcnRpbiBEb21pbmd1ZXogPGNzYW5tYXJ0aW5AaWdhbGlhLmNvbT4KCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSAgRml4IGV4YW1wbGUgY29kZSwgZ3N0X2VsZW1lbnRfdW5yZWYoKSBkb2Vzbid0IGV4aXN0IGFueSBsb25nZXIuCgoyMDA3LTAxLTIxIDIwOjI0OjExICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJlPgoKCSAgZ3N0L2dzdHBhZC5jOiBGaXggdHdvIGRvY3MgdHlwb2VzICgjMzk5MDk0KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXcgYXQgc2t5bmV0IGJlPgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgRml4IHR3byBkb2NzIHR5cG9lcyAoIzM5OTA5NCkuCgoyMDA3LTAxLTE5IDA5OjE1OjIxICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBBZGQgZ3N0LXBsdWdpbnMtYmFzZS9nc3QvdXRpbHMvIHRvIExEX0xJQlJBUllfUEFUSCBzbyB0aGF0IHBsdWdpbnMgZGVwZW5kaW5nIG9uIGxpYmdzdGJhc2V1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgQWRkIGdzdC1wbHVnaW5zLWJhc2UvZ3N0L3V0aWxzLyB0byBMRF9MSUJSQVJZX1BBVEggc28gdGhhdCBwbHVnaW5zCgkgIGRlcGVuZGluZyBvbiBsaWJnc3RiYXNldXRpbHMgY2FuIHdvcmsgaW4gdW5pbnN0YWxsZWQgZW52aXJvbm1lbnQuCgoyMDA3LTAxLTE4IDEyOjAwOjIzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBBZGQgbW9yZSBkb2NzIHJlZ2FyZGluZyB0YWcgbWVyZ2UtbW9kZXMgYW5kIHdoZW4gdG8gc2VuZCB0YWdzLiBGaXggJ3NpbmNlJyBzdGF0ZW1lbnQgZm9yIG5ldyB0YWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgICogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICBBZGQgbW9yZSBkb2NzIHJlZ2FyZGluZyB0YWcgbWVyZ2UtbW9kZXMgYW5kIHdoZW4gdG8gc2VuZCB0YWdzLiBGaXggJ3NpbmNlJwoJICBzdGF0ZW1lbnQgZm9yIG5ldyB0YWcuCgoyMDA3LTAxLTE3IDE0OjMzOjM5ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IFdoZW4gZHluYW1pY2FsbHkgY3JlYXRpbmcgc2luZ2xlIHF1ZXVlcywgYWN0aXZhdGUgc2lua3BhZCBiZWZvcmUgYWRkaW5nIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9zaW5nbGVfcXVldWVfbmV3KToKCSAgV2hlbiBkeW5hbWljYWxseSBjcmVhdGluZyBzaW5nbGUgcXVldWVzLCBhY3RpdmF0ZSBzaW5rcGFkIGJlZm9yZSBhZGRpbmcKCSAgaXQuCgkgIFdlIHNob3VsZCBiZSBkb2luZyB0aGUgc2FtZSB0aGluZyBmb3IgdGhlIHNvdXJjZSBwYWQsIGJ1dCB3ZSBjYW4ndAoJICBzaW5jZSBpdCB3b3VsZCBjYWxsIGEgbWV0aG9kIHdoaWNoIG5lZWRzIHRoZSBwYXJlbnQgdG8gYmUgc2V0IGluIG9yZGVyCgkgIHRvIHdvcmsgcHJvcGVydGx5LiBJbnN0ZWFkIG9mIGFjdGl2YXRpbmcgdGhlIHNvdXJjZSBwYWQsIHdlIGp1c3QgdW5zZXQKCSAgdGhlIGZsdXNoaW5nIGZsYWcsIHdoaWNoIGlzIHRoZSBtaW5pbWFsIHJlcXVpcmVtZW50IGZvciBhZGRpbmcgYSBwYWQKCSAgdG8gYW4gZWxlbWVudCBpbiBhIHN0YXRlIGdyZWF0ZXIgdGhhbiBSRUFEWS4KCjIwMDctMDEtMTcgMTQ6MjY6NDYgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IEFkZCBEWUxEX0xJQlJBUllfUEFUSCBkZWNsYXJhdGlvbnMgc28gd2UgY2FuIGFsc28gdXNlIHRoaXMgc2NyaXB0IG9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgQWRkIERZTERfTElCUkFSWV9QQVRIIGRlY2xhcmF0aW9ucyBzbyB3ZSBjYW4gYWxzbyB1c2UgdGhpcyBzY3JpcHQgb24KCSAgTWFjIE9TIFguCgoyMDA3LTAxLTE3IDEyOjMxOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svOiBBZGQgQUJJIHN0cnVjdHMgZm9yIEhQUEEgKHNlZSAjMzkzNzk2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaHBwYS5oOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2hwcGEuaDoKCSAgQWRkIEFCSSBzdHJ1Y3RzIGZvciBIUFBBIChzZWUgIzM5Mzc5NikuCgoyMDA3LTAxLTE2IDA5OjU3OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogQWN0dWFsbHkgd3JpdGUgQUJJIHN0cnVjdHMgdG8gdGhlIGZpbGUgc3BlY2lmaWVkIGluIHRoZSBHU1RfQUJJIGVudmlyb25tZW50IHZhcmlhYmxlLCBhcyB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfYWJpX2xpc3QpOgoJICBBY3R1YWxseSB3cml0ZSBBQkkgc3RydWN0cyB0byB0aGUgZmlsZSBzcGVjaWZpZWQgaW4gdGhlIEdTVF9BQkkKCSAgZW52aXJvbm1lbnQgdmFyaWFibGUsIGFzIHRoZSBtZXNzYWdlIHdlIHByaW50IGNsYWltcyB3ZSB3b3VsZC4KCjIwMDctMDEtMTUgMTQ6NTE6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3R0YXNrLmM6IEZpeCBoZWFkZXIgY29tbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHRhc2suYzoKCSAgRml4IGhlYWRlciBjb21tZW50LgoKMjAwNy0wMS0xNSAxNDozOTo1MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuYzogQ2hhbmdlIHRhZyB0eXBlIGZyb20gU1RSSU5HIHRvIERPVUJMRS4gQXBwbHkgQ2hhbmdlTG9nIHN1cmdlcnkgZm9yIG15IHByZXZpb3VzIHR3byBlbnRyaWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoX2dzdF90YWdfaW5pdGlhbGl6ZSk6CgkgIENoYW5nZSB0YWcgdHlwZSBmcm9tIFNUUklORyB0byBET1VCTEUuIEFwcGx5IENoYW5nZUxvZyBzdXJnZXJ5IGZvciBteQoJICBwcmV2aW91cyB0d28gZW50cmllcy4KCjIwMDctMDEtMTUgMTM6NTc6MTIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGFkZCB0YWcgc3VwcG9ydCBmb3IgYmVhdC1wZXItbWludXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKF9nc3RfdGFnX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIGFkZCB0YWcgc3VwcG9ydCBmb3IgYmVhdC1wZXItbWludXRlCgoyMDA3LTAxLTE1IDEyOjE4OjQ2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuKjogdXNlIGdsaWIgdHlwZXMsIGNsZWFudXAgY29tbWVudHMsIGltcGVtZW50IGludGVyZmFjZXMgYW5kIHVyaS10eXBlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9pbml0aWFsaXplX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9zdHJpbmcpLCAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9tYWtlX2RhdGEpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGVfY2FjaGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9jaGVja19tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgdXNlIGdsaWIgdHlwZXMsIGNsZWFudXAgY29tbWVudHMsIGltcGVtZW50IGludGVyZmFjZXMgYW5kIHVyaS10eXBlcwoKMjAwNy0wMS0xMyAxMDozMzo0MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2dldF9yYW5nZSwgZ3N0X3BhZF9wdWxsX3JhbmdlKTogQWxsb3cgZ2V0cmFuZ2UoKSB0byByZXR1cm4gYnVmZmVycyB3aXRoIG90aGVyIGNhcHMsIHdoaWxlIHdlIGZpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAxLTEzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9nZXRfcmFuZ2UsIGdzdF9wYWRfcHVsbF9yYW5nZSk6IEFsbG93CgkgIGdldHJhbmdlKCkgdG8gcmV0dXJuIGJ1ZmZlcnMgd2l0aCBvdGhlciBjYXBzLCB3aGlsZSB3ZSBmaXgKCSAgZGVtdXhlcnMgYW5kIHR5cGVmaW5kLCBvciBvdGhlcndpc2UgY2hhbmdlIHBhcnQtbmVnb3RpYXRpb24udHh0LgoKMjAwNy0wMS0xMiAyMToxMzozMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9hY3RpdmF0ZSk6IEZhY3RvciBzdGFydC9zdG9wIGludG8gdGhpcyBwcml2YXRlIGZ1bmN0aW9uIGluc3RlYWQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAxLTEyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fYWN0aXZhdGUpOgoJICBGYWN0b3Igc3RhcnQvc3RvcCBpbnRvIHRoaXMgcHJpdmF0ZSBmdW5jdGlvbiBpbnN0ZWFkIG9mIHBhcnRpYWxseQoJICBpbiBhY3RpdmF0ZSBmdW5jdGlvbnMgYW5kIHBhcnRpYWxseSBpbiB0aGUgY2hhbmdlX3N0YXRlIGZ1bmN0aW9uLgoJICBGaXhlcyBzZXR1cCBiZWZvcmUgdGhlIGVsZW1lbnQgaGFzIGNoYW5nZWQgZnJvbSBSRUFEWS0+UEFVU0VELCBhcwoJICBpcyB0aGUgY2FzZSBpbiBwdWxsLW1vZGUgcGlwZWxpbmVzLgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfYWN0aXZhdGVfcHVzaCkKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zcmNfYWN0aXZhdGVfcHVsbCk6IFJlZmFjdG9yIHRvIHVzZQoJICBnc3RfYmFzZV90cmFuc2Zvcm1fYWN0aXZhdGUoKS4KCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpOiBSZW1vdmVkLCBub3QgbmVlZGVkIGFueSBtb3JlLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19uZWdvdGlhdGVfcHVsbCk6CgkgIFRydW5jYXRlIGJlZm9yZSBmaXhhdGluZy4KCjIwMDctMDEtMTIgMTg6MDY6MjkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19uZWdvdGlhdGVfcHVsbCk6IERvbid0IHNldF9jYXBzKCkgaWYgdGhlIHJlc3VsdCBvZiBmaXhhdGluZyBpcyBBTlksIGFzIGl0Jy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMS0xMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3NpbmtfbmVnb3RpYXRlX3B1bGwpOgoJICBEb24ndCBzZXRfY2FwcygpIGlmIHRoZSByZXN1bHQgb2YgZml4YXRpbmcgaXMgQU5ZLCBhcyBpdCdzIG5vdAoJICBzdXBwb3J0ZWQsIGFuZCBub3QgbmVjZXNzYXJ5IGluIHRoZSBjYXNlIG9mIGEgbGluayB3aXRoIG5vCgkgIHRlbXBsYXRlIGNhcHMgb24gZWl0aGVyIHNpZGUuIEZpeGVzIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYyBpbgoJICBzb21lIHB1bGwtbW9kZSB0ZXN0cy4KCjIwMDctMDEtMTIgMTU6NTY6MDAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChfR3N0QmFzZVRyYW5zZm9ybVByaXZhdGUpOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQsIGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2FjdGl2YS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMS0xMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoX0dzdEJhc2VUcmFuc2Zvcm1Qcml2YXRlKToKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0LCBnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19hY3RpdmF0ZV9wdXNoKQoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NyY19hY3RpdmF0ZV9wdWxsKToKCSAgVHJhY2sgdGhlIGFjdGl2YXRpb24gbW9kZS4KCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKTogSW4gcHVsbCBtb2RlLCB3aGVuIGFjdGl2YXRpbmcgdGhlCgkgIHNyYyBwYWQsIGFmdGVyIGFjdGl2YXRpbmcgdGhlIHNpbmsgcGFkLCBhY3RpdmF0ZSB0aGUgc2luayBwYWQncwoJICBwZWVyLCBhcyBkaXNjdXNzZWQgaW4gcGFydC1uZWdvdGlhdGlvbi50eHQuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlX3NyY19maXhhdGUpOiBBZGQgZml4YXRlCgkgIHZtZXRob2QsIGFzIGluIGJhc2VzaW5rLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDogUmVmb3JtYXQgZG9jcywgYWRkIGZpeGF0ZSB2bWV0aG9kLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19wYWRfc2V0Y2Fwcyk6IEluIHB1bGwKCSAgbW9kZSwgZmlyc3QgcHJveHkgdGhlIHNldGNhcHMgdG8gdGhlIHBlZXIgcGFkLgoJICAoZ3N0X2Jhc2Vfc2lua19wYWRfZml4YXRlKTogQWRkIGEgZml4YXRlIGZ1bmN0aW9uIHRoYXQgY2FsbHMgdGhlCgkgIG5ldyBmaXhhdGUgdm1ldGhvZC4KCSAgKGdzdF9iYXNlX3NpbmtfZGVmYXVsdF9hY3RpdmF0ZV9wdWxsKTogUmVuYW1lIGZyb20KCSAgZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsLgoJICAoZ3N0X2Jhc2Vfc2lua19uZWdvdGlhdGVfcHVsbCk6IE5ldyBmdW5jdGlvbiwgcGVyZm9ybXMgbmVnb3RpYXRpb24KCSAgaW4gcHVsbCBtb2RlIGJlZm9yZSBjYWxsaW5nIDo6YWN0aXZhdGVfcHVsbCgpLgoJICAoZ3N0X2Jhc2Vfc2lua19wYWRfYWN0aXZhdGVfcHVsbCk6IEFjdHVhbGx5IGNhbGwgdGhlIGFjdGl2YXRlX3B1bGwKCSAgdm1ldGhvZCBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uLiBJIGhhdmUgbm8gaWRlYSBob3cKCSAgdGhpcyB3b3JrZWQgYmVmb3JlLiBOZWdvdGlhdGUgYmVmb3JlIGNhbGxpbmcgYWN0aXZhdGVfcHVsbC4KCjIwMDctMDEtMTIgMTU6NDg6MDAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9hY3RpdmF0ZV9wdWxsKTogUmVmdXNlIHRvIGFjdGl2YXRlIHVubGlua2VkIHNpbmsgcGFkcyBpbiBwdWxsIG1vZGUuIEluIGFkZGl0aW9uIHRvIGJlaW5nIGNvcnJlYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMS0xMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfYWN0aXZhdGVfcHVsbCk6IFJlZnVzZSB0byBhY3RpdmF0ZSB1bmxpbmtlZAoJICBzaW5rIHBhZHMgaW4gcHVsbCBtb2RlLiBJbiBhZGRpdGlvbiB0byBiZWluZyBjb3JyZWN0LCBmaXhlcwoJICBmaWxlc3JjICEgZGVjb2RlYmluICEgaWRlbnRpdHkgISBmYWtlc2luay4KCSAgKGdzdF9wYWRfZ2V0X3JhbmdlLCBnc3RfcGFkX3B1bGxfcmFuZ2UpOiBEb24ndCBjYWxsCgkgIGdzdF9wYWRfc2V0X2NhcHMoKSBpZiB0aGUgY2FwcyBjaGFuZ2VzOyBpbnN0ZWFkIGVycm9yIG91dCB3aXRoCgkgIEdTVF9GTE9XX05PVF9ORUdPVElBVEVELCBhcyBkaXNjdXNzZWQgaW4gcGFydC1uZWdvdGlhdGlvbi50eHQuCgoyMDA3LTAxLTEyIDE1OjM5OjU3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDogVXBkYXRlIHdpdGggbW9yZSBwb2xpY3kuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAxLTEyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OiBVcGRhdGUgd2l0aCBtb3JlIHBvbGljeS4KCjIwMDctMDEtMTIgMTI6NDg6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9jaGVjay86IEFkZCBHX0JFR0lOX0RFQ0xTIGFuZCBHX0VORF9ERUNMUy4gTW92ZSBHU1RfQ0hFQ0tfTUFJTiB3aGVyZSBpdCBiZWxvbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5oOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIEFkZCBHX0JFR0lOX0RFQ0xTIGFuZCBHX0VORF9ERUNMUy4gTW92ZSBHU1RfQ0hFQ0tfTUFJTiB3aGVyZSBpdAoJICBiZWxvbmdzLgoKMjAwNy0wMS0xMiAxMDo1Mzo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrLzogQWRkIG1pbmltYWwgdW5pdCB0ZXN0IGZvciBiZWZvcmVtZW50aW9uZWQgR3N0VGFnU2V0dGVyIGJ1Zy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZ3NldHRlci5jOiAoZ3N0X2R1bW15X2VuY19hZGRfaW50ZXJmYWNlcyksCgkgIChnc3RfZHVtbXlfZW5jX2Jhc2VfaW5pdCksIChnc3RfZHVtbXlfZW5jX2NsYXNzX2luaXQpLAoJICAoZ3N0X2R1bW15X2VuY19pbml0KSwgKHRhZ19saXN0X2ZvcmVhY2gpLCAodGFnX3NldHRlcl9saXN0X2xlbmd0aCksCgkgIChHU1RfU1RBUlRfVEVTVCksIChnc3RfdGFnX3NldHRlcl9zdWl0ZSk6CgkgIEFkZCBtaW5pbWFsIHVuaXQgdGVzdCBmb3IgYmVmb3JlbWVudGlvbmVkIEdzdFRhZ1NldHRlciBidWcuCgoyMDA3LTAxLTEyIDEwOjQ4OjQ5ICswMDAwICBSZW7DqSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSAgZ3N0L2dzdHRhZ3NldHRlci5jOiBnc3RfdGFnX2xpc3RfbWVyZ2UoKSByZXR1cm5zIGEgbmV3IGxpc3QsIHNvIGl0J3Mgbm90IHRoZSBiZXN0IGlkZWEgdG8gaW5nb3JlIGl0cyByZXR1cm4gdmFsdWUuIEVmLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUmVuw6kgU3RhZGxlciA8bWFpbCBhdCByZW5lc3RhZGxlciBkb3QgZGU+CgkgICogZ3N0L2dzdHRhZ3NldHRlci5jOiAoZ3N0X3RhZ19zZXR0ZXJfbWVyZ2VfdGFncyk6CgkgIGdzdF90YWdfbGlzdF9tZXJnZSgpIHJldHVybnMgYSBuZXcgbGlzdCwgc28gaXQncyBub3QgdGhlIGJlc3QgaWRlYQoJICB0byBpbmdvcmUgaXRzIHJldHVybiB2YWx1ZS4gRWZmZWN0aXZlbHkgbWVhbnQgdGhhdCB0YWdzIGNvdWxkIG9ubHkKCSAgYmUgbWVyZ2VkIG9uIGEgR3N0VGFnU2V0dGVyIG9uY2UgdXNpbmcgX21lcmdlX3RhZ3MoKS4gRml4ZXMgIzM5NTU1NC4KCSAgQWxzbyBhZGQgZnVuY3Rpb24gZ3VhcmQgdG8gcmVxdWlyZSBhIG5vbi1OVUxMIHRhZ2xpc3QgYXMgaW5wdXQgKGhhcwoJICBhbHdheXMgYmVlbiBzbyBkdWUgdG8gZ3N0X3RhZ19saXN0X2NvcHkoKSwganVzdCBtYWtpbmcgaXQgZXhwbGljaXQpLgoKMjAwNy0wMS0xMSAxNTowMzowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6IFNvbWUgYWRkaXRpb25zOiBtZW50aW9uIG5ldyBBUEkgdGhhdCBpcyBzdXBwb3NlZCB0byBiZSB1c2VkIGF0IHRoZSB2YXJpb3VzIHN0YS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OgoJICBTb21lIGFkZGl0aW9uczogbWVudGlvbiBuZXcgQVBJIHRoYXQgaXMgc3VwcG9zZWQgdG8gYmUgdXNlZCBhdCB0aGUKCSAgdmFyaW91cyBzdGFnZXM7IHNob3J0IGJsb2IgYWJvdXQgbmV3IGdzdC1pbnNwZWN0IGludHJvc3BlY3Rpb24KCSAgb3B0aW9uOyBtZW50aW9uIHBvdGVudGlhbCBmdXR1cmUgcHJvYmxlbSB3aXRoIHBsdWdpbnMgdGhhdCBoYXZlCgkgIGEgZHluYW1pYyBsaXN0IG9mIGVsZW1lbnRzIChzdWNoIGFzIGxhZHNwYSwgcGl0ZmRsbCwgbGlidmlzdWFsKS4KCjIwMDctMDEtMTEgMTQ6MTY6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBBZGQgLS1wcmludC1wbHVnaW4tYXV0by1pbnN0YWxsLWluZm8gb3B0aW9uIHRvIGdzdC1pbnNwZWN0LCBzbyB3ZSBjYW4gaW50cm9zcGVjdCBwbHVnaW4gZmlsZXMgYW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgKHByaW50X3BsdWdpbl9hdXRvbWF0aWNfaW5zdGFsbF9pbmZvX2NvZGVjcyksCgkgIChwcmludF9wbHVnaW5fYXV0b21hdGljX2luc3RhbGxfaW5mb19wcm90b2NvbHMpLAoJICAocHJpbnRfcGx1Z2luX2F1dG9tYXRpY19pbnN0YWxsX2luZm8pLCAobWFpbik6CgkgIEFkZCAtLXByaW50LXBsdWdpbi1hdXRvLWluc3RhbGwtaW5mbyBvcHRpb24gdG8gZ3N0LWluc3BlY3QsIHNvIHdlIGNhbgoJICBpbnRyb3NwZWN0IHBsdWdpbiBmaWxlcyBhbmQgZ2V0IG1hY2hpbmUtcGFyc2FibGUgb3V0cHV0IHRoYXQgY29ycmVzcG9uZHMKCSAgdG8gdGhlIGxhc3QgYml0IG9mIHRoZSBtaXNzaW5nLXBsdWdpbiBpbnN0YWxsZXIgc3RyaW5nIChzbWFsbCBnb3RjaGE6CgkgIGRvZXNuJ3QgdGFrZSBpbnRvIGFjY291bnQgcmFua3MpLgoKMjAwNy0wMS0xMSAxMzo0NTo1MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY29tbWl0IGJpbmFyeSByZWdpc3RyeSAoZGlzYWJsZWQgYnkgZGVmYXVsdCwgc2VlICMzNTk2NTMpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9sb29rdXBfZmVhdHVyZV9sb2NrZWQpLAoJICAoZ3N0X3JlZ2lzdHJ5X2xvb2t1cF9sb2NrZWQpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2luaXRpYWxpemVfbWFnaWMpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3N0cmluZyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZV9jYWNoZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2NoZWNrX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAobG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV94bWxfcmVhZF9jYWNoZSk6CgkgIGNvbW1pdCBiaW5hcnkgcmVnaXN0cnkgKGRpc2FibGVkIGJ5IGRlZmF1bHQsIHNlZSAjMzU5NjUzKQoKMjAwNy0wMS0xMSAxMDo0ODo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzogRml4ICdtYWtlIGNoZWNrJyB0b28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzogKHRlc3RfZ2V0X2FsbG93ZWRfY2Fwcyk6CgkgIEZpeCAnbWFrZSBjaGVjaycgdG9vLgoKMjAwNy0wMS0xMCAyMToyNDowOCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6IEZpeCBhIHR5cG8sIGFkZCBhIGNvdXBsZSBub3Rlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDEtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6IEZpeCBhIHR5cG8sIGFkZCBhIGNvdXBsZQoJICBub3Rlcy4KCjIwMDctMDEtMTAgMjE6MTU6MDggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OiBVcGRhdGUgd2l0aCwgdW0sIG9uZSB3YXkgdGhhdCBwdWxsLW1vZGUgbmVnb3RpYXRpb24gbWlnaHQgd29yaz8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDEtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6IFVwZGF0ZSB3aXRoLCB1bSwgb25lIHdheSB0aGF0CgkgIHB1bGwtbW9kZSBuZWdvdGlhdGlvbiBtaWdodCB3b3JrPwoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfZ2V0X2FsbG93ZWRfY2Fwcyk6IFJlbW92ZSB0aGUgcmVzdHJpY3Rpb24KCSAgdGhhdCB0aGUgcGFkIG11c3QgYmUgYSBzcmMgcGFkOyBtYWtlcyBzZW5zZSB0byBjYWxsIGl0IHRoZSBvdGhlcgoJICB3YXkgaW4gcHVsbCBtb2RlLCBhbmQgdGhlIGxvZ2ljIGlzIHN5bW1ldHJpYyBhbnl3YXkuCgoyMDA3LTAxLTEwIDE5OjI1OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiBJbmNsdWRlIDxzdGRpby5oPiBmb3IgZnNlZWtvKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgSW5jbHVkZSA8c3RkaW8uaD4gZm9yIGZzZWVrbygpLgoKMjAwNy0wMS0xMCAxMDoyMTo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RldmVudC4qOiBSZXNlcnZlIExBVEVOQ1kgZXZlbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBSZXNlcnZlIExBVEVOQ1kgZXZlbnQuCgoyMDA3LTAxLTA5IDE4OjA5OjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6IFVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OgoJICBVcGRhdGVzLgoKMjAwNy0wMS0wOSAxNTozODo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OiBVcGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1sYXRlbmN5LnR4dDoKCSAgVXBkYXRlcy4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgKiBnc3QvZ3N0dHJhY2UuYzoKCSAgU21hbGwgdHlwbyBmaXhlcy4KCjIwMDctMDEtMDkgMTQ6Mzg6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay8uY3ZzaWdub3JlOiBJZ25vcmUgdGVzdC1yZWdpc3RyeS54bWwgYXMgd2VsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svLmN2c2lnbm9yZToKCSAgSWdub3JlIHRlc3QtcmVnaXN0cnkueG1sIGFzIHdlbGwuCgoyMDA3LTAxLTA5IDEyOjM0OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiB1bnJlZiBkYXRhIGF0IHRoZSBlbmQgd2hlbiB3ZSBhcmUgZG9uZSB3aXRoIHRoZSBwYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfcmVtb3ZlX3BhZCk6CgkgIHVucmVmIGRhdGEgYXQgdGhlIGVuZCB3aGVuIHdlIGFyZSBkb25lIHdpdGggdGhlIHBhZC4KCjIwMDctMDEtMDggMjA6MzA6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBnc3RfdXBkYXRlX3JlZ2lzdHJ5KCkgKCMzOTEyOTYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3QuYzogKGxvYWRfcGx1Z2luX2Z1bmMpLCAoc2Nhbl9hbmRfdXBkYXRlX3JlZ2lzdHJ5KSwKCSAgKGluaXRfcG9zdCksIChnc3RfZGVpbml0KSwgKGdzdF91cGRhdGVfcmVnaXN0cnkpOgoJICAqIGdzdC9nc3QuaDoKCSAgQVBJOiBhZGQgZ3N0X3VwZGF0ZV9yZWdpc3RyeSgpICgjMzkxMjk2KS4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cmVnaXN0cnkuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgU2ltcGxlIHVuaXQgdGVzdCBmb3IgdGhlIGFib3ZlLgoKMjAwNy0wMS0wOCAxNjoyMzowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeS5jOiBQbHVnaW4gZXh0ZW5zaW9uIG9uIEhQLVVYIGlzIC5zbCwgYWRkIHRoYXQgdG8gdGhlIGxpc3Qgb2YgYXBwcm92ZWQgcGx1Z2luIGV4dGVuc2lvbnMgKHNlZSAjMzkzNzk2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKToKCSAgUGx1Z2luIGV4dGVuc2lvbiBvbiBIUC1VWCBpcyAuc2wsIGFkZCB0aGF0IHRvIHRoZSBsaXN0IG9mIGFwcHJvdmVkCgkgIHBsdWdpbiBleHRlbnNpb25zIChzZWUgIzM5Mzc5NikuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICB1bG9uZyA9PiBndWxvbmcuIEZpeGVzIGNvbXBpbGF0aW9uIHdpdGggSFAtVVggY29tcGlsZXIuCgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggY29tcGlsYXRpb24gaWYgdmFsZ3JpbmQgaGVhZGVycyBhcmUgbm90IGF2YWlsYWJsZS4KCjIwMDctMDEtMDcgMTA6MjE6MzMgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOiBBZGQgbmV3IGV4cG9ydGVkIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBleHBvcnRlZCBmdW5jdGlvbi4KCSAgKiB3aW4zMi92czYvbGliZ3N0YmFzZS5kc3A6CgkgIEFkZCBnc3RkYXRhcXVldWUuYyB0byB0aGUgYnVpbGQuCgkgICogd2luMzIvdnM2L2xpYmdzdGNvcmVlbGVtZW50cy5kc3A6CgkgIEFkZCBnc3RtdWx0aXF1ZXVlLmMgdG8gdGhlIGJ1aWxkLgoKMjAwNy0wMS0wNiAxNzoxODowMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOiBOZXcgR3N0QmFzZVNpbmtDbGFzcyB2bWV0aG9kLCBhY3RpdmF0ZV9wdWxsKCksIHByb3ZpZGluZyBmb3IgYSB3YXkgdG8gc3BlY2lhbGl6ZSB0aGUgcHJvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAxLTA2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDogTmV3IEdzdEJhc2VTaW5rQ2xhc3Mgdm1ldGhvZCwKCSAgYWN0aXZhdGVfcHVsbCgpLCBwcm92aWRpbmcgZm9yIGEgd2F5IHRvIHNwZWNpYWxpemUgdGhlIHByb2Nlc3Mgb2YKCSAgc3Bhd25pbmcgYSB0aHJlYWQgdG8gcHVsbCBvbiB0aGUgc2luayBwYWQuIFRoZXJlIGlzIGEgZGVmYXVsdAoJICBpbXBsZW1lbnRhdGlvbi4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3NpbmtfcGFkX2FjdGl2YXRlX3B1bGwpCgkgIChnc3RfYmFzZV9zaW5rX3BhZF9hY3RpdmF0ZV9wdXNoLCBnc3RfYmFzZV9zaW5rX3BhZF9hY3RpdmF0ZSkKCSAgKGdzdF9iYXNlX3NpbmtfaW5pdCk6IFJlbmFtZWQgcGFkIGFjdGl2YXRpb24gZnVuY3Rpb25zIChpbnNlcnRpbmcKCSAgIl9wYWQiIGluIHRoZWlyIG5hbWVzKS4gUmVmYWN0b3IgdG8gdXNlIHRoZSBuZXcgYWN0aXZhdGVfcHVsbAoJICB2bWV0aG9kLCBhcyBhcHByb3ByaWF0ZS4KCSAgKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCwgZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsKTogU2V0IHRoZQoJICBkZWZhdWx0IGFjdGl2YXRlX3B1bGwgZnVuY3Rpb24gdG8gc3RhcnQgYSB0YXNrIHB1bGxpbmcgZnJvbSB0aGUKCSAgc2luayBwYWQsIGFzIGJlZm9yZS4KCjIwMDctMDEtMDYgMTc6MDk6MTAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9nZXRfcmFuZ2UsIGdzdF9wYWRfcHVsbF9yYW5nZSk6IFNldCBjYXBzIG9uIHRoZSBwYWRzIGlmIG5lY2Vzc2FyeSwgYXMgaW4gcHVzaCgpL2NoYWluKCkuIFVwZGF0ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMS0wNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfZ2V0X3JhbmdlLCBnc3RfcGFkX3B1bGxfcmFuZ2UpOiBTZXQgY2FwcwoJICBvbiB0aGUgcGFkcyBpZiBuZWNlc3NhcnksIGFzIGluIHB1c2goKS9jaGFpbigpLiBVcGRhdGUgZG9jcy4KCSAgU2hvdWxkbid0IGFmZmVjdCBleGlzdGluZyBwdWxsKCkgdXNhZ2UgYXMgaXQgaXMgY3VycmVudGx5IG9ubHkKCSAgYmVpbmcgdXNlZCBvbiBidWZmZXJzIHdpdGhvdXQgY2Fwcy4KCjIwMDctMDEtMDUgMTY6MzY6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IENhbGwgZ190aHJlYWRfaW5pdCgpIGZpcnN0IHRoaW5nIGluIGdzdF9pbml0KCkgLyBnc3RfY2hlY2tfaW5pdCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChnc3RfaW5pdF9nZXRfb3B0aW9uX2dyb3VwKSwgKGdzdF9pbml0X2NoZWNrKSwKCSAgKGluaXRfcHJlKToKCSAgQ2FsbCBnX3RocmVhZF9pbml0KCkgZmlyc3QgdGhpbmcgaW4gZ3N0X2luaXQoKSAvIGdzdF9jaGVja19pbml0KCkuCgkgIFdoZW4gaW5pdGlhbGlzYXRpb24gaXMgZG9uZSB2aWEgZ3N0X2luaXRfZ2V0X29wdGlvbl9ncm91cCgpIGFuZAoJICBHT3B0aW9uIHBhcnNpbmcsIGlzc3VlIGEgd2FybmluZyBpZiB0aGUgR0xpYiB0aHJlYWQgc3lzdGVtIGhhcyBub3QKCSAgYmVlbiBpbml0aWFsaXNlZCB5ZXQgYnkgdGhlIHRpbWUgZ3N0X2luaXRfZ2V0X29wdGlvbl9ncm91cCgpIGlzCgkgIGNhbGxlZCwgYXMgaXQncyBxdWl0ZSBsaWtlbHkgb3RoZXIgR0xpYiBmdW5jdGlvbnMgc3VjaCBhcwoJICBnX29wdGlvbl9jb250ZXh0X25ldygpIGhhdmUgYmVlbiBjYWxsZWQgYWxyZWFkeSB0aGVuLCBhbmQKCSAgZ190aHJlYWRfaW5pdCgpIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBhbnkgb3RoZXIgR0xpYiBmdW5jdGlvbi4gVGhlCgkgIGFwcGxpY2F0aW9uIGluIHF1ZXN0aW9uIG11c3QgYmUgZml4ZWQgaW4gdGhhdCBjYXNlLCBzaW5jZSBtZW1vcnkKCSAgY29ycnVwdGlvbiBtaWdodCBoYXBwZW4gb3RoZXJ3aXNlLgoJICBXZSBpc3N1ZSB0aGUgd2FybmluZyBiZWNhdXNlIGV2ZW4gaWYgdGhlIEdMaWIgZm9sa3MgZGVjaWRlIHRvIHdvcmsKCSAgYXJvdW5kIHRoZSBwcm9ibGVtIG9uIHRoZWlyIGVuZCBpbiBmdXR1cmUsIHRoaXMgaXMgc3RpbGwgYW4gaXNzdWUKCSAgd2l0aCBhbGwgR0xpYiB2ZXJzaW9ucyA+PSAyLjEwLjAsIHNvIHdlIHNob3VsZCB3YXJuIHVudGlsIHdlIGRlcGVuZAoJICBvbiBhIEdMaWIgdmVyc2lvbiB3ZSBrbm93IHRvIGJlIHNhZmUuCgkgIFVwZGF0ZSBkb2N1bWVudGF0aW9uIGFzIHdlbGwuCgkgIENsb3NlcyBidWcgIzM5MTI3OC4KCjIwMDctMDEtMDUgMTU6NTU6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy86IENhbGwgZ190aHJlYWRfaW5pdCgpIHJlYWxseSByZWFsbHkgZWFybHksIGJlZm9yZSBhbnkgb3RoZXIgR0xpYiBmdW5jdGlvbiAoc2VlICMzNDI1NjQgYW5kIHJlY2VudCBkaXNjdXNzaW9uIG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC10eXBlZmluZC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogKG1haW4pOgoJICBDYWxsIGdfdGhyZWFkX2luaXQoKSByZWFsbHkgcmVhbGx5IGVhcmx5LCBiZWZvcmUgYW55IG90aGVyIEdMaWIKCSAgZnVuY3Rpb24gKHNlZSAjMzQyNTY0IGFuZCByZWNlbnQgZGlzY3Vzc2lvbiBvbiBndGstZGV2ZWwtbGlzdCkuCgoyMDA3LTAxLTA1IDEzOjIzOjAyICswMDAwICBWaW5jZW50IFRvcnJpIDx2dG9ycmlAdW5pdi1ldnJ5LmZyPgoKCSAgZ3N0LzogT24gd2luMzIsIGFsbCB0aGUgX19kZWNsc3BlYyBzdHVmZiBmb3Igc3ltYm9sIGV4cG9ydGluZyBpcyBhcHBhcmVudGx5IG9ubHkgbmVlZGVkIHdpdGggTVNWQywgYnV0IGRvZXNuJ3Qgd29yayB3Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogVmluY2VudCBUb3JyaSAgPHZ0b3JyaSBhdCB1bml2LWV2cnkgZG90IGZyPgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBPbiB3aW4zMiwgYWxsIHRoZSBfX2RlY2xzcGVjIHN0dWZmIGZvciBzeW1ib2wgZXhwb3J0aW5nIGlzCgkgIGFwcGFyZW50bHkgb25seSBuZWVkZWQgd2l0aCBNU1ZDLCBidXQgZG9lc24ndCB3b3JrIHdpdGggTWluZ1cuCgkgIEZpeGVzIGNvbXBpbGF0aW9uIHdpdGggTWluZ1cgYW5kICMzOTE5MDkuCgoyMDA3LTAxLTA1IDExOjU3OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IENoYW5nZSBzb21lIEdTVF9FUlJPUl9PQkpFQ1QgdGhhdCBhcmVuJ3QgcmVhbGx5IGVycm9ycyB0bwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKToKCSAgQ2hhbmdlIHNvbWUgR1NUX0VSUk9SX09CSkVDVCB0aGF0IGFyZW4ndCByZWFsbHkgZXJyb3JzIHRvCgkgIEdTVF9XQVJOSU5HX09CSkVDVCBpbiBvcmRlciB0byByZWR1Y2UgdGVybWluYWwgc3BhbS4KCjIwMDctMDEtMDQgMTM6NTQ6MjUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOiBkaXNhYmxlIHRlc3QgYWdhaW4sIGFzIHRoZXJlIHNlZW0gdG8gYmUgc3RpbGwgcmFjZSBwcm9ibGVtcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZGlzYWJsZSB0ZXN0IGFnYWluLCBhcyB0aGVyZSBzZWVtIHRvIGJlIHN0aWxsIHJhY2UgcHJvYmxlbXMKCjIwMDctMDEtMDQgMTM6Mzc6MDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrLzogZW5hYmxlIHF1ZXVlIHRlc3QgYWdhaW4sIGFkZCB0ZXN0cyBmb3IgdGhlIGxlYWt5IGJlaGF2aW91cgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOiAocXVldWVfb3ZlcnJ1biksIChxdWV1ZV91bmRlcnJ1biksCgkgIChHU1RfU1RBUlRfVEVTVCksIChxdWV1ZV9zdWl0ZSk6CgkgIGVuYWJsZSBxdWV1ZSB0ZXN0IGFnYWluLCBhZGQgdGVzdHMgZm9yIHRoZSBsZWFreSBiZWhhdmlvdXIKCjIwMDctMDEtMDIgMTc6MDE6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBDb21waWxlIGFkYXB0ZXIgdGVzdC9leGFtcGxlIG9ubHkgaWYgdGhlIHJlcXVpcmVkIGhlYWRlcnMgYXJlIGF2YWlsYWJsZSAoZml4ZXMgIzM5MTkxNSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgQ29tcGlsZSBhZGFwdGVyIHRlc3QvZXhhbXBsZSBvbmx5IGlmIHRoZSByZXF1aXJlZCBoZWFkZXJzIGFyZQoJICBhdmFpbGFibGUgKGZpeGVzICMzOTE5MTUpLgoKMjAwNy0wMS0wMiAwOTozMTo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdGVsbCB1cyB3aGF0J3Mgbm90IGltcGxlbWVudGVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0ZWxsIHVzIHdoYXQncyBub3QgaW1wbGVtZW50ZWQKCjIwMDctMDEtMDIgMDk6MzE6MTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBidW1wIHRvIENWUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYnVtcCB0byBDVlMKCjIwMDctMDEtMDIgMDY6MTQ6MDYgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBSZXN0b3JlIHRoZSBwcmV2aW91cyBzaWduYWwgaGFuZGxlciBmb3IgU0lHU0VHViBpbnN0ZWFkIG9mIHNldHRpbmcgdG8gZGVmYXVsdCwgc2luY2Ugd2UgbWF5IGhhdmUgc3RvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgUmVzdG9yZSB0aGUgcHJldmlvdXMgc2lnbmFsIGhhbmRsZXIgZm9yIFNJR1NFR1YgaW5zdGVhZCBvZgoJICBzZXR0aW5nIHRvIGRlZmF1bHQsIHNpbmNlIHdlIG1heSBoYXZlIHN0b2xlbiBpdCBhd2F5IGZyb20KCSAgc29tZW9uZS4gIChpLmUuLCBNb25vKQoKMjAwNi0xMi0yNiAxNTo1NToyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6IFNvbWUgc21hbGwgYWRkaXRpb25zIGFuZCBjbGFyaWZpY2F0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDoKCSAgU29tZSBzbWFsbCBhZGRpdGlvbnMgYW5kIGNsYXJpZmljYXRpb25zLgoKMjAwNi0xMi0yNiAxNTowNjo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBNYWtlIHN1cmUgd2UgZG9uJ3QgcGFzcyBub24tVVRGLTggc3RyaW5ncyB0byBnX21hcmt1cF9lc2NhcGUoKSwgc2luY2UgdGhhdCBjYW4gbGVhZCB0byByYW5kb20gbS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGdzdF9yZWdpc3RyeV9zYXZlX2VzY2FwZWQpOgoJICBNYWtlIHN1cmUgd2UgZG9uJ3QgcGFzcyBub24tVVRGLTggc3RyaW5ncyB0byBnX21hcmt1cF9lc2NhcGUoKSwKCSAgc2luY2UgdGhhdCBjYW4gbGVhZCB0byByYW5kb20gbWVtb3J5IGNvcnJ1cHRpb25zIGFuZCBjcmFzaGVzCgkgIChtYXkgb3IgbWF5IG5vdCBiZSByZWxhdGVkIHRvICMzODMyNDQsICMzODY3MTEsIGFuZCAjMzg2NzExKS4KCjIwMDYtMTItMjEgMTU6NTQ6MDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrLzogc3luYyAuY3ZzaWdub21lIGFuZCBDTEVBTkZJTEVTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHN5bmMgLmN2c2lnbm9tZSBhbmQgQ0xFQU5GSUxFUwoKMjAwNi0xMi0yMSAxNTozMjowMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06IGZpeCBkaXN0Y2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGZpeCBkaXN0Y2hlY2sKCjIwMDYtMTItMjEgMTU6MDA6MDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDogdHdvIHRpbnkgYWRkaXRpb25hbCBjb21tZW50cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgIHR3byB0aW55IGFkZGl0aW9uYWwgY29tbWVudHMKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGRvYyBmaXhpbmcKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOiAocXVldWVfb3ZlcnJ1biksIChxdWV1ZV91bmRlcnJ1biksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgIGRpc2FibGUgdGVzdCBmb3Igbm93LCB1bmxlc3MgaXQgZ2V0cyBmaXhlZAoKMjAwNi0xMi0yMSAxNDoyNDo1NCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzogZml4IHJhY2UgaW4gdW5kZXJydW4gdGVzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOiAocXVldWVfb3ZlcnJ1biksIChxdWV1ZV91bmRlcnJ1biksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgIGZpeCByYWNlIGluIHVuZGVycnVuIHRlc3QKCjIwMDYtMTItMjEgMDk6NTg6MjUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6IGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzogKHF1ZXVlX292ZXJydW4pLCAocXVldWVfdW5kZXJydW4pLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICB0cnkgdG8gbmFycm93IHRlc3QgZmFpbHVyZQoKMjAwNi0xMi0yMSAwOTozNzo1NiArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogVXNlIGdfcmFuZG9tX2ludF9yYW5nZSgpLCBzaW5jZSBpdCBwcm9kdWNlcyBiZXR0ZXIgcmFuZG9tIG51bWJlcnMgaW4gYSByYW5nZSB0aGFuIGFsbW8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIFVzZSBnX3JhbmRvbV9pbnRfcmFuZ2UoKSwgc2luY2UgaXQgcHJvZHVjZXMgYmV0dGVyIHJhbmRvbQoJICBudW1iZXJzIGluIGEgcmFuZ2UgdGhhbiBhbG1vc3QtY29ycmVjdCBmbG9hdGluZyBwb2ludCBjb2RlLgoKMjAwNi0xMi0yMSAwODoxMjoyOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogZG8gbm90IGF1dG9tYXRpY2FsbHkgKGRlKWFjdGl2YXRlIHBhZHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19zZXR1cF9zcmNfcGFkKSwKCSAgKGdzdF9jaGVja190ZWFyZG93bl9zcmNfcGFkKSwgKGdzdF9jaGVja19zZXR1cF9zaW5rX3BhZCksCgkgIChnc3RfY2hlY2tfdGVhcmRvd25fc2lua19wYWQpOgoJICBkbyBub3QgYXV0b21hdGljYWxseSAoZGUpYWN0aXZhdGUgcGFkcwoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6IChxdWV1ZV9vdmVycnVuKSwgKHF1ZXVlX3VuZGVycnVuKSwKCSAgKHNldHVwX3F1ZXVlKSwgKGNsZWFudXBfcXVldWUpLCAoR1NUX1NUQVJUX1RFU1QpLCAocXVldWVfc3VpdGUpOgoJICBhZGQgbmV3LCB5ZXQgc2ltcGxlIHRlc3RzIGZvciBxdWV1ZQoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzogKGNsZWFudXBfZmFrZXNyYyk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmRzcmMuYzogKGNsZWFudXBfZmRzcmMpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzogKGNsZWFudXBfZmlsZXNyYyksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzogKGNsZWFudXBfaWRlbnRpdHkpOgoJICBjb25zaXN0ZW50IHBhZCAoZGUpYWN0aXZhdGlvbgoKMjAwNi0xMi0yMCAxOTowNjowMiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBGaXggdHdvIGRvYyB0eXBvcyAoIzM4Nzg2NikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2ViYXN0aWFuIERyw7ZnZSAgPHNsb21vIHVidW50dSBjb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBGaXggdHdvIGRvYyB0eXBvcyAoIzM4Nzg2NikuCgoyMDA2LTEyLTE5IDE1OjA2OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtZHBhcmFtcy54bWw6IEZpeCB0eXBvIChnX29iamVjdF9jb250cm9sX3Byb3BlcnRpZXMoKSBkb2Vzbid0IGV4aXN0KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkgIEZpeCB0eXBvIChnX29iamVjdF9jb250cm9sX3Byb3BlcnRpZXMoKSBkb2Vzbid0IGV4aXN0KS4KCjIwMDYtMTItMTkgMTI6Mzg6MDAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBGaW5lIHR1bmUgdGhlIGNhc2VzIHdoZXJlIHRoZSBzZWdtZW50IHN0YXJ0L3N0b3AgdmFsdWVzIGFyZSByZWFsbHkgdXBkYXRlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9zZWVrKToKCSAgRmluZSB0dW5lIHRoZSBjYXNlcyB3aGVyZSB0aGUgc2VnbWVudCBzdGFydC9zdG9wIHZhbHVlcyBhcmUgcmVhbGx5CgkgIHVwZGF0ZWQuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkIHRlc3RzIGZvciB0aGUgcmV0dXJuIHZhbHVlcyBvZiBnc3Rfc2VnbWVudF9zZXRfc2VlaygpLgoKMjAwNi0xMi0xOSAxMTowNDo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogRG9jcyB0eXBvIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBEb2NzIHR5cG8gZml4LgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9jbGFzc19pbml0KSwKCSAgKGdzdF9xdWV1ZV9pbml0KToKCSAgRml4IGluY29ycmVjdCBkb2N1bWVudGF0aW9uIGFuZCBmbGVzaCBpdCBvdXQgYSBiaXQgbW9yZS4KCSAgU2V0IGRlZmF1bHQgdmFsdWVzIGZvciB0aGUgbWF4IHByb3BlcnRpZXMgb24gdGhlIEdQYXJhbVNwZWMgYXMgd2VsbCwKCSAgc28gaXQgc2hvd3MgdXAgY29ycmVjdGx5IGluIGdzdC1pbnNwZWN0LgoKMjAwNi0xMi0xOCAxNjowMTozMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBDb3JyZWN0IGRvY3Mgb2YgcXVldWUsIGFkZCBtb3JlIGRldGFpbCBhbmQgY3Jvc3NsaW5rIGl0IG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKHF1ZXVlX2xlYWt5X2dldF90eXBlKToKCSAgQ29ycmVjdCBkb2NzIG9mIHF1ZXVlLCBhZGQgbW9yZSBkZXRhaWwgYW5kIGNyb3NzbGluayBpdCBtb3JlLgoKMjAwNi0xMi0xNiAxOTozMzoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogUHJpbnQgYWRkaXRpb25hbCBkZWJ1ZyBpbmZvIHdoZW4gdGhlIHN0cmVhbSBpc24ndCBwZXJmZWN0bHkgdGltZXN0YW1wZWQ7IGRvbid0IHRyeSB0by4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2hlY2tfcGVyZmVjdCk6CgkgIFByaW50IGFkZGl0aW9uYWwgZGVidWcgaW5mbyB3aGVuIHRoZSBzdHJlYW0gaXNuJ3QgcGVyZmVjdGx5CgkgIHRpbWVzdGFtcGVkOyBkb24ndCB0cnkgdG8gdXNlIGludmFsaWQgZHVyYXRpb25zLgoKMjAwNi0xMi0xNiAxNjoxNDowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOiBEaXN0IG5ldyBkZXNpZ24gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgIERpc3QgbmV3IGRlc2lnbiBkb2NzLgoKMjAwNi0xMi0xNiAxNToxNzo1NCArMDAwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkQGx1b24ubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy4qOiBBZGQgcmVmY291bnRpbmcgdG8gdGhlIGNvbGxlY3RwYWRzIGRhdGEgc28gd2UgY2FuIHRyYWNrIHdoZW4gaXQncyBzYWZlIHRvIGZyZWUgdGhlIGRhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2pvZXJkIFNpbW9ucyA8c2pvZXJkIGF0IGx1b24gZG90IG5ldD4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChyZWZfZGF0YSksICh1bnJlZl9kYXRhKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZCksIChnc3RfY29sbGVjdF9wYWRzX3JlbW92ZV9wYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zdG9wKSwgKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19jaGFpbik6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBBZGQgcmVmY291bnRpbmcgdG8gdGhlIGNvbGxlY3RwYWRzIGRhdGEgc28gd2UgY2FuIHRyYWNrIHdoZW4gaXQncyBzYWZlCgkgIHRvIGZyZWUgdGhlIGRhdGEuIEZpeGVzICMzODMzODIuCgoyMDA2LTEyLTE1IDE3OjA5OjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBBdXRvbWF0aWNhbGx5IGFjdGl2YXRlL2RlYWN0aXZhdGUgcGFkcyB3aGVuIHRoZXkgYXJlIGFkZGVkIHRvIGEgc3RhcnRlZC9zdG9wZWQgY29sbGVjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3JlbW92ZV9wYWQpOgoJICBBdXRvbWF0aWNhbGx5IGFjdGl2YXRlL2RlYWN0aXZhdGUgcGFkcyB3aGVuIHRoZXkgYXJlIGFkZGVkIHRvIGEKCSAgc3RhcnRlZC9zdG9wZWQgY29sbGVjdHBhZHMuCgoyMDA2LTEyLTE1IDE2OjAxOjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogU2V0IHBhZHMgdG8gRkxVU0hJTkcgd2hlbiB0aGV5IGFyZSBjcmVhdGVkLiBDaGVjaywgd2FybiBhbmQgZml4IHdoZW4gYSBkZW11eGVyIGFkZHMgYW4gaW5hY3RpdmUgcGFkIHRvIGl0c2VsZiB3Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9hZGRfcGFkKToKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfbmV3X2Z1bGwpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfaW5pdCk6CgkgIFNldCBwYWRzIHRvIEZMVVNISU5HIHdoZW4gdGhleSBhcmUgY3JlYXRlZC4gQ2hlY2ssIHdhcm4gYW5kIGZpeCB3aGVuIGEKCSAgZGVtdXhlciBhZGRzIGFuIGluYWN0aXZlIHBhZCB0byBpdHNlbGYgd2hlbiBydW5uaW5nLiBGaXhlcyAjMzM5MzI2LgoKMjAwNi0xMi0xNSAxNTo0OToyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IEV4cG9zZSBkZWZhdWx0IGVsZW1lbnQgc2VuZF9ldmVudCBhbmQgcXVlcnkgaGFuZGxpbmcgYXMgdm1ldGhvZHMgdGhhdCBzdWJjbGFzc2VzIGNhbiBjaGFpbiB1cCB0by4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NsYXNzX2luaXQpLAoJICAoZ3N0X2VsZW1lbnRfZGVmYXVsdF9zZW5kX2V2ZW50KSwgKGdzdF9lbGVtZW50X3NlbmRfZXZlbnQpLAoJICAoZ3N0X2VsZW1lbnRfZGVmYXVsdF9xdWVyeSksIChnc3RfZWxlbWVudF9xdWVyeSk6CgkgIEV4cG9zZSBkZWZhdWx0IGVsZW1lbnQgc2VuZF9ldmVudCBhbmQgcXVlcnkgaGFuZGxpbmcgYXMgdm1ldGhvZHMgdGhhdAoJICBzdWJjbGFzc2VzIGNhbiBjaGFpbiB1cCB0by4KCjIwMDYtMTItMTUgMTU6Mzk6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBTbWFsbCBkb2N1bWVudGF0aW9uIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2Z1bmMpOgoJICBTbWFsbCBkb2N1bWVudGF0aW9uIGZpeGVzLgoKMjAwNi0xMi0xNSAxNToyNjo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OiBDaGVja2VkIGluIGRyYWZ0IGZvciBoYW5kbGluZyBsYXRlbmN5IGluIHBpcGVsaW5lcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6CgkgIENoZWNrZWQgaW4gZHJhZnQgZm9yIGhhbmRsaW5nIGxhdGVuY3kgaW4gcGlwZWxpbmVzLgoKMjAwNi0xMi0xNSAwMDoxNjo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBhZGRpbmcgLmRvYXAgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgKiBnc3RyZWFtZXIuZG9hcDoKCSAgKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgYWRkaW5nIC5kb2FwIGZpbGUKCjIwMDYtMTItMTQgMTQ6MDY6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IGluaXRfcHJlKCkgYW5kIGluaXRfcG9zdCgpIG1pZ2h0IGJlIGNhbGxlZCB2aWEgb3VyIEdPcHRpb25Hcm91cCBvciBmcm9tIGdzdF9pbml0KCksIGFuZCB3ZSBzaG91bGQgc2tpcCBib3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wcmUpLCAoaW5pdF9wb3N0KToKCSAgaW5pdF9wcmUoKSBhbmQgaW5pdF9wb3N0KCkgbWlnaHQgYmUgY2FsbGVkIHZpYSBvdXIgR09wdGlvbkdyb3VwIG9yCgkgIGZyb20gZ3N0X2luaXQoKSwgYW5kIHdlIHNob3VsZCBza2lwIGJvdGggb2YgdGhlbSBpZiB3ZSd2ZSBhbHJlYWR5CgkgIGJlZW4gaW5pdGlhbGlzZWQsIG90aGVyd2lzZSB3ZSB3aWxsIGluaXQgc29tZSB0aGluZ3MgdHdpY2Ugb3IgYWRkCgkgIHR3byBkZWZhdWx0IGxvZyBmdW5jdGlvbnMuCgoyMDA2LTEyLTEzIDEyOjQ2OjI4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6IE5vLCBnc3RfbWFpbl9sb29wIGRvZXMgbm90IGV4aXN0LiBJdHMgZ19tYWluX2xvb3AuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJICBObywgZ3N0X21haW5fbG9vcCBkb2VzIG5vdCBleGlzdC4gSXRzIGdfbWFpbl9sb29wLgoJICBEaXNjb3ZlcmVkIGJ5IHNvbWVib2R5IHdobyBhYnVzZWQgdGhlIGNvcHktcGFzdGUgdGVjaG5pcXVlIG9mIGNvZGluZyA6KQoKMjAwNi0xMi0xMyAxMTowNToyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBMb2cgZ2hvc3RwYWQgZGVidWcgc3R1ZmYgdG8gdGhlIEdTVF9QQURTIGNhdGVnb3J5IGFzIHdlbGwgcmF0aGVyIHRoYW4ganVzdCB0byB0aGUgZGVmYXVsdCBjYXRlZ29yeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIExvZyBnaG9zdHBhZCBkZWJ1ZyBzdHVmZiB0byB0aGUgR1NUX1BBRFMgY2F0ZWdvcnkgYXMgd2VsbCByYXRoZXIKCSAgdGhhbiBqdXN0IHRvIHRoZSBkZWZhdWx0IGNhdGVnb3J5LgoKMjAwNi0xMi0xMiAxMzo1MzowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBzb21lIGJhc2ljIHN5c3RlbSBkZXRhaWxzIHN1Y2ggYXMgT1MgYW5kIGFyY2hpdGVjdHVyZSB0byB0aGUgZGVidWcgb3V0cHV0IGlmIHBvc3NpYmxlLCBjb3VydGVzeSBvZiB1bmFtZSgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wcmUpOgoJICBBZGQgc29tZSBiYXNpYyBzeXN0ZW0gZGV0YWlscyBzdWNoIGFzIE9TIGFuZCBhcmNoaXRlY3R1cmUKCSAgdG8gdGhlIGRlYnVnIG91dHB1dCBpZiBwb3NzaWJsZSwgY291cnRlc3kgb2YgdW5hbWUoKS4KCjIwMDYtMTItMTEgMTM6NDA6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2dzdC9ydW5uaW5nLnhtbDogRG9jdW1lbnQgR1NUX1JFR0lTVFJZX0ZPUksgYW5kIEdTVF9ERUJVR19OT19DT0xPUiBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICBEb2N1bWVudCBHU1RfUkVHSVNUUllfRk9SSyBhbmQgR1NUX0RFQlVHX05PX0NPTE9SCgkgIGVudmlyb25tZW50IHZhcmlhYmxlcy4KCjIwMDYtMTItMDkgMjA6MjM6MTAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiBJdCBpcyBhY2NlcHRhYmxlIHRvIGhhdmUgYSByZWZjb3VudCBvZiAyIG9yIDMgYXQgdGhpcyBwb2ludCBpbiB0aGUgdGVzdCwgYmVjYXVzZSB0aGUgcGlwZWxpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgSXQgaXMgYWNjZXB0YWJsZSB0byBoYXZlIGEgcmVmY291bnQgb2YgMiBvciAzIGF0IHRoaXMgcG9pbnQgaW4gdGhlCgkgIHRlc3QsIGJlY2F1c2UgdGhlIHBpcGVsaW5lIG1pZ2h0IGJlIGp1c3QgcG9zdGluZyBpdHMgc3RhdGVfY2hhbmdlCgkgIG1lc3NhZ2UuIFRoZSBuZXh0IGxpbmUgdGhlbiB3YWl0cyBmb3IgdGhhdCBtZXNzYWdlIHRvIGFwcGVhciB1c2luZwoJICBidXNfcG9sbCwgc28gdGhhdCBzaG91bGQgYmUgZmluZSB0b28uCgoyMDA2LTEyLTA5IDE4OjQ4OjU3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3QuYzogSWdub3JlIEVJTlRSIHdoZW4gcmVhZGluZyBmcm9tIHRoZSBjaGlsZCByZWdpc3RyeSBwaXBlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChlbnN1cmVfY3VycmVudF9yZWdpc3RyeV9mb3JraW5nKToKCSAgSWdub3JlIEVJTlRSIHdoZW4gcmVhZGluZyBmcm9tIHRoZSBjaGlsZCByZWdpc3RyeSBwaXBlLgoJICBFeHBsaWNpdGx5IGlnbm9yZSB0aGUgcmV0dXJuIHZhbHVlIGZyb20gY2xvc2UsIHNpbmNlIGl0IG1ha2VzIG5vCgkgIGRpZmZlcmVuY2UuCgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF9taW5pX29iamVjdF9yZWYpLAoJICAoZ3N0X21pbmlfb2JqZWN0X3VucmVmKToKCSAgV2hlbiBkZWJ1Z2dpbmcgcmVmY291bnRzLCBjaGVjayBHU1RfSVNfTUlOSV9PQkpFQ1QgYW5kIHdhcm4uCgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChfcHJpdl9nc3RfcmVnaXN0cnlfcmVtb3ZlX2NhY2hlX3BsdWdpbnMpOgoJICBXaGVuIHJlbW92aW5nIGNhY2hlZCBwbHVnaW5zLCByZW1vdmUgdGhlaXIgZmVhdHVyZXMgdG9vLCBzbyB0aGV5J3JlCgkgIG5vdCB2aXNpYmxlIGFmdGVyIHRoZXkndmUgZGlzYXBwZWFyZWQuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChwcmVwYXJlX2xpbmtfbWF5YmVfZ2hvc3RpbmcpOgoJICBJbiB0aGUgdW5saWtlbHkgY2FzZSB0aGF0IHdlIGFyZSBsaW5raW5nIHBhZHMgd2l0aCBubyBwYXJlbnRzLCBkb24ndAoJICBjcmFzaCB0cnlpbmcgdG8gZ2V0IHRoZSBub24tZXhpc3RlbnQgcGFyZW50IGJpbi4KCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBPdXRwdXQgZGVidWcgaW4gdGhlIFBJUEVMSU5FIGNhdGVnb3J5CgoyMDA2LTEyLTA4IDE2OjEyOjQ0ICswMDAwICBSZW7DqSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSAgZ3N0L2dzdGNsb2NrLmM6IFJlamVjdCBpbnZhbGlkIGNsb2NrIHRpbWVzIGZvciBpbnRlcnZhbCBvZiBwZXJpb2RpYyBpZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUmVuw6kgU3RhZGxlciA8bWFpbCBhdCByZW5lc3RhZGxlciBkb3QgZGU+CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfbmV3X3BlcmlvZGljX2lkKToKCSAgUmVqZWN0IGludmFsaWQgY2xvY2sgdGltZXMgZm9yIGludGVydmFsIG9mIHBlcmlvZGljIGlkcy4KCSAgRml4ZXMgIyMzODM1MDYuCgoyMDA2LTEyLTA3IDEyOjExOjE0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEZpeCByZWZjb3VudGluZyBvZiBnc3RfcGx1Z2luX2ZlYXR1cmVfbG9hZCB0byBtYXRjaCB0aGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9mYWN0b3J5X2NyZWF0ZSk6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogKGdzdF9wbHVnaW5fZmVhdHVyZV9sb2FkKToKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6IChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfY2FsbF9mdW5jdGlvbik6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfaW5mbyk6CgkgIEZpeCByZWZjb3VudGluZyBvZiBnc3RfcGx1Z2luX2ZlYXR1cmVfbG9hZCB0byBtYXRjaCB0aGUgZG9jcy4KCSAgRml4ZXM6ICMzODAxMjkKCjIwMDYtMTItMDcgMTA6NTk6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEltcHJvdmUgZGVidWdnaW5nIG9mIGV2ZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIEltcHJvdmUgZGVidWdnaW5nIG9mIGV2ZW50cy4KCjIwMDYtMTItMDcgMTA6NTE6MzYgKzAwMDAgIFJlbsOpIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJICBnc3QvZ3N0Y2xvY2suYzogTWFrZSBwZXJpb2QgaWRzIGFkZCB0aGUgaW50ZXJ2YWwgdG8gdGhlIG9yaWdpYWwgcmVxdWVzdGVkIHRpbWUgaW5zdGVhZCBvZiB0aGUgcG9zc2libHkgdXBkYXRlZCB0aW1lIHcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBSZW7DqSBTdGFkbGVyIDxtYWlsIGF0IHJlbmVzdGFkbGVyIGRvdCBkZT4KCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19pZF93YWl0KToKCSAgTWFrZSBwZXJpb2QgaWRzIGFkZCB0aGUgaW50ZXJ2YWwgdG8gdGhlIG9yaWdpYWwgcmVxdWVzdGVkIHRpbWUgaW5zdGVhZAoJICBvZiB0aGUgcG9zc2libHkgdXBkYXRlZCB0aW1lIHdoaWNoIGNhbiBiZSB3cm9uZyB3aGVuIHRoZXJlIGFyZSBtdWx0aXBsZQoJICB3YWl0ZXJzIGZvciB0aGUgc2FtZSBpZC4gRml4ZXMgIzM4MjU5Mi4KCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfYXN5bmNfdGhyZWFkKSwKCSAgKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF9qaXR0ZXJfdW5sb2NrZWQpLAoJICAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X2ppdHRlcik6CgkgIEZpeCByZXN0YXJ0IGluIHRoZSBhc3luYyBub3RpZnkgdGhyZWFkIHdoZW4gYW4gYXN5bmMgZW50cnkgaXMgYWRkZWQgdG8KCSAgdGhlIGZyb250IG9mIHRoZSBsaXN0LiBGaXhlcyAjMzgxNDkyLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOiAoc3RvcmVfY2FsbGJhY2spLAoJICAobm90aWZ5X2NhbGxiYWNrKSwgKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9zeXN0ZW1jbG9ja19zdWl0ZSk6CgkgIEFkZGVkIHRlc3QgZm9yIG11bHRpcGxlIGFzeW5jIHdhaXRzLgoJICBBZGRlZCB0ZXN0IGZvciBhc3luYyB3YWl0IG9yZGVyLgoKMjAwNi0xMi0wNyAxMDowMjoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogQWRkIHNvbWUgbW9yZSBkb2NzIGFib3V0IHRoZSBQT1NJVElPTiBxdWVyeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9xdWVyeSk6CgkgIEFkZCBzb21lIG1vcmUgZG9jcyBhYm91dCB0aGUgUE9TSVRJT04gcXVlcnkuCgoyMDA2LTEyLTA3IDAyOjM3OjE4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQnVtcCB2ZXJzaW9uIG5hbm8gLSBiYWNrIHRvIENWUy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCdW1wIHZlcnNpb24gbmFubyAtIGJhY2sgdG8gQ1ZTLgoKPT09IHJlbGVhc2UgMC4xMC4xMSA9PT0KCjIwMDYtMTItMDcgMDI6MzM6NTQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiByZWxlYXNpbmcgMC4xMC4xMSwgIkxvdmUgbmV2ZXIgcnVucyBvbiB0aW1lIgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgPT09IHJlbGVhc2UgMC4xMC4xMSA9PT0KCSAgMjAwNi0xMi0wNiAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgkgICogY29uZmlndXJlLmFjOgoJICByZWxlYXNpbmcgMC4xMC4xMSwgIkxvdmUgbmV2ZXIgcnVucyBvbiB0aW1lIgoKMjAwNi0xMi0wMSAxMDoyMzoyNiArMDAwMCAgU2VyZ2V5IFNjb2JpY2ggPHNlcmdleS5zY29iaWNoQGdtYWlsLmNvbT4KCgkgIHdpbjMyLzogRml4IGNvbXBpbGF0aW9uIG9uIHdpbjMyIHVuZGVyIFZTOAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgICogd2luMzIvdnM4L2xpYmdzdGJhc2UudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3Rjb3JlZWxlbWVudHMudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3RyZWFtZXIudmNwcm9qOgoJICBGaXggY29tcGlsYXRpb24gb24gd2luMzIgdW5kZXIgVlM4CgkgIFBhdGNoIGJ5OiBTZXJnZXkgU2NvYmljaCA8c2VyZ2V5IGRvdCBzY29iaWNoIGF0IGdtYWlsIGRvdCBjb20+CgkgIFBhcnRpYWxseSBmaXhlcyAjMzgxMTc1CgoyMDA2LTExLTMwIDIyOjU1OjA4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNi0xMS0yOSAxNjozOTozMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0dmFsdWUuYzogSWYgc29tZW9uZSBpcyBmb29saXNoIGVub3VnaCB0byBjb21wYXJlIDIgZnJhY3Rpb25zIHdpdGggZGVub21pbmF0b3IgPSAwLCByZXR1cm4gVU5PUkRFUkVEIHJhdGhlciB0aGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfY29tcGFyZV9mcmFjdGlvbik6CgkgIElmIHNvbWVvbmUgaXMgZm9vbGlzaCBlbm91Z2ggdG8gY29tcGFyZSAyIGZyYWN0aW9ucyB3aXRoIGRlbm9taW5hdG9yID0KCSAgMCwgcmV0dXJuIFVOT1JERVJFRCByYXRoZXIgdGhhbiBhYm9ydGluZy4KCjIwMDYtMTEtMjggMTI6MDc6MDYgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBsaWJzL2dzdC9iYXNlLzogTmV3IEdzdERhdGFRdWV1ZSBvYmplY3QgZm9yIHRocmVhZHNhZmUgcXVldWVpbmcuIE1vc3QgdXNlZnVsIGZvciBlbGVtZW50cyB0aGF0IG5lZWQgc29tZSBxdWV1ZWluZyBmdW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOiAoZ3N0X2RhdGFfcXVldWVfZ2V0X3R5cGUpLAoJICAoZ3N0X2RhdGFfcXVldWVfYmFzZV9pbml0KSwgKGdzdF9kYXRhX3F1ZXVlX2NsYXNzX2luaXQpLAoJICAoZ3N0X2RhdGFfcXVldWVfaW5pdCksIChnc3RfZGF0YV9xdWV1ZV9uZXcpLAoJICAoZ3N0X2RhdGFfcXVldWVfY2xlYW51cCksIChnc3RfZGF0YV9xdWV1ZV9maW5hbGl6ZSksCgkgIChnc3RfZGF0YV9xdWV1ZV9sb2NrZWRfZmx1c2gpLCAoZ3N0X2RhdGFfcXVldWVfbG9ja2VkX2lzX2VtcHR5KSwKCSAgKGdzdF9kYXRhX3F1ZXVlX2xvY2tlZF9pc19mdWxsKSwgKGdzdF9kYXRhX3F1ZXVlX2ZsdXNoKSwKCSAgKGdzdF9kYXRhX3F1ZXVlX2lzX2VtcHR5KSwgKGdzdF9kYXRhX3F1ZXVlX2lzX2Z1bGwpLAoJICAoZ3N0X2RhdGFfcXVldWVfc2V0X2ZsdXNoaW5nKSwgKGdzdF9kYXRhX3F1ZXVlX3B1c2gpLAoJICAoZ3N0X2RhdGFfcXVldWVfcG9wKSwgKGdzdF9kYXRhX3F1ZXVlX2Ryb3BfaGVhZCksCgkgIChnc3RfZGF0YV9xdWV1ZV9zZXRfcHJvcGVydHkpLCAoZ3N0X2RhdGFfcXVldWVfZ2V0X3Byb3BlcnR5KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJICBOZXcgR3N0RGF0YVF1ZXVlIG9iamVjdCBmb3IgdGhyZWFkc2FmZSBxdWV1ZWluZy4gTW9zdCB1c2VmdWwgZm9yCgkgIGVsZW1lbnRzIHRoYXQgbmVlZCBzb21lIHF1ZXVlaW5nIGZ1bmN0aW9ubmFsaXR5LgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgSW5zZXJ0IGRvY3VtZW50YXRpb24gZm9yIEdzdERhdGFRdWV1ZQoJICAqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX2Jhc2VfaW5pdCksCgkgIChnc3RfbXVsdGlfcXVldWVfY2xhc3NfaW5pdCksIChnc3RfbXVsdGlfcXVldWVfaW5pdCksCgkgIChnc3RfbXVsdGlfcXVldWVfZmluYWxpemUpLCAoZ3N0X211bHRpX3F1ZXVlX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfbXVsdGlfcXVldWVfZ2V0X3Byb3BlcnR5KSwgKGdzdF9tdWx0aV9xdWV1ZV9yZXF1ZXN0X25ld19wYWQpLAoJICAoZ3N0X211bHRpX3F1ZXVlX3JlbGVhc2VfcGFkKSwgKGdzdF9zaW5nbGVfcXVldWVfcHVzaF9vbmUpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2l0ZW1fZGVzdHJveSksIChnc3RfbXVsdGlfcXVldWVfaXRlbV9uZXcpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2xvb3ApLCAoZ3N0X211bHRpX3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2dldGNhcHMpLCAoZ3N0X211bHRpX3F1ZXVlX2J1ZmZlcmFsbG9jKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCksIChnc3RfbXVsdGlfcXVldWVfYWNjZXB0Y2FwcyksCgkgIChnc3RfbXVsdGlfcXVldWVfc3JjX2V2ZW50KSwgKGdzdF9tdWx0aV9xdWV1ZV9zcmNfcXVlcnkpLAoJICAod2FrZV91cF9uZXh0X25vbl9saW5rZWQpLCAoY29tcHV0ZV9uZXh0X25vbl9saW5rZWQpLAoJICAoc2luZ2xlX3F1ZXVlX292ZXJydW5fY2IpLCAoc2luZ2xlX3F1ZXVlX3VuZGVycnVuX2NiKSwKCSAgKHNpbmdsZV9xdWV1ZV9jaGVja19mdWxsKSwgKGdzdF9zaW5nbGVfcXVldWVfbmV3KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgTmV3IG11bHRpcXVldWUgZWxlbWVudCwgdXNpbmcgR3N0RGF0YVF1ZXVlLiBVc2VkIGZvciBxdWV1aW5nIG11bHRpcGxlCgkgIHN0cmVhbXMuCgkgIENsb3NlcyAjMzQ0NjM5IGFuZCAjMzQ3Nzg1CgoyMDA2LTExLTIyIDEyOjI5OjQxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6IGFkZCBtb3JlIG1pc3NpbmcgdHlwZSBkZXRhaWxzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgYWRkIG1vcmUgbWlzc2luZyB0eXBlIGRldGFpbHMKCSAgKiB0b29scy9nc3QtcnVuLmM6IChtYWluKToKCSAgcmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKMjAwNi0xMS0yMSAwODozMDoyMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9saWJzLzogYWRkIHR5cGVzIG9mIGJhc2UgY2xhc3NlcyB0byBlbmFibGUgZ29iamVjdCBzcGVjaWZpYyBzdHVmZiBpbiB0aGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJICBhZGQgdHlwZXMgb2YgYmFzZSBjbGFzc2VzIHRvIGVuYWJsZSBnb2JqZWN0IHNwZWNpZmljIHN0dWZmIGluIHRoZSBkb2NzCgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9lbWJlZGRlZC50eHQ6CgkgIG1vcmUgaWRlYXMgYWJvdXQgaXNvbGF0aW5nIHBsYXRmb3JtIHNwZWNpZmljIHRoaW5ncwoKMjAwNi0xMS0yMCAxMToxMToyMCArMDAwMCAgU2ViYXN0aWFuIERyb2VnZSA8c2xvbW9AdWJ1bnR1LmNvbT4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6IEZpeCBjb21waWxhdGlvbiBhbmQgcnVubmluZyBhZ2FpbnN0IDAuOS40LiBGaXhlcyAjMzc3MzMyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNlYmFzdGlhbiBEcm9lZ2UgPHNsb21vIGF0IHVidW50dSBkb3QgY29tPgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIEZpeCBjb21waWxhdGlvbiBhbmQgcnVubmluZyBhZ2FpbnN0IDAuOS40LiBGaXhlcyAjMzc3MzMyLgoKMjAwNi0xMS0yMCAxMDoyNzo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IEZpeCBib3VuZGFyeSBjaGVja2luZyBpbiB0b19ydW5uaW5nX3RpbWUoKSBhbmQgdG9fc3RyZWFtX3RpbWUoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9zZWVrKSwKCSAgKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50X2Z1bGwpLCAoZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUpLAoJICAoZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKToKCSAgRml4IGJvdW5kYXJ5IGNoZWNraW5nIGluIHRvX3J1bm5pbmdfdGltZSgpIGFuZCB0b19zdHJlYW1fdGltZSgpLgoJICBGaXhlcyAjMzc3MTgzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIHN0cmVhbSBhbmQgcnVubmluZyB0aW1lIGNhbiBub3cgYmUgY2FsY3VsYXRlZCBmb3IgdGhlIGNvbXBsZXRlCgkgIGNsaXBwZWQgc2VnbWVudC4KCjIwMDYtMTEtMTUgMTc6Mzg6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IENhbid0IGFjY2VzcyBldmVudCBzdHJ1Y3R1cmUgYWZ0ZXIgZ2l2aW5nIGF3YXkgb3duZXJzaGlwIG9mIHRoZSBldmVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9wdXNoX2V2ZW50KToKCSAgQ2FuJ3QgYWNjZXNzIGV2ZW50IHN0cnVjdHVyZSBhZnRlciBnaXZpbmcgYXdheSBvd25lcnNoaXAgb2YKCSAgdGhlIGV2ZW50LgoKMjAwNi0xMS0xNSAxMzowMDoxNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy86IG1vcmUgdGhpbmtpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9lbWJlZGRlZC50eHQ6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9wcm9maWxpbmcudHh0OgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvcmVjZWlwaWVzLnR4dDoKCSAgbW9yZSB0aGlua2luZwoKMjAwNi0xMS0xMyAxODowMzozNSArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3QHNreW5ldC5iZT4KCgkgIGdzdC9nc3RwYWQuYzogRml4IGRvY3VtZW50YXRpb24gZm9yIGdzdF9wYWRfZGlzcGF0Y2hlci4gRml4ZXMgIzM3NDQ3NS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXcgYXQgc2t5bmV0IGRvdCBiZT4KCSAgKiBnc3QvZ3N0cGFkLmM6CgkgIEZpeCBkb2N1bWVudGF0aW9uIGZvciBnc3RfcGFkX2Rpc3BhdGNoZXIuIEZpeGVzICMzNzQ0NzUuCgoyMDA2LTExLTEzIDE3OjU0OjU4ICswMDAwICBKb25hdGhhbiBNYXR0aGV3IDxqb25hdGhhbkBrYW9saW4ud2g5Lm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBTdG9yZSBuZXcgbGVuZ3RoIGluIHNlZ21lbnQgZHVyYXRpb24gc28gd2UgZG9uJ3Qga2VlcCBvbiBjYWxsaW5nIHRoZSBwb3RlbnRpYWxseSBleHBlbnNpei4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEpvbmF0aGFuIE1hdHRoZXcgPGpvbmF0aGFuIGF0IGthb2xpbiBkb3Qgd2g5IGRvdCBuZXQ+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfdXBkYXRlX2xlbmd0aCk6CgkgIFN0b3JlIG5ldyBsZW5ndGggaW4gc2VnbWVudCBkdXJhdGlvbiBzbyB3ZSBkb24ndCBrZWVwIG9uIGNhbGxpbmcgdGhlCgkgIHBvdGVudGlhbGx5IGV4cGVuc2l6ZSBnZXRfc2l6ZSgpIGNhbGwuIEZpeGVzICMzNzA4NjUuCgoyMDA2LTExLTEwIDE4OjU2OjQ0ICswMDAwICBTZXJnZXkgU2NvYmljaCA8c2VyZ2VyeS5zY29iaWNoQGdtYWlsLmNvbT4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOiBBZGQgdHdvIG1pc3Npbmcgc3ltYm9scyAoIzM2NjQ5MikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2VyZ2V5IFNjb2JpY2ggIDxzZXJnZXJ5LnNjb2JpY2ggYXQgZ21haWwgY29tPgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgdHdvIG1pc3Npbmcgc3ltYm9scyAoIzM2NjQ5MikuCgoyMDA2LTExLTEwIDEwOjUwOjE5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiBGaXggZm9ybWF0IHN0cmluZyB0byB1c2UgYWxsIGl0cyBhcmd1bWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiAoZ3N0X2FkYXB0ZXJfZmx1c2gpLAoJICAoZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXIpOgoJICBGaXggZm9ybWF0IHN0cmluZyB0byB1c2UgYWxsIGl0cyBhcmd1bWVudHMuCgkgIFJlbW92ZSB1c2VsZXNzID49IGNoZWNrIG9uIGEgZ3VpbnQKCjIwMDYtMTEtMDkgMTU6MjU6MzkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvZXhhbXBsZXMvYWRhcHRlci8uY3ZzaWdub3JlOiBJZ25vcmUgYnVpbGQgZmlsZSBhcyBjb21tYW5kZWQgYnkgdGhlIGJ1aWxkLWJvdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9hZGFwdGVyLy5jdnNpZ25vcmU6CgkgIElnbm9yZSBidWlsZCBmaWxlIGFzIGNvbW1hbmRlZCBieSB0aGUgYnVpbGQtYm90CgoyMDA2LTExLTA5IDE0OjM4OjU5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2V4YW1wbGVzL2FkYXB0ZXIvOiBBZGQgbmV3IGZpbGVzIGZyb20gdGhlIHByZXZpb3VzIGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9hZGFwdGVyL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2V4YW1wbGVzL2FkYXB0ZXIvYWRhcHRlcl90ZXN0LmM6IChydW5fdGVzdF90YWtlKSwKCSAgKHJ1bl90ZXN0X3Rha2VfYnVmZmVyKSwgKHJ1bl90ZXN0cyksIChtYWluKToKCSAgQWRkIG5ldyBmaWxlcyBmcm9tIHRoZSBwcmV2aW91cyBjb21taXQKCjIwMDYtMTEtMDkgMTQ6Mzc6MzggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgRG8gc29tZSBvcHRpbWlzYXRpb24gd29yayBpbiBHc3RBZGFwdGVyIHRvIGF2b2lkIGNvcGllcyBpbiBtb3JlIGNhc2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgKiBjb25maWd1cmUuYWM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6IChnc3RfYWRhcHRlcl9jbGVhciksCgkgIChnc3RfYWRhcHRlcl9wdXNoKSwgKGdzdF9hZGFwdGVyX3BlZWtfaW50byksIChnc3RfYWRhcHRlcl9wZWVrKSwKCSAgKGdzdF9hZGFwdGVyX2ZsdXNoKSwgKGdzdF9hZGFwdGVyX3Rha2UpLCAoZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXIpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOiAoY3JlYXRlX2FuZF9maWxsX2FkYXB0ZXIpLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2FkYXB0ZXJfc3VpdGUpOgoJICAqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJICBEbyBzb21lIG9wdGltaXNhdGlvbiB3b3JrIGluIEdzdEFkYXB0ZXIgdG8gYXZvaWQgY29waWVzIGluIG1vcmUgY2FzZXMuCgkgIEl0IGNvdWxkIHN0aWxsIGRvIHNsaWdodGx5IGJldHRlciBieSBtZXJnaW5nIGJ1ZmZlcnMgd2hlbgoJICBnc3RfYnVmZmVyX2lzX3NwYW5fZmFzdCBpcyB0cnVlLCBidXQgaXMgYWxyZWFkeSBmYXN0ZXIuCgkgIEFsc28sIGF2b2lkIHRyYXZlcnNpbmcgYSBzaW5nbGUtbGlua2VkIGxpc3QgdG8gYXBwZW5kIGVhY2ggaW5jb21pbmcKCSAgYnVmZmVyIGluc2lkZSB0aGUgYWRhcHRlci4KCSAgQWRkIHNpbXBsZSB0ZXN0IGFwcCB0aGF0IHRpbWVzIHRoZSBhZGFwdGVyIGJlaGF2aW91ciBpbiBkaWZmZXJlbnQKCSAgc2l0dWF0aW9ucywgYW5kIGV4dGVuZCB0aGUgdW5pdCB0ZXN0IHRvIGNoZWNrIHRoYXQgYnl0ZXMgZW50ZXIgYW5kCgkgIGV4aXQgdGhlIGFkYXB0ZXIgaW4gdGhlaXIgb3JpZ2luYWwgb3JkZXIuCgoyMDA2LTExLTA4IDE5OjI3OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9yYW5kb20vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDogVXBkYXRlOiB1c2UgZWxlbWVudCBtZXNzYWdlIGluc3RlYWQgb2YgYWRkaW5nIGEgbmV3IG1lc3NhZ2UgdHlwZSB0byB0aGUgY29yZTsgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6CgkgIFVwZGF0ZTogdXNlIGVsZW1lbnQgbWVzc2FnZSBpbnN0ZWFkIG9mIGFkZGluZyBhIG5ldyBtZXNzYWdlCgkgIHR5cGUgdG8gdGhlIGNvcmU7IGRvbid0IHByb3ZpZGUgR1N0cmVhbWVyIEFQSSB0byBpbml0aWF0ZSB0aGUKCSAgcGx1Z2luIGRvd25sb2FkLCBqdXN0IHByb3ZpZGUgQVBJIHRvIGNvbXBvc2UgdGhlIHN0cmluZ3MgbmVlZGVkCgkgIGFuZCBsZXQgYW4gZXh0ZXJuYWwgbGliZ2ltbWVzdHVmZiBoYW5kbGUgdGhlIHJlc3QuCgoyMDA2LTExLTA4IDExOjQxOjEzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IFByaW50IGEgc3RyaW5nIGluc3RlYWQgb2YgJ3Vua25vd24gdHlwZScgZm9yIEdWYWx1ZUFycmF5IHByb3BlcnRpZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKToKCSAgUHJpbnQgYSBzdHJpbmcgaW5zdGVhZCBvZiAndW5rbm93biB0eXBlJyBmb3IgR1ZhbHVlQXJyYXkgcHJvcGVydGllcwoKMjAwNi0xMS0wOCAxMDozNToyNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEZpeCBDaHJpc3RpYW4ncyBlbWFpbCBhZGRyZXNzIGluIENoYW5nZWxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRml4IENocmlzdGlhbidzIGVtYWlsIGFkZHJlc3MgaW4gQ2hhbmdlbG9nCgoyMDA2LTExLTA4IDAyOjA0OjUyICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJICBkb2NzL3JhbmRvbS9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OiBNb3JlIHNtYWxsIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OgoJICBNb3JlIHNtYWxsIGZpeGVzLgoKMjAwNi0xMS0wOCAwMjowMzo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2V4YW1wbGVzL3R5cGVmaW5kL3R5cGVmaW5kLmM6IE1ha2UgdHlwZWZpbmQgZWxlbWVudCBleGFtcGxlIHdvcmsgYWdhaW4gKCMzNzE4OTQpOyBhZGQgYSBsaWNlbnNlIGhlYWRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvdHlwZWZpbmQvdHlwZWZpbmQuYzogKHR5cGVfZm91bmQpLCAobWFpbik6CgkgIE1ha2UgdHlwZWZpbmQgZWxlbWVudCBleGFtcGxlIHdvcmsgYWdhaW4gKCMzNzE4OTQpOyBhZGQgYQoJICBsaWNlbnNlIGhlYWRlci4KCjIwMDYtMTEtMDggMDE6NDA6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3JhbmRvbS9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OiBDb21taXQgaW5pdGlhbCBkcmFmdCBhYm91dCBob3cgdG8gZGVhbCB3aXRoIG1pc3NpbmcgcGx1Z2lucywgbmVlZHMgd29yayAoQVBJIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDoKCSAgQ29tbWl0IGluaXRpYWwgZHJhZnQgYWJvdXQgaG93IHRvIGRlYWwgd2l0aCBtaXNzaW5nIHBsdWdpbnMsCgkgIG5lZWRzIHdvcmsgKEFQSSB0b28pLgoKMjAwNi0xMS0wNyAwNzozNDo0MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOiBkb2N1bWVudHMgdGhlIG5ldyBjYXBzIGVsZW1lbnRzIChzZWUgIzM2MzExOCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICBkb2N1bWVudHMgdGhlIG5ldyBjYXBzIGVsZW1lbnRzIChzZWUgIzM2MzExOCkKCjIwMDYtMTEtMDYgMTc6NTM6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBVc2UgZ19zdHJlcnJvcigpIGluc3RlYWQgb2Ygc3RyZXJyb3IoKSAtIHdlIHdhbnQgVVRGLTguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fbG9hZF9maWxlKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9tbWFwX2J1ZmZlcl9maW5hbGl6ZSksCgkgIChnc3RfZmlsZV9zcmNfbWFwX3JlZ2lvbiksIChnc3RfZmlsZV9zcmNfc3RhcnQpOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6IChnc3RfZmlsZV9pbmRleF9sb2FkKSwKCSAgKGdzdF9maWxlX2luZGV4X2NvbW1pdCk6CgkgIFVzZSBnX3N0cmVycm9yKCkgaW5zdGVhZCBvZiBzdHJlcnJvcigpIC0gd2Ugd2FudCBVVEYtOC4KCjIwMDYtMTEtMDYgMTc6MjU6MDEgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiBBbm90aGVyIHByaW50ZiBmaXggKCMzNzE0OTMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqIGF0IGF4aXMgY29tPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY3JlYXRlKToKCSAgQW5vdGhlciBwcmludGYgZml4ICgjMzcxNDkzKS4KCjIwMDYtMTEtMDYgMTU6MjI6NDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzogcmVsaWNlbmNlIChva2F5IHdpdGggYXV0aG9yPWNvbXBhbnkpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSAgcmVsaWNlbmNlIChva2F5IHdpdGggYXV0aG9yPWNvbXBhbnkpCgoyMDA2LTExLTA2IDE1OjE4OjU3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IEVuaGFuY2UgZGVidWcgYW5kIGltcHJvdmUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2V2ZW50X2RlZmF1bHRfZGlzcGF0Y2gpLAoJICAoZ3N0X3BhZF9wdXNoX2V2ZW50KToKCSAgRW5oYW5jZSBkZWJ1ZyBhbmQgaW1wcm92ZSBkb2NzCgkgICogZ3N0L2dzdHVyaS5jOgoJICBGaXggZG9jcwoKMjAwNi0xMS0wNiAxNToxNzozNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy86IG1vcmUgaWRlYXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9kaXN0cmlidXRlZC50eHQ6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9wcm9maWxpbmcudHh0OgoJICBtb3JlIGlkZWFzCgoyMDA2LTExLTA2IDE1OjE0OjQ2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBhZGQgbmV3IEFQSSBhbmQgZml4IHRoZSBidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBhZGQgbmV3IEFQSSBhbmQgZml4IHRoZSBidWlsZAoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcmVjYWxjX3N0YXRlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfbWVzc2FnZV9mdWxsKSwKCSAgKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwgKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9mdW5jKToKCSAgdXNlIG5ldyBBUEkgYW5kIGltcHJvdmUgbG9nZ2luZwoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfc3RhdGVfY2hhbmdlX3JldHVybl9nZXRfbmFtZSk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFQSTogYWRkIGZ1bmN0aW9uIHRvIGdldCBTdGF0ZUNoYW5nZXJldHVybiBuYW1lcyB0byBpbXByb3ZlIGxvZ3MKCjIwMDYtMTEtMDYgMTI6MDE6MjcgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJKiBkb2NzL3JhbmRvbS96YWhlZXJtL2R2Yi1pbnRlcmZhY2UudHh0OgoJICBOb3RlcyB0YWtlbiB3aGlsZSBkaXNjdXNzaW5nIGR2YiBjaGFubmVsIHNlbGVjdGlvbiB3aXRoIFdpbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTm90ZXMgdGFrZW4gd2hpbGUgZGlzY3Vzc2luZyBkdmIgY2hhbm5lbCBzZWxlY3Rpb24gd2l0aCBXaW0KCjIwMDYtMTEtMDQgMTI6NTQ6MDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGRvbid0IHB1dCBzdHJlcnJvciBpbiB0cmFuc2xhdGFibGUgbWVzc2FnZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9uJ3QgcHV0IHN0cmVycm9yIGluIHRyYW5zbGF0YWJsZSBtZXNzYWdlCgoyMDA2LTExLTAzIDE1OjA0OjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiBHZXQgdGhlIHR5cGUgYW5kIHByaW50ZiBjb252ZXJzaW9uIHNwZWNpZmllcnMgcmlnaHQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY3JlYXRlKToKCSAgR2V0IHRoZSB0eXBlIGFuZCBwcmludGYgY29udmVyc2lvbiBzcGVjaWZpZXJzIHJpZ2h0LgoKMjAwNi0xMS0wMyAxMzo1NzoyOCArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3QHNreW5ldC5iZT4KCgkgIGdzdC9nc3RwYWQuYzogU29tZSBzbWFsbCBjbGVhbnVwcy4gSW1wcm92ZSBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3IGF0IHNreW5ldCBkb3QgYmU+CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9pbml0KSwgKHByZV9hY3RpdmF0ZSksCgkgIChnc3RfcGFkX3NldF9ibG9ja2VkX2FzeW5jKSwgKGdzdF9wYWRfYWNjZXB0Y2Fwc19kZWZhdWx0KSwKCSAgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoaGFuZGxlX3BhZF9ibG9jayksIChnc3RfcGFkX3B1c2hfZXZlbnQpOgoJICBTb21lIHNtYWxsIGNsZWFudXBzLiBJbXByb3ZlIGRlYnVnZ2luZy4KCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIFNpZ25hbCBhbGwgd2FpdGluZyB0aHJlYWRzIHdpdGggYSBicm9hZGNhc3QgaW5zdGVhZCBvZiBqdXN0IG9uZS4KCSAgRml4ZXMgIzM2OTk0Mi4KCjIwMDYtMTEtMDMgMDk6NDA6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IEFkZCBzb21lIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY191cGRhdGVfZmQpLAoJICAoZ3N0X2ZkX3NyY19jcmVhdGUpOgoJICBBZGQgc29tZSBkZWJ1Z2dpbmcuCgkgIE9ubHkgdXBkYXRlIGZkIHdoZW4gaXQncyBkaWZmZXJlbnQgZnJvbSB0aGUgb2xkLgoKMjAwNi0xMS0wMiAyMDo1MjoyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiBQcmludGYgZml4ZXMgZm9yIFBQQy9PU1gsIHRha2UgdHdvICgjMzY5MzY2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY3JlYXRlX21tYXApOgoJICBQcmludGYgZml4ZXMgZm9yIFBQQy9PU1gsIHRha2UgdHdvICgjMzY5MzY2KS4KCjIwMDYtMTEtMDIgMTM6MDA6MzggKzAwMDAgIEphbiBEYXZpZCBNb2wgPGouai5kLm1vbEB0dWRlbGZ0Lm5sPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IFByaW50ZiBmaXhlcyBmb3IgZ3NpemUgcGFyYW1ldGVycyBvbiBQUEMvT1NYICgjMzY5MzY2KS4gQWxzbywgZG9uJ3QgY2FzdCB0byBsb25nIGxvbmcgZm9yIHBvcnRhYmlsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogSmFuIERhdmlkIE1vbCAgPGouai5kLm1vbCBhdCB0dWRlbGZ0IG5sPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmlsZV9zcmNfbWFwX3NtYWxsX3JlZ2lvbiksIChnc3RfZmlsZV9zcmNfY3JlYXRlX21tYXApOgoJICBQcmludGYgZml4ZXMgZm9yIGdzaXplIHBhcmFtZXRlcnMgb24gUFBDL09TWCAoIzM2OTM2NikuIEFsc28sCgkgIGRvbid0IGNhc3QgdG8gbG9uZyBsb25nIGZvciBwb3J0YWJpbGl0eSByZWFzb25zLCBidXQgdXNlCgkgIEdMaWIncyB0eXBlcyBpbnN0ZWFkLgoKMjAwNi0xMC0zMCAxODo0MzoxMiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiBHZXQgdGhlIGFyZ3VtZW50cyB0byBsc2VlaygpIHRoZSByaWdodCB3YXkgYXJvdW5kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX3VwZGF0ZV9mZCk6CgkgIEdldCB0aGUgYXJndW1lbnRzIHRvIGxzZWVrKCkgdGhlIHJpZ2h0IHdheSBhcm91bmQuCgkgIEZpeGVzIDM2NzY3Ny4KCjIwMDYtMTAtMzAgMDc6NTE6MTMgKzAwMDAgIGdvcnNoa292IDxnb3JzaGtvdkBvZ2htYS5vbi5jYT4KCgkgIGdzdC9nc3RpbmZvLmg6IF9kZWNsc3BlYyBzaG91bGQgYmUgX19kZWNsc3BlYyAodHdvIHVuZGVyc2NvcmVzLCBub3Qgb25lKS4gRml4ZXMgMzY2NTcyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IGdvcnNoa292IDxnb3JzaGtvdiBhdCBvZ2htYSBkb3Qgb24gZG90IGNhPgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIF9kZWNsc3BlYyBzaG91bGQgYmUgX19kZWNsc3BlYyAodHdvIHVuZGVyc2NvcmVzLCBub3Qgb25lKS4gRml4ZXMgMzY2NTcyLgoKMjAwNi0xMC0yOCAxNTo0MjoyOSArMDAwMCAgS2phcnRhbiBNYXJhYXMgPGttYXJhYXNAZ25vbWUub3JnPgoKCSAgVHlwbyBmaXhlcyAoIzM2NjIxMikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogS2phcnRhbiBNYXJhYXMgIDxrbWFyYWFzIGF0IGdub21lIG9yZz4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LU1ULXJlZmNvdW50aW5nLnR4dDoKCSAgKiBkb2NzL3JhbmRvbS93dGF5L2NhcHNuZWdvMi1kb2NzOgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICAqIGdzdC9nc3R4bWwuYzoKCSAgVHlwbyBmaXhlcyAoIzM2NjIxMikuCgoyMDA2LTEwLTI4IDE1OjEwOjI2ICswMDAwICBTZXJnZXkgU2NvYmljaCA8c2VyZ2V5LnNjb2JpY2hAZ21haWwuY29tPgoKCSAgQWRkIG5lZWRlZCBlbnRyaWVzIGluIC5kZWYgZmlsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2VyZ2V5IFNjb2JpY2ggPHNlcmdleSBkb3Qgc2NvYmljaCBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9nc3QuYzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgICogd2luMzIvdnM4L2xpYmdzdGJhc2UudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3Rjb250cm9sbGVyLnZjcHJvajoKCSAgQWRkIG5lZWRlZCBlbnRyaWVzIGluIC5kZWYgZmlsZXMuCgkgIFVzZSBIQVZFX1VOSVNURF9ILgoJICBSZWFycmFuZ2UgZGVmIGZpbGVzIGluIHZzOCBzb2x1dGlvbnMuIEZpeGVzICMzNjYyODYuCgoyMDA2LTEwLTI4IDE1OjAzOjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOiBBZGQgR1NUX1NFR01FTlRfRk9STUFUIGFuZCBHU1RfVVNJTkdfUFJJTlRGX0VYVEVOU0lPTiB0byB0aGUgaGFuZC1tYWRlIHdpbjMyIGdzdGNvbmZpZy5oLiBGLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDoKCSAgQWRkIEdTVF9TRUdNRU5UX0ZPUk1BVCBhbmQgR1NUX1VTSU5HX1BSSU5URl9FWFRFTlNJT04gdG8gdGhlCgkgIGhhbmQtbWFkZSB3aW4zMiBnc3Rjb25maWcuaC4gRml4ZXMgIzM2NjMyMS4KCjIwMDYtMTAtMjcgMTY6MzE6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogTWFrZSBhY2NlcHRjYXBzIHJldHVybiBUUlVFIHdoZW4gd2UgZG9uJ3QgaGF2ZSBhIHRhcmdldCwganVzdCBsaWtlIHNldGNhcHMgZG9lcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2RvX2FjY2VwdGNhcHMpLAoJICAoZ3N0X2dob3N0X3BhZF9uZXdfZnVsbCk6CgkgIE1ha2UgYWNjZXB0Y2FwcyByZXR1cm4gVFJVRSB3aGVuIHdlIGRvbid0IGhhdmUgYSB0YXJnZXQsIGp1c3QgbGlrZQoJICBzZXRjYXBzIGRvZXMuCgoyMDA2LTEwLTI3IDEwOjEwOjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFJldmVydCBwcmV2aW91cyBjb21taXQsIDAgc2l6ZWQgYnVmZmVycyBhcmUgYWxsb3dlZC4gUmVvcGVucyAjMzYzMDk1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFpbik6CgkgIFJldmVydCBwcmV2aW91cyBjb21taXQsIDAgc2l6ZWQgYnVmZmVycyBhcmUgYWxsb3dlZC4gUmVvcGVucyAjMzYzMDk1LgoKMjAwNi0xMC0yNiAwODo0OTo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogSWYgc29tZW9uZSB0cmllcyB0byBzZXQgYSBub24tVVRGOCBzdHJpbmcgZmllbGQgb24gYSBzdHJ1Y3R1cmUsIGRvbid0IGp1c3QgcHJpbnQgYSB3YXJuaW5nLCBidXQgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2lkX3NldF92YWx1ZSk6CgkgIElmIHNvbWVvbmUgdHJpZXMgdG8gc2V0IGEgbm9uLVVURjggc3RyaW5nIGZpZWxkIG9uIGEgc3RydWN0dXJlLAoJICBkb24ndCBqdXN0IHByaW50IGEgd2FybmluZywgYnV0IGFsc28gaWdub3JlIHRoZSByZXF1ZXN0IGFuZCBkbwoJICBub3QgY2hhbmdlL2FkZCB0aGF0IGZpZWxkIHRvIHRoZSBzdHJ1Y3R1cmUuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3RhZ19zdWl0ZSk6CgkgIFRlc3QgZm9yIHRoZSBhYm92ZS4KCjIwMDYtMTAtMjYgMDA6MDA6MzQgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdGluZm8uYzogZ19oYXNoX3RhYmxlX2luc2VydCgpIG5lZWRzIGEgY2FzdCB0byBhIG5vbi1jb25zdCBwb2ludGVyIGR1aC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgZ19oYXNoX3RhYmxlX2luc2VydCgpIG5lZWRzIGEgY2FzdCB0byBhIG5vbi1jb25zdCBwb2ludGVyIGR1aC4KCjIwMDYtMTAtMjUgMjM6NDc6NDAgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdGluZm8uKjogQ2hhbmdlIG5hbWUgcGFyYW1ldGVyIG9mIF9nc3RfZGVidWdfcmVnaXN0ZXJfZnVuY3B0ciB0byBjb25zdCB0byByZWZsZWN0IHRoZSBjb25zdG5lc3Mgb2YgaXRzIHVzZSBpbiB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgQ2hhbmdlIG5hbWUgcGFyYW1ldGVyIG9mIF9nc3RfZGVidWdfcmVnaXN0ZXJfZnVuY3B0ciB0byBjb25zdAoJICB0byByZWZsZWN0IHRoZSBjb25zdG5lc3Mgb2YgaXRzIHVzZSBpbiB0aGUgZnVuY3Rpb24gYXMgd2VsbAoJICBhcyB0byBxdWlldCBhIGdjYyB3YXJuaW5nLgoKMjAwNi0xMC0yNSAxMzo0MTo0NCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBEb24ndCBwdXNoIHRoZSBidWZmZXIgaWYgaXQncyBlbXB0eS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pOgoJICBEb24ndCBwdXNoIHRoZSBidWZmZXIgaWYgaXQncyBlbXB0eS4KCSAgQ2xvc2VzICMzNjMwOTUKCjIwMDYtMTAtMjQgMDg6MjI6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuaDogQWRkIHNtYWxsIGNvbW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBBZGQgc21hbGwgY29tbWVudC4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2V2ZW50ZnVuYyk6CgkgIERlYnVnIHNlZ21lbnQgdmFsdWVzICphZnRlciogdXBkYXRpbmcgdGhlbSBhcyB0aGlzIGlzIG1vcmUKCSAgaW50ZXJlc3RpbmcuCgoyMDA2LTEwLTIzIDE1OjIxOjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OiBVcGRhdGUgc29tZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgIFVwZGF0ZSBzb21lIGRvY3MuCgkgICogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9pc19ibG9ja2luZyksIChoYW5kbGVfcGFkX2Jsb2NrKSwKCSAgKGdzdF9wYWRfcHVzaF9ldmVudCk6CgkgIFJldmVydCBCTE9DS0lORyBwYXRjaCwgaXQgdHJpZXMgdG8gYmUgc21hcnQgd2l0aG91dCByZWFsbHkgaGF2aW5nIGEKCSAgY2xlYXIgaWRlYSB3aGF0IG9yIGhvdy4gU28sIG5vdyB3ZSBkaXNjYXJkIGFsbCBGTFVTSElORyBldmVudHMgYWdhaW4gb24KCSAgYSBibG9ja2luZyBwYWQuIFNob3VsZCBmaXggZ25vbmxpbiBhZ2Fpbi4KCjIwMDYtMTAtMjMgMTQ6NTE6MzAgKzAwMDAgIFNlcmdleSBTY29iaWNoIDxzZXJnZXkuc2NvYmljaEBnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogTWFrZSBzdXJlIHNpemUgaXMgYWx3YXlzIGluaXRpYWxpemVkLiBGaXhlcyAjMzY0Mzg4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNlcmdleSBTY29iaWNoIDxzZXJnZXkgZG90IHNjb2JpY2ggYXQgZ21haWwgZG90IGNvbT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY193YWl0X3BsYXlpbmcpLAoJICAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KSwgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKToKCSAgTWFrZSBzdXJlIHNpemUgaXMgYWx3YXlzIGluaXRpYWxpemVkLiBGaXhlcyAjMzY0Mzg4LgoKMjAwNi0xMC0yMCAxMTozNjo1NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy9kaXN0cmlidXRlZC50eHQ6IGFkZCBzb21lIGlkZWFzIGFib3V0IGRvaW5nIGRpc3RyaWJ1dGVkIHByb2Nlc3NpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9kaXN0cmlidXRlZC50eHQ6CgkgIGFkZCBzb21lIGlkZWFzIGFib3V0IGRvaW5nIGRpc3RyaWJ1dGVkIHByb2Nlc3NpbmcKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL3Byb2ZpbGluZy50eHQ6CgkgIGdldF9ydXNhZ2UgbG9vayBwcm9taXNpbmcKCjIwMDYtMTAtMTggMTk6NDM6NDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDogQWRkIGEgY2FzdCBpbiBleGFtcGxlIHRvIGZpeCBjb21waWxlIHdhcm5pbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJICBBZGQgYSBjYXN0IGluIGV4YW1wbGUgdG8gZml4IGNvbXBpbGUgd2FybmluZwoKMjAwNi0xMC0xOCAxNToyODoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IFJlbGF4IGFyZyBjaGVja2luZyBhZ2FpbiwgLTEgaXMgYWxsb3dlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9sYXN0X3N0b3ApLAoJICAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspLCAoZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnRfZnVsbCk6CgkgIFJlbGF4IGFyZyBjaGVja2luZyBhZ2FpbiwgLTEgaXMgYWxsb3dlZC4KCjIwMDYtMTAtMTggMTM6Mjc6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBfc2V0X2xhc3Rfc3RvcCgpIG11c3QgYmUgd2l0aCBhIHZhbHVlICE9IC0xCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zZXRfbGFzdF9zdG9wKSwKCSAgKGdzdF9zZWdtZW50X3NldF9zZWVrKSwgKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50X2Z1bGwpOgoJICBfc2V0X2xhc3Rfc3RvcCgpIG11c3QgYmUgd2l0aCBhIHZhbHVlICE9IC0xCgkgIEEgX1RZUEVfU0VUIHRvIC0xIG1lYW5zIHNlZWsgdG8gMC4KCSAgQ2FsYyBsYXN0X3N0b3AgY29ycmVjdGx5IGZvciBuZWdhdGl2ZSByYXRlcy4KCSAgTWFrZSBzdXJlIHdlIHdvcmsgd2l0aCBwb3NpdGl2ZSBkdXJhdGlvbnMgd2hlbiB1cGRhdGluZyBhIHNlZ21lbnQuCgoyMDA2LTEwLTE4IDEzOjIxOjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgU21hbGwgZG9jcyBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1saXZlLXNvdXJjZS50eHQ6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIFNtYWxsIGRvY3MgZml4ZXMuCgoyMDA2LTEwLTE4IDEwOjA4OjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJ1ZmZlci5oOiBBZGQgYW4gZXhwbGljaXQgY2FzdCB0byBHc3RCdWZmZXIqKiB0byBrZWVwIG9sZCBjb2RlIHRoYXQgYWRkZWQgYW4gZXhwbGljaXQgY2FzdCB0byBHc3RNaW5pT2JqZWN0KiogLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgQWRkIGFuIGV4cGxpY2l0IGNhc3QgdG8gR3N0QnVmZmVyKiogdG8ga2VlcCBvbGQgY29kZSB0aGF0IGFkZGVkIGFuCgkgIGV4cGxpY2l0IGNhc3QgdG8gR3N0TWluaU9iamVjdCoqIGZvciBnc3RfbWluaV9vYmplY3RfcmVwbGFjZSgpCgkgIGNvbXBpbGluZyB3aXRob3V0IHdhcm5pbmcuCgoyMDA2LTEwLTE4IDA4OjU0OjMwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuYzogY2hlY2sgZm9yIHZhbGlkaXR5IG9mIGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3NldF9kYXRlKSwgKGdzdF9kYXRlX2NvcHkpOgoJICBjaGVjayBmb3IgdmFsaWRpdHkgb2YgZGF0ZXMKCjIwMDYtMTAtMTcgMTI6MDk6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBGb3Jnb3QgdGhpcyBvbmUsIG1ha2VzIGd0ay1kb2Mgc2h1dCB1cC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgRm9yZ290IHRoaXMgb25lLCBtYWtlcyBndGstZG9jIHNodXQgdXAuCgoyMDA2LTEwLTE3IDExOjU3OjMyICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIGdzdC9nc3RvYmplY3QuaDogRG9uJ3QgZGVmaW5lIHhtbE5vZGVQdHIgdG8gZ3BvaW50ZXIgaWYgdGhlIGNvcmUgd2FzIGJ1aWx0IHdpdGgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgPHBraiBhdCBheGlzIGNvbT4KCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIERvbid0IGRlZmluZSB4bWxOb2RlUHRyIHRvIGdwb2ludGVyIGlmIHRoZSBjb3JlIHdhcyBidWlsdCB3aXRoCgkgIC0tZGlzYWJsZS1sb2Fkc2F2ZSBhbmQgLS1kaXNhYmxlLXJlZ2lzdHJ5LCB0aGlzIHdpbGwgYnJlYWsKCSAgYXBwbGljYXRpb25zIHRoYXQgd2FudCB0byB1c2UgbGlieG1sMiBidXQgYXJlIGJ1aWxkbGluZyBhZ2FpbnN0IGEKCSAgY29yZSB0aGF0IGRvZXNuJ3QgdXNlIGxpYnhtbDIuIFVzZSBhbiBpbnRlcm1lZGlhcnkgdHlwZSBHc3RYbWxOb2RlUHRyCgkgIGluc3RlYWQgc28gd2UgZG9uJ3QgaGF2ZSB0byBtZXNzIHdpdGggdGhlIGxpYnhtbDIgbmFtZXNwYWNlCgkgICgjMzYxNjc1KS4KCjIwMDYtMTAtMTcgMTA6MzA6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YnVmZmVyLmg6IEZpeCBnc3RfYnVmZmVyX3JlcGxhY2UoKSBtYWNybyB0byBhdm9pZCBnc3RfbWluaV9vYmplY3RfcmVwbGFjZSgpLXJlbGF0ZWQgdHlwZS1wdW5uZWQgcG9pbnRlciB3YXJuaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBGaXggZ3N0X2J1ZmZlcl9yZXBsYWNlKCkgbWFjcm8gdG8gYXZvaWQgZ3N0X21pbmlfb2JqZWN0X3JlcGxhY2UoKS1yZWxhdGVkCgkgIHR5cGUtcHVubmVkIHBvaW50ZXIgd2FybmluZ3MuCgoyMDA2LTEwLTE2IDIwOjAyOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnQuaDogQWRkIGNhc3RzIHRvIHRoZSBjb3JyZWN0IHJldHVybiB0eXBlIHRvIHN0YXRlIDw9PiBzdGF0ZSB0cmFuc2l0aW9uIG1hY3Jvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgQWRkIGNhc3RzIHRvIHRoZSBjb3JyZWN0IHJldHVybiB0eXBlIHRvIHN0YXRlIDw9PiBzdGF0ZSB0cmFuc2l0aW9uCgkgIG1hY3Jvcy4KCjIwMDYtMTAtMTYgMTM6NTM6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZGVzaWduL3BhcnQtbGl2ZS1zb3VyY2UudHh0OiBkZXNjcmliZSBob3d0byBoYW5kbGUgbGF0ZW5jeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWxpdmUtc291cmNlLnR4dDoKCSAgZGVzY3JpYmUgaG93dG8gaGFuZGxlIGxhdGVuY3kKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL3Byb2ZpbGluZy50eHQ6CgkgIG1vcmUgaWRlYXMKCSAgKiB0b29scy9nc3QtcGxvdC10aW1lbGluZS5weToKCSAgZml4IGxvZyBwYXJzaW5nIGZvciBzb2xhcmlzLCByZW1vdmUgdW51c2VkIGZ1bmN0aW9uCgoyMDA2LTEwLTE2IDExOjQ2OjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgVXBkYXRlIHNvbWUgZG9jcyByZWdhcmRpbmcgcmV2ZXJzZSBwbGF5YmFjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgVXBkYXRlIHNvbWUgZG9jcyByZWdhcmRpbmcgcmV2ZXJzZSBwbGF5YmFjay4KCjIwMDYtMTAtMTUgMTI6NDc6MTMgKzAwMDAgIE1hcmN1cyBHcmFuYWRvIDxtcmMuZ3JhbkBnbWFpbC5jb20+CgoJICB3aW4zMi92czgvZ3JhbW1hci52Y3Byb2o6IEVycm9yIG91dCB3aXRoIGEgd2FybmluZyBpZiBnbGliLWdlbm1hcnNoYWwuZXhlIGlzIG5vdCBpbiBwYXRoLCBpbnN0ZWFkIG9mIGNyZWF0aW5nIGJvZ3VzIGcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJjdXMgR3JhbmFkbyAgPG1yYyBkb3QgZ3JhbiBhdCBnbWFpbCBjb20+CgkgICogd2luMzIvdnM4L2dyYW1tYXIudmNwcm9qOgoJICBFcnJvciBvdXQgd2l0aCBhIHdhcm5pbmcgaWYgZ2xpYi1nZW5tYXJzaGFsLmV4ZSBpcyBub3QgaW4gcGF0aCwKCSAgaW5zdGVhZCBvZiBjcmVhdGluZyBib2d1cyBnc3RtYXJzaGFsLltjaF0gZmlsZXMuIEZpeGVzICMzNjE3MjAuCgoyMDA2LTEwLTEzIDE2OjA5OjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogV2hlbiBzZWVraW5nIHRvIHN0b3AgLTEsIHNldCBsYXN0X3N0b3AgKGN1cnJlbnQgcG9zaXRpb24pIHRvIHRoZSBkdXJhdGlvbiBvZiB0aGUgc2VnbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9zZWVrKToKCSAgV2hlbiBzZWVraW5nIHRvIHN0b3AgLTEsIHNldCBsYXN0X3N0b3AgKGN1cnJlbnQgcG9zaXRpb24pIHRvIHRoZQoJICBkdXJhdGlvbiBvZiB0aGUgc2VnbWVudC4KCjIwMDYtMTAtMTMgMTM6Mjc6NDYgKzAwMDAgIFl2ZXMgTGVmZWJ2cmUgPGl2YW5vaGVAYWJhY29tLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50Lmg6IENsYXJpZnkgX05PX1BSRVJPTEwgYSBiaXQgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgQ2xhcmlmeSBfTk9fUFJFUk9MTCBhIGJpdCBtb3JlLgoJICAqIGdzdC9nc3RldmVudC5jOgoJICBGaXggZG9jcy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2xpbmtfY2hlY2tfaGllcmFyY2h5KSwKCSAgKGdzdF9wYWRfZ2V0X2NhcHNfdW5sb2NrZWQpLCAoZ3N0X3BhZF9zYXZlX3RoeXNlbGYpLAoJICAoaGFuZGxlX3BhZF9ibG9jayksIChnc3RfcGFkX3B1c2hfZXZlbnQpLCAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgUGF0Y2ggYnk6IFl2ZXMgTGVmZWJ2cmUgPGl2YW5vaGUgYXQgYWJhY29tIGRvdCBjb20+IEZpeCBwb3NzaWJsZSBkZWFkbG9jawoJICBkdWUgdG8gd3JvbmcgbG9ja2luZyBvcmRlci4gRml4ZXMgIzM2MTc2OS4KCSAgUmVtb3ZlIHNvbWUgcmVkdW5kYW50L21pc3BsYWNlZCBjaGVja3MgaW4gcGFkX2Jsb2NrLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgRm9yIG5lZ2F0aXZlIHJhdGVzLCBjb3VudCBiYWNrd2FyZHMgZnJvbSB0aGUgZHVyYXRpb24uCgoyMDA2LTEwLTEzIDA5OjM3OjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGVycm9yLmM6IEZpeCBlcnJvciBtZXNzYWdlIGZvciBHU1RfTElCUkFSWV9FUlJPUl9TRVRUSU5HUyAoZmVlbCBmcmVlIHRvIGNvbWUgdXAgd2l0aCBzb21ldGhpbmcgYmV0dGVyKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVycm9yLmM6IChfZ3N0X2xpYnJhcnlfZXJyb3JzX2luaXQpOgoJICBGaXggZXJyb3IgbWVzc2FnZSBmb3IgR1NUX0xJQlJBUllfRVJST1JfU0VUVElOR1MgKGZlZWwgZnJlZSB0byBjb21lCgkgIHVwIHdpdGggc29tZXRoaW5nIGJldHRlcikuCgoyMDA2LTEwLTEyIDIyOjM1OjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvOiBEb24ndCByZWZlcmVuY2UgZ2xpYi1jb21wYXQuYyB3aGljaCBpcyBjdXJyZW50bHkgbm90IHVzZWQgYW5kIG5vdCBkaXN0ZWQ7IGFkZCBnc3RxdWFyay5jIHdoaWNoIHdhcyByZWNlbnRseSBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RyZWFtZXIuZHNwOgoJICAqIHdpbjMyL3ZzNy9saWJnc3RyZWFtZXIudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3RyZWFtZXIudmNwcm9qOgoJICBEb24ndCByZWZlcmVuY2UgZ2xpYi1jb21wYXQuYyB3aGljaCBpcyBjdXJyZW50bHkgbm90IHVzZWQgYW5kIG5vdAoJICBkaXN0ZWQ7IGFkZCBnc3RxdWFyay5jIHdoaWNoIHdhcyByZWNlbnRseSBhZGRlZC4gRml4ZXMgIzM2MTczMC4KCjIwMDYtMTAtMTIgMTY6MDk6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB3aW4zMi9jb21tb24vOiBBZGQgZ3N0X2NhcHNfbWVyZ2UoKSBhbmQgYSBidW5jaCBvZiBvdGhlciByZWNlbnRseS1hZGRlZCBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBnc3RfY2Fwc19tZXJnZSgpIGFuZCBhIGJ1bmNoIG9mIG90aGVyIHJlY2VudGx5LWFkZGVkIGZ1bmN0aW9ucy4KCSAgRml4ZXMgIzM2MTczMi4KCjIwMDYtMTAtMTEgMTY6MzA6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL3BsdWdpbnMvOiBVcGRhdGUgZWxlbWVudCBhcmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSAgVXBkYXRlIGVsZW1lbnQgYXJncy4KCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgU21hbGwgY29tbWVudCB1cGRhdGUuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfY2xhc3NfaW5pdCksIChnc3RfdGVlX2luaXQpLAoJICAoZ3N0X3RlZV9yZXF1ZXN0X25ld19wYWQpLCAoZ3N0X3RlZV9yZWxlYXNlX3BhZCksCgkgIChnc3RfdGVlX2J1ZmZlcl9hbGxvYyksIChnc3RfdGVlX3NpbmtfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfdGVlX3NpbmtfYWN0aXZhdGVfcHVsbCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgU29tZSB0ZWUgbG92aW5nOgoJICBBZGQgZGVmYXVsdCBwcm9wZXJ0eSBkZWZpbmVzLgoJICBJbXBsZW1lbnQgcmVsZWFzZSBwYWQgZnVuY3Rpb24uCgkgIEdpdmUgcHJvcGVydGllcyBiZXR0ZXIgYmx1YnMgZXRjLgoJICBBY3RpdmF0ZSBwYWRzIGJlZm9yZSBhZGRpbmcgdGhlbSB0byBhIHJ1bm5pbmcgdGVlLgoJICBEbyBzaW1wbGUgYnVmZmVyX2FsbG9jIG9uIHRoZSBmaXJzdCByZXF1ZXN0ZWQgcGFkLgoJICBQb3N0IGVycm9yIHdoZW4gYWN0aXZhdGlvbiBmYWlscy4KCjIwMDYtMTAtMTEgMTI6MTY6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IENoZWNrIHJldHVybiB2YWx1ZSBvZiB3cml0ZSgpIHRvIG1ha2UgY29tcGlsZXIgaGFwcHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X2ZvcmtpbmcpOgoJICBDaGVjayByZXR1cm4gdmFsdWUgb2Ygd3JpdGUoKSB0byBtYWtlIGNvbXBpbGVyIGhhcHB5LgoKMjAwNi0xMC0xMSAxMDoxMDozNyArMDAwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkQGx1b24ubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBSZWNoZWNrIHF1ZXVlIGZpbGxlZG5lc3MgYWZ0ZXIgc2lnbmFsbGluZyB0aGUgb3ZlcnJ1biB3aGVuIHdlJ3JlIGFib3V0IHRvIGxlYWsgZG93bnN0cmVhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2pvZXJkIFNpbW9ucyA8c2pvZXJkIGF0IGx1b24gZG90IG5ldD4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfY2hhaW4pOgoJICBSZWNoZWNrIHF1ZXVlIGZpbGxlZG5lc3MgYWZ0ZXIgc2lnbmFsbGluZyB0aGUgb3ZlcnJ1biB3aGVuIHdlJ3JlIGFib3V0CgkgIHRvIGxlYWsgZG93bnN0cmVhbSBiZWNhdXNlIHdlIHJlbGVhc2VkIHRoZSBsb2NrIHdoZW4gZW1pdHRpbmcgdGhlIHNpZ25hbAoJICBhbmQgdGhlIHF1ZXVlIGNvdWxkIGJlIGVtcHR5IGFnYWluLiBGaXhlcyAjMzUyMzQ1LgoKMjAwNi0xMC0xMSAwOToxMzoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBGaXggcmVmY291bnRpbmcgaGVyZSB0b28sIGp1c3QgbGlrZSB3ZSBkaWQgZm9yIF9uZXdfdmFsaXN0KCkgYSBmZXcgZGF5cyBhZ28gKCMzNS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sbGVyX25ld19saXN0KToKCSAgRml4IHJlZmNvdW50aW5nIGhlcmUgdG9vLCBqdXN0IGxpa2Ugd2UgZGlkIGZvciBfbmV3X3ZhbGlzdCgpIGEgZmV3CgkgIGRheXMgYWdvICgjMzU3MTgwKSAodGhhbmtzIHRvIFJlbsOpIFN0YWRsZXIpLiBBbHNvIHJlbW92ZSBhbGwgdGhvc2UKCSAgJ1NpbmNlOiAwLjknIGZyb20gdGhlIGd0ay1kb2MgYmxvYnMuCgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChjb250cm9sbGVyX3JlZmNvdW50X25ld19saXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgVW5pdCB0ZXN0IGZvciB0aGUgYWJvdmUuCgoyMDA2LTEwLTEwIDE0OjQ3OjQwICswMDAwICBTZWJhc3RpZW4gQ290ZSA8c2ViYXM2NDJAeWFob28uY2E+CgoJICBnc3QvZ3N0cGFkLmM6IFVwZGF0ZSBzb21lIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2ViYXN0aWVuIENvdGUgPHNlYmFzNjQyIGF0IHlhaG9vIGRvdCBjYT4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9jYXBzX3VubG9ja2VkKSwKCSAgKGdzdF9wYWRfc2F2ZV90aHlzZWxmKToKCSAgVXBkYXRlIHNvbWUgZG9jcy4KCSAgV3JpdGUgcGFkIGRpcmVjdGlvbiBpbiBYTUwgb3V0cHV0LiBGaXhlcyAjMzQ1NDk2LgoKMjAwNi0xMC0xMCAxNDoxMzowOCArMDAwMCAgUmVuw6kgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBUYWtlIHJlZiB0byBjb250cm9sbGVkIG9iamVjdCBzbyB0aGF0IGl0IGNhbm5vdCBkaXNhcHBlYXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUmVuw6kgU3RhZGxlciA8bWFpbCBhdCByZW5lc3RhZGxlciBkb3QgZGU+CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChnc3RfY29udHJvbGxlcl9uZXdfdmFsaXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX25ld19saXN0KSwgKF9nc3RfY29udHJvbGxlcl9kaXNwb3NlKSwKCSAgKF9nc3RfY29udHJvbGxlcl9maW5hbGl6ZSksIChfZ3N0X2NvbnRyb2xsZXJfY2xhc3NfaW5pdCk6CgkgIFRha2UgcmVmIHRvIGNvbnRyb2xsZWQgb2JqZWN0IHNvIHRoYXQgaXQgY2Fubm90IGRpc2FwcGVhci4KCSAgRml4ZXMgIzM1NzQzMi4KCjIwMDYtMTAtMTAgMTQ6MDk6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiBBY3RpdmF0ZS9kZWFjdGl2YXRlIHBhZHMgaW4gc2V0dXAvdGVhcmRvd24gcmVzcGVjdGl2ZWx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX3NldHVwX3NyY19wYWQpLAoJICAoZ3N0X2NoZWNrX3RlYXJkb3duX3NyY19wYWQpLCAoZ3N0X2NoZWNrX3NldHVwX3NpbmtfcGFkKSwKCSAgKGdzdF9jaGVja190ZWFyZG93bl9zaW5rX3BhZCk6CgkgIEFjdGl2YXRlL2RlYWN0aXZhdGUgcGFkcyBpbiBzZXR1cC90ZWFyZG93biByZXNwZWN0aXZlbHkuCgoyMDA2LTEwLTEwIDEyOjEyOjQ0ICswMDAwICBKb3NlcCBUb3JyZSBWYWxsZXMgPGpvc2VwQGZsdWVuZG8uY29tPgoKCSAgZ3N0L01ha2VmaWxlLmFtOiBDYXN0IHZhbHVlcyB3aGVuIG1ha2luZyBnc3RlbnVtdHlwZXMuaC4gIFRoaXMgcGFjaWZpZXMgRm9ydGUgc28gaXQgZG9lc24ndCB3YXJuIGFib3V0IHRoZSB+MCBhcyBHU1RfLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTEwLTEwICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgIFBhdGNoIGJ5OiBKb3NlcCBUb3JyZSBWYWxsZXMgPGpvc2VwQGZsdWVuZG8uY29tPgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgQ2FzdCB2YWx1ZXMgd2hlbiBtYWtpbmcgZ3N0ZW51bXR5cGVzLmguICBUaGlzIHBhY2lmaWVzIEZvcnRlCgkgIHNvIGl0IGRvZXNuJ3Qgd2FybiBhYm91dCB0aGUgfjAgYXMgR1NUX01FU1NBR0VfQU5ZIG5vdCBmaXR0aW5nCgkgIGluIHRoZSBlbnVtZXJhdGlvbi4KCjIwMDYtMTAtMDkgMTc6MTU6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuYzogUmVuYW1lIHNvbWUgbW9yZSBAY3VyIHRvIEBzdGFydCB0byBmaXggZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X3NlZWspLCAoZ3N0X2V2ZW50X3BhcnNlX3NlZWspOgoJICBSZW5hbWUgc29tZSBtb3JlIEBjdXIgdG8gQHN0YXJ0IHRvIGZpeCBkb2NzLgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zZXRfc2Vlayk6CgkgIEZpeCB0eXBvLgoJICB0aW1lIGFuZCBzdGFydCBtdXN0IGFsd2F5cyBzdGF5IGluIHN5bmMgYXMgZGVmaW5lZCBpbiBkZXNpZ24gZG9jLgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChnc3RfdGFnX2xpc3RfaXNfZW1wdHkpOgoJICBSZW5hbWUgcGFyYW0gdG8gZml4IGRvY3MuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQ2hlY2sgdGhhdCBzdGFydCBhbmQgdGltZSBhcmUgaW4gc3luYy4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIChnc3RfcGFyc2VfdGVzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgIEFjdGl2YXRlIHBhZCBiZWZvcmUgYWRkaW5nIHRvIHRoZSBlbGVtZW50LgoKMjAwNi0xMC0wOSAxNjozMzoyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDogRml4IHR5cG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgRml4IHR5cG8uCgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIFVwZGF0ZSBzZWVrIGV2ZW50IGRvY3MgcmVnYXJkaW5nIG5lZ2F0aXZlIHJhdGVzLgoJICBSZW5hbWUgQGN1ciB0byBAc3RhcnQuCgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9zZWVrKToKCSAgKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBVcGRhdGUgc2V0X3NlZWsgZG9jcyByZWdhcmRpbmcgbmVnYXRpdmUgcmF0ZXMuCgkgIENvcnJlY3RseSB1cGRhdGUgbGFzdF9zdG9wIHRvIEBzdG9wIHdoZW4gZGVhbGluZyB3aXRoIG5lZ2F0aXZlCgkgIHJhdGVzLgoJICBSZW5hbWUgQGN1ciB0byBAc3RhcnQuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBY3RpdmF0ZSBwYWRzIGJlZm9yZSB0cnlpbmcgdG8gdXNlIHRoZW0uCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9zZWdtZW50X3N1aXRlKToKCSAgQWRkIHNpbXBsZSBjaGVjayBmb3Igc2VnbWVudHMgYW5kIG5lZ2F0aXZlIHJhdGVzLgoKMjAwNi0xMC0wOSAxMToyMDo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIGdzdF90YWdfbGlzdF9pc19lbXB0eSgpICgjMzYwNDY3KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKGdzdF90YWdfbGlzdF9pc19lbXB0eSk6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBUEk6IGFkZCBnc3RfdGFnX2xpc3RfaXNfZW1wdHkoKSAoIzM2MDQ2NykuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBbmQgYSB0ZXN0IGNhc2UuCgoyMDA2LTEwLTA5IDExOjA2OjUwICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuaDogUmV2ZXJ0IGNoYW5nZSBmcm9tIGVhcmxpZXIgd3J0IEdTVF9NRVNTQUdFX1RZUEVfQU5ZIGhhdmluZyBhIHZhbHVlIHRoYXQgZG9lc24ndCBmaXQgb24gZW51bWVyYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTEwLTA5ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgUmV2ZXJ0IGNoYW5nZSBmcm9tIGVhcmxpZXIgd3J0IEdTVF9NRVNTQUdFX1RZUEVfQU5ZIGhhdmluZwoJICBhIHZhbHVlIHRoYXQgZG9lc24ndCBmaXQgb24gZW51bWVyYXRpb24uCgoyMDA2LTEwLTA5IDEwOjE0OjI4ICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IFJlbW92ZSBsb2NhbCBkZWJ1Z2dpbmcgc3lzdGVtIGFuZCB1c2UgR3N0cmVhbWVyJ3MgaW5zdGVhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMTAtMDkgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3RocmVhZCk6CgkgIFJlbW92ZSBsb2NhbCBkZWJ1Z2dpbmcgc3lzdGVtIGFuZCB1c2UgR3N0cmVhbWVyJ3MgaW5zdGVhZC4KCjIwMDYtMTAtMDkgMDk6MzI6MjkgKzAwMDAgIEpvc2VwIFRvcnJlIFZhbGxlcyA8am9zZXBAZmx1ZW5kby5jb20+CgoJICBjb21tb24vbTQvZ3N0LWVycm9yLm00OiBEaXNhYmxlIHdhcm5pbmcgb2Ygc3RhdGVtZW50IG5vdCByZWFjaGVkIG9uIEZvcnRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0xMC0wOSAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICBQYXRjaCBieTogSm9zZXAgVG9ycmUgVmFsbGVzIDxqb3NlcEBmbHVlbmRvLmNvbT4KCSAgKiBjb21tb24vbTQvZ3N0LWVycm9yLm00OgoJICBEaXNhYmxlIHdhcm5pbmcgb2Ygc3RhdGVtZW50IG5vdCByZWFjaGVkIG9uIEZvcnRlLgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEZpeCB3YXJuaW5nIG9uIEZvcnRlICh2YWx1ZSBkb2Vzbid0IGZpdCBvbiBlbnVtZXJhdGlvbikuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jaGFpbl91bmxvY2tlZCk6CgkgIEZpeCB3YXJuaW5nIG9uIEZvcnRlICh2YWx1ZSBkb2Vzbid0IGZpdCBvbiBlbnVtZXJhdGlvbikuCgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IChnc3RfbmV0X2NsaWVudF9jbG9ja190aHJlYWQpOgoJICBERUJVRyBtYWNybyBzYXlzIGl0IHRha2VzIG1pbmltdW0gb2YgMiBhcmdzIGFuZCBzbyBGb3J0ZQoJICBjb21wbGFpbnMgYWJvdXQgdGhlIHVzZSB3aXRoIGp1c3QgMSBhcmcuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBVc2UgY29ycmVjdCByZXR1cm4gdHlwZSBmb3IgdGhlIHVyaSBoYW5kbGVyIGltcGxlbWVudGF0aW9ucy4KCSAgQWxsIHRoZXNlIGZpeCB3YXJuaW5ncyBpbiBGb3J0ZS4gIEZpeGVzIGJ1ZyAjMzYwODYwLgoKMjAwNi0xMC0wOCAxMzoyNzoxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50Lmg6IGdjYyB2ZXJzaW9ucyBwcmlvciB0byBnY2MgMy4zIGFwcGFyZW50bHkgY29tcGxhaW4gYWJvdXQgYSBOVUxMIHByaW50ZiBmb3JtYXQgc3RyaW5nLCBzbyBkb24ndCB1c2UgRy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBnY2MgdmVyc2lvbnMgcHJpb3IgdG8gZ2NjIDMuMyBhcHBhcmVudGx5IGNvbXBsYWluIGFib3V0IGEgTlVMTCBwcmludGYKCSAgZm9ybWF0IHN0cmluZywgc28gZG9uJ3QgdXNlIEdfR05VQ19QUklOVEYgZm9yIHRob3NlIHZlcnNpb25zLgoKMjAwNi0xMC0wNyAxODo0MToxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0Lio6IE1pbm9yIGZpeGVzIHRvIEdTVF9JU19UQUdfTElTVCBhbmQgZ3N0X2lzX3RhZ19saXN0KCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChnc3RfaXNfdGFnX2xpc3QpOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIE1pbm9yIGZpeGVzIHRvIEdTVF9JU19UQUdfTElTVCBhbmQgZ3N0X2lzX3RhZ19saXN0KCkuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3RhZ19zdWl0ZSk6CgkgIFNtYWxsIHRlc3QgZm9yIHRoZSBhYm92ZS4KCjIwMDYtMTAtMDcgMTg6MTE6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5oOiBMZXNzIHRhYnMsIG1vcmUgc3BhY2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBMZXNzIHRhYnMsIG1vcmUgc3BhY2VzLgoKMjAwNi0xMC0wNiAxNzoyMTozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmg6IFRob3NlIHR3byBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgZG8gYWN0dWFsbHkgYmVsb25nIHRoZXJlLCByZXZlcnQgY29tbWl0IGZyb20geWVzdGVyZGF5IHRoYXQgdHVybmVkIHRoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBUaG9zZSB0d28gZnVuY3Rpb24gZGVjbGFyYXRpb25zIGRvIGFjdHVhbGx5IGJlbG9uZyB0aGVyZSwgcmV2ZXJ0CgkgIGNvbW1pdCBmcm9tIHllc3RlcmRheSB0aGF0IHR1cm5lZCB0aGVtIGludHJvIG1hY3Jvcy4KCjIwMDYtMTAtMDYgMTQ6NDY6MDQgKzAwMDAgIEpvc2VwIFRvcnJlIFZhbGxlcyA8am9zZXBAZmx1ZW5kby5jb20+CgoJICBnc3QvZ3N0LmM6IEZpeCBlbXB0eSBkZWNsYXJhdGlvbiBhbmQgdHlwZSBtaXNtYXRjaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMTAtMDYgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgUGF0Y2ggYnk6IEpvc2VwIFRvcnJlIFZhbGxlcyA8am9zZXBAZmx1ZW5kby5jb20+CgkgICogZ3N0L2dzdC5jOiAoZ3N0X2luaXRfZ2V0X29wdGlvbl9ncm91cCk6CgkgIEZpeCBlbXB0eSBkZWNsYXJhdGlvbiBhbmQgdHlwZSBtaXNtYXRjaC4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKToKCSAgRml4IHR5cGUgbWlzbWF0Y2guCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NvbnRpbnVlX3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9mdW5jKSwgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgIEZpeCB0eXBlIG1pc21hdGNoZXMuCgkgICogZ3N0L2dzdGluZm8uYzogKGdzdF9kZWJ1Z19jb21wYXJlX2xvZ19mdW5jdGlvbl9ieV9mdW5jKSwKCSAgKGdzdF9kZWJ1Z19yZW1vdmVfbG9nX2Z1bmN0aW9uKSwgKF9nc3RfZGVidWdfbmFtZW9mX2Z1bmNwdHIpOgoJICBDYXN0IGFzIGFwcHJvcHJpYXRlLgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9jbGFzc19zaWduYWxfY29ubmVjdCk6CgkgIENhc3QgYXMgYXBwcm9wcmlhdGUuICBUaGUgZnVuY3Rpb24gcG9pbnRlciBwYXJhbWV0ZXIgcmVhbGx5CgkgIGhhcyB0aGUgd3JvbmcgdHlwZSBidXQgd291bGQgYnJlYWsgQVBJIGlmIHdlIGNoYW5nZSBpdC4KCSAgKiBnc3QvZ3N0cXVlcnkuYzoKCSAgRml4IHJlZGVmaW5pdGlvbiBvZiBfRklMRV9PRkZTRVRfQklUUyBjYXVzZWQgb24gU29sYXJpcyB3cnQKCSAgb3JkZXIgb2YgaW5jbHVkaW5nIHN0cmluZy5oLgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUpOgoJICBSZW1vdmUgdW5yZWFjaGFibGUgbGluZS4KCSAgKiBnc3QvZ3N0eG1sLmM6IChnc3RfeG1sX3BhcnNlX2RvYyk6CgkgIEZpeCB0eXBlIG1pc21hdGNoLgoJICBBbGwgdGhlc2UgY2F1Z2h0IGJ5IEZvcnRlLgoKMjAwNi0xMC0wNiAxNDowMDo0OSArMDAwMCAgSm9zZXAgVG9ycmUgVmFsbGVzIDxqb3NlcEBmbHVlbmRvLmNvbT4KCgkgIGNvbW1vbi9tNC9nc3QtZXJyb3IubTQ6IEZpeGVkIGJ1ZyAjMzYwMTUxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0xMC0wNiAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICBQYXRjaCBieTogSm9zZXAgVG9ycmUgVmFsbGVzIDxqb3NlcEBmbHVlbmRvLmNvbT4KCSAgKiBjb21tb24vbTQvZ3N0LWVycm9yLm00OgoJICBGaXhlZCBidWcgIzM2MDE1MS4KCSAgV2UgbmVlZCB0byBkaXNhYmxlIHdhcm5pbmdzIG9uIEZvcnRlIGZvciBlbXB0eSBkZWNsYXJhdGlvbnMKCSAgZHVlIHRvIGdzdC1pbmRlbnQgYWRkaW5nIDtzIHRvIGxpbmVzIHRoYXQganVzdCB1c2UgbWFjcm9zCgkgIHdoZXJlIHRoZSBtYWNybyBhY3R1YWxseSBkb2Vzbid0IG5lZWQgYSA7IGF0IGVuZCB0byBlbmQKCSAgc3RhdGVtZW50LgoKMjAwNi0xMC0wNiAxMzowMTozMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogQWRkIHNvbWUgRklYTUUgZm9yIHRoZSBORVdTRUdNRU5UIGhhbmRsaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX29wZW5fZmlsZSksCgkgIChnc3RfZmlsZV9zaW5rX2Nsb3NlX2ZpbGUpLCAoZ3N0X2ZpbGVfc2lua19ldmVudCksCgkgIChnc3RfZmlsZV9zaW5rX3JlbmRlcik6CgkgIEFkZCBzb21lIEZJWE1FIGZvciB0aGUgTkVXU0VHTUVOVCBoYW5kbGluZy4KCjIwMDYtMTAtMDUgMTU6NDc6NDQgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICBnc3QvcGFyc2UvZ3JhbW1hci55OiBSZW1vdmUgc3RhdGljIGZ1bmN0aW9uIGdzdF9wYXJzZV9lbGVtZW50X2xvY2sgYXMgYWxsIGl0IGRvZXMgaXMgcmV0dXJuLiAgTG9va3MgbGlrZSBjcnVmdCBmcm9tIDAuOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMTAtMDUgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBSZW1vdmUgc3RhdGljIGZ1bmN0aW9uIGdzdF9wYXJzZV9lbGVtZW50X2xvY2sgYXMgYWxsIGl0IGRvZXMKCSAgaXMgcmV0dXJuLiAgTG9va3MgbGlrZSBjcnVmdCBmcm9tIDAuOC4KCjIwMDYtMTAtMDUgMTU6MzE6MTYgKzAwMDAgIEpvc2VwIFRvcnJlIFZhbGxlcyA8am9zZXBAZmx1ZW5kby5jb20+CgoJICBGaXggYSBjb21waWxhdGlvbiBpc3N1ZSB3aXRoIEZvcnRlIG9uIFNvbGFyaXMuICBpbmV0X2F0b24gaXMgaW4gbGlicmVzb2x2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0xMC0wNSAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICBQYXRjaCBieTogSm9zZXAgVG9ycmUgVmFsbGVzIDxqb3NlcEBmbHVlbmRvLmNvbT4KCSAgKiBjb21tb24vbTQvZ3N0LWVycm9yLm00OgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIEZpeCBhIGNvbXBpbGF0aW9uIGlzc3VlIHdpdGggRm9ydGUgb24gU29sYXJpcy4gIGluZXRfYXRvbiBpcyBpbgoJICBsaWJyZXNvbHYuCgoyMDA2LTEwLTA1IDE0OjI2OjA4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgUHJpbnRmIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChwcmVfYWN0aXZhdGUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChsb2FkX3BsdWdpbik6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIChnc3RfZHBfcGFja2V0X2Zyb21fZXZlbnRfMV8wKToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX29ic2VydmVfdGltZXMpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY3JlYXRlKToKCSAgUHJpbnRmIGZpeGVzLgoKMjAwNi0xMC0wNSAxMjozMTowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBHU1RfVVNJTkdfUFJJTlRGX0VYVEVOU0lPTiB0byBnc3Rjb25maWcuaCBzbyB0aGF0IHdlIGtub3cgd2hldGhlciB3ZSBjYW4gdXNlIEdfR05VQ19QUklOVEYgaW4gb3RoZXIgaGVhZGVyIGZpbGVzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBBZGQgR1NUX1VTSU5HX1BSSU5URl9FWFRFTlNJT04gdG8gZ3N0Y29uZmlnLmggc28gdGhhdCB3ZSBrbm93CgkgIHdoZXRoZXIgd2UgY2FuIHVzZSBHX0dOVUNfUFJJTlRGIGluIG90aGVyIGhlYWRlciBmaWxlcyBhbmQgYXQKCSAgbGVhc3QgY2hlY2sgdGhlIHByaW50ZiBmb3JtYXQvYXJndW1lbnRzIG9mIGRlYnVnIG1lc3NhZ2VzIGFuZAoJICBHU1RfRUxFTUVOVF9FUlJPUiBtZXNzYWdlcyB3aGVuIHRoZSBwcmludGYgZXh0ZW5zaW9uIGlzIG5vdAoJICBiZWluZyB1c2VkLgoJICBSZXBsYWNlIG1vcmUgdGFicyB3aXRoIHNwYWNlcyBpbiBnc3RpbmZvLmggYW5kIHJlbW92ZSB0d28gc3B1cmlvdXMKCSAgZnVuY3Rpb24gZGVjbGFyYXRpb25zIGluIEdTVF9ESVNBQkxFX0RFQlVHIHBhcnQgd2l0aCBtYWNyb3MuCgoyMDA2LTEwLTAzIDE5OjEzOjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJ1cy5jOiBNb3JlIGRvY3MgZm9yIHRoZSBzeW5jLW1lc3NhZ2Ugc2lnbmFsIChtZW50aW9uIHRoYXQgaXQgaXMgbm90IGVtaXR0ZWQgYnkgZGVmYXVsdCk7IGxvZyBtZXNzYWdlIHN0cnVjdHVyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfY2xhc3NfaW5pdCksIChnc3RfYnVzX3Bvc3QpOgoJICBNb3JlIGRvY3MgZm9yIHRoZSBzeW5jLW1lc3NhZ2Ugc2lnbmFsIChtZW50aW9uIHRoYXQgaXQgaXMgbm90CgkgIGVtaXR0ZWQgYnkgZGVmYXVsdCk7IGxvZyBtZXNzYWdlIHN0cnVjdHVyZXMgb2YgbWVzc2FnZXMgcG9zdGVkIG9uCgkgIHRoZSBidXMgYXMgd2VsbC4KCjIwMDYtMTAtMDMgMTU6MTA6NTEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdC5jOiBVc2UgYSBwaXBlIHBhaXIgdG8gcmVjZWl2ZSBzdGF0dXMgcmVzdWx0cyBmcm9tIHRoZSBmb3JrZWQgY2hpbGQsIGFuZCBpZ25vcmUgdGhlIHJlc3VsdCBmcm9tIHdhaXRwaWQuIEZpeGVzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X2ZvcmtpbmcpOgoJICBVc2UgYSBwaXBlIHBhaXIgdG8gcmVjZWl2ZSBzdGF0dXMgcmVzdWx0cyBmcm9tIHRoZSBmb3JrZWQgY2hpbGQsIGFuZAoJICBpZ25vcmUgdGhlIHJlc3VsdCBmcm9tIHdhaXRwaWQuIEZpeGVzICMzNTU0OTkKCjIwMDYtMTAtMDIgMTY6NDY6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogRml4IGxlYWsgaW4gY2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2dob3N0X3BhZF9zdWl0ZSk6CgkgIEZpeCBsZWFrIGluIGNoZWNrLgoKMjAwNi0xMC0wMiAxNjozNzo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogQWRkICdTaW5jZTogMC4xMC4xMScgdG8gZ3N0X3BhZF9pc19ibG9ja2luZygpIGd0ay1kb2MgYmx1cmIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgQWRkICdTaW5jZTogMC4xMC4xMScgdG8gZ3N0X3BhZF9pc19ibG9ja2luZygpIGd0ay1kb2MgYmx1cmIuCgoyMDA2LTEwLTAyIDE2OjAxOjU0ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6IEZ1cnRoZXIgZXhwbGFpbiB0aGUgdXNlIG9mIGZsdXNoaW5nIG9uIGJsb2NrZWQgcGFkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkgIEZ1cnRoZXIgZXhwbGFpbiB0aGUgdXNlIG9mIGZsdXNoaW5nIG9uIGJsb2NrZWQgcGFkcy4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfaXNfYmxvY2tpbmcpLCAoaGFuZGxlX3BhZF9ibG9jayksCgkgIChnc3RfcGFkX3B1c2hfZXZlbnQpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgQWRkZWQgbmV3IEdzdFBhZEZsYWcgOiBHU1RfUEFEX0JMT0NLSU5HLgoJICBBZGRzIHRoZSBub3Rpb24gb2YgcGFkcyByZWFsbHkgYmxvY2tpbmcsIHdoaWNoIGVuYWJsZXMgdG8gcHJvcGVybHkKCSAgaGFuZGxlIEZMVVNIX1NUQVJUL0ZMVVNIX1NUT1AgZXZlbnRzIG9uIGJsb2NrZWQgcGFkcy4KCSAgRml4ZXMgIzM1ODk5OQoJICBBUEk6IGdzdF9wYWRfaXNfYmxvY2tpbmcoKQoJICBBUEk6IEdTVF9QQURfSVNfQkxPQ0tJTkcoKSBtYWNybwoJICBBUEk6IEdTVF9QQURfQkxPQ0tJTkcgR3N0UGFkRmxhZwoKMjAwNi0xMC0wMiAxMDowNjoxNyArMDAwMCAgbXJjZ3JhbiA8bXJjLmdyYW5AZ21haWwuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IEZpbHRlciB0aGUgcHJveGllZCBjYXBzIGFnYWluc3QgdGhlIHBhZHRlbXBsYXRlIGlmIHdlIGhhdmUgb25lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IG1yY2dyYW4gPG1yYy5ncmFuIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2RvX2dldGNhcHMpOgoJICBGaWx0ZXIgdGhlIHByb3hpZWQgY2FwcyBhZ2FpbnN0IHRoZSBwYWR0ZW1wbGF0ZSBpZiB3ZSBoYXZlIG9uZS4KCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9uZXdfc2VnbWVudCk6CgkgIEFkZCBpbmNsdWRlIGZvciBnc3RpbmZvLmggc28gdGhhdCBjb21waWxhdGlvbiB3aXRoCgkgIC1ER1NUX0RJU0FCTEVfR1NUX0RFQlVHIHdvcmtzIGFnYWluLiBGaXhlcyAjMzU4NDM2LgoKMjAwNi0xMC0wMiAwOTo0NDowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgR2l2ZSBjcmVkaXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEdpdmUgY3JlZGl0CgoyMDA2LTEwLTAyIDA5OjQxOjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiBTZXQgZmlsZSB0byBOVUxMIHdoZW4gY2xvc2luZyBmaWxlc2luayBzbyB0aGF0IHdlIGNhbiBzZXQgYSBuZXcgZmlsZW5hbWUgaW4gUkVBRFkuIEZpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfaW5pdCksCgkgIChnc3RfZmlsZV9zaW5rX3NldF9sb2NhdGlvbiksIChnc3RfZmlsZV9zaW5rX29wZW5fZmlsZSksCgkgIChnc3RfZmlsZV9zaW5rX2Nsb3NlX2ZpbGUpLCAoZ3N0X2ZpbGVfc2lua19ldmVudCksCgkgIChnc3RfZmlsZV9zaW5rX3JlbmRlcik6CgkgIFNldCBmaWxlIHRvIE5VTEwgd2hlbiBjbG9zaW5nIGZpbGVzaW5rIHNvIHRoYXQgd2UgY2FuIHNldCBhIG5ldyBmaWxlbmFtZQoJICBpbiBSRUFEWS4gRml4ZXMgIzM1ODYxMy4KCjIwMDYtMTAtMDIgMDg6Mzc6MjQgKzAwMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvQG5udmEub3JnPgoKCSAgZ3N0L2dzdGV2ZW50LmM6IEZpeCBnc3RfbWluaV9vYmplY3RfbWFrZV93cml0YWJsZSgpIGFuZCBnc3RfZXZlbnRfY29weSgpIGZvciBldmVudHMgd2l0aCBldmVudCBzdHJ1Y3R1cmVzIGJ5IHNldHRpbmcgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQWxlc3NhbmRybyBEZWNpbmEgIDxhbGVzc2FuZHJvIGF0IG5udmEgb3JnPgoJICAqIGdzdC9nc3RldmVudC5jOiAoX2dzdF9ldmVudF9jb3B5KToKCSAgRml4IGdzdF9taW5pX29iamVjdF9tYWtlX3dyaXRhYmxlKCkgYW5kIGdzdF9ldmVudF9jb3B5KCkgZm9yIGV2ZW50cwoJICB3aXRoIGV2ZW50IHN0cnVjdHVyZXMgYnkgc2V0dGluZyB0aGUgcGFyZW50IHJlZmNvdW50IGFkZHJlc3Mgb2YgdGhlCgkgIGNvcGllZCBzdHJ1Y3R1cmUgdG8gdGhlIGFkZHJlc3Mgb2YgdGhlIHJlZmNvdW50IG1lbWJlciBvZiB0aGUgbmV3bHkKCSAgY29waWVkIGV2ZW50IHJhdGhlciB0aGFuIHRoZSBhZGRyZXNzIG9mIHRoZSByZWZjb3VudCBtZW1iZXIgb2YgdGhlCgkgIG9yaWdpbmFsIGV2ZW50LiBGaXhlcyAjMzU4NzM3LgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVbml0IHRlc3QgZm9yIHRoZSBhYm92ZS4KCjIwMDYtMDktMjkgMjA6Mjk6NDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOiBEaXN0IHNvbWUgbW9yZSBmaWxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgIERpc3Qgc29tZSBtb3JlIGZpbGVzLgoKMjAwNi0wOS0yOSAxMjozMToxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiBBZGQgdGVzdCBmb3IgdGhlIHByZXZpb3VzIGZpeDsgYWRkIHNvbWUgbW9yZSB0ZXN0cyBmb3IgY29ycmVjdCByZWZjb3VudGluZyBiZWhhdmlvdXI7IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgQWRkIHRlc3QgZm9yIHRoZSBwcmV2aW91cyBmaXg7IGFkZCBzb21lIG1vcmUgdGVzdHMKCSAgZm9yIGNvcnJlY3QgcmVmY291bnRpbmcgYmVoYXZpb3VyOyBmaXggYSBmZXcgbGVha3MKCSAgaW4gdGVzdCBjYXNlczsgY2FsbCBnc3RfY29udHJvbGxlcl9pbml0KCkgYXQgc3RhcnQKCSAgb2YgYWxsIHRlc3RzLgoKMjAwNi0wOS0yOSAxMjoyNDo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBEb24ndCBnX3JldHVybl92YWxfaWZfZmFpbCgpIG9uIHRpbWVkIHZhbHVlcyB3aXRoIGludmFsaWQgdGltZXN0YW1wcyBpbnNpZGUgYSBjci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sbGVyX25ld192YWxpc3QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc2V0X2Zyb21fbGlzdCk6CgkgIERvbid0IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKCkgb24gdGltZWQgdmFsdWVzIHdpdGggaW52YWxpZCB0aW1lc3RhbXBzCgkgIGluc2lkZSBhIGNyaXRpY2FsIHNlY3Rpb24gd2l0aG91dCB1bmxvY2tpbmcgdGhlIG11dGV4LiBTcG90dGVkIGJ5CgkgIFJlbsOpIFN0YWRsZXIuICgjMzU3NjE3KQoJICBBbHNvLCBmaXggdXAgcmVmY291bnRpbmcgcHJvcGVybHk6IHdoZW4gcmV0dXJuaW5nIGFuIGV4aXN0aW5nCgkgIGNvbnRyb2xsZXIsIHdlIHNob3VsZCBpbmNyZWFzZSB0aGUgcmVmZXJlbmNlIG9ubHkgb25jZSBhbmQgbm90CgkgIG9uY2UgcGVyIHByb3BlcnR5IGFuZCB3aGVuIHRyeWluZyB0byBjb250cm9sIGEgcHJvcGVydHkgYWdhaW4KCSAgd2Ugc2hvdWxkIGFsc28gaW5jcmVhc2UgdGhlIHJlZmNvdW50LgoKMjAwNi0wOS0yOSAwODoyMjoyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L25ldC86IFN0b3AgcmVhZGluZyBjb21tYW5kcyB3aGVuIEVPRiBhcyB3ZWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3RocmVhZCk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX3RocmVhZCk6CgkgIFN0b3AgcmVhZGluZyBjb21tYW5kcyB3aGVuIEVPRiBhcyB3ZWxsLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpOgoJICBVbmlmeSBkZXNjcmlwdGlvbiBvZiB0aGUgZHVtcCBwcm9wZXJ0eS4KCjIwMDYtMDktMjggMTc6MjA6MTcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBNZW50aW9uIGJ1ZyBudW1iZXIgaW4gcHJldmlvdXMgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBNZW50aW9uIGJ1ZyBudW1iZXIgaW4gcHJldmlvdXMgY29tbWl0CgoyMDA2LTA5LTI4IDE1OjUyOjA0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2V4YW1wbGVzL21hbnVhbC8uY3ZzaWdub3JlOiBPSywgc28gaXQncyBhY3R1YWxseSBjdnNpZ25vcmUgdGhhdCBuZWVkcyBjaGFuZ2luZy4gU3RvcCBsYXVnaGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvbWFudWFsLy5jdnNpZ25vcmU6CgkgIE9LLCBzbyBpdCdzIGFjdHVhbGx5IGN2c2lnbm9yZSB0aGF0IG5lZWRzIGNoYW5naW5nLiBTdG9wIGxhdWdoaW5nLgoKMjAwNi0wOS0yOCAxNToyNzoxMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06IEdhaCwgZGVjbGFyZSB2YXJzICpiZWZvcmUqIHVzaW5nIHRoZW0KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBHYWgsIGRlY2xhcmUgdmFycyAqYmVmb3JlKiB1c2luZyB0aGVtCgoyMDA2LTA5LTI4IDE0OjAwOjQzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC86IFJlLWNvbW1pdCB0aGUgcmVnaXN0cnkgY2hhbmdlcywgYWxvbmcgd2l0aCBhbiBleHRyYSBmaXg6CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcHJlKSwgKHNjYW5fYW5kX3VwZGF0ZV9yZWdpc3RyeSksCgkgIChlbnN1cmVfY3VycmVudF9yZWdpc3RyeV9ub25mb3JraW5nKSwKCSAgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X2ZvcmtpbmcpLCAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnkpLAoJICAoaW5pdF9wb3N0KSwgKGdzdF9kZWJ1Z19oZWxwKSwgKGdzdF9kZWluaXQpOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2ZpbmFsaXplKSwKCSAgKGdzdF9yZWdpc3RyeV9yZW1vdmVfZmVhdHVyZXNfZm9yX3BsdWdpbl91bmxvY2tlZCksCgkgIChnc3RfcmVnaXN0cnlfcmVtb3ZlX3BsdWdpbiksIChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKSwKCSAgKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGgpLAoJICAoX3ByaXZfZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9jYWNoZV9wbHVnaW5zKSwKCSAgKF9wcml2X2dzdF9yZWdpc3RyeV9jbGVhbnVwKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgUmUtY29tbWl0IHRoZSByZWdpc3RyeSBjaGFuZ2VzLCBhbG9uZyB3aXRoIGFuIGV4dHJhIGZpeDoKCSAgV2hlbiBhIGNhY2hlZCBwbHVnaW4gaXMgZW5jb3VudGVyZWQgYXQgYSBkaWZmZXJlbnQgZmlsZSBwYXRoLAoJICB1cGRhdGUgdGhlIHN0b3JlZCBwYXRoIGluIHRoZSByZWdpc3RyeSBjYWNoZSBzbyB0aGF0IHRoZSBwYXJlbnQKCSAgcHJvY2VzcyBrbm93cyB3aGVyZSBpdCBhY3R1YWxseSBpcyBub3cgd2hlbiBpdCByZS1yZWFkcyB0aGUgcmVnaXN0cnkKCSAgY2FjaGUuIEZpeGVzIHRoZSB0aGluZyB0aGF0IGJyb2tlIGRpc3RjaGVjayB3aXRoIHRoZSBwcmV2aW91cyBjb21taXQuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIENsZWFuIHVwIGZpbGVzIG5hbWVkICdjb3JlJyB0b28gd2hlbiBydW5uaW5nIG1ha2UgY2xlYW4uCgkgICogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBTZXQgdXAgYSByZWdpc3RyeSBwYXRoIGZvciBydW5uaW5nIHRoZXNlIHRlc3RzLCBhbmQgY2xlYW4gaXQgcHJvcGVybHkKCSAgZm9yIGRpc3RjaGVjay4KCjIwMDYtMDktMjggMTE6MTE6MjggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBEb24ndCBwdWxsIGluIGdtb2R1bGUtMi4wLnBjIGFzIGEgZGVwZW5kZW5jeSBpbiBvdXIgLnBjIGZpbGVzIC0gd2Ugd2FudCBnbW9kdWxlLW5vLWV4cG9ydC0yLjAucGMgaW5zdGVhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRG9uJ3QgcHVsbCBpbiBnbW9kdWxlLTIuMC5wYyBhcyBhIGRlcGVuZGVuY3kgaW4gb3VyIC5wYyBmaWxlcyAtIHdlCgkgIHdhbnQgZ21vZHVsZS1uby1leHBvcnQtMi4wLnBjIGluc3RlYWQgc28gdGhhdCB3ZSBkb24ndCBkcmFnIGluCgkgIC0tZXhwb3J0LWR5bmFtaWMgb24gZXZlcnkgcHJvamVjdCB0aGF0IGxpbmtzIHRvIEdTdHJlYW1lci4KCSAgQWxzbywgbWFrZSBvdXIgZXhwb3J0IHJlZ2V4IG9ubHkgbWF0Y2ggdGhlIHN0YXJ0IG9mIHN5bWJvbHMsIHJhdGhlcgoJICB0aGFuIGFueSBzeW1ib2wgdGhhdCBjb250YWlucyAnX2dzdCcgc29tZXdoZXJlLgoJICAqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBUaGUgbGliZ3N0Y2hlY2sgd2UgYnVpbGQgZG9lcyBob3dldmVyIG5lZWQgZXhwb3J0LWR5bmFtaWMsIGFzIGl0CgkgIHByb2R1Y2VzIHNvbWUgc3ltYm9scyB0aGF0IGRvbid0IG1hdGNoIG91ciBfZ3N0Li4uIHN0eWxlIHJlZ2V4LgoKMjAwNi0wOS0yNyAxNzo0Mjo0NyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvOiBSZXZlcnQgcHJldmlvdXMgY2hhbmdlIHVudGlsIEkgZmlndXJlIG91dCB3aHkgaXQgYnJlYWtzIGRpc3RjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wcmUpLCAoc2Nhbl9hbmRfdXBkYXRlX3JlZ2lzdHJ5KSwKCSAgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X25vbmZvcmtpbmcpLAoJICAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfZm9ya2luZyksIChlbnN1cmVfY3VycmVudF9yZWdpc3RyeSksCgkgIChpbml0X3Bvc3QpLCAoZ3N0X2RlYnVnX2hlbHApLCAoZ3N0X2RlaW5pdCk6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfZmluYWxpemUpLAoJICAoZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9wbHVnaW4pLCAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCksCgkgIChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoKSwgKF9nc3RfcmVnaXN0cnlfcmVtb3ZlX2NhY2hlX3BsdWdpbnMpLAoJICAoX2dzdF9yZWdpc3RyeV9jbGVhbnVwKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgUmV2ZXJ0IHByZXZpb3VzIGNoYW5nZSB1bnRpbCBJIGZpZ3VyZSBvdXQgd2h5IGl0IGJyZWFrcyBkaXN0Y2hlY2suCgoyMDA2LTA5LTI3IDE2OjUyOjU5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3QuYzogTWFrZSBpbml0X3ByZSBhbmQgaW5pdF9wb3N0IHRha2UgdGhlIGZ1bGwgY29tcGxlbWVudCBvZiBHT3B0aW9uRnVuYyBhcmdzIHNvIHRoZXkgY2FuIHJldHVybiB1c2VmdWwgR0Vycm9ycy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3ByZSksIChzY2FuX2FuZF91cGRhdGVfcmVnaXN0cnkpLAoJICAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfbm9uZm9ya2luZyksCgkgIChlbnN1cmVfY3VycmVudF9yZWdpc3RyeV9mb3JraW5nKSwgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5KSwKCSAgKGluaXRfcG9zdCksIChnc3RfZGVidWdfaGVscCksIChnc3RfZGVpbml0KToKCSAgTWFrZSBpbml0X3ByZSBhbmQgaW5pdF9wb3N0IHRha2UgdGhlIGZ1bGwgY29tcGxlbWVudCBvZiBHT3B0aW9uRnVuYwoJICBhcmdzIHNvIHRoZXkgY2FuIHJldHVybiB1c2VmdWwgR0Vycm9ycy4gTWFrZSB0aGUgcmVnaXN0cnkgdXBkYXRpbmcKCSAgZnVuY3Rpb25zIGRvIHNvLgoJICBDYWxsIF9wcml2X2dzdF9yZWdpc3RyeV9yZW1vdmVfY2FjaGVfcGx1Z2lucyBhZnRlciBzY2FubmluZyBmaWxlcyB0bwoJICBlbnN1cmUgdGhhdCB0aGUgcmVnaXN0cnkgd2UncmUgYWJvdXQgdG8gd3JpdGUgb3V0IGRvZXNuJ3QgY29udGFpbgoJICBzdGFsZSBpbmZvcm1hdGlvbiBhYm91dCBvbGQtZGVsZXRlZCBwbHVnaW4gZmlsZXMuCgkgIE1ha2UgX3ByaXZfZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9jYWNoZV9wbHVnaW5zIHJldHVybiBhIGJvb2xlYW4gc28KCSAgdGhhdCBkZWxldGlvbiBvZiBwbHVnaW4gZmlsZXMgaXMgY29uc2lkZXJlZCBhIHJlZ2lzdHJ5IGNoYW5nZS4KCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9maW5hbGl6ZSksCgkgIChnc3RfcmVnaXN0cnlfcmVtb3ZlX2ZlYXR1cmVzX2Zvcl9wbHVnaW5fdW5sb2NrZWQpLAoJICAoZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9wbHVnaW4pLCAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCksCgkgIChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoKSwKCSAgKF9wcml2X2dzdF9yZWdpc3RyeV9yZW1vdmVfY2FjaGVfcGx1Z2lucyksCgkgIChfcHJpdl9nc3RfcmVnaXN0cnlfY2xlYW51cCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIFJlbmFtZSBfZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9jYWNoZV9wbHVnaW5zIGFuZCBfZ3N0X3JlZ2lzdHJ5X2NsZWFudXAKCSAgYnkgYWRkaW5nIF9wcml2IHByZWZpeCwgc28gdGhhdCB0aGV5IHdvbid0IGFwcGVhciBpbiB0aGUgZ2xvYmFsCgkgIHN5bWJvbCB0YWJsZS4gVGhleSBzdGlsbCBkbyBhdG0gdGhvdWdoIGJlY2F1c2Ugb2YgIzMxODAzMS4gTW92ZSB0aGUKCSAgcHJvdG90eXBlcyB0byBnc3RfcHJpdmF0ZS5oCgkgIFdoZW4gcmVtb3ZpbmcgYSBwbHVnaW4sIHJlbW92ZSBhbGwgZmVhdHVyZXMgZm9yIHRoYXQgcGx1Z2luIHRvby4KCSAgRml4ZXMgIzM0MDg3OC4KCjIwMDYtMDktMjcgMTM6MTk6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczogTWFrZSBpdCBjbGVhciB0aGF0IHRoZSAiY29tcGlsZWQtaW4gZGVzY3JpcHRpb25zIiByZWFsbHkgbWVhbiB0aGUgZWxlbWVudCBkZXRhaWxzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSAgTWFrZSBpdCBjbGVhciB0aGF0IHRoZSAiY29tcGlsZWQtaW4gZGVzY3JpcHRpb25zIiByZWFsbHkgbWVhbgoJICB0aGUgZWxlbWVudCBkZXRhaWxzLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3Npbmtfd2FpdF9wcmVyb2xsKToKCSAgVXBkYXRlIGRvY3MuCgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY193YWl0X3BsYXlpbmcpLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIEFkZGVkIGZ1bmN0aW9uIHRvIGJsb2NrIHdoaWxlIHdhaXRpbmcgZm9yIFBMQVlJTkcsIHRoaXMgZnVuY3Rpb24KCSAgaXMgdXNlZCBieSBsaXZlIHNvdXJjZXMgdGhhdCBibG9jayBvbiB0aGUgY2xvY2suCgkgIEFQSTogZ3N0X2Jhc2Vfc3JjX3dhaXRfcGxheWluZygpCgoyMDA2LTA5LTI3IDEwOjEzOjEzICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIE1ha2VmaWxlLmFtOiBnc3QtZWxlbWVudC1jaGVjay5tNCBpcyBnZW5lcmF0ZWQgYW5kIHNob3VsZCB0aGVyZWZvcmUgYmUgY29waWVkIGZyb20gdGhlIGJ1aWxkIGRpciByYXRoZXIgdGhhbiB0aGUgc291ci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqIGF0IGF4aXMgY29tPgoJICAqIE1ha2VmaWxlLmFtOgoJICBnc3QtZWxlbWVudC1jaGVjay5tNCBpcyBnZW5lcmF0ZWQgYW5kIHNob3VsZCB0aGVyZWZvcmUgYmUKCSAgY29waWVkIGZyb20gdGhlIGJ1aWxkIGRpciByYXRoZXIgdGhhbiB0aGUgc291cmNlIGRpciAoIzM1NzU5MykuCgkgICdtYWtlIGRpc3RjaGVjaycgaGFzbid0IG5vdGljZWQgdGhpcyBiZWNhdXNlIHdlIHdlcmUgZGlzdGluZwoJICB0aGUgZmlsZSBhcyB3ZWxsLCBzbyBzdG9wIGRvaW5nIHRoYXQuCgoyMDA2LTA5LTI3IDA5OjIzOjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzogQWRkIHNvbWUgdGVzdHMgZm9yIGdzdF9jYXBzX2ludGVyc2VjdCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2NhcHNfc3VpdGUpOgoJICBBZGQgc29tZSB0ZXN0cyBmb3IgZ3N0X2NhcHNfaW50ZXJzZWN0KCkuCgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIFByaW50IGFsbCBidWZmZXJpbmcgcGVyY2VudGFnZXMgd2UgZ2V0LCBldmVuIHRoZSAxMDAlIG9uZS4KCjIwMDYtMDktMjYgMTI6Mzk6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBGaXggcHJpbnRpbmcgb2YgZmxhZ3MgdG8gbWF0Y2ggdGhlIGxvb2sgb2YgZW51bXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyksCgkgIChwcmludF9zaWduYWxfaW5mbyk6CgkgIEZpeCBwcmludGluZyBvZiBmbGFncyB0byBtYXRjaCB0aGUgbG9vayBvZiBlbnVtcy4KCjIwMDYtMDktMjUgMTM6MDg6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogRml4IHR5cG8gaW4gZG9jcyBibHVyYi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIEZpeCB0eXBvIGluIGRvY3MgYmx1cmIuCgoyMDA2LTA5LTI1IDExOjE2OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHVyaS5jOiBEb24ndCBhc3NlcnQvY3Jhc2ggaGVyZSBpZiBhIHVyaSBoYW5kbGVyIGRvZXNuJ3QgcmV0dXJuIGFueSBzdXBwb3J0ZWQgcHJvdG9jb2xzLiBUaGUgbGlzdCBvZiBwcm90b2NvbHMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1cmkuYzogKHNlYXJjaF9ieV9lbnRyeSk6CgkgIERvbid0IGFzc2VydC9jcmFzaCBoZXJlIGlmIGEgdXJpIGhhbmRsZXIgZG9lc24ndCByZXR1cm4gYW55CgkgIHN1cHBvcnRlZCBwcm90b2NvbHMuIFRoZSBsaXN0IG9mIHByb3RvY29scyBjb3VsZCBiZSBnZW5lcmF0ZWQKCSAgZHluYW1pY2FsbHkgYXQgcnVudGltZSBvciBhdCBwbHVnaW4gcmVnaXN0cmF0aW9uLCBhbmQgYW4gZXJyb3IKCSAgaW4gdGhlIHVuZGVybHlpbmcgbGlicmFyeSBzaG91bGRuJ3QgYmUgZmF0YWwgKCMzNTMzMDEpLgoKMjAwNi0wOS0yNSAxMDozNjoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmM6IEZpeCB3YXJuaW5nIGlmIEhBVkVfUFJJTlRGX0VYVEVOU0lPTiBpcyB1bmRlZmluZWQgKHNwb3R0ZWQgYnkgUGV0ZXIgS2plbGxlcnN0ZWR0KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgRml4IHdhcm5pbmcgaWYgSEFWRV9QUklOVEZfRVhURU5TSU9OIGlzIHVuZGVmaW5lZAoJICAoc3BvdHRlZCBieSBQZXRlciBLamVsbGVyc3RlZHQpLgoKMjAwNi0wOS0yMyAwOTozMDo0MCArMDAwMCAgQW50b2luZSBUcmVtYmxheSA8aGV4YTAwQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBNYXRjaCBfc3RhcnQvX3N0b3AgY2FsbHMgaW4gdGhlIGFjdGl2YXRlIGZ1bmN0aW9ucy4gUmVtb3ZlIHJlZHVuZGFudCBfc3RvcCBjYWxsIGZyb20gdGhlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMCBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfY2hlY2tfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlX3NyY19zdGFydCksCgkgIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCksIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgTWF0Y2ggX3N0YXJ0L19zdG9wIGNhbGxzIGluIHRoZSBhY3RpdmF0ZSBmdW5jdGlvbnMuIFJlbW92ZSByZWR1bmRhbnQKCSAgX3N0b3AgY2FsbCBmcm9tIHRoZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24uIEZpeGVzICMzNTY5MTAuCgkgIFR1cm4gZmFpbHVyZSBERUJVRyBpbnRvIEVSUk9SLgoKMjAwNi0wOS0yMiAxNToyOToyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFVwZGF0ZSBkb2NzIGFib3V0IGJ1ZmZlcmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfYnVmZmVyaW5nKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX2J1ZmZlcmluZyk6CgkgIFVwZGF0ZSBkb2NzIGFib3V0IGJ1ZmZlcmluZy4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OgoJICBGaXggdHlwby4KCjIwMDYtMDktMjIgMTQ6MzA6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSAgYXVkaW90ZXN0c3JjIGlzIG5vdCBwYXJ0IG9mIGNvcmUsIGZha2VzcmMgaXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGF1ZGlvdGVzdHNyYyBpcyBub3QgcGFydCBvZiBjb3JlLCBmYWtlc3JjIGlzCgoyMDA2LTA5LTIyIDEzOjMyOjQzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogUmVmIGluc3RhbmNlcyB3aGVuIHJldHVybmluZyB0aGVtIGFnYWluIChmaXhlcyAjMzU3MTgwKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sbGVyX25ld192YWxpc3QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfbmV3X2xpc3QpOgoJICBSZWYgaW5zdGFuY2VzIHdoZW4gcmV0dXJuaW5nIHRoZW0gYWdhaW4gKGZpeGVzICMzNTcxODApCgoyMDA2LTA5LTIyIDEwOjE3OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IERvbid0IGZvcmdldCB0byByZWxlYXNlIHByb3h5IGxvY2sgd2hlbiB0aGVyZSdzIGFuIGVycm9yLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfc2V0X3RhcmdldCk6CgkgIERvbid0IGZvcmdldCB0byByZWxlYXNlIHByb3h5IGxvY2sgd2hlbiB0aGVyZSdzIGFuIGVycm9yLgoKMjAwNi0wOS0yMCAxNjoxNzoyNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5oOiBBZGQgZXh0cmEgaW5pdGlhbGlzZXJzIGZvciBDYXBzIHRoaW5ncywgdG8gZml4IHNvbWUgcGx1Z2luIHdhcm5pbmdzIHdoZW4gdXNpbmcgLVdleHRyYQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICBBZGQgZXh0cmEgaW5pdGlhbGlzZXJzIGZvciBDYXBzIHRoaW5ncywgdG8gZml4IHNvbWUgcGx1Z2luIHdhcm5pbmdzCgkgIHdoZW4gdXNpbmcgLVdleHRyYQoKMjAwNi0wOS0xOCAxMzo1NjoyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBBbHNvIHNldCB0ZW1wbGF0ZSBvbiB0aGUgaW50ZXJuYWwgcGFkIHNvIHRoYXQgYSBnZXRjYXBzIGZyb20gdGhlIHRhcmdldCBwYWQgcmV0dXJucyB0aGUgdGVtcGxhdGUgYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfbmV3X2Z1bGwpOgoJICBBbHNvIHNldCB0ZW1wbGF0ZSBvbiB0aGUgaW50ZXJuYWwgcGFkIHNvIHRoYXQgYSBnZXRjYXBzIGZyb20gdGhlIHRhcmdldAoJICBwYWQgcmV0dXJucyB0aGUgdGVtcGxhdGUgY2Fwcy4KCjIwMDYtMDktMTggMTM6NDQ6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBVc2UgX0RFQlVHX09CSkVDVCBzb21lIG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UpLAoJICAoZ3N0X2VsZW1lbnRfZGlzcG9zZSk6CgkgIFVzZSBfREVCVUdfT0JKRUNUIHNvbWUgbW9yZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19sb29wKToKCSAgQXZvaWQgdHlwZWNoZWNrcy4KCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgSWYgdGhlIHRvcGxldmVsIGVsZW1lbnQgaXMgbm90IGEgR3N0UGlwZWxpbmUsIGl0IG11c3QgYmUgcHV0IGluIGEKCSAgcGlwZWxpbmUgc28gdGhhdCBhIGJ1cyBhbmQgY2xvY2sgaXMgc2VsZWN0ZWQuCgoyMDA2LTA5LTE3IDE5OjMxOjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEpJVFRFUiwgUkFURSwgYW5kIExBVEVOQ1kgcXVlcnkgc2hvdWxkIGJlIGhhbmRsZWQgYnkgdGhlIGRlZmF1bHQgY2FzZSBhbmQgbm90IGJ5IHRoZSBDT05WLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfcXVlcnkpOgoJICBKSVRURVIsIFJBVEUsIGFuZCBMQVRFTkNZIHF1ZXJ5IHNob3VsZCBiZSBoYW5kbGVkIGJ5IHRoZQoJICBkZWZhdWx0IGNhc2UgYW5kIG5vdCBieSB0aGUgQ09OVkVSVCBxdWVyeSBjb2RlLgoKMjAwNi0wOS0xNyAxOToyNjoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3Rmb3JtYXQuYzogRml4IGxvY2tpbmcgb3JkZXIgKG11c3QgdGFrZSBsb2NrIGJlZm9yZSB1c2luZyBuX3ZhbHVlcykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3Rmb3JtYXQuYzogKGdzdF9mb3JtYXRfcmVnaXN0ZXIpOgoJICBGaXggbG9ja2luZyBvcmRlciAobXVzdCB0YWtlIGxvY2sgYmVmb3JlIHVzaW5nIG5fdmFsdWVzKS4KCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9zZXJpYWxpemVfZW51bSksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZW51bV9pdGVyX2NtcCksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZW51bSk6CgkgIEZpeCBzZXJpYWxpc2F0aW9uL2Rlc2VyaWFsaXNhdGlvbiBvZiBjdXN0b20gcmVnaXN0ZXJlZCBHc3RGb3JtYXRzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgVW5pdCB0ZXN0IGZvciBjdXN0b20gZm9ybWF0IHNlcmlhbGlzYXRpb24vZGVzZXJpYWxpc2F0aW9uLgoKMjAwNi0wOS0xNiAyMTozODowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgTW9yZSBHX09CSkVDVCBtYWNybyBmaXhpbmcuIEFsc28gRml4IHNvbWUgZGV0YWlscyBvbiB0aGUgcGx1Z2luLXN0YW1wIHNlY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIE1vcmUgR19PQkpFQ1QgbWFjcm8gZml4aW5nLiBBbHNvIEZpeCBzb21lIGRldGFpbHMgb24gdGhlIHBsdWdpbi1zdGFtcAoJICBzZWN0aW9uLgoKMjAwNi0wOS0xNiAxMjo0OTowMiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBDaGVjayBpZiByZXF1ZXN0ZWQgY2FwcyBhcmUgdGhlIHNhbWUgYXMgdGhlIHNpbmtzIGNhcHMgSUYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgQ2hlY2sgaWYgcmVxdWVzdGVkIGNhcHMgYXJlIHRoZSBzYW1lIGFzIHRoZSBzaW5rcyBjYXBzIElGCgkgIC0+aGF2ZV9zYW1lX2NhcHMgaXMgVFJVRS4gSWYgdGhleSBhcmUgbm90LCBhY3QgYXMgaWYgaGF2ZV9zYW1lX2NhcHMKCSAgaXMgRkFMU0UuCgkgIFRoaXMgZml4ZXMgdGhlIHJlbmVnb3RpYXRpb24gaXNzdWVzIHN0YXRlZCBpbiAjMzUyODI3LgoKMjAwNi0wOS0xNiAxMDo0OTo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBFeHRyYWN0IHRoZSBtYW51YWwgZXhhbXBsZXMgYWdhaW4gbGlrZSB3ZSB1c2VkIHRvIGRvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSAgKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMvbWFudWFsL2V4dHJhY3QucGw6CgkgIEV4dHJhY3QgdGhlIG1hbnVhbCBleGFtcGxlcyBhZ2FpbiBsaWtlIHdlIHVzZWQgdG8gZG8uCgkgIEZpeCBvbmUgb2YgdGhlbS4KCjIwMDYtMDktMTYgMTA6NDc6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgd2luMzIvY29tbW9uL2NvbmZpZy5oOiB1cGRhdGUgZm9yIHZlcnNpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGUgZm9yIHZlcnNpb24KCjIwMDYtMDktMTUgMjE6MzA6MDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RlcnJvci5jOiBEb2N1bWVudHMgaG93IHRvIHJlY2VpdmUgZXJyb3JzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgRG9jdW1lbnRzIGhvdyB0byByZWNlaXZlIGVycm9ycy4KCjIwMDYtMDktMTUgMTA6NDM6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IEFkZGVkIHNvbWUgY29tbWVudHMgaGVyZSBhbmQgdGhlcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKHNpZ2ludF9oYW5kbGVyX3NpZ2hhbmRsZXIpLCAoY2hlY2tfaW50ciksCgkgIChldmVudF9sb29wKSwgKG1haW4pOgoJICBBZGRlZCBzb21lIGNvbW1lbnRzIGhlcmUgYW5kIHRoZXJlLgoJICBQb3N0IGFuIGFwcGxpY2F0aW9uIG1lc3NhZ2Ugd2hlbiBhbiBpbnRlcnJ1cHQgaXMgY2F1Z2h0IGluc3RlYWQgb2YgZG9pbmcKCSAgYW4gdW5jb250cm9sbGVkIHN0YXRlIGNoYW5nZS4KCSAgQ2xlYW4gdXAgdGhlIGV2ZW50IGxvb3AuCgkgIEhhbmRsZSBidWZmZXJpbmcgbWVzc2FnZXMsIHBhdXNlL3Jlc3VtZSB0aGUgcGlwZWxpbmUuCgkgIE1ha2Ugc2h1dGRvd24gYmVjYXVzZSBvZiBhbiBpbnRlcnJ1cHQgbW9yZSByZWxpYWJsZS4KCjIwMDYtMDktMTUgMDk6NDk6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IE1ha2Ugc3VyZSB0aGF0IG91ciBpbnRlcm5hbCBzdGF0ZSBpcyBjb3JyZWN0IHdoZW4gd2UgY29tbWl0IG91ciBzdGF0ZSBhc3luY2hyb25vdXNseS4gVGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua193YWl0X3ByZXJvbGwpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9vYmplY3QpOgoJICBNYWtlIHN1cmUgdGhhdCBvdXIgaW50ZXJuYWwgc3RhdGUgaXMgY29ycmVjdCB3aGVuIHdlIGNvbW1pdCBvdXIgc3RhdGUKCSAgYXN5bmNocm9ub3VzbHkuIFRoaXMgc29sdmVzIGEgcmFjZSB3aGVyZSBhIHN0YXRlIGNoYW5nZSB0byBQTEFZSU5HCgkgIGNvdWxkIGNhdXNlIHRoZSBzaW5rIHRvIHJlbWFpbiBibG9ja2VkIGluIHByZXJvbGwgaW4gc29tZSBzaXR1YXRpb25zLgoKMjAwNi0wOS0xNSAwODo1MDoyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IExpc3QgZmxhZ3MgYXMgaGV4IHNvIGl0J3MgZWFzaWVyIHRvIGRlYWwgd2l0aC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKSwKCSAgKHByaW50X3NpZ25hbF9pbmZvKToKCSAgTGlzdCBmbGFncyBhcyBoZXggc28gaXQncyBlYXNpZXIgdG8gZGVhbCB3aXRoLgoKMjAwNi0wOS0xNSAwODo0NzozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEV4cG9zZSBsb2dpYyB0byB3YWl0IGZvciBwcmVyb2xsIHNvIHRoYXQgc3ViY2xhc3NlcyBzdWNoIGFzIGF1ZGlvc2luayBjYW4gYWxzbyB1c2UgdGhpcyBtZXRob2QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua193YWl0X3ByZXJvbGwpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEV4cG9zZSBsb2dpYyB0byB3YWl0IGZvciBwcmVyb2xsIHNvIHRoYXQgc3ViY2xhc3NlcyBzdWNoIGFzIGF1ZGlvc2luawoJICBjYW4gYWxzbyB1c2UgdGhpcyBtZXRob2QuCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua193YWl0X3ByZXJvbGwoKQoKMjAwNi0wOS0xNSAwODo0Mzo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFNtYWxsIGNsZWFudXBzIGluIGRvY3MgYW5kIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3Rfc2V0X3BhcmVudCk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChkb19waXBlbGluZV9zZWVrKToKCSAgU21hbGwgY2xlYW51cHMgaW4gZG9jcyBhbmQgY29kZS4KCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfY2xpcCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgaWYgc3RvcCA9PSBzdGFydCBhbmQgc3RhcnQgaXMgaW4gdGhlIHNlZ21lbnQsIG5vIGNsaXBwaW5nIHNob3VsZCBiZQoJICBkb25lLiBBbHNvIGFkZCBhIHRlc3QgZm9yIHRoaXMuCgoyMDA2LTA5LTE1IDA4OjM5OjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkZWQgbWV0aG9kcyB0byBjcmVhdGUgYW5kIHBhcnNlIEJVRkZFUklORyBtZXNzYWdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19idWZmZXJpbmcpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2VfYnVmZmVyaW5nKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBBZGRlZCBtZXRob2RzIHRvIGNyZWF0ZSBhbmQgcGFyc2UgQlVGRkVSSU5HIG1lc3NhZ2VzLgoJICBBZGRlZCBwcmVsaW1pbmFyeSBkb2NzIGFib3V0IGJ1ZmZlcmluZy4KCSAgQVBJOiBnc3RfbWVzc2FnZV9uZXdfYnVmZmVyaW5nCgkgIEFQSTogZ3N0X21lc3NhZ2VfcGFyc2VfYnVmZmVyaW5nCgoyMDA2LTA5LTE1IDA4OjMyOjU3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBVcGRhdGUgZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOgoJICBVcGRhdGUgZG9jdW1lbnRhdGlvbi4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3NfaW5pdCksCgkgIChnc3RfZWxlbWVudF9yZWxlYXNlX3JlcXVlc3RfcGFkKSwgKGdzdF9lbGVtZW50X3NldF9jbG9jayksCgkgIChnc3RfZWxlbWVudF9nZXRfaW5kZXgpLCAoZ3N0X2VsZW1lbnRfYWRkX3BhZCksCgkgIChnc3RfZWxlbWVudF9yZW1vdmVfcGFkKSwgKGdzdF9lbGVtZW50X2dldF9yYW5kb21fcGFkKSwKCSAgKGdzdF9lbGVtZW50X3NlbmRfZXZlbnQpLCAoZ3N0X2VsZW1lbnRfZ2V0X3F1ZXJ5X3R5cGVzKSwKCSAgKGdzdF9lbGVtZW50X3F1ZXJ5KSwgKGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZSksCgkgIChnc3RfZWxlbWVudF9tZXNzYWdlX2Z1bGwpLCAoZ3N0X2VsZW1lbnRfY29udGludWVfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSksIChnc3RfZWxlbWVudF9zYXZlX3RoeXNlbGYpLAoJICAoZ3N0X2VsZW1lbnRfcmVzdG9yZV90aHlzZWxmKToKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoJICBSZW5hbWUgbGFzdCBiaXQgb2YgdGhlIG5ldy1wYWQgLT4gcGFkLWFkZGVkIHNpZ25hbCByZW5hbWUuCgkgIEZpeCB0aGUgY2FzZSB3aGVyZSBhbiBlbGVtZW50IHF1ZXJ5IHdvdWxkIG9ubHkgd29yayBpZiB0aGUgc291cmNlCgkgIHBhZCB3YXMgbGlua2VkLgoJICBBdm9pZCBzb21lIHVzZWxlc3MgdHlwZSBjaGVja2luZyBpbiBtZXNzYWdlIGhhbmRsaW5nLgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgoyMDA2LTA5LTE0IDIwOjEyOjA0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICBhZGQgYW4gSU5GTyBsaW5lIGZvciB3aGVuIHdlIGFjdHVhbGx5IHVwZGF0ZSB0aGUgZmQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhbiBJTkZPIGxpbmUgZm9yIHdoZW4gd2UgYWN0dWFsbHkgdXBkYXRlIHRoZSBmZAoKMjAwNi0wOS0xNCAyMDoxMToxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byB0cnVuawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byB0cnVuawoKPT09IHJlbGVhc2UgMC4xMC4xMCA9PT0KCjIwMDYtMDktMTQgMjA6MDg6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHJlbGVhc2luZyAwLjEwLjEwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC4xMC4xMAoKMjAwNi0wOS0wOSAxNjowODoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgZmlyc3QgcHJlcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlyc3QgcHJlcmVsZWFzZQoKMjAwNi0wOS0wOSAxNjowNzozNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHRyYW5zbGF0aW9uIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRyYW5zbGF0aW9uIHVwZGF0ZXMKCjIwMDYtMDktMDUgMTQ6MTE6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1wb3NpdGlvbi54bWw6IEZpeCB0eXBvIGluIHNhbXBsZSBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1wb3NpdGlvbi54bWw6CgkgIEZpeCB0eXBvIGluIHNhbXBsZSBjb2RlLgoKMjAwNi0wOS0wNSAwODozNToyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L25ldC86IE1ha2Ugc3R1ZmYgY29tcGlsZSBvbiB3aW5kb3dzLiBGaXhlcyAjMzQ1Mjk1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogKGluZXRfYXRvbiksCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19pbml0KSwgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2ZpbmFsaXplKSwKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2RvX3NlbGVjdCksIChnc3RfbmV0X2NsaWVudF9jbG9ja19uZXcpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6IChnc3RfbmV0X3RpbWVfcGFja2V0X3NlbmQpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0Lmg6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOiAoaW5ldF9hdG9uKSwKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9pbml0KSwgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9maW5hbGl6ZSksCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfdGhyZWFkKSwgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9uZXcpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSAgTWFrZSBzdHVmZiBjb21waWxlIG9uIHdpbmRvd3MuIEZpeGVzICMzNDUyOTUuCgoyMDA2LTA5LTAzIDExOjE2OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBQcmludCBiZXR0ZXIgZGV0YWlscyB3aGVuIGNoaWxkIHdhcyB0ZXJtaW5hdGVkIGJ5IHNpZ25hbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfZm9ya2luZyk6CgkgIFByaW50IGJldHRlciBkZXRhaWxzIHdoZW4gY2hpbGQgd2FzIHRlcm1pbmF0ZWQgYnkgc2lnbmFsLgoKMjAwNi0wOS0wMyAxMTowNjo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBQcmludCBhIHdhcm5pbmcgcmF0aGVyIHRoYW4gZ19hc3NlcnQoKSBpZiBhIHBsdWdpbiBmZWF0dXJlIGlzIGEgVVJJIGhhbmRsZXIgYnV0IHJldHVybnMgbm8gcHJvdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGdzdF9yZWdpc3RyeV94bWxfc2F2ZV9mZWF0dXJlKToKCSAgUHJpbnQgYSB3YXJuaW5nIHJhdGhlciB0aGFuIGdfYXNzZXJ0KCkgaWYgYSBwbHVnaW4gZmVhdHVyZQoJICBpcyBhIFVSSSBoYW5kbGVyIGJ1dCByZXR1cm5zIG5vIHByb3RvY29scyAoIzM1Mzk3NikuCgoyMDA2LTA5LTAyIDE5OjEwOjU2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczogRml4IHR3byB0eXBvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkgIEZpeCB0d28gdHlwb3MuCgoyMDA2LTA5LTAyIDE5OjAzOjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJICBkb2N1bWVudCBwcm9jZXNzIHNvbWUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jdW1lbnQgcHJvY2VzcyBzb21lIG1vcmUKCjIwMDYtMDktMDIgMTM6NDA6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGVycm9yLmM6CgkgIGNsYXJpZnkgZXJyb3IgbWVzc2FnZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2xhcmlmeSBlcnJvciBtZXNzYWdlCgoyMDA2LTA5LTAyIDEzOjM2OjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJICBkb2N1bWVudCBwcm9jZXNzIHNvbWUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jdW1lbnQgcHJvY2VzcyBzb21lIG1vcmUKCjIwMDYtMDktMDEgMTY6MDM6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiBmaXggdHlwbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IGZpeCB0eXBvCgoyMDA2LTA5LTAxIDE1OjU1OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZm8uYzogRml4IGxvY2tpbmcgb3JkZXIsIGhhbmRsZSBOVUxMIGZ1bmN0aW9uIHZhbHVlcyBwcm9wZXJseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzogKF9nc3RfZGVidWdfbmFtZW9mX2Z1bmNwdHIpOgoJICBGaXggbG9ja2luZyBvcmRlciwgaGFuZGxlIE5VTEwgZnVuY3Rpb24gdmFsdWVzIHByb3Blcmx5LgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIEZpeCBkb2NzLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYnVmZmVyX2FsbG9jX3VuY2hlY2tlZCk6CgkgIEluaXRpYWxpc2VkIHZhcmlhYmxlIGJlZm9yZSB1c2luZyBpdCBhbmQgZml4IGRlYnVnIHN0YXRlbWVudCB0bwoJICBwcmludCB0aGUgYWRkcmVzcyBvZiB0aGUgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGFkZHJlc3Mgb2YgdGhlCgkgIHZhcmlhYmxlIG9uIHRoZSBzdGFjayBob2xkaW5nIHRoZSBhZGRyZXNzIG9mIHRoZSBmdW5jdGlvbi4KCjIwMDYtMDktMDEgMTA6MzM6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogTW9yZSBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2RvX2V2ZW50KSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fYnVmZmVyYWxsb2MpLCAoZ3N0X3Byb3h5X3BhZF9kb19jaGFpbiksCgkgIChnc3RfcHJveHlfcGFkX2RvX2dldHJhbmdlKSwgKGdzdF9wcm94eV9wYWRfZG9fY2hlY2tnZXRyYW5nZSksCgkgIChnc3RfcHJveHlfcGFkX3NldF90YXJnZXRfdW5sb2NrZWQpLCAoZ3N0X2dob3N0X3BhZF9wYXJlbnRfc2V0KSwKCSAgKGdzdF9naG9zdF9wYWRfcGFyZW50X3Vuc2V0KSwKCSAgKGdzdF9naG9zdF9wYWRfaW50ZXJuYWxfZG9fYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfZ2hvc3RfcGFkX2ludGVybmFsX2RvX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfZ2hvc3RfcGFkX2RvX2xpbmspLCAoZ3N0X2dob3N0X3BhZF9kb191bmxpbmspLAoJICAoZ3N0X2dob3N0X3BhZF9pbml0KSwgKGdzdF9naG9zdF9wYWRfZGlzcG9zZSksCgkgIChnc3RfZ2hvc3RfcGFkX25ld19mdWxsKSwgKGdzdF9naG9zdF9wYWRfbmV3X25vX3RhcmdldCksCgkgIChnc3RfZ2hvc3RfcGFkX25ldyksIChnc3RfZ2hvc3RfcGFkX25ld19mcm9tX3RlbXBsYXRlKSwKCSAgKGdzdF9naG9zdF9wYWRfbmV3X25vX3RhcmdldF9mcm9tX3RlbXBsYXRlKSwKCSAgKGdzdF9naG9zdF9wYWRfZ2V0X3RhcmdldCksIChnc3RfZ2hvc3RfcGFkX3NldF90YXJnZXQpOgoJICBNb3JlIGNsZWFudXBzLgoJICBBdm9pZCBuZWVkbGVzcyB0eXBlY2hlY2tpbmcgaW4gbWFjcm9zLgoJICBTaW5jZSB0aGUgaW50ZXJuYWwgcGFkIGlzIGFsd2F5cyBwcmVzZW50IGFuZCBuZXZlciBjaGFuZ2VzLCB0aGVyZSBpcwoJICBubyBuZWVkIHRvIGxvY2tpbmcgb3IgcmVmIHdoZW4gcmV0cmlldmluZyBpdC4KCSAgSW1wcm92ZSBkZWJ1Z2dpbmcgYSBiaXQuCgkgIEhhbmRsZSBsaW5rIGVycm9ycyB3aGVuIHNldHRpbmcgdGhlIHRhcmdldC4gRml4ZXMgIzM0MTAyOS4KCjIwMDYtMDktMDEgMTA6MjY6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzLzogRml4IGRvY3Mgc29tZSBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgIEZpeCBkb2NzIHNvbWUgbW9yZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX3JlbW92ZV9wYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgkgIEZyZWUgcXVldWVkIGJ1ZmZlciB3aGVuIHJlbW92aW5nIGEgcGFkLgoKMjAwNi0wOC0zMSAxNzoxMzozNCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IEVuc3VyZSB0aGF0IHdlIHNldCBhIGNhcHNmaWx0ZXIgdG8gTlVMTCBpZiB3ZSBmYWlsZWQgdG8gbGluayBpdCB3aGVuIGRvaW5nIGZpbHRlcmVkIGxpbmtpbmcsIHRvIGF2b2lkLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfbGlua19wYWRzKSwKCSAgKGdzdF9lbGVtZW50X2xpbmtfcGFkc19maWx0ZXJlZCk6CgkgIEVuc3VyZSB0aGF0IHdlIHNldCBhIGNhcHNmaWx0ZXIgdG8gTlVMTCBpZiB3ZSBmYWlsZWQgdG8gbGluayBpdAoJICB3aGVuIGRvaW5nIGZpbHRlcmVkIGxpbmtpbmcsIHRvIGF2b2lkIGNyaXRpY2Fscy4KCSAgTm8gbmVlZCB0byBjaGVjayBmb3IgdW5yZWZmaW5nIHNyY3BhZCwgd2hpY2ggaXMgZXhwbGljbHkgTlVMTGVkCgkgIGFib3ZlIChhIHRyaXZpYWwgY29kZSBjbGVhbnVwKS4KCjIwMDYtMDgtMzEgMTU6MTk6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDogVXBkYXRlIGFzY2lpIGFydCBpbiBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDoKCSAgVXBkYXRlIGFzY2lpIGFydCBpbiBkb2N1bWVudGF0aW9uLgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9kb19pbnRlcm5hbF9saW5rKSwKCSAgKGdzdF9wcm94eV9wYWRfc2V0X3RhcmdldF91bmxvY2tlZCksIChnc3RfcHJveHlfcGFkX2luaXQpLAoJICAoZ3N0X2dob3N0X3BhZF9wYXJlbnRfc2V0KSwgKGdzdF9naG9zdF9wYWRfcGFyZW50X3Vuc2V0KSwKCSAgKGdzdF9naG9zdF9wYWRfaW50ZXJuYWxfZG9fYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfZ2hvc3RfcGFkX2ludGVybmFsX2RvX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfZ2hvc3RfcGFkX2RvX2xpbmspLCAoZ3N0X2dob3N0X3BhZF9kb191bmxpbmspLAoJICAoZ3N0X2dob3N0X3BhZF9kaXNwb3NlKSwgKGdzdF9naG9zdF9wYWRfbmV3X2Z1bGwpLAoJICAoZ3N0X2dob3N0X3BhZF9zZXRfdGFyZ2V0KToKCSAgU21hbGwgY2xlYW51cHMgYW5kIGxlYWsgZml4ZXMuCgkgIFJlbW92ZSBzb21lIGNoZWNrcyBub3cgdGhhdCB0aGUgaW50ZXJuYWwgcGFkIGlzIG5ldmVyIE5VTEwuCgkgIEZpeCB0aGUgY2FzZSB3aGVyZSBsaW5raW5nIHBhZHMgd2l0aG91dCBhIHRhcmdldCB3b3VsZCBjcmVhdGUgbmFzdHkKCSAgY3JpdGljYWxzLiBGaXhlcyAjMzQxMDI5LgoJICBEb24ndCBhc3NpZ24gYSBHc3RQYWRMaW5rUmV0dXJuIHRvIGEgZ2Jvb2xlYW4gYW5kIG1lc3MgdXAgdGhlIHJldHVybgoJICB2YWx1ZSBvZiBfc2V0X3RhcmdldCgpLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2dob3N0X3BhZF9zdWl0ZSk6CgkgIFNvbWUgbW9yZSB0ZXN0cyBmb3IgY3JlYXRpbmcgYW5kIGxpbmtpbmcgdW50YXJnZXRlZCBnaG9zdHBhZHMuCgoyMDA2LTA4LTMxIDEwOjU5OjExICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgUmVmYWN0b3JlZCAqX25ldygpIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZG9fZ2V0Y2FwcyksCgkgIChnc3RfcHJveHlfcGFkX2RvX3NldGNhcHMpLCAoZ3N0X3Byb3h5X3BhZF9zZXRfdGFyZ2V0X3VubG9ja2VkKSwKCSAgKGdzdF9wcm94eV9wYWRfZGlzcG9zZSksIChnc3RfZ2hvc3RfcGFkX25ld19mdWxsKSwKCSAgKGdzdF9naG9zdF9wYWRfbmV3X25vX3RhcmdldCksIChnc3RfZ2hvc3RfcGFkX25ldyksCgkgIChnc3RfZ2hvc3RfcGFkX25ld19mcm9tX3RlbXBsYXRlKSwKCSAgKGdzdF9naG9zdF9wYWRfbmV3X25vX3RhcmdldF9mcm9tX3RlbXBsYXRlKToKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSAgUmVmYWN0b3JlZCAqX25ldygpIGZ1bmN0aW9ucy4KCSAgVGVtcGxhdGVzIGFyZSBub3cgdXNlZCBhcyBhIGdfb2JqZWN0X25ldygpIHBhcmFtZXRlci4KCSAgVXNlIHRlbXBsYXRlIGluIF9kb19nZXRjYXBzKCkgaWYgd2UgZG9uJ3QgaGF2ZSBhIHRhcmdldC4KCSAgU21hbGwgZG9jdW1lbnRhdGlvbiBjbGVhbnVwcy4KCSAgQWRkZWQgdHdvIG5ldyBjb25zdHJ1Y3RvcnM6CgkgIGdzdF9naG9zdF9wYWRfbmV3X2Zyb21fdGVtcGxhdGUoKQoJICBnc3RfZ2hvc3RfcGFkX25ld19ub190YXJnZXRfZnJvbV90ZW1wbGF0ZSgpCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfZ2hvc3RfcGFkX3N1aXRlKToKCSAgQWRkZWQgdGVzdHMgZm9yIG5ldyBnaG9zdHBhZCBpbnN0YW5jaWF0aW9uIGZ1bmN0aW9ucy4KCSAgQVBJIGFkZGl0aW9uczogZ3N0X2dob3N0X3BhZF9uZXdfZnJvbV90ZW1wbGF0ZSwKCSAgZ3N0X2dob3N0X3BhZF9uZXdfbm9fdGFyZ2V0X2Zyb21fdGVtcGxhdGUKCjIwMDYtMDgtMzAgMTI6Mjg6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvcHJvZmlsaW5nLnR4dDogSWRlYXMgYWJvdXQgcW9zIHByb2ZpbGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9wcm9maWxpbmcudHh0OgoJICBJZGVhcyBhYm91dCBxb3MgcHJvZmlsaW5nLgoKMjAwNi0wOC0yOSAxNDozOTo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IENvZGUgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19zdHJ1Y3R1cmVfaXNfc3Vic2V0X2ZpZWxkKToKCSAgQ29kZSBjbGVhbnVwcy4KCSAgRml4IG1lbWxlYWsuCgoyMDA2LTA4LTI5IDEwOjQ5OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHhtbC5jOiBJbXByb3ZlIGFuZCBkZXR5cG9meSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0eG1sLmM6CgkgIEltcHJvdmUgYW5kIGRldHlwb2Z5IGRvY3MuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHhtbC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3htbF9zdWl0ZSk6CgkgIEFkZCBhIGJhc2ljIHRlc3Qgc3VpdGUgZm9yIEdzdFhNTC4KCjIwMDYtMDgtMjkgMDk6NTY6NTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBDbGVhciB0aGUgcGFkIGNhcHMgd2hlbiB0aGUgZWxlbWVudCBzaHV0IGRvd24gYWxsIG9mIHRoZSBwYWRzIGFuZCBpcyBub3Qgc3RyZWFtaW5nIGRhdGEgdGhhdCBjb3VsZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGFjdGl2YXRlX3BhZHMpLCAoY2xlYXJfY2FwcyksCgkgIChpdGVyYXRvcl9hY3RpdmF0ZV9mb2xkX3dpdGhfcmVzeW5jKSwgKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOgoJICBDbGVhciB0aGUgcGFkIGNhcHMgd2hlbiB0aGUgZWxlbWVudCBzaHV0IGRvd24gYWxsIG9mIHRoZSBwYWRzIGFuZAoJICBpcyBub3Qgc3RyZWFtaW5nIGRhdGEgdGhhdCBjb3VsZCBtb2RpZnkgdGhlIGNhcHMuCgkgIEZpeGVzICMzNTI5NTguCgoyMDA2LTA4LTI5IDA4OjAyOjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgSSBkb24ndCBldmVuIGtub3cgd2hpY2ggYXJjaCB0aGF0IGlzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBJIGRvbid0IGV2ZW4ga25vdyB3aGljaCBhcmNoIHRoYXQgaXMKCjIwMDYtMDgtMjggMjM6MTY6MzMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBtb3JlIGxvZ2ljYWwgdG8gbG9nIHRoZSBzZW5kaW5nIHBhZCwgYW5kIHRoZSBwYWQgaXQgaXMgc2VuZGluZyB0bwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSBsb2dpY2FsIHRvIGxvZyB0aGUgc2VuZGluZyBwYWQsIGFuZCB0aGUgcGFkIGl0IGlzIHNlbmRpbmcgdG8KCjIwMDYtMDgtMjggMTg6MjA6MDAgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogUmV2ZXJ0IHByZXZpb3VzIGNoYW5nZTsgSSBtaXN1bmRlcnN0b29kIHNpbmdsZS1zZWdtZW50IG1vZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApOgoJICBSZXZlcnQgcHJldmlvdXMgY2hhbmdlOyBJIG1pc3VuZGVyc3Rvb2Qgc2luZ2xlLXNlZ21lbnQgbW9kZS4KCjIwMDYtMDgtMjggMTg6MDg6MDkgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogVW5zZXQgRElTQ09OVCBvbiBidWZmZXJzIHdoZW4gdXNpbmcgc2luZ2xlLXNlZ21lbnQgbW9kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCk6CgkgIFVuc2V0IERJU0NPTlQgb24gYnVmZmVycyB3aGVuIHVzaW5nIHNpbmdsZS1zZWdtZW50IG1vZGUuCgoyMDA2LTA4LTI4IDE2OjM5OjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuKjogRml4IGRvY3MgYW5kIGluZGVudGF0aW9uIGFnYWluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfbWVyZ2Vfc3RydWN0dXJlKToKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICBGaXggZG9jcyBhbmQgaW5kZW50YXRpb24gYWdhaW4uCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBsZWFrIGluIHRlc3RzIGFuZCBhZGQgc29tZSBtb3JlIHRlc3RzLgoKMjAwNi0wOC0yOCAxNTo1NzozOSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogSW5mb3JtIEdzdFNlZ21lbnQgb2YgdGhlIGxhc3Qgc3RvcCBwb3NpdGlvbiBpbiBvcmRlciBmb3IgdGhlIGN1cnJlbnQgc2VnbWVudCB0byBoYXZlIGEgcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKToKCSAgSW5mb3JtIEdzdFNlZ21lbnQgb2YgdGhlIGxhc3Qgc3RvcCBwb3NpdGlvbiBpbiBvcmRlciBmb3IgdGhlIGN1cnJlbnQKCSAgc2VnbWVudCB0byBoYXZlIGEgcHJvcGVyIGR1cmF0aW9uIGlmIGl0IGRvZXNuJ3QgaGF2ZSBhIHNwZWNpZmljIHN0b3AKCSAgcG9zaXRpb24gZnJvbSB3aGljaCBhIGR1cmF0aW9uIGNvdWxkIGJlIGNhbGN1bGF0ZWQuCgkgIFRoaXMgYnVnIHdhcyBub3RpY2VhYmxlIHdoZW4gYSBub24tZmx1c2hpbmcsIG5vbi11cGRhdGUgbmV3IHNlZ21lbnQgd2FzCgkgIGZvbGxvd2VkIGJ5IGFub3RoZXIgc2VnbWVudCAoYWxsIGJ1ZmZlcnMgZnJvbSB0aGUgbmV3IHNlZ21lbnQgd2VyZSBiZWluZwoJICBkcm9wcGVkKS4KCjIwMDYtMDgtMjggMTU6NDg6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogU21hbGwgY29tbWVudCB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2Vlayk6CgkgIFNtYWxsIGNvbW1lbnQgdXBkYXRlLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KSwKCSAgKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApOgoJICBEcm9wLXByb2JhYmlsaXR5IGlzIGJyb2tlbiwgbWVudGlvbiB0aGlzIGluIHRoZSBjb2RlIHdpdGggYQoJICBGSVhNRSBhbmQgYWxzbyBpbiB0aGUgcHJvcGVydHkgZGVzY3JpcHRpb24uCgkgIE1ha2Ugc2lsZW50IGFsc28gYmUgc2lsZW50IGFib3V0IHRoZSBkcm9wIG1lc3NhZ2VzLgoKMjAwNi0wOC0yOCAxMTowNjowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FwcGVuZGl4LXdpbjMyLnhtbDogUmVtb3ZlIG1lbnRpb24gb2YgcG9wdCwgd2UgZG9uJ3QgZGVwZW5kIG9uIHRoYXQgYW55IGxvbmdlciAoIzM1MzEzNikuIEFkZCBzb21lIGNvbW1lbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC13aW4zMi54bWw6CgkgIFJlbW92ZSBtZW50aW9uIG9mIHBvcHQsIHdlIGRvbid0IGRlcGVuZCBvbiB0aGF0IGFueQoJICBsb25nZXIgKCMzNTMxMzYpLiBBZGQgc29tZSBjb21tZW50cyBwb2ludGluZyBvdXQgdGhhdAoJICB0aGlzIHNlY3Rpb24gaXMgc2xpZ2h0bHkgb3V0ZGF0ZWQuCgoyMDA2LTA4LTI4IDA4OjQ0OjI5ICswMDAwICBUb3JzdGVuIFNjaG9lbmZlbGQgPGthZmZlZXRpc2NoQGdteC5kZT4KCgkgIEluaXRpYWxpemUgdmFyaWFibGVzIHdoZW4gY3JlYXRpbmcgYSBuZXcgc2VnbWVudCBxdWVyeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBUb3JzdGVuIFNjaG9lbmZlbGQgPGthZmZlZXRpc2NoIGF0IGdteCBkb3QgZGU+CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbmV3X3NlZ21lbnQpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBJbml0aWFsaXplIHZhcmlhYmxlcyB3aGVuIGNyZWF0aW5nIGEgbmV3IHNlZ21lbnQgcXVlcnkuCgkgIEZpeGVzICMzNTMxMjEuCgoyMDA2LTA4LTI4IDA4OjM1OjMxICswMDAwICBUb3JzdGVuIFNjaG9lbmZlbGQgPGthZmZlZXRpc2NoQGdteC5kZT4KCgkgIENoZWNrIGZvciBOVUxMIGJlZm9yZSBfcmVmZmluZyB0aGUgYnVzLiBGaXhlcyAjMzUzMTIyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFRvcnN0ZW4gU2Nob2VuZmVsZCA8a2FmZmVldGlzY2ggYXQgZ214IGRvdCBkZT4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X2J1cyk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQ2hlY2sgZm9yIE5VTEwgYmVmb3JlIF9yZWZmaW5nIHRoZSBidXMuIEZpeGVzICMzNTMxMjIuCgoyMDA2LTA4LTI1IDE2OjQ2OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6IERvY3MgdXBkYXRlOiBmaXggd3JvbmcgY2FsbGJhY2sgcmV0dXJuIHZhbHVlIGV4cGxhbmF0aW9uOyBhZGQgc29tZSBsaW5lcyBhYm91dCB0aGUgaW1wbGljLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJICBEb2NzIHVwZGF0ZTogZml4IHdyb25nIGNhbGxiYWNrIHJldHVybiB2YWx1ZSBleHBsYW5hdGlvbjsgYWRkCgkgIHNvbWUgbGluZXMgYWJvdXQgdGhlIGltcGxpY2l0IHJlbGF0aW9uc2hpcCBiZXR3ZWVuIG1haW4gbG9vcAoJICBhbmQgbWFpbiBjb250ZXh0OyByZW1vdmUgZHVwbGljYXRlIG1haW4gbG9vcCB2YXJpYWJsZSBkZWNsYXJhdGlvbi4KCjIwMDYtMDgtMjQgMTI6MzA6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOiBEb24ndCBsZWFrIGNhcHMgaW4gdW5pdCB0ZXN0OyBhZGQgYSBmZXcgbW9yZSBzaW1wbGUgY2hlY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBEb24ndCBsZWFrIGNhcHMgaW4gdW5pdCB0ZXN0OyBhZGQgYSBmZXcgbW9yZSBzaW1wbGUKCSAgY2hlY2tzLgoKMjAwNi0wOC0yNCAxMDo0MDozMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgaW1wbGVtZW50IGNhcHMgbWVyZ2luZyAoZml4ZXMgIzM1MjU4MCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfc3RydWN0dXJlX2lzX3N1YnNldF9maWVsZCksCgkgIChnc3RfY2Fwc19zdHJ1Y3R1cmVfaXNfc3Vic2V0KSwgKGdzdF9jYXBzX21lcmdlKSwKCSAgKGdzdF9jYXBzX21lcmdlX3N0cnVjdHVyZSk6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2Fwcyk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9jYXBzX3N1aXRlKToKCSAgaW1wbGVtZW50IGNhcHMgbWVyZ2luZyAoZml4ZXMgIzM1MjU4MCkKCjIwMDYtMDgtMjMgMTg6NTM6NDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRvb2xzLzogYWRkIGRlYnVnLWxvZyBwbG90dGluZyBkZXZlbG9wZXIgdG9vbCAoIzM0MDY3NCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvTWFrZWZpbGUuYW06CgkgICogdG9vbHMvZ3N0LXBsb3QtdGltZWxpbmUucHk6CgkgIGFkZCBkZWJ1Zy1sb2cgcGxvdHRpbmcgZGV2ZWxvcGVyIHRvb2wgKCMzNDA2NzQpCgoyMDA2LTA4LTIzIDE2OjUxOjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBJbXByb3ZlIGRlYnVnZ2luZyBmb3IgdGFzayBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc3RhcnRfdGFzayksIChnc3RfcGFkX3BhdXNlX3Rhc2spLAoJICAoZ3N0X3BhZF9zdG9wX3Rhc2spOgoJICBJbXByb3ZlIGRlYnVnZ2luZyBmb3IgdGFzayBmdW5jdGlvbnMuCgkgICogZ3N0L2dzdHRhc2suYzogKGdzdF90YXNrX2Z1bmMpLCAoZ3N0X3Rhc2tfc2V0X2xvY2spLAoJICAoZ3N0X3Rhc2tfc3RhcnQpLCAoZ3N0X3Rhc2tfcGF1c2UpLCAoZ3N0X3Rhc2tfam9pbik6CgkgIE1ha2Ugc3VyZSB0aGF0IHRoZSB0YXNrIGZ1bmN0aW9uIHN0YXJ0ZWQgYW5kIGZpbmlzaGVkIGFmdGVyIGEKCSAgam9pbigpLgoJICBEb24ndCB0cnkgdG8gcHVzaCB0aGUgdGFzayBmdW5jdGlvbiBvbiB0aGUgdGhyZWFkcG9vbCBtdWx0aXBsZQoJICB0aW1lcy4KCSAgSW1wcm92ZSB0aGUgZ193YXJuaW5nIG1lc3NhZ2Ugd2l0aCBzb21lIHVzZWZ1bCBzdWdnZXN0aW9ucwoJICBhYm91dCBob3cgdG8gZml4IHRoZSBwcm9ibGVtLgoKMjAwNi0wOC0yMyAxMDo1OTo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBIYW5kbGUgUkVTWU5DIGNvcnJlY3RseSBpbiBfcHJveHlfZ2V0Y2Fwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfcGFkX3Byb3h5X2dldGNhcHMpOgoJICBIYW5kbGUgUkVTWU5DIGNvcnJlY3RseSBpbiBfcHJveHlfZ2V0Y2Fwcy4KCjIwMDYtMDgtMjMgMDk6NDc6MzIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICB3b3JkIHJlZmNvdW50aW5nIG1vcmUgcHJlY2lzZWx5IGZvciBnc3RfdmFsdWVfKl9idWZmZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdvcmQgcmVmY291bnRpbmcgbW9yZSBwcmVjaXNlbHkgZm9yIGdzdF92YWx1ZV8qX2J1ZmZlcgoKMjAwNi0wOC0yMSAxNToxOTo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R4bWwuYzogQ2hhaW4gdXAgdG8gcGFyZW50IGNsYXNzIGluIGRpc3Bvc2UgZnVuY3Rpb24gYW5kIGFsc28gdW5yZWYgdGhlIGVsZW1lbnRzIGluIHRoZSB0b3BsZXZlbF9lbGVtZW50cyBHTGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHhtbC5jOiAoZ3N0X3htbF9kaXNwb3NlKSwgKGdzdF94bWxfcGFyc2VfZmlsZSksCgkgIChnc3RfeG1sX3BhcnNlX21lbW9yeSksIChnc3RfeG1sX2dldF9lbGVtZW50KToKCSAgQ2hhaW4gdXAgdG8gcGFyZW50IGNsYXNzIGluIGRpc3Bvc2UgZnVuY3Rpb24gYW5kIGFsc28KCSAgdW5yZWYgdGhlIGVsZW1lbnRzIGluIHRoZSB0b3BsZXZlbF9lbGVtZW50cyBHTGlzdC4KCSAgRG9uJ3QgbGVhayBYbWxEb2NQdHIgaW4gX3BhcnNlX2ZpbGUoKSBhbmQgX3BhcnNlX21lbW9yeSgpLgoJICBBbHdheXMgcmV0dXJuIGEgcmVmZXJlbmNlIGluIGdzdF94bWxfZ2V0X2VsZW1lbnQoKSByYXRoZXIKCSAgdGhhbiBvbmx5IHNvbWV0aW1lcy4KCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6ICh4bWxsYXVuY2hfcGFyc2VfY21kbGluZSk6CgkgIERvbid0IGxlYWsgR3N0WG1sIG9iamVjdC4KCjIwMDYtMDgtMjEgMTQ6NTQ6MzEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFQSTogQWRkIGdzdF9jYXBzX21lcmdlKCkgYW5kIHVzZSBpdCBpbiBiYXNldHJhbnNmb3JtLCBmaXhlcyAjMzQ1NDQ0IGluIGEgYmV0dGVyIHdheQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3Rfc3RydWN0dXJlX2lzX2VxdWFsX2ZvcmVhY2gpLAoJICAoZ3N0X2NhcHNfbWVyZ2UpOgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpOgoJICBBUEk6IEFkZCBnc3RfY2Fwc19tZXJnZSgpIGFuZCB1c2UgaXQgaW4gYmFzZXRyYW5zZm9ybSwgZml4ZXMgIzM0NTQ0NAoJICBpbiBhIGJldHRlciB3YXkKCjIwMDYtMDgtMjEgMTQ6MDM6MzMgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0eG1sLmM6IEltcGxlbWVudCBHT2JqZWN0OjpkaXNwb3NlIHZpcnR1YWwgbWV0aG9kIGluIEdzdFhNTCBzbyB3ZSBjYW4gZnJlZSB0aGUgdG9wX2VsZW1lbnRzIEdMaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0eG1sLmM6IChnc3RfeG1sX2NsYXNzX2luaXQpLCAoZ3N0X3htbF9kaXNwb3NlKToKCSAgSW1wbGVtZW50IEdPYmplY3Q6OmRpc3Bvc2UgdmlydHVhbCBtZXRob2QgaW4gR3N0WE1MIHNvIHdlIGNhbiBmcmVlIHRoZQoJICB0b3BfZWxlbWVudHMgR0xpc3QuCgoyMDA2LTA4LTIxIDA5OjMwOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBDb3B5IGR1cmF0aW9uL29mZnNldF9lbmQvY2FwcyB3aGVuIGNyZWF0aW5nIGEgc3ViYnVmZmVyIG9mIHRoZSBjb21wbGV0ZSBwYXJlbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfbWFrZV9tZXRhZGF0YV93cml0YWJsZSksCgkgIChnc3RfYnVmZmVyX2NyZWF0ZV9zdWIpOgoJICBDb3B5IGR1cmF0aW9uL29mZnNldF9lbmQvY2FwcyB3aGVuIGNyZWF0aW5nIGEgc3ViYnVmZmVyIG9mIHRoZQoJICBjb21wbGV0ZSBwYXJlbnQuCgkgIE1ha2UgdGhlIHN1YmJ1ZmZlciByZWFkLW9ubHkgd2hlbiB3ZSBtYWtlIHRoZSBtZXRhZGF0YSB3cml0YWJsZSBmb3IKCSAgbm93LiBGaXhlcyAjMzUxNzY4LgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkZWQgY2hlY2sgZm9yIG1ldGFkYXRhIGNvcHkgd2hlbiBjcmVhdGluZyBzdWJidWZmZXJzLgoKMjAwNi0wOC0yMSAwOToyMDo0MiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBPbmx5IGNhbGwgZG93bnN0cmVhbSBidWZmZXJfYWxsb2MgaWYgdHJhbnNmb3JtIGVsZW1lbnQgaXMgcGFzc3Rocm91Z2ggb3IgYWx3YXlzX2luXy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOgoJICBPbmx5IGNhbGwgZG93bnN0cmVhbSBidWZmZXJfYWxsb2MgaWYgdHJhbnNmb3JtIGVsZW1lbnQgaXMgcGFzc3Rocm91Z2gKCSAgb3IgYWx3YXlzX2luX3BsYWNlLiBDbG9zZXMgIzM1MDQ0OS4KCjIwMDYtMDgtMjAgMTk6MzY6MjEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIENoYW5nZUxvZzogQ2hhbmdlTG9nIHN1cmdlcnkgdG8gYWRkIGNvbW1lbnRzIHRvIHByZXZpb3VzIGNoYW5nZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeSB0byBhZGQgY29tbWVudHMgdG8gcHJldmlvdXMgY2hhbmdlcwoKMjAwNi0wOC0yMCAxOTozMDowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgU2ltcGxpZnkgY2FwcyB0byBnZXQgcmlkIG9mIGR1cGxpY2F0ZXMsIGZpeGVzICMzNDU0NDQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpOgoJICBTaW1wbGlmeSBjYXBzIHRvIGdldCByaWQgb2YgZHVwbGljYXRlcywgZml4ZXMgIzM0NTQ0NAoKMjAwNi0wOC0yMCAxNTo1NToxMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLio6IFVzZSB0aGVzZSBvcHRpbWl6YXRpb25zIG9ubHkgaW50ZXJuYWx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgVXNlIHRoZXNlIG9wdGltaXphdGlvbnMgb25seSBpbnRlcm5hbHkuCgoyMDA2LTA4LTIwIDE0OjMwOjIwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuKjogU2F2ZXMgdGhlIGV4cGVuc2l2ZSBsb29rdXAgb2YgdGhlIGNvbXBhcmUgZnVuY3Rpb24gaW4gbWFueSBjYXNlcyAoIzM0NTQ0NCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfY29tcGFyZV9saXN0KSwKCSAgKGdzdF92YWx1ZV9jb21wYXJlX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9pbnRlcnNlY3RfZnJhY3Rpb25fZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9mcmFjdGlvbl9yYW5nZV9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfc3VidHJhY3RfZnJhY3Rpb25fZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2ZyYWN0aW9uX3JhbmdlX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9nZXRfY29tcGFyZV9mdW5jKSwgKGdzdF92YWx1ZV9jb21wYXJlKSwKCSAgKGdzdF92YWx1ZV9jb21wYXJlX3dpdGhfZnVuYyk6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIFNhdmVzIHRoZSBleHBlbnNpdmUgbG9va3VwIG9mIHRoZSBjb21wYXJlIGZ1bmN0aW9uIGluIG1hbnkgY2FzZXMKCSAgKCMzNDU0NDQpCgoyMDA2LTA4LTE4IDEzOjQxOjAyICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzogRGlzYWJsZSB0ZXN0IHRoYXQgcmVxdWlyZSBnc3RkZWJ1ZyBpZiBpdCB3YXNuJ3QgYnVpbHQgaW4gY29yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzogKGdzdF9pbmZvX3N1aXRlKToKCSAgRGlzYWJsZSB0ZXN0IHRoYXQgcmVxdWlyZSBnc3RkZWJ1ZyBpZiBpdCB3YXNuJ3QgYnVpbHQgaW4gY29yZS4KCjIwMDYtMDgtMTggMTA6NTI6MzMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvbG9nZ2luZy50eHQ6IHVwZGF0ZSBpZGVhcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2xvZ2dpbmcudHh0OgoJICB1cGRhdGUgaWRlYXMKCSAgKiBnc3QvZ3N0aW5mby5jOiAoZ3N0X2RlYnVnX2xvZ19kZWZhdWx0KToKCSAgcmVvcmRlciBmaWVsZHMsIHNhdmUgc29tZSBjb2x1bW5zLCBhZGQgb3B0aW5hbCBjb2xvciBjb2RlcyBmb3IgbG9nLQoJICBsZXZlbHMKCjIwMDYtMDgtMTggMDg6MDc6MTIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvbG9nZ2luZy50eHQ6IGFkZCBpZGVhcyBhYm91dCBtYWtpbmcgdGhlIGxvZ3MgYWJpdCBtb3JlIHVzZWZ1bAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2xvZ2dpbmcudHh0OgoJICBhZGQgaWRlYXMgYWJvdXQgbWFraW5nIHRoZSBsb2dzIGFiaXQgbW9yZSB1c2VmdWwKCjIwMDYtMDgtMTcgMTg6MTE6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3B3Zy86IFVwZGF0ZSBmb3IgMC4xMCBBUEkgKCMzNDA2MjcpLiBBZGQgbXlzZWxmIHRvIGF1dGhvcnMgbGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtZXZlbnRzLnhtbDoKCSAgKiBkb2NzL3B3Zy90aXRsZXBhZ2UueG1sOgoJICBVcGRhdGUgZm9yIDAuMTAgQVBJICgjMzQwNjI3KS4gQWRkIG15c2VsZgoJICB0byBhdXRob3JzIGxpc3QuCgoyMDA2LTA4LTE3IDEwOjQ2OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgTWFrZSBnc3RjaGVjayBzdHVmZiBzaG93IHVwIGluIGRvY3MgKHN0aWxsIG5lZWRzIHRvIGJlIGRvY3VtZW50ZWQgcHJvcGVybHkgdGhvdWdoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3LmM6CgkgIE1ha2UgZ3N0Y2hlY2sgc3R1ZmYgc2hvdyB1cCBpbiBkb2NzIChzdGlsbCBuZWVkcyB0bwoJICBiZSBkb2N1bWVudGVkIHByb3Blcmx5IHRob3VnaCkuCgoyMDA2LTA4LTE2IDExOjQ3OjU0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEFkZCBpbnRlcm5hbCBoZWxwZXJzIGZvciBwcmUtcmVnaXN0ZXJpbmcgcXVhcmtzIGZyb20gc3RhdGljIHN0cmluZ3MgYW5kIHVzaW5nIHRoZSBxdWFyayB2YWx1ZXMgZGlyZWN0bHkgaW5zdGVhZCBvZiBsby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RxdWFyay5jOiAoX3ByaXZfZ3N0X3F1YXJrc19pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0cXVhcmsuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9uZXdfcG9zaXRpb24pLAoJICAoZ3N0X3F1ZXJ5X3NldF9wb3NpdGlvbiksIChnc3RfcXVlcnlfcGFyc2VfcG9zaXRpb24pLAoJICAoZ3N0X3F1ZXJ5X25ld19kdXJhdGlvbiksIChnc3RfcXVlcnlfc2V0X2R1cmF0aW9uKSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9kdXJhdGlvbiksIChnc3RfcXVlcnlfbmV3X2NvbnZlcnQpLAoJICAoZ3N0X3F1ZXJ5X3NldF9jb252ZXJ0KSwgKGdzdF9xdWVyeV9wYXJzZV9jb252ZXJ0KSwKCSAgKGdzdF9xdWVyeV9uZXdfc2VnbWVudCksIChnc3RfcXVlcnlfc2V0X3NlZ21lbnQpLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX3NlZ21lbnQpLCAoZ3N0X3F1ZXJ5X25ld19zZWVraW5nKSwKCSAgKGdzdF9xdWVyeV9zZXRfc2Vla2luZyksIChnc3RfcXVlcnlfcGFyc2Vfc2Vla2luZyk6CgkgIEFkZCBpbnRlcm5hbCBoZWxwZXJzIGZvciBwcmUtcmVnaXN0ZXJpbmcgcXVhcmtzIGZyb20gc3RhdGljIHN0cmluZ3MKCSAgYW5kIHVzaW5nIHRoZSBxdWFyayB2YWx1ZXMgZGlyZWN0bHkgaW5zdGVhZCBvZiBsb29raW5nIHRoZW0gdXAgd2hlbgoJICBjcmVhdGluZyBhbmQgcGFyc2luZyBxdWVyaWVzLiBDYW4gYmUgdXNlZCBmb3IgZXZlbnQgY29uc3RydWN0aW9uIHRvby4KCSAgQ2xvc2VzICMzNTA0MzIuCgoyMDA2LTA4LTE2IDA4OjU0OjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBGaXggYm9ndXMgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOgoJICBGaXggYm9ndXMgZG9jcy4KCjIwMDYtMDgtMTUgMTg6NDU6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuYzogRml4IG1lbWxlYWsgKCMzNTE1MDIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX3NldF92YWx1ZV9mcm9tX3N0cmluZyk6CgkgIEZpeCBtZW1sZWFrICgjMzUxNTAyKS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF91dGlsc19zdWl0ZSk6CgkgIEFkZCB1bml0IHRlc3QgZm9yIG1vc3Qgb2YgZ3N0X3V0aWxfc2V0X3ZhbHVlX2Zyb21fc3RyaW5nKCkKCSAgKG5vdCB0aGF0IG9uZSB3b3VsZCB3YW50IHRvIGVuY291cmFnZSB1c2Ugb2YgdGhpcyBmdW5jdGlvbikuCgoyMDA2LTA4LTE1IDE4OjI5OjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDogVXNlIGNvbnN0IGdjaGFyICogdmFyaWFibGVzIGluIGZhaWxfdW5sZXNzX2VxdWFsc19zdHJpbmcgbWFjcm8gdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZ3MgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIFVzZSBjb25zdCBnY2hhciAqIHZhcmlhYmxlcyBpbiBmYWlsX3VubGVzc19lcXVhbHNfc3RyaW5nCgkgIG1hY3JvIHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmdzIChhbmQgZG9uJ3QgdXNlIHRhYnMgZm9yCgkgIGluZGVudGluZykuCgoyMDA2LTA4LTE1IDEwOjA4OjM0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBNb3JlIHNwYWNlIG9uIHRoZSBsZWZ0IGZvciB0aGUgdGFnIG5hbWVzLCB0byBjYXRlciBmb3IgdGhlICdleHRlbmRlZCBjb21tZW50JyB0YWcgKG5vdCB0b3VjaGluZyB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKHByaW50X3RhZyk6CgkgIE1vcmUgc3BhY2Ugb24gdGhlIGxlZnQgZm9yIHRoZSB0YWcgbmFtZXMsIHRvIGNhdGVyCgkgIGZvciB0aGUgJ2V4dGVuZGVkIGNvbW1lbnQnIHRhZyAobm90IHRvdWNoaW5nIHRoZQoJICBzdHJpbmcgZm9yIHRoZSBmaXJzdCBsaW5lIHNpbmNlIGl0J3MgdHJhbnNsYXRlZCkuCgoyMDA2LTA4LTE1IDA5OjQ0OjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogZG9uJ3QgZm9yZ2V0IHRvIG1lbnRpb24gdGhlIG90aGVyIGNoYW5nZSBpbiB0aGUgQ2hhbmdlTG9nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogZG9uJ3QgZm9yZ2V0IHRvIG1lbnRpb24gdGhlIG90aGVyIGNoYW5nZSBpbiB0aGUgQ2hhbmdlTG9nCgoyMDA2LTA4LTE1IDA5OjMzOjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDogRml4IEFTU0VSVF9DUklUSUNBTCBhbmQgQVNTRVJUX1dBUk5JTkcgbWFjcm9zIHRvIGFjdHVhbGx5IHByaW50IHNvbWV0aGluZyB3aGVuIHRoZXkgZmFpbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgRml4IEFTU0VSVF9DUklUSUNBTCBhbmQgQVNTRVJUX1dBUk5JTkcgbWFjcm9zIHRvIGFjdHVhbGx5CgkgIHByaW50IHNvbWV0aGluZyB3aGVuIHRoZXkgZmFpbC4KCjIwMDYtMDgtMTQgMTk6MDQ6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBHU1RfVEFHX0VYVEVOREVEX0NPTU1FTlQgKCMzNTA5MzUpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChfZ3N0X3RhZ19pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBBUEk6IGFkZCBHU1RfVEFHX0VYVEVOREVEX0NPTU1FTlQgKCMzNTA5MzUpLgoKMjAwNi0wOC0xNCAxNzoyOTozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmM6IE1ha2UgR1NUX1BUUl9GT1JNQVQgcHJpbnQgbWVzc2FnZXMgYXMgd2VsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzogKGdzdF9kZWJ1Z19wcmludF9vYmplY3QpOgoJICBNYWtlIEdTVF9QVFJfRk9STUFUIHByaW50IG1lc3NhZ2VzIGFzIHdlbGwuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzogKHByaW50Zl9leHRlbnNpb25fbG9nX2Z1bmMpLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2luZm9fc3VpdGUpOgoJICBNb3JlIHRlc3RzLgoKMjAwNi0wOC0xNCAxNTozMzoxNyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiBJZiB0aGUgR3N0RWxlbWVudENsYXNzIGRvZXNuJ3QgaGF2ZSBhIEdzdEVsZW1lbnREZXRhaWxzIHdpdGggYWxsIGZpZWxkcyB0aGVuIGVycm9yIG91dCBuaWNlbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X3JlZ2lzdGVyKToKCSAgSWYgdGhlIEdzdEVsZW1lbnRDbGFzcyBkb2Vzbid0IGhhdmUgYSBHc3RFbGVtZW50RGV0YWlscyB3aXRoIGFsbCBmaWVsZHMKCSAgZmlsbGVkIHVwIGNvcnJlY3RseSAobG9uZ25hbWUsIGRlc2NyaXB0aW9uIEFORCBhdXRob3IpLCB0aGVuIGVycm9yIG91dAoJICBuaWNlbHkgaW5zdGVhZCBvZiBjcmFzaGluZy4KCjIwMDYtMDgtMTQgMTI6MzU6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IEZpeCB0eXBvIGluIGRvY3MgYW5kIHJlLXdyYXAgZG9jcyBibHVyYiB0byBub3QgZXhjZWVkIDgwIGNoYXJzL2xpbmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgRml4IHR5cG8gaW4gZG9jcyBhbmQgcmUtd3JhcCBkb2NzIGJsdXJiIHRvIG5vdCBleGNlZWQgODAgY2hhcnMvbGluZS4KCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgRXhwYW5kIG9uIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYXJyYXlzIGFuZCBsaXN0cyBhcyB3ZSB1c2UgdGhlbS4KCjIwMDYtMDgtMTQgMDc6NDQ6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogSWYgdGhlIHBhcmVudCBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gZmFpbGVkLCBkb24ndCBhc3N1bWUgd2UgY2FuIHNhZmVseSBzdG9wIHRoZSBzb3VyY2UsIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgSWYgdGhlIHBhcmVudCBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gZmFpbGVkLCBkb24ndCBhc3N1bWUgd2UgY2FuIHNhZmVseQoJICBzdG9wIHRoZSBzb3VyY2UsIHRoaXMgd2lsbCBiZSBkb25lIHdoZW4gdGhlIHBhZHMgYXJlIGRlYWN0aXZhdGVkLgoKMjAwNi0wOC0xNCAwNzozNTowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFNtYWxsIGRvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgICogZ3N0L2dzdHRhc2suYzogKGdzdF90YXNrX2pvaW4pOgoJICBTbWFsbCBkb2MgdXBkYXRlcy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FjdGl2YXRlX3B1bGwpLCAoZ3N0X3BhZF9hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9wYWRfc3RvcF90YXNrKToKCSAgV2hlbiBwYWQgKGRlKWFjdGl2YXRpb24gZmFpbGVkIGZvciBzb21lIHJlYXNvbiwgcmVzdG9yZSB0aGUgb2xkCgkgIGFjdGl2YXRpb24gbW9kZSBhbmQgc2V0IHRoZSBwYWQgdG8gZmx1c2hpbmcgaW5zdGVhZCBvZiBhc3N1bWluZyB0aGUKCSAgcGFkIGlzIGRlYWN0aXZhdGVkLgoJICBJZiB0aGUgX3Rhc2tfam9pbigpIGZhaWxlZCwgcmVpbnN0YWxsIHRoZSB0YXNrIG9uIHRoZSBwYWQgc28gdGhhdCBpdCBjYW4KCSAgYmUgc3RvcHBlZCBsYXRlciBhbmQgcmV0dXJuIGFuIGVycm9yLgoKMjAwNi0wOC0xMSAxNToyNjozMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgR1NUX0RJU0FCTEVfREVQUkVDQVRFRCBpcyBvbmx5IGZvciB1c2VycyBvZiBBUEkgdGhhdCBkb24ndCB3YW50IHRvIHNlZSBkZXByZWNhdGVkIGZ1bmN0aW9ucyBpbiB0aGUgaGVhZGVyczsgcGVvcGxlIHRoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA4LTExICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IChnc3RfZHBfcGFja2V0aXplcl9uZXcpOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6IChnc3RfZHBfc3VpdGUpOiBHU1RfRElTQUJMRV9ERVBSRUNBVEVECgkgIGlzIG9ubHkgZm9yIHVzZXJzIG9mIEFQSSB0aGF0IGRvbid0IHdhbnQgdG8gc2VlIGRlcHJlY2F0ZWQKCSAgZnVuY3Rpb25zIGluIHRoZSBoZWFkZXJzOyBwZW9wbGUgdGhhdCB3YW50IHRvIGNvbXBpbGUgb3V0CgkgIGRlcHJlY2F0ZWQgY29kZSBzaG91bGQgcGFzcyAtREdTVF9SRU1PVkVfREVQUkVDQVRFRCBpbnRvIHRoZQoJICBDRkxBR1MuIEZpeGVzIHRoZSBidWlsZCBvZiBtdWx0aWZkc2luaywgb3Igd2lsbCBzb29uLi4KCjIwMDYtMDgtMTEgMTU6MjQ6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgR3N0Q2xvY2tDbGFzcyB2bWV0aG9kIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBHc3RDbG9ja0NsYXNzIHZtZXRob2QgZG9jcy4KCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICBNYXJrICNlbmRpZiB3aXRoIGNvbW1lbnQgZm9yIGFzc29jaWF0ZWQgI2lmCgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfaWRfd2FpdCk6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIEFkZCB2bWV0aG9kIHdhaXRfaml0dGVyIHRvIGF2b2lkIGFuIHVubmVlZGVkIF9nZXRfdGltZSgpIGZvcgoJICBtb3N0IGNsb2NrIGltcGxlbWVudGF0aW9ucy4KCSAgRG9jdW1lbnQgdm1ldGhvZHMuCgkgIEZsZXNoIG91dCBkb2NzIGFib3V0IHJlc29sdXRpb24gbWV0aG9kcy4KCSAgQVBJOiBHc3RDbG9ja0NsYXNzOjp3YWl0X2ppdHRlcgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19jbGFzc19pbml0KSwKCSAgKGdzdF9zeXN0ZW1fY2xvY2tfYXN5bmNfdGhyZWFkKSwKCSAgKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF9qaXR0ZXJfdW5sb2NrZWQpLAoJICAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X2ppdHRlcik6CgkgIFVzZSBiYXNlIGNsYXNzIHdhaXRfaml0dGVyIHZhcmlhbnQgZm9yIGltcHJvdmVkIHBlcmZvcm1hbmNlCgkgIGR1ZSB0byBsZXNzIGNsb2NrIHBvbGxpbmcuCgoyMDA2LTA4LTExIDE1OjA3OjU4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdC5jOiBTZXQgZ3N0IGFzIGJlaW5nIGluaXRpYWxpemVkIGJlZm9yZSBzY2FubmluZy91cGRhdGluZyB0aGUgcmVnaXN0cnksIHNpbmNlIHRoZXJlIG1pZ2h0IGJlIHNvbWUgcGx1Z2lucyB0aGF0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGdzdF9pbml0X2NoZWNrKSwgKGluaXRfcG9zdCk6CgkgIFNldCBnc3QgYXMgYmVpbmcgaW5pdGlhbGl6ZWQgYmVmb3JlIHNjYW5uaW5nL3VwZGF0aW5nIHRoZSByZWdpc3RyeSwKCSAgc2luY2UgdGhlcmUgbWlnaHQgYmUgc29tZSBwbHVnaW5zIHRoYXQgY2FsbCBnc3RfaW5pdCgpIGFuZCB3ZSBkb24ndAoJICB3YW50IHRvIGxvb3AgYmFjayBpbi4KCSAgQ2xvc2VzICMzNTA4NzkKCjIwMDYtMDgtMTEgMTM6MTM6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIE1lbnRpb24gdGhhdCB3ZSBmaXhlZCBidWcgIzM0OTk0MyB3aXRoIHRoZSBsYXN0IGNvbW1pdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE1lbnRpb24gdGhhdCB3ZSBmaXhlZCBidWcgIzM0OTk0MyB3aXRoIHRoZSBsYXN0IGNvbW1pdC4KCjIwMDYtMDgtMTEgMTM6MDU6MzAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6IEJyaW5nIGRvY3MgaW4gbGluZSB3aXRoIHRoZSBjb2RlLiBNb3N0bHkgdGhlIHNpZ24gb2YgdGhlIGppdHRlciB3YXMgd3JvbmcgaW4gdGhlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgQnJpbmcgZG9jcyBpbiBsaW5lIHdpdGggdGhlIGNvZGUuIE1vc3RseSB0aGUgc2lnbiBvZiB0aGUgaml0dGVyIHdhcwoJICB3cm9uZyBpbiB0aGUgZG9jcy4KCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgRml4IHRoZSBkb2NzIGZvciB0aGUgaml0dGVyLgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19jdXN0b20pLCAoZ3N0X2V2ZW50X25ld190YWcpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX3RhZyksIChnc3RfZXZlbnRfbmV3X2J1ZmZlcl9zaXplKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9idWZmZXJfc2l6ZSksIChnc3RfZXZlbnRfcGFyc2VfcW9zKSwKCSAgKGdzdF9ldmVudF9uZXdfc2VlayksIChnc3RfZXZlbnRfcGFyc2Vfc2VlayksCgkgIChnc3RfZXZlbnRfbmV3X25hdmlnYXRpb24pOgoJICBNYWtlIHN1cmUgdGhlIEdzdFN0cnVjdHVyZSBoYXMgbm8gcGFyZW50IHdoZW4gY3JlYXRpbmcgY3VzdG9tCgkgIGV2ZW50cy4KCSAgQWRkIHNvbWUgbW9yZSBhcmd1bWVudCBjaGVja2luZyBzbyB0aGF0IHdlIGF2b2lkIDAuMCByYXRlcy4KCSAgRmxlc2ggb3V0IHRoZSBkb2NzIGZvciB0aGUgUW9TIGV2ZW50IHNvbWUgbW9yZS4KCjIwMDYtMDgtMTEgMTA6MjE6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEZvcmdvdCB0byBtZW50aW9uIGZpeGVkIGJ1Zy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZvcmdvdCB0byBtZW50aW9uIGZpeGVkIGJ1Zy4KCjIwMDYtMDgtMTEgMTA6MTk6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBEb2MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0LmM6IChnc3RfaW5pdF9nZXRfb3B0aW9uX2dyb3VwKSwgKGdzdF9pbml0X2NoZWNrKSwKCSAgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X2ZvcmtpbmcpLCAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnkpLAoJICAocGFyc2Vfb25lX29wdGlvbiksIChwYXJzZV9nb3B0aW9uX2FyZyksIChnc3RfZGVpbml0KSwKCSAgKGdzdF9yZWdpc3RyeV9mb3JrX2lzX2VuYWJsZWQpLCAoZ3N0X3JlZ2lzdHJ5X2Zvcmtfc2V0X2VuYWJsZWQpOgoJICAqIGdzdC9nc3QuaDoKCSAgRG9jIHVwZGF0ZXMuCgkgIEFkZGVkIEFQSSBhbmQgY29tbWFuZCBsaW5lIG9wdGlvbiB0byBkaXNhYmxlIHJlZ2lzdHJ5IGZvcmtpbmcgaW4KCSAgYWRkaXRpb24gdG8gdGhlIGVudmlyb25tZW50IHZhcmlhYmxlLgoJICBDb25zdGlmeSBzb21lIHN0YXRpYyBhcnJheXMuCgkgIEFkZGVkIHNvbWUgbW9yZSBkZWJ1Zy4KCSAgRG9uJ3QgZGVpbml0IHR3aWNlLgoJICBBUEk6IGdzdF9yZWdpc3RyeV9mb3JrX2lzX2VuYWJsZWQoKQoJICBBUEk6IGdzdF9yZWdpc3RyeV9mb3JrX3NldF9lbmFibGVkKCkKCSAgQVBJOiAtLWdzdC1kaXNhYmxlLXJlZ2lzdHJ5LWZvcmsgY29tbWFuZCBsaW5lIG9wdGlvbgoKMjAwNi0wOC0xMSAwOTo1OToyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogRml4IHR5cG8gaW4gZXJyb3IgbWVzc2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZ3N0X2luaXQpOgoJICBGaXggdHlwbyBpbiBlcnJvciBtZXNzYWdlLgoKMjAwNi0wOC0xMCAyMDowNTozMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6IGZpeCBBQkkgc2l6ZS1jb3JyZWN0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICBmaXggQUJJIHNpemUtY29ycmVjdGlvbgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6IChnc3RfZHBfc3VpdGUpOgoJICBtYWtlIHRlc3RzIHRoYXQgdXNlIGRlcHJlY2F0ZWQgQVBJIGNvbmRpdGlvbmFsCgoyMDA2LTA4LTEwIDE5OjQ2OjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBUEk6IGFkZCBnc3Rfb2JqZWN0X3tzLGd9ZXRfY29udHJvbF9yYXRlKCksIGFkZCBwcml2YXRlIGRhdGEgc2VjdGlvbiwgZml4IGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKF9nc3RfY29udHJvbGxlcl9nZXRfcHJvcGVydHkpLCAoX2dzdF9jb250cm9sbGVyX3NldF9wcm9wZXJ0eSksCgkgIChfZ3N0X2NvbnRyb2xsZXJfaW5pdCksIChfZ3N0X2NvbnRyb2xsZXJfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzogKGdzdF9vYmplY3RfZ2V0X2NvbnRyb2xfcmF0ZSksCgkgIChnc3Rfb2JqZWN0X3NldF9jb250cm9sX3JhdGUpOgoJICBBUEk6IGFkZCBnc3Rfb2JqZWN0X3tzLGd9ZXRfY29udHJvbF9yYXRlKCksIGFkZCBwcml2YXRlIGRhdGEgc2VjdGlvbiwKCSAgZml4IGRvY3MKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IChnc3RfZHBfcGFja2V0aXplcl9uZXcpOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuaDoKCSAgYWRkIGRlcHJlY2F0aW9uIGd1YXJkcyB0byBtYWtlIGd0ay1kb2MgaGFwcHkgYW5kIGFsbG93IGRpc2FibGluZyBjcnVmdAoKMjAwNi0wOC0wOSAxNToyNjo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrLzogTGV0J3MgZW5hYmxlIHRoZSBuZXcgdW5pdCB0ZXN0IGFzIHdlbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICBMZXQncyBlbmFibGUgdGhlIG5ldyB1bml0IHRlc3QgYXMgd2VsbC4KCjIwMDYtMDgtMDkgMTU6MTM6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBHU1RfU0VHTUVOVF9GT1JNQVQsIHdoaWNoIGlzIGEgcHJpbnRmIGV4dGVuc2lvbiB3ZSByZWdpc3RlciB0aGF0IGxldHMgdXMgZWFzaWx5IGR1bXAgR3N0U2VnbWVudHMgaW50byBkZWJ1ZyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICAqIGdzdC9nc3RpbmZvLmM6IChfZ3N0X2RlYnVnX2luaXQpLCAoZ3N0X2RlYnVnX3ByaW50X3NlZ21lbnQpLAoJICAoX2dzdF9pbmZvX3ByaW50Zl9leHRlbnNpb25fcHRyKSwKCSAgKF9nc3RfaW5mb19wcmludGZfZXh0ZW5zaW9uX3NlZ21lbnQpOgoJICBBUEk6IGFkZCBHU1RfU0VHTUVOVF9GT1JNQVQsIHdoaWNoIGlzIGEgcHJpbnRmIGV4dGVuc2lvbiB3ZQoJICByZWdpc3RlciB0aGF0IGxldHMgdXMgZWFzaWx5IGR1bXAgR3N0U2VnbWVudHMgaW50byBkZWJ1ZwoJICBsb2dzICgjMzUwNDE5KS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOiAoc2VnbWVudF9wcmludGZfZXh0ZW5zaW9uX2xvZ19mdW5jKSwKCSAgKGluZm9fc2VnbWVudF9mb3JtYXRfcHJpbnRmX2V4dGVuc2lvbiksIChnc3RfaW5mb19zdWl0ZSk6CgkgIEFkZCBzaW1wbGUgdW5pdCB0ZXN0IHRoYXQgbG9ncyBhIGJ1bmNoIG9mIGRpZmZlcmVudCBzZWdtZW50cyAobm90CgkgIHZhbGdyaW5kZWQgYXQgdGhlIG1vbWVudCBiZWNhdXNlIG9mIGxlYWtzIGluIGdzdF9kZWJ1Z19hZGRfbG9nX2Z1bmN0aW9uKS4KCjIwMDYtMDgtMDkgMTE6MDE6MjAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRXZlbiBpZiB3ZSBjYW4ndCBmaWd1cmUgb3V0IHRoZSBwcm9wZXIgZm9ybWF0IHRvIHJlcXVlc3QgZG93bnN0cmVhbSwgY2FsbCBidWZmZXJfYWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgRXZlbiBpZiB3ZSBjYW4ndCBmaWd1cmUgb3V0IHRoZSBwcm9wZXIgZm9ybWF0IHRvIHJlcXVlc3QgZG93bnN0cmVhbSwKCSAgY2FsbCBidWZmZXJfYWxsb2MoKSBkb3duc3RyZWFtIHdpdGggdGhlIGlucHV0IHBhcmFtZXRlcnMgd2l0aG91dCBzZXR0aW5nCgkgIHRoZSBjYXBzIG9uIHRoZSBzcmNwYWQuIFRoaXMgd2lsbCBmb3JjZSBuZWdvdGlhdGlvbiBpbiB0aGUgY2hhaW4KCSAgZnVuY3Rpb24uCgkgIENsb3NlcyAjMzUwNDQ5CgoyMDA2LTA4LTA4IDE2OjI0OjU4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IFVubGlua2luZyBmcm9tIGEgcGFkIHdpdGhvdXQgYSB0YXJnZXQgaXMgbm93IGEgcGVyZmVjdGx5IHZhbGlkIGNhc2Ugd2hpY2ggc2hvdWxkIE5PVCByYWlzZSBhbiBhc3NlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X2dob3N0X3BhZF9kb191bmxpbmspOgoJICBVbmxpbmtpbmcgZnJvbSBhIHBhZCB3aXRob3V0IGEgdGFyZ2V0IGlzIG5vdyBhIHBlcmZlY3RseSB2YWxpZCBjYXNlCgkgIHdoaWNoIHNob3VsZCBOT1QgcmFpc2UgYW4gYXNzZXJ0aW9uLgoJICBUaGlzIGNhc2Ugd291bGQgaGFwcGVuIGlmIGEgbGlua2VkIGdob3N0cGFkIGl0cyB0YXJnZXQgc2V0IHRvIE5VTEwgYWZ0ZXIKCSAgaXQgd2FzIHByZXZpb3VzbHkgbGlua2VkLgoKMjAwNi0wOC0wOCAwOTo1Njo0NSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6IEFsc28gY29tbWVudCBvdXQgdGhlIHRlc3QgKHNlZSBiZWxvdykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6CgkgIEFsc28gY29tbWVudCBvdXQgdGhlIHRlc3QgKHNlZSBiZWxvdykuCgoyMDA2LTA4LTA4IDA5OjA3OjM0ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgdGVzdHMvY2hlY2svbGlicy9nZHAuYzogVXNlIHRoZSBhcmNoaXRlY3R1cmUgaW5mb3JtYXRpb24gZnJvbSBjb25maWcuaCBhbmQgbm90IGdjYyBtYWNyb3MgaW4gb3JkZXIgdG8gcHJvcGVybHkgZGlzYWJsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6IChnc3RfZHBfc3VpdGUpOgoJICBVc2UgdGhlIGFyY2hpdGVjdHVyZSBpbmZvcm1hdGlvbiBmcm9tIGNvbmZpZy5oIGFuZCBub3QgZ2NjIG1hY3JvcwoJICBpbiBvcmRlciB0byBwcm9wZXJseSBkaXNhYmxlIGEgdGVzdCB0aGF0IGZhaWxzIG9uIFBQQzY0LgoKMjAwNi0wOC0wNCAxNToxNToyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IERvbid0IGNyYXNoIHByaW50aW5nIHRoZSB3YXJuaW5nIGlmIHRoZSBwYWQgaGFzIG5vIHBhcmVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3JlbW92ZV9wYWQpOgoJICBEb24ndCBjcmFzaCBwcmludGluZyB0aGUgd2FybmluZyBpZiB0aGUgcGFkIGhhcyBubyBwYXJlbnQuCgoyMDA2LTA4LTAyIDE1OjE5OjMwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBNYWtlIGRlYnVnIGNhdGVnb3J5IHN0YXRpYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIChnc3RfZHBfaGVhZGVyX2Zyb21fYnVmZmVyX2FueSksIChnc3RfZHBfcGFja2V0X2Zyb21fY2Fwc19hbnkpLAoJICAoZ3N0X2RwX2NyYyksIChnc3RfZHBfaGVhZGVyX3BheWxvYWRfbGVuZ3RoKSwKCSAgKGdzdF9kcF9oZWFkZXJfcGF5bG9hZF90eXBlKSwgKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudCksCgkgIChnc3RfZHBfcGFja2V0X2Zyb21fZXZlbnRfMV8wKSwgKGdzdF9kcF9idWZmZXJfZnJvbV9oZWFkZXIpLAoJICAoZ3N0X2RwX2NhcHNfZnJvbV9wYWNrZXQpLCAoZ3N0X2RwX2V2ZW50X2Zyb21fcGFja2V0XzBfMiksCgkgIChnc3RfZHBfZXZlbnRfZnJvbV9wYWNrZXQpLCAoZ3N0X2RwX3ZhbGlkYXRlX2hlYWRlciksCgkgIChnc3RfZHBfdmFsaWRhdGVfcGF5bG9hZCk6CgkgIE1ha2UgZGVidWcgY2F0ZWdvcnkgc3RhdGljCgkgIENvbnN0aWZ5IHRoZSBjcmMgdGFibGUuCgkgIERvIHNvbWUgbW9yZSBhcmcgY2hlY2tpbmcgaW4gcHVibGljIGZ1bmN0aW9ucy4KCSAgRml4IHNvbWUgZG9jcyBhbmQgZG8gc29tZSBzbWFsbCBjbGVhbnVwcy4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2RwX3N1aXRlKToKCSAgQWRkIHNvbWUgbW9yZSBjaGVja3MgdG8gc2VlIGlmIEdEUCBkZWFscyB3aXRoIGJvZ3VzIGlucHV0LgoKMjAwNi0wNy0zMSAxNjozNDo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBGaXggR3N0VmFsdWVMaXN0IGNvbXBhcmlzb24gY29kZS4gRml4ZXMgIzM0NzI5My4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfY29tcGFyZV9saXN0KToKCSAgRml4IEdzdFZhbHVlTGlzdCBjb21wYXJpc29uIGNvZGUuIEZpeGVzICMzNDcyOTMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIENoZWNrIHRvIHRlc3QgR3N0VmFsdWVMaXN0IGNvbXBhcmlzb24uCgoyMDA2LTA3LTMxIDE1OjEyOjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFVzZSBPQkpFQ1RfTE9DSyBhbmQgcmVmY291bnRpbmcgdG8gZ2V0IHRoZSBwYWQgY2FwcyBpbiB0aGUgYnVmZmVyX2FsbG9jIGZ1bmN0aW9uIGJlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIFVzZSBPQkpFQ1RfTE9DSyBhbmQgcmVmY291bnRpbmcgdG8gZ2V0IHRoZSBwYWQgY2FwcyBpbiB0aGUKCSAgYnVmZmVyX2FsbG9jIGZ1bmN0aW9uIGJlY2F1c2UgdGhlIGNhcHMgY291bGQgY2hhbmdlIHdoaWxlIHdlIGFyZQoJICBidXN5IHdpdGggdGhlbS4gRml4ZXMgIzM0OTEwNQoKMjAwNi0wNy0zMSAxNToxMjowMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiBSZW1vdmUgdW5uZWNlc3NhcnkgcmVmL3VucmVmIHBhaXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9mYWN0b3J5X2NyZWF0ZSk6CgkgIFJlbW92ZSB1bm5lY2Vzc2FyeSByZWYvdW5yZWYgcGFpcgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIE1ha2Ugc3VyZSB0byBmcmVlIHRoZSBwYXJzZSBidWZmZXIgb24gYWxsIGNvZGUgcGF0aHMuCgkgIE1vdmUgYSBnX2ZyZWUgdXAgdG8gdGhlIGVycm9yIGhhbmRsZXIgd2hlcmUgaXQncyBlYXNpZXIgdG8gc2VlLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOiAodGVzdF9ldmVudCk6CgkgIEV4dGVuZGluZyB0aW1lb3V0IGZvciBkb3duc3RyZWFtIHRyYXZlbGxpbmcgZXZlbnRzIHRvIDEwIHNlY29uZHMgdG8KCSAgaG9wZWZ1bGx5IGF2b2lkIGludGVybWl0dGVudCBmYWlsdXJlIG9uIHRoZSBidWlsZGJvdHMuCgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiAocnVuX2RlbGF5ZWRfdGVzdCk6CgkgIERvbid0IG1hbnVhbGx5IHNldCB0aGUgc3RhdGUgb2YgdGhlIHNyYyBlbGVtZW50IC0gaXQgd2lsbCBoYXBwZW4gYXMgYQoJICBuYXR1cmFsIGNvbnNlcXVlbmNlIG9mIHRoZSBwaXBlbGluZSBjaGFuZ2luZyBzdGF0ZSwgYW5kIHRoYXQgd2F5IGl0CgkgIHdpbGwgZG8gaXQgaW4gdGhlIHJpZ2h0IG9yZGVyIHRvby4KCjIwMDYtMDctMzEgMTU6MDc6MzAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IFJlbW92ZSB1bm5lY2Vzc2FyeSByZWYvdW5yZWYgcGFpcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X2ZhY3RvcnlfY3JlYXRlKToKCSAgUmVtb3ZlIHVubmVjZXNzYXJ5IHJlZi91bnJlZiBwYWlyCgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgTWFrZSBzdXJlIHRvIGZyZWUgdGhlIHBhcnNlIGJ1ZmZlciBvbiBhbGwgY29kZSBwYXRocy4KCSAgTW92ZSBhIGdfZnJlZSB1cCB0byB0aGUgZXJyb3IgaGFuZGxlciB3aGVyZSBpdCdzIGVhc2llciB0byBzZWUuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6ICh0ZXN0X2V2ZW50KToKCSAgRXh0ZW5kaW5nIHRpbWVvdXQgZm9yIGRvd25zdHJlYW0gdHJhdmVsbGluZyBldmVudHMgdG8gMTAgc2Vjb25kcyB0bwoJICBob3BlZnVsbHkgYXZvaWQgaW50ZXJtaXR0ZW50IGZhaWx1cmUgb24gdGhlIGJ1aWxkYm90cy4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChydW5fZGVsYXllZF90ZXN0KToKCSAgRG9uJ3QgbWFudWFsbHkgc2V0IHRoZSBzdGF0ZSBvZiB0aGUgc3JjIGVsZW1lbnQgLSBpdCB3aWxsIGhhcHBlbiBhcyBhCgkgIG5hdHVyYWwgY29uc2VxdWVuY2Ugb2YgdGhlIHBpcGVsaW5lIGNoYW5naW5nIHN0YXRlLCBhbmQgdGhhdCB3YXkgaXQKCSAgd2lsbCBkbyBpdCBpbiB0aGUgcmlnaHQgb3JkZXIgdG9vLgoKMjAwNi0wNy0zMSAxNDoyMzoyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBQcm90ZWN0IF9QQURfQ0FQUyB3aXRoIE9CSkVDVF9MT0NLLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9wYWRfZ2V0X2ZpeGVkX2NhcHNfZnVuYyk6CgkgIFByb3RlY3QgX1BBRF9DQVBTIHdpdGggT0JKRUNUX0xPQ0suCgoyMDA2LTA3LTMxIDE0OjIxOjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBVc2UgX0RFQlVHX09CSkVDVCB3aGVuIGl0IG1ha2VzIHNlbnNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2NsYXNzX2luaXQpLCAoZ3N0X3BhZF9kaXNwb3NlKSwKCSAgKGdzdF9wYWRfZ2V0X3Byb3BlcnR5KSwgKGdzdF9wYWRfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfcGFkX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X3BhZF9zZXRfYmxvY2tlZF9hc3luYyksCgkgIChnc3RfcGFkX3NldF9hY3RpdmF0ZV9mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9hY3RpdmF0ZXB1bGxfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfYWN0aXZhdGVwdXNoX2Z1bmN0aW9uKSwgKGdzdF9wYWRfc2V0X2NoYWluX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X2dldHJhbmdlX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X2NoZWNrZ2V0cmFuZ2VfZnVuY3Rpb24pLCAoZ3N0X3BhZF9zZXRfZXZlbnRfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfcXVlcnlfZnVuY3Rpb24pLCAoZ3N0X3BhZF9zZXRfcXVlcnlfdHlwZV9mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9pbnRlcm5hbF9saW5rX2Z1bmN0aW9uKSwgKGdzdF9wYWRfc2V0X2xpbmtfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfdW5saW5rX2Z1bmN0aW9uKSwgKGdzdF9wYWRfc2V0X2dldGNhcHNfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfYWNjZXB0Y2Fwc19mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9maXhhdGVjYXBzX2Z1bmN0aW9uKSwgKGdzdF9wYWRfc2V0X3NldGNhcHNfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfYnVmZmVyYWxsb2NfZnVuY3Rpb24pLCAoZ3N0X3BhZF9saW5rX2NoZWNrX2hpZXJhcmNoeSksCgkgIChnc3RfcGFkX2dldF9jYXBzX3VubG9ja2VkKSwgKGdzdF9wYWRfZ2V0X2NhcHMpLAoJICAoZ3N0X3BhZF9wZWVyX2dldF9jYXBzKSwgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLAoJICAoZ3N0X3BhZF9wZWVyX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfc2V0X2NhcHMpLAoJICAoZ3N0X3BhZF9jb25maWd1cmVfc2luayksIChnc3RfcGFkX2NvbmZpZ3VyZV9zcmMpLAoJICAoZ3N0X3BhZF9nZXRfYWxsb3dlZF9jYXBzKSwgKGdzdF9wYWRfZ2V0X25lZ290aWF0ZWRfY2FwcyksCgkgIChnc3RfcGFkX2J1ZmZlcl9hbGxvY191bmNoZWNrZWQpLCAoZ3N0X3BhZF9hbGxvY19idWZmZXJfZnVsbCksCgkgIChnc3RfcGFkX3F1ZXJ5KSwgKGdzdF9wYWRfbG9hZF9hbmRfbGluayksIChoYW5kbGVfcGFkX2Jsb2NrKSwKCSAgKGdzdF9wYWRfY2hhaW5fdW5jaGVja2VkKSwgKGdzdF9wYWRfcHVzaCksIChnc3RfcGFkX2dldF9yYW5nZSksCgkgIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBVc2UgX0RFQlVHX09CSkVDVCB3aGVuIGl0IG1ha2VzIHNlbnNlLgoJICBQcm90ZWN0IEdTVF9QQURfQ0FQUyB3aXRoIHRoZSBPQkpFQ1RfTE9DSy4KCSAgU21hbGwgY2xlYW51cHMgYW5kIGNvZGUgcmVmbG93cy4KCSAgQXZvaWQgY2FwcyByZWZjb3VudGluZyBpbiBfYWNjZXB0X2NhcHMuCgkgIFJlZmFjdG9yIGFsbG9jX2J1ZmZlciBzbyB0aGF0IHRoZSBjb2RlIHBlcmZvcm1lZCBvbiB0aGUgcGVlciBpcyBpbiBhCgkgIHNlcGFyYXRlIGZ1bmN0aW9uLiBBbHNvIGlmIHRoZSBwYWQgZG9lcyBub3QgaW1wbGVtZW50IGEgYnVmZmVyIGFsbG9jCgkgIGZ1bmN0aW9uLCB3ZSBzaG91bGQgc3RpbGwgY2hlY2sgaWYgdGhlIHBhZCBpcyBmbHVzaGluZyBiZWZvcmUgZmFsbGluZwoJICBiYWNrIHRvIHRoZSBkZWZhdWx0IGFsbG9jYXRvci4KCjIwMDYtMDctMzAgMjI6MjA6NDIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiBNYWtlIGFsbCB1c2VzIG9mIGlkZW50aXR5IGFuZCBmYWtlc2luayBoYXZlIHNpbGVudD10cnVlIHRvIGF2b2lkIHNlcmlhbGlzaW5nIGV2Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogKEdTVF9TVEFSVF9URVNUKToKCSAgTWFrZSBhbGwgdXNlcyBvZiBpZGVudGl0eSBhbmQgZmFrZXNpbmsgaGF2ZSBzaWxlbnQ9dHJ1ZSB0byBhdm9pZAoJICBzZXJpYWxpc2luZyBldmVyeSBwYXNzaW5nIGRhdGEgc3RydWN0dXJlLCB3aGljaCBpcyBicmVha2luZyB0ZXN0cwoJICBvbiBGQzQgZm9yIHNvbWUgdW5rbm93biByZWFzb24uCgoyMDA2LTA3LTMwIDE4OjU4OjI4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvcGFyc2UvOiBSZXZlcnRlZCBwcmV2aW91cyBwYXRjaCBhcyBpdCByZXF1aXJlZCB0byBidW1wIHRoZSBmbGV4IGRlcGVuZGVuY3kgdG8gMi41LjMxLCB3aGVyZSBmYzQvNSBzZWVtIHRvIHNoaXAgb24uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgICogZ3N0L3BhcnNlL3BhcnNlLmw6CgkgIFJldmVydGVkIHByZXZpb3VzIHBhdGNoIGFzIGl0IHJlcXVpcmVkIHRvIGJ1bXAgdGhlIGZsZXggZGVwZW5kZW5jeSB0bwoJICAyLjUuMzEsIHdoZXJlIGZjNC81IHNlZW0gdG8gc2hpcCBvbmx5IHRoZSBhbmNpZW50IDIuNS40YSA6KAoKMjAwNi0wNy0zMCAxODozMjo0OSArMDAwMCAgTWFyYy1BbmRyZSBMdXJlYXUgPG1hcmNhbmRyZS5sdXJlYXVAZ21haWwuY29tPgoKCSAgZ3N0L3BhcnNlLzogcHVzaCAmIHBvcCB0aGUgc3RhdGUgb2YgdGhlIGxleGVyIGZvciByZWVudHJhbnQgdXNlIGNhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJjLUFuZHJlIEx1cmVhdSA8bWFyY2FuZHJlLmx1cmVhdUBnbWFpbC5jb20+CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgICogZ3N0L3BhcnNlL3BhcnNlLmw6CgkgIHB1c2ggJiBwb3AgdGhlIHN0YXRlIG9mIHRoZSBsZXhlciBmb3IgcmVlbnRyYW50IHVzZSBjYXNlCgkgIEZpeGVzICMzNDkxODAKCjIwMDYtMDctMjkgMTM6NDU6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDogTm90ZSBpbiB0aGUgZG9jcyB0aGF0IHRoZSA6Om5ld3NlZ21lbnQgdmZ1bmMgaXMgbm90IGFjdHVhbGx5IHVzZWQgYnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIE5vdGUgaW4gdGhlIGRvY3MgdGhhdCB0aGUgOjpuZXdzZWdtZW50IHZmdW5jIGlzIG5vdCBhY3R1YWxseSB1c2VkIGJ5CgkgIEdzdEJhc2VTcmMuCgoyMDA2LTA3LTI4IDE0OjA5OjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBXaGVuIGZsdXNoaW5nIGEgcGFkLCBhbHNvIGNsZWFyIHRoZSBxdWV1ZWQgYnVmZmVyIHNvIHRoYXQgd2UgZG9uJ3QgYWNjaWRlbnRhbGx5IHVzZSBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc2V0X2ZsdXNoaW5nX3VubG9ja2VkKSwgKGdzdF9jb2xsZWN0X3BhZHNfcG9wKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY2xlYXIpLCAoZ3N0X2NvbGxlY3RfcGFkc19mbHVzaCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KSwgKGdzdF9jb2xsZWN0X3BhZHNfY2hhaW4pOgoJICBXaGVuIGZsdXNoaW5nIGEgcGFkLCBhbHNvIGNsZWFyIHRoZSBxdWV1ZWQgYnVmZmVyIHNvIHRoYXQgd2UgZG9uJ3QKCSAgYWNjaWRlbnRhbGx5IHVzZSBpdCB3aGVuIHdlIHNob3VsZG4ndC4KCSAgRml4IGxlYWtzIGJ5IGlucmVmZmluZyBpbmNvbW1pbmcgYnVmZmVyLgoJICBGbHVzaCBvdXQgcXVldWVkIGJ1ZmZlcnMgaW4gY2FzZSBvZiBlcnJvcnMuCgkgIEZpeGVzICMzNDc0NTIuCgoyMDA2LTA3LTI4IDEwOjE3OjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9yYW5kb20vcGhvbm9uLWdzdDogUmFuZG9tIG5vdGVzIGFib3V0IGEgUGhvbm9uIGJhY2tlbmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL3Bob25vbi1nc3Q6CgkgIFJhbmRvbSBub3RlcyBhYm91dCBhIFBob25vbiBiYWNrZW5kLgoKMjAwNi0wNy0yNyAxNDozMjowMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRXh0cmEgZGVidWcgb3V0cHV0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpOgoJICBFeHRyYSBkZWJ1ZyBvdXRwdXQKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOiAoZ3N0X2RwX3N1aXRlKToKCSAgVGFrZSBhIHdoYWNrIGF0IGZpeGluZyB0aGUgcHBjIGNvbXBpbGUgdXNpbmcgYSBkaWZmZXJlbnQgZGVmaW5lIHRvCgkgIGRpc2FibGUgdGhlIGJyb2tlbiB0ZXN0LgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogKEdTVF9TVEFSVF9URVNUKToKCSAgUmVtb3ZlIGV4Y2VzcyBnX3ByaW50KCkKCjIwMDYtMDctMjcgMTM6NDQ6MjIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiBPb3BzLCBtZWFudCB0byB1bmNvbW1lbnQgdGhpcyBsaW5lIHRvbyB0byBkYW1wZW4gdGhlIG5vaXNlIGEgYml0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChleHBlY3RlZF9mYWlsX3BpcGUpOgoJICBPb3BzLCBtZWFudCB0byB1bmNvbW1lbnQgdGhpcyBsaW5lIHRvbyB0byBkYW1wZW4gdGhlIG5vaXNlIGEgYml0LgoKMjAwNi0wNy0yNyAxMzoyNjoyNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBGaXggc29tZSBvZiB0aGUgbGVha3MgZXhwb3NlZCBieSBleHRlbmRpbmcgdGhlIHBhcnNlLWxhdW5jaCB0ZXN0c3VpdGUsIGFuZCBtb3ZlIHRoZSAzIEkgY2FuJ3QgZmlndXJlIG91dCBpbnRvIGEgc2VwYXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgKiBnc3QvcGFyc2UvcGFyc2UubDoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChleHBlY3RlZF9mYWlsX3BpcGUpLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAocGFyc2Vfc3VpdGUpOgoJICBGaXggc29tZSBvZiB0aGUgbGVha3MgZXhwb3NlZCBieSBleHRlbmRpbmcgdGhlIHBhcnNlLWxhdW5jaCB0ZXN0c3VpdGUsCgkgIGFuZCBtb3ZlIHRoZSAzIEkgY2FuJ3QgZmlndXJlIG91dCBpbnRvIGEgc2VwYXJhdGUgdGVzdCB0aGF0IHdvbid0IHJ1bgoJICB0aGUgcGlwZWxpbmVzIHVubGVzcyB0aGUgYXBwcm9wcmlhdGUgbGluZSBpcyB1bmNvbW1lbnRlZC4KCjIwMDYtMDctMjcgMTI6Mzk6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogUmVxdWVzdGluZyAwIGJ5dGVzIGJlZm9yZSB0aGUgZW5kIG9mIHRoZSBmaWxlIHNob3VsZCByZXN1bHQgaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY3JlYXRlX3JlYWQpOgoJICBSZXF1ZXN0aW5nIDAgYnl0ZXMgYmVmb3JlIHRoZSBlbmQgb2YgdGhlIGZpbGUgc2hvdWxkIHJlc3VsdCBpbgoJICBGTE9XX09LIGFuZCBhbiBlbXB0eSBidWZmZXIsIG5vdCBGTE9XX1VORVhQRUNURUQuIFRoYW5rIHlvdQoJICB1bml0IHRlc3QuCgoyMDA2LTA3LTI3IDExOjAwOjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogRml4IHVzZWxlc3MgYXNzZXJ0LCBhIHVpbnQgaXMgYWx3YXlzIHBvc2l0aXZlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X3N0YXRpY19jYXBzX2dldCksIChnc3RfY2Fwc19nZXRfc3RydWN0dXJlKToKCSAgRml4IHVzZWxlc3MgYXNzZXJ0LCBhIHVpbnQgaXMgYWx3YXlzIHBvc2l0aXZlLgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfbnRoX2ZpZWxkX25hbWUpLAoJICAoZ3N0X3N0cnVjdHVyZV9mb3JlYWNoKSwgKGdzdF9zdHJ1Y3R1cmVfbWFwX2luX3BsYWNlKToKCSAgQ2hlY2sgaW5wdXQgYXJndW1lbnRzIGZvciBwdWJsaWMgZnVuY3Rpb25zIHRvIGF2b2lkIG9idmlvdXMgY3Jhc2hlcy4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX3JlbmRlcik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJICBEbyBsZXNzIHVzZWxlc3MgdHlwZWNoZWNraW5nLgoKMjAwNi0wNy0yNyAxMDo1NDoyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiBEbyBub3QgdXNlIG1tYXAoKSBieSBkZWZhdWx0IHNpbmNlIHRoZXJlIGFyZSBhIG51bWJlciBvZiBlcnJvciBjb25kaXRpb25zIHRoYXQgd2Ugd291bC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jbGFzc19pbml0KToKCSAgRG8gbm90IHVzZSBtbWFwKCkgYnkgZGVmYXVsdCBzaW5jZSB0aGVyZSBhcmUgYSBudW1iZXIgb2YgZXJyb3IKCSAgY29uZGl0aW9ucyB0aGF0IHdlIHdvdWxkIGxpa2UgdG8gaGFuZGxlIGluIGEgbm9uLWZhdGFsIHdheSB0aGF0CgkgIHdpbGwgcmVzdWx0IGluIGEgU0lHQlVTIGlmIHdlIHVzZSBtbWFwKCkuIEV4YW1wbGVzOiBleHRlcm5hbAoJICBkZXZpY2VzIChVU0IgaGFyZGRyaXZlLCBwb3J0YWJsZSBtdXNpYyBwbGF5ZXIpIGJlaW5nIHVucGx1Z2dlZAoJICB3aGlsZSBpbiB1c2U7IGZpbGUgb24gbW91bnRlZCBDRC9EVkQgdGhhdCBjYW4ndCBiZSByZWFkIGJlY2F1c2UKCSAgdGhlIG1lZGl1bSBpcyBwYXJ0bHkgZGFtYWdlZC4gRml4ZXMgIzM0ODQ1NSBhbmQgIzM0ODQ3NS4KCjIwMDYtMDctMjYgMjI6NTk6MTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHF1ZXJ5Lmg6IERlbGV0ZSB1bnVzZWQgYW5kIG1pc2xlYWRpbmcgZGVmaW5lIG9mIEdTVF9RVUVSWV9UWVBFX1JBVEVfREVOIC0gcmF0ZXMgYXJlIGEgZ2RvdWJsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgRGVsZXRlIHVudXNlZCBhbmQgbWlzbGVhZGluZyBkZWZpbmUgb2YgR1NUX1FVRVJZX1RZUEVfUkFURV9ERU4gLQoJICByYXRlcyBhcmUgYSBnZG91YmxlCgoyMDA2LTA3LTI2IDIwOjMwOjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnkuYzogTW92ZSBiaWcgZG9jdW1lbnRhdGlvbiBjb21tZW50IGludG8gY2xhc3Mgc2VjdGlvbiBoZWFkZXIsIHNvIHRoYXQgaXQgYXBwZWFycyBpbiB0aGUgQVBJIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBNb3ZlIGJpZyBkb2N1bWVudGF0aW9uIGNvbW1lbnQgaW50byBjbGFzcyBzZWN0aW9uIGhlYWRlciwgc28gdGhhdCBpdAoJICBhcHBlYXJzIGluIHRoZSBBUEkgZG9jcy4KCjIwMDYtMDctMjYgMTc6MTg6MjUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogT29wcy4gQ29tbWl0IHRoZSBkb2NzIGFkZGl0aW9ucyB0b28gZm9yIG5ldyBBUEkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIE9vcHMuIENvbW1pdCB0aGUgZG9jcyBhZGRpdGlvbnMgdG9vIGZvciBuZXcgQVBJLgoJICBBbHNvLCByZW1vdmUgdGhlIG1lbnRpb24gb2YgdGhlIG5vbi1leGlzdGVudCBHU1RfUVVFUllfVFlQRV9SQVRFX0RFTgoKMjAwNi0wNy0yNiAxNzowNDo0NSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0c3RydWN0dXJlLio6IEFkZCBBUEkgZm9yIHNldHRpbmcgdmFsdWVzIGludG8gc3RydWN0dXJlcyB3aXRob3V0IHBlcmZvcm1pbmcgYSBxdWFyayBsb29rdXAsIGlmIHRoZSBhcHByb3ByaWF0ZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9pZF9zZXQpLAoJICAoZ3N0X3N0cnVjdHVyZV9pZF9zZXRfdmFsaXN0KToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIEFkZCBBUEkgZm9yIHNldHRpbmcgdmFsdWVzIGludG8gc3RydWN0dXJlcyB3aXRob3V0IHBlcmZvcm1pbmcKCSAgYSBxdWFyayBsb29rdXAsIGlmIHRoZSBhcHByb3ByaWF0ZSBxdWFyayBpcyBhbHJlYWR5IGtub3duLgoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfaWRfc2V0CgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9pZF9zZXRfdmFsaXN0CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgKiBnc3QvcGFyc2UvcGFyc2UubDoKCSAgUmVtb3ZlIHNvbWUgZGVhZCBjb2RlIHNob3duIGJ5IHRoZSBjb3ZlcmFnZSBpbmZvcm1hdGlvbi4KCSAgRG9uJ3QgdGhyb3cgYSBjcml0aWNhbCBnX3dhcm5pbmcgd2hlbiBlbmNvdW50ZXJpbmcgYSBzeW50YXggZXJyb3IsCgkgIGp1c3Qgd2FybiBhbmQgbGV0IHRoZSBub3JtYWwgZXJyb3IgcGF0aCBoYW5kbGUgaXQuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICBCdW1wIHRoZSByYW5rIG9mIGZpbGVzaW5rIHVwIHRvIFBSSU1BUlkgc28gdGhhdCBpdCBpcyBwcmVmZXJyZWQgb3ZlcgoJICBnbm9tZXZmc3NpbmsgZm9yIGZpbGU6Ly8gc2luayB1cmkncwoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogKGV4cGVjdGVkX2ZhaWxfcGlwZSksCgkgIChHU1RfU1RBUlRfVEVTVCksIChydW5fZGVsYXllZF90ZXN0KSwKCSAgKGdzdF9wYXJzZV90ZXN0X2VsZW1lbnRfYmFzZV9pbml0KSwKCSAgKGdzdF9wYXJzZV90ZXN0X2VsZW1lbnRfY2xhc3NfaW5pdCksIChnc3RfcGFyc2VfdGVzdF9lbGVtZW50X2luaXQpLAoJICAoZ3N0X3BhcnNlX3Rlc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3JlZ2lzdGVyX3BhcnNlX2VsZW1lbnQpLCAocGFyc2Vfc3VpdGUpOgoJICBCZWVmIHVwIHRoZSB0ZXN0cyBmb3IgcGFyc2Ugc3ludGF4IHRvIGNoZWNrIHRoYXQgbW9yZSBlcnJvciBjYXNlcwoJICBmYWlsIGFzIHRoZXkgYXJlIHN1cHBvc2VkIHRvLiBJbmNyZWFzZXMgdGhlIHRlc3QgY292ZXJhZ2UgYSBiaXQuCgoyMDA2LTA3LTI2IDExOjQzOjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDogRml4IGdzdF9lbGVtZW50X2xpbmsoKSBleGFtcGxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJICBGaXggZ3N0X2VsZW1lbnRfbGluaygpIGV4YW1wbGUuCgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIE1lbnRpb24gaW4gQVBJIGRvY3MgdGhhdCBvbmUgc2hvdWxkIHVzdWFsbHkgZ3N0X2Jpbl9hZGQoKQoJICBlbGVtZW50cyB0byBhIGJpbiBvciBwaXBlbGluZSBiZWZvcmUgZG9pbmcgdGhlIGxpbmtpbmcuCgoyMDA2LTA3LTI2IDEwOjQ3OjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgYmFjayB0byAzMiBiaXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gMzIgYml0CgoyMDA2LTA3LTI2IDEwOjM5OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBBdm9pZCBmdW5jdGlvbiBjYWxsIGZvciBrbm93biB0eXBlcyBieSBrZWVwaW5nIHRoZSBidWZmZXIgYW5kIHN1YmJ1ZmZlciBHVHlwZSBnbG9iYWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfZ2V0X3R5cGUpLCAoZ3N0X2J1ZmZlcl9uZXcpLAoJICAoZ3N0X3N1YmJ1ZmZlcl9nZXRfdHlwZSksIChnc3RfYnVmZmVyX2NyZWF0ZV9zdWIpOgoJICBBdm9pZCBmdW5jdGlvbiBjYWxsIGZvciBrbm93biB0eXBlcyBieSBrZWVwaW5nIHRoZSBidWZmZXIgYW5kCgkgIHN1YmJ1ZmZlciBHVHlwZSBnbG9iYWwuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY3JlYXRlX3JlYWQpOgoJICBSYW5kb20gc2lsbHkgb3B0aW1pc2F0aW9ucyBpbiByZWFkKCkgcGF0aC4KCjIwMDYtMDctMjYgMDY6MTg6NDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBJZiB0aGUgdG9wLWxldmVsIG9mIHRoZSBwYXJzZSBpcyBhIG5vcm1hbCBiaW4sIGl0IGRvZXNuJ3QgZG8gdGhlIHJpZ2h0IGxvZ2ljIHRvIHJ1biBhcyBhIHRvcC1sZXZlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICBJZiB0aGUgdG9wLWxldmVsIG9mIHRoZSBwYXJzZSBpcyBhIG5vcm1hbCBiaW4sIGl0IGRvZXNuJ3QgZG8gdGhlCgkgIHJpZ2h0IGxvZ2ljIHRvIHJ1biBhcyBhIHRvcC1sZXZlbCBlbGVtZW50LCBzbyBwbGFjZSBpdCBpbnNpZGUgYQoJICBwaXBlbGluZS4KCjIwMDYtMDctMjUgMTk6Mzc6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogUmVtb3ZlIHN1cGVyZmx1b3VzIGdfb2JqZWN0X25vdGlmeSgpIGNhbGxzLCBHT2JqZWN0IGRvZXMgdGhhdCBmb3IgdXMgYXV0b21hdGljYWxseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfc2V0X3Byb3BlcnR5KToKCSAgUmVtb3ZlIHN1cGVyZmx1b3VzIGdfb2JqZWN0X25vdGlmeSgpIGNhbGxzLCBHT2JqZWN0IGRvZXMKCSAgdGhhdCBmb3IgdXMgYXV0b21hdGljYWxseS4KCjIwMDYtMDctMjUgMTU6MDc6NTggKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBhZGQgbGF0ZXN0IC5oIGFkZGl0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbGF0ZXN0IC5oIGFkZGl0aW9uCgoyMDA2LTA3LTI1IDEzOjA2OjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0aW5mby5oOiBNb3ZlIHRoZSBXaW4zMiB2ZXJzaW9uIGZyb20gZ3N0LXBsdWdpbnMtZ29vZC9nc3QvYXZpL2F2aWRlbXV4LmMgdG8gaGVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgTW92ZSB0aGUgV2luMzIgdmVyc2lvbiBmcm9tIGdzdC1wbHVnaW5zLWdvb2QvZ3N0L2F2aS9hdmlkZW11eC5jIHRvCgkgIGhlcmUuCgoyMDA2LTA3LTI0IDE2OjMzOjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuYzogQWxsb3cgbW9yZSB0aGFuIG9uZSBHU1RfVEFHX0lNQUdFIHBlciB0YWdsaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoX2dzdF90YWdfaW5pdGlhbGl6ZSk6CgkgIEFsbG93IG1vcmUgdGhhbiBvbmUgR1NUX1RBR19JTUFHRSBwZXIgdGFnbGlzdC4KCjIwMDYtMDctMjQgMDc6NDA6MTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogdXBkYXRlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgdXBkYXRlIGRvY3MKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfZmRfc3JjX2NyZWF0ZSk6CgkgIGxvZyByZWN1cnJpbmcgZXZlbnRzIGF0IExPRyBsZXZlbAoJICBhZGQgbW9yZSBkZWJ1ZyBmb3Igd2hlbiB0aGUgZmQgZ2V0cyBzZXQKCjIwMDYtMDctMjQgMDc6Mzc6NTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJICByZW1vdmUgLS1lbmFibGUtZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIC0tZW5hYmxlLWRvY3MKCjIwMDYtMDctMjMgMDk6NDE6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IGFkZCBidWcgcmVmZXJlbmNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogYWRkIGJ1ZyByZWZlcmVuY2UKCjIwMDYtMDctMjEgMTg6NTI6MzAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwYXJzZS5jOiBBbHNvIHJlbW92ZSByZWVudHJhbmNlIGNoZWNrcyBpZiBmbGV4IGlzIE1UIHNhdmUgKCMzNDgxNzkpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYXJzZS5jOiAoZ3N0X3BhcnNlX2xhdW5jaCk6CgkgIEFsc28gcmVtb3ZlIHJlZW50cmFuY2UgY2hlY2tzIGlmIGZsZXggaXMgTVQgc2F2ZSAoIzM0ODE3OSkKCSAgRml4IG15IGVtcHR5IENoYW5nZUxvZyBlbnRyeSBiZWxvdwoKMjAwNi0wNy0yMSAxNjowMTozNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogQXR0ZW1wdCB0byBwYWNpZnkgYnVpbGRib3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA3LTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEF0dGVtcHQgdG8gcGFjaWZ5IGJ1aWxkYm90LgoKMjAwNi0wNy0yMSAxNTo0ODowNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW0gKGxpYmdzdGNoZWNrX0BHU1RfTUFKT1JNSU5PUkBpbmNsdWRlX0hFQURFUlMpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA3LTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtCgkgIChsaWJnc3RjaGVja19AR1NUX01BSk9STUlOT1JAaW5jbHVkZV9IRUFERVJTKQoJICAobGliZ3N0Y2hlY2tfQEdTVF9NQUpPUk1JTk9SQF9sYV9TT1VSQ0VTKToKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5oOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3LmM6IEFkZCBzb21lIG5ldyBoeXBlIHRlc3RpbmcKCSAgZnVuY3Rpb25zLCB0aHVzIHByb3ZpbmcgSSBhbSBzdGlsbCBhIEdTdHJlYW1lciBoYXhvci4gT0sgSSB3cm90ZQoJICB0aGVtIGEgbG9uZyB0aW1lIGFnbywgYnV0IGFueXdheXMuCgoyMDA2LTA3LTIxIDEzOjExOjMzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6ICogY29uZmlndXJlLmFjOiAqIGdzdC9nc3RwYXJzZS5jOiAoZ3N0X3BhcnNlX2xhdW5jaCk6CgoyMDA2LTA3LTIxIDEwOjQwOjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhcnNlLmM6IFByb3RlY3QgcmVjdXJzaXZlIGNhbGxzIHRvIF9wYXJzZSB3aXRoIGEgcmVjdXJzaXZlIG11dGV4IGFuZCBidXN5IGZsYWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYXJzZS5jOiAoZ3N0X3BhcnNlX2xhdW5jaCk6CgkgIFByb3RlY3QgcmVjdXJzaXZlIGNhbGxzIHRvIF9wYXJzZSB3aXRoIGEgcmVjdXJzaXZlIG11dGV4CgkgIGFuZCBidXN5IGZsYWcuCgoyMDA2LTA3LTIxIDEwOjM4OjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOiBGaXggbGVhayBpbiB0ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBsZWFrIGluIHRlc3QuCgoyMDA2LTA3LTIwIDIwOjAyOjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGFyc2UuYzogRG8gbm90IGhhbmdlIG9uIHJlY3Vyc2l2ZSB1YXNnZSBvZiBnc3RfcGFyc2VfbGF1bmNoKCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhcnNlLmM6IChnc3RfcGFyc2VfbGF1bmNoKToKCSAgRG8gbm90IGhhbmdlIG9uIHJlY3Vyc2l2ZSB1YXNnZSBvZiBnc3RfcGFyc2VfbGF1bmNoKCkKCjIwMDYtMDctMjAgMTY6MTA6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5jOiBBZGQgc29tZSBtb3JlIGRvY3MsIGNvbW1lbnRzIGFuZCBGSVhNRSAwLjExcyBoZXJlIGFuZCB0aGVyZSBhbmQgIGFsc28gZml4IHNvbWUgdHlwb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIEFkZCBzb21lIG1vcmUgZG9jcywgY29tbWVudHMgYW5kIEZJWE1FIDAuMTFzIGhlcmUgYW5kIHRoZXJlCgkgIGFuZCAgYWxzbyBmaXggc29tZSB0eXBvcy4KCjIwMDYtMDctMjAgMTA6NTA6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0c2VnbWVudC5oOiBDb252ZXJ0IHRhYnMgdG8gc3BhY2VzIGZvciBiZXR0ZXIgcmVhZGFiaWxpdHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIENvbnZlcnQgdGFicyB0byBzcGFjZXMgZm9yIGJldHRlciByZWFkYWJpbGl0eS4KCjIwMDYtMDctMjAgMTA6MjU6MjggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOiB0aGUgdGVzdF9idWZmZXIgdGVzdCBmYWlscyBhdCBsaW5lIDE0MCBvbiBwcGM2NCBhdCB0aGUgZm9sbG93aW5nIGNoZWNrOiAiR1NUX0JVRkZFUl9JTl9DQVBTIGYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svbGlicy9nZHAuYzogKGdzdF9kcF9zdWl0ZSk6CgkgIHRoZSB0ZXN0X2J1ZmZlciB0ZXN0IGZhaWxzIGF0IGxpbmUgMTQwIG9uIHBwYzY0IGF0IHRoZSBmb2xsb3dpbmcKCSAgY2hlY2s6CgkgIGZhaWxfdW5sZXNzIChHU1RfQlVGRkVSX0ZMQUdfSVNfU0VUIChuZXdidWZmZXIsIEdTVF9CVUZGRVJfRkxBR19JTl9DQVBTKSwKCSAgIkdTVF9CVUZGRVJfSU5fQ0FQUyBmbGFnIHNob3VsZCBoYXZlIGJlZW4gY29waWVkICEiKTsKCSAgU2VlIGJ1ZyAjMzQ4MTE0IGZvciBtb3JlIGRldGFpbHMuCgoyMDA2LTA3LTE5IDEyOjQwOjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgRml4IHR5cG9zICgjMzQ4MDAwKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtc2NoZWR1bGluZy54bWw6CgkgICogZ3N0L2dzdHBhZC5jOgoJICBGaXggdHlwb3MgKCMzNDgwMDApLgoKMjAwNi0wNy0xOCAyMDozODo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcHdnL2ludHJvLWJhc2ljcy54bWw6IEZpeCB3cm9uZyBsaW5rcyAoIzM0NzkyNykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2ludHJvLWJhc2ljcy54bWw6CgkgIEZpeCB3cm9uZyBsaW5rcyAoIzM0NzkyNykuCgoyMDA2LTA3LTE4IDE5OjAxOjI1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBtYWtlIC0tZGlzYWJsZS1pbmRleCB3b3JrICgjMzQyNTY0KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGxvYWRfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfeG1sX3JlYWRfY2FjaGUpLCAoZ3N0X3JlZ2lzdHJ5X3htbF9zYXZlX2ZlYXR1cmUpOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgbWFrZSAtLWRpc2FibGUtaW5kZXggd29yayAoIzM0MjU2NCkKCjIwMDYtMDctMTggMDk6NDI6MzEgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgZ3N0LzogVGhlIGF0dGFjaGVkIHBhdGNoIGFkZHMgdHdvIG1pc3NpbmcgZGVmaW5lcyB0byBnc3R0cmFjZS5oIHdoZW4gdHJhY2luZyBpcyBkaXNhYmxlZC4gIEl0IGFsc28gY29ycmVjdHMgb25lIGV4aXN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2ogYXQgYXhpcyBkb3QgY29tPgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0dHJhY2UuaDoKCSAgVGhlIGF0dGFjaGVkIHBhdGNoIGFkZHMgdHdvIG1pc3NpbmcgZGVmaW5lcyB0byBnc3R0cmFjZS5oIHdoZW4gdHJhY2luZwoJICBpcyBkaXNhYmxlZC4gIEl0IGFsc28gY29ycmVjdHMgb25lIGV4aXN0aW5nIGRlZmluZS4KCSAgRml4ZXMgIzM0Nzc1Ni4KCjIwMDYtMDctMTcgMTc6NDA6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgdHdvIGZ1bmN0aW9ucyB0byBjaGVjayBhbmQgY2hhbmdlIHRoZSBTSUdTRUdWIGJlaGF2aW91ciB3aGVuIGxvYWRpbmcgcGx1Z2lucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0LmM6IChnc3Rfc2VndHJhcF9pc19lbmFibGVkKSwgKGdzdF9zZWd0cmFwX3NldF9lbmFibGVkKToKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoX2dzdF9wbHVnaW5fZmF1bHRfaGFuZGxlcl9yZXN0b3JlKToKCSAgQWRkIHR3byBmdW5jdGlvbnMgdG8gY2hlY2sgYW5kIGNoYW5nZSB0aGUgU0lHU0VHViBiZWhhdmlvdXIKCSAgd2hlbiBsb2FkaW5nIHBsdWdpbnMuCgkgIERvbid0IG1lc3Mgd2l0aCB0aGUgU0lHU0VHViBoYW5kbGVyIHdoZW4gd2Ugd2VyZSB0b2xkIG5vdCB0by4KCSAgRml4ZXMgIzM0Nzc5NC4KCSAgQVBJOiBnc3Rfc2VndHJhcF9pc19lbmFibGVkCgkgIEFQSTogZ3N0X3NlZ3RyYXBfc2V0X2VuYWJsZWQKCjIwMDYtMDctMTQgMTY6NDI6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBSZXZlcnQgZml4IGZvciByZWdyZXNzaW9uIGluICMzNDc0MDggYWZ0ZXIgcmVsZWFzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfdXBkYXRlX2xlbmd0aCk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBSZXZlcnQgZml4IGZvciByZWdyZXNzaW9uIGluICMzNDc0MDggYWZ0ZXIgcmVsZWFzZS4KCjIwMDYtMDctMTQgMTY6MjA6MTggKzAwMDAgIEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMEBnbWFpbC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogRnJlZSBpdGVyYXRvciB3aGVuIGRvbmUgKCMzNDczMTEpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMCBhdCBnbWFpbCBjb20+CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF91bmxpbmspOgoJICBGcmVlIGl0ZXJhdG9yIHdoZW4gZG9uZSAoIzM0NzMxMSkuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdXRpbHNfc3VpdGUpOgoJICBBbmQgYWRkIGEgdGVzdCBjYXNlIGZvciB0aGlzLgoKMjAwNi0wNy0xNCAxNTo1Mjo1NSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEJ1bXAgbmFubyBiYWNrIHRvIENWUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJ1bXAgbmFubyBiYWNrIHRvIENWUwoKPT09IHJlbGVhc2UgMC4xMC45ID09PQoKMjAwNi0wNy0xNCAxNTo1MDoxOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IHJlbGVhc2luZyAwLjEwLjksICJPbiB0aGUgcm9hZCBhZ2FpbiIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDctMTMgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgcmVsZWFzaW5nIDAuMTAuOSwgIk9uIHRoZSByb2FkIGFnYWluIgoKMjAwNi0wNy0xMyAxOTo0NzoxNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDYtMDctMTMgMTU6NTE6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBSZXZlcnQgcHVsbC0wIGZpeCBmb3IgcmVsZWFzZS4gRGlzYWJsZSBjaGVjay4gRml4ZXMgIzM0NzQwOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfdXBkYXRlX2xlbmd0aCk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBSZXZlcnQgcHVsbC0wIGZpeCBmb3IgcmVsZWFzZS4gRGlzYWJsZSBjaGVjay4gRml4ZXMgIzM0NzQwOC4KCjIwMDYtMDctMTMgMTQ6MDI6MTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBGaXhlcyAjMzQ3MzM3OiBmYWlsdXJlIHRvIGRlc2VyaWFsaXplIGV2ZW50IHBhY2tldHMgd2l0aCBlbXB0eSBwYXlsb2FkIChvbmx5IGV2Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgKGdzdF9kcF9ldmVudF9mcm9tX3BhY2tldF8xXzApOgoJICBGaXhlcyAjMzQ3MzM3OiBmYWlsdXJlIHRvIGRlc2VyaWFsaXplIGV2ZW50IHBhY2tldHMgd2l0aAoJICBlbXB0eSBwYXlsb2FkIChvbmx5IGV2ZW50IHR5cGUpCgoyMDA2LTA3LTEzIDEzOjU3OjMzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9NYWtlZmlsZS5hbTogZG8gbm90IGluc3RhbGwgYSAuYyBmaWxlIGluIHRoZSBoZWFkZXIgZGlyZWN0b3J5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgZG8gbm90IGluc3RhbGwgYSAuYyBmaWxlIGluIHRoZSBoZWFkZXIgZGlyZWN0b3J5CgoyMDA2LTA3LTEzIDEwOjQ3OjAwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IEdob3N0UGFkIG5vIGxvbmdlciBpbXBsaWNpdGVseSB1c2UgdGhlIHBhZHRlbXBsYXRlcyBvZiB0aGUgdGFyZ2V0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX3NldF90YXJnZXRfdW5sb2NrZWQpOgoJICBHaG9zdFBhZCBubyBsb25nZXIgaW1wbGljaXRlbHkgdXNlIHRoZSBwYWR0ZW1wbGF0ZXMgb2YgdGhlIHRhcmdldHMuCgkgIEZpeGVzICMzNDczODQKCjIwMDYtMDctMTEgMjI6NTU6NDAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA2LTA3LTExIDIwOjQ0OjQ2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgTWVudGlvbiBidWcgIzM0MTAyOSBmaXhlZCBieSBiaWxib2VkJ3MgcHJldmlvdXMgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBNZW50aW9uIGJ1ZyAjMzQxMDI5IGZpeGVkIGJ5IGJpbGJvZWQncyBwcmV2aW91cyBjb21taXQKCjIwMDYtMDctMTEgMjA6MTQ6MjAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgTWFrZSBHc3RWYWx1ZUFycmF5IGNvbXBhcmlzb24gYmUgb3JkZXIgZGVwZW5kZW50IGFzIGRlc2lnbmVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9jb21wYXJlX2xpc3QpLAoJICAoZ3N0X3ZhbHVlX2NvbXBhcmVfYXJyYXkpLCAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgTWFrZSBHc3RWYWx1ZUFycmF5IGNvbXBhcmlzb24gYmUgb3JkZXIgZGVwZW5kZW50IGFzIGRlc2lnbmVkLgoJICBBZGQgY2hlY2tzIGZvciB2YWx1ZSBsaXN0cyBhbmQgdmFsdWUgYXJyYXkgY29tcGFyaXNvbnMuCgkgIEZpeGVzICMzNDcyMjEKCjIwMDYtMDctMTEgMTY6MjA6MDkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IChkZSlhY3RpdmF0ZSBzcmMgcGFkcyBiZWZvcmUgY2FsbGluZyBzdGF0ZV9jaGFuZ2Ugb24gdGhlIGNoaWxkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYWN0aXZhdGVfcGFkcyksCgkgIChpdGVyYXRvcl9hY3RpdmF0ZV9mb2xkX3dpdGhfcmVzeW5jKSwgKGdzdF9iaW5fc3JjX3BhZHNfYWN0aXZhdGUpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgIChkZSlhY3RpdmF0ZSBzcmMgcGFkcyBiZWZvcmUgY2FsbGluZyBzdGF0ZV9jaGFuZ2Ugb24gdGhlIGNoaWxkcy4KCSAgVGhpcyBpcyB0byBhdm9pZCB0aGUgY2FzZSB3aGVyZSBhIHNyYyBnaG9zdHBhZCBpcyBibG9ja2VkIChob2xkaW5nIHRoZQoJICBzdHJlYW0gbG9jayksIHdoaWNoIHdvdWxkIGJsb2NrIHRoZSBkZWFjdGl2YXRpb24gb2YgdGhlIGdob3N0cGFkJ3MKCSAgdGFyZ2V0IHBhZC4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZG9fcXVlcnlfdHlwZSksCgkgIChnc3RfcHJveHlfcGFkX2RvX2V2ZW50KSwgKGdzdF9wcm94eV9wYWRfZG9fcXVlcnkpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19pbnRlcm5hbF9saW5rKSwgKGdzdF9wcm94eV9wYWRfZG9fYnVmZmVyYWxsb2MpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19jaGFpbiksIChnc3RfcHJveHlfcGFkX2RvX2dldHJhbmdlKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fY2hlY2tnZXRyYW5nZSksIChnc3RfcHJveHlfcGFkX2RvX2dldGNhcHMpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19hY2NlcHRjYXBzKSwgKGdzdF9wcm94eV9wYWRfZG9fZml4YXRlY2FwcyksCgkgIChnc3RfcHJveHlfcGFkX2RvX3NldGNhcHMpLCAoZ3N0X3Byb3h5X3BhZF9zZXRfdGFyZ2V0X3VubG9ja2VkKSwKCSAgKGdzdF9wcm94eV9wYWRfc2V0X3RhcmdldCksIChnc3RfcHJveHlfcGFkX2dldF9pbnRlcm5hbCksCgkgIChnc3RfcHJveHlfcGFkX2Rpc3Bvc2UpLCAoZ3N0X3Byb3h5X3BhZF9pbml0KSwKCSAgKGdzdF9naG9zdF9wYWRfcGFyZW50X3NldCksIChnc3RfZ2hvc3RfcGFkX3BhcmVudF91bnNldCksCgkgIChnc3RfZ2hvc3RfcGFkX2NsYXNzX2luaXQpLAoJICAoZ3N0X2dob3N0X3BhZF9pbnRlcm5hbF9kb19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9naG9zdF9wYWRfaW50ZXJuYWxfZG9fYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9naG9zdF9wYWRfZG9fbGluayksIChnc3RfZ2hvc3RfcGFkX2RvX3VubGluayksCgkgIChnc3RfZ2hvc3RfcGFkX2Rpc3Bvc2UpLCAoZ3N0X2dob3N0X3BhZF9uZXdfbm9fdGFyZ2V0KSwKCSAgKGdzdF9naG9zdF9wYWRfbmV3KSwgKGdzdF9naG9zdF9wYWRfc2V0X3RhcmdldCk6CgkgIEdob3N0UGFkcyBub3cgY3JlYXRlIHRoZWlyIGludGVybmFsIEdzdFByb3h5UGFkIGF0IGNyZWF0aW9uIChhbmQgbm90CgkgIHdoZW4gdGhleSdyZSBsaW5rZWQsIGFzIGl0IHdhcyBiZWluZyBkb25lIHByZXZpb3VzbHkpLgoJICBUaGUgaW50ZXJuYWwgYW5kIHRhcmdldCBwYWRzIGFyZSBsaW5rZWQgc3RyYWlnaHQgYXdheS4KCSAgVGhlIGRhdGEgd2lsbCBhbHNvIHRyYXZlbCB0aHJvdWdoIHRoZSBvdGhlciBwYWQgaW4gb3JkZXIgdG8gbWFrZQoJICBwYWQgYmxvY2tpbmcgYW5kIHByb2JlcyBub24taGFja2lzaCAodGhlIHByb2JlL2Jsb2NrIG5vdyByZWFsbHkgaGFwcGVucwoJICBvbiB0aGUgR2hvc3RQYWQgYW5kIG5vdCBvbiB0aGUgdGFyZ2V0KS4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9ibG9ja2VkX2FzeW5jKSwKCSAgKGdzdF9wYWRfbGlua19wcmVwYXJlKSwgKGdzdF9wYWRfcHVzaF9ldmVudCk6CgkgIFJlbW92ZSBwcmV2aW91cyBnaG9zdHBhZCBjcnVmdC4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9wYWRfYWRkX2RhdGFfcHJvYmUpLAoJICAoZ3N0X3BhZF9hZGRfZXZlbnRfcHJvYmUpLCAoZ3N0X3BhZF9hZGRfYnVmZmVyX3Byb2JlKSwKCSAgKGdzdF9wYWRfcmVtb3ZlX2RhdGFfcHJvYmUpLCAoZ3N0X3BhZF9yZW1vdmVfZXZlbnRfcHJvYmUpLAoJICAoZ3N0X3BhZF9yZW1vdmVfYnVmZmVyX3Byb2JlKToKCSAgUmVtb3ZlIHByZXZpb3VzIGdob3N0IHBhZCBjcnVmdC4KCSAgQWRkZWQgbW9yZSBkZXRhaWxlZCBkZWJ1ZyBzdGF0ZW1lbnRzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggdGhlIHRlc3RzdWl0ZSBmb3IgcmVmY291bnRpbmcgY2hhbmdlcy4KCSAgVGhlIGNvbW1lbnRzIGFib3V0IHdobyBoYXMgcmVmZXJlbmNlcyB3ZXJlIGNvcnJlY3QsIGJ1dCB0aGUgcmVmY291bnQKCSAgYmVpbmcgY2hlY2tlZCB3YXNuJ3QgdGhlIHNhbWUgKCE/ISkuCgoyMDA2LTA3LTEwIDE5OjM1OjMyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBNb3JlIGRvY3MgZm9yIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgYWRkIGRvY3MgdG8gZ3RrLWRvYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIE1vcmUgZG9jcyBmb3IgY29uZmlndXJhdGlvbiBvcHRpb25zLCBhZGQgZG9jcyB0byBndGstZG9jLgoKMjAwNi0wNy0xMCAxODoyNzo0MCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgRml4IGJ1aWxkIHdoZW4gZGlzYWJsaW5nIHRyYWNpbmcgKGZpeGVzICMzNDQwMTYpLiBBbHNvIHN0YXJ0IHRvIGRvY3VtZW50IHRoZSBkZWZpbmVzIHRoYXQgZGlzYWJsZSB0aGUgc3ViLXN5c3RlbXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBGaXggYnVpbGQgd2hlbiBkaXNhYmxpbmcgdHJhY2luZyAoZml4ZXMgIzM0NDAxNikuIEFsc28gc3RhcnQgdG8gZG9jdW1lbnQKCSAgdGhlIGRlZmluZXMgdGhhdCBkaXNhYmxlIHRoZSBzdWItc3lzdGVtcy4KCjIwMDYtMDctMTAgMDk6NDI6MjAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0LmM6IGxldCdzIG1ha2UgdmFsZ3JpbmQgaGFwcHkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfZm9ya2luZyk6CgkgIGxldCdzIG1ha2UgdmFsZ3JpbmQgaGFwcHkuLi4KCjIwMDYtMDctMDkgMTY6NTY6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBCZXR0ZXIgcGFkIGFjdGl2YXRpb24gY29kZTogUmVzZXQgdGhlIGNvbGxlY3QgdmFsdWUgdG9vIG9uIHJlc3luYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGFjdGl2YXRlX3BhZHMpLAoJICAoaXRlcmF0b3JfYWN0aXZhdGVfZm9sZF93aXRoX3Jlc3luYyksIChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKToKCSAgQmV0dGVyIHBhZCBhY3RpdmF0aW9uIGNvZGU6IFJlc2V0IHRoZSBjb2xsZWN0IHZhbHVlIHRvbyBvbiByZXN5bmMuCgkgIEFkZCBzb21lIGNvbW1lbnRzLgoKMjAwNi0wNy0wOSAxMzoyNjowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogVXNlIHNvbWUgbW9yZSBtYWNyb3Mgd2hlcmUgaXQgbWFrZXMgc2Vuc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfaW5pdCksIChnc3RfcGFkX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X3BhZF9hY3RpdmF0ZV9wdXNoKToKCSAgVXNlIHNvbWUgbW9yZSBtYWNyb3Mgd2hlcmUgaXQgbWFrZXMgc2Vuc2UuCgkgIEFsbG93IHBhZCBtb2RlIHN3aXRjaGluZyBpbnN0ZWFkIG9mIGFzc2VydGluZy4gV2hlbiBhIHBhZAoJICBpcyBhY3RpdmF0ZWQgaW4gb25lIG1vZGUgYW5kIHdlIGFjdGl2YXRlIGl0IGluIGFub3RoZXIsCgkgIGRlYWN0aXZhdGUgaXQgZmlyc3QgYmVmb3JlIGFjdGl2YXRpbmcgaXQgaW4gYSBkaWZmZXJlbnQgbW9kZS4KCSAgRml4ZXMgIzMyOTE5OC4KCjIwMDYtMDctMDggMTM6MjI6MzIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYyAobWFpbik6IEhhbmRsZSBlcnIgPT0gTlVMTC4gZ3N0L2dzdC5jIChpbml0X3Bvc3QsIGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5KSAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0ci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNy0wOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0b29scy9nc3QtbGF1bmNoLmMgKG1haW4pOiBIYW5kbGUgZXJyID09IE5VTEwuCgkgICogZ3N0L2dzdC5jIChpbml0X3Bvc3QsIGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5KQoJICAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfZm9ya2luZykKCSAgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X25vbmZvcmtpbmcpOiBSZWR1Y2UgI2lmZGVmIHJhdG5lc3QgYnkKCSAgZmFjdG9yaW5nIG91dCB0aGUgcmVnaXN0cnkgc2Nhbm5pbmcgaW50byBzZXBhcmF0ZSBmdW5jdGlvbnMuIERvbid0CgkgIGZvcmsgZm9yIHRoZSByZXNjYW4gaXMgR1NUX1JFR0lTVFJZX0ZPUks9bm87IHVzZWZ1bCBpbiBkZWJ1Z2dpbmcuCgkgIEJldHRlciBlbnZpcm9ubWVudCB2YXIgbmFtZS9pbnRlcmZhY2Ugc3VnZ2VzdGlvbnMgYWNjZXB0ZWQuCgoyMDA2LTA3LTA3IDE3OjE2OjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdG9iamVjdC5jOiBSYW5kb20gbWljcm8tb3B0aW1pc2F0aW9uOiBkb24ndCB1c2UgYSBoYXNoIHRhYmxlIHdpdGggc3RyaW5ncyBhcyBrZXlzIGFuZCB0aGUgdXN1YWwgc3RyZHVwL3N0cmNtcCBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3Rfc2V0X25hbWVfZGVmYXVsdCksCgkgIChnc3Rfb2JqZWN0X3NldF9uYW1lKToKCSAgUmFuZG9tIG1pY3JvLW9wdGltaXNhdGlvbjogZG9uJ3QgdXNlIGEgaGFzaCB0YWJsZQoJICB3aXRoIHN0cmluZ3MgYXMga2V5cyBhbmQgdGhlIHVzdWFsIHN0cmR1cC9zdHJjbXAKCSAgaW52b2x2ZWQsIGJ1dCByYXRoZXIganVzdCB1c2UgdGhlIEdRdWFyayBvZiB0aGUKCSAgdHlwZSBuYW1lIGFzIGtleSwgc2luY2UgaXQgbmVlZHMgdG8gYmUgbG9va2VkIHVwCgkgIGFueXdheSB0byBnZXQgdGhlIHR5cGUgbmFtZSBzdHJpbmcuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggdmFyaW91cyBsZWFrcy4KCjIwMDYtMDctMDcgMTU6NDI6MDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IENhbid0IHVzZSBHUE9JTlRFUl9UT19JTlQgYW5kIEdJTlRfVE9fUE9JTlRFUiB3aXRoIEdUeXBlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoY29tcGFyZV9pbnRlcmZhY2UpLCAoZ3N0X2Jpbl9nZXRfYnlfaW50ZXJmYWNlKSwKCSAgKGdzdF9iaW5faXRlcmF0ZV9hbGxfYnlfaW50ZXJmYWNlKToKCSAgQ2FuJ3QgdXNlIEdQT0lOVEVSX1RPX0lOVCBhbmQgR0lOVF9UT19QT0lOVEVSIHdpdGggR1R5cGVzLgoJICBHVHlwZXMgYXJlIGd1bG9uZ3MgYW5kIHRodXMgdGhlIHRvcCA0IGJ5dGVzIG1pZ2h0IGJlIGN1dAoJICBvZmYgb24gc29tZSBwbGF0Zm9ybXMgd2hlbiBkb2luZyBHUE9JTlRFUl9UT19JTlQsIGxlYWRpbmcKCSAgdG8gaW52YWxpZCBHVHlwZXMgYW5kIGJhZCB0aGluZ3MgaGFwcGVuaW5nLgoJICBBbHNvIGFkZCBhIGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgdHlwZSBwYXNzZWQgaW4gaXMgcmVhbGx5CgkgIGFuIGludGVyZmFjZSB0eXBlLgoKMjAwNi0wNy0wNyAwOTo0NzoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIC5jdnNpZ25vcmU6IElnbm9yZSBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiAuY3ZzaWdub3JlOgoJICBJZ25vcmUgbW9yZS4KCjIwMDYtMDctMDcgMDk6MDk6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBNYWtlIGdzdC1lbGVtZW50LWNoZWNrLSRWRVJTSU9OLm00IGNhbGwgZ3N0LWluc3BlY3QtJFZFUlNJT04gaW5zdGVhZCBvZiB0aGUgdW52ZXJzaW9uZWQgZ3N0LWluc3BlY3QgKCMzMjQxNzYsICMxNjg2NTkpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0LWVsZW1lbnQtY2hlY2subTQ6CgkgICogZ3N0LWVsZW1lbnQtY2hlY2subTQuaW46CgkgIE1ha2UgZ3N0LWVsZW1lbnQtY2hlY2stJFZFUlNJT04ubTQgY2FsbCBnc3QtaW5zcGVjdC0kVkVSU0lPTgoJICBpbnN0ZWFkIG9mIHRoZSB1bnZlcnNpb25lZCBnc3QtaW5zcGVjdCAoIzMyNDE3NiwgIzE2ODY1OSkuCgoyMDA2LTA3LTA2IDE2OjE3OjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuaDogVXNlIGEgdmFsaWQgaW50IGZvciB0aGUgX01FU1NBR0VfQU5ZIGVudW0gdmFsdWUgdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIFVzZSBhIHZhbGlkIGludCBmb3IgdGhlIF9NRVNTQUdFX0FOWSBlbnVtIHZhbHVlIHRvIGF2b2lkIGNvbXBpbGVyCgkgIHdhcm5pbmdzLgoKMjAwNi0wNy0wNiAxNTo0NjoyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBVcGRhdGUgZG9jcy4gYmxvY2tzaXplID09IDAgbm93IG1lYW5zIHRoZSBkZWZhdWx0IGJsb2Nrc2l6ZSB3aGVuIHdvcmtpbmcgaW4gcHVzaCBiYXNlZCBtb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY193YWl0KSwgKGdzdF9iYXNlX3NyY191cGRhdGVfbGVuZ3RoKSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfY2hlY2tfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19jaGVja19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX3BhZF9jaGVja19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLCAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KSwKCSAgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdWxsKToKCSAgVXBkYXRlIGRvY3MuCgkgIGJsb2Nrc2l6ZSA9PSAwIG5vdyBtZWFucyB0aGUgZGVmYXVsdCBibG9ja3NpemUgd2hlbiB3b3JraW5nIGluIHB1c2gKCSAgYmFzZWQgbW9kZS4KCSAgUmVtb3ZlIHNvbWUgcG9pbnRsZXNzIGFzc2VydHMgaW4gX3dhaXQgZnVuY3Rpb24uCgkgIEZpeCBvZmZzZXQvbGVuZ3RoIGNhbGN1bGF0aW9ucyBhbmQgRU9TIGhhbmRsaW5nLiBXZSBjYW4gbm93IHB1bGwgMAoJICBieXRlcyBhcyB3ZWxsLCB3aGljaCBpcyBhbGxvd2VkLgoJICB1c2UgX2NoZWNrX2dldF9yYW5nZSgpIHRvIGRlY2lkZSBpZiB3ZSBjYW4gb3BlcmF0ZSBpbiBfcHVsbCBiYXNlZAoJICBtb2RlLgoJICBGaXggcmVmY291bnRpbmcgbGVhayB3aGVuIGNoZWNrX2dldF9yYW5nZSBmdW5jdGlvbiB3YXMgbm90CgkgIGltcGxlbWVudGVkLgoJICBBUEkgR3N0QmFzZVNyYzo6YmxvY2tzaXplIHJhbmdlIGNhbiBiZSAwIHRvbyBub3cgKGRlZmF1bHQpCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZmlsZXNyY19zdWl0ZSk6CgkgIEFkZGVkIGNoZWNrIHRvIHRlc3QgX2dldF9yYW5nZSgpIGJlaGF2aW91ci4KCjIwMDYtMDctMDYgMTU6MjE6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLio6IExvdHMgb2YgY29tbWVudHMgYW5kIGRvY3MgYWRkZWQgdG8gdGhlIHBhZCBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfY2hhaW5fdW5jaGVja2VkKSwgKGdzdF9wYWRfY2hhaW4pLAoJICAoZ3N0X3BhZF9wdXNoKSwgKGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSksIChnc3RfcGFkX2dldF9yYW5nZSksCgkgIChnc3RfcGFkX3B1bGxfcmFuZ2UpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgTG90cyBvZiBjb21tZW50cyBhbmQgZG9jcyBhZGRlZCB0byB0aGUgcGFkIGZ1bmN0aW9ucy4KCSAgRmxlc2ggb3V0IHRoZSBleHBlY3RlZCBiZWhhdmlvdXIgb2YgdGhlIGdldF9yYW5nZSgpIGZ1bmN0aW9ucy4KCjIwMDYtMDctMDYgMDk6MjE6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBSZW1vdmUgY29tbWEgYXQgZW5kIG9mIGVudW1lcmF0b3IgbGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5oOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RpdGVyYXRvci5oOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgICogZ3N0L2dzdHRhc2suaDoKCSAgUmVtb3ZlIGNvbW1hIGF0IGVuZCBvZiBlbnVtZXJhdG9yIGxpc3QuCgoyMDA2LTA3LTA1IDE5OjU2OjA4ICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi9jb21tb24vOiBBZGQgbmV3IGV4cG9ydGVkIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RkYXRhcHJvdG9jb2wuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJzZ3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IGV4cG9ydGVkIGZ1bmN0aW9ucy4KCjIwMDYtMDctMDUgMTg6MjA6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzogQWRkIHNvbWUgbW9yZSBkb2NzIGhlcmUgYW5kIHRoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzogKGdzdF9wdXNoX3NyY19jaGVja19nZXRfcmFuZ2UpOgoJICBBZGQgc29tZSBtb3JlIGRvY3MgaGVyZSBhbmQgdGhlcmUuCgoyMDA2LTA3LTA1IDE4OjE4OjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBXaGVuIG9wZXJhdGluZyBpbiBwdWxsIG1vZGUgdXBkYXRlIHRoZSBvZmZzZXQgc28gdGhhdCB3ZSByZWFkIHNlcXVlbnRpYWxseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2xvb3ApLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBXaGVuIG9wZXJhdGluZyBpbiBwdWxsIG1vZGUgdXBkYXRlIHRoZSBvZmZzZXQgc28gdGhhdCB3ZQoJICByZWFkIHNlcXVlbnRpYWxseS4KCjIwMDYtMDctMDUgMTg6MTc6MDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogQXZvaWQgc3RyZHVwLiAod2lsbCBoYXBwZW4gaW4gbGlieG1sLCBidXQgaGV5ISkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChyZWFkX3N0cmluZyk6CgkgIEF2b2lkIHN0cmR1cC4gKHdpbGwgaGFwcGVuIGluIGxpYnhtbCwgYnV0IGhleSEpCgkgICogZ3N0L2dzdHVyaS5jOgoJICBBZGQgc29tZSBtb3JlIGRvY3MuCgoyMDA2LTA3LTA1IDE3OjA5OjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgTm8gcG9pbnQgaW4gY2hlY2tpbmcgaWYgdGhlIHNpemUgb2YgdGhlIHN1YmJ1ZmZlciA+IDAsIHRoZSBjb2RlIGhhbmRsZXMgaXQgY29ycmVjbHR5IGFzIGRlbW9uc3RyYXRlZCBieSB1bml0IHRlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKF9nc3RfYnVmZmVyX2NvcHkpLCAoZ3N0X2J1ZmZlcl9jcmVhdGVfc3ViKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfYnVmZmVyX3N1aXRlKToKCSAgTm8gcG9pbnQgaW4gY2hlY2tpbmcgaWYgdGhlIHNpemUgb2YgdGhlIHN1YmJ1ZmZlciA+IDAsIHRoZQoJICBjb2RlIGhhbmRsZXMgaXQgY29ycmVjbHR5IGFzIGRlbW9uc3RyYXRlZCBieSB1bml0IHRlc3QuCgkgIEFsc28gYWRkIGEgdW5pdCB0ZXN0IGZvciB0aGUgemVybyBzaXplZCBfbmV3X2FuZF9hbGxvYyBhbmQKCSAgX2NvcHkuIEZpeGVzICMzNDY2NjMuCgoyMDA2LTA3LTA1IDA4OjE2OjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IE1ha2Ugc3VyZSB0aGUgYnVmZmVyIHdlIHBhc3MgdG8gdHJhbnNmb3JtX2lwIGhhcyBhIHJlZmNvdW50IG9mIDEgYW5kIHRodXMgaXMgd3JpdGFiLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgTWFrZSBzdXJlIHRoZSBidWZmZXIgd2UgcGFzcyB0byB0cmFuc2Zvcm1faXAgaGFzIGEgcmVmY291bnQgb2YKCSAgMSBhbmQgdGh1cyBpcyB3cml0YWJsZS4gRml4ZXMgIzM0MzE5NgoKMjAwNi0wNy0wNCAwOTowMTo1MSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuKjogQWRkICJzZXF1ZW50aWFsIiBwcm9wZXJ0eSwgb2ZmIGJ5IGRlZmF1bHQsIHRvIHVzZSBtYWR2aXNlIGFuZCBoaW50IHRvIHRoZSBrZXJuZWwgdGhhdCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmlsZV9zcmNfaW5pdCksIChnc3RfZmlsZV9zcmNfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9maWxlX3NyY19nZXRfcHJvcGVydHkpLCAoZ3N0X2ZpbGVfc3JjX21hcF9yZWdpb24pOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJICBBZGQgInNlcXVlbnRpYWwiIHByb3BlcnR5LCBvZmYgYnkgZGVmYXVsdCwgdG8gdXNlIG1hZHZpc2UgYW5kIGhpbnQKCSAgdG8gdGhlIGtlcm5lbCB0aGF0IHNlcXVlbnRpYWwgYWNjZXNzIGlzIGRlc2lyZWQuCgkgIFRvdWNoIGFsbCByZXRyaWV2ZWQgcGFnZXMgYnkgZGVmYXVsdCB0byBlbnN1cmUgdGhleSBhcmUgcHVsbGVkCgkgIGludG8gbWVtb3J5LiAoQ2xvc2VzICMzNDU3MjApCgoyMDA2LTA3LTAzIDE3OjQ0OjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBTbWFsbCBkb2NzIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZHluYW1pYy50eHQ6CgkgIFNtYWxsIGRvY3MgdXBkYXRlcy4KCjIwMDYtMDctMDMgMTY6NTc6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBVc2UgR1NsaWNlIHdoZW4gdGhlIGdsaWIgd2UgYnVpbGQgYWdhaW5zdCBpcyA+PSAyLjEwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19uZXdfZW1wdHkpLCAoX2dzdF9jYXBzX2ZyZWUpLAoJICAoZ3N0X2NhcHNfdW5yZWYpLCAoZ3N0X3N0YXRpY19jYXBzX2dldCksCgkgIChnc3RfY2Fwc19hcHBlbmRfc3RydWN0dXJlKToKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19lbnRyeV9uZXcpLCAoX2dzdF9jbG9ja19pZF9mcmVlKToKCSAgVXNlIEdTbGljZSB3aGVuIHRoZSBnbGliIHdlIGJ1aWxkIGFnYWluc3QgaXMgPj0gMi4xMAoKMjAwNi0wNy0wMyAxNjo0NjowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IFNtYWxsIGNsZWFudXAgaW4gcGFkIGFjdGl2YXRpb24gY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOgoJICBTbWFsbCBjbGVhbnVwIGluIHBhZCBhY3RpdmF0aW9uIGNvZGUuCgoyMDA2LTA3LTAzIDE0OjE0OjQ4ICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIFRoZSBhdHRhY2hlZCBwYXRjaCB3aWxsIG1ha2UgdGhlIGluY2x1c2lvbiBvZiBnZXR0ZXh0LmggdW5jb25kaXRpb25hbCBpbiBnc3QvZ3N0LWkxOG4tYXBwLmggYW5kIGdzdC9nc3QtaTE4bi1saWIuaCwgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqIGF0IGF4aXMgZG90IGNvbT4KCSAgKiBnc3QvZ3N0LWkxOG4tYXBwLmg6CgkgICogZ3N0L2dzdC1pMThuLWxpYi5oOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9zaWduYWxfaW5mbyk6CgkgIFRoZSBhdHRhY2hlZCBwYXRjaCB3aWxsIG1ha2UgdGhlIGluY2x1c2lvbiBvZiBnZXR0ZXh0LmggdW5jb25kaXRpb25hbCBpbgoJICBnc3QvZ3N0LWkxOG4tYXBwLmggYW5kIGdzdC9nc3QtaTE4bi1saWIuaCwgYW5kIGl0IHdpbGwgcmVtb3ZlIHRoZSBpbmNsdXNpb24gb2YKCSAgbGliaW50bC5oIGluIHRvb2xzL2dzdC1pbnNwZWN0LmMuCgkgIFRoaXMgYWxsb3dzIHVzZSBvZiAtLWRpc2FibGUtbmxzIGFnYWluIGFuZCBmaXhlcyAjMzQ0NjQyLgoKMjAwNi0wNy0wMyAxMToxMDo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGZpeCBsZWFrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggbGVhawoKMjAwNi0wNy0wMyAxMDozMDo0OSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogSW1wbGVtZW50IHBhZCBibG9ja2luZyBvbiBldmVudHMgYWNjb3JkaW5nIHRvIHBhcnQtYmxvY2sudHh0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChoYW5kbGVfcGFkX2Jsb2NrKSwgKGdzdF9wYWRfcHVzaF9ldmVudCk6CgkgIEltcGxlbWVudCBwYWQgYmxvY2tpbmcgb24gZXZlbnRzIGFjY29yZGluZyB0byBwYXJ0LWJsb2NrLnR4dC4KCSAgTW9yZSBjb21tZW50cyBvbiBiZWhhdmlvdXIuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6ICh0ZXN0X2V2ZW50KToKCSAgU2VuZCBldmVudCB0byBwZWVyIHBhZCBvZiBibG9ja2VkIHBhZCAoZWxzZSBpdCB3aWxsIGJsb2NrKS4KCjIwMDYtMDctMDIgMjM6MjI6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogaWYgd2UgZ2V0IHRoZSB3cm9uZyBtZXNzYWdlLCBnaXZlIHVzIHRoZSB0eXBlcyBhcyBzdHJpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19tZXNzYWdlX2Vycm9yKSwKCSAgKGdzdF9jaGVja19ydW5fc3VpdGUpOgoJICBpZiB3ZSBnZXQgdGhlIHdyb25nIG1lc3NhZ2UsIGdpdmUgdXMgdGhlIHR5cGVzIGFzIHN0cmluZwoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX3N0YXJ0KToKCSAgRml4IGEgdHJhbnNsYXRhYmxlCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBhZGQgYSB0ZXN0IGZvciB0cnlpbmcgdG8gb3BlbiBhIG5vbi1leGlzdGluZyBmaWxlCgoyMDA2LTA3LTAyIDIyOjQ0OjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGFkZCBtYWNyb3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtYWNyb3MKCjIwMDYtMDctMDIgMjI6Mjg6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHJlbW92ZSBkb3VibGUgdmFyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgZG91YmxlIHZhcgoKMjAwNi0wNy0wMiAyMjoyNzozMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICBjbGVhbiBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjbGVhbiBtb3JlCgoyMDA2LTA3LTAyIDIyOjIwOjIwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0Ly5naXRpZ25vcmU6CgkqIGRvY3MvbGlicy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9iZW5jaG1hcmtzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvaGVsbG93b3JsZC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9sYXVuY2gvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvcXVldWUvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvdHlwZWZpbmQvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMveG1sLy5naXRpZ25vcmU6CgkgIG1vYXAgaWdub3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb2FwIGlnbm9yZQoKMjAwNi0wNy0wMiAyMjoxNzozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IGFkZCBhIHRlc3QgZm9yIGFkZGluZyBzZWxmCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9iaW5fc3VpdGUpOgoJICBhZGQgYSB0ZXN0IGZvciBhZGRpbmcgc2VsZgoKMjAwNi0wNy0wMiAyMjowNTo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOiBhZGQgc29tZSBhc3NlcnRfIGFzIGFsaWFzIGZvciBmYWlsX3VubGVzc18qCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGFkZCBzb21lIGFzc2VydF8gYXMgYWxpYXMgZm9yIGZhaWxfdW5sZXNzXyoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0LmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3Rfc3VpdGUpOgoJICBpbmNyZWFzZSB0ZXN0IGNvdmVyYWdlCgoyMDA2LTA3LTAyIDIxOjU0OjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIE1ha2VmaWxlLmFtOiBpbmNsdWRlIGxjb3YubWFrIGZvciBsY292IGNvdmVyYWdlIGdlbmVyYXRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgIGluY2x1ZGUgbGNvdi5tYWsgZm9yIGxjb3YgY292ZXJhZ2UgZ2VuZXJhdGlvbgoJICAqIHRvb2xzL01ha2VmaWxlLmFtOgoJICBhZGQgdG8gQ0xFQU5GSUxFUwoKMjAwNi0wNy0wMiAyMTo1Mjo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICB3aGl0ZXNwYWNlL2RvYyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZS9kb2MgZml4ZXMKCjIwMDYtMDctMDIgMTY6Mjc6MTQgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOiBtb2FwaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6CgkgIG1vYXBpbmcKCjIwMDYtMDctMDIgMTQ6Mzk6MTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiBkb24ndCBzZXQgQ0ZMQUdTIGFuZCBmcmllbmRzIGZvciBnY292LCBkb25lIGZyb20gR1NUX0dDT1Ygbm93CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgZG9uJ3Qgc2V0IENGTEFHUyBhbmQgZnJpZW5kcyBmb3IgZ2NvdiwgZG9uZSBmcm9tIEdTVF9HQ09WIG5vdwoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBjbGVhbiB1cCBnY292IGZpbGVzCgoyMDA2LTA3LTAyIDE0OjM3OjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RjYXBzLmM6IHJlbW92ZSBnc3RfY2Fwc19zaW1wbGlmeTsgaXQgd2FzIG5vdCBkZWNsYXJlZCBhbmQgbm90IHVzZWQgYW5kIGRlcHJlY2F0ZWQgaW4gMC44CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19yZW1vdmVfYW5kX2dldF9zdHJ1Y3R1cmUpOgoJICByZW1vdmUgZ3N0X2NhcHNfc2ltcGxpZnk7IGl0IHdhcyBub3QgZGVjbGFyZWQgYW5kIG5vdCB1c2VkCgkgIGFuZCBkZXByZWNhdGVkIGluIDAuOAoKMjAwNi0wNy0wMiAxNDowNTo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IGRvbid0IHB1dCBlbXB0eSBwYXRocyBvbiBQWVRIT05QQVRICgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgZG9uJ3QgcHV0IGVtcHR5IHBhdGhzIG9uIFBZVEhPTlBBVEgKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICByZW1vdmUgc29tZSBzeW1ib2xzIHRoYXQgYXJlIG5vdCB0aGVyZQoKMjAwNi0wNy0wMiAxMjo1NzoxOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICB1bmJyZWFrIHRlc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVuYnJlYWsgdGVzdAoKMjAwNi0wNy0wMiAxMjo1NDowMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0Y2Fwcy5jOiB3aGl0ZXNwYWNlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19jb21wYXJlX3N0cnVjdHVyZXMpOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfY2Fwc19zdWl0ZSk6CgkgIGFkZCBtb3JlIHRlc3RzCgoyMDA2LTA3LTAyIDEyOjUyOjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDYtMDctMDIgMDk6MDQ6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOiBidWlsZCBkYXRhcHJvdG9jb2wgdGVzdCBieSBsaW5raW5nIHRvIHRoZSBsaWIsIGluc3RlYWQgb2YgY29tcGlsaW5nIHRoZSBzb3VyY2UsIHNvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSAgYnVpbGQgZGF0YXByb3RvY29sIHRlc3QgYnkgbGlua2luZyB0byB0aGUgbGliLCBpbnN0ZWFkIG9mCgkgIGNvbXBpbGluZyB0aGUgc291cmNlLCBzbyB3ZSBnZXQgY292ZXJhZ2UKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6IChldmVudF9mdW5jKSwgKHNldHVwX2ZpbGVzcmMpLAoJICAoY2xlYW51cF9maWxlc3JjKSwgKEdTVF9TVEFSVF9URVNUKSwgKGZpbGVzcmNfc3VpdGUpOgoJICBhZGQgYSB0ZXN0IGZvciBmaWxlc3JjCgoyMDA2LTA3LTAyIDA4OjI2OjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogUHVzaCBjb3ZlcmFnZSBmcm9tIDU5LjA0JSB0byA3MC4wMCUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3N0cnVjdHVyZV9zdWl0ZSk6CgkgIFB1c2ggY292ZXJhZ2UgZnJvbSA1OS4wNCUgdG8gNzAuMDAlCgoyMDA2LTA3LTAyIDAwOjQwOjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogUHVzaCBjb3ZlcmFnZSBmcm9tIDU5LjA0JSB0byA3MC4wMCUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3N0cnVjdHVyZV9zdWl0ZSk6CgkgIFB1c2ggY292ZXJhZ2UgZnJvbSA1OS4wNCUgdG8gNzAuMDAlCgoyMDA2LTA3LTAyIDAwOjM5OjI4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvY2hlY2svLmdpdGlnbm9yZToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sLy5naXRpZ25vcmU6CgkgIG1vYXAgaWdub3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb2FwIGlnbm9yZQoKMjAwNi0wNy0wMiAwMDozODozNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlLy5naXRpZ25vcmU6CgkgIG1vYXAgaWdub3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb2FwIGlnbm9yZQoKMjAwNi0wNy0wMiAwMDozMzo1MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbTogZ3N0LWluc3BlY3QgZXZlcnkgZWxlbWVudDsgdGhpcyBtYWtlcyBzdXJlIHRoYXQgd2UgYWxzbyBnZXQgY292ZXJhZ2Ugb24gZWxlbWVudCdzIGdldC9zZXQgZnUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGdzdC1pbnNwZWN0IGV2ZXJ5IGVsZW1lbnQ7IHRoaXMgbWFrZXMgc3VyZSB0aGF0IHdlIGFsc28gZ2V0CgkgIGNvdmVyYWdlIG9uIGVsZW1lbnQncyBnZXQvc2V0IGZ1bmN0aW9ucwoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfc3VpdGUpOgoJICBQdXNoIGNvdmVyYWdlIGZyb20gNTkuMDQlIHRvIDcwLjAwJQoKMjAwNi0wNy0wMSAyMzoyNjowNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IHNldCBDRkxBR1MgYW5kIGZyaWVuZHMgdG8gLU8wIGlmIGdjb3YgaXMgYmVpbmcgdXNlZCBhZGQgR0NPViBMSUJTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgc2V0IENGTEFHUyBhbmQgZnJpZW5kcyB0byAtTzAgaWYgZ2NvdiBpcyBiZWluZyB1c2VkCgkgIGFkZCBHQ09WIExJQlMKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgICogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJICBhZGQgbWFrZWZpbGUgcnVsZXMgdG8gZ2VuZXJhdGUgZ2NvdiBkYXRhIGFuZCBjbGVhbiB1cAoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBhZGQgYSBjb3ZlcmFnZSB0YXJnZXQgdGhhdCBnZW5lcmF0ZXMgYW4gaHRtbCBvdmVydmlldwoJICBvZiBjb3ZlcmFnZSBkYXRhCgoyMDA2LTA3LTAxIDIzOjE5OjI4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGZpeCBkb2NzIGJ1aWxkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZG9jcyBidWlsZAoKMjAwNi0wNy0wMSAyMDo1Njo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0ZXN0cy9jaGVjay86IHVzZSB0aGUgbmV3IG1hY3JvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzoKCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IChnc3Rfc2lua3Nfc3VpdGUpOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzogKGdzdF9pdGVyYXRvcl9zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfc3VpdGUpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHRhc2suYzogKGdzdF90YXNrX3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9nZHAuYzogKGdzdF9kcF9zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svbGlicy9nc3RuZXRjbGllbnRjbG9jay5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6IChsaWJzYWJpX3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3R5cGVmaW5kaGVscGVyLmM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc3RyZXNzLmM6IChzdHJlc3Nfc3VpdGUpOgoJICB1c2UgdGhlIG5ldyBtYWNybwoKMjAwNi0wNy0wMSAyMDo1NDoyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay4qOiBjcmVhdGUgYSBtYWNybyBhbmQgZnVuY3Rpb24gc28gdGhhdCB0aGUgc2ltcGxlIHVuaXQgdGVzdCBjYXNlIGNhbiBiZSBqdXN0IG9uZSBtYWNybyB0byBjcmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19ydW5fc3VpdGUpOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNyZWF0ZSBhIG1hY3JvIGFuZCBmdW5jdGlvbiBzbyB0aGF0IHRoZSBzaW1wbGUgdW5pdCB0ZXN0CgkgIGNhc2UgY2FuIGJlIGp1c3Qgb25lIG1hY3JvIHRvIGNyZWF0ZSBtYWluKCkKCjIwMDYtMDYtMzAgMTM6MTc6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBGaXggZGVzZXJpYWxpc2F0aW9uIGZyb20gWE1MLiBTZXQgcGFyZW50IG1hbnVhbGx5IGluc3RlYWQgb2YgdXNpbmcgZ3N0X2Jpbl9hZGQoKSwgc2luY2UgZ3N0X2Jpbl9hZGQoKSB3aWxsIHVubGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9yZXN0b3JlX3RoeXNlbGYpOgoJICAqIGdzdC9nc3R4bWwuYzogKGdzdF94bWxfbWFrZV9lbGVtZW50KToKCSAgRml4IGRlc2VyaWFsaXNhdGlvbiBmcm9tIFhNTC4gU2V0IHBhcmVudCBtYW51YWxseQoJICBpbnN0ZWFkIG9mIHVzaW5nIGdzdF9iaW5fYWRkKCksIHNpbmNlIGdzdF9iaW5fYWRkKCkKCSAgd2lsbCB1bmxpbmsgYWxsIHBhZHMgb2YgdGhlIGVsZW1lbnQgYmVpbmcgYWRkZWQuCgkgIEZpeGVzICMzNDE2NjcuCgoyMDA2LTA2LTI4IDE1OjE5OjA4ICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIGdzdC9nc3QuYzogRml4IG1pc3NpbmcgZ19zdHJkdXAoKSBhbmQgZG91YmxlIGZyZWUgd2hlbiB1c2luZyB0aGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgPHBraiBhdCBheGlzIGNvbT4KCSAgKiBnc3QvZ3N0LmM6IChwcmVwYXJlX2Zvcl9sb2FkX3BsdWdpbl9mdW5jKSwgKHNwbGl0X2FuZF9pdGVyYXRlKToKCSAgRml4IG1pc3NpbmcgZ19zdHJkdXAoKSBhbmQgZG91YmxlIGZyZWUgd2hlbiB1c2luZyB0aGUKCSAgLS1nc3QtcGx1Z2luLWxvYWQgY29tbWFuZCBsaW5lIG9wdGlvbiAoIzM0NjA5NykuCgoyMDA2LTA2LTIzIDEzOjE2OjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZm8uYzogUHJvbW90ZSBHU1RfREVCVUdfQ0FURUdPUllfU1RBVElDIGluIGV4YW1wbGUgaW4gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgUHJvbW90ZSBHU1RfREVCVUdfQ0FURUdPUllfU1RBVElDIGluIGV4YW1wbGUgaW4gZG9jcy4KCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIFVzZSBHU1RfREVCVUdfQ0FURUdPUllfU1RBVElDIGhlcmUgdG9vICgjMzQyNTAzKS4KCjIwMDYtMDYtMjMgMTA6MzA6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDogRml4IGJ1ZmZlciBwcm9iZSBleGFtcGxlIGNvbXBpbGF0aW9uIGluCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBGaXggYnVmZmVyIHByb2JlIGV4YW1wbGUgY29tcGlsYXRpb24gaW4KCSAgQURNICgjMzQ1NzA4KS4KCjIwMDYtMDYtMjIgMTc6MDk6MTMgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBXZSBuZWVkIHRvIGRlYWN0aXZhdGUgc3JjIHBhZHMgZmlyc3QgYW5kIHRoZW4gc2luayBwYWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6CgkgIFdlIG5lZWQgdG8gZGVhY3RpdmF0ZSBzcmMgcGFkcyBmaXJzdCBhbmQgdGhlbiBzaW5rIHBhZHMuCgkgIFRoZSByZWFzb24gaXMgdGhlIHNyYyBwYWRzIG1pZ2h0IGJlIGJsb2NraW5nIHdoaWxlIGhvbGRpbmcgdGhlIHN0cmVhbWluZwoJICBsb2NrLCBzbyB3ZSBuZWVkIHRvIGRlYWN0aXZhdGUgdGhlbSBmaXJzdCBzbyB0aGF0IGRlYWN0aXZhdGluZyB0aGUgc2luawoJICBwYWRzIGRvZXNuJ3QgYmxvY2sgKHNpbmNlIGl0IHdpbGwgcmVxdWlyZSB0aGUgc3RyZWFtaW5nIGxvY2spLgoKMjAwNi0wNi0yMiAxNToxMjo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBGb3Jnb3QgdG8gcmVtb3ZlIHR3byB1bm5lZWRlZCB1bnJlZnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIEZvcmdvdCB0byByZW1vdmUgdHdvIHVubmVlZGVkIHVucmVmcy4KCSAgU2ltcGxpZnkgYSBjaGVjayBfaXNfZXF1YWwgYWxscmVhZHkgY2hlY2tzIHRoZSBvYnZpb3VzIGNhc2UuCgoyMDA2LTA2LTIyIDE0OjA5OjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6IFNvbWUgZG9jcyBhYm91dCB3aGF0IHBhZF9ibG9jayBzaG91bGQgZG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJICBTb21lIGRvY3MgYWJvdXQgd2hhdCBwYWRfYmxvY2sgc2hvdWxkIGRvLgoKMjAwNi0wNi0yMiAxMzo1MToxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IEZpeCBjcmFzaGVyIHdoZW4gcGFzc2VkIE5VTEwuIERvYyBjbGFyaWZpY2F0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfcmVwbGFjZSk6CgkgIEZpeCBjcmFzaGVyIHdoZW4gcGFzc2VkIE5VTEwuIERvYyBjbGFyaWZpY2F0aW9uLgoJICBPcHRpbWl6ZSBmb3IgdGhlIHRyaXZpYWwgY2FzZS4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOgoJICBTbWFsbCBjbGVhbnVwcy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19sb29wKToKCSAgU21hbGwgZG9jdW1lbnRhdGlvbiBjbGVhbnVwLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIERvbid0IHVzZSBzaWxseSBnc3RfcGFkX2dldF9uZWdvdGlhdGVkX2NhcHMsIEdTVF9QQURfQ0FQUwoJICBpcyB3aGF0IHdlIG5lZWQgYW5kIGl0IGF2b2lkcyBhIHdob2xlIGxvdCBvZiByZWR1bmRhbnQKCSAgcmVmY291bnQgb3BlcmF0aW9ucy4KCjIwMDYtMDYtMjIgMDg6NTM6NDAgKzAwMDAgIFBoaWxpcCBKw6RnZW5zdGVkdCA8cGhpbGlwQGx5c2F0b3IubGl1LnNlPgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6IEZpeCAnRW1iZWRkaW5nIHN0YXRpYyBlbGVtZW50cycgc2VjdGlvbiB0byB1c2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQaGlsaXAgSsOkZ2Vuc3RlZHQgIDxwaGlsaXAgYXQgbHlzYXRvciBsaXUgc2U+CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIEZpeCAnRW1iZWRkaW5nIHN0YXRpYyBlbGVtZW50cycgc2VjdGlvbiB0byB1c2UKCSAgR1NUX1BMVUdJTl9ERUZJTkVfU1RBVElDICgjMzQ1NjA3KS4KCjIwMDYtMDYtMjEgMTE6MTI6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOiBBdHRlbXB0IHRvICdmaXgnIHNwdXJpb3VzbHkgZmFpbGluZyB0ZXN0IGNhc2U6IGl0IHNlZW1zIGxpa2UgdGhlIHRpbWVvdXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzogKHRlc3Rfc3RvcF9mcm9tX2FwcCk6CgkgIEF0dGVtcHQgdG8gJ2ZpeCcgc3B1cmlvdXNseSBmYWlsaW5nIHRlc3QgY2FzZTogaXQgc2VlbXMgbGlrZSB0aGUKCSAgdGltZW91dCBvZiBoYWxmIGEgc2Vjb25kIGlzIHNpbXBseSB0b28gc21hbGwgd2hlbiB0aGUgc3lzdGVtIGlzIHVuZGVyCgkgIGxvYWQgb3RoZXJ3aXNlLCBhbmQgdGhlIHRpbWVvdXQgZG9lc24ndCByZWFsbHkgc2VlbSB0byBzZXJ2ZSBhbnkKCSAgcGFydGljdWxhciBwdXJwb3NlIGhlcmUuIEdpdmUgdGhlIHBpcGVsaW5lIGEgZmV3IHNlY29uZHMgdG8gcHJlcm9sbAoJICBmaXJzdCwgYW5kIHRoZW4gZ2l2ZSBpdCBhbm90aGVyIGhhbGYgYSBzZWNvbmQgdG8gZ28gZnJvbSBQQVVTRUQgdG8KCSAgUExBWUlORyBhbmQgbWFyc2hhbCB0aGUgbWVzc2FnZSBpbnRvIHRoZSBtYWluIHRocmVhZC4KCjIwMDYtMDYtMjEgMTA6MTQ6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtZmVlZGJhY2stbS5tOiBEb24ndCBvbmx5IHVzZSB1bnZlcnNpb25lZCB0b29scywgdHJ5IHZlcnNpb25lZCB0b29scyBhcyB3ZWxsICgjMzQ1MDg2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWZlZWRiYWNrLW0ubToKCSAgRG9uJ3Qgb25seSB1c2UgdW52ZXJzaW9uZWQgdG9vbHMsIHRyeSB2ZXJzaW9uZWQgdG9vbHMgYXMgd2VsbAoJICAoIzM0NTA4NikuCgoyMDA2LTA2LTIxIDEwOjAxOjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJ1cy5jOiBGaXggc29tZSB0eXBvcywgbWFrZSBkb2NzIG1vcmUgZXhwbGljaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfY2xhc3NfaW5pdCk6CgkgIEZpeCBzb21lIHR5cG9zLCBtYWtlIGRvY3MgbW9yZSBleHBsaWNpdC4KCjIwMDYtMDYtMjAgMDg6NDA6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogQWRkZWQgc29tZSBtb3JlIGdob3N0cGFkIHRlc3RzLCBtYWlubHkgYmxvY2tpbmcgYW5kIHByb2Jlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChibG9ja19jYWxsYmFjayksCgkgIChHU1RfU1RBUlRfVEVTVCksIChnc3RfZ2hvc3RfcGFkX3N1aXRlKToKCSAgQWRkZWQgc29tZSBtb3JlIGdob3N0cGFkIHRlc3RzLCBtYWlubHkgYmxvY2tpbmcKCSAgYW5kIHByb2Jlcy4KCjIwMDYtMDYtMTkgMDg6NTY6NDggKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBsYXRlc3QgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbGF0ZXN0IHVwZGF0ZXMKCjIwMDYtMDYtMTYgMTY6Mjg6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLio6IENoZWNrIGlmIHdlIGNhbiBzZWVrIGluIHRoZSBmaWxlIGluc3RlYWQgb2YgYXNzdW1pbmcgd2UgYWx3YXlzIGNhbi4gUG9zdCBhbiBlcnJvciB3aGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19vcGVuX2ZpbGUpLAoJICAoZ3N0X2ZpbGVfc2lua19jbG9zZV9maWxlKSwgKGdzdF9maWxlX3NpbmtfZG9fc2VlayksCgkgIChnc3RfZmlsZV9zaW5rX2V2ZW50KSwgKGdzdF9maWxlX3NpbmtfcmVuZGVyKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkgIENoZWNrIGlmIHdlIGNhbiBzZWVrIGluIHRoZSBmaWxlIGluc3RlYWQgb2YgYXNzdW1pbmcKCSAgd2UgYWx3YXlzIGNhbi4gUG9zdCBhbiBlcnJvciB3aGVuIHdlIGFyZSBhc2tlZCB0byBzZWVrIGluIGEKCSAgbm9uLXNlZWthYmxlIGZpbGUgKGxpa2UgYSBmaWZvKS4gRml4ZXMgIzM0MzMxMi4KCSAgU29tZSBjbGVhbnVwcy4KCjIwMDYtMDYtMTYgMTQ6MzE6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLjEuaW46IFVuLWdhcmJsZSAoZm91cmNjKSBiaXQgaW4gZmlsdGVyZWQgY2FwcyBzZWN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIFVuLWdhcmJsZSAoZm91cmNjKSBiaXQgaW4gZmlsdGVyZWQgY2FwcyBzZWN0aW9uLgoKMjAwNi0wNi0xNiAwOTozOTo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsLzogRG9uJ3QgbGVhayBidXMgcmVmZXJlbmNlIGluIHNhbXBsZSBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6CgkgIERvbid0IGxlYWsgYnVzIHJlZmVyZW5jZSBpbiBzYW1wbGUgY29kZS4KCjIwMDYtMDYtMTYgMDg6MzA6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBhdXRvZ2VuLnNoOiBBZGQgZGVmYXVsdCBmb3IgbmV3IC0tZW5hYmxlLXBsdWdpbi1kb2NzIHN3aXRjaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogYXV0b2dlbi5zaDoKCSAgQWRkIGRlZmF1bHQgZm9yIG5ldyAtLWVuYWJsZS1wbHVnaW4tZG9jcyBzd2l0Y2guCgkgICogY29uZmlndXJlLmFjOgoJICBVc2UgbmV3IEdTVF9QTFVHSU5fRE9DUyBtYWNybyB0byBjaGVjayBmb3IgcHl4bWwgZXRjLgoJICBGaXhlcyAjMzQ0MDM5LgoJICAqIGRvY3MvTWFrZWZpbGUuYW06CgkgIFVzZSBuZXcgRU5BQkxFX1BMVUdJTl9ET0NTIGNvbmRpdGlvbmFsLgoKMjAwNi0wNi0xNCAxMDozNDoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogTWFrZSBpdCBjbGVhciB3aXRoIGEgRklYTUUgYW5kIGEgcmVhbCBkZWZpbmUgd2hhdCB0aGUgI2lmIDAgcHJldmlvdXNseSBkaXNhYmxlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX3F1ZXJ5X2R1cmF0aW9uX2RvbmUpLCAoZ3N0X2Jpbl9xdWVyeSk6CgkgIE1ha2UgaXQgY2xlYXIgd2l0aCBhIEZJWE1FIGFuZCBhIHJlYWwgZGVmaW5lIHdoYXQgdGhlICNpZiAwCgkgIHByZXZpb3VzbHkgZGlzYWJsZWQuCgoyMDA2LTA2LTE0IDEwOjMxOjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS86IERvbid0IHJhbmRvbWx5IGFuZCBzaWxlbnRseSByZXNldCBhIHNlZ21lbnQgd2hlbiB0aGUgZm9ybWF0IGNoYW5nZXMgYXMgdGhpcyBpcyBhIGJ1ZyBzb21ld2hlcmUgdXBzdHJlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29uZmlndXJlX3NlZ21lbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19ldmVudGZ1bmMpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpOgoJICBEb24ndCByYW5kb21seSBhbmQgc2lsZW50bHkgcmVzZXQgYSBzZWdtZW50IHdoZW4gdGhlIGZvcm1hdAoJICBjaGFuZ2VzIGFzIHRoaXMgaXMgYSBidWcgc29tZXdoZXJlIHVwc3RyZWFtLiBGaXhlcyAjMzMwMzc5LgoKMjAwNi0wNi0xNCAwODoyNjo1MyArMDAwMCAgV291dGVyIFBhZXNlbiA8d291dGVyQGthbmdhcm9vdC5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogRml4IGNvbnRyb2xsaW5nIG9mIGZsb2F0IHByb3BlcnRpZXMgKCMzNDQ4NDkpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFdvdXRlciBQYWVzZW4gIDx3b3V0ZXIgYXQga2FuZ2Fyb290IG5ldD4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X25ldyk6CgkgIEZpeCBjb250cm9sbGluZyBvZiBmbG9hdCBwcm9wZXJ0aWVzICgjMzQ0ODQ5KS4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgKGdzdF90ZXN0X21vbm9fc291cmNlX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfdGVzdF9tb25vX3NvdXJjZV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3Rlc3RfbW9ub19zb3VyY2VfY2xhc3NfaW5pdCksIChHU1RfU1RBUlRfVEVTVCk6CgkgIFdoaWxlIHdlJ3JlIGF0IGl0LCBhZGQgc29tZSBmbG9hdCBzdHVmZiB0byB1bml0IHRlc3QuCgoyMDA2LTA2LTEzIDE5OjI0OjM0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvOiBhZGQgYSBnZHAgaW1hZ2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9SRUFETUU6CgkgICogZG9jcy9pbWFnZXMvZ2RwLWhlYWRlci5zdmc6CgkgIGFkZCBhIGdkcCBpbWFnZQoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2xpYnMvZ2RwLWhlYWRlci5wbmc6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICBhZGQgaXQgdG8gdGhlIEFQSSBkb2NzCgkgICogZG9jcy9tYW51YWwvaW50cm8tbW90aXZhdGlvbi54bWw6CgkgIGZpeCB0eXBvCgoyMDA2LTA2LTEzIDE2OjQxOjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBJZiB0aGUgZm9yaygpJ2VkIGNoaWxkIHByb2Nlc3MgY2FuJ3Qgd3JpdGUgdGhlIHVwZGF0ZWQgcmVnaXN0cnkgY2FjaGUgZmlsZSB0byBkaXNrIGZvciBzb21lIHJlYXNvbiwgbWFrZSBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKHNjYW5fYW5kX3VwZGF0ZV9yZWdpc3RyeSksIChpbml0X3Bvc3QpOgoJICBJZiB0aGUgZm9yaygpJ2VkIGNoaWxkIHByb2Nlc3MgY2FuJ3Qgd3JpdGUgdGhlIHVwZGF0ZWQgcmVnaXN0cnkgY2FjaGUKCSAgZmlsZSB0byBkaXNrIGZvciBzb21lIHJlYXNvbiwgbWFrZSBpdCBleGl0IHdpdGggYSBmYWlsdXJlIGV4aXQgY29kZSwKCSAgc28gdGhhdCB0aGUgcGFyZW50IGNhbiB0aGVuIHJlLXNjYW4gdGhlIHBsdWdpbnMgaXRzZWxmIGFuZCB1cGRhdGUgdGhlCgkgIHJlZ2lzdHJ5IHN0cnVjdHVyZXMgaW4gbWVtb3J5IGFuZCB3b3JrIHdpdGggdGhhdCAocmF0aGVyIHRoYW4gZmFpbGluZwoJICB3aGVuIGNyZWF0aW5nIGVsZW1lbnRzIGJlY2F1c2Ugc2VlbWluZ2x5IG5vIHBsdWdpbnMgYXJlIGF2YWlsYWJsZSkuCgkgIFJlZmFjdG9yIHJlZ2lzdHJ5IHNjYW5uaW5nIGNvZGUgaW50byBzZXBhcmF0ZSBmdW5jdGlvbiBmb3IgdGhpcyBhbmQKCSAgYWxzbyBzZXBhcmF0ZSBmb3JrKCkgYW5kIG5vbi1mb3JrKCkgY29kZSBwYXRocy4gRml4ZXMgIzM0NDc0OC4KCjIwMDYtMDYtMTMgMTY6MjQ6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDogRml4IHdyb25nIFBsdWdpbkRlc2MuIEZpeGVzICMzNDQ3NTUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBGaXggd3JvbmcgUGx1Z2luRGVzYy4gRml4ZXMgIzM0NDc1NS4KCjIwMDYtMDYtMTMgMTM6MzA6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogRml4IHNpbGx5IGJ1ZyB0aGF0IHByZXZlbnRlZCB1cyBmcm9tIGNyZWF0aW5nIH4vLmdzdHJlYW1lci0wLjEwIGFuZCB3cml0aW5nIHRoZSByZWdpc3RyeSBpbiBvbmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChnc3RfcmVnaXN0cnlfeG1sX3dyaXRlX2NhY2hlKToKCSAgRml4IHNpbGx5IGJ1ZyB0aGF0IHByZXZlbnRlZCB1cyBmcm9tIGNyZWF0aW5nCgkgIH4vLmdzdHJlYW1lci0wLjEwIGFuZCB3cml0aW5nIHRoZSByZWdpc3RyeSBpbiBvbmUKCSAgZ28gKHRoZSBmaXJzdCBjYWxsIHRvIGdfbWtzdGVtcCgpIHdvdWxkIG92ZXJ3cml0ZSB0aGUKCSAgcGxhY2Vob2xkZXIgaW4gdGhlIHRlbXBsYXRlIHN0cmluZywgc28gdGhlIHNlY29uZCBjYWxsCgkgIHRvIGdfbWtzdGVtcCgpIGFmdGVyIGNyZWF0aW5nIHRoZSBtaXNzaW5nIGRpcmVjdG9yeQoJICB3b3VsZCB0aGVuIGVycm9yIG91dCB3aXRoICdpbnZhbGlkIGFyZ3VtZW50JykuCgoyMDA2LTA2LTEzIDExOjE3OjAyICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdC5jOiBGcmVlIHN0cmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgRnJlZSBzdHJpbmcuCgoyMDA2LTA2LTEzIDA4OjIwOjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IHJlbW92ZSBHTGliIDIuNiBjb21wYXRpYmlsaXR5IGNvZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSAgKiBnc3QvZ2xpYi1jb21wYXQuYzoKCSAgKiBnc3QvZ2xpYi1jb21wYXQuaDoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9zZXJpYWxpemVfZmxhZ3MpOgoJICByZW1vdmUgR0xpYiAyLjYgY29tcGF0aWJpbGl0eSBjb2RlCgoyMDA2LTA2LTEyIDE2OjUwOjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L3BhcnNlL01ha2VmaWxlLmFtOiBGaXggYnVpbGQgd2l0aCAnbWFrZSAtaiBOJyBldmVuIG1vcmUgKCMzNDAwMTYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIEZpeCBidWlsZCB3aXRoICdtYWtlIC1qIE4nIGV2ZW4gbW9yZSAoIzM0MDAxNikuCgoyMDA2LTA2LTEyIDA5OjM3OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogRml4IGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEZpeCBkb2NzLgoKMjAwNi0wNi0xMiAwOToyOTo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IFVzZSBHX1VOTElLRUxZIHRvIGhlbHAgdGhlIGNvbXBpbGVyIGEgYml0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfc2V0X2R1cmF0aW9uKSwKCSAgKGdzdF9zZWdtZW50X3NldF9sYXN0X3N0b3ApLCAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspLAoJICAoZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnRfZnVsbCksIChnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSksCgkgIChnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUpLCAoZ3N0X3NlZ21lbnRfY2xpcCk6CgkgIFVzZSBHX1VOTElLRUxZIHRvIGhlbHAgdGhlIGNvbXBpbGVyIGEgYml0LgoKMjAwNi0wNi0xMiAwOToyODozNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAc29uaWNwdWxzZS5kZT4KCgkgIGdzdC86IGNvbnN0aWZ5IHF1YXJrIHJlZ2lzdHJhdGlvbiBzdHJpbmdzLiBGaXhlcyAjMzQ0MTE1CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU3RlZmFuIEtvc3QgPGVuc29uaWMgYXQgc29uaWNwdWxzZSBkb3QgZGU+CgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9jaGFpbl91bmNoZWNrZWQpLCAoZ3N0X3BhZF9jaGFpbiksCgkgIChnc3RfcGFkX3B1c2gpOgoJICBjb25zdGlmeSBxdWFyayByZWdpc3RyYXRpb24gc3RyaW5ncy4gRml4ZXMgIzM0NDExNQoJICBBdm9pZCB1bm5lZWRlZCB0eXBlIGNoZWNraW5nIGlzIF9wYWRfcHVzaCgpIGJ5IGludGVybmFsbHkKCSAgY2FsbGluZyBnc3RfcGFkX2NoYWluX3VuY2hlY2tlZCgpLgoKMjAwNi0wNi0xMiAwOToyMzo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogSW5pdCBfdHlwZSBmb3IgY29uc2lzdGVuY3kuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfZ2V0X3R5cGUpLCAoZ3N0X2J1ZmZlcl9maW5hbGl6ZSksCgkgIChfZ3N0X2J1ZmZlcl9jb3B5KSwgKGdzdF9idWZmZXJfaXNfbWV0YWRhdGFfd3JpdGFibGUpLAoJICAoZ3N0X3N1YmJ1ZmZlcl9maW5hbGl6ZSksIChnc3RfYnVmZmVyX2NyZWF0ZV9zdWIpLAoJICAoZ3N0X2J1ZmZlcl9pc19zcGFuX2Zhc3QpLCAoZ3N0X2J1ZmZlcl9zcGFuKToKCSAgSW5pdCBfdHlwZSBmb3IgY29uc2lzdGVuY3kuCgkgIFVzZSBfRkxBR1MgbWFjcm8gdG8gYXZvaWQgdHlwZSBjaGVjay4KCSAgQXZvaWQgdW5uZWVkZWQgdHlwZSBjaGVja3MgaW4gc3ViYnVmZXIgY29kZS4KCjIwMDYtMDYtMTIgMDk6MTc6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBVc2UgX0NBU1QgbWFjcm9zIHRvIGF2b2lkIHVubmVlZGVkIHR5cGUgY2hlY2tpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGdzdF9kZWJ1Z19oZWxwKToKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2ZpbmFsaXplKSwgKGdzdF9wbHVnaW5fbGlzdF9mcmVlKToKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiAoZ3N0X3BsdWdpbl9mZWF0dXJlX2ZpbmFsaXplKSwKCSAgKGdzdF9wbHVnaW5fZmVhdHVyZV9saXN0X2ZyZWUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2FkZF9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2FkZF9mZWF0dXJlKSwgKGdzdF9yZWdpc3RyeV9wbHVnaW5fZmlsdGVyKSwKCSAgKGdzdF9yZWdpc3RyeV9mZWF0dXJlX2ZpbHRlciksIChnc3RfcmVnaXN0cnlfZmluZF9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2ZpbmRfZmVhdHVyZSksIChnc3RfcmVnaXN0cnlfZ2V0X3BsdWdpbl9saXN0KSwKCSAgKGdzdF9yZWdpc3RyeV9sb29rdXBfZmVhdHVyZV9sb2NrZWQpLCAoZ3N0X3JlZ2lzdHJ5X2xvb2t1cF9sb2NrZWQpOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAobG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV94bWxfcmVhZF9jYWNoZSksIChnc3RfcmVnaXN0cnlfeG1sX3dyaXRlX2NhY2hlKToKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X21pbmlfb2JqZWN0X3VucmVmKSwKCSAgKGdzdF9taW5pX29iamVjdF9yZXBsYWNlKSwgKGdzdF92YWx1ZV9taW5pX29iamVjdF9mcmVlKSwKCSAgKGdzdF92YWx1ZV9taW5pX29iamVjdF9jb3B5KToKCSAgVXNlIF9DQVNUIG1hY3JvcyB0byBhdm9pZCB1bm5lZWRlZCB0eXBlIGNoZWNraW5nLgoJICBBZGRlZCBzb21lIG1vcmUgR19VTkxJS0VMWS4KCjIwMDYtMDYtMTIgMDk6MTE6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmg6IEF2b2lkIHVubmVlZGVkIHR5cGUgY2hlY2tpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgQXZvaWQgdW5uZWVkZWQgdHlwZSBjaGVja2luZy4KCSAgQVBJOiBHU1RfQlVGRkVSX0lTX0RJU0NPTlQKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBBdm9pZCB0eXBlIGNoZWNrIGluIGZsYWcgYWNjZXNzb3IuCgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgIEFkZCBfQ0FTVCBtYWNyb3MuCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9DQVNUCgkgIEFQSTogR1NUX1BMVUdJTl9DQVNUCgkgIEFQSTogR1NUX1BMVUdJTl9GRUFUVVJFX0NBU1QKCjIwMDYtMDYtMTIgMDk6MDY6MDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0b2JqZWN0LmM6IEFkZCBHX1VOTElLRUxZIGluIHR5cGUgcmVnaXN0cmF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2dldF90eXBlKSwgKGdzdF9vYmplY3RfcmVmKSwKCSAgKGdzdF9vYmplY3RfdW5yZWYpOgoJICBBZGQgR19VTkxJS0VMWSBpbiB0eXBlIHJlZ2lzdHJhdGlvbi4KCSAgQXZvaWQgdHlwZSBjaGVjayBpbiBfcmVmL191bnJlZiBzaW5jZSB0aGF0IGlzIGFsc28KCSAgZG9uZSBpbiBnbGliLgoKMjAwNi0wNi0xMiAwODo1NToyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBHX1VOTElLRUxZIGluIHR5cGUgcmVnaXN0cmF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzogKGdzdF9nX2Vycm9yX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzogKGdzdF9wYWRfdGVtcGxhdGVfZ2V0X3R5cGUpLAoJICAoZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChnc3RfdGFnX2xpc3RfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuYzogKGdzdF90YWdfc2V0dGVyX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6IChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3R1cmkuYzogKGdzdF91cmlfaGFuZGxlcl9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfZGF0ZV9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHhtbC5jOiAoZ3N0X3htbF9nZXRfdHlwZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfdHlwZSksCgkgIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfdHlwZSk6CgkgIEFkZCBHX1VOTElLRUxZIGluIHR5cGUgcmVnaXN0cmF0aW9uLgoKMjAwNi0wNi0xMiAwODo1MToyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IFByb3Blcmx5IHByaW50IGVudW0gdmFsdWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfc2lnbmFsX2luZm8pOgoJICBQcm9wZXJseSBwcmludCBlbnVtIHZhbHVlcy4KCjIwMDYtMDYtMTIgMDg6NDc6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0aW5mby4qOiBBZGQgc29tZSBHX1tVTl1MSUtFTFkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6IChnc3RfZGVidWdfc2V0X2FjdGl2ZSksCgkgIChnc3RfZGVidWdfY2F0ZWdvcnlfc2V0X3RocmVzaG9sZCksIChfZ3N0X2RlYnVnX25hbWVvZl9mdW5jcHRyKToKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBBZGQgc29tZSBHX1tVTl1MSUtFTFkuCgkgIE1haW50YWluIF9fZ3N0X2RlYnVnX21pbiB0byBhdm9pZCBmb3JtYXR0aW5nIHRoZSBhcmd1bWVudHMgb2YKCSAgZGVidWcgbWVzc2FnZXMgdGhhdCB3aWxsIGJlIGRyb3BwZWQgYW55d2F5IHRvIGF2b2lkIGEgbG90IG9mCgkgIG92ZXJoZWFkIGZyb20gdGhlIGRlYnVnZ2luZyBzeXN0ZW0uCgoyMDA2LTA2LTExIDIwOjM3OjQxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwby9QT1RGSUxFUy4qOiBhZGQgbWlzc2luZyBmaWxlcyBjb250YWluaW5nIHRyYW5zbGF0YWJsZSBzdHJpbmdzLCB0ZWxsIGludGx0b29sIGFib3V0IG9uZSBleGNlcHRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcG8vUE9URklMRVMuaW46CgkgICogcG8vUE9URklMRVMuc2tpcDoKCSAgYWRkIG1pc3NpbmcgZmlsZXMgY29udGFpbmluZyB0cmFuc2xhdGFibGUgc3RyaW5ncywgdGVsbCBpbnRsdG9vbCBhYm91dAoJICBvbmUgZXhjZXB0aW9uCgoyMDA2LTA2LTExIDE3OjI4OjE5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9saWJzLy5jdnNpZ25vcmU6IGFkZCB0ZXN0LWJpbmFyeSB0byBpZ25vcmUgbGlzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzLy5jdnNpZ25vcmU6CgkgIGFkZCB0ZXN0LWJpbmFyeSB0byBpZ25vcmUgbGlzdAoKMjAwNi0wNi0xMSAxNzowMzowNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDogcmVvcmRlciAocHV0IGRwIGludG8gYSBjaGFwdGVyKSBhbmQgaW5kZW50CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgIHJlb3JkZXIgKHB1dCBkcCBpbnRvIGEgY2hhcHRlcikgYW5kIGluZGVudAoKMjAwNi0wNi0xMSAxMTo1NjozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGRvY3MvcmFuZG9tL2F1dG90b29sczoKCSAgYWRkIG5vdGVzIG9uIG91ciBhdXRvdG9vbHMgc2V0dXAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBub3RlcyBvbiBvdXIgYXV0b3Rvb2xzIHNldHVwCgoyMDA2LTA2LTEwIDE3OjMyOjUzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIGJhY2sgdG8gSEVBRAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBIRUFECgo9PT0gcmVsZWFzZSAwLjEwLjggPT09CgoyMDA2LTA2LTEwIDE3OjA2OjMzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICByZWxlYXNpbmcgMC4xMC44CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC4xMC44CgoyMDA2LTA2LTEwIDExOjUxOjU4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3QuYzogbW92ZSBwaWQgZGVjbGFyYXRpb24gdG8gZGVjbGFyYXRpb24gYmxvY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgbW92ZSBwaWQgZGVjbGFyYXRpb24gdG8gZGVjbGFyYXRpb24gYmxvY2sKCjIwMDYtMDYtMTAgMTE6NDc6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdC5jOiB1c2UgX2V4aXQoKSBpbnN0ZWFkIG9mIGV4aXQoKSBpbiBvdXIgZm9ya2VkIGNoaWxkOyB0aGlzIGVuc3VyZXMgdGhhdCBub25lIG9mIHRoZSByZWdpc3RlcmVkIGV4aXQgaGFuZGxlcnMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgIHVzZSBfZXhpdCgpIGluc3RlYWQgb2YgZXhpdCgpIGluIG91ciBmb3JrZWQgY2hpbGQ7IHRoaXMgZW5zdXJlcwoJICB0aGF0IG5vbmUgb2YgdGhlIHJlZ2lzdGVyZWQgZXhpdCBoYW5kbGVycyBmcm9tIHdoYXRldmVyIGlzIHVzaW5nCgkgIEdTdHJlYW1lciBnZXQgZXhlY3V0ZWQuICBUaGlzIGZpeGVzIGdub21lLW1peGVyLWFwcGxldCBmYWlsaW5nCgkgIHRvIGxvYWQsIGJlY2F1c2UgT1JCaXQgd291bGQgc2h1dCBkb3duLgoJICBTcG90dGVkIGJ5OiBFZHdhcmQgSGVydmV5ICA8ZWR3YXJkQGZsdWVuZG8uY29tPgoJICBGaXggc3VnZ2VzdGVkIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyICA8dGltIGF0IGNlbnRyaWN1bGFyIGRvdCBuZXQ+CgkgIEZpeGVzICMzNDQ0NzQKCjIwMDYtMDYtMDkgMTg6NTI6MDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiBiYWNrIHRvIFRSVU5LCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA2LTA5ICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlICA8dGhvbWFzIGF0IGFwZXN0YWFydCBkb3Qgb3JnPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBUUlVOSwoKPT09IHJlbGVhc2UgMC4xMC43ID09PQoKMjAwNi0wNi0wOSAxODo0OToyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5zaWduYWxzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcmVsZWFzaW5nIDAuMTAuNwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzaW5nIDAuMTAuNwoKMjAwNi0wNi0wNyAxMDo0NjowNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICAwLjEwLjYuMiBwcmVyZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBwby9hZi5wbzoKCSAgKiBwby9hei5wbzoKCSAgKiBwby9iZy5wbzoKCSAgKiBwby9jYS5wbzoKCSAgKiBwby9jcy5wbzoKCSAgKiBwby9kZS5wbzoKCSAgKiBwby9lbl9HQi5wbzoKCSAgKiBwby9mci5wbzoKCSAgKiBwby9pdC5wbzoKCSAgKiBwby9uYi5wbzoKCSAgKiBwby9ubC5wbzoKCSAgKiBwby9ydS5wbzoKCSAgKiBwby9zcS5wbzoKCSAgKiBwby9zci5wbzoKCSAgKiBwby9zdi5wbzoKCSAgKiBwby90ci5wbzoKCSAgKiBwby91ay5wbzoKCSAgKiBwby92aS5wbzoKCSAgKiBwby96aF9DTi5wbzoKCSAgKiBwby96aF9UVy5wbzoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIDAuMTAuNi4yIHByZXJlbGVhc2UKCjIwMDYtMDYtMDcgMDg6Mzg6MzAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBGaXggbGVhayBzcG90dGVkIGJ5IGNvdmVyaXR5IGNoZWNrZXIuIEZpeGVzICMzNDM4MjcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfZ3R5cGVfcmVzb2x2ZXIpOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IChwcmludF9wbHVnaW5faW5mbyk6CgkgIEZpeCBsZWFrIHNwb3R0ZWQgYnkgY292ZXJpdHkgY2hlY2tlci4gRml4ZXMgIzM0MzgyNwoJICBGaXggYW5vdGhlciBvdGhlciBsZWFrIGZvdW5kIGJ5IHBhb2xvIGJvcmVsbGkuCgoyMDA2LTA2LTA2IDE2OjUyOjU5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjNjQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSAgaWZkZWYgTE9BRFNBVkUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlmZGVmIExPQURTQVZFCgoyMDA2LTA2LTA2IDE1OjE4OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbGlicy90bXBsL2dzdGNvbnRyb2wuc2dtbDoKCSAgcmVtb3ZlIG9sZCBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgb2xkIGRvY3MKCjIwMDYtMDYtMDYgMTQ6NTE6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkgIHRlcm1pbmF0ZSBpZmRlZgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGVybWluYXRlIGlmZGVmCgoyMDA2LTA2LTA2IDE0OjMyOjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbGlicy90bXBsL2dzdGJ5dGVzdHJlYW0uc2dtbDoKCSAgcmVtb3ZlIHVudXNlZCB0bXBsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgdW51c2VkIHRtcGwKCjIwMDYtMDYtMDYgMTQ6Mjk6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgYWRkIG5vdGUgdG8gZG9jcyBhYm91dCBHRFAgdmVyc2lvbmluZzsgcmVtb3ZlIHRtcGwgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG5vdGUgdG8gZG9jcyBhYm91dCBHRFAgdmVyc2lvbmluZzsgcmVtb3ZlIHRtcGwgZmlsZQoKMjAwNi0wNi0wNiAxNDoyNDowMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLio6IEFQSTogYWRkIGEgR3N0RFBQYWNrZXRpemVyIG9iamVjdCwgYW5kIGNyZWF0ZS9mcmVlIGZ1bmN0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIChnc3RfZHBfaGVhZGVyX2Zyb21fYnVmZmVyX2FueSksIChnc3RfZHBfcGFja2V0X2Zyb21fY2Fwc19hbnkpLAoJICAoZ3N0X2RwX3ZlcnNpb25fZ2V0X3R5cGUpLCAoZ3N0X2RwX2luaXQpLAoJICAoZ3N0X2RwX2hlYWRlcl9mcm9tX2J1ZmZlciksIChnc3RfZHBfaGVhZGVyX2Zyb21fYnVmZmVyXzFfMCksCgkgIChnc3RfZHBfcGFja2V0X2Zyb21fY2FwcyksIChnc3RfZHBfcGFja2V0X2Zyb21fY2Fwc18xXzApLAoJICAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50KSwgKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudF8xXzApLAoJICAoZ3N0X2RwX2V2ZW50X2Zyb21fcGFja2V0XzBfMiksIChnc3RfZHBfZXZlbnRfZnJvbV9wYWNrZXRfMV8wKSwKCSAgKGdzdF9kcF9ldmVudF9mcm9tX3BhY2tldCksIChnc3RfZHBfcGFja2V0aXplcl9uZXcpLAoJICAoZ3N0X2RwX3BhY2tldGl6ZXJfZnJlZSk6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJICBBUEk6IGFkZCBhIEdzdERQUGFja2V0aXplciBvYmplY3QsIGFuZCBjcmVhdGUvZnJlZSBmdW5jdGlvbnMKCSAgQVBJOiBhZGQgR3N0RFBWZXJzaW9uIGVudW0KCSAgQWRkIDEuMCBldmVudCBmdW5jdGlvbiB0aGF0IHVzZXMgdGhlIHN0cmluZyBzZXJpYWxpemF0aW9uCgkgIFNlcmlhbGl6ZSBtb3JlIHVzZWZ1bCBidWZmZXIgZmxhZ3MKCSAgRml4ZXMgIzM0Mzk4OAoKMjAwNi0wNi0wNiAxNDoyMToxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSAgYWRkIHN5bWJvbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHN5bWJvbAoKMjAwNi0wNi0wNiAxNDoxNjozMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIHdpZHRoIHJlc3BlY3RhdGlvbml6aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aWR0aCByZXNwZWN0YXRpb25pemluZwoKMjAwNi0wNi0wNiAxNDoxMDowOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0ZXN0cy9jaGVjay86IGFkZCBwcGM2NCBzdHJ1Y3R1cmUgc2l6ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjNjQuaDoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9wcGM2NC5oOgoJICBhZGQgcHBjNjQgc3RydWN0dXJlIHNpemVzCgoyMDA2LTA2LTA2IDEzOjU5OjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRlc3RzL2NoZWNrLzogZ2VuZXJhdGUgYW5kIGFkZCBzdHJ1Y3R1cmUgc2l6ZSBsaXN0cyBmb3IgeDg2XzY0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3g4Nl82NC5oOgoJICBnZW5lcmF0ZSBhbmQgYWRkIHN0cnVjdHVyZSBzaXplIGxpc3RzIGZvciB4ODZfNjQKCjIwMDYtMDYtMDYgMTM6NTM6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY29zbWV0aWNzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjb3NtZXRpY3MKCjIwMDYtMDYtMDYgMTM6NDg6MjAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suKjogZmFjdG9yIG91dCB0aGUgbWV0aG9kIGZyb20gdGVzdHMgdGhhdCBjaGVja3Mgc2l6ZSBvZiBzdHJ1Y3R1cmVzLCBhbmQgYWRkIGNvZGUgdG8gZ2VuZXJhdGUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfYWJpX2xpc3QpOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGZhY3RvciBvdXQgdGhlIG1ldGhvZCBmcm9tIHRlc3RzIHRoYXQgY2hlY2tzIHNpemUgb2Ygc3RydWN0dXJlcywKCSAgYW5kIGFkZCBjb2RlIHRvIGdlbmVyYXRlIHRoZSBoZWFkZXIgY29udGFpbmluZyB0aGVzZSBzaXplcwoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9pMzg2Lmg6CgkgIHVzZSBpdAoKMjAwNi0wNi0wNiAxMzoxMTowMyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHNlZ21lbnQuaDogRG9uJ3QgdXNlIGMrKy1zdHlsZSBjb21tZW50cywgZml4ZXMgIzM0MzkyOQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBEb24ndCB1c2UgYysrLXN0eWxlIGNvbW1lbnRzLCBmaXhlcyAjMzQzOTI5CgoyMDA2LTA2LTA2IDA5OjQ3OjQwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIHdoaXRlc3BhY2Uvd2lkdGggZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2Uvd2lkdGggZml4ZXMKCjIwMDYtMDYtMDYgMDg6NTA6NDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA2LTA2LTA2IDA4OjUwOjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZ3N0L2dzdGVycm9yLmM6CgkgIHJlbW92ZSBhbiBleHRyYSBzcGFjZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGFuIGV4dHJhIHNwYWNlCgoyMDA2LTA2LTA1IDEzOjA1OjM3ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdC5jOiBwbHVnaW5fcGF0aHMgaXMgbm90IHVzZWQgaWYgd2UgYnVpbGQgd2l0aG91dCByZWdpc3RyeSBzdXBwb3J0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIHBsdWdpbl9wYXRocyBpcyBub3QgdXNlZCBpZiB3ZSBidWlsZCB3aXRob3V0IHJlZ2lzdHJ5IHN1cHBvcnQuCgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X2NvcHkpOgoJICBfY29weSgpIHdhcyBhbHdheXMgcmV0dXJuaW5nIE5VTEwuLi4KCjIwMDYtMDYtMDUgMTI6NTU6NTggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBfY29weSgpIHdhcyBhbHdheXMgcmV0dXJuaW5nIE5VTEwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X2NvcHkpOgoJICBfY29weSgpIHdhcyBhbHdheXMgcmV0dXJuaW5nIE5VTEwuLi4KCjIwMDYtMDYtMDIgMTY6NDY6MTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBmYWN0b3Igb3V0IENSQyBjb2RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgKGdzdF9kcF9oZWFkZXJfZnJvbV9idWZmZXIpLCAoZ3N0X2RwX3BhY2tldF9mcm9tX2NhcHMpLAoJICAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50KToKCSAgZmFjdG9yIG91dCBDUkMgY29kZQoKMjAwNi0wNi0wMiAxNjo0NTowOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiBtYWtlIHN1cmUgd2UgdW5zZXQgY2FwcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX3RlYXJkb3duX3NyY19wYWQpOgoJICBtYWtlIHN1cmUgd2UgdW5zZXQgY2FwcwoKMjAwNi0wNi0wMiAxNjo0MTowMiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suKjogQWRkIGEgY29uZC9tdXRleCB0byB0aGUgY2hlY2sgc3VwcG9ydCBsaWIsIHNpZ25hbCB0aGlzIHdoZW5ldmVyIHdlIGFkZCB0byB0aGUgYnVmZmVycyBsaXN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfaW5pdCksCgkgIChnc3RfY2hlY2tfY2hhaW5fZnVuYyk6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgQWRkIGEgY29uZC9tdXRleCB0byB0aGUgY2hlY2sgc3VwcG9ydCBsaWIsIHNpZ25hbCB0aGlzIHdoZW5ldmVyIHdlCgkgIGFkZCB0byB0aGUgYnVmZmVycyBsaXN0LiBUaGlzIHdpbGwgYWxsb3cgdGVzdHMgdG8gbm90IGJ1c3ktd2FpdCBvbgoJICB0aGUgYnVmZmVyLWxpc3QuCgoyMDA2LTA2LTAyIDEwOjU4OjQ3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogZmFjdG9yIG91dCBzb21lIGNvbW1vbiBoZWFkZXIgaW5pdCBjb2RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgKGdzdF9kcF9oZWFkZXJfZnJvbV9idWZmZXIpLCAoZ3N0X2RwX3BhY2tldF9mcm9tX2NhcHMpLAoJICAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50KToKCSAgZmFjdG9yIG91dCBzb21lIGNvbW1vbiBoZWFkZXIgaW5pdCBjb2RlCgoyMDA2LTA2LTAyIDEwOjA4OjMxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIEFQSTogbWFrZSBnc3RfZHBfY3JjKCkgcHVibGljCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiAoZ3N0X2RwX2NyYyk6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJICBBUEk6IG1ha2UgZ3N0X2RwX2NyYygpIHB1YmxpYwoKMjAwNi0wNi0wMiAwOToxMzo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZGVidWcgY2hhbmdlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkZWJ1ZyBjaGFuZ2UKCjIwMDYtMDYtMDEgMTg6MzA6MTkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvaW5kZXhlcnMvZ3N0aW5kZXhlcnMuYzogY29uZGl0aW9uYWxseSByZWdpc3RlciBmaWxlaW5kZXhlciAoZml4ZXMgIzM0MzU5OCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RpbmRleGVycy5jOiAocGx1Z2luX2luaXQpOgoJICBjb25kaXRpb25hbGx5IHJlZ2lzdGVyIGZpbGVpbmRleGVyIChmaXhlcyAjMzQzNTk4KQoKMjAwNi0wNi0wMSAxODoyMjoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHRhZ3NldHRlci5oOiBDYW4ndCBjYXN0IGlmYWNlcyB0byBhIGNsYXNzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSAgQ2FuJ3QgY2FzdCBpZmFjZXMgdG8gYSBjbGFzcwoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcGx1Z2lucy9leGFtcGxlLmg6CgkgIEZpeCBtb3JlIGdvYmplY3QgbWFjcm9zOiBvYmo8LT5rbGFzcywgR3N0WFhYPC0+R3N0WFhYQ2xhc3MKCjIwMDYtMDYtMDEgMTE6MTM6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBtYWtlIHN1cmUgd2UgemVybyB0aGUgd2hvbGUgQUJJLWNvbXBhdGlibGUgYXJlYQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIChnc3RfZHBfaGVhZGVyX2Zyb21fYnVmZmVyKToKCSAgbWFrZSBzdXJlIHdlIHplcm8gdGhlIHdob2xlIEFCSS1jb21wYXRpYmxlIGFyZWEKCjIwMDYtMDYtMDEgMDk6MDI6MjMgKzAwMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvQG5udmEub3JnPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBNYWtlIHN1cmUgdGhlIEVPUyBmbGFnIGlzIGNsZWFyZWQgZnJvbSBwYWRzIGFmdGVyIGEgZmx1c2ggb3Igc3RvcC4gRml4ZXMgIzM0MzUzOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRybyBhdCBubnZhIGRvdCBvcmc+CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19zdG9wKToKCSAgTWFrZSBzdXJlIHRoZSBFT1MgZmxhZyBpcyBjbGVhcmVkIGZyb20gcGFkcyBhZnRlciBhIGZsdXNoCgkgIG9yIHN0b3AuIEZpeGVzICMzNDM1MzguCgkgICogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zdWl0ZSk6CgkgIEFkZGVkIHRlc3QgZm9yIGNvbGxlY3RwYWRzIHJldXNhZ2UgYWZ0ZXIgRU9TLgoKMjAwNi0wNS0zMCAyMDoyNTowMyArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdC5jOiBzZXQgI2luY2x1ZGUgPHN5cy93YWl0Lmg+IGluIGEgI2lmZGVmICNpZmRlZiBIQVZFX0ZPUksKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBzZXQgI2luY2x1ZGUgPHN5cy93YWl0Lmg+IGluIGEgI2lmZGVmICNpZmRlZiBIQVZFX0ZPUksKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGV4cG9ydCBnc3RfY29sbGVjdF9wYWRzX3NldF9mbHVzaGluZwoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBleHBvcnQgZ3N0X3BhZF9zZXRfYWNjZXB0Y2Fwc19mdW5jdGlvbiwgZ3N0X3N0cnVjdHVyZV9lbXB0eV9uZXcsCgkgIGdzdF92YWx1ZV9mcmFjdGlvbl9tdWx0aXBseQoJICAqIHdpbjMyL3ZzNi9nc3RfaW5zcGVjdC5kc3A6CgkgIGFkZCBhIGxpbmsgdG8gaW50bC5saWIKCjIwMDYtMDUtMzAgMTU6NTU6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IEhhbmRsZSB0aGUgY2FzZSB3aGVyZSBhIHBhZCBpcyByZW1vdmVkIGZyb20gdGhlIGNvbGxlY3Rpb24gdGhhdCBjb3VsZCBjYXVzZSB0aGUgb3RoZXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19yZW1vdmVfcGFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY2hhaW4pOgoJICBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgYSBwYWQgaXMgcmVtb3ZlZCBmcm9tIHRoZSBjb2xsZWN0aW9uCgkgIHRoYXQgY291bGQgY2F1c2UgdGhlIG90aGVyIHBhZHMgdG8gYmVjb21lIGNvbGxlY3RhYmxlLgoKMjAwNi0wNS0zMCAxNTo1Mzo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IENsYXJpZnkgdGhlIHVzZSBvZiBfcmVsZWFzZV9yZXF1ZXN0X3BhZCgpIGFuZCBfZ2V0X3JlcXVlc3RfcGFkKCkgYSBiaXQgYmV0dGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBDbGFyaWZ5IHRoZSB1c2Ugb2YgX3JlbGVhc2VfcmVxdWVzdF9wYWQoKSBhbmQKCSAgX2dldF9yZXF1ZXN0X3BhZCgpIGEgYml0IGJldHRlci4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogKGdzdF9hZGFwdGVyX3BlZWspLAoJICAoZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXIpOgoJICBGaXggc29tZSBkb2MgYW5kIGNvbW1lbnQgdHlwb3MuCgoyMDA2LTA1LTMwIDE0OjQzOjM1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvOiBhZGQgZGVjbGFyZWQgc3ltYm9scwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGFkZCBkZWNsYXJlZCBzeW1ib2xzCgoyMDA2LTA1LTMwIDE0OjQxOjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgdXBkYXRlIHBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgcG8gZmlsZXMKCjIwMDYtMDUtMzAgMTQ6NDA6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGZpeCBidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGJ1aWxkCgoyMDA2LTA1LTMwIDE0OjAzOjU4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgYWRkZWQgSEFWRV9GT1JLCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRlZCBIQVZFX0ZPUksKCjIwMDYtMDUtMzAgMTI6MDQ6MjkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IEFkZCBkZWJ1ZyB0aGF0IGNhbiBiZSBlbmFibGVkIHVzaW5nIGEgI2RlZmluZSBhdCB0aGUgdG9wIG9mIHRoZSBmaWxlLCBmb3IgZHVtcGluZyBzdGF0cyBhYm91dCBoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X3VubG9ja2VkKToKCSAgQWRkIGRlYnVnIHRoYXQgY2FuIGJlIGVuYWJsZWQgdXNpbmcgYSAjZGVmaW5lIGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUsCgkgIGZvciBkdW1waW5nIHN0YXRzIGFib3V0IGhvdyBsYXRlL2Vhcmx5IHdlIHdlcmUgd2hlbiB3YWtpbmcgdXAgZnJvbQoJICB3YWl0aW5nIG9uIHRoZSBjbG9jay4KCjIwMDYtMDUtMzAgMTE6NDM6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IFdoZW4gcmVidWlsZGluZyB0aGUgcGFkIGxpc3QsIGRvbid0IGxlYWsgdGhlIHByZXZpb3VzIGxpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfY2hlY2tfcGFkcyk6CgkgIFdoZW4gcmVidWlsZGluZyB0aGUgcGFkIGxpc3QsIGRvbid0IGxlYWsgdGhlIHByZXZpb3VzIGxpc3QuCgoyMDA2LTA1LTMwIDEwOjU3OjQ0ICswMDAwICBMdXR6IE11ZWxsZXIgPGx1dHpAdG9wZnJvc2UuZGU+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogUHVibGlzaCBzdXBwb3J0ZWQgcXVlcnkgdHlwZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTHV0eiBNdWVsbGVyIDxsdXR6IGF0IHRvcGZyb3NlIGRvdCBkZT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcXVlcnlfdHlwZXMpLCAoZ3N0X2Jhc2Vfc3JjX3VwZGF0ZV9sZW5ndGgpOgoJICBQdWJsaXNoIHN1cHBvcnRlZCBxdWVyeSB0eXBlcy4KCSAgVXBkYXRlIGxhc3Rfc3RvcCBmaWVsZCBpbiBnZXRfcmFuZ2UgbW9kZSBzbyB0aGUgcG9zaXRpb24KCSAgcXVlcnkgd29ya3MuIEZpeGVzICMzNDIzMjEuCgoyMDA2LTA1LTMwIDEwOjEyOjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgR1NUX1RBR19QUkVWSUVXX0lNQUdFICgjMzQzMzQxKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoX2dzdF90YWdfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgQVBJOiBhZGQgR1NUX1RBR19QUkVWSUVXX0lNQUdFICgjMzQzMzQxKS4KCjIwMDYtMDUtMzAgMDk6NDI6MDkgKzAwMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvQG5udmEub3JnPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBVbmxvY2sgbXV0ZXggd2hlbiByZW1vdmluZyBhbiB1bmtub3duIHBhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRybyBhdCBubnZhIGRvdCBvcmc+CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19yZW1vdmVfcGFkKToKCSAgVW5sb2NrIG11dGV4IHdoZW4gcmVtb3ZpbmcgYW4gdW5rbm93biBwYWQuCgkgIEZpeGVzICMzNDMzMzQuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOiAoY29sbGVjdGVkX2NiKSwgKHB1c2hfYnVmZmVyKSwKCSAgKHB1c2hfZXZlbnQpLCAoc2V0dXApLCAodGVhcmRvd24pLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zdWl0ZSksIChtYWluKToKCSAgQWRkZWQgY29sbGVjcGFkcyBjaGVjaywgZGlzYWJsZWQgZm9yIG5vdyBhcyBjaGVjayBjcmFzaGVzIGZvcgoJICBzb21lIHJlYXNvbi4KCjIwMDYtMDUtMjkgMTc6MjA6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IERvbid0IGxlYWsgcGFkcyBsaXN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19maW5hbGl6ZSk6CgkgIERvbid0IGxlYWsgcGFkcyBsaXN0cy4KCjIwMDYtMDUtMjkgMTY6MDA6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBUEk6IGdzdF9jb2xsZWN0X3BhZHNfc2V0X2ZsdXNoaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICAoZ3N0X2NvbGxlY3RfcGFkc19zZXRfZmx1c2hpbmdfdW5sb2NrZWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zZXRfZmx1c2hpbmcpLCAoZ3N0X2NvbGxlY3RfcGFkc19zdGFydCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3N0b3ApOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgQVBJOiBnc3RfY29sbGVjdF9wYWRzX3NldF9mbHVzaGluZwoJICBBZGRlZCBhcGkgdG8gc2V0IHRoZSBwYWRzIHRvIGZsdXNoaW5nLCB1c2VmdWxsIGZvciBzZWVraW5nCgkgIGNvZGUgaW4gZWxlbWVudHMgdXNpbmcgY29sbGVjdHBhZHMuCgkgIENsZWFyIHNlZ21lbnQgd2hlbiByZWNlaXZpbmcgYSBmbHVzaC4KCjIwMDYtMDUtMjkgMTE6NTI6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IERvbid0IHNjYW4gcmVnaXN0cnkgcGF0aHMgcGFzc2VkIHZpYSAtLWdzdC1wbHVnaW4tLXBhdGggaW1tZWRpYXRlbHkgKHdpbGwgY3Jhc2gsIGJlY2F1c2UgYWJzb2x1dGVseSBub3RoaW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoYWRkX3BhdGhfZnVuYyksIChpbml0X3Bvc3QpOgoJICBEb24ndCBzY2FuIHJlZ2lzdHJ5IHBhdGhzIHBhc3NlZCB2aWEgLS1nc3QtcGx1Z2luLS1wYXRoIGltbWVkaWF0ZWx5CgkgICh3aWxsIGNyYXNoLCBiZWNhdXNlIGFic29sdXRlbHkgbm90aGluZyBpcyBzZXQgdXAgYW5kIG5vIHR5cGVzIGFyZQoJICByZWdpc3RlcmVkIGV0Yy4pOyBkbyB0aGlzIGxhdGVyIGluIGluaXRfcG9zdCgpLiBGaXhlcyAjMzQzMDU3LgoKMjAwNi0wNS0yOCAwOTowOTowMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0LmM6IGlmIHdlIGhhdmUgZm9yaywgZm9yayB3aGlsZSByZWFkaW5nL3JlYnVpbGRpbmcgdGhlIHJlZ2lzdHJ5IHNvIHRoZSBwYXJlbnQgZG9lc24ndCB0YWtlIHRoZSBoaXQgb2YgaGF2aW5nIGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgaWYgd2UgaGF2ZSBmb3JrLCBmb3JrIHdoaWxlIHJlYWRpbmcvcmVidWlsZGluZyB0aGUgcmVnaXN0cnkKCSAgc28gdGhlIHBhcmVudCBkb2Vzbid0IHRha2UgdGhlIGhpdCBvZiBoYXZpbmcgYWxsIHBsdWdpbnMgbG9hZGVkCgkgIGluIG1lbW9yeS4gIEZpeGVzICMzNDI3NzcuCgkgICogY29uZmlndXJlLmFjOgoJICBDaGVjayBpZiB3ZSBoYXZlIGZvcmsoKQoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgbm8gZm9yaygpIG9uIHdpbjMyCgoyMDA2LTA1LTI2IDEzOjUyOjAzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBBZGQgYSB1c2UtbW1hcCBwcm9wZXJ0eSB0byBlbmFibGUgZWFzaWVyIHRlc3Rpbmcgb2YgYWxsIGNvZGUgcGF0aHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9maWxlX3NyY19pbml0KSwgKGdzdF9maWxlX3NyY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2ZpbGVfc3JjX2dldF9wcm9wZXJ0eSksIChnc3RfZmlsZV9zcmNfc3RhcnQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJICBBZGQgYSB1c2UtbW1hcCBwcm9wZXJ0eSB0byBlbmFibGUgZWFzaWVyIHRlc3Rpbmcgb2YgYWxsIGNvZGUgcGF0aHMuCgkgIEJ1bXAgcmFuayB0byBQUklNQVJZLCBzbyBmaWxlc3JjIGlzIHRoZSBwcmVmZXJyZWQgZmlsZSByZWFkZXIgYW5kIHVzZWQKCSAgaW4gdGhlIGFic2VuY2Ugb2YgZ25vbWV2ZnNzcmMuIChDbG9zZXMgIzM0MDUwMSkKCjIwMDYtMDUtMjYgMTA6MzU6MzQgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBBZGQgbWlzc2luZyBpbmNsdWRlLCByZW1vdmVzIHdhcm5pbmcgb2YgbmdldHRleHQgbm90IGJlaW5nIGRlZmluZWQgb24gc29tZSBhcmNoZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA1LTI2ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgQWRkIG1pc3NpbmcgaW5jbHVkZSwgcmVtb3ZlcyB3YXJuaW5nIG9mIG5nZXR0ZXh0IG5vdCBiZWluZyBkZWZpbmVkIG9uCgkgIHNvbWUgYXJjaGVzLgoKMjAwNi0wNS0yNiAwOToxOToyNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0dmFsdWUuYzogSGFuZGxlIE5VTEwgaW5wdXQgYW5kIG91dHB1dCBwb2ludGVycyBzaWxlbnRseSBhcyBhIGZhaWxlZCBjb252ZXJzaW9uLCByYXRoZXIgdGhhbiBnX3dhcm5pbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9mcmFjdGlvbik6CgkgIEhhbmRsZSBOVUxMIGlucHV0IGFuZCBvdXRwdXQgcG9pbnRlcnMgc2lsZW50bHkgYXMgYSBmYWlsZWQgY29udmVyc2lvbiwKCSAgcmF0aGVyIHRoYW4gZ193YXJuaW5ncy4KCjIwMDYtMDUtMjUgMTU6NTI6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogSW5pdGlhbGl6ZSB2YXJpYWJsZSBiZWZvcmUgdXNpbmcuIEZpeGVzICMzNDI4MjAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiAoZ3N0X25ldF9jbGllbnRfY2xvY2tfc3RhcnQpOgoJICBJbml0aWFsaXplIHZhcmlhYmxlIGJlZm9yZSB1c2luZy4gRml4ZXMgIzM0MjgyMC4KCjIwMDYtMDUtMjQgMTc6MTE6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IEZpeCBvZmYtYnktb25lIGJ1ZyB0aGF0IHdvdWxkIG9ubHkgYWxsb3cgcGVla3Mgb2YgTi0xIGJ5dGVzIGZyb20gdGhlIHN0YXJ0IGV2ZW4gaWYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoYnVmX2hlbHBlcl9maW5kX3BlZWspOgoJICBGaXggb2ZmLWJ5LW9uZSBidWcgdGhhdCB3b3VsZCBvbmx5IGFsbG93IHBlZWtzIG9mIE4tMSBieXRlcwoJICBmcm9tIHRoZSBzdGFydCBldmVuIGlmIHRoZSBidWZmZXIgdG8gdHlwZWZpbmQgb24gY29udGFpbnMKCSAgaW4gZmFjdCBOIGJ5dGVzIG9mIGRhdGEgKG1ha2VzIHZvcmJpcyB0eXBlZmluZGluZyBmcm9tIGEKCSAgdm9yYmlzIGlkZW50aWZpY2F0aW9uIGhlYWRlciBidWZmZXIgd29yaykuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svbGlicy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvdHlwZWZpbmRoZWxwZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF90eXBlZmluZGhlbHBlcl9zdWl0ZSksIChtYWluKSwgKGZvb2Jhcl90eXBlZmluZCksCgkgIChwbHVnaW5faW5pdCk6CgkgIEFkZCB2ZXJ5IGJhc2ljIHVuaXQgdGVzdCBmb3IgZ3N0X3R5cGVfZmluZF9oZWxwZXJfZm9yX2J1ZmZlcigpCgkgIHRoYXQgY2hlY2tzIGZvciB0aGUgcHJvYmxlbSBmaXhlZCBhYm92ZS4KCjIwMDYtMDUtMjQgMDk6MDA6NDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgIGRvYyBpbmRlbnQgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb2MgaW5kZW50IGZpeAoKMjAwNi0wNS0yNCAwOTowMDoxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIG1hcmsgbW9yZSBzdHJpbmdzIGZvciB0cmFuc2xhdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWFyayBtb3JlIHN0cmluZ3MgZm9yIHRyYW5zbGF0aW9uCgoyMDA2LTA1LTIzIDE0OjIzOjQ5ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IE1ha2UgbmV3IEdTVF9GTE9XX0lTX1NVQ0NFU1MgbWFjcm8gdmlzaWJsZSBpbiBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEp1bGllbiBNb3V0dGUgIDxqdWxpZW4gYXQgbW91dHRlIG5ldD4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBNYWtlIG5ldyBHU1RfRkxPV19JU19TVUNDRVNTIG1hY3JvIHZpc2libGUgaW4gZG9jcy4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zha2Vfc2lua19wcmVyb2xsKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkgIEFkZCBuZXcgOjpwcmVyb2xsLWhhbmRvZmYgc2lnbmFsICgjMzM3MTAwKS4KCjIwMDYtMDUtMjMgMTE6MTM6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLio6IEFkZGVkIF9DVVNUT00gZXJyb3IgYW5kIHN1Y2Nlc3MgR3N0Rmxvd1JldHVybiB0aGF0IGNhbiBiZSB1c2VkIGJlIGVsZW1lbnRzIGludGVybmFsbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9mbG93X2dldF9uYW1lKSwgKGdzdF9mbG93X3RvX3F1YXJrKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIEFkZGVkIF9DVVNUT00gZXJyb3IgYW5kIHN1Y2Nlc3MgR3N0Rmxvd1JldHVybiB0aGF0IGNhbiBiZQoJICB1c2VkIGJlIGVsZW1lbnRzIGludGVybmFsbHkuCgkgIEFkZGVkIG1hY3JvIHRvIGNoZWNrIGZvciBTVUNDRVNTIGZsb3dyZXR1cm5zLgoJICBBUEk6IEdTVF9GTE9XX0NVU1RPTV9TVUNDRVNTCgkgIEFQSTogR1NUX0ZMT1dfQ1VTVE9NX0VSUk9SCgkgIEFQSTogR1NUX0ZMT1dfSVNfU1VDQ0VTUwoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9wYWRfc3VpdGUpOgoJICBBZGRlZCBjaGVjayBmb3IgR3N0Rmxvd1JldHVybiBzYW5pdHkuCgoyMDA2LTA1LTIzIDA5OjQwOjE0ICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJlPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBjbGVhci9yZXNldCBzZWdtZW50IGluZm8gaW4gRkxVU0hfU1RPUC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXcgYXQgc2t5bmV0IGRvdCBiZT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX3JlbW92ZV9wYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCk6CgkgIGNsZWFyL3Jlc2V0IHNlZ21lbnQgaW5mbyBpbiBGTFVTSF9TVE9QLgoJICBGaXhlcyAjMzM2OTI5LgoKMjAwNi0wNS0yMiAxNjozMDozNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBGbHVzaCBxdWV1ZWQgYnVmZmVyIG9uIF9zdG9wKCksIGZpeGVzIHBsYXlpbmcgYWdhaW4gKCMzNDI0NTQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfc3RvcCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2NoZWNrX2NvbGxlY3RlZCk6CgkgIEZsdXNoIHF1ZXVlZCBidWZmZXIgb24gX3N0b3AoKSwgZml4ZXMgcGxheWluZyBhZ2FpbiAoIzM0MjQ1NCkKCjIwMDYtMDUtMjIgMTM6MzQ6MDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiBhZGQgYSB0ZXN0IGZvciBhIGNvbXBsZXRlIHN0cnVjdHVyZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3Rfc3RydWN0dXJlX3N1aXRlKToKCSAgYWRkIGEgdGVzdCBmb3IgYSBjb21wbGV0ZSBzdHJ1Y3R1cmUKCjIwMDYtMDUtMjIgMTM6MzE6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgZGVidWdnaW5nIGNoYW5nZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRlYnVnZ2luZyBjaGFuZ2VzCgoyMDA2LTA1LTE5IDE1OjM1OjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9mYXEvOiBTb21lIG1pbm9yIEZBUSB1cGRhdGVzIHRoYXQgd29uJ3QgY2hhbmdlIHRoZSBmYWN0IHRoYXQgb3VyIEZBUSBpcyBiYWRseSBzdHJ1Y3R1cmVkLCBmdWxsIG9mIGluZm9ybWF0aW9uIGhhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOgoJICAqIGRvY3MvZmFxL2ZhcS54bWw6CgkgICogZG9jcy9mYXEvdHJvdWJsZXNob290aW5nLnhtbDoKCSAgKiBkb2NzL2ZhcS91c2luZy54bWw6CgkgIFNvbWUgbWlub3IgRkFRIHVwZGF0ZXMgdGhhdCB3b24ndCBjaGFuZ2UgdGhlIGZhY3QgdGhhdAoJICBvdXIgRkFRIGlzIGJhZGx5IHN0cnVjdHVyZWQsIGZ1bGwgb2YgaW5mb3JtYXRpb24gaGFyZGx5CgkgIGFueW9uZSBuZXcgdG8gR1N0cmVhbWVyIG5lZWRzIHRvIGtub3cgYW5kIGxhY2tpbmcgbG90cwoJICBvZiBpbmZvcm1hdGlvbiBwZW9wbGUgY29uc3RhbnRseSBhc2sgZm9yLgoKMjAwNi0wNS0xOSAxMzo0NjoxMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFNob3J0LWNpcmN1aXQgZ3N0X3BhZF9zZXRfY2FwcyBpZiBzZXR0aW5nIHRoZSBleGlzdGluZyBjYXBzIHBvaW50ZXIgYWdhaW4sIGFuZCBhdm9pZCBwcmludGluZyBkZWJ1ZyBhbmQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfY2Fwcyk6CgkgIFNob3J0LWNpcmN1aXQgZ3N0X3BhZF9zZXRfY2FwcyBpZiBzZXR0aW5nIHRoZSBleGlzdGluZwoJICBjYXBzIHBvaW50ZXIgYWdhaW4sIGFuZCBhdm9pZCBwcmludGluZyBkZWJ1ZyBhbmQKCSAgcmVmZmluZy91bnJlZmZpbmcgdGhlIGNhcHMuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX3B1c2hfb25lKToKCSAgVGhlcmUncyBhY3R1YWxseSBubyBuZWVkIHRvIHNldCB0aGUgY2FwcyBiZWZvcmUgcHVzaGluZyAtCgkgIHRoZSBhY2NlcHRjYXBzIG1ldGhvZCB3aWxsIGhhbmRsZSBpdCBhbnl3YXkuCgoyMDA2LTA1LTE5IDEwOjI5OjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgZ3N0X2VsZW1lbnRfc2Vla19zaW1wbGUoKSAoIzM0MjIzOCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9zZWVrX3NpbXBsZSk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFQSTogYWRkIGdzdF9lbGVtZW50X3NlZWtfc2ltcGxlKCkgKCMzNDIyMzgpLgoKMjAwNi0wNS0xOCAxNDoyNTowMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3R0eXBlZmluZC4qOiBBZGRlZCBHU1RfVFlQRV9UWVBFX0ZJTkQgYW5kIGdzdF90eXBlX2ZpbmRfZ2V0X3R5cGUoKSBzbyBhIEdUeXBlIGdldHMgcmVnaXN0ZXJlZCBmb3IgR3N0VHlwZUZpbmQgcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzogKGdzdF90eXBlX2ZpbmRfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3R0eXBlZmluZC5oOgoJICBBZGRlZCBHU1RfVFlQRV9UWVBFX0ZJTkQgYW5kIGdzdF90eXBlX2ZpbmRfZ2V0X3R5cGUoKSBzbyBhIEdUeXBlIGdldHMKCSAgcmVnaXN0ZXJlZCBmb3IgR3N0VHlwZUZpbmQgcG9pbnRlcnMuIFRoaXMgYWxsb3dzIHdyYXBwaW5nIHRoZSBzdHJ1Y3R1cmUKCSAgaW4gYmluZGluZ3MgKGkuZS4gZ3N0LXB5dGhvbikuCgoyMDA2LTA1LTE4IDE0OjAxOjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHRhZ3NldHRlci5jOiBEb2NzIGFkZGl0aW9ucyBhbmQgZml4ZXMgKHNlZSAjMzM5OTE4KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICBEb2NzIGFkZGl0aW9ucyBhbmQgZml4ZXMgKHNlZSAjMzM5OTE4KS4KCjIwMDYtMDUtMTggMDk6MDc6NTUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IFRoZSBjYXBzIGludGVyc2VjdGlvbiBhbGdvcml0aG0gY2FuIHByb2R1Y2UgbXVsdGlwbGUgY29waWVzIG9mIHRoZSBjYXBzLiBVbnRpbCB0aGF0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfcHJlcGFyZV9idWYpOgoJICBUaGUgY2FwcyBpbnRlcnNlY3Rpb24gYWxnb3JpdGhtIGNhbiBwcm9kdWNlIG11bHRpcGxlIGNvcGllcyBvZiB0aGUKCSAgY2Fwcy4gVW50aWwgdGhhdCBpcyBmaXhlZCwgd2UgbmVlZCB0byBzaW1wbGlmeSB0aGUgcmVzdWx0IHRvIGJlCgkgIHN1cmUgd2hldGhlciB0aGUgYWxsb3dlZCBjYXBzIGFyZSBmaXhlZCBvciBub3QuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2luaXQpLAoJICAoZ3N0X3F1ZXVlX2J1ZmZlcmFsbG9jKSwgKGdzdF9xdWV1ZV9hY2NlcHRjYXBzKSwKCSAgKGdzdF9xdWV1ZV9wdXNoX29uZSk6CgkgIFByb3hpZWQgYnVmZmVyIGFsbG9jIHNob3VsZCBub3Qgc2V0IHRoZSBjYXBzIG9uIHRoZSBzb3VyY2UgcGFkLgoJICBXaGVuIHB1c2hpbmcgYnVmZmVycywgd2UgYWx3YXlzIGFjY2VwdCB0aGUgY2FwcyBjaGFuZ2UgdGhhdCB0cmlnZ2Vycy4KCSAgVGhpcyBwcmV2ZW50cyBuZWdvdGlhdGlvbiBlcnJvcnMgY2F1c2VkIGJ5IGNhcHMgY2hhbmdpbmcgbWlkLXN0cmVhbQoJICBhbmQgdGhlbiBiZWluZyByZWZ1c2VkIG9uIG91ciBzb3VyY2UgcGFkIChiZWNhdXNlIHVwc3RyZWFtIGlzIG5vdwoJICByZWZ1c2luZyB0aG9zZSBjYXBzKS4KCjIwMDYtMDUtMTggMDg6NDg6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzogTXVzdCBwbHVnIGF1ZGlvY29udmVydCBhbmQgYXVkaW9yZXNhbXBsZSBiZXR3ZWVuIGRlY29kZXIgYW5kIGF1ZGlvIHNpbmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOiAobWFpbik6CgkgIE11c3QgcGx1ZyBhdWRpb2NvbnZlcnQgYW5kIGF1ZGlvcmVzYW1wbGUgYmV0d2VlbiBkZWNvZGVyCgkgIGFuZCBhdWRpbyBzaW5rLgoKMjAwNi0wNS0xNyAxNDoxODoxMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIE1lbnRpb24gYnVnIGZpeGVkIGJ5IHByZXZpb3VzIGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTWVudGlvbiBidWcgZml4ZWQgYnkgcHJldmlvdXMgY29tbWl0CgoyMDA2LTA1LTE3IDE0OjAxOjMzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBBbGxvdyBlbXB0eSBzdHJpbmdzIGZvciBzb21lIG9mIHRoZSBwbHVnaW4gZmllbGRzIHNvIHdlIGRvbid0IGRyb3AgdmFsaWQgcGx1Z2luIGVudHJpZXMgdGhhdCB3ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKHJlYWRfc3RyaW5nKSwgKGxvYWRfcGFkX3RlbXBsYXRlKSwKCSAgKGxvYWRfZmVhdHVyZSksIChsb2FkX3BsdWdpbik6CgkgIEFsbG93IGVtcHR5IHN0cmluZ3MgZm9yIHNvbWUgb2YgdGhlIHBsdWdpbiBmaWVsZHMgc28gd2UgZG9uJ3QKCSAgZHJvcCB2YWxpZCBwbHVnaW4gZW50cmllcyB0aGF0IHdlcmUgd3JpdHRlbiBvdXQgY29ycmVjdGx5LgoKMjAwNi0wNS0xNyAxMzo0MDoyMCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IFVzZSBnX3JlbW92ZSBhbmQgZ19yZW5hbWUgaW5zdGVhZCBvZiByZW1vdmUgYW5kIHJlbmFtZSB0aGF0IGRvbid0IGhhbmRsZSB1dGY4IGNoYXJhY3RlcnMuIHJlbmFtLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAoZ3N0X3JlZ2lzdHJ5X3htbF93cml0ZV9jYWNoZSk6CgkgIFVzZSBnX3JlbW92ZSBhbmQgZ19yZW5hbWUgaW5zdGVhZCBvZiByZW1vdmUgYW5kIHJlbmFtZSB0aGF0IGRvbid0CgkgIGhhbmRsZSB1dGY4IGNoYXJhY3RlcnMuIHJlbmFtZSB3YXMgZmFpbGluZyBmb3IgdXNlcnMgd2hvIGhhZCBzcGVjaWZpYwoJICBjaGFyYWN0ZXJzIGluIHRoZWlyIG5hbWUgdGhlbiB0aGUgcmVnaXN0cnkgd2FzIGJ1aWx0IGF0IGVhY2ggZ3N0cmVhbWVyIGluaXQuCgkgICogd2luMzIvdnM2L2dzdF9pbnNwZWN0LmRzcDoKCSAgKiB3aW4zMi92czYvZ3N0X2xhdW5jaC5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdGJhc2UuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3Rjb3JlZWxlbWVudHMuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RyZWFtZXIuZHNwOgoJICBVc2UgYSBkZWJ1ZyB2ZXJzaW9uIG9mIGxpYnhtbDIgKGxpYnhtbDJELmxpYixsaWJ4bWwyRC5kbGwpIGZvciBERUJVRyBidWlsZAoJICBvZiBsaWJnc3RyZWFtZXIgYW5kIGNsZWFuIHVudXNlZCBsaWJyYXJpZXMgaW4gcHJvamVjdCBsaW5rcyBzZXR0aW5ncy4KCjIwMDYtMDUtMTcgMDk6MjQ6MzQgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IFRoZSBxdWV1ZSBpcyBub3QgcmVzcG9uc2libGUgZm9yIHB1c2hpbmcgYW4gRU9TIHdoZW4gcmVjZWl2aW5nIGEgZmF0YWwgZmxvdyBlcnJvci4gSXQncyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX3B1c2hfb25lKToKCSAgVGhlIHF1ZXVlIGlzIG5vdCByZXNwb25zaWJsZSBmb3IgcHVzaGluZyBhbiBFT1Mgd2hlbiByZWNlaXZpbmcgYSBmYXRhbAoJICBmbG93IGVycm9yLiBJdCdzIHVwIHRvIHRoZSByZWFsIGVsZW1lbnQgZHJpdmluZyB0aGUgcGlwZWxpbmUgdG8gZG8gdGhhdC4KCjIwMDYtMDUtMTYgMTc6MTU6MDIgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IFRoZSBxdWV1ZSB3YXMgcG9zdGluZyBhIG5vbi1uZWVkZWQgR1NUX01FU1NBR0VfRVJST1Igd2hlbiBwdXNoaW5nIGEgYnVmZmVyIHJldHVybmVkIGEgZmEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX3B1c2hfb25lKToKCSAgVGhlIHF1ZXVlIHdhcyBwb3N0aW5nIGEgbm9uLW5lZWRlZCBHU1RfTUVTU0FHRV9FUlJPUiB3aGVuIHB1c2hpbmcgYQoJICBidWZmZXIgcmV0dXJuZWQgYSBmYXRhbCBlcnJvci4gSXQgc2hvdWxkIGp1c3Qgc2VuZCBhbiBFT1MgYW5kIHN0b3AKCSAgaXQncyB0YXNrLgoJICBVcHN0cmVhbSBlbGVtZW50cyB3aWxsIHRoZW4gcHJvcGVybHkgcmVjZWl2ZSB0aGUgR1NUX0ZMT1dfVU5FWFBFQ1RFRAoJICB3aGVuIHB1c2hpbmcgYnVmZmVycyBvbiB0aGUgcXVldWUgYW5kIHdpbGwgYmUgYWJsZSB0byBoYW5kbGUgdGhlIGV2ZW50LgoKMjAwNi0wNS0xNiAxNjoxMDozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsLzogRml4IHR5cG9zIGFuZCBtaW5vciBlcnJvcnMgaW4gc2FtcGxlIGNvZGUgKCMzNDE4NTYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYmlucy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWluaXQueG1sOgoJICBGaXggdHlwb3MgYW5kIG1pbm9yIGVycm9ycyBpbiBzYW1wbGUgY29kZSAoIzM0MTg1NikuCgoyMDA2LTA1LTE2IDEzOjMxOjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OiBGaXggaW5kZXhlcyBpbiBmb3JtdWxhcyB0byBtYWtlIG1vcmUgc2Vuc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgRml4IGluZGV4ZXMgaW4gZm9ybXVsYXMgdG8gbWFrZSBtb3JlIHNlbnNlLgoKMjAwNi0wNS0xNSAxMTo1NDoyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRG9uJ3QgcmVwb3J0IFBPU0lUSU9OIGJhc2VkIG9uIGNsb2NrIHRpbWUgaWYgc3luYyBpcyBkaXNhYmxlZCBpbiBhIHNpbmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgRG9uJ3QgcmVwb3J0IFBPU0lUSU9OIGJhc2VkIG9uIGNsb2NrIHRpbWUgaWYgc3luYyBpcwoJICBkaXNhYmxlZCBpbiBhIHNpbmsuCgoyMDA2LTA1LTE1IDA4OjE2OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdG9iamVjdC5oOiBBZGQgY2FzdCB0byBtYWtlIGNvbXBpbGVyIGhhcHB5IC0gcmVmY291bnQgdmFyaWFibGUgd2FzIGEgZ2ludCBpbiBHc3RPYmplY3QgYnV0IGlzIGEgZ3VpbnQgaW4gR09iamVjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgQWRkIGNhc3QgdG8gbWFrZSBjb21waWxlciBoYXBweSAtIHJlZmNvdW50IHZhcmlhYmxlIHdhcyBhIGdpbnQKCSAgaW4gR3N0T2JqZWN0IGJ1dCBpcyBhIGd1aW50IGluIEdPYmplY3QgYW5kIGdfYXRvbWljX2ludF9nZXQoKQoJICB3YW50cyBhIGdpbnQgKi4KCjIwMDYtMDUtMTQgMjM6MjM6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIGZpeCBwYXJhbGxlbCBtYWtlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggcGFyYWxsZWwgbWFrZQoKMjAwNi0wNS0xNCAyMToxODoyMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZSBjb25maWcuaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGNvbmZpZy5oCgoyMDA2LTA1LTE0IDIxOjE2OjU4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgd2hpdGVzcGFjZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZSBmaXhlcwoKMjAwNi0wNS0xNCAyMToxNjo1MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS9zdHJlYW1oZWFkZXI6CgkgIHNvbWUgc3RyZWFtaGVhZGVyIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNvbWUgc3RyZWFtaGVhZGVyIHVwZGF0ZXMKCjIwMDYtMDUtMTQgMTk6MjU6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBNaW5vciBkb2NzIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIE1pbm9yIGRvY3MgZml4ZXMuCgoyMDA2LTA1LTE0IDE2OjAzOjIwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIENWUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFjayB0byBDVlMKCj09PSByZWxlYXNlIDAuMTAuNiA9PT0KCjIwMDYtMDUtMTQgMTU6MjA6MjQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiByZWxlYXNpbmcgMC4xMC42LCAiVGFrZSB0aGUgY2Fubm9saSIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDUtMTQgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgcmVsZWFzaW5nIDAuMTAuNiwgIlRha2UgdGhlIGNhbm5vbGkiCgoyMDA2LTA1LTE0IDE1OjE4OjAyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNi0wNS0xMyAxNzo1MDoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogRml4IHVzZSBvZiB1bmluaXRpYWxpemVkIHZhcmlhYmxlIGluIHRoZSBoeXBvdGhldGljYWwgY2FzZSB0aGF0IHNvbWUgYnJva2VuIHBsdWdpbiBjcmVhdGVzIGEgR1NUXy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChwcmludF90YWcpOgoJICBGaXggdXNlIG9mIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgaW4gdGhlIGh5cG90aGV0aWNhbAoJICBjYXNlIHRoYXQgc29tZSBicm9rZW4gcGx1Z2luIGNyZWF0ZXMgYSBHU1RfVEFHX0lNQUdFCgkgIHRhZyBjb250YWluaW5nIGEgTlVMTCBidWZmZXIgKCMzNDE2NjcpLgoKMjAwNi0wNS0xMiAxNjo1MDozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogUHJpbnQgc29tZXRoaW5nIG1vcmUgaW50ZWxsaWdpYmxlIGZvciBpbWFnZSB0YWdzIHdoZW4gdXNpbmcgdGhlIC10IHN3aXRjaCAoIzM0MTU1NikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKHByaW50X3RhZyk6CgkgIFByaW50IHNvbWV0aGluZyBtb3JlIGludGVsbGlnaWJsZSBmb3IgaW1hZ2UgdGFncyB3aGVuCgkgIHVzaW5nIHRoZSAtdCBzd2l0Y2ggKCMzNDE1NTYpLgoKMjAwNi0wNS0xMiAxNDo1Mzo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBNYWtlZmlsZS5hbTogdXBkYXRlcyBmb3Igd2luMzIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgIHVwZGF0ZXMgZm9yIHdpbjMyCgkgICogY29uZmlndXJlLmFjOgoJICBkZWZpbmUgR1NUX01BSk9STUlOT1Igc28gd2UgaGF2ZSBpdCBhdmFpbGFibGUgaW4gd2luMzIvY29tbW9uL2NvbmZpZy5oCgkgIFBvc3NpYmx5IHJlbW92ZSBpdCBmcm9tIG91ciBNYWtlZmlsZS5hbSBmaWxlcyBsYXRlcgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIGFkZGVkIEdTVF9NQUpPUk1JTk9SCgkgICogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOiAocmVnaXN0ZXJfZ3N0X3Jlc291cmNlX2Vycm9yKToKCSAgKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICB1cGRhdGVkCgoyMDA2LTA1LTEyIDEzOjQyOjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL3N0cmVhbWhlYWRlcjoKCSAgYWRkaW5nIG5vdGVzIGFib3V0IGN1cnJlbnQgaW1wbGVtZW50YXRpb24gYW5kIGlkZWFzIGFib3V0IHN0cmVhbWhlYWRlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkaW5nIG5vdGVzIGFib3V0IGN1cnJlbnQgaW1wbGVtZW50YXRpb24gYW5kIGlkZWFzIGFib3V0IHN0cmVhbWhlYWRlcgoKMjAwNi0wNS0xMiAxMDo1MDo0MiArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvTUFOSUZFU1Q6IFVwZGF0ZSB3aW4zMiBmaWxlcyBsaXN0aW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9NQU5JRkVTVDoKCSAgVXBkYXRlIHdpbjMyIGZpbGVzIGxpc3RpbmcuCgkgICogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgQWRkIEdTVF9NQUpPUk1JTk9SIGRlZmluaXRpb24uCgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgZXhwb3J0ZWQgZnVuY3Rpb25zLgoKMjAwNi0wNS0xMiAwOToyODoyMiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBJZiBhbiBzbyBmaWxlIGhhcyBubyBwbHVnaW4gZW50cnkgcG9pbnQsIHVubG9hZCB0aGUgbW9kdWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6CgkgIElmIGFuIHNvIGZpbGUgaGFzIG5vIHBsdWdpbiBlbnRyeSBwb2ludCwgdW5sb2FkIHRoZSBtb2R1bGUuCgoyMDA2LTA1LTExIDE5OjA3OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBEb24ndCBmb3JnZXQgdG8gc2lnbmFsIHRoZSBfY2hhaW4gb3IgX2xvb3AgZnVuY3Rpb24gd2hlbiB0aGUgcXVldWUgc2l6ZSBvciB0aHJlc2hvbGRzIGNoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9jaGFpbiksIChnc3RfcXVldWVfbG9vcCksCgkgIChnc3RfcXVldWVfc2V0X3Byb3BlcnR5KToKCSAgRG9uJ3QgZm9yZ2V0IHRvIHNpZ25hbCB0aGUgX2NoYWluIG9yIF9sb29wIGZ1bmN0aW9uCgkgIHdoZW4gdGhlIHF1ZXVlIHNpemUgb3IgdGhyZXNob2xkcyBjaGFuZ2Ugc2luY2UgdGhhdCBtaWdodAoJICBjYXVzZSB0aGVtIHRvIG1ha2UgcHJvZ3JlcyBhZ2Fpbi4KCjIwMDYtMDUtMTEgMTg6MTA6MzQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEdfT0JKRUNUX0NMQVNTIG1hY3JvIHVzYWdlIGJhdGNoIGNsZWFudXAsIGZpeGVzICMzMzc3NDcgZm9yIGNvcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2NsYXNzX2luaXQpOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9wbHVnaW5zL2V4YW1wbGUuYzogKGdzdF9leGFtcGxlX2NsYXNzX2luaXQpOgoJICAqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy9zaWduYWxzLmM6IChnc3RfdGVzdF9jbGFzc19pbml0KToKCSAgR19PQkpFQ1RfQ0xBU1MgbWFjcm8gdXNhZ2UgYmF0Y2ggY2xlYW51cCwgZml4ZXMgIzMzNzc0NyBmb3IgY29yZQoKMjAwNi0wNS0xMSAxMDozNToxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogUmVnaXN0ZXIgc3ViYnVmZXIgYWxvbmcgd2l0aCB0aGUgYnVmZmVyIHR5cGUgc28gdGhhdCBpdCBkb2VzIG5vdCBhY2NpZGVudGFsbHkgZ2V0cyByZWdpc3RlcmVkIGZyb20gTi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChfZ3N0X2J1ZmZlcl9pbml0aWFsaXplKToKCSAgUmVnaXN0ZXIgc3ViYnVmZXIgYWxvbmcgd2l0aCB0aGUgYnVmZmVyIHR5cGUgc28gdGhhdAoJICBpdCBkb2VzIG5vdCBhY2NpZGVudGFsbHkgZ2V0cyByZWdpc3RlcmVkIGZyb20gTgoJICBkaWZmZXJlbnQgc3RyZWFtaW5nIHRocmVhZHMgaW4gYSBub24gdGhyZWFkc2FmZSB3YXkuCgoyMDA2LTA1LTEwIDE2OjQ0OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogTWFrZSBndGstZG9jIGdlbmVyYXRlIGRvY3MgZm9yIG91ciBpbmxpbmVkIGdzdF9idWZmZXJfcmVmKCksIGdzdF9ldmVudF9yZWYoKSBhbmQgZ3N0X21lc3NhZ2VfcmVmKCkgZnVuY3Rpb25zIGFnLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBNYWtlIGd0ay1kb2MgZ2VuZXJhdGUgZG9jcyBmb3Igb3VyIGlubGluZWQgZ3N0X2J1ZmZlcl9yZWYoKSwKCSAgZ3N0X2V2ZW50X3JlZigpIGFuZCBnc3RfbWVzc2FnZV9yZWYoKSBmdW5jdGlvbnMgYWdhaW4KCSAgKHVnbHkgaGFjaywgcGxlYXNlIGRvIGZpeCBpZiB0aGVyZSdzIGEgYmV0dGVyIHdheSBiZXNpZGVzCgkgIG92ZXJyaWRlcy50eHQsIHdoaWNoIGRvZXNuJ3Qgc2VlbSB0byB3b3JrKS4KCjIwMDYtMDUtMTAgMTU6NDk6MzAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDogYWRkIGFuIGFzc2VydCBmb3Igc2V0dGluZyBzdGF0ZSB0byBhdm9pZCBsb3RzIG9mIHJlcGV0aXRpdmUgY29kZSBpbiB0aGUgZnV0dXJlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA1LTEwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlICA8dGhvbWFzIGF0IGFwZXN0YWFydCBkb3Qgb3JnPgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGFkZCBhbiBhc3NlcnQgZm9yIHNldHRpbmcgc3RhdGUgdG8gYXZvaWQgbG90cyBvZiByZXBldGl0aXZlIGNvZGUKCSAgaW4gdGhlIGZ1dHVyZQoKMjAwNi0wNS0xMCAxNTozODo1MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0dmFsdWUuYzogZml4IGEgbGVhayBpZiBubyBmbGFncyBhcmUgc2V0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9mbGFncyk6CgkgIGZpeCBhIGxlYWsgaWYgbm8gZmxhZ3MgYXJlIHNldAoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBmaXggbGVhayBpbiB0ZXN0cwoKMjAwNi0wNS0xMCAxNTowMDozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDogRXhwYW5kIGEgYml0IG9uIGNhcHMgYW5kIGZpbHRlcmVkIGxpbmtzIGFuZCB1cGRhdGUgZXhhbXBsZXMgdGhhdCB3ZXJlIHN0aWxsIHVzaW5nIHRoZSBuby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgIEV4cGFuZCBhIGJpdCBvbiBjYXBzIGFuZCBmaWx0ZXJlZCBsaW5rcyBhbmQgdXBkYXRlCgkgIGV4YW1wbGVzIHRoYXQgd2VyZSBzdGlsbCB1c2luZyB0aGUgbm8gbG9uZ2VyIGV4aXN0aW5nCgkgIGdzdF9wYWRfbGlua19maWx0ZXJlZCgpICgjMzM4MjA2KS4KCjIwMDYtMDUtMTAgMTQ6NTE6MzMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLio6IE5vIG5lZWQgdG8gY2FsbCBfc3RvcCBpbiBfZmluYWxpemUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfZmluYWxpemUpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkKSwgKGdzdF9jb2xsZWN0X3BhZHNfcmVtb3ZlX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3NldF9mbHVzaGluZyksIChnc3RfY29sbGVjdF9wYWRzX3N0YXJ0KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc3RvcCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBObyBuZWVkIHRvIGNhbGwgX3N0b3AgaW4gX2ZpbmFsaXplLgoJICBJdGVyYXRlIHRoZSBtYWluIHBhZCBsaXN0IGluIF9maW5hbGl6ZS4KCSAgQWRkZWQgc29tZSBtb3JlIGRlYnVnLgoJICBGcmVlIGxpc3RzIGFuZCBkYXRhIGluIHRoZSByaWdodCBvcmRlci4KCSAgQWxzbyBmcmVlIGRhdGEgd2hlbSBkb2luZyBfcmVtb3ZlX3BhZCB3aGVuIHN0b3BwZWQgZm9yCgkgIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgcHJvdGVjdCA6OnN0YXJ0ZWQgd2l0aCBQQURfTE9DSyBhcwoJICB3ZWxsLgoKMjAwNi0wNS0xMCAxNDoxMjoxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IGFkZCBzb21lIGNvbW1lbnRzIHJlbmFtZSBhIG1ldGhvZCBzbyB0aGF0IGl0IGFjdHVhbGx5IHNheXMgd2hhdCBpdCBkb2VzIGJldHRlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2d0eXBlX2Zyb21fYWJiciksCgkgIChnc3Rfc3RydWN0dXJlX3BhcnNlX3ZhbHVlKToKCSAgYWRkIHNvbWUgY29tbWVudHMKCSAgcmVuYW1lIGEgbWV0aG9kIHNvIHRoYXQgaXQgYWN0dWFsbHkgc2F5cyB3aGF0IGl0IGRvZXMgYmV0dGVyCgoyMDA2LTA1LTEwIDE0OjA1OjQ2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IG1ha2Ugc3VyZSBzb21lIGVzc2VudGlhbCB0eXBlcyB1c2VkIGJ5IGV2ZW50cyBhcmUgcmVnaXN0ZXJlZCBhcyBwYXJ0IG9mIGdzdF9pbml0KCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChfZ3N0X2V2ZW50X2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3Rmb3JtYXQuYzogKF9nc3RfZm9ybWF0X2luaXRpYWxpemUpOgoJICBtYWtlIHN1cmUgc29tZSBlc3NlbnRpYWwgdHlwZXMgdXNlZCBieSBldmVudHMgYXJlIHJlZ2lzdGVyZWQKCSAgYXMgcGFydCBvZiBnc3RfaW5pdCgpCgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfc2VyaWFsaXplX2ZsYWdzKToKCSAgaWYgbm8gZmxhZ3MgYXJlIHNldCwgc2VyaWFsaXplIHRoZW0gdG8gYSB2YWx1ZSB0aGF0IHJlcHJlc2VudHMgTk9ORQoJICBzbyB0aGF0IGRlc2VyaWFsaXppbmcgdGhlbSB3b3JrcwoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgYWRkIHRlc3RzIGZvciBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24gb2YgZmxhZ3MKCjIwMDYtMDUtMTAgMTM6NTM6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgbGltaXQgdG8gODAgY2hhcnMgYWRkIG5vdGUgYWJvdXQgY2hhbmdpbmcgZGl2aWRlciBmb3IgZmxhZ3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGxpbWl0IHRvIDgwIGNoYXJzCgkgIGFkZCBub3RlIGFib3V0IGNoYW5naW5nIGRpdmlkZXIgZm9yIGZsYWdzCgoyMDA2LTA1LTEwIDExOjI0OjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBVcGRhdGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19jb2xsZWN0KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY29sbGVjdF9yYW5nZSksIChnc3RfY29sbGVjdF9wYWRzX2F2YWlsYWJsZSksCgkgIChnc3RfY29sbGVjdF9wYWRzX2NoZWNrX3BhZHMpLCAoZ3N0X2NvbGxlY3RfcGFkc19jaGVja19jb2xsZWN0ZWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCksIChnc3RfY29sbGVjdF9wYWRzX2NoYWluKToKCSAgVXBkYXRlIGRvY3MuCgkgIEJldHRlciBkZWJ1ZyBpbmZvLgoJICBDYXRjaCBhbmQgcmV0dXJuIGVycm9ycyBmcm9tIHRoZSBjb2xsZWN0IGZ1bmN0aW9uCgkgIFJlZnVzZSBkYXRhIG9uIGVvcyBwYWRzLgoKMjAwNi0wNS0xMCAxMDoyNjo1NSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RpbnRlcmZhY2UuaDogR1NUX0lNUExFTUVOVFNfSU5URVJGQUNFIGFuZCBHU1RfSVNfSU1QTEVNRU5UU19JTlRFUkZBQ0UgdXNlIHRoZSBub3JtYWwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGludGVyZmFjZS5oOgoJICBHU1RfSU1QTEVNRU5UU19JTlRFUkZBQ0UgYW5kIEdTVF9JU19JTVBMRU1FTlRTX0lOVEVSRkFDRSB1c2UgdGhlIG5vcm1hbAoJICBHSW50ZXJmYWNlIHR5cGUgY2hlY2tpbmcuCgkgIFRoZXkgd2VyZSBwcmV2aW91c2x5IHVzaW5nIG5vbi1kZWZpbmVkIG1hY3Jvcy4KCjIwMDYtMDUtMDkgMjA6NDc6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLio6IENsZWFuIHVwIHRoZSBtZXNzIHRoYXQgaXMgY29sbGVjdHBhZHMsIGFkZCBjb21tZW50cyBhbmQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19pbml0KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfZmluYWxpemUpLCAoZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfcmVtb3ZlX3BhZCksIChnc3RfY29sbGVjdF9wYWRzX3NldF9mbHVzaGluZyksCgkgIChnc3RfY29sbGVjdF9wYWRzX3N0YXJ0KSwgKGdzdF9jb2xsZWN0X3BhZHNfc3RvcCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3BlZWspLCAoZ3N0X2NvbGxlY3RfcGFkc19wb3ApLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19hdmFpbGFibGUpLCAoZ3N0X2NvbGxlY3RfcGFkc19yZWFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfZmx1c2gpLCAoZ3N0X2NvbGxlY3RfcGFkc19jaGVja19wYWRzKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfaXNfY29sbGVjdGVkKSwgKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19jaGFpbik6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBDbGVhbiB1cCB0aGUgbWVzcyB0aGF0IGlzIGNvbGxlY3RwYWRzLCBhZGQgY29tbWVudHMgYW5kCgkgIEZJWE1FcyB3aGVyZSBuZWVkZWQuCgkgIE1haW50YWluIGEgc2VwYXJhdGUgcGFkIGxpc3Qgc28gd2UgY2FuIGFkZCBwYWRzIHdoaWxlCgkgIGNvbGxlY3RpbmcgdGhlIG90aGVyIG9uZXMuIEZvciB0aGlzIHdlIG5lZWQgYSBuZXcgc2VwYXJhdGUKCSAgbG9jayAoc2VlIGNvbWljcykuCgkgIEZpeCBtZW1vcnkgbGVhayBpbiBmaW5hbGl6ZS4KCSAgUmVmYWN0b3Igc29tZSB3ZWlyZCBjb2RlIHRvIHNldC91bnNldCBwYWQgZmx1c2hpbmcgZmxhZ3MsIG1hcmsKCSAgd2l0aCBjb21tZW50cy4KCSAgRG9uJ3QgY3Jhc2ggaW4gX2F2YWlsYWJsZSwgX3JlYWQsIF9mbHVzaCB3aGVuIHdlJ3JlIEVPUy4KCSAgKiB0ZXN0cy9jaGVjay9saWJzLy5jdnNpZ25vcmU6CgkgIElnbm9yZSBhZGFwdGVyIGNoZWNrIGJpbmFyeS4KCjIwMDYtMDUtMDkgMTk6MTQ6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGRvYyB3aGl0ZXNwYWNlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb2Mgd2hpdGVzcGFjZSBmaXhlcwoKMjAwNi0wNS0wOSAxNzo1ODozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIENvbnN0LWlmeSBHRW51bVZhbHVlIGFycmF5cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfcmVzb2x2ZXJfZ2V0X3R5cGUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgKGdzdF9mYWtlX3Npbmtfc3RhdGVfZXJyb3JfZ2V0X3R5cGUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2RhdGFfZ2V0X3R5cGUpLAoJICAoZ3N0X2Zha2Vfc3JjX3NpemV0eXBlX2dldF90eXBlKSwgKGdzdF9mYWtlX3NyY19maWxsdHlwZV9nZXRfdHlwZSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAocXVldWVfbGVha3lfZ2V0X3R5cGUpOgoJICBDb25zdC1pZnkgR0VudW1WYWx1ZSBhcnJheXMuCgoyMDA2LTA1LTA5IDEzOjIzOjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiBBZGQgdGVzdCBjYXNlIGZvciBmbGFncyArIGdzdF9idWZmZXJfbWFrZV9tZXRhZGF0YV93cml0YWJsZSgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZCB0ZXN0IGNhc2UgZm9yIGZsYWdzICsgZ3N0X2J1ZmZlcl9tYWtlX21ldGFkYXRhX3dyaXRhYmxlKCkuCgoyMDA2LTA1LTA5IDEyOjAxOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBnc3RfYnVmZmVyX21ha2VfbWV0YWRhdGFfd3JpdGFibGUoKSBzaG91bGQgbWFpbnRhaW4gdGhlIGJ1ZmZlciBmbGFncyAodGhvc2UgdGhhdCBtYWtlIHNlbnNlIGF0IGxlYXN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfbWFrZV9tZXRhZGF0YV93cml0YWJsZSk6CgkgIGdzdF9idWZmZXJfbWFrZV9tZXRhZGF0YV93cml0YWJsZSgpIHNob3VsZCBtYWludGFpbiB0aGUKCSAgYnVmZmVyIGZsYWdzICh0aG9zZSB0aGF0IG1ha2Ugc2Vuc2UgYXQgbGVhc3QpIChzZWUgIzM0MDg1OSkuCgoyMDA2LTA1LTA5IDEwOjUzOjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvOiBGaXggdXAgaW5jbHVkZXM6IG5lZWQgdG8gaW5jbHVkZSBzdGRsaWIuaCBpbiB0b29scy5oIGZvciBleGl0KCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICAqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgICogdG9vbHMvdG9vbHMuaDoKCSAgRml4IHVwIGluY2x1ZGVzOiBuZWVkIHRvIGluY2x1ZGUgc3RkbGliLmggaW4gdG9vbHMuaCBmb3IgZXhpdCgpLgoKMjAwNi0wNS0wOSAxMDowMjo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0Lio6IEFQSTogYWRkIEdTVF9UQUdfSU1BR0UgdGFnICgjMzQwNzIxKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKF9nc3RfdGFnX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIEFQSTogYWRkIEdTVF9UQUdfSU1BR0UgdGFnICgjMzQwNzIxKS4KCjIwMDYtMDUtMDggMTc6MTI6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cXVlcnkuYzogQWRkZWQgc29tZSBkb2NzIGZvciB0aGUgc2VnbWVudCBxdWVyeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6CgkgIEFkZGVkIHNvbWUgZG9jcyBmb3IgdGhlIHNlZ21lbnQgcXVlcnkuCgoyMDA2LTA1LTA4IDE3OjAzOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEFsd2F5cyBwdXNoIG5vbi1mbHVzaGluZyBzZXJpYWxpemVkIGV2ZW50cyBpbiB0aGUgc3RyZWFtaW5nIHRocmVhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKSwgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBBbHdheXMgcHVzaCBub24tZmx1c2hpbmcgc2VyaWFsaXplZCBldmVudHMgaW4gdGhlIHN0cmVhbWluZwoJICB0aHJlYWQuCgoyMDA2LTA1LTA4IDE1OjUzOjEyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuaDoKCSAgd2hpdGVzcGFjZSwgY29tbWVudCwgZG9jIGZpeHVwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlLCBjb21tZW50LCBkb2MgZml4dXAKCjIwMDYtMDUtMDggMTU6NTI6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGVycm9yLmM6IEFkZCBhIG1pc3NpbmcgZXJyb3Igc3RyaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzogKF9nc3Rfc3RyZWFtX2Vycm9yc19pbml0KToKCSAgQWRkIGEgbWlzc2luZyBlcnJvciBzdHJpbmcuCgoyMDA2LTA1LTA4IDE0OjU1OjI2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQWRkIGFwcGxpZWRfcmF0ZSB0byB0aGUgZGVidWcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb25maWd1cmVfc2VnbWVudCk6CgkgIEFkZCBhcHBsaWVkX3JhdGUgdG8gdGhlIGRlYnVnCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKToKCSAgQ29weSBhcHBsaWVkX3JhdGUgaW50byB0aGUgb3V0Z29pbmcgTkVXU0VHTUVOVCBldmVudAoKMjAwNi0wNS0wOCAxMTo0OTo0MyArMDAwMCAgUGhpbGlwcGUgUm91cXVpZXIgPHBoaWxpcHBlcm9AbGliZXJ0eXN1cmYuZnI+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IGNhbGwgOjp1bmxvY2sgYmVmb3JlIHRha2luZyB0aGUgUFJFUk9MTF9MT0NLIHNvIHdlIGNhbiBzYWZlbHkgaGFuZGxlIGVsZW1lbnRzIHRoYXQgbG9jayAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQaGlsaXBwZSBSb3VxdWllciA8cGhpbGlwcGVybyBhdCBsaWJlcnR5c3VyZiBkb3QgZnI+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19zZXRfZmx1c2hpbmcpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBjYWxsIDo6dW5sb2NrIGJlZm9yZSB0YWtpbmcgdGhlIFBSRVJPTExfTE9DSyBzbyB3ZSBjYW4gc2FmZWx5CgkgIGhhbmRsZSBlbGVtZW50cyB0aGF0IGxvY2sgaW4gOjpyZW5kZXIuCgkgIEZpeGVzICMzNDAxNzQuCgoyMDA2LTA1LTA4IDExOjQzOjE5ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgYXV0b2dlbi5zaDogRGFyd2luJ3MgbGlidG9vbGl6ZSBpcyBpbiBmYWN0IGNhbGxlZCBnbGlidG9vbGl6ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogYXV0b2dlbi5zaDogKENPTkZJR1VSRV9ERUZfT1BUKToKCSAgRGFyd2luJ3MgbGlidG9vbGl6ZSBpcyBpbiBmYWN0IGNhbGxlZCBnbGlidG9vbGl6ZS4KCSAgQWRkaW5nIGdsaWJ0b29saXplIHRvIHRoZSBsaXN0IG9mIGFjY2VwdGVkIG5hbWVzIGZvciBsaWJ0b29saXplLgoKMjAwNi0wNS0wOCAxMTozNToyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBVbmlmeSBlcnJvciBoYW5kbGluZywgZG9uJ3QgcG9zdCBhbiBlcnJvciBtZXNzYWdlIHdoZW4gYSBwdXNoKCkgcmV0dXJucyBFT1MgYnV0IHBlcmZvcm0gby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19sb29wKToKCSAgVW5pZnkgZXJyb3IgaGFuZGxpbmcsIGRvbid0IHBvc3QgYW4gZXJyb3IgbWVzc2FnZQoJICB3aGVuIGEgcHVzaCgpIHJldHVybnMgRU9TIGJ1dCBwZXJmb3JtIG91ciBub3JtYWwgRU9TCgkgIGhhbmRsaW5nIGNvZGUuIEZpeGVzICMzNDA3NzIuCgoyMDA2LTA1LTA4IDA5OjUyOjMzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6IE1ha2UgdXBzdGVhbS9kb3duc3RyZWFtIGNvbmNlcHRzIG1vcmUgY2xlYXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICBNYWtlIHVwc3RlYW0vZG93bnN0cmVhbSBjb25jZXB0cyBtb3JlIGNsZWFyLgoJICBHaXZlIGFuIGV4YW1wbGUgb2Ygc2VyaWFsaXplZC9ub24tc2VyaWFsaXplZCBldmVudHMuCgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtcy50eHQ6CgkgIE1lbnRpb24gYXBwbGllZF9yYXRlLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6CgkgIE1lbnRpb24gYXBwbGllZCByYXRlLCBmbGVzaCBvdXQgc29tZSBtb3JlIHVzZSBjYXNlcy4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfbmV3X3NlZ21lbnQpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX25ld19zZWdtZW50KSwgKGdzdF9ldmVudF9uZXdfbmV3X3NlZ21lbnRfZnVsbCksCgkgIChnc3RfZXZlbnRfcGFyc2VfbmV3X3NlZ21lbnRfZnVsbCksIChnc3RfZXZlbnRfbmV3X3RhZyksCgkgIChnc3RfZXZlbnRfcGFyc2VfdGFnKSwgKGdzdF9ldmVudF9uZXdfYnVmZmVyX3NpemUpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX2J1ZmZlcl9zaXplKSwgKGdzdF9ldmVudF9uZXdfcW9zKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9xb3MpLCAoZ3N0X2V2ZW50X3BhcnNlX3NlZWspLAoJICAoZ3N0X2V2ZW50X25ld19uYXZpZ2F0aW9uKToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgQWRkIGFwcGxpZWRfcmF0ZSBmaWVsZCB0byBORVdTRUdNRU5UIGV2ZW50LgoJICBBUEk6IGdzdF9ldmVudF9uZXdfbmV3X3NlZ21lbnRfZnVsbCgpCgkgIEFQSTogZ3N0X2V2ZW50X3BhcnNlX25ld19zZWdtZW50X2Z1bGwoKQoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9pbml0KSwgKGdzdF9zZWdtZW50X3NldF9zZWVrKSwKCSAgKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50KSwgKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50X2Z1bGwpLAoJICAoZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUpLCAoZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKToKCSAgKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBBZGQgYXBwbGllZF9yYXRlIHRvIEdzdFNlZ21lbnQgc3RydWN0dXJlLgoJICBNYWtlIGNhbGN1bGF0aW9uIG9mIHN0cmVhbV90aW1lIGFuZCBydW5uaW5nX3RpbWUgbW9yZSBjb3JyZWN0CgkgIHdydCByYXRlL2FwcGxpZWRfcmF0ZS4KCSAgQWRkIHNvbWUgbW9yZSBkb2NzLgoJICBBUEk6IEdzdFNlZ21lbnQ6OmFwcGxpZWRfcmF0ZSBmaWVsZAoJICBBUEk6IGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50X2Z1bGwoKTsKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbmZpZ3VyZV9zZWdtZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfZXZlbnRmdW5jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgUGFyc2UgYW5kIHVzZSBhcHBsaWVkX3JhdGUgaW4gdGhlIEdzdFNlZ21lbnQgZmllbGQuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZCBjaGVjayBmb3IgYXBwbGllZF9yYXRlIGZpZWxkLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RzZWdtZW50c19zdWl0ZSk6CgkgIEFkZCBtb3JlIGNoZWNrcyBmb3IgdmFyaW91cyBHc3RTZWdtZW50IG9wZXJhdGlvbnMuCgoyMDA2LTA1LTA4IDA5OjE2OjAxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBTdG9yZSB0aGUgc3luYyB0aW1lIG9mIHRoZSBidWZmZXIgZW5kIHBvc2l0aW9uIHNlcGFyYXRseSBpbiBhIG5ldyB2YXJpYWJsZSBlb3NfcnRpbWUgc28gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfY2hhaW5fdW5sb2NrZWQpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBTdG9yZSB0aGUgc3luYyB0aW1lIG9mIHRoZSBidWZmZXIgZW5kIHBvc2l0aW9uIHNlcGFyYXRseSBpbiBhCgkgIG5ldyB2YXJpYWJsZSBlb3NfcnRpbWUgc28gd2UgY2FuIHByb3Blcmx5IHN5bmMgdGhlIEVPUyBldmVudC4KCSAgRml4ZXMgIzM0MDY5Ny4KCSAgRml4IHRoZSBkb2NzIGZvciBnc3RfYmFzZV9zaW5rX3NldF9xb3NfZW5hYmxlZCgpLgoJICBEb24ndCBzZXQgc2VnbWVudCBzdGFydCB0byBpbnZhbGlkIHZhbHVlIHdoZW4gd2UgcmVjZWl2ZSBhCgkgIG5vbiBUSU1FIG5ld3NlZ21lbnQuCgkgIGdldCBjbG9zZXIgdG8gaGFuZGxpbmcgcG9zaXRpb24gcmVwb3J0aW5nIGZvciBuZWdhdGl2ZSByYXRlcwoJICBjb3JyZWN0bHkuCgoyMDA2LTA1LTA3IDE5OjU3OjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBEb2NzIGFib3V0IGhvdyB0byBwcmludCBjYXBzIGZvciBkZWJ1ZyBwdXJwb3Nlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzoKCSAgRG9jcyBhYm91dCBob3cgdG8gcHJpbnQgY2FwcyBmb3IgZGVidWcgcHVycG9zZXMuCgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6IChnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXQpOgoJICB1c2UgZ3N0X2NhcHNfbWFrZV93cml0YWJsZSBpbnN0ZWFkIG9mIGdzdF9jYXBzX2NvcHksIEZpeGVzICMzNDA2MDgKCjIwMDYtMDUtMDYgMjE6NDU6MjcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IHVzZSBmdWxsIGVudW0gbmFtZXMgYW5kIHByZXByZW5kIGEgJyUnIGluIGRvY3Mgc3RyaW5ncyB0byBtYWtlIHJlY2VudCBndGstZG9jIHR1cm4gdGhhdCBpbnRvIGEgbGluawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICB1c2UgZnVsbCBlbnVtIG5hbWVzIGFuZCBwcmVwcmVuZCBhICclJyBpbiBkb2NzIHN0cmluZ3MgdG8gbWFrZSByZWNlbnQKCSAgZ3RrLWRvYyB0dXJuIHRoYXQgaW50byBhIGxpbmsKCjIwMDYtMDUtMDUgMjE6NDQ6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC86IFNvbWUgdHlwbyBmaXhlcywgc29tZSBhZGRpdGlvbnMsIHNvbWUgY2xhcmlmaWNhdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgIFNvbWUgdHlwbyBmaXhlcywgc29tZSBhZGRpdGlvbnMsIHNvbWUgY2xhcmlmaWNhdGlvbnMuCgoyMDA2LTA1LTA1IDE3OjQ1OjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvOiBVc2UgdGhlIHN0cmluZyBwYXNzZWQgdG8gZ19vcHRpb25fY29udGV4dF9uZXcoKSBmb3Igd2hhdCBpdCdzIGludGVuZGVkIGZvciAtIHRoZSBwcm9ncmFtIG5hbWUgaXMgYWxyZWFkeSBwcmluLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtcnVuLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtdHlwZWZpbmQuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IChtYWluKToKCSAgVXNlIHRoZSBzdHJpbmcgcGFzc2VkIHRvIGdfb3B0aW9uX2NvbnRleHRfbmV3KCkgZm9yCgkgIHdoYXQgaXQncyBpbnRlbmRlZCBmb3IgLSB0aGUgcHJvZ3JhbSBuYW1lIGlzIGFscmVhZHkKCSAgcHJpbnRlZCBlbHNld2hlcmUuCgoyMDA2LTA1LTA1IDE3OjA3OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvOiBBZGQgYmFjayAtLXZlcnNpb24gY29tbWFuZCBsaW5lIG9wdGlvbiAoIzM0MDQ2MCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL01ha2VmaWxlLmFtOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOiAobWFpbik6CgkgICogdG9vbHMvdG9vbHMuaDoKCSAgQWRkIGJhY2sgLS12ZXJzaW9uIGNvbW1hbmQgbGluZSBvcHRpb24gKCMzNDA0NjApLgoJICAqIHRvb2xzL2dzdC10eXBlZmluZC5jOiAoaGF2ZV90eXBlX2hhbmRsZXIpLCAodHlwZWZpbmRfZmlsZSksIChtYWluKToKCSAgQWRkIC0tdmVyc2lvbiBvcHRpb24gYW5kIHVzZSBHT3B0aW9uIGZvciBhcmd1bWVudCBwYXJzaW5nOyByZWZhY3RvciBhCgkgIGJpdDsgYWNjZXB0IGRpcmVjdG9yaWVzIGFzIGFyZ3VtZW50cyBhbmQgcmVjdXJzZSBpbnRvIHRoZW07IGxhc3RseSwKCSAgcHJpbnQgYSBkZWNlbnQgZXJyb3IgbWVzc2FnZSB3aGVuIHRoaW5ncyBnbyB3cm9uZy4KCjIwMDYtMDUtMDUgMTQ6Mzg6MDEgKzAwMDAgIE1hY2llaiBLYXRhZmlhc3ogPG1hdGhyaWNrQG1hdGhyaWNrLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJpbnMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJICBEb24ndCBtZW50aW9uIEdzdFRocmVhZCAoIzM0MDYxMSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIERvbid0IG1lbnRpb24gR3N0VGhyZWFkICgjMzQwNjExKQoJICBVcGRhdGUgbGluayB0byBHT2JqZWN0IHR1dG9yaWFsICgjMzQwNjA3KQoKMjAwNi0wNS0wNSAxNDoyNzozMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEFkZCBub3RlIGFib3V0IHJlZmNvdW50aW5nIGFuZCBtaW5pb2JqZWN0L2J1ZmZlciB3cml0ZWFiaWxpdHkgdG8gZG9jcy4gRml4ZXMgIzM0MDYwNAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgQWRkIG5vdGUgYWJvdXQgcmVmY291bnRpbmcgYW5kIG1pbmlvYmplY3QvYnVmZmVyIHdyaXRlYWJpbGl0eQoJICB0byBkb2NzLiBGaXhlcyAjMzQwNjA0CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIEFkZGVkIHNvbWUgZXhwbGFuYXRpb24gYWJvdXQgQGtsYXNzLgoKMjAwNi0wNS0wNSAxNDowOToyMSArMDAwMCAgTWFjaWVqIEthdGFmaWFzeiA8bWF0aHJpY2tAbWF0aHJpY2sub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL21hbnVhbC9pbnRyby1tb3RpdmF0aW9uLnhtbDoKCSogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSAgQXZvaWQgQ09SQkEgJiBCb25vYm8gcmVmZXJlbmNlcyAoIzM0MDU5OCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEF2b2lkIENPUkJBICYgQm9ub2JvIHJlZmVyZW5jZXMgKCMzNDA1OTgpCgoyMDA2LTA1LTA1IDEzOjUzOjI4ICswMDAwICBNYWNpZWogS2F0YWZpYXN6IDxtYXRocmlja0BtYXRocmljay5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgIEZpeCB1cCBzb21lIGluYWNjdXJhY2llcyBhbmQgb21pc3Npb25zIGluIEFETSAoIzM0MDYwOSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZpeCB1cCBzb21lIGluYWNjdXJhY2llcyBhbmQgb21pc3Npb25zIGluIEFETSAoIzM0MDYwOSkKCjIwMDYtMDUtMDUgMTI6NTM6MzMgKzAwMDAgIE1hY2llaiBLYXRhZmlhc3ogPG1hdGhyaWNrQG1hdGhyaWNrLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIFNtYWxsIHR5cG8gaW4gZG9jcyAoIzM0MDYyNSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFNtYWxsIHR5cG8gaW4gZG9jcyAoIzM0MDYyNSkKCjIwMDYtMDUtMDUgMDk6MDE6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvcGFyc2UvTWFrZWZpbGUuYW06IE1ha2UgJ21ha2UgLWonIHByb29mIChzZWUgIzM0MDY5OCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgTWFrZSAnbWFrZSAtaicgcHJvb2YgKHNlZSAjMzQwNjk4KS4KCjIwMDYtMDUtMDUgMDg6NTY6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBjb25maWd1cmUuYWM6IFJlcXVpcmUgR0xpYi0yLjggaGVyZSBhcyB3ZWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFJlcXVpcmUgR0xpYi0yLjggaGVyZSBhcyB3ZWxsLgoKMjAwNi0wNS0wNSAwODoxNzoyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFJlbW92ZSBwcmUgZ2xpYjIuOCBjb21wYXRpYmlsaXR5LCBmaXhlcyAjMzQwNTA4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nbGliLWNvbXBhdC5jOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcHJlKToKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2luaXQpLCAoZ3N0X29iamVjdF9yZWYpLAoJICAoZ3N0X29iamVjdF91bnJlZiksIChnc3Rfb2JqZWN0X3JlcGxhY2UpLCAoZ3N0X29iamVjdF9kaXNwb3NlKSwKCSAgKGdzdF9vYmplY3RfZGlzcGF0Y2hfcHJvcGVydGllc19jaGFuZ2VkKToKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChnc3RfcmVnaXN0cnlfeG1sX3JlYWRfY2FjaGUpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfc2V0X3ZhbGlzdCk6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfZGF0ZV9nZXRfdHlwZSksIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOgoJICBSZW1vdmUgcHJlIGdsaWIyLjggY29tcGF0aWJpbGl0eSwgZml4ZXMgIzM0MDUwOAoKMjAwNi0wNS0wNCAxODoxNDozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0Lmg6IE1lbnRpb24gdHlwZSBvZiB0YWdzIGluIGRvYyBibHVyYnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIE1lbnRpb24gdHlwZSBvZiB0YWdzIGluIGRvYyBibHVyYnMuCgoyMDA2LTA1LTA0IDE2OjM0OjIwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogUmVzdG9yZSBhY2NlcHRjYXBzIGNoZWNraW5nIGJlaGF2aW91ciBub3cgdGhhdCBnb29kIHBsdWdpbnMgaGF2ZSBiZWVuIHJlbGVhc2VkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2luaXQpLCAoZ3N0X3BhZF9jb25maWd1cmVfc2luayksCgkgIChnc3RfcGFkX2NvbmZpZ3VyZV9zcmMpLCAoZ3N0X3BhZF9wdXNoKToKCSAgUmVzdG9yZSBhY2NlcHRjYXBzIGNoZWNraW5nIGJlaGF2aW91ciBub3cgdGhhdCBnb29kIHBsdWdpbnMgaGF2ZQoJICBiZWVuIHJlbGVhc2VkLgoKMjAwNi0wNS0wNCAxNToyMDoxNCArMDAwMCAgSmFtZXMgQW5kcmV3YXJ0aGEgPHRyczgwQHRhcnRhcnVzLnV3YS5lZHUuYXU+CgoJICBNYWtlIHN1cmUgZ3N0cHJpdmF0ZS5oIGFuZC9vciBjb25maWcuaCBhcmUgYWx3YXlzIGluY2x1ZGVkIGZpcnN0LCBvdGhlcndpc2Ugc29tZSBvZiBvdXIgZGVmaW5lcyAobGlrZSBfRklMRV9PRkZTRVRfQkkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBKYW1lcyBBbmRyZXdhcnRoYSA8dHJzODAgYXQgdGFydGFydXMgdXdhIGVkdSBhdT4KCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3Rmb3JtYXQuYzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICAqIGdzdC9nc3RwYXJzZS5jOgoJICAqIGdzdC9nc3RxdWVyeS5jOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBNYWtlIHN1cmUgZ3N0cHJpdmF0ZS5oIGFuZC9vciBjb25maWcuaCBhcmUKCSAgYWx3YXlzIGluY2x1ZGVkIGZpcnN0LCBvdGhlcndpc2Ugc29tZSBvZiBvdXIKCSAgZGVmaW5lcyAobGlrZSBfRklMRV9PRkZTRVRfQklUUykgbWlnaHQgYmUKCSAgcmVkZWZpbmVkIGluIHRoZSBzeXN0ZW0gaGVhZGVycy4gRml4ZXMgYnVpbGQKCSAgb24gb3BlbnNvbGFyaXMgKCMzNDAwMTYpLgoKMjAwNi0wNS0wNCAxNDoxOTo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEFQSTogYWRkaXRpb246IGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyKCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgQVBJOiBhZGRpdGlvbjogZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXIoKQoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiAoZ3N0X2FkYXB0ZXJfcHVzaCksCgkgIChnc3RfYWRhcHRlcl9wZWVrKSwgKGdzdF9hZGFwdGVyX3Rha2UpLCAoZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXIpLAoJICAoZ3N0X2FkYXB0ZXJfYXZhaWxhYmxlX2Zhc3QpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBQcmVwYXJlIGZvciBvcHRpbWl6aW5nIHRoZSBoZWxsIG91dCBvZiB0aGlzIGh1Z2VseSBpbmVmZmljaWVudAoJICBwaWVjZSBvZiBjb2RlLgoJICBBZGRlZCBnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcigpIHNvIHdlIGNhbiBhdCBsZWFzdCBzdGFydCB0aGlua2luZwoJICBhYm91dCBzdWJidWZmZXJpbmcgYW5kIG1lcmdpbmcuCgkgIEFkZGVkIHNvbWUgY29tbWVudHMuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfYWRhcHRlcl9zdWl0ZSksIChtYWluKToKCSAgQWRkZWQgR3N0QWRhcHRlciBjaGVjay4KCjIwMDYtMDUtMDQgMTM6MzA6MzAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDogRml4IHNvbWUgdHlwb3MsIGFkZCBibHVyYiBhYm91dCBidWZmZXIgZmxhZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICBGaXggc29tZSB0eXBvcywgYWRkIGJsdXJiIGFib3V0IGJ1ZmZlciBmbGFncy4KCjIwMDYtMDUtMDMgMTY6NDU6MTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogbWFrZSBzdXJlIEdzdEJhc2VUcmFuc2Zvcm1DbGFzcyBzaG93cyB1cCBpbiB0aGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBtYWtlIHN1cmUgR3N0QmFzZVRyYW5zZm9ybUNsYXNzIHNob3dzIHVwIGluIHRoZSBkb2NzCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIG1vdmUgZG9jcyBzbyBndGstZG9jIHBpY2tzIGl0IHVwIG5vdwoKMjAwNi0wNS0wMyAxNjo0MjowOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgd2hpdGVzcGFjZSByZW1vdmFsIGFuZCB3aWR0aCBjb2VyY2lvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZSByZW1vdmFsIGFuZCB3aWR0aCBjb2VyY2lvbgoKMjAwNi0wNS0wMyAxNjo0MDo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBNYWtlZmlsZS5hbToKCSAgd2hpdGVzcGFjZSBtb3ZpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2UgbW92aW5nCgoyMDA2LTA1LTAyIDE3OjI5OjA3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBhZGQgbWlzc2luZyBzeW1ib2xzIHRvIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgYWRkIG1pc3Npbmcgc3ltYm9scyB0byBkb2NzCgoyMDA2LTA1LTAyIDE3OjE3OjIyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IGJhY2sgb3V0IHRoZSBuZXdzZWdtZW50IGhhbmRsaW5nIGNoYW5nZSwgc2VlICMzNDAwNjAgZm9yIG9uZ29pbmcgZGlzY3Vzc2lvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KToKCSAgYmFjayBvdXQgdGhlIG5ld3NlZ21lbnQgaGFuZGxpbmcgY2hhbmdlLCBzZWUgIzM0MDA2MCBmb3Igb25nb2luZwoJICBkaXNjdXNzaW9uCgoyMDA2LTA0LTI5IDIzOjE1OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LXJ1bi5jOiBGaXggd3JvbmcgZ19maWxlX3Rlc3QoKSB1c2FnZSAoc2VlIGdsaWIgZG9jcyBmb3Igd2h5IGl0IGRvZXNuJ3Qgd29yayk7IGZpeCB0eXBvIGluIGVycm9yIG1lc3NhZ2UuIEZpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1ydW4uYzogKGdldF9jYW5kaWRhdGVzKSwgKG1haW4pOgoJICBGaXggd3JvbmcgZ19maWxlX3Rlc3QoKSB1c2FnZSAoc2VlIGdsaWIgZG9jcyBmb3Igd2h5IGl0IGRvZXNuJ3QKCSAgd29yayk7IGZpeCB0eXBvIGluIGVycm9yIG1lc3NhZ2UuIEZpeGVzICMzNDAwNzkuCgoyMDA2LTA0LTI5IDAwOjM4OjA2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcGx1Z2lucy90bXBsLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNi0wNC0yOSAwMDozNjo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBtb3ZlIHVwbG9hZC5tYWsgdG8gY29tbW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbW1vbi9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvZmFxL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wd2cvTWFrZWZpbGUuYW06CgkgICogZG9jcy9zbGlkZXMvTWFrZWZpbGUuYW06CgkgICogZG9jcy91cGxvYWQubWFrOgoJICAqIGNvbW1vbi91cGxvYWQubWFrOgoJICBtb3ZlIHVwbG9hZC5tYWsgdG8gY29tbW9uCgoyMDA2LTA0LTI5IDAwOjM1OjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJICBhZGQgbW9yZSBub3RlcyBvbiBtb3ZpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtb3JlIG5vdGVzIG9uIG1vdmluZwoKMjAwNi0wNC0yOSAwMDozMzo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogYWRkIG1vcmUgYXNzZXJ0cyBvbiByZWZjb3VudHMgZG8gbW9yZSBjbGVhbnVwIGF0IGVuZCBvZiB0ZXN0cyBmaXggdGVzdCBsZWFrcyBzaG93aW5nIGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDQtMjkgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgIDx0aG9tYXMgYXQgYXBlc3RhYXJ0IGRvdCBvcmc+CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIGFkZCBtb3JlIGFzc2VydHMgb24gcmVmY291bnRzCgkgIGRvIG1vcmUgY2xlYW51cCBhdCBlbmQgb2YgdGVzdHMKCSAgZml4IHRlc3QgbGVha3Mgc2hvd2luZyBpbiBGQzUKCjIwMDYtMDQtMjggMjI6NTY6MjggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IHJldmVydGVkIHdyb25nIGNoYW5nZSBhbmQgcmVmbG93ZWQgY29kZSB0byBhdm9pZCBvdGhlcnMgZmFsbGluZyBpbnRvIHRoaXMgdHJhcAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCk6CgkgIHJldmVydGVkIHdyb25nIGNoYW5nZSBhbmQgcmVmbG93ZWQgY29kZSB0byBhdm9pZCBvdGhlcnMgZmFsbGluZyBpbnRvCgkgIHRoaXMgdHJhcAoKMjAwNi0wNC0yOCAyMDo1NTozMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBmaXggY2hhbmdlbG9nIGVudHJ5IGFib3V0IGxhc3QgY29sbGVjdHBhZHMgY2hhbmdlLCBhZGQgbm90ZXMgYWJvdXQgcHJvcGVyIGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KToKCSAgZml4IGNoYW5nZWxvZyBlbnRyeSBhYm91dCBsYXN0IGNvbGxlY3RwYWRzIGNoYW5nZSwKCSAgYWRkIG5vdGVzIGFib3V0IHByb3BlciBmaXgKCjIwMDYtMDQtMjggMjA6NDc6MjMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IG9ubHkgd3JpdGUgb3V0IHJlZ2lzdHJ5IGlmIGl0IGhhcyBjaGFuZ2VkLCBmaXhlcyAjMzM4MzM5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpLAoJICAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIG9ubHkgd3JpdGUgb3V0IHJlZ2lzdHJ5IGlmIGl0IGhhcyBjaGFuZ2VkLCBmaXhlcyAjMzM4MzM5CgoyMDA2LTA0LTI4IDIwOjQ0OjIxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBvbmx5IHdyaXRlIG91dCByZWdpc3RyeSBpZiBpdCBoYXMgY2hhbmdlZCwgZml4ZXMgIzMzODMzOQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKSwKCSAgKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGgpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICBvbmx5IHdyaXRlIG91dCByZWdpc3RyeSBpZiBpdCBoYXMgY2hhbmdlZCwgZml4ZXMgIzMzODMzOQoKMjAwNi0wNC0yOCAxODo1NToxNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbWFrZSBHc3RFbGVtZW50RGV0YWlscyBjb25zdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpOgoJICBtYWtlIEdzdEVsZW1lbnREZXRhaWxzIGNvbnN0CgoyMDA2LTA0LTI4IDE4OjQ4OjM4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlLzogbW9yZSBkZXRhaWxlZCBkZWJ1ZyBhbmQgZm9ybWF0dGluZyBjbGVhbnVwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZXZlbnQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfYmFzZV9pbml0KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfaXNfY29sbGVjdGVkKSwgKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpOgoJICBtb3JlIGRldGFpbGVkIGRlYnVnIGFuZCBmb3JtYXR0aW5nIGNsZWFudXAKCjIwMDYtMDQtMjggMTc6NTI6MTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R1dGlscy5jOiBjbGVhbnVwIGRvdWJsZSBjb2RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfbGlua19wYWRzKToKCSAgY2xlYW51cCBkb3VibGUgY29kZQoKMjAwNi0wNC0yOCAxNzozMzo0MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IHNvbWUgbGl0dGxlIHR1bmluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVyX3N5bmNfdmFsdWVzKToKCSAgc29tZSBsaXR0bGUgdHVuaW5nCgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgIGEgbmV3IHRlc3QgZm9yIGxpdmUgdmFsdWUgaGFuZGxpbmcKCjIwMDYtMDQtMjggMTU6NTE6NTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEdpdmUgY3JlZGl0IHRvIFRhcGkgUGFhdm9sYSBmb3IgbGFzdCBwYXRjaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgR2l2ZSBjcmVkaXQgdG8gVGFwaSBQYWF2b2xhIGZvciBsYXN0IHBhdGNoCgoyMDA2LTA0LTI4IDE1OjQ4OjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IEFkZGVkIHNvbWUgbW9yZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKHB1c2hfYW5kX3JlZik6CgkgIEFkZGVkIHNvbWUgbW9yZSBkb2NzLgoJICBGaXggcmVmY291bnQgaXNzdWUgd2hpdGggZ3N0X2VsZW1lbnRfZm91bmRfdGFncygpIGhlbHBlcgoJICBmdW5jdGlvbi4gRml4ZXMgIzMzODMzNQoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3V0aWxzX3N1aXRlKToKCSAgQWRkZWQgdGVzdHN1aXRlIGZvciBnc3RfZWxlbWVudF9mb3VuZF90YWdzKCkuCgoyMDA2LTA0LTI4IDEzOjUxOjAwICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0dmFsdWUuYzogQXZvaWQgTlVMTCBkZXJlZmVyZW5jZSB3aGVuIHRyeWluZyB0byBzZXJpYWxpemUgZmxhZ3MgY29udGFpbmluZyBpbnZhbGlkIHZhbHVlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfc2VyaWFsaXplX2ZsYWdzKToKCSAgQXZvaWQgTlVMTCBkZXJlZmVyZW5jZSB3aGVuIHRyeWluZyB0byBzZXJpYWxpemUgZmxhZ3MgY29udGFpbmluZwoJICBpbnZhbGlkIHZhbHVlcy4KCjIwMDYtMDQtMjggMTM6NDQ6MjAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBzbWFsbCBkb2MgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzbWFsbCBkb2MgZml4CgoyMDA2LTA0LTI4IDEzOjQzOjAzICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBJZiB3ZSBnZXQgRU9TIGJlZm9yZSBhbnkgZGF0YSBpcyBhY2N1bXVsYXRlZCwgZG9uJ3QgdXNlIHVuaW5pdGlhbGlzZWQgbG9jYWwgdmEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpOgoJICBJZiB3ZSBnZXQgRU9TIGJlZm9yZSBhbnkgZGF0YSBpcyBhY2N1bXVsYXRlZCwgZG9uJ3QgdXNlCgkgIHVuaW5pdGlhbGlzZWQgbG9jYWwgdmFyaWFibGVzLgoKMjAwNi0wNC0yOCAxMzo0MDoxNSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBGaXhlcyBpbiByZWFkaW5nL3dyaXRpbmcgZXZlbnRzIG92ZXIgR0RQIChub3QgY3VycmVudGx5IHVzZWQ/KSAtIGRlcmVmZXJlbmNpbmcgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudCksCgkgIChnc3RfZHBfZXZlbnRfZnJvbV9wYWNrZXQpOgoJICBGaXhlcyBpbiByZWFkaW5nL3dyaXRpbmcgZXZlbnRzIG92ZXIgR0RQIChub3QgY3VycmVudGx5IHVzZWQ/KSAtCgkgIGRlcmVmZXJlbmNpbmcgTlVMTCBldmVudHMgZm9yIHVua25vd24vaW52YWxpZCBldmVudCB0eXBlcywgbWVtb3J5CgkgIGxlYWssIGFuZCBjaGFuZ2UgZ193YXJuaW5nIHRvIEdTVF9XQVJOSU5HLgoKMjAwNi0wNC0yOCAxMzoyNTo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogV2hlbiBmcmFtZSBkcm9wcGluZyBpcyBlbmFibGVkLCB3ZSBzaG91bGQgbm90IGlnbm9yZSBmcmFtZXMgd2l0aG91dCBhIGR1cmF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2lzX3Rvb19sYXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fcmVuZGVyX3N0YXRzKSwgKGdzdF9iYXNlX3NpbmtfcmVuZGVyX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIFdoZW4gZnJhbWUgZHJvcHBpbmcgaXMgZW5hYmxlZCwgd2Ugc2hvdWxkIG5vdCBpZ25vcmUgZnJhbWVzCgkgIHdpdGhvdXQgYSBkdXJhdGlvbi4KCSAgVXBkYXRlIHNvbWUgZG9jdW1lbnRhdGlvbi4KCjIwMDYtMDQtMjggMTM6MTg6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZXZlbnQpLCAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4KCjIwMDYtMDQtMjggMTM6MTY6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiBoYW5kbGUgRUFHQUlOLCBFSU5UUiBhbmQgc2hvcnQgd3JpdGVzIGNvcnJlY3RseS4gQWxzbyBjbGVhbiB1cCBzb21lIGVycm9yIGNhc2VzLCBhdm9pZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX3JlbmRlciksCgkgIChnc3RfZmRfc2lua19jaGVja19mZCksIChnc3RfZmRfc2lua191cGRhdGVfZmQpOgoJICBoYW5kbGUgRUFHQUlOLCBFSU5UUiBhbmQgc2hvcnQgd3JpdGVzIGNvcnJlY3RseS4gQWxzbyBjbGVhbgoJICB1cCBzb21lIGVycm9yIGNhc2VzLCBhdm9pZCBhIGRlYWRsb2NrIG9uIGJhZCBmaWxlIGRlc2NyaXB0b3JzIGFuZAoJICB1c2UgR1NUX0RFQlVHX09CSkVDVC4KCSAgRml4ZXMgIzMzOTg0MwoKMjAwNi0wNC0yOCAxMzoxMzoyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBEb24ndCB0cnkgdG8gc2VyaWFsaXplIGEgR1ZhbHVlIHdpdGggYSBOVUxMIGJ1ZmZlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfc2VyaWFsaXplX2J1ZmZlciksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfYnVmZmVyKToKCSAgRG9uJ3QgdHJ5IHRvIHNlcmlhbGl6ZSBhIEdWYWx1ZSB3aXRoIGEgTlVMTCBidWZmZXIuCgkgIEZpeGVzICMzMzk4MjEuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICBBZGRlZCBjaGVjayBmb3Igc2VyaWFsaXNhdGlvbiBvZiBOVUxMIGJ1ZmZlcnMuCgoyMDA2LTA0LTI4IDEzOjEwOjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogVGFraW5nIGEgTlVMTCBtaW5pb2JqZWN0IGlzIHZhbGlkLCBmaXggdGhlIGNhc2Ugd2hlcmUgd2UgdHJ5IHRvIHVucmVmIHRoZSBOVUxMIG1pbmlvYmplY3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfdmFsdWVfdGFrZV9taW5pX29iamVjdCk6CgkgIFRha2luZyBhIE5VTEwgbWluaW9iamVjdCBpcyB2YWxpZCwgZml4IHRoZSBjYXNlIHdoZXJlCgkgIHdlIHRyeSB0byB1bnJlZiB0aGUgTlVMTCBtaW5pb2JqZWN0LgoKMjAwNi0wNC0yOCAxMzowNToxOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZSB3aW4zMiBjb25maWcuaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHdpbjMyIGNvbmZpZy5oCgoyMDA2LTA0LTI4IDEzOjA0OjA3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0Bzb25pY3B1bHNlLmRlPgoKCSAgZ3N0L2dzdGJpbi5jOiBVcGRhdGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTdGVmYW4gS29zdCA8ZW5zb25pYyBhdCBzb25pY3B1bHNlIGRvdCBkZT4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBVcGRhdGUgZG9jcy4KCSAgRG9uJ3QgbGVhayBiaW4gcmVmY291bnQgd2hlbiBhIHN0YXRlIHJlY2FsYyBpcwoJICBpbiBwcm9ncmVzcyBhbmQgd2UgZGVsYXkgYW5vdGhlciBvbmUgIzMzOTgwOC4KCjIwMDYtMDQtMjggMTI6NTg6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBNZW50aW9uIFFvUyBhcyBhbiBvbmdvaW5nIHdvcmsgaXRlbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgTWVudGlvbiBRb1MgYXMgYW4gb25nb2luZyB3b3JrIGl0ZW0uCgkgICogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJICBOZXcgZG9jIGFib3V0IGJ1ZmZlcmluZyB0aGF0IG5lZWRzIHRvIGJlIGZsZXNoZWQgb3V0CgkgIGF0IHNvbWUgcG9pbnQuCgkgICogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICBNb3JlIFFvUyBwb2xpY3kgZm9yIGRlY29kZXJzL2RlbXV4ZXJzL3RyYW5zZm9ybXMKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OgoJICBTbWFsbCB1cGRhdGUuCgoyMDA2LTA0LTI4IDEwOjU2OjA0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIEhFQUQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gSEVBRAoKPT09IHJlbGVhc2UgMC4xMC41ID09PQoKMjAwNi0wNC0yOCAxMDo1MzozMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICByZWxlYXNpbmcgMC4xMC41CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC4xMC41CgoyMDA2LTA0LTI4IDA5OjQ4OjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5zaWduYWxzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGRvY3MvdXBsb2FkLm1hazoKCSAgZml4IHVwbG9hZC5tYWs7IHNob3VsZCBtb3ZlIHRvIGNvbW1vbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHVwbG9hZC5tYWs7IHNob3VsZCBtb3ZlIHRvIGNvbW1vbgoKMjAwNi0wNC0yOCAwOToyMDoyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9NQU5JRkVTVDoKCSAgYWRkaW5nIG1pc3NpbmcgZHNwIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRpbmcgbWlzc2luZyBkc3AgZmlsZXMKCjIwMDYtMDQtMjYgMTM6NTQ6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHByZXJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHByZXJlbGVhc2UKCjIwMDYtMDQtMjIgMjE6MzQ6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBGaXggaW50ZXJuYWwgZGF0YSBmbG93IGVycm9ycy4gIEZpeGVzICMzMzg3MTEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogV2ltIFRheW1hbnMKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2luaXQpLCAoZ3N0X3BhZF9jb25maWd1cmVfc2luayksCgkgIChnc3RfcGFkX2NvbmZpZ3VyZV9zcmMpLCAoZ3N0X3BhZF9wdXNoKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9pbml0KToKCSAgRml4IGludGVybmFsIGRhdGEgZmxvdyBlcnJvcnMuICBGaXhlcyAjMzM4NzExLgoKMjAwNi0wNC0xMiAxMTo1ODo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6IERvbid0IGxlYWsgdGhlIGZhY3RvcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIERvbid0IGxlYWsgdGhlIGZhY3RvcnkuCgoyMDA2LTA0LTEyIDExOjA2OjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2JnLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfVFcucG86CgkgIHVwZGF0ZWQgdHJhbnNsYXRpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGVkIHRyYW5zbGF0aW9ucwoKMjAwNi0wNC0xMiAxMTowNDozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgdXBkYXRlIGxpYnRvb2wgdmVyc2lvbmluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGxpYnRvb2wgdmVyc2lvbmluZwoKMjAwNi0wNC0xMiAxMDo1NzoyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBwcmVyZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwcmVyZWxlYXNlCgoyMDA2LTA0LTEyIDEwOjI4OjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IEZyZWUgYWxsb2NhdGVkIEdzdFRpbWVkVmFsdWVzIHdoZW4gZnJlZWluZyBsaXN0IG5vZGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sbGVyX3Vuc2V0KSwKCSAgKGdzdF9jb250cm9sbGVyX3Vuc2V0X2FsbCk6CgkgIEZyZWUgYWxsb2NhdGVkIEdzdFRpbWVkVmFsdWVzIHdoZW4gZnJlZWluZyBsaXN0IG5vZGVzLgoJICBTaG91bGQgZml4IGxlYWtzICdtYWtlIGNoZWNrLXZhbGdyaW5kJyBjb21wbGFpbnMgYWJvdXQuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICBBZGQgZ3N0X2NvbnRyb2xsZXJfdW5zZXRfYWxsLgoKMjAwNi0wNC0xMiAxMDoxNToxMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkgIGZpeCBDaGFuZ2VMb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBDaGFuZ2VMb2cKCjIwMDYtMDQtMTEgMjE6MDc6MjYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFkZGVkIG5ldyBtZXRob2QgX3Vuc2V0X2FsbCgpIGFuZCBmaXhlZCBfdW5zZXQoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfdW5zZXQpLAoJICAoZ3N0X2NvbnRyb2xsZXJfdW5zZXRfYWxsKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgQWRkZWQgbmV3IG1ldGhvZCBfdW5zZXRfYWxsKCkgYW5kIGZpeGVkIF91bnNldCgpCgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgIEFkZGVkIHR3byB0ZXN0Y2FzZXMgZm9yIG5ldyBhbmQgZml4ZWQgbWV0aG9kCgoyMDA2LTA0LTExIDE4OjQzOjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzogTVNHX0RPTlRXQUlUIGlzIG5vdCBkZWZpbmVkIG9uIEN5Z3dpbiwgc28gd29yayBhcm91bmQgdGhhdCAoZml4ZXMgIzMxNzA0OCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6IChnc3RfbmV0X3RpbWVfcGFja2V0X3NlbmQpOgoJICBNU0dfRE9OVFdBSVQgaXMgbm90IGRlZmluZWQgb24gQ3lnd2luLCBzbyB3b3JrCgkgIGFyb3VuZCB0aGF0IChmaXhlcyAjMzE3MDQ4KS4KCjIwMDYtMDQtMTEgMTQ6NDg6MzQgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBmaXggdmVyc2lvbmluZyBtYWNybwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHZlcnNpb25pbmcgbWFjcm8KCjIwMDYtMDQtMTEgMTE6NDc6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogU29tZSBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9yZWdpc3RlciksCgkgIChnc3RfZWxlbWVudF9mYWN0b3J5X2NyZWF0ZSksIChnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UpOgoJICBTb21lIGNsZWFudXBzLgoJICBGaXhlZCBhIEZJWE1FLgoJICBVcGRhdGVkIGRvY3MgKEZpeGVzICMxMzEwNzkpCgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogKGdzdF9wbHVnaW5fZmVhdHVyZV9sb2FkKToKCSAgU21hbGwgY2xlYW51cHMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9lbGVtZW50X3N1aXRlKToKCSAgQWRkZWQgdGVzdGNhc2UgZm9yIGVsZW1lbnRmYWN0b3J5IGNsYXNzIGZpZWxkLgoKMjAwNi0wNC0xMCAxMDo0Njo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IEFkZGVkIHNvbWUgbW9yZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBBZGRlZCBzb21lIG1vcmUgZG9jcy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3BlcmZvcm1fcW9zKSwKCSAgKGdzdF9iYXNlX3NpbmtfcmVzZXRfcW9zKToKCSAgQ2FsY3VsYXRlIG1vcmUgYWNjdXJhdGUgcmF0ZSB2YWx1ZXMuCgoyMDA2LTA0LTA5IDE2OjU3OjM0ICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0X3ByaXZhdGUuaDogYWRkIGEgbmV3ICNpZmRlZiB0byB1c2UgX19kZWNsc3BlYyhkbGxpbXBvcnQpIG9ubHkgZm9yIG90aGVyIG1vZHVsZXMgYW5kIG5vdCBmb3IgZ3N0cmVhbWVyIGNvcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgIGFkZCBhIG5ldyAjaWZkZWYgdG8gdXNlIF9fZGVjbHNwZWMoZGxsaW1wb3J0KSBvbmx5IGZvcgoJICBvdGhlciBtb2R1bGVzIGFuZCBub3QgZm9yIGdzdHJlYW1lciBjb3JlCgkgICogZ3N0L2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3BlcmZvcm1fcW9zKToKCSAgdXNlIGdzdF9ndWludDY0X3RvX2dkb3VibGUgZm9yIGNvbnZlcnNpb24KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYWRkIG5ldyBleHBvcnRlZCBmdW5jdGlvbnMKCSAgKiB3aW4zMi92czYvZ3N0X2luc3BlY3QuZHNwOgoJICAqIHdpbjMyL3ZzNi9nc3RfbGF1bmNoLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0YmFzZS5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdGNvbnRyb2xsZXIuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3Rjb3JlZWxlbWVudHMuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RkYXRhcHJvdG9jb2wuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RuZXQuZHNwOgoJICB1cGRhdGUgcHJvamVjdCBmaWxlcwoKMjAwNi0wNC0wOCAyMDo1NzozMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgRml4ICMzMzczNjUgKGdfdHlwZV9jbGFzc19yZWYgPC0+IGdfdHlwZV9jbGFzc19wZWVrX3BhcmVudCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X3N1YmJ1ZmZlcl9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOiAoZ3N0X2luZGV4X2ZhY3RvcnlfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9jbGFzc19pbml0KSwKCSAgKGdzdF9zaWduYWxfb2JqZWN0X2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6IChnc3RfcGFkX3RlbXBsYXRlX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IChnc3RfcGx1Z2luX2ZlYXR1cmVfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3R0YXNrLmM6IChnc3RfdGFza19jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0eG1sLmM6IChnc3RfeG1sX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChfZ3N0X2NvbnRyb2xsZXJfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOiAoZ3N0X2ZpbGVfaW5kZXhfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RtZW1pbmRleC5jOiAoZ3N0X21lbV9pbmRleF9jbGFzc19pbml0KToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcGx1Z2lucy9leGFtcGxlLmM6IChnc3RfZXhhbXBsZV9jbGFzc19pbml0KToKCSAgKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvc2lnbmFscy5jOiAoZ3N0X3Rlc3RfY2xhc3NfaW5pdCk6CgkgIEZpeCAjMzM3MzY1IChnX3R5cGVfY2xhc3NfcmVmIDwtPiBnX3R5cGVfY2xhc3NfcGVla19wYXJlbnQpCgoyMDA2LTA0LTA4IDE4OjExOjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiBNdXN0IHNldCBwZWVyIHBhZHMgYmVmb3JlIGNhbGxpbmcgdGhlIGxpbmsgZnVuY3Rpb24sIG90aGVyd2lzZSBhIHRhc2sgc3RhcnRlZCBmcm9tIGEgbGluayBmdW5jdGlvbiBtaWdoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfbGluayk6CgkgIE11c3Qgc2V0IHBlZXIgcGFkcyBiZWZvcmUgY2FsbGluZyB0aGUgbGluayBmdW5jdGlvbiwgb3RoZXJ3aXNlCgkgIGEgdGFzayBzdGFydGVkIGZyb20gYSBsaW5rIGZ1bmN0aW9uIG1pZ2h0IGdldCBhIGZsb3ctbm90LWxpbmtlZAoJICByZXN1bHQgd2hlbiB0cnlpbmcgdG8gcHVzaCBiZWNhdXNlIHRoZSBvdGhlciB0aHJlYWQgd2hlcmUgdGhlCgkgIGxpbmtpbmcgaGFwcGVucyBoYXNuJ3QgaGFkIGEgY2hhbmNlIHRvIHNldCB0aGUgcGVlcnMgeWV0LiBUaGlzCgkgIG1pZ2h0IGhhcHBlbiBmb3IgZXhhbXBsZSB3aGVuIGEgcXVldWUgZ2V0cyBsaW5rZWQgdG8gYSBkb3duc3RyZWFtCgkgIGVsZW1lbnQsIGFzIHF1ZXVlIHN0YXJ0cyBhIHN0cmVhbWluZyB0YXNrIHdoZW4gaXRzIHNvdXJjZSBwYWQKCSAgZ2V0cyBsaW5rZWQuIEhhcHBlbnMgaW4gcmVhbCBsaWZlIHdoZW4gcGxheWluZyBiYWNrIGZsYWMvbXVzZXBhY2sKCSAgZmlsZXMgaW4gcGxheWJpbiAoIzMzMjM5MCkuCgoyMDA2LTA0LTA4IDE4OjA1OjE2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBGaXggYnJva2VuIEdPYmplY3QgbWFjcm9zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmRleC5oOgoJICAqIGdzdC9nc3R4bWwuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJICBGaXggYnJva2VuIEdPYmplY3QgbWFjcm9zCgoyMDA2LTA0LTA3IDE1OjE5OjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBJbml0aWFsaXplIHN0YXJ0IGFuZCBzdG9wIHRpbWVzLCB0aGFua3MgdmFsZ3JpbmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpOgoJICBJbml0aWFsaXplIHN0YXJ0IGFuZCBzdG9wIHRpbWVzLCB0aGFua3MgdmFsZ3JpbmQuCgoyMDA2LTA0LTA3IDE0OjUwOjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBCZSBhIGJpdCBuaWNlciB0byBiYWRseSBiZWhhdmluZyB1cHN0cmVhbSBlbGVtZW50cyB0aGF0IGV4cGVjdCB1cyB0byBkZWFsIHdpdGggbm9uIFRJTUUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpOgoJICBCZSBhIGJpdCBuaWNlciB0byBiYWRseSBiZWhhdmluZyB1cHN0cmVhbSBlbGVtZW50cyB0aGF0IGV4cGVjdAoJICB1cyB0byBkZWFsIHdpdGggbm9uIFRJTUUgc2VnbWVudHMgYW5kIHRpbWVzdGFtcHMgKHN1Y2ggYXMgZmFrZXNyYwoJICBpbiB0aGUgdGVzdHN1aXRlKS4KCjIwMDYtMDQtMDcgMTQ6MDI6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVzLmM6IFNtYWxsIGRvY3VtZW50YXRpb24gY2xhcmlmaWNhdGlvbiBhYm91dCB0aGUgc2lnbmFsIHdhdGNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgIFNtYWxsIGRvY3VtZW50YXRpb24gY2xhcmlmaWNhdGlvbiBhYm91dCB0aGUgc2lnbmFsIHdhdGNoLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpLAoJICAoZ3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX3BlcmZvcm1fcW9zKSwgKGdzdF9iYXNlX3NpbmtfcmVzZXRfcW9zKSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fcmVuZGVyX3N0YXRzKSwgKGdzdF9iYXNlX3NpbmtfcmVuZGVyX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbl9sYXN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uX3BhdXNlZCksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIENvbnZlcnQgYW5kIHN0b3JlIHRpbWVzdGFtcHMgaW4gc3RyZWFtIHRpbWUgYW5kIHJ1bm5pbmcgdGltZSwgdGhlCgkgIHJhdyB0aW1lc3RhbXBzIGFyZSBub3QgdXNlZnVsbCwgYWxzbyBkb2N1bWVudCB0aGlzIGJldHRlci4KCSAgVXNlIGRpZmZlcmVudCB3aW5kb3cgc2l6ZXMgZm9yIGdvb2QgYW5kIGJhZCBRb1Mgb2JzZXJ2YXRpb25zIHNvCgkgIHdlIHJlYWN0IHRvIGJhZG5lc3MgYSBsaXR0bGUgcXVpY2tlci4KCSAgS2VlcCB0cmFjayBvZiB0aGUgYW1vdW50IG9mIHJlbmRlcmVkIGFuZCBkcm9wcGVkIGJ1ZmZlcnMuCgkgIFNlbmQgUW9TIHRpbWVzdGFtcHMgaW4gcnVubmluZyB0aW1lLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfZXZlbnRmdW5jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgQ29tcGFyZSBRb1MgdGltZXN0YW1wcyBhZ2FpbnN0IHJ1bm5pbmcgdGltZS4KCjIwMDYtMDQtMDYgMTc6MzY6MjcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBhZGQgZ25vbmxpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGdub25saW4KCjIwMDYtMDQtMDYgMTU6NDY6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IFR5cG8gZml4ZXMgaW4gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOgoJICBUeXBvIGZpeGVzIGluIGRvY3MuCgoyMDA2LTA0LTA2IDE1OjA3OjEyICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0cGFkLmM6IFVzZSBnX3ZhbHVlX2dldF9vYmplY3QoKSBpbnN0ZWFkIG9mIGdfdmFsdWVfZHVwX2dzdF9vYmplY3QoKSwgdG8gYXZvaWQgZG91YmxlLXJlZmZpbmcgdGhlIHBhZCB0ZW1wbGF0ZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfcHJvcGVydHkpOgoJICBVc2UgZ192YWx1ZV9nZXRfb2JqZWN0KCkgaW5zdGVhZCBvZiBnX3ZhbHVlX2R1cF9nc3Rfb2JqZWN0KCksCgkgIHRvIGF2b2lkIGRvdWJsZS1yZWZmaW5nIHRoZSBwYWQgdGVtcGxhdGUgKHdoaWNoIHdlIHRoZW4gc2luaywKCSAgc28gdGhpcyB3b3JrZWQgcHJldmlvdXNseSBpZiAoYW5kIG9ubHkgaWYpIHRoZSBwYWQgdGVtcGxhdGUKCSAgd2FzIGZsb2F0aW5nLgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOiAoZ3N0X3BhZF90ZW1wbGF0ZV9pbml0KSwKCSAgKGdzdF9wYWRfdGVtcGxhdGVfcGFkX2NyZWF0ZWQpOgoJICBOZXZlciByZXR1cm4gZmxvYXRpbmcgcmVmZXJlbmNlcyB0byBwYWQgdGVtcGxhdGVzLCBjcmVhdGUKCSAgdGhlbSBhcyBpbml0aWFsbHktc3Vua2VuLgoJICBEb2N1bWVudCBhbiBleHRyYSBmdW5jdGlvbiAoYW5kIG1ha2UgdGhpcyBzdG9wIHNpbmtpbmcgb3VyCgkgIHBhZCB0ZW1wbGF0ZSwgc2luY2UgdGhhdCBpcyBub3cgZ3VhcmFudGVlZCB0byBkbyBub3RoaW5nLAoJICBzaW5jZSB3ZSBjcmVhdGVkIGl0IHN1bmtlbikuCgkgICogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIEZpeCBkb2NzIHR5cG8uCgoyMDA2LTA0LTA2IDExOjI3OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZm8uYzogQWRkIHNvbWUgbmV3bGluZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6IChfX2dzdF9pbl92YWxncmluZCk6CgkgIEFkZCBzb21lIG5ld2xpbmVzLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pOgoJICBEb24ndCBsZWFrIGJ1ZmZlciBjYXBzLgoKMjAwNi0wNC0wNiAxMDozODo1NCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L3BhcnNlL2dyYW1tYXIueTogRml4IGEgbGVhayBpbiBwYXJzZS1sYXVuY2ggZm9yIGFueSBzb3VyY2Utb3Itc2luayBuYW1lZCBlbGVtZW50IHJlZmVyZW5jZXMgdXNlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgRml4IGEgbGVhayBpbiBwYXJzZS1sYXVuY2ggZm9yIGFueSBzb3VyY2Utb3Itc2luayBuYW1lZCBlbGVtZW50CgkgIHJlZmVyZW5jZXMgdXNlZC4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChleHBlY3RlZF9mYWlsX3BpcGUpOgoJICBVbnJlZiB0aGUgcGlwZWxpbmUgaWYgaXQgZXhpc3RzIGFmdGVyIHdlJ3ZlIGZhaWxlZCBwYXJzaW5nLgoKMjAwNi0wNC0wNSAxNTo0NjowMCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IFdoZW4gd2UgY3JlYXRlIGEgcGlwZWxpbmUgYnVzLCBpbml0aWFsbHkgY3JlYXRlIGl0IGluIGZsdXNoaW5nIG1vZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2luaXQpOgoJICBXaGVuIHdlIGNyZWF0ZSBhIHBpcGVsaW5lIGJ1cywgaW5pdGlhbGx5IGNyZWF0ZSBpdCBpbiBmbHVzaGluZyBtb2RlLgoJICBGaXhlcyBsZWFrcyBpbiBhdCBsZWFzdCBvbmUgdGVzdCwgYW5kIG1ha2VzIGEgbmV3IHBpcGVsaW5lIHdvcmsgdGhlCgkgIHNhbWUgYXMgb25lIHRoYXQgaGFzIGdvbmUgdG8gUkVBRFkgYW5kIHRoZW4gYmFjayB0byBOVUxMLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgIFR5cG8gZml4IGluIGRvY3MuCgoyMDA2LTA0LTA1IDE1OjEyOjM5ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogVW5yZWYgYSBwYWQgd2UgcmVmZmVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVW5yZWYgYSBwYWQgd2UgcmVmZmVkLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVbnJlZiBiaW5zCgoyMDA2LTA0LTA1IDEzOjE4OjI5ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0cXVlcnkuYzogRml4IGxlYWtpbmcgR1ZhbHVlcyBpbiBxdWVyaWVzLCBhcyBzaG93biBieSB2YWxncmluZC90ZXN0c3VpdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X3NldF9mb3JtYXRzKSwKCSAgKGdzdF9xdWVyeV9zZXRfZm9ybWF0c3YpOgoJICBGaXggbGVha2luZyBHVmFsdWVzIGluIHF1ZXJpZXMsIGFzIHNob3duIGJ5IHZhbGdyaW5kL3Rlc3RzdWl0ZS4KCjIwMDYtMDQtMDUgMTI6MTE6MjAgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogRml4IGEgdmFyaWV0eSBvZiBtZW1sZWFrcyBpbiBzaW5rcyBjaGVjaywgd2hpY2ggYXJlIG9ubHkgc29tZXRpbWVzIHNob3duIGJ5IHJ1bm5pbmcgdGhlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBhIHZhcmlldHkgb2YgbWVtbGVha3MgaW4gc2lua3MgY2hlY2ssIHdoaWNoIGFyZSBvbmx5IHNvbWV0aW1lcwoJICBzaG93biBieSBydW5uaW5nIHRoZSB0ZXN0cyB1bmRlciB2YWxncmluZCAod2VpcmQ/KS4KCjIwMDYtMDQtMDUgMTE6MDQ6MTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy92ZXJzaW9uLmVudGl0aWVzLmluOiBGaXggdGhlIHN1YnN0aXR1dGVkIGVudGl0eSBuYW1lIGFmdGVyIHRob21hcycgY2hhbmdlcyBvbiB0aGUgd2Vla2VuZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy92ZXJzaW9uLmVudGl0aWVzLmluOgoJICBGaXggdGhlIHN1YnN0aXR1dGVkIGVudGl0eSBuYW1lIGFmdGVyIHRob21hcycgY2hhbmdlcyBvbiB0aGUKCSAgd2Vla2VuZC4KCjIwMDYtMDQtMDUgMTA6MzE6MjAgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICBnc3QvZ3N0aW5mby5jOiBVc2UgcHJpbnRmIGluc3RlYWQgb2YKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDQtMDUgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgKiBnc3QvZ3N0aW5mby5jOiAoX19nc3RfaW5fdmFsZ3JpbmQpOiBVc2UgcHJpbnRmIGluc3RlYWQgb2YKCSAgVkFMR1JJTkRfUFJJTlRGCgoyMDA2LTA0LTA1IDEwOjI2OjI5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfc2V0X2Jsb2NrZWRfYXN5bmMpOiBNb3JlIGRlYnVnLiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNC0wNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfc2V0X2Jsb2NrZWRfYXN5bmMpOiBNb3JlIGRlYnVnLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19ldmVudGZ1bmMpOiBXaGVuIHJlc2V0dGluZyBvdXIgc2VnbWVudCBvbgoJICBGTFVTSF9TVE9QLCBhbHNvIHVwZGF0ZSB0aGUgZmxhZyBzYXlpbmcgd2UgaGF2ZW4ndCBzZWVuIGEKCSAgbmV3c2VnbWVudC4KCjIwMDYtMDQtMDQgMTg6MDI6MDcgKzAwMDAgIFBhb2xvIEJvcmVsbGkgPHBib3JlbGxpQGthdGFtYWlsLmNvbT4KCgkgIGdzdC9nc3RwbHVnaW4uYzogbWlub3IgY2xlYW4tdXBzOiBHX0RFRklORV9UWVBFIGFscmVhZHkgdGFrZXMgY2FyZSBvZiB0aGUgcGFyZW50X2NsYXNzIHN0dWZmLCBubyBuZWVkIHRvIGRvIGl0IHR3aWNlLi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBhb2xvIEJvcmVsbGkgIDxwYm9yZWxsaSBhdCBrYXRhbWFpbCBkb3QgY29tPgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fZmluYWxpemUpLCAoZ3N0X3BsdWdpbl9jbGFzc19pbml0KSwKCSAgKGdzdF9wbHVnaW5fY2hlY2tfbGljZW5zZSk6CgkgIG1pbm9yIGNsZWFuLXVwczogR19ERUZJTkVfVFlQRSBhbHJlYWR5IHRha2VzIGNhcmUgb2YgdGhlCgkgIHBhcmVudF9jbGFzcyBzdHVmZiwgbm8gbmVlZCB0byBkbyBpdCB0d2ljZS4gTWFyayBhcnJheSBvZgoJICBsaWNlbnNlIHN0cmluZ3MgYXMgY29uc3RhbnQuICgjMzM3MTAzKQoKMjAwNi0wNC0wNCAxNzo1NDozMCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogRnJlZSB0aGUgcmlnaHQgcGx1Z2luIGxpc3Q7IGZpeGVzIGEgbWVtb3J5IGxlYWsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X2xpc3QpOgoJICBGcmVlIHRoZSByaWdodCBwbHVnaW4gbGlzdDsgZml4ZXMgYSBtZW1vcnkgbGVhay4KCjIwMDYtMDQtMDQgMTU6NDU6MzYgKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1d0Bza3luZXQuYmU+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IERvbid0IGVycm9yIG91dCBvbiBlbXB0eSBidWZmZXJzICgjMzM2OTQ1KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJrIE5hdXdlbGFlcnRzICA8bWFuYXV3IGF0IHNreW5ldCBkb3QgYmU+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19yZW5kZXIpOgoJICBEb24ndCBlcnJvciBvdXQgb24gZW1wdHkgYnVmZmVycyAoIzMzNjk0NSkuCgoyMDA2LTA0LTA0IDE0OjU4OjUwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4gTWFrZSBCYXNlU2luayBhbmQgQmFzZVNyYyBkb2NzIGNvbnRhaW4gdGhlIGNsYXNzIHN0cnVjdHVyZSBzbyB0aGF0IHBlb3BsZSBjYW4gYWN0dWFsbHkgc2VlIHRoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLiBNYWtlIEJhc2VTaW5rIGFuZCBCYXNlU3JjIGRvY3MgY29udGFpbiB0aGUKCSAgY2xhc3Mgc3RydWN0dXJlIHNvIHRoYXQgcGVvcGxlIGNhbiBhY3R1YWxseSBzZWUgdGhlIHByb3RvdHlwZXMgZm9yCgkgIHZpcnR1YWwgZnVuY3Rpb25zIHRoZXkncmUgc3VwcG9zZWQgdG8gYmUgb3ZlcnJpZGluZy4KCjIwMDYtMDQtMDQgMDg6NTU6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBNb3JlIGRlYnVnIGluZm87IHdoZW4gc2tpcHBpbmcgdHlwZWZpbmRpbmcsIHNlbmQgY2FjaGVkIGV2ZW50cyBpbiBhbGwgY2FzZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pOgoJICBNb3JlIGRlYnVnIGluZm87IHdoZW4gc2tpcHBpbmcgdHlwZWZpbmRpbmcsIHNlbmQgY2FjaGVkCgkgIGV2ZW50cyBpbiBhbGwgY2FzZXMuCgoyMDA2LTA0LTAzIDE3OjA1OjMxICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIEZpeCB0eXBvIGluIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaXggdHlwbyBpbiBkb2NzLgoKMjAwNi0wNC0wMyAwODo1OTo1MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGUgd2luMzIgY29tbW9uIGRpcjsgdXBkYXRlIHVuaW5zdGFsbGVkIHNjcmlwdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHdpbjMyIGNvbW1vbiBkaXI7IHVwZGF0ZSB1bmluc3RhbGxlZCBzY3JpcHQKCjIwMDYtMDQtMDEgMTU6MzA6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkgIGRpc2FibGUgdXNlIG9mIEFTX0xJQlRPT0xfVEFHUywgaXQgZG9lc24ndCB3b3JrIGNvcnJlY3RseQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGlzYWJsZSB1c2Ugb2YgQVNfTElCVE9PTF9UQUdTLCBpdCBkb2Vzbid0IHdvcmsgY29ycmVjdGx5CgoyMDA2LTA0LTAxIDA5OjQxOjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogdXNlIG5ldyBBU19WRVJTSU9OIGFuZCBBU19OQU5PIG1hY3JvcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIHVzZSBuZXcgQVNfVkVSU0lPTiBhbmQgQVNfTkFOTyBtYWNyb3MKCSAgKiBnc3QvZ3N0LWkxOG4tbGliLmg6CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RlcnJvci5jOgoJICAqIGdzdC9nc3R2ZXJzaW9uLmguaW46CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgdXBkYXRlIGFjY29yZGluZ2x5CgoyMDA2LTAzLTMxIDE1OjI2OjA0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBEbyBub3QgdHlwZWZpbmQgY29udGVudCBpZiB0aGUgYnVmZmVycyBhbHJlYWR5IGhhdmUgY2Fwcy4gYW5kIHRoZSByaWdodCB0aGluZyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbik6CgkgIERvIG5vdCB0eXBlZmluZCBjb250ZW50IGlmIHRoZSBidWZmZXJzIGFscmVhZHkgaGF2ZSBjYXBzLgoJICBOZWNjZXNhcnkgZm9yIGljeWRlbXV4ICgjMzMzNjU3KSwgYW5kIHRoZSByaWdodCB0aGluZyB0byBkbyBhbnl3YXkuCgoyMDA2LTAzLTMwIDE2OjM2OjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBNb3JlIFFvUyBtZWFzdXJlbWVudHMgYXMgZGVzY3JpYmVkIGluIHRoZSBkZXNpZ24gZG9jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19maW5hbGl6ZSksIChnc3RfYmFzZV9zaW5rX3NldF9xb3NfZW5hYmxlZCksCgkgIChnc3RfYmFzZV9zaW5rX2lzX3Fvc19lbmFibGVkKSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX3JlY29yZF9xb3Nfb2JzZXJ2YXRpb24pLAoJICAoZ3N0X2Jhc2Vfc2lua19wZXJmb3JtX3FvcyksIChnc3RfYmFzZV9zaW5rX3Jlc2V0X3FvcyksCgkgIChnc3RfYmFzZV9zaW5rX2lzX3Rvb19sYXRlKSwgKGdzdF9iYXNlX3NpbmtfcmVuZGVyX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIE1vcmUgUW9TIG1lYXN1cmVtZW50cyBhcyBkZXNjcmliZWQgaW4gdGhlIGRlc2lnbiBkb2MuCgkgIEdldCByaWQgb2YgcmluZ2J1ZmZlciB3aXRoIG9ic2VydmF0aW9ucywgcnVubmluZyBhdmVyYWdlIGlzCgkgIG1vcmUgc2ltcGxlIGFuZCBlcXVhbGx5IGdvb2QuCgkgIENhbGN1bGF0ZXMgdmFsaWQgcHJvcG9ydGlvbiBub3cuCgkgIEFkZGVkIGJlZ2lubmluZyBvZiBmbG9vZCBtZWFzdXJlbWVudC4KCjIwMDYtMDMtMjkgMTM6NDU6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBTbWFsbCBkb2N1bWVudGF0aW9uIHVwZGF0ZXMgYW5kIGFkZGl0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICBTbWFsbCBkb2N1bWVudGF0aW9uIHVwZGF0ZXMgYW5kIGFkZGl0aW9ucy4KCjIwMDYtMDMtMjkgMTM6Mzk6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogUGVyZm9ybSB0aGUgRU9TIGxvZ2ljIHdoZW4gd2UgcmVhY2ggdGhlIHNlZ21lbnQgc3RvcCBwb3NpdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZmluYWxpemUpLAoJICAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZXZlbnQpLCAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIFBlcmZvcm0gdGhlIEVPUyBsb2dpYyB3aGVuIHdlIHJlYWNoIHRoZSBzZWdtZW50IHN0b3AgcG9zaXRpb24uCgkgIEZpeCBjb21waWxhdGlvbiBvbiBnY2M0LjEKCjIwMDYtMDMtMjkgMTE6MDI6MzMgKzAwMDAgIFRvbW1pIE15w7Zow6RuZW4gPGV4dC10b21taS5teW9oYW5lbkBub2tpYS5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLio6IEluIHF1ZXVlLCB3aGVuIEVPUyBpcyByZWNlaXZlZCwgaWYgbWluaW11bSB0aHJlc2hvbGQgPiBtYXhfc2l6ZSAtIGN1cnJlbnRfbGV2ZWwsIHRoZXJlIGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5IFRvbW1pIE15w7Zow6RuZW4gPGV4dC10b21taSBkb3QgbXlvaGFuZW4gYXQgbm9raWEgZG90IGNvbT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaW5pdCksCgkgIChnc3RfcXVldWVfbG9ja2VkX2ZsdXNoKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksCgkgIChnc3RfcXVldWVfc2V0X3Byb3BlcnR5KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIEluIHF1ZXVlLCB3aGVuIEVPUyBpcyByZWNlaXZlZCwgaWYgbWluaW11bSB0aHJlc2hvbGQgPiBtYXhfc2l6ZSAtCgkgIGN1cnJlbnRfbGV2ZWwsIHRoZXJlIGlzIGNoYW5jZSB0aGF0IHF1ZXVlIGJsb2NrcyBmb3JldmVyIGluIGNvbmRpdGlvbmFsIGl0ZW0KCSAgZGVsIHdhaXQuIFRoaXMgaXMgYmVjYXVzZSB0aGUgcXVldWUgaXMgbm90IGVtcHRpZWQgY29tcGxldGVseSBkdWUgdG8gbWluaW11bQoJICB0aHJlc2hvbGQuCgkgIEhlcmUgaXMgYW5vdGhlciBhcHByb2FjaC4gSW5zdGVhZCBvZiBzZXR0aW5nIGN1cl9sZXZlbHMgdG8gbWF4IGluIEVPUywganVzdAoJICB6ZXJvIGFsbCBtaW5pbXVtIHRocmVzaG9sZCBsZXZlbHMuIFRoaXMgc2hvdWxkIG1ha2Ugc3VyZSB0aGF0IHF1ZXVlIGdpdmVzIG91dAoJICBhbGwgZGF0YS4gV2hlbiBnb2luZyB0byBSRUFEWSAoc3RvcCkgc3RhdGUsIGp1c3QgcmVzZXQgdGhlIG9yaWdpbmFsIG1pbmltdW0KCSAgdGhyZXNob2xkIGxldmVscy4KCSAgRml4ZXMgIzMzNjMzNi4KCjIwMDYtMDMtMjkgMTA6MzM6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC4qOiBXaGVuIHR5cGVmaW5kaW5nIGlzIGRvbmUgaW4gcHVzaCBtb2RlLCB3ZSBzaG91bGQgY2FjaGUgZXZlbnRzIHdlIHJlY2VpdmUgZHVyaW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogKHN0b3BfdHlwZWZpbmRpbmcpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfc2VuZF9jYWNoZWRfZXZlbnRzKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIFdoZW4gdHlwZWZpbmRpbmcgaXMgZG9uZSBpbiBwdXNoIG1vZGUsIHdlIHNob3VsZCBjYWNoZQoJICBldmVudHMgd2UgcmVjZWl2ZSBkdXJpbmcgdHlwZWZpbmRpbmcgaW5zdGVhZCBvZiBqdXN0CgkgIGRyb3BwaW5nIHRoZW0gKGUuZy4gbmV3c2VnbWVudCwgY3VzdG9tIGV2ZW50cyBmcm9tCgkgIGR2ZHJlYWRzcmMgZXRjLikgYW5kIHRoZW4gc2VuZCB0aGVtIG91dCBvbmNlIHdlJ3ZlCgkgIGRldGVybWluZWQgdGhlIHR5cGUgb2YgdGhlIHN0cmVhbSAoYW5kIGRlY29kZWJpbgoJICBoYXMgaGFkIGEgY2hhbmNlIHRvIHBsdWcgaW4gYSBkZWNvZGVyL2RlbXV4ZXIpLgoKMjAwNi0wMy0yNyAxODozODo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDogRmlyc3QgUW9TIGlkZWFzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIEZpcnN0IFFvUyBpZGVhcy4KCjIwMDYtMDMtMjcgMTE6NDg6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogSGFuZGxlIGVsZW1lbnQgc2VlayBjb3JyZWN0bHkgd2hlbiB3ZSBhcmUgc3RyZWFtaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgSW5zcGlyZWQgYnkgYSBwYXRjaCBvZjogTHV0eiBNdWVsbGVyIDxsdXR6IGF0IHRvcGZyb3NlIGRvdCBkZT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19maW5hbGl6ZSksCgkgIChnc3RfYmFzZV9zcmNfc2VuZF9ldmVudCksIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgSGFuZGxlIGVsZW1lbnQgc2VlayBjb3JyZWN0bHkgd2hlbiB3ZSBhcmUgc3RyZWFtaW5nLgoJICBGaXhlcyAjMzI2OTk4LgoKMjAwNi0wMy0yNCAxODozODoxMiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBTZXQgdXAgTERfTElCUkFSWV9QQVRIIHRvIHBvaW50IGF0IGFsbCB0aGUgZ3N0cmVhbWVyIGxpYnMuIFRoaXMgd2lsbCBhbGxvdyB5b3UgdG8gY29ycmVjdGx5Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgU2V0IHVwIExEX0xJQlJBUllfUEFUSCB0byBwb2ludCBhdCBhbGwgdGhlIGdzdHJlYW1lciBsaWJzLiBUaGlzIHdpbGwKCSAgYWxsb3cgeW91IHRvIGNvcnJlY3RseSBydW4gaW50YWxsZWQgYXBwbGljYXRpb25zIGJ1aWx0IGFnYWluc3Qgb2xkICAgICAgICAgICBjb3JlLCB1c2luZyBwbHVnaW5zIHRoYXQgcmVxdWlyZSB1cGRhdGVkIGNvcmUgKGUuZy4gcnVubmluZwoJICBpbnN0YWxsZWQgdG90ZW0gYWdhaW5zdCBhIGZ1bGwgdW5pbnN0YWxsZWQgZ3N0cmVhbWVyIHN0YWNrKQoKMjAwNi0wMy0yNCAxNzoyOToyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkgIGFkZCBBUEk6IG1hcmtlciBpbiBDaGFuZ2VMb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBBUEk6IG1hcmtlciBpbiBDaGFuZ2VMb2cKCjIwMDYtMDMtMjQgMTc6MTA6NDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogbW9yZSBkZWJ1ZyBkZXRhaWxzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfaXNfY29sbGVjdGVkKToKCSAgbW9yZSBkZWJ1ZyBkZXRhaWxzCgoyMDA2LTAzLTI0IDExOjAyOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogUmVhcnJhbmdlIHRoZSBvcmRlciBvZiB0aGUgbWV0aG9kcyBzbyB0aGF0IHJlbGF0ZWQgbWV0aG9kcyBhcmUgZ3JvdXBlZCB0b2dldGhlciBpbiBzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIFJlYXJyYW5nZSB0aGUgb3JkZXIgb2YgdGhlIG1ldGhvZHMgc28gdGhhdCByZWxhdGVkIG1ldGhvZHMKCSAgYXJlIGdyb3VwZWQgdG9nZXRoZXIgaW4gc2VjdGlvbnMuCgoyMDA2LTAzLTI0IDEwOjQ0OjE3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBMaXR0bGUgY2xhcmlmaWNhdGlvbiBpbiB0aGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBMaXR0bGUgY2xhcmlmaWNhdGlvbiBpbiB0aGUgZG9jcwoKMjAwNi0wMy0yNCAxMDozODoyMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9SRUFETUU6IGZvcm1hdHRpbmcgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvUkVBRE1FOgoJICBmb3JtYXR0aW5nIGZpeAoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBHU1RfRUxFTUVOVF9ERVRBSUxTIGZvcm1hdHRpbmcKCjIwMDYtMDMtMjQgMDk6NDg6MzMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6IE9ubHkgYWRkIGZpZWxkcywgbm90IGluc2VydCBvciB3ZSBicmVhayBBQkkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgT25seSBhZGQgZmllbGRzLCBub3QgaW5zZXJ0IG9yIHdlIGJyZWFrIEFCSS4KCjIwMDYtMDMtMjMgMTg6NTE6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB3aW4zMi9jb21tb24vOiBVcGRhdGUsIGFkZCByZWNlbnRseSBhZGRlZCBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgVXBkYXRlLCBhZGQgcmVjZW50bHkgYWRkZWQgZnVuY3Rpb25zLgoKMjAwNi0wMy0yMyAxODo0NTowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIHNvbWUgbmV3IHV0aWxpdHkgZnVuY3Rpb25zOgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhZF9xdWVyeV9wZWVyX3Bvc2l0aW9uKSwKCSAgKGdzdF9wYWRfcXVlcnlfcGVlcl9kdXJhdGlvbiksIChnc3RfcGFkX3F1ZXJ5X3BlZXJfY29udmVydCk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFQSTogYWRkIHNvbWUgbmV3IHV0aWxpdHkgZnVuY3Rpb25zOgoJICAtIGdzdF9wYWRfcXVlcnlfcGVlcl9wb3NpdGlvbgoJICAtIGdzdF9wYWRfcXVlcnlfcGVlcl9kdXJhdGlvbgoJICAtIGdzdF9wYWRfcXVlcnlfcGVlcl9jb252ZXJ0CgoyMDA2LTAzLTIzIDE2OjMyOjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBGb3Jnb3QgdG8gbWVudGlvbiB0aGUgcHJldmlvdXMgY29tbWl0IGZpeGVkICMzMjYzMTEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZvcmdvdCB0byBtZW50aW9uIHRoZSBwcmV2aW91cyBjb21taXQgZml4ZWQgIzMyNjMxMQoKMjAwNi0wMy0yMyAxNjoyMDo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRGVjb3VwbGUgbWF4LWxhdGVuZXNzIGFuZCB0aGUgZmFjdCB0aGF0IFFvUyBtZXNzYWdlcyBhcmUgZ2VuZXJhdGVkIHdpdGggYSBuZXcgcHJvcGVydHkgKC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19pbml0KSwgKGdzdF9iYXNlX3NpbmtfZmluYWxpemUpLAoJICAoZ3N0X2Jhc2Vfc2lua19zZXRfcW9zX2VuYWJsZWQpLCAoZ3N0X2Jhc2Vfc2lua19pc19xb3NfZW5hYmxlZCksCgkgIChnc3RfYmFzZV9zaW5rX3NldF9wcm9wZXJ0eSksIChnc3RfYmFzZV9zaW5rX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksIChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKSwKCSAgKGdzdF9iYXNlX3Npbmtfd2FpdF9jbG9jayksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19hZGRfcW9zX29ic2VydmF0aW9uKSwgKGdzdF9iYXNlX3Npbmtfc2VuZF9xb3MpLAoJICAoZ3N0X2Jhc2Vfc2lua19wZXJmb3JtX3FvcyksIChnc3RfYmFzZV9zaW5rX3Jlc2V0X3FvcyksCgkgIChnc3RfYmFzZV9zaW5rX2lzX3Rvb19sYXRlKSwgKGdzdF9iYXNlX3NpbmtfcmVuZGVyX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFpbl91bmxvY2tlZCksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbl9sYXN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uX3BhdXNlZCksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgRGVjb3VwbGUgbWF4LWxhdGVuZXNzIGFuZCB0aGUgZmFjdCB0aGF0IFFvUyBtZXNzYWdlcyBhcmUgZ2VuZXJhdGVkCgkgIHdpdGggYSBuZXcgcHJvcGVydHkgKHFvcykuCgkgIEFkZCB2bWV0aG9kIHNvIHN1YmNsYXNzZXMgY2FuIGJlIG5vdGlmaWVkIG9mIEFTWU5DIHBsYXlpbmcKCSAgc3RhdGUgY2hhbmdlcy4KCSAgQ29sbGVjdCB0aW1lc3RhbXAgc3RhcnQgYW5kIHN0b3AgdG8gcmVwb3J0IGJldHRlciBjdXJyZW50CgkgIHBvc2l0aW9uIGluIEVPUy9QTEFZSU5HL1BBVVNFRC9SRUFEWS9OVUxMLgoJICBSZWZhY3RvciBRb1MvZnJhbWUgZHJvcHBpbmcgYW5kIG90aGVyIG1lYXN1cmVtZW50cy4KCSAgQVBJOiBHc3RCYXNlU3JjOjpxb3MKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEFkZGVkIFByaXZhdGUgc3RydWN0LgoJICBBUEk6IGdzdF9iYXNlX3Npbmtfc2V0X3Fvc19lbmFibGVkCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19pc19xb3NfZW5hYmxlZAoKMjAwNi0wMy0yMyAxMTo1NDo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBJZiBjb21waWxpbmcgYWdhaW5zdCBHTGliLTIuOCBvciBuZXdlciwgdHJ5IHRvIHJlYWQgdGhlIHJlZ2lzdHJ5IGZpbGUgdXNpbmcgR01hcHBlZEZpbGUgZmlyc3QgYi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGdzdF9yZWdpc3RyeV94bWxfcmVhZF9jYWNoZSk6CgkgIElmIGNvbXBpbGluZyBhZ2FpbnN0IEdMaWItMi44IG9yIG5ld2VyLCB0cnkgdG8gcmVhZCB0aGUKCSAgcmVnaXN0cnkgZmlsZSB1c2luZyBHTWFwcGVkRmlsZSBmaXJzdCBiZWZvcmUgZmFsbGluZyBiYWNrCgkgIHRvIGZvcGVuKCkgKyBmcmVhZCgpICgjMzMyMTUxKS4KCjIwMDYtMDMtMjIgMTg6MjU6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0aW5mby5jOiBEaXNhYmxlIGRlYnVnZ2luZyB1bmxlc3MgZXhwbGljaXRseSBhY3RpdmF0ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6IChnc3RfZGVidWdfc2V0X2FjdGl2ZSksCgkgIChnc3RfZGVidWdfY2F0ZWdvcnlfc2V0X3RocmVzaG9sZCk6CgkgIERpc2FibGUgZGVidWdnaW5nIHVubGVzcyBleHBsaWNpdGx5IGFjdGl2YXRlZC4KCSAgRml4ZXMgIzMzNTQ4MC4KCjIwMDYtMDMtMjIgMTM6MTA6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBDbGVhbnVwIHRoZSBlcnJvciBjYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X2xvY2tlZF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9kaXNwb3NlKToKCSAgQ2xlYW51cCB0aGUgZXJyb3IgY2FzZS4KCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2Rpc3Bvc2UpOgoJICBwcmludCBhIGNyaXRpY2FsIHdoZW4gc29tZSBvYmplY3Qgd2FzIGRpc3Bvc2VkIHdpdGgKCSAgYSBwYXJlbnQsIGFsc28gcmV2aXZlIHRoZSBvYmplY3Qgc2luY2UgaXQgbWlnaHQKCSAgY3Jhc2ggdGhlIHBhcmVudC4KCjIwMDYtMDMtMjIgMDk6MDM6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLjEuaW46IEZpeCBhbm90aGVyIHR5cG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgRml4IGFub3RoZXIgdHlwby4KCjIwMDYtMDMtMjEgMTk6Mjc6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZGlzYWJsZSBzb21lIHRlc3RzIHdoZW4gd2UgZG9uJ3QgaGF2ZSBhIHJlZ2lzdHJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZGlzYWJsZSBzb21lIHRlc3RzIHdoZW4gd2UgZG9uJ3QgaGF2ZSBhIHJlZ2lzdHJ5CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbHNfc3VpdGUpOgoJICBkb24ndCBidWlsZCB0aGUgcGFydCB0aGF0IG5lZWRzIHBhcnNpbmcKCjIwMDYtMDMtMjEgMTc6MjU6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L01ha2VmaWxlLmFtCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbQoJICAqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJICBmaXggLS1kaXNhYmxlLXBhcnNlIGJ1aWxkCgoyMDA2LTAzLTIxIDE3OjI0OjMwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgdGhlIC5pbiBmaWxlIGlzIGluIGN2cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGhlIC5pbiBmaWxlIGlzIGluIGN2cwoKMjAwNi0wMy0yMSAxNTo0MjowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1mZWVkYmFjay4xLmluOiBGaXggdHlwbzogcy9mZWViYWNrL2ZlZWRiYWNrLyAoIzEzMzQ5NCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1mZWVkYmFjay4xLmluOgoJICBGaXggdHlwbzogcy9mZWViYWNrL2ZlZWRiYWNrLyAoIzEzMzQ5NCkuCgoyMDA2LTAzLTIxIDE1OjA0OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvOiBBZGQgRklMRVMgc2VjdGlvbiBhbmQgY29ycmVjdCBlbnRyeSBhYm91dCBHU1RfUkVHSVNUUllfUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJsZSAoIzEzMzQ5NTsgIzEzMzQ5NCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL01ha2VmaWxlLmFtOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgQWRkIEZJTEVTIHNlY3Rpb24gYW5kIGNvcnJlY3QgZW50cnkgYWJvdXQgR1NUX1JFR0lTVFJZX1BBVEgKCSAgZW52aXJvbm1lbnQgdmFyaWFibGUgKCMxMzM0OTU7ICMxMzM0OTQpLgoKMjAwNi0wMy0yMSAxNDo0MTo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzLzogUmVtb3ZlIGdzdC1tZDVzdW0gYW5kIG1hbiBwYWdlICh0aGUgbWQ1c2luayBlbGVtZW50IHJlcXVpcmVkIHdhcyByZW1vdmVkIGFnZXMgYWdvKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9NYWtlZmlsZS5hbToKCSAgKiB0b29scy9nc3QtbWQ1c3VtLjEuaW46CgkgICogdG9vbHMvZ3N0LW1kNXN1bS5jOgoJICBSZW1vdmUgZ3N0LW1kNXN1bSBhbmQgbWFuIHBhZ2UgKHRoZSBtZDVzaW5rIGVsZW1lbnQKCSAgcmVxdWlyZWQgd2FzIHJlbW92ZWQgYWdlcyBhZ28pCgoyMDA2LTAzLTIxIDE0OjI0OjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBNYWtlIHN1cmUgdGhhdCBzdHJpbmcgZmllbGRzIGluIHN0cnVjdHVyZXMvdGFnbGlzdHMgY29udGFpbiB2YWxpZCBVVEYtOCAtIHdlIGRvbid0IHdhbnQgdG8gcGFzcyByLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfaWRfc2V0X3ZhbHVlKToKCSAgTWFrZSBzdXJlIHRoYXQgc3RyaW5nIGZpZWxkcyBpbiBzdHJ1Y3R1cmVzL3RhZ2xpc3RzCgkgIGNvbnRhaW4gdmFsaWQgVVRGLTggLSB3ZSBkb24ndCB3YW50IHRvIHBhc3MgcnViYmlzaCB0bwoJICBhcHBsaWNhdGlvbnMgYmVjYXVzZSBvZiBhIGJ1Z2d5IHBsdWdpbiAoY3AuICMzMzQxNjcpLgoKMjAwNi0wMy0yMSAxNDoxNDo0OSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIFNlcmllcyBvZiBmaXhlcyBmb3IgZGVyZWZlcmVuY2VkIHBvaW50ZXJzIHRoYXQgZ2NjIDQuMSBjb21wbGFpbnMgYWJvdXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXZpZXdlZCBieTogPGRlbGV0ZSBpZiBub3QgdXNpbmcgYSBidWRkeT4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2Rpc3Bvc2UpLCAoZ3N0X2Jpbl9wcm92aWRlX2Nsb2NrX2Z1bmMpLAoJICAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19kaXNwb3NlKSwgKGdzdF9jbG9ja19zZXRfbWFzdGVyKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X2Nsb2NrKSwgKGdzdF9lbGVtZW50X2Rpc3Bvc2UpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X2J1c19mdW5jKToKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZGlzcG9zZSk6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF92YWx1ZV9zZXRfbWluaV9vYmplY3QpLAoJICAoZ3N0X3ZhbHVlX3Rha2VfbWluaV9vYmplY3QpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X3BhZF90ZW1wbGF0ZSk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfZGlzcG9zZSksCgkgIChnc3RfcGlwZWxpbmVfdXNlX2Nsb2NrKSwgKGdzdF9waXBlbGluZV9hdXRvX2Nsb2NrKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX3BvcCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2NoYWluKToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfc2V0X3Byb3BlcnR5KToKCSAgU2VyaWVzIG9mIGZpeGVzIGZvciBkZXJlZmVyZW5jZWQgcG9pbnRlcnMgdGhhdCBnY2MgNC4xIGNvbXBsYWlucyBhYm91dC4KCSAgSXQncyBpbiBmYWN0IGFsbCBpc3N1ZXMgd2l0aCBnc3RfKm9iamVjdF9yZXBsYWNlKCkuCgoyMDA2LTAzLTIxIDEzOjU1OjQ0ICswMDAwICBMb8OvYyBNaW5pZXIgPGxvb2wuZ25vbWVAdmlhLmVjcC5mcj4KCgkgIHBrZ2NvbmZpZy86IFVzZSBAQ0hFQ0tfTElCU0AgaGVyZSBpbnN0ZWFkIG9mIGhhcmQtY29kaW5nIC1sY2hlY2sgKCMzMzQxMDkpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IExvw69jIE1pbmllciAgPGxvb2wgKyBnbm9tZSBhdCB2aWEgZG90IGVjcCBkb3QgZnI+CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLnBjLmluOgoJICBVc2UgQENIRUNLX0xJQlNAIGhlcmUgaW5zdGVhZCBvZiBoYXJkLWNvZGluZyAtbGNoZWNrICgjMzM0MTA5KS4KCjIwMDYtMDMtMjEgMTM6NTA6NTIgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvOiBnc3RfW2J1ZmZlcnxldmVudHxtZXNzYWdlXV9yZWYoKSBtYWNyb3MgYXJlIHJlcGxhY2VkIGJ5IGEgc3RhdGljIGlubGluZSBmdW5jdGlvbnMgYmVjYXVzZSBnY2MtNC4xIHdpbGwgYWJvdXQgaWYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIGdzdF9bYnVmZmVyfGV2ZW50fG1lc3NhZ2VdX3JlZigpIG1hY3JvcyBhcmUgcmVwbGFjZWQgYnkgYSBzdGF0aWMKCSAgaW5saW5lIGZ1bmN0aW9ucyBiZWNhdXNlIGdjYy00LjEgd2lsbCBhYm91dCBpZiB0aGUgcmV0dXJuIHZhbHVlCgkgIGlzbid0IHVzZWQuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6IChldmVudF9wcm9iZSk6CgkgIGdzdF9ldmVudF9yZWYgbm93IGhhcyB0byBiZSBnaXZlbiBhIEdzdEV2ZW50KiAsIGZpeCBjaGVjayBhY2NvcmRpbmdseS4KCjIwMDYtMDMtMjAgMTY6NDc6MzUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogZG9jcy9wbHVnaW5zL3RtcGwvLmdpdGlnbm9yZToKCSAgUmVtb3ZlIGlycml0YXRpbmcgZmlsZSB0aGF0IGtlZXBzIGJyZWFraW5nIG15IGNoZWNrb3V0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVtb3ZlIGlycml0YXRpbmcgZmlsZSB0aGF0IGtlZXBzIGJyZWFraW5nIG15IGNoZWNrb3V0cwoKMjAwNi0wMy0yMCAxNjo0NToxNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuaDogQWRkIEdfVU5MSUtFTFkgdG8gb3VyIGJvaWxlcnBsYXRlIHRvIG9wdGltaXNlIHRoZSAnYWxyZWFkeSByZWdpc3RlcmVkIHRoZSB0eXBlJyBjYXNlLiAoQ2xvc2VzOiAjMzM1MTkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFkZCBHX1VOTElLRUxZIHRvIG91ciBib2lsZXJwbGF0ZSB0byBvcHRpbWlzZSB0aGUgJ2FscmVhZHkgcmVnaXN0ZXJlZAoJICB0aGUgdHlwZScgY2FzZS4gKENsb3NlczogIzMzNTE5NSBmb3Igbm93KS4gSW4gdGhlIGZ1dHVyZSwgd2hlbiB3ZQoJICBkZXBlbmQgb24gR0xpYiAyLjEwLCB3ZSBjb3VsZCBhbHNvIGludGVybiB0aGUgdHlwZSBuYW1lIHVzaW5nCgkgIGdfaW50ZXJuX3N0YXRpY19zdHJpbmcoKQoKMjAwNi0wMy0yMCAxMDo1NjowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogUG9zaXRpb24gcXVlcnkgc2hvdWxkIGFsc28gdGFrZSBtYXggb2YgYWxsIHN0cmVhbXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyksCgkgIChiaW5fcXVlcnlfbWF4X2luaXQpLCAoYmluX3F1ZXJ5X3Bvc2l0aW9uX2ZvbGQpLAoJICAoYmluX3F1ZXJ5X3Bvc2l0aW9uX2RvbmUpLCAoZ3N0X2Jpbl9xdWVyeSk6CgkgIFBvc2l0aW9uIHF1ZXJ5IHNob3VsZCBhbHNvIHRha2UgbWF4IG9mIGFsbCBzdHJlYW1zLgoKMjAwNi0wMy0yMCAwOToyODo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiBGaXggbGVha3MgaW4gZmFrZXNyYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmFrZV9zcmNfZmluYWxpemUpOgoJICBGaXggbGVha3MgaW4gZmFrZXNyYy4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBsZWFrcyBpbiB0aGUgdGVzdGNhc2UuCgoyMDA2LTAzLTE5IDIxOjM5OjIxICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0X3ByaXZhdGUuaDogYWRkIHdpbjMyIHNwZWNpZmljIGltcG9ydCBkZWNvcmF0aW9uKF9fZGVjbHNwZWMoZGxsaW1wb3J0KSkgZm9yIGFsbCBleHRlcm4gR3N0RGVidWdDYXRlZ29yeSAqIHZhcmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgIGFkZCB3aW4zMiBzcGVjaWZpYyBpbXBvcnQgZGVjb3JhdGlvbihfX2RlY2xzcGVjKGRsbGltcG9ydCkpCgkgIGZvciBhbGwgZXh0ZXJuIEdzdERlYnVnQ2F0ZWdvcnkgKiB2YXJpYWJsZXMKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgc29tZSBleHBvcnRzLCByZW1vdmUgZW1wdHkgbGluZXMKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0ZGF0YXByb3RvY29sLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0ZGF0YXByb3RvY29sLmRzcDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRzcDoKCSAgbmV3IHByb2plY3QgZmlsZXMgYW5kIGV4cG9ydGF0aW9uIGZpbGVzIGFkZGVkCgoyMDA2LTAzLTE5IDE2OjA1OjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6IFVzZSBwcm9wZXIgcmV0dXJuIHZhbHVlIGZvciBwcm9iZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6IChlb3NfZXZlbnRfY291bnRlcik6CgkgIFVzZSBwcm9wZXIgcmV0dXJuIHZhbHVlIGZvciBwcm9iZS4KCjIwMDYtMDMtMTcgMTk6Mjc6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IERvbid0IGxlYWsgYnVmZmVycywgY2FwcyBhbmQgcGFkcyBvbiBuZWdvdGlhdGlvbiBlcnJvcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9hbGxvY19idWZmZXJfZnVsbCksCgkgIChnc3RfcGFkX3B1c2gpOgoJICBEb24ndCBsZWFrIGJ1ZmZlcnMsIGNhcHMgYW5kIHBhZHMgb24gbmVnb3RpYXRpb24gZXJyb3JzLgoKMjAwNi0wMy0xNiAxNTozMzo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9mYXEvOiBGYXEgcmV2aWV3IGFuZCB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2N2cy54bWw6CgkgICogZG9jcy9mYXEvZGVwZW5kZW5jaWVzLnhtbDoKCSAgKiBkb2NzL2ZhcS9kZXZlbG9waW5nLnhtbDoKCSAgKiBkb2NzL2ZhcS9mYXEueG1sOgoJICAqIGRvY3MvZmFxL2dlbmVyYWwueG1sOgoJICAqIGRvY3MvZmFxL2dldHRpbmcueG1sOgoJICAqIGRvY3MvZmFxL2xlZ2FsLnhtbDoKCSAgKiBkb2NzL2ZhcS90cm91Ymxlc2hvb3RpbmcueG1sOgoJICAqIGRvY3MvZmFxL3VzaW5nLnhtbDoKCSAgRmFxIHJldmlldyBhbmQgdXBkYXRlLgoKMjAwNi0wMy0xNiAxMDoxODoyNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IERvbid0IHBvdW5kIHRoZSBjcHUgdG8gcGllY2VzIGJ5IGNoZWNraW5nIGdldF9jYXBzIHdoZW4gYWNjZXB0X2NhcHMgaXMgY2FsbGVkIHdpdGggdGhlIHNhbWUgY2FwcyBhcyB0aGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX2FsbG9jX2J1ZmZlcl9mdWxsKSwKCSAgKGdzdF9wYWRfcHVzaCk6CgkgIERvbid0IHBvdW5kIHRoZSBjcHUgdG8gcGllY2VzIGJ5IGNoZWNraW5nIGdldF9jYXBzIHdoZW4gYWNjZXB0X2NhcHMKCSAgaXMgY2FsbGVkIHdpdGggdGhlIHNhbWUgY2FwcyBhcyB0aGUgcGFkIGFscmVhZHkgaGFzLgoJICBVc2UgR1NUX0RFQlVHX09CSkVDVCB3aGVuIG91dHB1dHRpbmcgY2FwcyBjaGFuZ2UgaW5mb3JtYXRpb24uCgoyMDA2LTAzLTE1IDIwOjE3OjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNsb2NrLmM6IEZpeCBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19jbGFzc19pbml0KToKCSAgRml4IGRvY3MuCgoyMDA2LTAzLTE1IDE2OjI5OjAyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuaDogRG9jdW1lbnRhdGlvbiBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgRG9jdW1lbnRhdGlvbiBmaXguCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9pbml0KSwgKGdzdF9wYWRfYWNjZXB0Y2Fwc19kZWZhdWx0KSwKCSAgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9jb25maWd1cmVfc2luayksCgkgIChnc3RfcGFkX2NvbmZpZ3VyZV9zcmMpLCAoZ3N0X3BhZF9jaGFpbiksIChnc3RfcGFkX3B1c2gpOgoJICBNYWtlIHRoZSBkZWZhdWx0IGFjY2VwdGNhcHMgYmVoYXZpb3VyIGJlIHRvIGNoZWNrIHRoZSByZXF1ZXN0ZWQKCSAgY2FwcyBhZ2FpbnN0IHRoZSBnc3RfcGFkX2dldF9jYXBzIG91dHB1dC4KCSAgRW5zdXJlIHRoYXQgZ3N0X3BhZF9hY2NlcHRfY2FwcyBpcyB1c2VkIHRvIGNoZWNrIGNhcHMgd2hlbiBhIHBhZAoJICBkb2Vzbid0IGhhdmUgYSBzZXRjYXBzIGZ1bmN0aW9uLCBzbyB0aGF0IHBhZHMgYXV0b21hdGljYWxseSByZWZ1c2UKCSAgY2FwcyB0aGF0IHRoZXkgZG9uJ3QgYWxsb3cgaW4gdGhlaXIgcGFkIHRlbXBsYXRlLiAoRml4ZXMgIzMzMjk4NikKCSAgV2hlbiBhIGJ1ZmZlciB3aXRoIGF0dGFjaGVkIGNhcHMgaXMgcHVzaGVkLCBlbnN1cmUgdGhhdCB0aGUgc291cmNlCgkgIHBhZCByZWNlaXZlcyB0aG9zZSBjYXBzIGV2ZW4gaWYgdGhlIGVsZW1lbnQgZGlkbid0IGNhbGwKCSAgZ3N0X3BhZF9zZXRfY2FwcyBmaXJzdC4KCjIwMDYtMDMtMTUgMTY6MjI6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogQWRkIHNvbWUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIEFkZCBzb21lIGRvY3MuCgoyMDA2LTAzLTE1IDE1OjU3OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvY29tbW9uLzogQWRkIGEgd2hvbGUgYnVuY2ggb2YgbWlzc2luZyBmdW5jdGlvbnMgKCMzMzQ0MzQpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgYSB3aG9sZSBidW5jaCBvZiBtaXNzaW5nIGZ1bmN0aW9ucyAoIzMzNDQzNCkuCgoyMDA2LTAzLTE0IDE5OjM2OjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBCZXR0ZXIgZGVidWcgaW5mbyB3aGVuIHdlIHJlY2VpdmUgYSBzZWdtZW50IGV2ZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbmZpZ3VyZV9zZWdtZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpLCAoZ3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX2RvX3Fvcyk6CgkgIEJldHRlciBkZWJ1ZyBpbmZvIHdoZW4gd2UgcmVjZWl2ZSBhIHNlZ21lbnQgZXZlbnQuCgkgIFJlb3JnYW5pemUgYSBiaXQgc28gd2UgY2FuIHBhc3MgdGhlIGdldF90aW1lcygpIHJlc3VsdHMgYXJvdW5kLgoJICBVc2UgdGhlIHNlZ21lbnQgZm9ybWF0IHdoZW4gY2FsY3VsYXRpbmcgdGhlIHJ1bm5pbmcgdGltZS4KCSAgRG9uJ3QgZG8gUW9TIGlzIHN5bmMgaXMgZGlzYWJsZWQgb3Igd2UgaGF2ZSBubyBjbG9jayBvciB0aGUKCSAgZWxlbWVudCBkb2VzIG5vdCB3YW50IHVzIHRvIHN5bmMgdG8gdGhlIGNsb2NrLgoJICBEb24ndCBkcm9wIGJ1ZmZlcnMgaWYgUW9TIGlzIGRpc2FibGVkIGZvciBub3cuCgoyMDA2LTAzLTE0IDE5OjI4OjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNsb2NrLmM6IE1hcmtlZCB0aGUgc3RhdHMgcHJvcGVydHkgYXMgdW5pbXBsZW1lbnRlZCBzbyBwZW9wbGUgZG9uJ3QgZ2V0IHdpbGQgaWRlYXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2NsYXNzX2luaXQpLCAoZG9fbGluZWFyX3JlZ3Jlc3Npb24pOgoJICBNYXJrZWQgdGhlIHN0YXRzIHByb3BlcnR5IGFzIHVuaW1wbGVtZW50ZWQgc28gcGVvcGxlIGRvbid0IGdldAoJICB3aWxkIGlkZWFzLgoJICBBZGQgZGVidWcgbWVzc2FnZSB3aGVuIHJlZ3Jlc3Npb24gZ29lcyB3cm9uZy4KCSAgQWRkZWQgc29tZSBtb3JlIGRvY3MuCgoyMDA2LTAzLTE0IDE5OjI2OjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogUmV0dXJuIGNvcnJlY3QgcmV0dXJuIHR5cGUgaW4gY2FzZSBvZiBlcnJvcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSk6CgkgIFJldHVybiBjb3JyZWN0IHJldHVybiB0eXBlIGluIGNhc2Ugb2YgZXJyb3JzLgoKMjAwNi0wMy0xNCAxOToxNjo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3Rmb3JtYXQuYzogRG9uJ3Qgc2VnZmF1bHQgb24gaW52YWxpZCBmb3JtYXRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Zm9ybWF0LmM6IChnc3RfZm9ybWF0X2dldF9uYW1lKSwgKGdzdF9mb3JtYXRfdG9fcXVhcmspOgoJICBEb24ndCBzZWdmYXVsdCBvbiBpbnZhbGlkIGZvcm1hdHMuCgoyMDA2LTAzLTE0IDE4OjI1OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBDYW4ndCB1c2UgZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKCkgd2hlbiB0aGUgc2VnbWVudCBpcyBub3QgaW4gR1NUX1RJTUVfRk9STUFUIChsaWtlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpOgoJICBDYW4ndCB1c2UgZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKCkgd2hlbiB0aGUgc2VnbWVudAoJICBpcyBub3QgaW4gR1NUX1RJTUVfRk9STUFUIChsaWtlIHdpdGggZmlsZXNpbmssIGZvciBleGFtcGxlKS4KCSAgU3RvcHMgZmxhYyBlbmNvZGluZyBwaXBlbGluZXMgZnJvbSBzcGV3aW5nIGNyaXRpY2FsIHdhcm5pbmdzCgkgIGF0IEVPUyAoIzMzMTI0OCkuCgoyMDA2LTAzLTE0IDE2OjMyOjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IEFkZCAnU2luY2U6IDAuMTAuNScgdG8gZ3RrLWRvYyBibHVyYiBmb3IgYWRkZWQgcHJvcGVydHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpOgoJICBBZGQgJ1NpbmNlOiAwLjEwLjUnIHRvIGd0ay1kb2MgYmx1cmIgZm9yIGFkZGVkIHByb3BlcnR5LgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KToKCSAgRG9uJ3QgdHJ5IHRvIHR5cGVmaW5kIGVtcHR5IHN0cmVhbXMuCgoyMDA2LTAzLTE0IDExOjE4OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBTZXBhcmF0ZSBRb1MgY2FsY3VsYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3Fvcyk6CgkgIFNlcGFyYXRlIFFvUyBjYWxjdWxhdGlvbi4KCSAgT25seSBkcm9wIGJ1ZmZlcnMgd2hlbiBsYXRlbmVzcyBpcyBiaWdnZXIgdGhhbiB0aGUKCSAgZHVyYXRpb24gb2YgdGhlIGJ1ZmZlci4KCjIwMDYtMDMtMTMgMTU6MTc6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogRG9uJ3QgZGVhZGxvY2sgd2hlbiByZWFkaW5nIHByb3BlcnRpZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfcGlwZWxpbmVfZ2V0X3Byb3BlcnR5KSwgKGRvX3BpcGVsaW5lX3NlZWspLAoJICAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksIChnc3RfcGlwZWxpbmVfc2V0X2RlbGF5KSwKCSAgKGdzdF9waXBlbGluZV9nZXRfZGVsYXkpOgoJICBEb24ndCBkZWFkbG9jayB3aGVuIHJlYWRpbmcgcHJvcGVydGllcy4KCjIwMDYtMDMtMTMgMTE6Mjc6NTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uKjogTWFrZSBiYXNldHJhbnNmb3JtIHZpcnR1YWwgbWV0aG9kIGZvciBzcmMgZXZlbnRzIHRvby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2xhc3NfaW5pdCksIChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19ldmVudCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19ldmVudGZ1bmMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NyY19ldmVudCksIChnc3RfYmFzZV90cmFuc2Zvcm1fc3JjX2V2ZW50ZnVuYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3VwZGF0ZV9xb3MpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9xb3NfZW5hYmxlZCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faXNfcW9zX2VuYWJsZWQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBNYWtlIGJhc2V0cmFuc2Zvcm0gdmlydHVhbCBtZXRob2QgZm9yIHNyYyBldmVudHMgdG9vLgoJICBIYW5kbGUgUU9TIGluIGJhc2V0cmFuc2Zvcm0uCgkgIEFQSTogZ3N0X2Jhc2VfdHJhbnNmb3JtX3VwZGF0ZV9xb3MKCSAgQVBJOiBnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X3Fvc19lbmFibGVkCgkgIEFQSTogZ3N0X2Jhc2VfdHJhbnNmb3JtX2lzX3Fvc19lbmFibGVkCgoyMDA2LTAzLTEzIDExOjE2OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBTbWFsbCBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgIFNtYWxsIGNsZWFudXBzLgoJICBVc2UgUU9TIGRlYnVnIGNhdGVnb3J5LgoKMjAwNi0wMy0xMyAxMToxMToxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogVmVyeSBzbWFsbCBkb2MgdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIFZlcnkgc21hbGwgZG9jIHVwZGF0ZS4KCjIwMDYtMDMtMTMgMTE6MDg6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBBZGRlZCBRT1MgZGVidWcgY2F0ZWdvcnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdGluZm8uYzogKF9nc3RfZGVidWdfaW5pdCk6CgkgIEFkZGVkIFFPUyBkZWJ1ZyBjYXRlZ29yeQoKMjAwNi0wMy0xMyAxMTowNDozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fYnVzX2hhbmRsZXIpLCAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9sb2NrZWRfc3RhdGUpOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6CgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9nZXRfdHlwZSksCgkgIChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCksIChnc3RfcGlwZWxpbmVfaW5pdCksCgkgIChnc3RfcGlwZWxpbmVfZGlzcG9zZSksIChnc3RfcGlwZWxpbmVfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9waXBlbGluZV9nZXRfcHJvcGVydHkpLCAoZG9fcGlwZWxpbmVfc2VlayksCgkgIChnc3RfcGlwZWxpbmVfc2VuZF9ldmVudCksIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9waXBlbGluZV9wcm92aWRlX2Nsb2NrX2Z1bmMpLCAoZ3N0X3BpcGVsaW5lX3NldF9kZWxheSksCgkgIChnc3RfcGlwZWxpbmVfZ2V0X2RlbGF5KToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSAgQWRkZWQgbWV0aG9kcyBmb3Igc2V0dGluZyB0aGUgZGVsYXkuCgkgIEFQSTogZ3N0X3BpcGVsaW5lX3NldF9kZWxheQoJICBBUEk6IGdzdF9waXBlbGluZV9nZXRfZGVsYXkKCSAgQWRkIHBpcGVsaW5lIGRlYnVnIGNhdGVnb3J5CgkgIFZhcmlvdXMgY2xlYW51cHMuCgkgIFVwZGF0ZWQgZG9jcy4KCSAgRG9uJ3QgcmVzZXQgc3RyZWFtIHRpbWUgd2hlbiBzZWVrIGZhaWxlZC4KCjIwMDYtMDMtMTMgMTA6MzI6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IERvY3VtZW50YXRpb24gdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RiaW4udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcHJlcm9sbC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW1zLnR4dDoKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoKMjAwNi0wMy0xMiAyMDo0NDo0NiArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5jOiBGaXggcnViYmlzaCBkb2NzIHRoYXQgYXJlIGVuY291cmFnaW5nIHVzIHRvIGxlYWsgc3RyaW5ncy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMy0xMiAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IEZpeCBydWJiaXNoIGRvY3MgdGhhdCBhcmUgZW5jb3VyYWdpbmcKCSAgdXMgdG8gbGVhayBzdHJpbmdzLi4uCgoyMDA2LTAzLTEyIDIwOjQwOjE5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzogZml4IGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBmaXggZG9jcwoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdXBkYXRlCgoyMDA2LTAzLTEyIDE0OjMyOjM3ICswMDAwICBKdWxpbyBNLiBNZXJpbm8gVmlkYWwgPGptbXZAbmV0YnNkLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogRG9uJ3QgY2hlY2sgZm9yIGxpYmdub21ldWkgKGxlZnRvdmVyIGZyb20gb2xkIGV4YW1wbGVzIHRoYXQgYXJlbid0IGJ1aWx0IG9yIGRpc3RlZCBhbnkgbG9uZ2VyKSAoIzMzNDMwMykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSnVsaW8gTS4gTWVyaW5vIFZpZGFsIDxqbW12IGF0IG5ldGJzZCBvcmc+CgkgICogY29uZmlndXJlLmFjOgoJICBEb24ndCBjaGVjayBmb3IgbGliZ25vbWV1aSAobGVmdG92ZXIgZnJvbSBvbGQgZXhhbXBsZXMKCSAgdGhhdCBhcmVuJ3QgYnVpbHQgb3IgZGlzdGVkIGFueSBsb25nZXIpICgjMzM0MzAzKS4KCjIwMDYtMDMtMTEgMTM6MDI6MjggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogRW1pdCBSRVNPVVJDRV9OT19TUEFDRV9MRUZUIGVycm9yIGhlcmUgYXMgd2VsbCB3aGVuIHRoZXJlJ3Mgbm8gc3BhY2UgbGVmdCBvbiB0aGUgZGV2aWNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfcmVuZGVyKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX3JlbmRlcik6CgkgIEVtaXQgUkVTT1VSQ0VfTk9fU1BBQ0VfTEVGVCBlcnJvciBoZXJlIGFzIHdlbGwgd2hlbgoJICB0aGVyZSdzIG5vIHNwYWNlIGxlZnQgb24gdGhlIGRldmljZS4KCjIwMDYtMDMtMTAgMjM6NDQ6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0Y2xvY2suaDogRml4IEdTVF9DTE9DS19USU1FX0lTX1ZBTElEIHNpZ25lZG5lc3MgaXNzdWVzIC0gd2UgbmVlZCB0byBjYXN0IHRoZSBpbnB1dCB0byBHc3RDbG9ja1RpbWUgYmVmb3JlIGNvbXAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIEZpeCBHU1RfQ0xPQ0tfVElNRV9JU19WQUxJRCBzaWduZWRuZXNzIGlzc3VlcyAtIHdlIG5lZWQKCSAgdG8gY2FzdCB0aGUgaW5wdXQgdG8gR3N0Q2xvY2tUaW1lIGJlZm9yZSBjb21wYXJpbmcgd2l0aAoJICBhbm90aGVyIEdzdENsb2NrVGltZSB2YWx1ZS4KCjIwMDYtMDMtMTAgMTk6MTI6MDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGxvZyB3aGF0IHdlJ3JlIHdhaXRpbmcgb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGxvZyB3aGF0IHdlJ3JlIHdhaXRpbmcgb24KCjIwMDYtMDMtMTAgMTk6MTE6MzQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIGhlYWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gaGVhZAoKPT09IHJlbGVhc2UgMC4xMC40ID09PQoKMjAwNi0wMy0xMCAxOTowMzoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9tYW51YWwvUkVBRE1FOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBkb2NzL3VwbG9hZC5tYWs6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcmVsZWFzaW5nIDAuMTAuNAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzaW5nIDAuMTAuNAoKMjAwNi0wMy0xMCAxNTozMDoyNyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBGaXggZG9jcyBmb3IgZGF0YXByb2NvdG9sIHRvIG5vdCBnZXQgdGhlIHJldHVybiB0eXBlcyBjb21wbGV0ZWx5IHdyb25nIGZvciBhIGZlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgRml4IGRvY3MgZm9yIGRhdGFwcm9jb3RvbCB0byBub3QgZ2V0IHRoZSByZXR1cm4gdHlwZXMgY29tcGxldGVseQoJICB3cm9uZyBmb3IgYSBmZXcgZnVuY3Rpb25zLgoKMjAwNi0wMy0wOSAxOTowMDoyMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBwcmVyZWxlYXNpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHByZXJlbGVhc2luZwoKMjAwNi0wMy0wOSAxNjo1MzowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBuZXcgQVBJOiBnc3RfcGlwZWxpbmVfc2V0X2F1dG9fZmx1c2hfYnVzKCkgYW5kIGdzdF9waXBlbGluZV9nZXRfYXV0b19mbHVzaF9idXMoKSB0byBkaXNhYmxlIGF1dG9tYXRpYyBmbHVzaGluZyBvZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpLAoJICAoZ3N0X3BpcGVsaW5lX2luaXQpLCAoZ3N0X3BpcGVsaW5lX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfcGlwZWxpbmVfZ2V0X3Byb3BlcnR5KSwgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3BpcGVsaW5lX3NldF9hdXRvX2ZsdXNoX2J1cyksCgkgIChnc3RfcGlwZWxpbmVfZ2V0X2F1dG9fZmx1c2hfYnVzKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSAgQWRkIG5ldyBBUEk6IGdzdF9waXBlbGluZV9zZXRfYXV0b19mbHVzaF9idXMoKSBhbmQKCSAgZ3N0X3BpcGVsaW5lX2dldF9hdXRvX2ZsdXNoX2J1cygpIHRvIGRpc2FibGUgYXV0b21hdGljCgkgIGZsdXNoaW5nIG9mIHRoZSBwaXBlbGluZSdzIEdzdEJ1cyB3aGVuIGdvaW5nIGZyb20gUkVBRFkKCSAgdG8gTlVMTCBzdGF0ZSAoIzMzMjA0NSkuCgoyMDA2LTAzLTA5IDEyOjA4OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkIG5ldyBBUEk6IGdzdF91cmlfaGFzX3Byb3RvY29sKCkgKCMzMzM3NzkpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R1cmkuYzogKGdzdF91cmlfaGFzX3Byb3RvY29sKToKCSAgKiBnc3QvZ3N0dXJpLmg6CgkgIEFkZCBuZXcgQVBJOiBnc3RfdXJpX2hhc19wcm90b2NvbCgpICgjMzMzNzc5KS4KCjIwMDYtMDMtMDkgMTE6NDU6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2xvY2suKjogUmV2aWV3IGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2VudHJ5X25ldyksCgkgIChnc3RfY2xvY2tfaWRfY29tcGFyZV9mdW5jKSwgKGdzdF9jbG9ja19pZF93YWl0KSwKCSAgKGdzdF9jbG9ja19pZF93YWl0X2FzeW5jKSwgKGdzdF9jbG9ja19pZF91bnNjaGVkdWxlKSwKCSAgKGdzdF9jbG9ja19pbml0KSwgKGdzdF9jbG9ja19nZXRfaW50ZXJuYWxfdGltZSksCgkgIChnc3RfY2xvY2tfc2V0X21hc3RlciksIChkb19saW5lYXJfcmVncmVzc2lvbiksCgkgIChnc3RfY2xvY2tfYWRkX29ic2VydmF0aW9uKSwgKGdzdF9jbG9ja19zZXRfcHJvcGVydHkpOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBSZXZpZXcgZG9jcy4KCSAgU21hbGwgY2xlYW51cHMuCgkgIEZpeCBhIHBvc3NpYmxlIHNlZ2ZhdWx0IHdoZW4gdGhlIHdpbmRvdy1zaXplIGlzIG1hZGUgc21hbGxlci4KCSAgQ2FsY3VsYXRlIGppdHRlciBiZWZvcmUgcGVyZm9ybWluZyB0aGUgY2xvY2sgd2FpdC4gSWRlYWxseQoJICB0aGUgY2xvY2sgaW1wbGVtZW50YXRpb24gc2hvdWxkIGNhbGN1bGF0ZSBqaXR0ZXIgYnV0IHdlIG5lZWQKCSAgQVBJIGJyZWFrYWdlIGZvciB0aGF0LgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19pbml0KToKCSAgRG9jcyByZXZpZXcuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgUmVtb3ZlIGxlZnRvdmVyIGVsc2UKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9zeXN0ZW1jbG9ja19zdWl0ZSk6CgkgIEFkZGVkIGNoZWNrIHRvIHRlc3QgR1NUX0NMT0NLX0RJRkYuCgoyMDA2LTAzLTA5IDEwOjQ2OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiBJZiB3ZSBhcmUgcHJvdmlkZWQgd2l0aCB0aGUgc2l6ZSwgd2Ugc2hvdWxkIGltcGxlbWVudAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChoZWxwZXJfZmluZF9nZXRfbGVuZ3RoKSwKCSAgKGdzdF90eXBlX2ZpbmRfaGVscGVyX2dldF9yYW5nZSk6CgkgIElmIHdlIGFyZSBwcm92aWRlZCB3aXRoIHRoZSBzaXplLCB3ZSBzaG91bGQgaW1wbGVtZW50CgkgIEdzdFR5cGVGaW5kOjpnZXRfbGVuZ3RoLCBzbyB0aGF0IHR5cGVmaW5kIGZ1bmN0aW9ucyB3aG8KCSAgd2FudCB0byBjYW4gYWN0dWFsbHkgcGVlayBhdCB0aGUgbWlkZGxlIG9mIGEgZmlsZS4KCjIwMDYtMDMtMDggMTQ6MzA6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDogQWRkIHNvbWUgdmVyeSB2ZXJ5IGJhc2ljIGVycm9yIGNoZWNraW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgQWRkIHNvbWUgdmVyeSB2ZXJ5IGJhc2ljIGVycm9yIGNoZWNraW5nLgoJICAqIGRvY3MvcHdnL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkgIFNvbWUgdXBkYXRlcyB0byB0aGUgbGlzdCBvZiB0aGluZ3MgdG8gY2hlY2sgd2hlbiB3cml0aW5nIGFuIGVsZW1lbnQuCgoyMDA2LTAzLTA4IDEzOjQ0OjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXRyYW5zZm9ybS50eHQ6IEFkZGVkIHNvbWUgZG9jcyBhYm91dCB0aGUgZGVzaWduIG9mIHRyYW5mb3JtIGVsZW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtdHJhbnNmb3JtLnR4dDoKCSAgQWRkZWQgc29tZSBkb2NzIGFib3V0IHRoZSBkZXNpZ24gb2YgdHJhbmZvcm0gZWxlbWVudHMuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKSwgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBNYXJrIGJ1ZmZlcnMgd2l0aCB0aGUgRElTQ09OVCBmbGFnLgoKMjAwNi0wMy0wOCAxMjo1NzozNyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0LzogUmV3cml0ZSByZWdpc3RyeS1zYXZpbmcgdG8gYXZvaWQgcmFjZSBjb25kaXRpb25zIGFuZCBjaGVjayBmb3IgZmFpbGVkIHdyaXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChnc3RfcmVnaXN0cnlfc2F2ZSksCgkgIChnc3RfcmVnaXN0cnlfc2F2ZV9lc2NhcGVkKSwgKGdzdF9yZWdpc3RyeV94bWxfc2F2ZV9jYXBzKSwKCSAgKGdzdF9yZWdpc3RyeV94bWxfc2F2ZV9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X3htbF9zYXZlX2ZlYXR1cmUpLCAoZ3N0X3JlZ2lzdHJ5X3htbF9zYXZlX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfeG1sX3dyaXRlX2NhY2hlKToKCSAgUmV3cml0ZSByZWdpc3RyeS1zYXZpbmcgdG8gYXZvaWQgcmFjZSBjb25kaXRpb25zIGFuZCBjaGVjayBmb3IKCSAgZmFpbGVkIHdyaXRlcy4KCjIwMDYtMDMtMDggMTA6MTc6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogQ2xlYW51cHMsIHNlcGFyYXRlIG5vcm1hbCBmbG93IGZyb20gZXJyb3JzLCBhZGQgc2Vuc2libGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9zaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF91bml0X3NpemUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKToKCSAgQ2xlYW51cHMsIHNlcGFyYXRlIG5vcm1hbCBmbG93IGZyb20gZXJyb3JzLCBhZGQgc2Vuc2libGUKCSAgREVCVUcgbGluZXMuCgkgIERvbid0IHRyeSB0byByZW5lZ290aWF0ZSB3aGVuIGFsbG9jYXRpbmcgYW4gb3V0cHV0IGJ1ZmZlci4KCSAgQWxzbyBjb3B5IERJU0NPTlQgYnVmZmVyIGZsYWcgd2hlbiBjb3B5aW5nIGEgYnVmZmVyLgoJICBSZXNldCB0aGUgdHJhbnNmb3JtIGFmdGVyIHdlIGZpbmlzaCBzdHJlYW1pbmcsIG5vdCBkdXJpbmcuCgoyMDA2LTAzLTA4IDA5OjQ2OjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBVc2UgbGFzdCBidWZmZXIgdGltZXN0YW1wIGluIHFvcyBtZXNzYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICBVc2UgbGFzdCBidWZmZXIgdGltZXN0YW1wIGluIHFvcyBtZXNzYWdlLgoKMjAwNi0wMy0wNyAxNzowNjo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvcHdnLzogQXBwbGllZCBwYXRjaCBmcm9tIENocmlzdG9waGUgRmVyZ2VhdSwgZml4ZXMgIzMzMzQxNgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC10YWdnaW5nLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1wYWRzLnhtbDoKCSAgQXBwbGllZCBwYXRjaCBmcm9tIENocmlzdG9waGUgRmVyZ2VhdSwgZml4ZXMgIzMzMzQxNgoKMjAwNi0wMy0wNyAxNjoyMTowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEFkZGVkIGJhc2VzaW5rIG5ldyBtZXRob2RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBZGRlZCBiYXNlc2luayBuZXcgbWV0aG9kcy4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgRG9jcyB1cGRhdGVzLiBGbGVzaCBvdXQgdGhlIFFvUyBkb2NzLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBTbWFsbCBkb2MgY2xhcmlmaWNhdGlvbiBhYm91dCBvd25lcnNoaXAgYW5kIGZsdXNoaW5nLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3Npbmtfc2V0X3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luYyksIChnc3RfYmFzZV9zaW5rX3NldF9tYXhfbGF0ZW5lc3MpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfbWF4X2xhdGVuZXNzKSwgKGdzdF9iYXNlX3Npbmtfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBBZGRlZCBuZXcgbWV0aG9kcyB0byBhbGxvdyBzdWJjbGFzcyB0byBjb250cm9sIG1heC1sYXRlbmVzcwoJICBhbmQgc3luYy4KCSAgR2VuZXJhdGUgdmVyeSBiYXNpYyBRb1MgZXZlbnRzIGJhc2VkIG9uIGxhc3Qgc3luYyBvYnNlcnZhdGlvbi4KCSAgVXBkYXRlZCBkb2NzLCBmaXggdHlwbywgYWRkZWQgc29tZSBRb1MgYmx1cmIuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIFJlbW92ZSBvYnNvbGV0ZSBfZ2V0X3N0YXRlKCkgY2FsbHMgZnJvbSBkb2NzLgoKMjAwNi0wMy0wNyAxNToxNDo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEZpeCAjMzMzNjY5LCBBZGQgcGFkIGFjY2Vzc29yIGRlZmluZXMgZm9yIEdzdEJhc2VUcmFuc2Zvcm0KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgRml4ICMzMzM2NjksIEFkZCBwYWQgYWNjZXNzb3IgZGVmaW5lcyBmb3IgR3N0QmFzZVRyYW5zZm9ybQoJICBGaXggZG9jcyBmb3IgR3N0QmFzZVNyYy4KCjIwMDYtMDMtMDcgMTU6MDg6NTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBTbWFsbCBkb2N1bWVudGF0aW9uIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgU21hbGwgZG9jdW1lbnRhdGlvbiBmaXhlcy4KCjIwMDYtMDMtMDcgMTE6NDc6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuYzogRG9jdW1lbnQgdGhyZWFkLXVuc2FmZXR5IG9mIGdzdF92YWx1ZV9yZWdpc3Rlcl9mb29fZnVuYygpIHdoZW4gdXNlZCBhdCB0aGUgc2FtZSB0aW1lIGFzIGdzdF92YWx1ZV9mb28uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIERvY3VtZW50IHRocmVhZC11bnNhZmV0eSBvZiBnc3RfdmFsdWVfcmVnaXN0ZXJfZm9vX2Z1bmMoKQoJICB3aGVuIHVzZWQgYXQgdGhlIHNhbWUgdGltZSBhcyBnc3RfdmFsdWVfZm9vKCkgKCMzMjI2MjgpLgoKMjAwNi0wMy0wNyAxMDoxOToyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHVwZGF0ZSBSRUFETUUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBSRUFETUUKCjIwMDYtMDMtMDcgMDk6Mjg6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzogUHVzaCBzb3VyY2VzIGRvbid0IHN1cHBvcnQgcHVsbCBtb2RlIGJ5IGRlZmF1bHQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOiAoZ3N0X3B1c2hfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X3B1c2hfc3JjX2NoZWNrX2dldF9yYW5nZSk6CgkgIFB1c2ggc291cmNlcyBkb24ndCBzdXBwb3J0IHB1bGwgbW9kZSBieSBkZWZhdWx0LgoKMjAwNi0wMy0wNiAxOTo1NTowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy4qOiBBZGQgOjpjaGVja19nZXRfcmFuZ2UoKSB2ZnVuYyB0byBHc3RCYXNlU3JjICgjMzMyNjExKSwgcHJvdmlkZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uLCBhbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19pbml0KSwgKGdzdF9iYXNlX3NyY19wYWRfY2hlY2tfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X2NoZWNrX2dldF9yYW5nZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIEFkZCA6OmNoZWNrX2dldF9yYW5nZSgpIHZmdW5jIHRvIEdzdEJhc2VTcmMgKCMzMzI2MTEpLAoJICBwcm92aWRlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24sIGFuZCByZW5hbWUKCSAgZ3N0X2Jhc2Vfc3JjX2NoZWNrX2dldF9yYW5nZSgpIHRvCgkgIGdzdF9iYXNlX3NyY19wYWRfY2hlY2tfZ2V0X3JhbmdlKCkgZm9yIGNsYXJpdHkuCgoyMDA2LTAzLTA2IDE2OjI0OjM0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL3N0eWxlZ3VpZGU6CgkgIHN0eWxlIGd1aWRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzdHlsZSBndWlkZQoKMjAwNi0wMy0wNiAxNjoxMDo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogTWFrZSBwcm9wZXJ0eSBvdmVycmlkYWJsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KToKCSAgTWFrZSBwcm9wZXJ0eSBvdmVycmlkYWJsZS4KCjIwMDYtMDMtMDYgMTY6MDI6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLio6IE1ha2UgbWF4LWxhdGVuZXNzIGEgcHJvcGVydHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX2luaXQpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIE1ha2UgbWF4LWxhdGVuZXNzIGEgcHJvcGVydHkuCgoyMDA2LTAzLTA2IDE1OjE2OjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBEb24ndCBldmVyIGRyYXcgYSBmcmFtZSB0aGF0IGlzID4xMG1zIGxhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3Npbmtfd2FpdF9jbG9jayksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19yZW5kZXJfb2JqZWN0KToKCSAgRG9uJ3QgZXZlciBkcmF3IGEgZnJhbWUgdGhhdCBpcyA+MTBtcyBsYXRlLgoKMjAwNi0wMy0wNiAxNDo1MTozNiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuYzogV2hlbiBjb3B5aW5nIGEgbWVzc2FnZSwgc2V0IHRoZSBwYXJlbnRfcmVmY291bnQgb2YgdGhlIGVuY2xvc2VkIHN0cnVjdHVyZSB0byBwb2ludCBhdCB0aGUgY29weSwgbm90Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChfZ3N0X21lc3NhZ2VfY29weSk6CgkgIFdoZW4gY29weWluZyBhIG1lc3NhZ2UsIHNldCB0aGUgcGFyZW50X3JlZmNvdW50IG9mIHRoZSBlbmNsb3NlZAoJICBzdHJ1Y3R1cmUgdG8gcG9pbnQgYXQgdGhlIGNvcHksIG5vdCB0aGUgb3JpZ2luYWwgbWVzc2FnZS4KCjIwMDYtMDMtMDYgMTQ6NDY6MzEgKzAwMDAgIENocmlzdG9waGUgRmVyZ2VhdSA8dGV1ZkBnbm9tZS5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuaDogRG8gcHJvcGVyIGNhc3QgaGVyZSB0byBtYWtlIEdTVF9CT0lMRVJQTEFURV9XSVRIX0lOVEVSRkFDRQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgRG8gcHJvcGVyIGNhc3QgaGVyZSB0byBtYWtlIEdTVF9CT0lMRVJQTEFURV9XSVRIX0lOVEVSRkFDRQoJICB1c2FibGUgaW4gYysrIGNvZGUgKCMzMzM0MTc7IHBhdGNoIGJ5OiBDaHJpc3RvcGhlIEZlcmdlYXUpCgoyMDA2LTAzLTA2IDE0OjM0OjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RjbG9jay5oOiBTaG93IEdTVF9DTE9DS19USU1FX05PTkUgYXMgOTk6OTk6OTkuOTk5OTk5OTk5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBTaG93IEdTVF9DTE9DS19USU1FX05PTkUgYXMgOTk6OTk6OTkuOTk5OTk5OTk5CgoyMDA2LTAzLTA2IDE0OjIzOjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXF1b3Rlcy54bWw6CgkgIGFkZCBhbm90aGVyIHF1b3RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYW5vdGhlciBxdW90ZQoKMjAwNi0wMy0wNSAyMDo1Njo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBNYWtlIHN1cmUgY2FwcyBhcmUgd3JpdGFibGUgYmVmb3JlIHBhc3NpbmcgdGhlbSB0byBnc3RfY2Fwc19hcHBlbmQoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpOgoJICBNYWtlIHN1cmUgY2FwcyBhcmUgd3JpdGFibGUgYmVmb3JlIHBhc3NpbmcgdGhlbSB0bwoJICBnc3RfY2Fwc19hcHBlbmQoKS4KCjIwMDYtMDMtMDQgMTQ6NDU6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZXJyb3IuaDogRml4IHNvbWUgbWlub3IgZG9jcyBlcnJvcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlcnJvci5oOgoJICBGaXggc29tZSBtaW5vciBkb2NzIGVycm9ycy4KCjIwMDYtMDMtMDQgMTM6NTQ6MjYgKzAwMDAgIFJvc3MgQnVydG9uIDxyb3NzQGJ1cnRvbmluaS5jb20+CgoJICBnc3QvZ3N0ZXJyb3IuKjogQWRkIEdTVF9SRVNPVVJDRV9FUlJPUl9OT19TUEFDRV9MRUZUIChmb3IgIzMzMzM1MjsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVycm9yLmM6IChfZ3N0X3Jlc291cmNlX2Vycm9yc19pbml0KToKCSAgKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgQWRkIEdTVF9SRVNPVVJDRV9FUlJPUl9OT19TUEFDRV9MRUZUIChmb3IgIzMzMzM1MjsKCSAgcGF0Y2ggYnk6IFJvc3MgQnVydG9uIDxyb3NzIGF0IGJ1cnRvbmluaSBkb3QgY29tPikuCgoyMDA2LTAzLTAzIDE2OjU4OjUxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3QuYzogQWRkIGEgY2hlY2sgYW5kIG91dHB1dCBhIGdfd2FybmluZyB3aGVuIEdTdHJlYW1lciBpcyBidWlsdCBhZ2FpbnN0IEdMaWIgMi42IGJ1dCBydW5uaW5nIGFnYWluc3QgMi44IG9yIGhpZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIEFkZCBhIGNoZWNrIGFuZCBvdXRwdXQgYSBnX3dhcm5pbmcgd2hlbiBHU3RyZWFtZXIgaXMgYnVpbHQKCSAgYWdhaW5zdCBHTGliIDIuNiBidXQgcnVubmluZyBhZ2FpbnN0IDIuOCBvciBoaWdoZXIsIGFuZCB2aWNlCgkgIHZlcnNhLiAoQ2xvc2VzOiAjMzIzNTQyKQoKMjAwNi0wMy0wMyAxNTozMjozMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvcGFyc2UvcGFyc2UubDogQ29tbWl0IHBhdGNoIGZvciBwYXJzZV9sYXVuY2ggc3ludGF4IGZyb20gIzMzMTI1NS4gUmVtb3ZlcyBzdXBwb3J0IGZvciBxdW90ZWQgc3RyaW5ncyBhbmQgbWltZXR5cGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL3BhcnNlLmw6CgkgIENvbW1pdCBwYXRjaCBmb3IgcGFyc2VfbGF1bmNoIHN5bnRheCBmcm9tICMzMzEyNTUuIFJlbW92ZXMKCSAgc3VwcG9ydCBmb3IgcXVvdGVkIHN0cmluZ3MgYW5kIG1pbWV0eXBlcyB3aGVuIHdyaXRpbmcgZmlsdGVyZWQKCSAgY2Fwcy4gU2VlIHRoZSBidWcgcmVwb3J0IGZvciBtb3JlIGRldGFpbHMgLSBJJ20gcHJldHR5IHN1cmUgdGhpcwoJICBvYnNjdXJlIGZlYXR1cmUgaXMgbm90IGluIHVzZSBieSBfYW55b25lXyBhbnl3aGVyZS4KCSAgV2l0aCB0aGlzIHNpbXBsZSBjaGFuZ2UsIHRoZSBzaXplIG9mIHRoZSBnc3RyZWFtZXIuc28gaGVyZQoJICBkcm9wcyBmcm9tIDIxOTNLQiB0byAxNTY1S0IuCgoyMDA2LTAzLTAzIDE0OjE4OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuKjogVXNlIGdzdF90eXBlX2ZpbmRfaGVscGVyX2Zvcl9idWZmZXIoKSBmb3IgY2hhaW4tYmFzZWQgdHlwZWZpbmRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9zcmNfZXZlbnQpLCAoc3RhcnRfdHlwZWZpbmRpbmcpLAoJICAoc3RvcF90eXBlZmluZGluZyksIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbiksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW5fZG9fdHlwZWZpbmRpbmcpOgoJICBVc2UgZ3N0X3R5cGVfZmluZF9oZWxwZXJfZm9yX2J1ZmZlcigpIGZvciBjaGFpbi1iYXNlZAoJICB0eXBlZmluZGluZy4KCjIwMDYtMDMtMDMgMTE6NDI6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBEZXByZWNhdGUgIm1heGltdW0iIHByb3BlcnR5IChub3Qgb25seSB3YXMgaXQgb25seSB0YWtlbiBpbnRvIGFjY291bnQgZm9yIHR5cGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jbGFzc19pbml0KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2dldF9wcm9wZXJ0eSk6CgkgIERlcHJlY2F0ZSAibWF4aW11bSIgcHJvcGVydHkgKG5vdCBvbmx5IHdhcyBpdCBvbmx5IHRha2VuIGludG8KCSAgYWNjb3VudCBmb3IgdHlwZWZpbmRpbmcgaW4gcHVzaC1tb2RlIGFueXdheSwgaXQgYWxzbyB3YXMgbmV2ZXIKCSAgYWN0dWFsbHkgcG9zc2libGUgdG8gc2V0IGl0IGluIHRoZSBmaXJzdCBwbGFjZSBiZWNhdXNlIHRoZQoJICBwcm9wZXJ0eSB3YXMgcmVnaXN0ZXJlZCB3aXRoIHRoZSBudW1lcmljIHByb3BlcnR5IElEIGZvciB0aGUKCSAgIm1pbmltdW0iIHByb3BlcnR5KS4gUmVnaXN0ZXIgIm1heGltdW0iIHByb3BlcnR5IGNvcnJlY3RseSwKCSAgZm9yIHRoZSBzYWtlIG9mIGZ1dHVyZSBjb3B5J24ncGFzdGVycy4gUmVtb3ZlIHNvbWUgY3J1ZnQKCSAgZnJvbSBwcm9wZXJ0eSBnZXQvc2V0IGZ1bmN0aW9ucy4KCjIwMDYtMDMtMDMgMTE6Mjc6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBVc2UgZ3N0X3R5cGVfZmluZF9oZWxwZXJfZ2V0X3JhbmdlKCkgaGVyZSwgc28gd2UgY2FuIGhvbm91ciB0aGUgbWluLXByb2JhYmlsaXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9hY3RpdmF0ZSk6CgkgIFVzZSBnc3RfdHlwZV9maW5kX2hlbHBlcl9nZXRfcmFuZ2UoKSBoZXJlLCBzbyB3ZQoJICBjYW4gaG9ub3VyIHRoZSBtaW4tcHJvYmFiaWxpdHkgcHJvcGVydHkgYW5kIGFsc28gZW1pdAoJICB0aGUgc2lnbmFsIHdpdGggdGhlIGNvcnJlY3QgcHJvYmFiaWxpdHkgb2YgdGhlIGZvdW5kIGNhcHMuCgoyMDA2LTAzLTAyIDEzOjQ1OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgTmV3IEFQSTogZ3N0X3R5cGVfZmluZF9oZWxwZXJfZ2V0X3JhbmdlKCkgKCMzMzMwNDIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGhlbHBlcl9maW5kX3BlZWspLAoJICAoaGVscGVyX2ZpbmRfc3VnZ2VzdCksIChnc3RfdHlwZV9maW5kX2hlbHBlcl9nZXRfcmFuZ2UpLAoJICAoZ3N0X3R5cGVfZmluZF9oZWxwZXIpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSAgTmV3IEFQSTogZ3N0X3R5cGVfZmluZF9oZWxwZXJfZ2V0X3JhbmdlKCkgKCMzMzMwNDIpLgoKMjAwNi0wMy0wMiAxMTowNDo1OCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IEFzc2VydGluZyBvbiBhIGZhaWx1cmUgdG8gcmVhZCBwYXJ0IG9mIHRoZSByZWdpc3RyeSBpcyBOb3QgQ29vbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChsb2FkX2ZlYXR1cmUpOgoJICBBc3NlcnRpbmcgb24gYSBmYWlsdXJlIHRvIHJlYWQgcGFydCBvZiB0aGUgcmVnaXN0cnkgaXMgTm90IENvb2wuCgkgIEp1c3QgbG9nIGEgd2FybmluZyBhbmQgcmV0dXJuIE5VTEwgKHdoaWNoIGlzIGFscmVhZHkgaGFuZGxlZCkKCjIwMDYtMDItMjggMjA6NTc6MTAgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjogYWRkZWQgZXhwb3J0IG9mIGdzdF90eXBlX2ZpbmRfaGVscGVyX2Zvcl9idWZmZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBhZGRlZCBleHBvcnQgb2YgZ3N0X3R5cGVfZmluZF9oZWxwZXJfZm9yX2J1ZmZlcgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYWRkZWQgc29tZSBleHBvcnRzIDogZ3N0X2Jpbl9pdGVyYXRlX2VsZW1lbnRzLCBnc3RfaXRlcmF0b3JfcmVzeW5jLAoJICBnc3RfZ2hvc3RfcGFkX2dldF90YXJnZXQKCjIwMDYtMDItMjggMTc6MjQ6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6IFdlIHVzZSBGaWx0ZXIgbm93LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkgIFdlIHVzZSBGaWx0ZXIgbm93LgoJICBBZGRlZCBDb25uZWN0b3IgdG8gbWFyayBlbGVtZW50cyB0aGF0IGFyZSBvbmx5IHVzZWQgdG8KCSAgYWxsb3cgcGlwZWxpbmUgY29ubmVjdGlvbnMuCgkgIE1vdmVkIERlYnVnIHRvIGV4dHJhIGZlYXR1cmUgc2luY2UgbW9zdCBvZiB0aGVtIGFyZQoJICBmdW5jdGlvbmFsbHkgc29tZXRoaW5nIGVsc2UuCgoyMDA2LTAyLTI4IDE3OjAzOjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OiBTb21lIHVwZGF0ZXMgYW5kIGNsYXJpZmljYXRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkgIFNvbWUgdXBkYXRlcyBhbmQgY2xhcmlmaWNhdGlvbnMuCgoyMDA2LTAyLTI4IDE1OjU0OjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OiBQcm9wb3NhbCBmb3Iga2xhc3MgZmllbGQgdmFsdWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkgIFByb3Bvc2FsIGZvciBrbGFzcyBmaWVsZCB2YWx1ZXMuCgkgICogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW1zLnR4dDoKCSAgU3RhcnQgb2YgYSBkb2MgZGVzY3JpYmluZyBzdHJlYW0gYW5hdG9teS4KCjIwMDYtMDItMjggMTA6NTI6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEhlbHAgdGhlIGNvbXBpbGVyIGEgYml0IHdpdGggdHlwZSByZWdpc3RyYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZ2V0X3R5cGUpLCAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgSGVscCB0aGUgY29tcGlsZXIgYSBiaXQgd2l0aCB0eXBlIHJlZ2lzdHJhdGlvbi4KCSAgVXNlIGV4aXN0aW5nIGZvcndhcmQgY29kIHBhdGggaW5zdGVhZCBvZiBkdXBsaWNhdGluZyBpdCB3aGVuCgkgIGhhbmRsaW5nIGEgbWVzc2FnZS4KCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfZ2V0X3R5cGUpLCAoZ3N0X3N0YXRpY19jYXBzX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOiAoZ3N0X2NoaWxkX3Byb3h5X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19nZXRfdHlwZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF90eXBlKSwKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzogKGdzdF9pbmRleF9mYWN0b3J5X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X21pbmlfb2JqZWN0X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHRhc2suYzogKGdzdF90YXNrX2dldF90eXBlKSwgKGdzdF90YXNrX2pvaW4pOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICBIZWxwIGNvbXBpbGVyIHdpdGggdHlwZSByZWdpc3RyYXRpb24uCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KToKCSAgU21hbGwgZG9jIHVwZGF0ZS4KCjIwMDYtMDItMjcgMjA6MDE6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBXaGVuIHdlIGdldCBhbiBFT1MgZXZlbnQgYW5kIGhhdmUgbm90IGZvdW5kIGEgdHlwZSB5ZXQgKG1vc3QgbGlrZWx5IGJlY2F1c2Ugd2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpOgoJICBXaGVuIHdlIGdldCBhbiBFT1MgZXZlbnQgYW5kIGhhdmUgbm90IGZvdW5kIGEgdHlwZSB5ZXQKCSAgKG1vc3QgbGlrZWx5IGJlY2F1c2Ugd2UgaGFkIG5vdCB5ZXQgYWNjdW11bGF0ZWQKCSAgVFlQRV9GSU5EX01JTl9TSVpFIG9mIGRhdGEgeWV0KSwgdHJ5IHRvIGRldGVybWluZSB0aGUKCSAgdHlwZSBnaXZlbiB0aGUgZGF0YSB3ZSBoYXZlIHNvIGZhci4gRml4ZXMgdHlwZWZpbmRpbmcKCSAgZm9yIHZlcnkgc2hvcnQgc3RyZWFtcyBhZ2FpbiwgbW9zdCBub3RhYmx5IHF1aWNrdGltZQoJICByZWRpcmVjdGlvbnMgYXMgdXNlZCBvbiBBcHBsZSdzIHRyYWlsZXIgc2l0ZSAoIzMzMTcwMSkuCgoyMDA2LTAyLTI3IDE5OjQ1OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiBUcnkgdHlwZWZpbmRpbmcgZmFjdG9yaWVzIHdpdGggdGhlIGhpZ2hlc3QgcmFuayBmaXJzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAodHlwZV9maW5kX2ZhY3RvcnlfcmFua19jbXApLAoJICAoZ3N0X3R5cGVfZmluZF9oZWxwZXIpOgoJICBUcnkgdHlwZWZpbmRpbmcgZmFjdG9yaWVzIHdpdGggdGhlIGhpZ2hlc3QgcmFuayBmaXJzdC4KCjIwMDYtMDItMjcgMTk6MTk6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgc2VjdGlvbiBmb3IgdHlwZWZpbmQgaGVscGVyIGFuZCBhZGQgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIG9sZCBhbmQgdGhlIG5ldyBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgQWRkIHNlY3Rpb24gZm9yIHR5cGVmaW5kIGhlbHBlciBhbmQgYWRkIGRvY3VtZW50YXRpb24KCSAgZm9yIHRoZSBvbGQgYW5kIHRoZSBuZXcgZnVuY3Rpb24uCgoyMDA2LTAyLTI3IDE4OjQzOjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci4qOiBOZXcgQVBJOiBnc3RfdHlwZV9maW5kX2hlbHBlcl9mb3JfYnVmZmVyKCkgKCMzMzI3MjMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChidWZfaGVscGVyX2ZpbmRfcGVlayksCgkgIChidWZfaGVscGVyX2ZpbmRfc3VnZ2VzdCksICh0eXBlX2ZpbmRfZmFjdG9yeV9yYW5rX2NtcCksCgkgIChnc3RfdHlwZV9maW5kX2hlbHBlcl9mb3JfYnVmZmVyKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkgIE5ldyBBUEk6IGdzdF90eXBlX2ZpbmRfaGVscGVyX2Zvcl9idWZmZXIoKSAoIzMzMjcyMykuCgoyMDA2LTAyLTI3IDE1OjQzOjEwICswMDAwICBMb8OvYyBNaW5pZXIgPGxvb2wuZ25vbWVAdmlhLmVjcC5mcj4KCgkgIFBhdGNoIGZyb20gTG/Dr2MgTWluaWVyIHRvIHByZXZlbnQgQ1ZTIGRpcmVjdG9yaWVzIGdldHRpbmcgZGlzdGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3NsaWRlcy9NYWtlZmlsZS5hbToKCSAgUGF0Y2ggZnJvbSBMb8OvYyBNaW5pZXIgdG8gcHJldmVudCBDVlMgZGlyZWN0b3JpZXMgZ2V0dGluZyBkaXN0ZWQuCgoyMDA2LTAyLTI3IDEyOjEwOjQ3ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgdXBkYXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUKCjIwMDYtMDItMjcgMTE6MDE6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBVc2UgdGhlIFJFRkNPVU5USU5HIGNhdGVnb3J5IGZvciBjYXBzIHJlZmNvdW50aW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfcmVmKSwgKGdzdF9jYXBzX3VucmVmKToKCSAgVXNlIHRoZSBSRUZDT1VOVElORyBjYXRlZ29yeSBmb3IgY2FwcyByZWZjb3VudGluZy4KCjIwMDYtMDItMjYgMTk6MjA6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBUaGlzIHNob3VsZCBiZSAwIG5vdCBHU1RfQ0xPQ0tfVElNRV9OT05FIChzZWUgIzMzMTcwMSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChzdG9wX3R5cGVmaW5kaW5nKToKCSAgVGhpcyBzaG91bGQgYmUgMCBub3QgR1NUX0NMT0NLX1RJTUVfTk9ORSAoc2VlICMzMzE3MDEpLgoKMjAwNi0wMi0yNiAxNDo0MjoyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IFVzZSBnc3RfcGFkX2NoZWNrX3B1bGxfcmFuZ2UoKSBiZWZvcmUgX2FjdGl2YXRlX3B1bGwoKSB0byBhdm9pZCB1bm5lY2Vzc2FyeSBvcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2FjdGl2YXRlKToKCSAgVXNlIGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSgpIGJlZm9yZSBfYWN0aXZhdGVfcHVsbCgpCgkgIHRvIGF2b2lkIHVubmVjZXNzYXJ5IG9wZW4vY2xvc2UgKHNlZSAjMzMxNjkwKS4KCjIwMDYtMDItMjQgMTY6NTQ6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuYzogRG9jcyBlbmhhbmNlbWVudDogbWFrZSBpdCBjcnlzdGFsIGNsZWFyIHdoYXQgdGhlIGdzdF9wYWRfYWRkXypfcHJvYmUoKSBjYWxsYmFja3Mgc2hvdWxkIGxvb2sgbGlrZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIERvY3MgZW5oYW5jZW1lbnQ6IG1ha2UgaXQgY3J5c3RhbCBjbGVhciB3aGF0IHRoZQoJICBnc3RfcGFkX2FkZF8qX3Byb2JlKCkgY2FsbGJhY2tzIHNob3VsZCBsb29rIGxpa2UuCgoyMDA2LTAyLTI0IDEwOjU3OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IERvY3VtZW50IGhvdyBhcHBsaWNhdGlvbnMgY2FuIHN0b3AgcmVjb3JkaW5nIGZyb20gbGl2ZSBzb3VyY2VzIChzZWUgIzMzMDk5NikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBEb2N1bWVudCBob3cgYXBwbGljYXRpb25zIGNhbiBzdG9wIHJlY29yZGluZyBmcm9tCgkgIGxpdmUgc291cmNlcyAoc2VlICMzMzA5OTYpLgoKMjAwNi0wMi0yMyAxODowNjozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIElnbm9yZSBtb3JlIHN0dWZmLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9wbHVnaW5zL3RtcGwvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9saWJzLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzLy5jdnNpZ25vcmU6CgkgIElnbm9yZSBtb3JlIHN0dWZmLgoKMjAwNi0wMi0yMyAxNzozOToyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrLzogLi4uIGFuZCBhZGQgc29tZSB0ZXN0cyBmb3IgdGhlIGJhc2Ugc291cmNlIEVPUyBzdHVmZi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6IChlb3NfZXZlbnRfY291bnRlciksCgkgIChiYXNlc3JjX2Vvc19ldmVudHNfcHVsbCksIChiYXNlc3JjX2Vvc19ldmVudHNfcHVzaCksCgkgIChiYXNlc3JjX2Vvc19ldmVudHNfcHVzaF9saXZlX29wKSwgKGJhc2VzcmNfZW9zX2V2ZW50c19wdWxsX2xpdmVfb3ApLAoJICAoZ3N0X2Jhc2VzcmNfc3VpdGUpLCAobWFpbik6CgkgIC4uLiBhbmQgYWRkIHNvbWUgdGVzdHMgZm9yIHRoZSBiYXNlIHNvdXJjZSBFT1Mgc3R1ZmYuCgoyMDA2LTAyLTIzIDE2OjU2OjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IFRlc3QgY2FzZSBvcmlnaW5hbGx5IHNob3dlZCB0aGUgcHJvYmxlbSBmaXhlZCBiZWxvdywgYnV0IHdhcyB0aGVuIGFtZW5kZWQuIEFkZCBjaGVja3MgYmFjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiAodGVzdF9idWZmZXJfcHJvYmVfbl90aW1lcyk6CgkgIFRlc3QgY2FzZSBvcmlnaW5hbGx5IHNob3dlZCB0aGUgcHJvYmxlbSBmaXhlZCBiZWxvdywKCSAgYnV0IHdhcyB0aGVuIGFtZW5kZWQuIEFkZCBjaGVja3MgYmFjayBhdCB0aGUgcGxhY2UKCSAgd2hlcmUgdGhleSB1c2VkIHRvIGJlLgoKMjAwNi0wMi0yMyAxNjoyNDozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy4qOiBEb24ndCB1bmNvbmRpdGlvbmFsbHkgc2VuZCBFT1Mgd2hlbiBnb2luZyBmcm9tIFBBVVNFRCB0bwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19pbml0KSwgKGdzdF9iYXNlX3NyY19sb29wKSwKCSAgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBEb24ndCB1bmNvbmRpdGlvbmFsbHkgc2VuZCBFT1Mgd2hlbiBnb2luZyBmcm9tIFBBVVNFRCB0bwoJICBSRUFEWSBzdGF0ZSwgZXNwLiBtYWtlIHN1cmUgd2UgZG9uJ3Qgc2VuZCB0d28gRU9TIGV2ZW50cwoJICBpbiBzb21lIGNhc2VzIChlLmcuIG9uZSB3aGVuIHJlYWNoaW5nIEVPUyBhbmQgb25lIHdoZW4KCSAgZ29pbmcgZnJvbSBQQVVTRUQgdG8gUkVBRFkpLiBBbHNvLCB3ZSBkb24ndCB3YW50IHRvIHNlbmQKCSAgRU9TIGV2ZW50cyB3aGVuIG9wZXJhdGluZyBpbiBwdWxsIG1vZGUuIEhvd2V2ZXIsIHdlIGRvCgkgIHdhbnQgdG8gc2VuZCBhbiBFT1MgZXZlbnQgd2hlbiBzaHV0dGluZyBkb3duIGEgbGl2ZQoJICBzb3VyY2UgZXhwbGljaXRseSwgZm9yIGV4YW1wbGUgKGZpeGVzICMzMzA5OTYpLgoKMjAwNi0wMi0yMyAxMDoyNDoxMyArMDAwMCAgUmVuY2hpIFJhanUgPHJlbmNoaUBnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogVXBkYXRlIHNyYy0+cmVhZF9wb3NpdGlvbiBhZnRlciBhIHNlZWsgd2hlbiBub3QgdXNpbmcgbW1hcC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY3JlYXRlX3JlYWQpOgoJICBVcGRhdGUgc3JjLT5yZWFkX3Bvc2l0aW9uIGFmdGVyIGEgc2VlayB3aGVuIG5vdCB1c2luZyBtbWFwLgoJICBGaXhlcyAjMzMyMjc3LCBwYXRjaCBieTogUmVuY2hpIFJhanUgPHJlbmNoaSBnbWFpbCBjb20+CgoyMDA2LTAyLTIwIDIzOjM0OjQwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC86IE1ha2UgdGhpbmdzIHdvcmsgd2l0aCAtLWRpc2FibGUtcGFyc2UgYXMgdGhleSBkbyB3aXRoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0cGFyc2UuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgTWFrZSB0aGluZ3Mgd29yayB3aXRoIC0tZGlzYWJsZS1wYXJzZSBhcyB0aGV5IGRvIHdpdGgKCSAgLS1kaXNhYmxlLWxvYWQtc2F2ZSAtIHRoZSBzeW1ib2xzIGludm9sdmVkIGRpc2FwcGVhciwgYnV0IHRoZQoJICBoZWFkZXIgaXMgc3RpbGwgaW5zdGFsbGVkIGFuZCBHU1RfRElTQUJMRV9QQVJTRSBpcyBpbmNsdWRlZCB2aWEKCSAgZ3N0Y29uZmlnLmgKCjIwMDYtMDItMjAgMTY6MDc6NDIgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEZpeCBhIHN0dXBpZCBidWcuIEkgd2FzIHN1cmUgaSBjb21waWxlZCB0aGF0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpOiBGaXggYSBzdHVwaWQgYnVnLiBJIHdhcwoJICBzdXJlIGkgY29tcGlsZWQgdGhhdC4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoyMDA2LTAyLTIwIDE1OjA3OjMzICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC86IE1ha2UgdGhvc2UgZnVuY3Rpb24gYWN0IG9uIHRoZSBnaG9zdHBhZCB0YXJnZXQgd2hlbiBpdCdzIGEgZ2hvc3RwYWQuIChDbG9zZXMgIzMzMTcyNykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYmxvY2tlZF9hc3luYyk6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfcGFkX2FkZF9kYXRhX3Byb2JlKSwKCSAgKGdzdF9wYWRfYWRkX2V2ZW50X3Byb2JlKSwgKGdzdF9wYWRfYWRkX2J1ZmZlcl9wcm9iZSksCgkgIChnc3RfcGFkX3JlbW92ZV9kYXRhX3Byb2JlKSwgKGdzdF9wYWRfcmVtb3ZlX2V2ZW50X3Byb2JlKSwKCSAgKGdzdF9wYWRfcmVtb3ZlX2J1ZmZlcl9wcm9iZSk6IE1ha2UgdGhvc2UgZnVuY3Rpb24gYWN0IG9uIHRoZQoJICBnaG9zdHBhZCB0YXJnZXQgd2hlbiBpdCdzIGEgZ2hvc3RwYWQuIChDbG9zZXMgIzMzMTcyNykKCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoyMDA2LTAyLTIwIDE1OjAxOjE0ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBNYWtlIGJhc2V0cmFuc2Zvcm0gcmV1c2FibGUuIChDbG9zZXMgIzMzMTg5OCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKTogTWFrZSBiYXNldHJhbnNmb3JtIHJldXNhYmxlLgoJICAoQ2xvc2VzICMzMzE4OTgpCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKMjAwNi0wMi0yMCAxMjoyNjo1MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL3JhbmRvbS9yZWxlYXNlOiBNb3ZlIHRoZSBjdXJyZW50IGRvY3VtZW50YXRpb24gb2YgaG93IHRvIGRvIGEgcmVsZWFzZSB0byB0aGUgdG9wIG9mIHRoZSBmaWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBNb3ZlIHRoZSBjdXJyZW50IGRvY3VtZW50YXRpb24gb2YgaG93IHRvIGRvIGEgcmVsZWFzZSB0byB0aGUgdG9wCgkgIG9mIHRoZSBmaWxlLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksCgkgIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBBbGxvdyBtdWx0aXBsZSBzdGF0ZS1yZWNhbGN1bGF0aW9uIHRocmVhZHMuIChDbG9zZXMgIzMyODg3MykKCjIwMDYtMDItMTkgMTI6MjU6MDEgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdGluZm8uaDogQWRkIEdTVF9TVFJfTlVMTCB0byB0aGUgc2Vjb25kIHN0cmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDItMTkgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvZ3N0aW5mby5oOiBBZGQgR1NUX1NUUl9OVUxMIHRvIHRoZSBzZWNvbmQgc3RyaW5nLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2V2ZW50X2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X3F1ZXJ5X2Z1bmN0aW9uKSwgKGdzdF9wYWRfc2V0X3F1ZXJ5X3R5cGVfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfZ2V0Y2Fwc19mdW5jdGlvbik6IEdTVF9ERUJVR19QQURfTkFNRSBldmFsdWF0ZXMgdG8KCSAgMiBzdHJpbmdzLiBZb3UgY2FuJ3QgdXNlIHRoZSBTVFJfTlVMTCBtYWNybyBvbiB0aGF0LgoKMjAwNi0wMi0xOSAxMjowMDozOCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfZ2V0Y2Fwc19mdW5jdGlvbikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfZXZlbnRfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfcXVlcnlfZnVuY3Rpb24pLCAoZ3N0X3BhZF9zZXRfcXVlcnlfdHlwZV9mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9nZXRjYXBzX2Z1bmN0aW9uKQoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6IChnc3RfcGFyc2VfZm91bmRfcGFkKSwgKGdzdF9wYXJzZV9wZXJmb3JtX2RlbGF5ZWRfbGluaykKCSAgRml4ZWQgTlVMTCBwb2ludGVyIHVzZWQgaW4gR1NUX0NBVF9ERUJVRyB1c2luZyBHU1RfU1RSX05VTEwgbWFjcm8KCSAgU28gbm93LCB3ZSBjYW4gdXNlIC0tZ3N0LWRlYnVnLWxldmVsPTUgb24gV2luZG93cwoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgQWRkZWQgZXhwb3J0IG9mIGdzdF9jb250cm9sbGVyX2luaXQKCSAgKiB3aW4zMi92czYvbGliZ3N0Y29udHJvbGxlci5kc3A6CgkgIEZpeGVkIFJlbGVhc2UgcG9zdCBidWlsZCBjb25maWd1cmF0aW9uCgoyMDA2LTAyLTE3IDE1OjI1OjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6IEFkZGVkIGFub3RoZXIgY2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGRlZCBhbm90aGVyIGNoZWNrLgoKMjAwNi0wMi0xNSAxMjoxNzo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IFdlIGNhbiBkbyBwZWVrcyBhdCBub24temVybyBvZmZzZXRzLCBhcyBsb25nIGFzIHRoZXkgZmFsbCB3aXRoaW4gdGhlIGJ1ZmZlciB3ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAoZmluZF9wZWVrKToKCSAgV2UgY2FuIGRvIHBlZWtzIGF0IG5vbi16ZXJvIG9mZnNldHMsIGFzIGxvbmcgYXMgdGhleQoJICBmYWxsIHdpdGhpbiB0aGUgYnVmZmVyIHdlIGhhdmUuCgoyMDA2LTAyLTE1IDAxOjAyOjExICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrLzogQWRkIHRlc3RzdWl0ZSBmb3IgcGFyc2UgbGF1bmNoIHN5bnRheAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChzZXR1cF9waXBlbGluZSksCgkgIChleHBlY3RlZF9mYWlsX3BpcGUpLCAoY2hlY2tfcGlwZWxpbmVfcnVucyksIChHU1RfU1RBUlRfVEVTVCksCgkgIChwYXJzZV9zdWl0ZSksIChtYWluKToKCSAgQWRkIHRlc3RzdWl0ZSBmb3IgcGFyc2UgbGF1bmNoIHN5bnRheAoKMjAwNi0wMi0xNCAyMDo1NzozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IFdoZW4gdHlwZWZpbmRpbmcgaXMgdW5zdWNjZXNzZnVsIGluIHRoZSBjaGFpbiBmdW5jdGlvbiwgZG9uJ3QgZXJyb3Igb3V0IGltbWVkaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKToKCSAgV2hlbiB0eXBlZmluZGluZyBpcyB1bnN1Y2Nlc3NmdWwgaW4gdGhlIGNoYWluIGZ1bmN0aW9uLCBkb24ndAoJICBlcnJvciBvdXQgaW1tZWRpYXRlbHkuIE9ubHkgZXJyb3Igb3V0IHdpdGggTk9fQ0FQU19GT1VORCBpZgoJICB0aGUgYW1vdW50IG9mIGRhdGEgaXMgYXQgbGVhc3QgTUFYX1RZUEVGSU5EX1NJWkUgYnl0ZXMsCgkgIG90aGVyd2lzZSBzaW1wbHkgd2FpdCBmb3IgbW9yZSBkYXRhIHNvIHdlIGNhbiB0cnkgdHlwZWZpbmRpbmcKCSAgYWdhaW4gd2l0aCBtb3JlIGRhdGEgbGF0ZXIuIEFsc28sIGRvbid0IGF0dGVtcHQgdG8gdHlwZWZpbmQKCSAgaWYgd2UgaGF2ZSBsZXNzIHRoYW4gTUlOX1RZUEVGSU5EX1NJWkUgZGF0YSBhdmFpbGFibGUuIE92ZXJhbGwsCgkgIHRoaXMgc2hvdWxkIGltcHJvdmUgdHlwZWZpbmRpbmcgZnJvbSBuZXR3b3JrIHNvdXJjZXMgd2hlcmUgdGhlCgkgIHNpemUgb2YgdGhlIGZpcnN0IGJ1ZmZlciBjYW4gYmUgc29tZXdoYXQgcmFuZG9tLgoKMjAwNi0wMi0xNCAxODoyNjoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEZpeCBwYWR0ZW1wbGF0ZSBkb2NzLCBmaXhlcyAjMzI4ODA1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJICBGaXggcGFkdGVtcGxhdGUgZG9jcywgZml4ZXMgIzMyODgwNS4KCjIwMDYtMDItMTQgMTc6MjU6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IE5PX1BSRVJPTEwgaXMgbm90IGFuIEVSUk9SIHNvIGRvbid0IHNlbmQgY29uZnVzaW5nIG1lc3NhZ2VzIHRvIHRoZSB1c2VyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgTk9fUFJFUk9MTCBpcyBub3QgYW4gRVJST1Igc28gZG9uJ3Qgc2VuZCBjb25mdXNpbmcgbWVzc2FnZXMKCSAgdG8gdGhlIHVzZXIuCgoyMDA2LTAyLTE0IDE2OjE1OjA1ICswMDAwICBUb3JzdGVuIFNjaG9lbmZlbGQgPGthZmZlZXRpc2NoQGdteC5kZT4KCgkgIGdzdC9nc3RyZWdpc3RyeS5jOiBQcm90ZWN0IGRlZmF1bHQgcmVnaXN0cnkgd2l0aCBsb2NrIGFuZCByZWYvc2luayBpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfZ2V0X2RlZmF1bHQpLAoJICAoX2dzdF9yZWdpc3RyeV9jbGVhbnVwKToKCSAgUHJvdGVjdCBkZWZhdWx0IHJlZ2lzdHJ5IHdpdGggbG9jayBhbmQgcmVmL3NpbmsgaXQuCgkgIEZpeGVzICMzMjQ4MTgsIHBhdGNoIGJ5IFRvcnN0ZW4gU2Nob2VuZmVsZC4KCjIwMDYtMDItMTQgMTM6MDc6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBEb2NzIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbGlzdF9hZGRfZm9ybWF0KSwKCSAgKGdzdF9xdWVyeV9zZXRfZm9ybWF0c3YpLCAoZ3N0X3F1ZXJ5X3BhcnNlX2Zvcm1hdHNfbGVuZ3RoKSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9mb3JtYXRzX250aCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyk6CgkgIERvY3MgZml4ZXMuCgoyMDA2LTAyLTE0IDEyOjA3OjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogUmV3b3JrZWQgcXVlcnkgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgUmV3b3JrZWQgcXVlcnkgZG9jcy4KCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9uZXdfZm9ybWF0cyksCgkgIChnc3RfcXVlcnlfbGlzdF9hZGRfZm9ybWF0KSwgKGdzdF9xdWVyeV9zZXRfZm9ybWF0cyksCgkgIChnc3RfcXVlcnlfc2V0X2Zvcm1hdHN2KSwgKGdzdF9xdWVyeV9wYXJzZV9mb3JtYXRzX2xlbmd0aCksCgkgIChnc3RfcXVlcnlfcGFyc2VfZm9ybWF0c19udGgpOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBGbGVzaCBvdXQgZm9ybWF0cyBxdWVyeSwgYWRkZWQgc29tZSBuZXcgbWV0aG9kcy4KCSAgRml4IHBhcnQgb2YgIzMyNDM5OC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdHF1ZXJ5X3N1aXRlKToKCSAgQWRkZWQgcXVlcnkgY3JlYXRpb24gdGVzdHMuCgoyMDA2LTAyLTE0IDExOjM4OjUwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogQWRkIGEgZGVmYXVsdCBmaXhhdGlvbiBmb3IgZnJhY3Rpb24gbGlzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGZpeGF0ZV92YWx1ZSk6CgkgIEFkZCBhIGRlZmF1bHQgZml4YXRpb24gZm9yIGZyYWN0aW9uIGxpc3RzLgoKMjAwNi0wMi0xMyAxNzowMzoyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R0YXNrLio6IERldGVjdCBhbmQgd2FybiBmb3Igb2J2aW91cyBkZWFkbG9ja3MuIGZpeGVzICMzMjAzNDAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhc2suYzogKGdzdF90YXNrX2luaXQpLCAoZ3N0X3Rhc2tfZnVuYyksCgkgIChnc3RfdGFza19zZXRfbG9jayksIChnc3RfdGFza19zdGFydCksIChnc3RfdGFza19wYXVzZSksCgkgIChnc3RfdGFza19qb2luKToKCSAgKiBnc3QvZ3N0dGFzay5oOgoJICBEZXRlY3QgYW5kIHdhcm4gZm9yIG9idmlvdXMgZGVhZGxvY2tzLiBmaXhlcyAjMzIwMzQwCgkgIEZpeCBlcnJvciBjYXNlIHdoZXJlIGxvY2sgd2FzIG5vdCByZWxlYXNlZC4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFzay5jOiAodGFza19mdW5jMiksIChHU1RfU1RBUlRfVEVTVCksCgkgICh0YXNrX2Z1bmMpLCAoZ3N0X2VsZW1lbnRfc3VpdGUpLCAobWFpbik6CgkgIEFkZCB0YXNrIGNoZWNrLgoKMjAwNi0wMi0xMyAxNDowMDozMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgRm9yZ290IGNoYW5nZWxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRm9yZ290IGNoYW5nZWxvZwoKMjAwNi0wMi0xMyAxMzo1NzoyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBuZXcgZnVuY3Rpb25zIHRvIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICBBZGQgbmV3IGZ1bmN0aW9ucyB0byBkb2NzLgoKMjAwNi0wMi0xMyAxMTo1Mjo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IFVwZGF0ZWQgVE9ETyBsaXN0LCBiYXNlc3JjIHN1cHBvcnRzIHNlZWtpbmcgdG8gbm9uLWJ5dGVzIGZvcm1hdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFVwZGF0ZWQgVE9ETyBsaXN0LCBiYXNlc3JjIHN1cHBvcnRzIHNlZWtpbmcgdG8gbm9uLWJ5dGVzCgkgIGZvcm1hdHMuCgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJICBVcGRhdGUgZG9jcy4KCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fcmVwbGFjZV9tZXNzYWdlKSwKCSAgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19wb3N0KSwgKGdzdF9idXNfcG9wKToKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9maW5hbGl6ZSk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9ldmVudF9kZWZhdWx0X2Rpc3BhdGNoKSwKCSAgKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgIFVzZSBzaGlueSBuZXcgX1RZUEVfTkFNRSBtYWNyb3MuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKToKCSAgTW92ZSBkZWJ1ZyBzdGF0ZW1lbnQgdXAuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9sb2NrZWRfc3RhdGUpOgoJICBBZGQgc29tZSBkZWJ1Z2dpbmcuCgoyMDA2LTAyLTEzIDExOjE5OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgTmV3IEFQSTogYWRkIEdTVF9NRVNTQUdFX1RZUEVfTkFNRSBhbmQgR1NUX1FVRVJZX1RZUEVfTkFNRSBtYWNyb3MgKCMzMzA5MDYpLiBBbHNvLCBkb2N1bWVudCB0aGUgYWxyZWFkeSBleGlzdGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIE5ldyBBUEk6IGFkZCBHU1RfTUVTU0FHRV9UWVBFX05BTUUgYW5kIEdTVF9RVUVSWV9UWVBFX05BTUUKCSAgbWFjcm9zICgjMzMwOTA2KS4gQWxzbywgZG9jdW1lbnQgdGhlIGFscmVhZHkgZXhpc3RpbmcKCSAgR1NUX1FVRVJZX1RZUEUgbWFjcm8uCgoyMDA2LTAyLTEzIDEwOjU0OjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IE9ubHkgZXZlbnRzIHVwIHRvIHRoZSBwaXBlbGluZSBFT1MgYXJlIGNvdW50ZWQsIHRoZXJlIGFyZSBzb21lIG1vcmUgd2hlbiBnb2luZyB0byBOVUxMIGN1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiAoZGF0YV9wcm9iZSksIChidWZmZXJfcHJvYmUpLAoJICAoZXZlbnRfcHJvYmUpLCAoR1NUX1NUQVJUX1RFU1QpOgoJICBPbmx5IGV2ZW50cyB1cCB0byB0aGUgcGlwZWxpbmUgRU9TIGFyZSBjb3VudGVkLCB0aGVyZSBhcmUKCSAgc29tZSBtb3JlIHdoZW4gZ29pbmcgdG8gTlVMTCBjdXJyZW50bHkgd2hpY2ggd2UgZG9uJ3QgY2FyZQoJICBhYm91dCBmb3Igbm93LgoKMjAwNi0wMi0xMyAwOTo1OTowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogQ29ycmVjdGx5IGNoZWNrIGZsdXNoaW5nIGFuZCBlbWl0IHByb2Jlcy4gZml4ZXMgIzMzMDEyNQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBDb3JyZWN0bHkgY2hlY2sgZmx1c2hpbmcgYW5kIGVtaXQgcHJvYmVzLiBmaXhlcyAjMzMwMTI1CgoyMDA2LTAyLTEyIDEzOjExOjUzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcmV2ZXJ0IHdyb25nIGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2ZXJ0IHdyb25nIGNvbW1pdAoKMjAwNi0wMi0xMCAxNjowNDo1OSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGJ1cy5jIChnc3RfYnVzX2NsYXNzX2luaXQpOiBEZWNsYXJlIG91ciBwcml2YXRlIGRhdGEgc3RydWN0dXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMi0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0YnVzLmMgKGdzdF9idXNfY2xhc3NfaW5pdCk6IERlY2xhcmUgb3VyIHByaXZhdGUgZGF0YQoJICBzdHJ1Y3R1cmUuCgkgIChnc3RfYnVzX2luaXQpOiBDYWNoZSB0aGUgbG9jYXRpb24gb2YgdGhlIHByaXZhdGUgZGF0YSBpbiB0aGUKCSAgaW5zdGFuY2Ugc3RydWN0dXJlLgoJICAoZ3N0X2J1c19lbmFibGVfc3luY19tZXNzYWdlX2VtaXNzaW9uKQoJICAoZ3N0X2J1c19kaXNhYmxlX3N5bmNfbWVzc2FnZV9lbWlzc2lvbik6IEltcGxlbWVudCBuZXcgcHVibGljCgkgIGZ1bmN0aW9ucy4KCSAgKGdzdF9idXNfcG9zdCk6IEVtaXQgdGhlIHN5bmMtbWVzc2FnZSBzaWduYWwgaWYgdGhlIHVzZXIgYXNrZWQgZm9yCgkgIGl0LiBGaXhlcyAjMzMwNjg0LgoJICAqIGdzdC9nc3RidXMuaCAoR3N0QnVzKTogVXNlIGEgcGFkZGluZyBwb2ludGVyIHRvIGNhY2hlIHRoZQoJICBsb2NhdGlvbiBvZiB0aGUgYnVzLXByaXZhdGUgc3RydWN0dXVyZS4KCSAgKGdzdF9idXNfZW5hYmxlX3N5bmNfbWVzc2FnZV9lbWlzc2lvbikKCSAgKGdzdF9idXNfZGlzYWJsZV9zeW5jX21lc3NhZ2VfZW1pc3Npb24pOiBOZXcgcHVibGljIGZ1bmN0aW9ucy4KCjIwMDYtMDItMDkgMjM6NDA6NDMgKzAwMDAgIFZpbmNlbnQgVG9ycmkgPHZ0b3JyaUB1bml2LWV2cnkuZnI+CgoJICBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICBQV0cgcGF0Y2ggZnJvbSAjMzI2ODAwIChQYXRjaCBieSBWaW5jZW50IFRvcnJpKQoKMjAwNi0wMi0wOSAxODozMDo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgIENoYW5nZUxvZyBzdXJnZXJ5IGFuZCBhZGQgbWlzc2luZyBuZXcgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnkgYW5kIGFkZCBtaXNzaW5nIG5ldyBmaWxlCgoyMDA2LTAyLTA5IDE4OjI4OjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW0KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvTWFrZWZpbGUuYW06CgkgICogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW0KCSAgRGlzdCBkZXNpZ24gZG9jcy4KCjIwMDYtMDItMDggMTc6MzQ6NDMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBiYWNrIHRvIENWUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gQ1ZTCgo9PT0gcmVsZWFzZSAwLjEwLjMgPT09CgoyMDA2LTAyLTA4IDE3OjMxOjM0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogcmVsZWFzaW5nIDAuMTAuMywgIkxpa2UgYSB2aXJnaW4iCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICA9PT0gcmVsZWFzZSAwLjEwLjMgPT09CgkgIDIwMDYtMDItMDggIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgcmVsZWFzaW5nIDAuMTAuMywgIkxpa2UgYSB2aXJnaW4iCgoyMDA2LTAyLTA4IDExOjEyOjA3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogMm5kIHByZXJlbGVhc2Ugb2YgMC4xMC4zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAyLTA4ICBKYW4gU2NobWlkdCAgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgkgICogY29uZmlndXJlLmFjOgoJICAybmQgcHJlcmVsZWFzZSBvZiAwLjEwLjMKCSAgQnVtcCBsaWJ0b29sIHZlcnNpb25pbmcuCgoyMDA2LTAyLTA3IDE1OjQ5OjQwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmMgKGdzdF9jb2xsZWN0X3BhZHNfY2hhaW4pOiBPbmx5IHVwZGF0ZSBsYXN0X3N0b3AgaWYgd2UncmUgaW4gVElNRSBmb3JtYXQgYW5kIHRoZSB0aW1lc3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDItMDcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jIChnc3RfY29sbGVjdF9wYWRzX2NoYWluKTogT25seQoJICB1cGRhdGUgbGFzdF9zdG9wIGlmIHdlJ3JlIGluIFRJTUUgZm9ybWF0IGFuZCB0aGUgdGltZXN0YW1wIGlzCgkgIHZhbGlkLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYyAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCkKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50ZnVuYyk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX2NvbmZpZ3VyZV9zZWdtZW50KToKCSAgSWYgd2UgZ2V0IGEgbmV3IG5ld3NlZ21lbnQgd2l0aCBhIGRpZmZlcmVudCBmb3JtYXQsIGFkYXB0CgkgIGFjY29yZGluZ2x5LgoJICAqIGdzdC9nc3RjbG9jay5jIChnc3RfY2xvY2tfc2V0X2NhbGlicmF0aW9uKTogQWNjZXB0IGEgbnVtZXJhdG9yCgkgIG9mIDAuIE5vdCBhIHByb2JsZW0sIHJlYWxseS4KCjIwMDYtMDItMDcgMTM6MjA6MTYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19jaGFpbl91bmxvY2tlZCk6IE9ubHkgd2FybiBpZiBzeW5jPXRydWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAyLTA3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19jaGFpbl91bmxvY2tlZCk6IE9ubHkKCSAgd2FybiBpZiBzeW5jPXRydWUuCgoyMDA2LTAyLTA3IDEwOjUxOjI0ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgdXBkYXRlIHNwZWMgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHNwZWMgZmlsZQoKMjAwNi0wMi0wNiAyMjowMToyMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IFByZWxlYXNlIG9mIDAuMTAuMwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFByZWxlYXNlIG9mIDAuMTAuMwoKMjAwNi0wMi0wNiAyMTo1MzowNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDYtMDItMDYgMjE6Mjk6MDQgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL3ZzNzogcHJvamVjdCBmaWxlcyB1cGRhdGVkIHRvIHRoZSBkZWZhdWx0IHZzNyBjb25maWd1cmF0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL3ZzNzoKCSAgcHJvamVjdCBmaWxlcyB1cGRhdGVkIHRvIHRoZSBkZWZhdWx0IHZzNyBjb25maWd1cmF0aW9uCgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBhZGRlZCBuZXcgc3ltYm9scywKCSAgcmVtb3ZlZCBlbXB0eSBsaW5lcywKCSAgc29ydGVkIGFsbCBleHBvcnRlZCBzeW1ib2xzIGFscGhhYmV0aWNhbGx5CgkgICogd2luMzIvY29tbW9uL2RpcmVudC5jOgoJICAqIHdpbjMyL2NvbW1vbi9kaXJlbnQuaDoKCSAgKiB3aW4zMi9jb21tb24vZ2NoYXIuaDoKCSAgdXNlIHdpbmRvd3MgbGluZSBlbmQuCgoyMDA2LTAyLTA2IDE1OjI1OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGRvYyBzdWI4MCBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jIHN1YjgwIGZpeGVzCgoyMDA2LTAyLTA2IDE0OjU3OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFNlbmQgRU9TIGV2ZW50IHdoZW4gc3RvcHBpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIFNlbmQgRU9TIGV2ZW50IHdoZW4gc3RvcHBpbmcuCgoyMDA2LTAyLTA2IDEwOjQyOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9SRUFETUU6IFRlbGwgZm9sa3Mgd2hhdCB0byBkbyBpZiB0aGUgcGx1Z2luLWZvb2Jhci54bWwgZmlsZSBoYXNuJ3QgYmVlbiBnZW5lcmF0ZWQgZm9yIGEgbmV3bHktYWRkZWQgcGx1Z2luLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL1JFQURNRToKCSAgVGVsbCBmb2xrcyB3aGF0IHRvIGRvIGlmIHRoZSBwbHVnaW4tZm9vYmFyLnhtbCBmaWxlCgkgIGhhc24ndCBiZWVuIGdlbmVyYXRlZCBmb3IgYSBuZXdseS1hZGRlZCBwbHVnaW4uCgoyMDA2LTAyLTA1IDE4OjEzOjI4ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogQ29sbGVjdHBhZHMgbm93IGhvbGRzIGEgcmVmZXJlbmNlIHRvIHRoZSBHc3RQYWQgdGhhdCB3YXMgYWRkZWQuIEluZGVlZCB3ZSBkb24ndCB3YW50IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMi0wNSAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfZmluYWxpemUpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkKSwgKGdzdF9jb2xsZWN0X3BhZHNfcmVtb3ZlX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3N0YXJ0KSwgKGdzdF9jb2xsZWN0X3BhZHNfc3RvcCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KTogQ29sbGVjdHBhZHMgbm93IGhvbGRzIGEgcmVmZXJlbmNlCgkgIHRvIHRoZSBHc3RQYWQgdGhhdCB3YXMgYWRkZWQuIEluZGVlZCB3ZSBkb24ndCB3YW50IHRvIGxvb2sKCSAgYXQgcGFkcyB0aGF0IG1pZ2h0IGp1c3QgZ28gYXdheSB3aXRoIG5vIHdhcm5pbmcuLi4KCjIwMDYtMDItMDUgMTY6MTg6MzcgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy4qOiBIYW5kbGUgZmx1c2guIEFkYXB0ZWQgZnJvbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMi0wNSAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3N0YXJ0KSwgKGdzdF9jb2xsZWN0X3BhZHNfc3RvcCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KSwgKGdzdF9jb2xsZWN0X3BhZHNfY2hhaW4pOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDogSGFuZGxlIGZsdXNoLiBBZGFwdGVkIGZyb20KCSAgTWFyayBOYXV3ZWxhZXJ0cydzIHBhdGNoIG9uIGJ1ZyAjMzI4NDkxLgoKMjAwNi0wMi0wNCAxMjo0OTo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiBBZGQgc29tZSBzaW1wbGUgdGVzdHMgZm9yIGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbigpIGFuZCBnc3RfYmluX2ZpbmRfdW5jb25uZWN0ZWRfcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogKHRlc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24pLAoJICAoZ3N0X3V0aWxzX3N1aXRlKToKCSAgQWRkIHNvbWUgc2ltcGxlIHRlc3RzIGZvciBnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24oKSBhbmQKCSAgZ3N0X2Jpbl9maW5kX3VuY29ubmVjdGVkX3BhZCgpICgjMzI5MDY5KS4KCjIwMDYtMDItMDQgMTE6NTY6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IENhdGNoIGVycm9ycyBkdXJpbmcgcHJlcm9sbCAoIzMyMDA4NCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApLCAobWFpbik6CgkgIENhdGNoIGVycm9ycyBkdXJpbmcgcHJlcm9sbCAoIzMyMDA4NCkuCgoyMDA2LTAyLTAzIDIxOjE0OjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogUG9zdCBUWVBFX05PVF9GT1VORCBlcnJvciBtZXNzYWdlIHdoZW4gdHlwZWZpbmRpbmcgaXMgdW5zdWNjZXNzZnVsIGluIHRoZSBhY3RpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYWN0aXZhdGUpOgoJICBQb3N0IFRZUEVfTk9UX0ZPVU5EIGVycm9yIG1lc3NhZ2Ugd2hlbiB0eXBlZmluZGluZwoJICBpcyB1bnN1Y2Nlc3NmdWwgaW4gdGhlIGFjdGl2YXRlIGZ1bmN0aW9uIGFzIHdlbGwuCgoyMDA2LTAyLTAyIDE2OjE1OjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OiBVcGRhdGVkIGRvYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJICBVcGRhdGVkIGRvYy4KCjIwMDYtMDItMDIgMTY6MTI6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IE9ubHkga2VlcCB0cmFjayBvZiBwcmVyb2xsYWJsZSBpdGVtcyB3aGVuIHdlIGFyZSBwcmVyb2xsaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19yZW5kZXJfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVldWVfb2JqZWN0X3VubG9ja2VkKToKCSAgT25seSBrZWVwIHRyYWNrIG9mIHByZXJvbGxhYmxlIGl0ZW1zIHdoZW4gd2UgYXJlCgkgIHByZXJvbGxpbmcuCgkgIEJlZm9yZSByZW5kZXJpbmcgYWZ0ZXIgcHJlcm9sbCwgYWx3YXlzIGNoZWNrIGlmIHdlCgkgIGhhdmUgcXVldWVkIGl0ZW1zLgoJICBBZGRlZCBzb21lIG1vcmUgZGVidWdnaW5nLgoKMjAwNi0wMi0wMiAxMzo1ODoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IEZpeGVkICMzMjY1NzYsIGJlZW4gcnVubmluZyB0aGlzIGZvciBxdWl0ZSBzb21lIHRpbWUgd2l0aCBubyByZWdyZXNzaW9ucyBhdCBhbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jb250aW51ZV9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGVfZnVuYyksIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBGaXhlZCAjMzI2NTc2LCBiZWVuIHJ1bm5pbmcgdGhpcyBmb3IgcXVpdGUgc29tZSB0aW1lIHdpdGgKCSAgbm8gcmVncmVzc2lvbnMgYXQgYWxsLgoKMjAwNi0wMi0wMiAxMzo0NDowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNvbW1vbi9nc3Quc3VwcDogQWRkZWQgbW9yZSBzdXBwcmVzc2lvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29tbW9uL2dzdC5zdXBwOgoJICBBZGRlZCBtb3JlIHN1cHByZXNzaW9ucwoKMjAwNi0wMi0wMiAxMjowNzo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDogVXBkYXRlZCBkb2N1bWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJICBVcGRhdGVkIGRvY3VtZW50LgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX2ZpbmFsaXplKSwgKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCksCgkgIChnc3RfYmFzZV9zaW5rX2NvbmZpZ3VyZV9zZWdtZW50KSwgKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpLCAoZ3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX3JlbmRlcl9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXVlX29iamVjdF91bmxvY2tlZCksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXVlX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhaW5fdW5sb2NrZWQpLCAoZ3N0X2Jhc2Vfc2lua19jaGFpbiksCgkgIChnc3RfYmFzZV9zaW5rX2xvb3ApLCAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIFRvdGFsbHkgcmVmYWN0b3JlZCBtYXRjaGluZyB0aGUgZGVzaWduIGRvYy4KCSAgVXNlIHR3byBzZWdtZW50cywgb25lIHRvIGNsaXAgaW5jb21taW5nIGJ1ZmZlcnMgYW5kIGFub3RoZXIgdG8KCSAgcGVyZm9ybSBzeW5jLgoJICBIYW5kbGUgcXVldWVpbmcgY29ycmVjdGx5LCBieXBhc3MgdGhlIHF1ZXVlIHdoZW4gcGxheWluZy4KCSAgTWFrZSBFT1MgY2FuY2VsYWJsZS4KCSAgSGFuZGxlIGVycm9ycyBjb3JyZWN0bHkgd2hlbiBvcGVyYXRpbmcgaW4gcHVsbCBiYXNlZCBtb2RlLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChmYWtlc2lua19zdWl0ZSk6CgkgIEFkZGVkIG5ldyBjaGVjayBmb3Igc2lua3MuCgoyMDA2LTAyLTAyIDExOjU5OjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogTm8gcmVhc29uIHRvIHJlZnVzZSB0byBjbGlwIHdoZW4gc3RhcnQgPT0gLTEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X2NsaXApOgoJICBObyByZWFzb24gdG8gcmVmdXNlIHRvIGNsaXAgd2hlbiBzdGFydCA9PSAtMQoKMjAwNi0wMi0wMiAxMToyNDoxOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy86IGRlc2NyaWJlIGRwYXJhbXMgKGNvbnRyb2xsZXIpIGZvciBwbHVnaW5zIHVuaWZ5IGRvY3MgYSBsaXR0bGUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL1JFQURNRToKCSAgKiBkb2NzL21hbnVhbC9pbnRyby1iYXNpY3MueG1sOgoJICAqIGRvY3MvbWFudWFsL2ludHJvLXByZWZhY2UueG1sOgoJICAqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkgICogZG9jcy9wd2cvaW50cm8tYmFzaWNzLnhtbDoKCSAgKiBkb2NzL3B3Zy9pbnRyby1wcmVmYWNlLnhtbDoKCSAgKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBkZXNjcmliZSBkcGFyYW1zIChjb250cm9sbGVyKSBmb3IgcGx1Z2lucwoJICB1bmlmeSBkb2NzIGEgbGl0dGxlIG1vcmUKCjIwMDYtMDItMDIgMDk6NTE6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgbmV3IEFQSTogZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uKCkgYW5kIGdzdF9iaW5fZmluZF91bmNvbm5lY3RlZF9wYWQoKSAoIzMyOTA2OSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChlbGVtZW50X2ZpbmRfdW5jb25uZWN0ZWRfcGFkKSwKCSAgKGdzdF9iaW5fZmluZF91bmNvbm5lY3RlZF9wYWQpLCAoZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQWRkIG5ldyBBUEk6IGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbigpIGFuZAoJICBnc3RfYmluX2ZpbmRfdW5jb25uZWN0ZWRfcGFkKCkgKCMzMjkwNjkpLgoKMjAwNi0wMi0wMSAyMjo0MzoxNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9tYW51YWwvUkVBRE1FOiB1bmNvdmVyIGEgbmFzdHkgZGV0YWlsIG9mIHRoZSBkb2NzIGJ1aWxkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL1JFQURNRToKCSAgdW5jb3ZlciBhIG5hc3R5IGRldGFpbCBvZiB0aGUgZG9jcyBidWlsZAoKMjAwNi0wMi0wMSAwODoyNzoyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL1JFQURNRToKCSAgdXBkYXRlcyBmb3IgcGx1Z2luIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZXMgZm9yIHBsdWdpbiBkb2NzCgoyMDA2LTAxLTMxIDE4OjQ2OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBEb24ndCBjYWNoZSBkdXJhdGlvbiBtZXNzYWdlcyBpZiB3ZSdyZSBub3QgZ29pbmcgdG8gdXNlIG9yIGZyZWUgdGhlbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX3JlbW92ZV9tZXNzYWdlcyksIChiaW5fcXVlcnlfZHVyYXRpb25fZG9uZSk6CgkgIERvbid0IGNhY2hlIGR1cmF0aW9uIG1lc3NhZ2VzIGlmIHdlJ3JlIG5vdCBnb2luZyB0byB1c2Ugb3IKCSAgZnJlZSB0aGVtLgoKMjAwNi0wMS0zMSAxNjo1NjoyOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy86IG1vcmUgZHBhcmFtIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkgIG1vcmUgZHBhcmFtIGRvY3MKCSAgKiBnc3QvZ3N0aW5kZXguYzoKCSAgZml4IGRvY3MKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2xpYi5jOiAoZ3N0X2NvbnRyb2xsZXJfaW5pdCk6CgkgIGluaXQganVzdCBvbmNlCgoyMDA2LTAxLTMxIDEwOjE2OjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IGFsc28gc2hvdyBmaWxlL2xpbmUvZnVuYyBpZiBubyBhZGRpdGlvbmFsIGRlYnVnIHdhcyBnaXZlbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfbWVzc2FnZV9mdWxsKToKCSAgYWxzbyBzaG93IGZpbGUvbGluZS9mdW5jIGlmIG5vIGFkZGl0aW9uYWwgZGVidWcgd2FzIGdpdmVuCgoyMDA2LTAxLTMwIDIzOjUyOjUyICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi92czcvZ3JhbW1hci52Y3Byb2o6IGFjdGl2YXRlIGNvcHkgb2YgYXV0b2dlbmVyYXRlZCBmaWxlcyBmb3IgUmVsZWFzZSBtb2RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL3ZzNy9ncmFtbWFyLnZjcHJvajoKCSAgYWN0aXZhdGUgY29weSBvZiBhdXRvZ2VuZXJhdGVkIGZpbGVzIGZvciBSZWxlYXNlIG1vZGUKCjIwMDYtMDEtMzAgMjI6Mjk6MDMgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOiBleHBvcnQgZ3N0X3ZhbHVlX2NvbXBhcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV4cG9ydCBnc3RfdmFsdWVfY29tcGFyZQoKMjAwNi0wMS0zMCAyMTo1NzowMCArMDAwMCAgUGhpbGlwcGUgUm91cXVpZXIgPGJvbmZpcmUtYXBwQHdhbmFkb28uZnI+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzoKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKF9kb19pbml0KSwKCSAgKGdzdF9mZF9zaW5rX2Jhc2VfaW5pdCksIChnc3RfZmRfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9mZF9zaW5rX2luaXQpLCAoZ3N0X2ZkX3NpbmtfZGlzcG9zZSksIChnc3RfZmRfc2lua19xdWVyeSksCgkgIChnc3RfZmRfc2lua19yZW5kZXIpLCAoZ3N0X2ZkX3NpbmtfY2hlY2tfZmQpLCAoZ3N0X2ZkX3Npbmtfc3RhcnQpLAoJICAoZ3N0X2ZkX3Npbmtfc3RvcCksIChnc3RfZmRfc2lua191bmxvY2spLCAoZ3N0X2ZkX3NpbmtfdXBkYXRlX2ZkKSwKCSAgKGdzdF9mZF9zaW5rX3NldF9wcm9wZXJ0eSksIChnc3RfZmRfc2lua191cmlfZ2V0X3R5cGUpLAoJICAoZ3N0X2ZkX3NpbmtfdXJpX2dldF9wcm90b2NvbHMpLCAoZ3N0X2ZkX3NpbmtfdXJpX2dldF91cmkpLAoJICAoZ3N0X2ZkX3NpbmtfdXJpX3NldF91cmkpLCAoZ3N0X2ZkX3NpbmtfdXJpX2hhbmRsZXJfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSAgUG9ydCBmZHNpbmsgdG8gMC4xMCAocGF0Y2ggYnkgUGhpbGlwcGUgUm91cXVpZXIpIChGaXhlcyAjMzI1NDkwKQoKMjAwNi0wMS0zMCAyMToxMTozOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtZHBhcmFtcy54bWw6IGRlc2NyaWJlIGNvbnRyb2xsZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkgIGRlc2NyaWJlIGNvbnRyb2xsZXIKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1wb3NpdGlvbi54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWluaXQueG1sOgoJICAqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgICogZG9jcy9tYW51YWwvdGl0bGVwYWdlLnhtbDoKCSAgKiBkb2NzL3B3Zy9wd2cueG1sOgoJICAqIGRvY3MvcHdnL3RpdGxlcGFnZS54bWw6CgkgIGNsZWFudXAgeG1sIChtb3JlIHRvIGNvbWUpCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIGZpeCB0eXBvCgoyMDA2LTAxLTMwIDIwOjM2OjUxICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi92czYvZ3JhbW1hci5kc3A6IGFkZCBhdXRvZ2VuIG9mIGdzdG1hcnNoYWwuYyxoIGZvciBSZWxlYXNlIG1vZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvdnM2L2dyYW1tYXIuZHNwOgoJICBhZGQgYXV0b2dlbiBvZiBnc3RtYXJzaGFsLmMsaCBmb3IgUmVsZWFzZSBtb2RlCgoyMDA2LTAxLTMwIDE2OjA3OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBCYXNlc2luayBjbGVhbnVwcywgcmVtb3ZlIHNvbWUgb2xkIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZW1wdHkpLCAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19pc19wcmVyb2xsZWQpLCAoZ3N0X2Jhc2Vfc2lua193YWl0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9idWZmZXIpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfZmx1c2hpbmcpLAoJICAoZ3N0X2Jhc2Vfc2lua19kZWFjdGl2YXRlKSwgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsKSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnkpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBCYXNlc2luayBjbGVhbnVwcywgcmVtb3ZlIHNvbWUgb2xkIGNvZGUuCgkgIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSBhIHN1YmNsYXNzIGNhbiBwcmVyb2xsIGluIHRoZSByZW5kZXIKCSAgbWV0aG9kIChtb3N0bHkgYXVkaW9zaW5rcykuCgkgIEhhbmRsZSBtb3JlIGV2ZW50cy4KCSAgUmVtb3ZlIHNvbWUgbG9ja3MgYXJvdW5kIHZhcmlhYmxlcyB0aGF0IGFyZSBub3cgcHJvdGVjdGVkCgkgIHdpdGggdGhlIFBSRVJPTExfTE9DSyAoY2xvY2tfaWQsIGZsdXNoaW5nLCAuLikuCgkgIE9wdGltaXplIHBvc2l0aW9uIHF1ZXJ5IHNvbWUgbW9yZSwgZG8gY29ycmVjdCBsb2NraW5nLgoJICBSZW1vdmUgb2xkIGNvZGUgdG8gcHVzaCBxdWV1ZSBpbiBzdGF0ZSBjaGFuZ2UsIHRoaXMgaXMgbm90CgkgIG5lZWRlZCBhbnltb3JlIHNpbmNlIHByZXJvbGwgYmxvY2tzIG9uIGFsbCBwcmVyb2xsYWJsZSBpdGVtcwoJICBub3cuCgkgIEFsbW9zdCBpbXBsZW1lbnRlZCBhcyBkZXNjcmliZWQgaW4gZGVzaWduIGRvYy4KCjIwMDYtMDEtMzAgMTU6NTc6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IFdhaXQgZm9yIHJlZmNvdW50IHRvIHNldHRsZSBkb3duIGJlZm9yZSBjaGVja2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBXYWl0IGZvciByZWZjb3VudCB0byBzZXR0bGUgZG93biBiZWZvcmUgY2hlY2tpbmcuCgoyMDA2LTAxLTMwIDE1OjE1OjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OiBQc2V1ZG8gY29kZSBvdmVydmlldyBvZiBkZXNpcmVkIHNpbmsgYmVoYXZpb3VyIHJlZ2FyZGluZyBwcmVyb2xsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6CgkgIFBzZXVkbyBjb2RlIG92ZXJ2aWV3IG9mIGRlc2lyZWQgc2luayBiZWhhdmlvdXIgcmVnYXJkaW5nCgkgIHByZXJvbGwuCgoyMDA2LTAxLTMwIDE0OjI4OjAzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgQmxlaCwgZm9yZ290IHRvIGNvbW1pdCB0aGUgY2hhbmdlbG9nIGVudHJ5IG9uIFNhdHVyZGF5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmxlaCwgZm9yZ290IHRvIGNvbW1pdCB0aGUgY2hhbmdlbG9nIGVudHJ5IG9uIFNhdHVyZGF5LgoKMjAwNi0wMS0yOSAyMTo1NjowMCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvdnM2L2dyYW1tYXIuZHNwOiBmaXggc29tZSBidWdzIGluIGF1dG9nZW5lcmF0ZWQgZmlsZXMgZm9yIFJlbGVhc2UgbW9kZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi92czYvZ3JhbW1hci5kc3A6CgkgIGZpeCBzb21lIGJ1Z3MgaW4gYXV0b2dlbmVyYXRlZCBmaWxlcyBmb3IgUmVsZWFzZSBtb2RlCgoyMDA2LTAxLTI5IDE5OjI0OjE4ICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi9jb21tb24vOiBleHBvcnQgc29tZSBuZXcgc3ltYm9sczogZ3N0X2Jhc2Vfc3JjX3NldF9mb3JtYXQsIGdzdF9pdGVyYXRvcl9uZXh0LCBnc3Rfc3RydWN0dXJlX3NldF92YWxpc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBleHBvcnQgc29tZSBuZXcgc3ltYm9sczogZ3N0X2Jhc2Vfc3JjX3NldF9mb3JtYXQsCgkgIGdzdF9pdGVyYXRvcl9uZXh0LCBnc3Rfc3RydWN0dXJlX3NldF92YWxpc3QKCjIwMDYtMDEtMjkgMTc6Mzc6MDggKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IFNldCBwYWQgZnVuY3Rpb25zIHVuY29uZGl0aW9uYWxseS4gRml4ZXMgIzMyOTEwNS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDEtMjkgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfc2V0X3RhcmdldF91bmxvY2tlZCk6CgkgIFNldCBwYWQgZnVuY3Rpb25zIHVuY29uZGl0aW9uYWxseS4gRml4ZXMgIzMyOTEwNS4KCjIwMDYtMDEtMjkgMTY6NTQ6NDAgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL3ZzODogYWRkIHZzOCBwcm9qZWN0IGZpbGVzIGNyZWF0ZWQgYnkgU2VyZ2V5IFNjb2JpY2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvdnM4OgoJICBhZGQgdnM4IHByb2plY3QgZmlsZXMgY3JlYXRlZCBieSBTZXJnZXkgU2NvYmljaAoKMjAwNi0wMS0yOCAwMDo1OTozNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogRG9uJ3QgbGVhayBwYWQgcmVmZXJlbmNlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF91bmxpbmtfcGFkcyk6CgkgIERvbid0IGxlYWsgcGFkIHJlZmVyZW5jZXMuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggYSBidW5jaCBvZiBsZWFrcy4gTWFrZSBnZW5lcmljL3NpbmtzLmMKCSAgdXNlIGEgYml0IGxlc3MgY3B1IGJ5IHNsb3dpbmcgdGhlIGJ1ZmZlciByYXRlCgkgIGJldHdlZW4gZmFrZXNyYyBhbmQgZmFrZXNpbmsuCgoyMDA2LTAxLTI3IDIyOjM0OjUxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2MgZml4ZXMsIHRvIGxpbmsgdG8gZnVuY3Rpb24sIGp1c3Qgd3JpdGUgZ3N0X2Nvb2xfZnVuY3Rpb24oKSwgZG9uJ3QgcHJlZml4IHdpdGggJyMnCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NlbmRfZXZlbnQpOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgICogZ3N0L2dzdHVyaS5jOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBkb2MgZml4ZXMsIHRvIGxpbmsgdG8gZnVuY3Rpb24sIGp1c3Qgd3JpdGUgZ3N0X2Nvb2xfZnVuY3Rpb24oKSwgZG9uJ3QKCSAgcHJlZml4IHdpdGggJyMnCgoyMDA2LTAxLTI3IDE2OjU5OjU3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IEFsd2F5cyBwcmVmZXIgYW4gYWN0dWFsIHJldHVybiB2YWx1ZSBmcm9tIGEgc3JjIHBhZCBpbiBwbGFjZSBvZiBOT1RfTElOS0VELiBUaGlzIG1lYW5zIHdlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9kb19wdXNoKSwKCSAgKGdzdF90ZWVfaGFuZGxlX2J1ZmZlcik6CgkgIEFsd2F5cyBwcmVmZXIgYW4gYWN0dWFsIHJldHVybiB2YWx1ZSBmcm9tIGEgc3JjCgkgIHBhZCBpbiBwbGFjZSBvZiBOT1RfTElOS0VELiBUaGlzIG1lYW5zIHdlIHJldHVybgoJICBXUk9OR19TVEFURSB3aGVuIGFsbCBzcmMgcGFkcyBhcmUgV1JPTkdfU1RBVEUKCSAgaW5zdGVhZCBvZiBOT1RfTElOS0VELgoJICBMb2NrIHdoZW4gcmVwbGFjaW5nIHRoZSBsYXN0IG1lc3NhZ2UgdG8gcHJldmVudAoJICByYWNpbmcgd2l0aCB0aGUgZ2V0X3Byb3BlcnR5IG1ldGhvZC4KCSAgQWRkIGRlYnVnIG91dHB1dAoKMjAwNi0wMS0yNyAxMTo1MzoyMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay86IEFkZCBhIHZlcnkgc2ltcGxlIGNoZWNrIHRoYXQgc2hvdWxkIGhhdmUgY2F1Z2h0IHRoZSBtZW1sZWFrIEkgZml4ZWQgbGFzdCBuaWdodCAoaWYgbm90IGZvciB0aGUgc2xpY2UgYWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RxdWVyeV9zdWl0ZSksCgkgIChtYWluKToKCSAgQWRkIGEgdmVyeSBzaW1wbGUgY2hlY2sgdGhhdCBzaG91bGQgaGF2ZSBjYXVnaHQgdGhlIG1lbWxlYWsgSSBmaXhlZAoJICBsYXN0IG5pZ2h0IChpZiBub3QgZm9yIHRoZSBzbGljZSBhbGxvY2F0b3IgaGlkaW5nIGl0KQoKMjAwNi0wMS0yNyAwMTo0ODozNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IENsZWFuIHVwIHJlZmVyZW5jZXMgdG8gdGhlIGNsb2NrIHByb3ZpZGVyIHdoZW4gZGlzcG9zZWQgb3Igd2hlbiBoYW5kbGluZyBhIGNsb2NrLWxvc3QgbWVzc2FnZSBmcm9tIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2Rpc3Bvc2UpLCAoZ3N0X2Jpbl9wcm92aWRlX2Nsb2NrX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpLAoJICAoYmluX3F1ZXJ5X2R1cmF0aW9uX2ZvbGQpLCAoYmluX3F1ZXJ5X2dlbmVyaWNfZm9sZCk6CgkgIENsZWFuIHVwIHJlZmVyZW5jZXMgdG8gdGhlIGNsb2NrIHByb3ZpZGVyIHdoZW4gZGlzcG9zZWQgb3Igd2hlbgoJICBoYW5kbGluZyBhIGNsb2NrLWxvc3QgbWVzc2FnZSBmcm9tIGl0LgoJICBVbnJlZiBzaW5rcyB3aGVuIHBlcmZvcm1pbmcgYSBxdWVyeSB2aWEgZ3N0X2l0ZXJhdG9yX2ZvbGQsIGFzIHRoZQoJICBnc3RfYmluX2l0ZXJhdGVfc2lua3MgaXRlcmF0b3IgcmVmcyBlYWNoIGl0ZW0uIChGaXhlcyAjMzIzODc0KQoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2NsYXNzX2luaXQpLCAoZ3N0X2Nsb2NrX2Rpc3Bvc2UpLAoJICAoZ3N0X2Nsb2NrX3NldF9tYXN0ZXIpOgoJICBEcm9wIG91ciByZWZlcmVuY2UgdG8gdGhlIG1hc3RlciBjbG9jaywgaWYgYW55LCB3aGVuIHdlIGFyZSBkaXNwb3NlZC4KCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6IChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfZGlzcG9zZSk6CgkgIENoYWluIHVwIGluIGRpc3Bvc2UuCgoyMDA2LTAxLTI3IDAxOjEzOjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL2kxOG46CgkgIGFkZCBub3RlcyBvbiBpMThuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbm90ZXMgb24gaTE4bgoKMjAwNi0wMS0yNiAxMjo1OTo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBBZGQgc29tZSBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSk6CgkgIEFkZCBzb21lIGRlYnVnZ2luZy4KCjIwMDYtMDEtMjYgMTI6NDA6MTcgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogQXBwbHkgcGF0Y2ggZnJvbSAjMzI4NzE1LiBUZWUgbm93IGhhbmRsZXMgcGFkIGJlaW5nIE5PVF9MSU5LRUQgb3IgaW4gV1JPTkdfU1RBVEUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAxLTI2ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfZG9fcHVzaCksCgkgIChnc3RfdGVlX2hhbmRsZV9idWZmZXIpOiBBcHBseSBwYXRjaCBmcm9tICMzMjg3MTUuIFRlZSBub3cKCSAgaGFuZGxlcyBwYWQgYmVpbmcgTk9UX0xJTktFRCBvciBpbiBXUk9OR19TVEFURS4KCjIwMDYtMDEtMjYgMDg6NTc6NDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHdpbjMyL01BTklGRVNUOiBtb3JlIHVwZGF0aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL01BTklGRVNUOgoJICBtb3JlIHVwZGF0aW5nCgoyMDA2LTAxLTI2IDA4OjM5OjIwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB3aW4zMi9NQU5JRkVTVDogcmVtb3ZlIG9ic29sZXRlIGVudHJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL01BTklGRVNUOgoJICByZW1vdmUgb2Jzb2xldGUgZW50cnkKCjIwMDYtMDEtMjYgMDY6NTc6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGFkZGVkIGNvZGUgZm9yIGRvd25zdHJlYW0gZXZlbnRzLCByZXZpZXdlZCBkb2NzIGluIGdzdGV2ZW50LmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fZWxlbWVudF9pc19zcmMpLCAoc3JjX2l0ZXJhdG9yX2ZpbHRlciksCgkgIChnc3RfYmluX2l0ZXJhdGVfc291cmNlcyksIChnc3RfYmluX3NlbmRfZXZlbnQpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2VuZF9ldmVudCk6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgYWRkZWQgY29kZSBmb3IgZG93bnN0cmVhbSBldmVudHMsIHJldmlld2VkIGRvY3MgaW4gZ3N0ZXZlbnQuYwoKMjAwNi0wMS0yNSAxODowNzowMiArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFdlIG9ubHkgcXVlcnkgcG9zaXRpb24gdXNpbmcgdGhlIGNsb2NrIGluIHRoZSBwbGF5aW5nIHN0YXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMS0yNSAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgV2Ugb25seSBxdWVyeSBwb3NpdGlvbiB1c2luZyB0aGUgY2xvY2sgaW4gdGhlIHBsYXlpbmcgc3RhdGUuCgkgIFF1ZXJ5IHBlZXIgaW4gdGhlIG90aGVyIGNhc2VzLgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDogVXBkYXRlcy4KCjIwMDYtMDEtMjQgMTY6MjM6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c3lzdGVtY2xvY2suYzogQSBjbG9jayBlbnRyeSB0aGF0IGlzIHNjaGVkdWxlZCBmb3IgdGhlIGV4YWN0IHRpbWUgb2YgdGhlIGNsb2NrIGlzIHN0aWxsIGluIHRpbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X3VubG9ja2VkKToKCSAgQSBjbG9jayBlbnRyeSB0aGF0IGlzIHNjaGVkdWxlZCBmb3IgdGhlIGV4YWN0IHRpbWUgb2YgdGhlCgkgIGNsb2NrIGlzIHN0aWxsIGluIHRpbWUuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCjIwMDYtMDEtMjMgMTI6Mzc6MzMgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL3ZzNzogQWRkIG5ldyB2czcgcHJvamVjdCBmaWxlcyBhbmQgc29sdXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL3ZzNyA6CgkgIEFkZCBuZXcgdnM3IHByb2plY3QgZmlsZXMgYW5kIHNvbHV0aW9uLgoKMjAwNi0wMS0yMyAxMjoyMzowMCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvdnM3OiBhbGwgZmlsZXMgcmVtb3ZlZCBhcyB0aGV5IHdlcmUgb3V0LWRhdGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi92czc6CgkgIGFsbCBmaWxlcyByZW1vdmVkIGFzIHRoZXkgd2VyZSBvdXQtZGF0ZWQuCgoyMDA2LTAxLTIwIDE5OjAxOjU5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvcmFuZG9tL3JlbGVhc2U6IHVwZGF0ZSBub3RlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICB1cGRhdGUgbm90ZXMKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2luaXQpOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfbmV3KToKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfaW5pdCk6CgkgIHVzZSBnc3RfYnVzX25ldygpLCBpbXByb3ZlIGxvZ2dpbmcsIGZpeCBkb2NzCgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGUgZm9yIGN2cyBidWlsZAoKMjAwNi0wMS0yMCAxODo1OTowMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBhdXRvZ2VuLnNoOiB1cCByZXF1aXJlZCB2ZXJzaW9uIG9mIGF1dG9tYWtlIHRvIDEuNwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBhdXRvZ2VuLnNoOgoJICB1cCByZXF1aXJlZCB2ZXJzaW9uIG9mIGF1dG9tYWtlIHRvIDEuNwoKMjAwNi0wMS0yMCAxMjo1Mzo0MCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IGV4cG9ydCBnc3RfYnVmZmVyX2lzX21ldGFkYXRhX3dyaXRhYmxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBleHBvcnQgZ3N0X2J1ZmZlcl9pc19tZXRhZGF0YV93cml0YWJsZQoKMjAwNi0wMS0yMCAxMTo0NjowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBnc3RfZXZlbnRfcmVwbGFjZSgpICgjMzI3MDAxKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBBZGQgZ3N0X2V2ZW50X3JlcGxhY2UoKSAoIzMyNzAwMSkKCjIwMDYtMDEtMjAgMDk6NTY6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IE1ha2UgaXQgYWN0dWFsbHkgY29tcGlsZSB0b28uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2xpbmtfY2hlY2tfY29tcGF0aWJsZV91bmxvY2tlZCk6CgkgIE1ha2UgaXQgYWN0dWFsbHkgY29tcGlsZSB0b28uLgoKMjAwNi0wMS0yMCAwOTo1MzoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IENsYXJpZnkgYmVoYXZpb3VyIG9mIF9pc19lcXVhbCgpIHdoZW4gcGFzc2luZyBOVUxMIHBhcmFtZXRlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6CgkgIENsYXJpZnkgYmVoYXZpb3VyIG9mIF9pc19lcXVhbCgpIHdoZW4gcGFzc2luZyBOVUxMIHBhcmFtZXRlcnMuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9saW5rX2NoZWNrX2NvbXBhdGlibGVfdW5sb2NrZWQpLAoJICAoZ3N0X3BhZF9zZXRfY2Fwcyk6CgkgIENsZWFudXBzLiBEb24ndCB1bnJlZiBOVUxMIGNhcHMuCgkgIFdoZW4gc2V0dGluZyB0aGUgc2FtZSBjYXBzLCBwcm90ZWN0IGNhcHMgb2YgdGhlIHBhZCB3aXRoCgkgIHByb3BlciBsb2NrLgoJICBVc2UgZnVsbCBmdW5jdGlvbmFsaXR5IG9mIF9pc19lcXVhbCgpIHdoZW4gY29tcGFyaW5nIGNhcHMuCgoyMDA2LTAxLTIwIDA5OjI2OjAwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogRG9uJ3QgbG9vcCBpbmZpbml0ZWx5IGlmIHRoZXJlIGFyZSBubyBidWZmZXJzIHRvIHByZXNlbnQuIFBhcnRpYWxseSBmaXhlcyAjMzI3MTk3LCBidS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2lzX2NvbGxlY3RlZCk6CgkgIERvbid0IGxvb3AgaW5maW5pdGVseSBpZiB0aGVyZSBhcmUgbm8gYnVmZmVycyB0byBwcmVzZW50LiBQYXJ0aWFsbHkKCSAgZml4ZXMgIzMyNzE5NywgYnV0IGNvbGxlY3RwYWRzIGlzIGp1c3QgYnJva2VuIGZvciByZXVzaW5nIGVsZW1lbnRzCgkgIHRvIGRvIG11bHRpcGxlIGVuY29kZXMgYXRtLgoKMjAwNi0wMS0yMCAwOToxMjoxMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0b29scy86IFVSTF9IQU5ETEVSIGlzIG5vdCBhIHBsdWdpbiBmZWF0dXJlIHdlIGNhbiBzZWFyY2ggZm9yIGluIHRoZSByZWdpc3RyeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfZmVhdHVyZXMpOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IChtYWluKToKCSAgVVJMX0hBTkRMRVIgaXMgbm90IGEgcGx1Z2luIGZlYXR1cmUgd2UgY2FuIHNlYXJjaCBmb3IgaW4KCSAgdGhlIHJlZ2lzdHJ5LgoKMjAwNi0wMS0xOSAxODowNjoxOCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IFdoZW4gYWN0aXZhdGluZywgZG8gc3JjIHBhZHMgZmlyc3QsIHRoZW4gc2luayBwYWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6CgkgIFdoZW4gYWN0aXZhdGluZywgZG8gc3JjIHBhZHMgZmlyc3QsIHRoZW4gc2luayBwYWRzLgoJICBXaGVuIGRlLWFjdGl2YXRpbmcsIGRvIHNpbmsgcGFkcyBmaXJzdCwgdGhlbiBzcmMgcGFkcy4KCjIwMDYtMDEtMTkgMTQ6MDI6MDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIGdzdF9pbmRleF9hZGRfYXNzb2NpYXRpb252IHRvIHRoZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBnc3RfaW5kZXhfYWRkX2Fzc29jaWF0aW9udiB0byB0aGUgZG9jcwoKMjAwNi0wMS0xOSAxMzozMDozMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuYzogRml4IGRvY3MgdHlwbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgRml4IGRvY3MgdHlwbwoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksCgkgIChnc3RfcXVldWVfY2hhaW4pLCAoZ3N0X3F1ZXVlX3B1c2hfb25lKSwgKGdzdF9xdWV1ZV9sb29wKToKCSAgRG8gc29tZSByZWZhY3RvcmluZy4gRG9lc24ndCBhY3R1YWxseSBjaGFuZ2UgZnVuY3Rpb25hbGl0eSwKCSAgYnV0IG1ha2VzIGxhbmRpbmcgdGhlIERSQUlOIGV2ZW50IGVhc2llciBsYXRlci4KCjIwMDYtMDEtMTkgMTA6Mzk6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC1zY2hlZHVsaW5nLnhtbDogVXBkYXRlIGZyb20gMC45LnggdG8gMC4xMCBBUEkgYW5kIG1ha2UgZXhhbXBsZSBhIGJpdCBjbGVhcmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1zY2hlZHVsaW5nLnhtbDoKCSAgVXBkYXRlIGZyb20gMC45LnggdG8gMC4xMCBBUEkgYW5kIG1ha2UgZXhhbXBsZSBhIGJpdAoJICBjbGVhcmVyLgoKMjAwNi0wMS0xOSAwOToyNDowMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgZ3N0X2J1ZmZlcl8oaXN8bWFrZSlfbWV0YWRhdGFfd3JpdGFibGUgbWV0aG9kcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIGdzdF9idWZmZXJfKGlzfG1ha2UpX21ldGFkYXRhX3dyaXRhYmxlIG1ldGhvZHMuCgoyMDA2LTAxLTE5IDA5OjA4OjE1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtc3BhcnNlc3RyZWFtcy50eHQ6IFVwZGF0ZSBzcGFyc2Ugc3RyZWFtcyBkb2MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zcGFyc2VzdHJlYW1zLnR4dDoKCSAgVXBkYXRlIHNwYXJzZSBzdHJlYW1zIGRvYwoKMjAwNi0wMS0xOSAwOTowMjoxMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6IFJlbW92ZSBtZW50aW9uIG9mIEZJTExFUiBldmVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgUmVtb3ZlIG1lbnRpb24gb2YgRklMTEVSIGV2ZW50cy4KCSAgQWRkIERSQUlOIGV2ZW50LgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3BhcnNlc3RyZWFtcy50eHQ6CgkgIFdyaXRlIHNvbWUgdGhpbmdzIGFib3V0IHVzaW5nIE5FV1NFR01FTlQgdG8ga2VlcCBzcGFyc2Ugc3RyZWFtcwoJICBmbG93aW5nLgoKMjAwNi0wMS0xOCAxODo1Njo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogR3VhcmQgZ3N0X29iamVjdF91bnJlZiBjYWxsIGFnYWluc3QgYSBOVUxMIG9iamVjdCAoZGlzcG9zZSBjYW4gdGhlb3JldGljYWxseSBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2Rpc3Bvc2UpOgoJICBHdWFyZCBnc3Rfb2JqZWN0X3VucmVmIGNhbGwgYWdhaW5zdCBhIE5VTEwgb2JqZWN0IChkaXNwb3NlCgkgIGNhbiB0aGVvcmV0aWNhbGx5IGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcykuCgoyMDA2LTAxLTE4IDE4OjA1OjQzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDogUmVtb3ZlIG1lbnRpb24gb2YgRklMTEVSIGV2ZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICBSZW1vdmUgbWVudGlvbiBvZiBGSUxMRVIgZXZlbnRzLgoJICBBZGQgRFJBSU4gZXZlbnQuCgkgICogZG9jcy9kZXNpZ24vcGFydC1zcGFyc2VzdHJlYW1zLnR4dDoKCSAgV3JpdGUgc29tZSB0aGluZ3MgYWJvdXQgdXNpbmcgTkVXU0VHTUVOVCB0byBrZWVwIHNwYXJzZSBzdHJlYW1zCgkgIGZsb3dpbmcuCgoyMDA2LTAxLTE4IDE4OjAxOjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQWRkZWQgc29tZSBtb3JlIGRlYnVnIGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2lkX3dhaXQpOgoJICBBZGRlZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgQWRkZWQgbW9yZSBkb2NzLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19jaGFpbik6CgkgIEFkZGVkIHNvbWUgY29tbWVudHMuCgoyMDA2LTAxLTE4IDE3OjU5OjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSAgSWdub3JlIGZha2VzaW5rIHRlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBJZ25vcmUgZmFrZXNpbmsgdGVzdC4KCjIwMDYtMDEtMTggMTc6NTc6NTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay86IEFkZGVkIGZha2VzaW5rIHRlc3QgdGhhdCBjaGVja3MgcHJlcm9sbGluZyBhbmQgY2xpcHBpbmcgYmVoYXZpb3VyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOiAoY2hhaW5fYXN5bmNfYnVmZmVyKSwKCSAgKGNoYWluX2FzeW5jKSwgKGNoYWluX2FzeW5jX3JldHVybiksIChHU1RfU1RBUlRfVEVTVCksCgkgIChmYWtlc2lua19zdWl0ZSksIChtYWluKToKCSAgQWRkZWQgZmFrZXNpbmsgdGVzdCB0aGF0IGNoZWNrcyBwcmVyb2xsaW5nIGFuZCBjbGlwcGluZwoJICBiZWhhdmlvdXIuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIE1ha2UgY2hlY2sgcnVuIGZhc3RlciBzbyB0aGF0IGJ1aWxkYm90cyBkb24ndCB0aW1lb3V0LgoKMjAwNi0wMS0xOCAxNzoxODozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU29tZSBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgIFNvbWUgY2xlYW51cHMuCgkgIFdoZW4gdGhlIHNpbmsgZmluaXNoZXMgYmxvY2tpbmcgb24gdGhlIHByZXJvbGwgYnVmZmVyLCBpdCBjYW4KCSAgaW1tZWRpYXRseSByZW5kZXIgaXQgaW5zdGVhZCBvZiByZW5kZXJpbmcgd2hlbiB0aGUgbmV4dCBidWZmZXIKCSAgYXJyaXZlcy4KCjIwMDYtMDEtMTggMTY6NDA6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFNtYWxsIGNsZWFudXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wcm9wZXJ0eSksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFpbik6CgkgIFNtYWxsIGNsZWFudXBzLgoJICBHU1RfRUxFTUVOVF9DTE9DSyBhbmQgc3luYyBhcmUgcHJvdGVjdGVkIHdpdGggTE9DSy4KCSAgRG9uJ3Qgc3RvcmUgX2xhc3Rfc3RvcCBpZiB0aGUgYnVmZmVyIGlzIGRyb3BwZWQuCgoyMDA2LTAxLTE4IDE2OjMxOjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogJ2hhdmUtdHlwZScgc2lnbmFsIG5lZWRzIHRvIGJlIEdfU0lHTkFMX1JVTl9GSVJTVCwgYXMgaXQgaXMgdGhlIG9iamVjdCBtZXRob2QgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2xhc3NfaW5pdCk6CgkgICdoYXZlLXR5cGUnIHNpZ25hbCBuZWVkcyB0byBiZSBHX1NJR05BTF9SVU5fRklSU1QsIGFzIGl0IGlzIHRoZQoJICBvYmplY3QgbWV0aG9kIGhhbmRsZXIgdGhhdCBzZXRzIHRoZSBjYXBzIG9uIHRoZSBwYWQgYW5kIHdlIHdhbnQKCSAgdGhhdCB0byBoYXBwZW4gYmVmb3JlIHdlIGVtaXQgdGhlIHNpZ25hbCAoZml4ZXMgZS5nLiBmZWVkaW5nIGEKCSAgcGxhaW4gdGV4dCBmaWxlIHRvIGRlY29kZWJpbikuCgoyMDA2LTAxLTE4IDExOjQ0OjU1ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgYWRkIE1QTCBhbmQgUHJvcGVyaWV0YXJ0IHRvIGxpc3Qgb2YgbGljZW5zZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBNUEwgYW5kIFByb3BlcmlldGFydCB0byBsaXN0IG9mIGxpY2Vuc2VzCgoyMDA2LTAxLTE4IDA5OjQyOjEyICswMDAwICBUb3JzdGVuIFNjaG9lbmZlbGQgPGthZmZlZXRpc2NoQGdteC5kZT4KCgkgIGdzdC9nc3RpbmRleC5oIChnc3RfaW5kZXhfYWRkX2Fzc29jaWF0aW9udik6IEFkZCB0byBoZWFkZXIuIFRoZSBzeW1ib2wgd2FzIGV4cG9ydGVkIGJlZm9yZSwgaXQgYXBwZWFycyB0aGlzIHdhcyBqdXN0IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMS0xOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0aW5kZXguaCAoZ3N0X2luZGV4X2FkZF9hc3NvY2lhdGlvbnYpOiBBZGQgdG8gaGVhZGVyLiBUaGUKCSAgc3ltYm9sIHdhcyBleHBvcnRlZCBiZWZvcmUsIGl0IGFwcGVhcnMgdGhpcyB3YXMganVzdCBhbiBvdmVyc2lnaHQuCgkgIEZpeGVzICMxNjg3MDMuCgkgIFBhdGNoIGJ5OiBUb3JzdGVuIFNjaG9lbmZlbGQgPGthZmZlZXRpc2NoIGF0IGdteC5kZT4KCSAgKiBnc3QvZ3N0aW5kZXguYyAoZ3N0X2luZGV4X2FkZF9hc3NvY2lhdGlvbnYpOiBDaGFuZ2VkIGludCBpbgoJICBwcm90b3R5cGUgdG8gZ2ludC4gT0sgc2luY2UgdGhpcyBwcm90b3R5cGUgd2FzIG5vdCBpbiB0aGUgaGVhZGVyLgoKMjAwNi0wMS0xNyAxNjozOToyMyArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtbGljZW5zaW5nLnhtbDoKCSAgc21hbGwgZml4IHRvIHRoZSBwcm9wb3NlZCBsaWNlbnNlIGNsYXVzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc21hbGwgZml4IHRvIHRoZSBwcm9wb3NlZCBsaWNlbnNlIGNsYXVzZQoKMjAwNi0wMS0xNyAxMjo1MzowNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmMgKF9nc3RfcmVnaXN0cnlfcmVtb3ZlX2NhY2hlX3BsdWdpbnMpOiBMb2NrIHRoZSByZWdpc3RyeSB3aGlsZSB3ZSByZW1vdmUgcGx1Z2lucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDEtMTcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmMgKF9nc3RfcmVnaXN0cnlfcmVtb3ZlX2NhY2hlX3BsdWdpbnMpOiBMb2NrIHRoZQoJICByZWdpc3RyeSB3aGlsZSB3ZSByZW1vdmUgcGx1Z2lucy4KCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jIChwcmludF9lbGVtZW50X2luZm8pOiBEb24ndCB1bnJlZiB0aGUKCSAgZmFjdG9yeSBhcmcsIHRoYXQgc2hvdWxkIGJlIHRoZSByZXNwb25zaWJpbGl0eSBvZiB3aGF0ZXZlciBjb2RlCgkgIHJlY2VpdmVkIHRoZSByZWYuIEZpeGVzIGEgZG91YmxlLWZyZWUgd2hlbiBjYWxsZWQgZnJvbQoJICBwcmludF9lbGVtZW50X2xpc3QgdmlhIGdzdC1pbnNwZWN0LTAuMTAgLWEuIEZpeGVzICMzMjczMjQuCgkgIChtYWluKTogVW5yZWYgdGhlIGZhY3RvcnkgaWYgd2UgaGF2ZSBvbmUuCgkgIChwcmludF9lbGVtZW50X2xpc3QpOiBObyBjaGFuZ2UgLS0gcmVsaWVzIG9uIHRoZQoJICBwbHVnaW5fZmVhdHVyZV9saXN0X2ZyZWUgdG8gZnJlZSB0aGUgbGlzdCBvZiBmZWF0dXJlcy4KCjIwMDYtMDEtMTcgMTI6MTQ6MjAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgUmVwbGFjZSBnc3RfYnVmZmVyXyhtYWtlfGlzKV9tZXRhZGF0YV93cml0YWJsZSBwYXRjaCBub3cgdGhhdCB0aGUgcmVsZWFzZSBpcyBvdXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfaXNfbWV0YWRhdGFfd3JpdGFibGUpLAoJICAoZ3N0X2J1ZmZlcl9tYWtlX21ldGFkYXRhX3dyaXRhYmxlKToKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX3ByZXBhcmVfYnVmKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdGVzdF9zdWl0ZSk6CgkgIFJlcGxhY2UgZ3N0X2J1ZmZlcl8obWFrZXxpcylfbWV0YWRhdGFfd3JpdGFibGUgcGF0Y2ggbm93CgkgIHRoYXQgdGhlIHJlbGVhc2UgaXMgb3V0LgoKMjAwNi0wMS0xNyAxMjowODo0MyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmM6IFJlZmxvdyBkZXNpZ24gY29tbWVudC4gVXBkYXRlIHNvIGFzIHRvIHNwZWFrIGluIHRoZSBwcmVzZW50IHRlbnNlIHdpdGhvdXQgcmVmZXJlbmNlIHRvIHZlcnNpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMS0xNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogUmVmbG93IGRlc2lnbiBjb21tZW50LiBVcGRhdGUgc28gYXMgdG8gc3BlYWsKCSAgaW4gdGhlIHByZXNlbnQgdGVuc2Ugd2l0aG91dCByZWZlcmVuY2UgdG8gdmVyc2lvbnMuCgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmMgKGdzdF9yZWdpc3RyeV9hZGRfcGx1Z2luKQoJICAoZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9wbHVnaW4sIGdzdF9yZWdpc3RyeV9yZW1vdmVfZmVhdHVyZSkKCSAgKGdzdF9yZWdpc3RyeV9maW5kX2ZlYXR1cmUsIGdzdF9yZWdpc3RyeV9nZXRfZmVhdHVyZV9saXN0KQoJICAoZ3N0X3JlZ2lzdHJ5X2dldF9wbHVnaW5fbGlzdCwgZ3N0X3JlZ2lzdHJ5X2xvb2t1cF9mZWF0dXJlKQoJICAoZ3N0X3JlZ2lzdHJ5X2xvb2t1cCwgZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aCkKCSAgKF9nc3RfcmVnaXN0cnlfcmVtb3ZlX2NhY2hlX3BsdWdpbnMpCgkgIChnc3RfcmVnaXN0cnlfZ2V0X2ZlYXR1cmVfbGlzdF9ieV9wbHVnaW4pOiBBZGQgYXJndW1lbnQKCSAgdmFsaWRhdGlvbi4KCjIwMDYtMDEtMTYgMjE6MDA6NTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIEhFQUQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gSEVBRAoKPT09IHJlbGVhc2UgMC4xMC4yID09PQoKMjAwNi0wMS0xNiAyMDo1OTozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHJlbGVhc2luZyAwLjEwLjIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjEwLjIKCjIwMDYtMDEtMTYgMTU6NDI6MDggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgQmFjayBvdXQgcGF0Y2ggdW50aWwgYWZ0ZXIgdGhlIHJlbGVhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX3ByZXBhcmVfYnVmKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChnc3RfdGVzdF9zdWl0ZSk6CgkgIEJhY2sgb3V0IHBhdGNoIHVudGlsIGFmdGVyIHRoZSByZWxlYXNlLgoKMjAwNi0wMS0xNiAxNDozNzo1NCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBTcGVsbGluZyBmaXggaW4gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgU3BlbGxpbmcgZml4IGluIGRvY3MuCgkgICogQ2hhbmdlTG9nIC0gcmVtb3ZlIGNvbmZsaWN0IGluZGljYXRvcgoKMjAwNi0wMS0xNiAxNDozNzowMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICAoTWlzc2VkIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jIGluIHByZXZpb3VzIGNvbW1pdCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIChNaXNzZWQgcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmMgaW4gcHJldmlvdXMgY29tbWl0KQoJICBSZXZpZXdlZCBCeTogQW5keSBXaW5nbwoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfaXNfbWV0YWRhdGFfd3JpdGFibGUpLAoJICAoZ3N0X2J1ZmZlcl9tYWtlX21ldGFkYXRhX3dyaXRhYmxlKToKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIEFkZCBnc3RfYnVmZmVyXyhpc3xtYWtlKV9tZXRhZGF0YV93cml0YWJsZSBhcyBhbmFsb2d1ZXMgb2YKCSAgZ3N0X2J1ZmZlcl8oaXN8bWFrZSlfd3JpdGFibGUuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX3ByZXBhcmVfYnVmKToKCSAgVXNlIG5hbWUgZ3N0X2J1ZmZlcl8oaXN8bWFrZSlfbWV0YWRhdGFfd3JpdGFibGUgZnVuY3Rpb25zLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF90ZXN0X3N1aXRlKToKCSAgVGVzdCBnc3RfYnVmZmVyXyhpc3xtYWtlKV9tZXRhZGF0YV93cml0YWJsZQoJICAoQ2xvc2VzOiAjMzI0MTYyKQoKMjAwNi0wMS0xNiAxNDozMjozMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLio6IEFkZCBnc3RfYnVmZmVyXyhpc3xtYWtlKV9tZXRhZGF0YV93cml0YWJsZSBhcyBhbmFsb2d1ZXMgb2YgZ3N0X2J1ZmZlcl8oaXN8bWFrZSlfd3JpdGFibGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZpZXdlZCBCeTogQW5keSBXaW5nbwoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfaXNfbWV0YWRhdGFfd3JpdGFibGUpLAoJICAoZ3N0X2J1ZmZlcl9tYWtlX21ldGFkYXRhX3dyaXRhYmxlKToKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIEFkZCBnc3RfYnVmZmVyXyhpc3xtYWtlKV9tZXRhZGF0YV93cml0YWJsZSBhcyBhbmFsb2d1ZXMgb2YKCSAgZ3N0X2J1ZmZlcl8oaXN8bWFrZSlfd3JpdGFibGUuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX3ByZXBhcmVfYnVmKToKCSAgVXNlIG5hbWUgZ3N0X2J1ZmZlcl8oaXN8bWFrZSlfbWV0YWRhdGFfd3JpdGFibGUgZnVuY3Rpb25zLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF90ZXN0X3N1aXRlKToKCSAgVGVzdCBnc3RfYnVmZmVyXyhpc3xtYWtlKV9tZXRhZGF0YV93cml0YWJsZQoJICAoQ2xvc2VzOiAjMzI0MTYyKQoKMjAwNi0wMS0xNCAyMjo1OTo0NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBwcmVyZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwcmVyZWxlYXNlCgoyMDA2LTAxLTE0IDE0OjEyOjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSAgYWRkIHVubGluayBhbmQgc29tZSBhc3NlcnRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgdW5saW5rIGFuZCBzb21lIGFzc2VydHMKCjIwMDYtMDEtMTQgMTE6MjA6NDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9tYW51YWwvTWFrZWZpbGUuYW06IGRvbid0IGRvIHBhcmFsbGVsIG1ha2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIGRvbid0IGRvIHBhcmFsbGVsIG1ha2UKCSAgKiBjb25maWd1cmUuYWM6CgkgIEFDX1NVQlNUIEhPU1RfQ1BVCgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBhZGQgZ2VuZXJhdGlvbnMgZm9yIEhPU1RfQ1BVIGFuZCBHU1RfTUFKT1JNSU5PUgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDogICAgICAgICAgIGNvbW1pdCBnZW5lcmF0ZWQgcmVzdWx0CgoyMDA2LTAxLTEzIDE5OjUxOjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIHVwZGF0ZXMgdG8gcmVsZWFzZSBkb2MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZXMgdG8gcmVsZWFzZSBkb2MKCjIwMDYtMDEtMTMgMTk6MTc6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6IFVwZGF0ZSBHTk9NRSBpbnRlZ3JhdGlvbiBzZWN0aW9uIHRvIHVzZSBnc3RfaW5pdF9nZXRfb3B0aW9uX2dyb3VwKCkgaW5zdGVhZCBvZiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOgoJICBVcGRhdGUgR05PTUUgaW50ZWdyYXRpb24gc2VjdGlvbiB0byB1c2UgZ3N0X2luaXRfZ2V0X29wdGlvbl9ncm91cCgpCgkgIGluc3RlYWQgb2YgdGhlIG9sZCBwb3B0IHN0dWZmICgjMzIyOTExKS4gQWxzbywgR05PTUUgYXBwbGljYXRpb25zCgkgIHNob3VsZCAgbm93IHVzZSBnY29uZipzaW5rIGFuZCBnY29uZipzcmMgaW5zdGVhZCBvZiB0aGUgb2xkIGdjb25mCgkgIGhlbHBlciBsaWIgd2UgaGFkLgoKMjAwNi0wMS0xMyAxNjoxNjoyNCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHJlbW92aW5nIDAxMCBzdWZmaXhpbmcgb2YgcGFja2FnZSBuYW1lIGFzIEZlZG9yYSBvbmx5IHVzZSBpdCBmb3IgMC44LCB3YW50IHRvIGhhdmUgdGhlIHBhY2thZ2VzIGJlIGludGVyY2hhbmdlYWJsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZpbmcgMDEwIHN1ZmZpeGluZyBvZiBwYWNrYWdlIG5hbWUgYXMgRmVkb3JhIG9ubHkgdXNlIGl0IGZvciAwLjgsIHdhbnQKCSAgdG8gaGF2ZSB0aGUgcGFja2FnZXMgYmUgaW50ZXJjaGFuZ2VhYmxlCgoyMDA2LTAxLTEzIDE0OjU5OjAwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vTElOR1VBUzoKCSAgcmVhZGQgemhfVFcgYW5kIGZvcmNlIGFuIGF1dG9nZW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlYWRkIHpoX1RXIGFuZCBmb3JjZSBhbiBhdXRvZ2VuCgoyMDA2LTAxLTEzIDE0OjIxOjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzLzogYWRkIG5ldyBBUEkgZW50cmllcyB0byB0aGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgYWRkIG5ldyBBUEkgZW50cmllcyB0byB0aGUgZG9jcwoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVycHJpdmF0ZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIG1vdmUgcHJpdmF0ZSBzdHJ1Y3RzIHRvIHByaXZhdGUgaGVhZGVyCgkgICogcG8vUkVBRE1FOgoJICBnc3RyZWFtZXItMC43IC0+IGdzdHJlYW1lci0wLjEwCgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaTM4Ni5oOgoJICByZW1vdmUgcHJpdmF0ZSBzdHJ1Y3RzCgoyMDA2LTAxLTEzIDE0OjE5OjM3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL1BPVEZJTEVTLmluOgoJICB0cmlnZ2VyIGEgcmVidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdHJpZ2dlciBhIHJlYnVpbGQKCjIwMDYtMDEtMTMgMTQ6MTk6MTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vTElOR1VBUzoKCSAgdHJpZ2dlciBhIHJlYnVpbGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRyaWdnZXIgYSByZWJ1aWxkCgoyMDA2LTAxLTEzIDE0OjEyOjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBsdWdpbnMvaW5kZXhlcnMvTWFrZWZpbGUuYW06IEZpeGVzIGFzIHBhcnQgb2YgIzMxNzA0OAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJICBGaXhlcyBhcyBwYXJ0IG9mICMzMTcwNDgKCjIwMDYtMDEtMTMgMTM6NDE6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcGx1Z2lucy9pbmRleGVycy9NYWtlZmlsZS5hbTogZml4ICMzMTYwODYgLSBjb21waWxhdGlvbiB3aGVuIG1tYXAgaXMgbWlzc2luZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJICBmaXggIzMxNjA4NiAtIGNvbXBpbGF0aW9uIHdoZW4gbW1hcCBpcyBtaXNzaW5nCgoyMDA2LTAxLTEyIDIyOjA0OjU4ICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6ICpjdXIgPSAobm93IC0gYmFzZSkgKiBiYXNlc2luay0+c2VnbWVudC5hYnNfcmF0ZSArIHRpbWU7IHJlcGxhY2VkIGJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgKmN1ciA9IChub3cgLSBiYXNlKSAqIGJhc2VzaW5rLT5zZWdtZW50LmFic19yYXRlICsgdGltZTsgcmVwbGFjZWQgYnkKCSAgKmN1ciA9IGdzdF9ndWludDY0X3RvX2dkb3VibGUobm93IC0gYmFzZSkgKiBiYXNlc2luay0+c2VnbWVudC5hYnNfcmF0ZSArIHRpbWU7IGZvciB2czYKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIGFkZGVkIHNvbWUgZGVmaW5lcyBHU1RfTUFKT1JNSU5PUiBhbmQgSE9TVF9DUFUKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGFkZGVkIHNvbWUgZXhwb3J0ZWQgZnVuY3Rpb25zCgoyMDA2LTAxLTEyIDIxOjU1OjQyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogbWFrZSBHX1RZUEVfU1RSSU5HIGNvbnRyb2xhYmxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfc2V0X2ludGVycG9sYXRpb25fbW9kZSksCgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9uZXcpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAoaW50ZXJwb2xhdGVfbm9uZV9nZXRfc3RyaW5nX3ZhbHVlX2FycmF5KToKCSAgbWFrZSBHX1RZUEVfU1RSSU5HIGNvbnRyb2xhYmxlCgoyMDA2LTAxLTEyIDE2OjMxOjM1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0b29scy86IGNsZWFudXAgbWFuLXBhZ2VzLCByZW1vdmUgcmVmZXJlbmNlIHRvIGdzdC1yZWdpc3RlciwgZG9jdW1lbnQgZW52LXZhcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvUkVBRE1FOgoJICAqIHRvb2xzL2dzdC1mZWVkYmFjay4xLmluOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LjEuaW46CgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICAqIHRvb2xzL2dzdC1tZDVzdW0uMS5pbjoKCSAgKiB0b29scy9nc3QtdHlwZWZpbmQuMS5pbjoKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC4xLmluOgoJICAqIHRvb2xzL2dzdC14bWxsYXVuY2guMS5pbjoKCSAgY2xlYW51cCBtYW4tcGFnZXMsIHJlbW92ZSByZWZlcmVuY2UgdG8gZ3N0LXJlZ2lzdGVyLCBkb2N1bWVudCBlbnYtdmFycwoKMjAwNi0wMS0xMiAxNjowNzo1MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IGdzdF9idWZmZXJfc3BhbiBzaG91bGQgY29weSB0aGUgdGltZXN0YW1wIG9mIHRoZSBmaXJzdCBidWZmZXIgaWYgdGhleSB3ZXJlIGJvdGggb3JpZ2luYWxseSBvdmVybGFwcGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9zcGFuKToKCSAgZ3N0X2J1ZmZlcl9zcGFuIHNob3VsZCBjb3B5IHRoZSB0aW1lc3RhbXAgb2YgdGhlIGZpcnN0IGJ1ZmZlcgoJICBpZiB0aGV5IHdlcmUgYm90aCBvcmlnaW5hbGx5IG92ZXJsYXBwaW5nIHN1YmJ1ZmZlcnMgb2YgdGhlCgkgIHNhbWUgcGFyZW50LCB1c2luZyB0aGUgc2FtZSBsb2dpYyBhcyB0aGUgJ3Nsb3cgY29weScgY2FzZS4KCjIwMDYtMDEtMTEgMjE6MzI6MjEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBOZWVkIHRvIGF3YWtlbiBBTEwgdGhlIHBhZHMgd2hlbiB3ZSBwb3AgYSBidWZmZXIsIG90aGVyd2lzZSBjb2xsZWN0cGFkcyBvbmx5IHdvcmtzIHdoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfcG9wKToKCSAgTmVlZCB0byBhd2FrZW4gQUxMIHRoZSBwYWRzIHdoZW4gd2UgcG9wIGEgYnVmZmVyLCBvdGhlcndpc2UKCSAgY29sbGVjdHBhZHMgb25seSB3b3JrcyB3aGVuIHRoZXJlIGlzIDIgaW5wdXQgc3RyZWFtcy4KCjIwMDYtMDEtMTEgMTk6MTg6MjcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvbWVkaWEtZGV2aWNlLWRhZW1vbi50eHQ6IG1vcmUgaWRlYXMgKGRidXMpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvbWVkaWEtZGV2aWNlLWRhZW1vbi50eHQ6CgkgIG1vcmUgaWRlYXMgKGRidXMpCgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICBmaXggZG9jIGV4YW1wbGUsIGFkZCBjbGFyaWZpY2F0aW9uCgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBhZGQgaW5pdGlhbCBpbmZvIGFib3V0IEdTVF9QTFVHSU5fUEFUSCwgbmVlZHMgbW9yZSB3b3JrCgoyMDA2LTAxLTExIDEwOjM4OjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvOiBTb21lIG1vcmUgbWlub3IgZG9jcyBhZGRpdGlvbnMgYW5kIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2ludHJvLWJhc2ljcy54bWw6CgkgIFNvbWUgbW9yZSBtaW5vciBkb2NzIGFkZGl0aW9ucyBhbmQgdXBkYXRlcy4KCjIwMDYtMDEtMTEgMTA6MjA6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL21hbnVhbC86IFNvbWUgc21hbGwgZml4ZXMgYXMgcG9pbnRlZCBvdXQgYnkgU2VyLXZlciBvbiBJUkMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJICBTb21lIHNtYWxsIGZpeGVzIGFzIHBvaW50ZWQgb3V0IGJ5IFNlci12ZXIgb24gSVJDLgoKMjAwNi0wMS0xMCAxNTo0MjoyOSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogU2V0IHRoZSBidWZmZXIgb2Zmc2V0L29mZnNldF9lbmQgdG8gR1NUX0NMT0NLX1RJTUVfTk9ORSB3aGVuIHVzaW5nIHRoZSBzaW5nbGUtc2VnbWVudC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKToKCSAgU2V0IHRoZSBidWZmZXIgb2Zmc2V0L29mZnNldF9lbmQgdG8gR1NUX0NMT0NLX1RJTUVfTk9ORSB3aGVuIHVzaW5nCgkgIHRoZSBzaW5nbGUtc2VnbWVudCBtb2RlLgoKMjAwNi0wMS0xMCAwOToyMzoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy4qOiBOYW1lIChwcml2YXRlKSB1bmlvbjsgbWFrZXMgU3VuJ3MgRm9ydGUgY29tcGlsZXIgaGFwcHkgKCMzMjQ5MDApLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2aWV3ZWQgYnk6IFRpbS1QaGlsaXBwIE3DvGxsZXIgIDx0aW0gYXQgY2VudHJpY3VsYXIgZG90IG5ldD4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspLCAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX3NldF9wcm9wZXJ0eSksIChnc3RfYmFzZV9zcmNfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKSwgKGdzdF9iYXNlX3NyY19zdGFydCksCgkgIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIE5hbWUgKHByaXZhdGUpIHVuaW9uOyBtYWtlcyBTdW4ncyBGb3J0ZSBjb21waWxlciBoYXBweSAoIzMyNDkwMCkuCgoyMDA2LTAxLTA5IDEwOjQ3OjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgUkVBRE1FOiBnc3QtcmVnaXN0ZXIgaXMgZ29uZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogUkVBRE1FOgoJICBnc3QtcmVnaXN0ZXIgaXMgZ29uZS4KCjIwMDYtMDEtMDcgMTE6MDc6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vTElOR1VBUzoKCSAgcmVtb3ZlIGFuZCByZWFkZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGFuZCByZWFkZAoKMjAwNi0wMS0wNyAxMTowNzoxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIHBvL0xJTkdVQVM6CgkgIHJlbW92ZSBhbmQgcmVhZGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBhbmQgcmVhZGQKCjIwMDYtMDEtMDcgMTA6MDQ6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IG1ha2UgdGhlIEdfVFlQRV9EQVRFIGluc3RhbnRpYXRpb24gd29yayBpZiBkZWJ1ZyBpcyBkaXNhYmxlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6CgkgIG1ha2UgdGhlIEdfVFlQRV9EQVRFIGluc3RhbnRpYXRpb24gd29yayBpZiBkZWJ1ZyBpcyBkaXNhYmxlZAoKMjAwNi0wMS0wNyAwOTo1NjowMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHVwZGF0ZSB0cmFuc2xhdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMDYtMDEtMDYgMTc6MTY6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0bWVzc2FnZS5jOiBEb24ndCBjcmFzaCB3aGVuIHJldHVybiBsb2NhdGlvbiBmb3IgZXJyb3Ivd2FybmluZyBkZWJ1ZyBzdHJpbmcgaXMgTlVMTDsgYWRkIGZhY3QgdGhhdCByZXR1cm4gbG9jYXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX3BhcnNlX3RhZyksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9lcnJvciksIChnc3RfbWVzc2FnZV9wYXJzZV93YXJuaW5nKToKCSAgRG9uJ3QgY3Jhc2ggd2hlbiByZXR1cm4gbG9jYXRpb24gZm9yIGVycm9yL3dhcm5pbmcgZGVidWcKCSAgc3RyaW5nIGlzIE5VTEw7IGFkZCBmYWN0IHRoYXQgcmV0dXJuIGxvY2F0aW9ucyBjYW4gYmUKCSAgTlVMTCB0byBkb2NzIHdoZXJlIGFwcHJvcHJpYXRlLgoKMjAwNi0wMS0wNSAxMDo0MzowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwbHVnaW4uYzogUmVwbGFjZSBzdHJkdXAgYnkgZ19zdHJkdXAgYXMgc3VnZ2VzdGVkIGJ5IFNlci12ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fbG9hZF9maWxlKToKCSAgUmVwbGFjZSBzdHJkdXAgYnkgZ19zdHJkdXAgYXMgc3VnZ2VzdGVkIGJ5IFNlci12ZXIuCgoyMDA2LTAxLTA0IDIzOjUzOjAxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdXBkYXRlIGNvbmZpZyBmb3IgLjEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBjb25maWcgZm9yIC4xCgoyMDA2LTAxLTA0IDIzOjUyOjM1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDogZml4IGRvYyBib3JrYWdlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgZml4IGRvYyBib3JrYWdlCgoyMDA2LTAxLTA0IDIzOjUwOjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHN1Ym1pdHRlZCBieTogQWJlbCBDaGV1bmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHN1Ym1pdHRlZCBieTogQWJlbCBDaGV1bmcKCSAgKiBwby9MSU5HVUFTOgoJICAqIHBvL3poX1RXLnBvOgoJICBBZGRlZCBDaGluZXNlICh0cmFkaXRpb25hbCkgdHJhbnNsYXRpb24KCjIwMDYtMDEtMDQgMTI6NDE6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBTbWFsbCB1cGRhdGVzIHRvIHZhcmlvdXMgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtY2xvY2sueG1sOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXNjaGVkdWxpbmcueG1sOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgU21hbGwgdXBkYXRlcyB0byB2YXJpb3VzIGRvY3MuCgkgIEFkZGVkIGNvcmUgcGx1Z2lucyB0byBkb2NzLgoKMjAwNi0wMS0wMyAxODowODowNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb21tb24vZ3N0LnN1cHA6IGFkZCBhIHN1cHByZXNzaW9uIGZvciBsaWJvaWwncyB1bmluaXRpYWxpemVkIHZhcmlhYmxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbW1vbi9nc3Quc3VwcDoKCSAgYWRkIGEgc3VwcHJlc3Npb24gZm9yIGxpYm9pbCdzIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUKCjIwMDYtMDEtMDIgMjA6MjY6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuaDogQWRkIHByb3RvdHlwZSBmb3IgX2dldF90eXBlKCkgZnVuY3Rpb24gdG8gR1NUX0JPSUxFUlBMQVRFX0ZVTEwgbWFjcm8sIHNvIHRoYXQgZ2NjIGRvZXNuJ3QgY29tcGxhaW4gaWYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyICA8dGltIGF0IGNlbnRyaWN1bGFyIGRvdCBuZXQ+CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFkZCBwcm90b3R5cGUgZm9yIF9nZXRfdHlwZSgpIGZ1bmN0aW9uIHRvIEdTVF9CT0lMRVJQTEFURV9GVUxMCgkgIG1hY3JvLCBzbyB0aGF0IGdjYyBkb2Vzbid0IGNvbXBsYWluIGlmIHRoZSAtV21pc3NpbmctcHJvdG90eXBlcwoJICBjb21waWxlciBzd2l0Y2ggaXMgYmVpbmcgdXNlZCAoIzMyNTQyOSkuCgoyMDA1LTEyLTI5IDE2OjQ3OjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBEaXNhYmxlIGR1cmF0aW9uIHF1ZXJ5IGNhY2hpbmcgaW4gYmlucyB1bnRpbCBpdCBnZXRzIGZpeGVkIChzZWUgIzMyNDgwNykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcXVlcnkpOgoJICBEaXNhYmxlIGR1cmF0aW9uIHF1ZXJ5IGNhY2hpbmcgaW4gYmlucyB1bnRpbCBpdCBnZXRzCgkgIGZpeGVkIChzZWUgIzMyNDgwNykuCgoyMDA1LTEyLTI3IDE4OjA0OjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogSGFuZGxlIHByb3BlcnRpZXMgb2YgUE9JTlRFUiBhbmQgQk9YRUQgdHlwZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKToKCSAgSGFuZGxlIHByb3BlcnRpZXMgb2YgUE9JTlRFUiBhbmQgQk9YRUQgdHlwZS4KCjIwMDUtMTItMjcgMTI6MTE6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IEluaXQgdGFncyBzdHVmZiBhbmQgc29tZSBvdGhlciB0aGluZ3MgYmVmb3JlIGxvYWRpbmcgYW55IHN0YXRpYyBwbHVnaW5zICh0aGVyZSBtYXkgYmUgb3RoZXIgc3RhdGljIHBsdWdpbnMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgSW5pdCB0YWdzIHN0dWZmIGFuZCBzb21lIG90aGVyIHRoaW5ncyBiZWZvcmUgbG9hZGluZwoJICBhbnkgc3RhdGljIHBsdWdpbnMgKHRoZXJlIG1heSBiZSBvdGhlciBzdGF0aWMgcGx1Z2lucwoJICB0aGFuIGp1c3QgdGhlIEdTdHJlYW1lciBvbmVzLCBhbmQgdGhleSBtYXkgd2FudCB0bwoJICByZWdpc3RlciB0aGVpciBvd24gdGFncyBvciBmb3JtYXRzIG9yIHdoYXRldmVyLCBhbmQKCSAgcHJlZmVyYWJseSB3aXRob3V0IHNlZ2ZhdWx0aW5nKS4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSk6CgkgIFByaW50IGF0IGxlYXN0IGEgd2FybmluZyBpbiB0aGUgZGVidWcgbG9ncyBpZiB3ZSBkcm9wIGEKCSAgcXVlcnkganVzdCBiZWNhdXNlIHdlIGRvbid0IGtub3cgaG93IHRvIGFkanVzdCB0aGUgdmFsdWUKCSAgaW4gdGhlIHBhcnRpY3VsYXIgZm9ybWF0LgoKMjAwNS0xMi0yNSAwMzo0NTo0NSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjogUmVwbGFjZW1lbnQgZm9yIGdzdC1jb21wbGV0ZSB3cml0dGVuIGluIHNoIGFuZCBzZWQuICBPbmx5IGNvbXBsZXRlcyBuYW1lcyBvZiBmZWF0dXJlcywgYnUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246CgkgIFJlcGxhY2VtZW50IGZvciBnc3QtY29tcGxldGUgd3JpdHRlbiBpbiBzaCBhbmQgc2VkLiAgT25seQoJICBjb21wbGV0ZXMgbmFtZXMgb2YgZmVhdHVyZXMsIGJ1dCB0aGF0J3MgOTAlIG9mIHdoYXQgSSB3YW50CgkgIGl0IGZvci4gIFByb3BlcnRpZXMgYXJlIG5vdCBhdmFpbGFibGUgaW4gcmVnaXN0cnkueG1sLiAgKE1heWJlCgkgIHRoZXkgc2hvdWxkIGJlLi4uKQoKMjAwNS0xMi0yMyAxODoxNTo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gSEVBRAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBIRUFECgo9PT0gcmVsZWFzZSAwLjEwLjEgPT09CgoyMDA1LTEyLTIzIDE4OjA0OjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHJlbGVhc2luZyAwLjEwLjEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjEwLjEKCjIwMDUtMTItMjMgMTQ6NTM6MTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDUtMTItMjMgMTM6NDU6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMTItMjIgMTQ6NDg6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2ZhcS9jdnMueG1sOiBBZGQgbWlzc2luZyBxdW90ZSwgc2hvdWxkIGJlIG1ha2UgRVJST1JfQ0ZMQUdTPSIiLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9jdnMueG1sOgoJICBBZGQgbWlzc2luZyBxdW90ZSwgc2hvdWxkIGJlIG1ha2UgRVJST1JfQ0ZMQUdTPSIiLgoKMjAwNS0xMi0yMCAxNjowMTowOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcHJlcmVsZWFzaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwcmVyZWxlYXNpbmcKCjIwMDUtMTItMjAgMTI6NTA6NTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OiBNb3JlIGRvY3VtZW50YXRpb24gb24gdHJpY2ttb2Rlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgTW9yZSBkb2N1bWVudGF0aW9uIG9uIHRyaWNrbW9kZXMuCgoyMDA1LTEyLTIwIDExOjEyOjUzICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdGNhcHMuKjogQWRkZWQgZ3BvaW50ZXIgR1R5cGUgZm9yIEdzdFN0YXRpY0NhcHMgc28gd2UgY2FuIHdyYXAgdGhlbSBpbiBiaW5kaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9zdGF0aWNfY2Fwc19nZXRfdHlwZSk6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgQWRkZWQgZ3BvaW50ZXIgR1R5cGUgZm9yIEdzdFN0YXRpY0NhcHMgc28gd2UgY2FuIHdyYXAgdGhlbSBpbiBiaW5kaW5ncy4KCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzogKGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSAgQWRkZWQgZ3BvaW50ZXIgR1R5cGUgZm9yIEdzdFN0YXRpY1BhZFRlbXBsYXRlIHNvIHdlIGNhbiB3cmFwIHRoZW0gaW4KCSAgYmluZGluZ3MuCgoyMDA1LTEyLTE4IDE2OjA0OjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvOiBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfcXVlcnkpLCAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfZG9fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfZG9fc2VlayksIChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19zZW5kX2V2ZW50KSwgKGdzdF9iYXNlX3NyY191cGRhdGVfbGVuZ3RoKSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuaDoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4KCjIwMDUtMTItMTggMTQ6Mjg6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6IFJlbW92ZSBzdXBlcmZsdW91cyBjbG9zaW5nIGJyYWNrZXQgaW4gaGVsbG93b3JsZCBleGFtcGxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkgIFJlbW92ZSBzdXBlcmZsdW91cyBjbG9zaW5nIGJyYWNrZXQgaW4gaGVsbG93b3JsZCBleGFtcGxlLgoKMjAwNS0xMi0xNyAxNDoxOToyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guMS5pbjogVXBkYXRlIGdzdC1sYXVuY2ggbWFuIHBhZ2U7IGFkZCBhIHNlY3Rpb24gd2l0aCB1c2VmdWwgZW52aXJvbm1lbnQgdmFyaWFibGVzLiBGaXhlcyAjMzIzODgyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIFVwZGF0ZSBnc3QtbGF1bmNoIG1hbiBwYWdlOyBhZGQgYSBzZWN0aW9uIHdpdGggdXNlZnVsCgkgIGVudmlyb25tZW50IHZhcmlhYmxlcy4gRml4ZXMgIzMyMzg4Mi4KCjIwMDUtMTItMTYgMjE6NTk6MTIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IGNoYW5nZSBzb21lIGNoYXIqIGludG8gY2hhcltdCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgY2hhbmdlIHNvbWUgY2hhciogaW50byBjaGFyW10KCjIwMDUtMTItMTYgMTk6MjQ6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogQ2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAobG9hZF9mZWF0dXJlKToKCSAgQ2xlYW51cHMuCgkgIERvbid0IHVzZSBnX29iamVjdF91bnJlZiBvbiBHc3RPYmplY3RzIHNvIHRoYXQgd2UgYXZvaWQKCSAgbGVha3Mgb24gdW5zYWZlIGdsaWJzLgoKMjAwNS0xMi0xNiAxODoyMDo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogU21hbGwgZG9jIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcmVjYWxjX3N0YXRlKToKCSAgU21hbGwgZG9jIHVwZGF0ZXMuCgoyMDA1LTEyLTE2IDE4OjEwOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY29tbW9uL2NoZWNrLm1hazogQWRkZWQgbWFrZSBmb3JldmVyIHRhcmdldCBmb3IgY2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbW1vbi9jaGVjay5tYWs6CgkgIEFkZGVkIG1ha2UgZm9yZXZlciB0YXJnZXQgZm9yIGNoZWNrLgoKMjAwNS0xMi0xNiAxNzozNDoxOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0LmM6IG1ha2UgdGhlIHJlZ2lzdHJ5IGNhY2hlIGZpbGUgSE9TVF9DUFUtZGVwZW5kZW50CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgIG1ha2UgdGhlIHJlZ2lzdHJ5IGNhY2hlIGZpbGUgSE9TVF9DUFUtZGVwZW5kZW50CgoyMDA1LTEyLTE2IDE0OjQ0OjQ5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0YnVmZmVyc3RvcmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGJ1ZmZlcnN0b3JlLmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTItMTYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RidWZmZXJzdG9yZS5jCgkgIChnc3RfYnVmZmVyX3N0b3JlX2NsZWFyZWRfZnVuYyk6IFBheSBhdHRlbnRpb24gdG8gZ19saXN0X2FwcGVuZAoJICByZXR1cm4gdmFsdWUuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jCgkgICh0ZXN0X2Zha2Vfb2JqZWN0X25hbWVfdGhyZWFkZWRfdW5pcXVlKTogUGF5IGF0dGVudGlvbiB0bwoJICBnX2xpc3Rfc29ydCByZXR1cm4gdmFsdWUuCgoyMDA1LTEyLTE2IDExOjUyOjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWZlZWRiYWNrLW0ubTogVXBkYXRlIGZvciAwLjkvMC4xMCAoZml4ZXMgIzMyMzg3MCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1mZWVkYmFjay1tLm06CgkgIFVwZGF0ZSBmb3IgMC45LzAuMTAgKGZpeGVzICMzMjM4NzApLgoKMjAwNS0xMi0xNSAxMjoyMjozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IEZpeCBsY29weSBmb3IgbWluaSBvYmplY3RzLCB0aGUgbWluaSBvYmplY3QgbmVlZHMgdG8gYmUgcmVmJ2VkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X3ZhbHVlX21pbmlfb2JqZWN0X2xjb3B5KToKCSAgRml4IGxjb3B5IGZvciBtaW5pIG9iamVjdHMsIHRoZSBtaW5pIG9iamVjdCBuZWVkcyB0byBiZSByZWYnZWQuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzogKG15X2Zvb19pbml0KSwKCSAgKG15X2Zvb19nZXRfcHJvcGVydHkpLCAobXlfZm9vX3NldF9wcm9wZXJ0eSksIChteV9mb29fY2xhc3NfaW5pdCksCgkgICh0ZXN0X3ZhbHVlX2NvbGxlY3Rpb24pLCAoZ3N0X21pbmlfb2JqZWN0X3N1aXRlKToKCSAgQWRkIHRlc3QgdG8gZW5zdXJlIHJlZmNvdW50cyBlbmQgdXAgYXMgZXhwZWN0ZWQgd2hlbiBwYXNzaW5nCgkgIEdzdE1pbmlPYmplY3RzIHRocm91Z2ggZ19vYmplY3RfZ2V0KCkgYW5kIGdfb2JqZWN0X3NldCgpLgoKMjAwNS0xMi0xNCAxNzowODozNiArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IFJlZmFjdG9yaW5nIG9mIGNvbGxlY3RwYWRzLiBUaGlzIHZlcnNpb24gcmVtb3ZlcyBhIGxvdCBvZiByYWNlcyB3aXRob3V0IHRvdWNoaW5nIEFQSS8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTItMTQgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2Jhc2VfaW5pdCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3JlbW92ZV9wYWQpLCAoZ3N0X2NvbGxlY3RfcGFkc19pc19jb2xsZWN0ZWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCksIChnc3RfY29sbGVjdF9wYWRzX2NoYWluKTogUmVmYWN0b3JpbmcKCSAgb2YgY29sbGVjdHBhZHMuIFRoaXMgdmVyc2lvbiByZW1vdmVzIGEgbG90IG9mIHJhY2VzIHdpdGhvdXQKCSAgdG91Y2hpbmcgQVBJL0FCSS4gWWF5ICEKCjIwMDUtMTItMTQgMTA6MDk6MzUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBEb24ndCBhbGxvdyBhY3RpdmF0aW9uIG9mIGEgc3JjcGFkIGluIHB1bGxfcmFuZ2UgaWYgaXQgaGFzIG5vIGdldHJhbmdlIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FjdGl2YXRlX3B1bGwpLCAoZ3N0X3BhZF9saW5rX3ByZXBhcmUpOgoJICBEb24ndCBhbGxvdyBhY3RpdmF0aW9uIG9mIGEgc3JjcGFkIGluIHB1bGxfcmFuZ2UgaWYgaXQgaGFzIG5vCgkgIGdldHJhbmdlIGZ1bmN0aW9uLgoJICBDaGFuZ2Ugc29tZSBkZWJ1ZyBzdGF0ZW1lbnRzIHRvIGJlIGEgbGl0dGxlIGNsZWFyZXIKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9oYW5kbGVfc3JjX3F1ZXJ5KToKCSAgQ2hlY2sgdGhhdCB3ZSBoYXZlIGEgcGVlciBiZWZvcmUgZXhlY3V0aW5nIHF1ZXJpZXMgdGhlcmV1cG9uLgoJICAqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzogKG1lc3NhZ2VfbG9vcCk6CgkgIFVzZSBnc3RfYnVzX3BvcCBpbnN0ZWFkIG9mIGdzdF9idXNfcG9sbCB3aGVuIHdlIGp1c3Qgd2FudCBpdCB0bwoJICBpbW1lZGlhdGVseSByZXR1cm4gdXMgYW55IGF2YWlsYWJsZSBtZXNzYWdlIHdpdGggMCB0aW1lb3V0LgoKMjAwNS0xMi0xMiAxOTowOTo0OSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOiBEb24ndCB1bnJlZiBmYWN0b3JpZXMgYWZ0ZXIgY2FsbGluZyB0aGVtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6IChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfY2FsbF9mdW5jdGlvbik6CgkgIERvbid0IHVucmVmIGZhY3RvcmllcyBhZnRlciBjYWxsaW5nIHRoZW0uCgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoZ3N0X3R5cGVfZmluZF9oZWxwZXIpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pOgoJICBGcmVlIGxpc3RzIG9mIGZhY3RvcmllcyBhZnRlciB1c2luZyB0aGVtLiBGaXhpbmcgdHlwZWZpbmRpbmcgbWVtb3J5CgkgIGxlYWtzLgoKMjAwNS0xMi0xMiAxODoxMjoxMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogbW9yZSBtZWFuaW5nZnVsIGRlYnVnIG91dHB1dAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiAoZ3N0X3BsdWdpbl9mZWF0dXJlX2ZpbmFsaXplKSwKCSAgKGdzdF9wbHVnaW5fZmVhdHVyZV9sb2FkKToKCSAgbW9yZSBtZWFuaW5nZnVsIGRlYnVnIG91dHB1dAoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgIG1ha2UgbWFrZSBkaXN0Y2hlY2sgaGFwcHkgYWdhaW4KCjIwMDUtMTItMTIgMTc6Mzc6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICByZW1vdmUgYWxsIHRlc3RzL29sZCBNYWtlZmlsZXMgZnJvbSB0aGUgYnVpbGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBhbGwgdGVzdHMvb2xkIE1ha2VmaWxlcyBmcm9tIHRoZSBidWlsZAoKMjAwNS0xMi0xMiAxNzowOTowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IENhdGNoIHRoZSBzcGVjaWFsIGNhc2Ugd2hlcmUgd2UgYXJlIG9wZXJhdGluZyBjaGFpbi1iYXNlZCwgYnV0IHRoZSBkb3duc3RyZWFtIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAoc3RvcF90eXBlZmluZGluZyk6CgkgIENhdGNoIHRoZSBzcGVjaWFsIGNhc2Ugd2hlcmUgd2UgYXJlIG9wZXJhdGluZyBjaGFpbi1iYXNlZCwKCSAgYnV0IHRoZSBkb3duc3RyZWFtIHBlZXIgcGFkIGhhcyBubyBjaGFpbiBmdW5jdGlvbi4gRW1pdCBhCgkgIGN1c3RvbSBlcnJvciBtZXNzYWdlIGluIHRoaXMgY2FzZSBpbnN0ZWFkIG9mIGxldHRpbmcgdGhlCgkgIGNvcmUgZ2VuZXJhdGUgb25lIGltcGx5aW5nIHRoYXQgdGhpcyBpcyBzb21lIHNvcnQgb2YgY29yZQoJICBidWcuIEl0J3Mgbm90LCBpdCBqdXN0IG1lYW5zIHRoYXQgd2hhdGV2ZXIgZ290IHBsdWdnZWQKCSAgaW50byB0aGUgcGlwZWxpbmUgZG93bnN0cmVhbSB3aGVuIHdlIGFubm91bmNlZCB0aGUgdHlwZQoJICBjYW4gb25seSBvcGVyYXRlIHB1bGwtYmFzZWQsIHdoaWxlIG91ciBzb3VyY2UgY2FuIG9ubHkKCSAgb3BlcmF0ZSBwdXNoLWJhc2VkIChlLmcuIGh0dHA6Ly9mb28vYmFyLm1vdiAhIHF0ZGVtdXggISAuLi4pCgkgIEVycm9yIHN0cmluZyBoYXMgbm90IGJlZW4gbWFya2VkIGZvciB0cmFuc2xhdGlvbiB5ZXQsIGFzCgkgIGl0IHByb2JhYmx5IG5lZWRzIHNvbWUgbW9yZSB3b3JrIGZpcnN0LgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2dldF9iZXN0X3Bvc3NpYmlsaXR5KToKCSAgQWRkIGhlbHBlciBmdW5jdGlvbiB0byBmaW5kIHRoZSBiZXN0IG9mIGFsbCBhdmFpbGFibGUKCSAgZm91bmQgcG9zc2liaWxpdGllcyB0aGF0IHF1YWxpZnkgZ2l2ZW4gdGhlIG1pbi4gdGhyZXNob2xkLgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCk6CgkgIEZpeCB0aGUgY2FzZSB3aGVyZSB3ZSBnZXQgYW4gRU9TIHdoaWxlIHN0aWxsIGluIFRZUEVGSU5ECgkgIG1vZGUgKHdlIHdhbnQgdG8gY2hvc2UgdGhlIGJlc3Qgb2YgYWxsIHBvc3NpYmxlIHR5cGVzLAoJICBub3QganVzdCB0aGUgZmlyc3QgdHlwZSB0aGF0IGhhcHBlbnMgdG8gYmUgaW4gb3VyIHVuc29ydGVkCgkgIGxpc3Qgb2YgcG9zc2libGUgdHlwZXMpLgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKToKCSAgTWFrZSBzdXJlIHdlIHJldHVybiBHU1RfRkxPV19FUlJPUiB3aGVuIHdlIGVycm9yZWQgb3V0CgkgIGluIHN0b3BfdHlwZWZpbmRpbmcoKTsgYWxzbywgZG9uJ3QganVzdCBmaW5kIHRoZSBiZXN0IG9mCgkgIGFsbCBmb3VuZCB0eXBlIGVudHJpZXMgYW5kIHRoZW4gdXNlIHRoZSBsYXN0IGV4YW1pbmVkCgkgIHR5cGUgZW50cnksIGJ1dCBhY3R1YWxseSB1c2UgdGhlIGJlc3QgZW50cnkuCgoyMDA1LTEyLTEyIDE3OjA3OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvZXhhbXBsZXMvOiBNb3JlIGdjYzQgZml4ZXMgYW5kIGEgbWVtIGxlYWsgZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy90eXBlZmluZC90eXBlZmluZC5jOiAodHlwZV9mb3VuZCk6CgkgICogdGVzdHMvZXhhbXBsZXMveG1sL3J1bnhtbC5jOiAoeG1sX2xvYWRlZCk6CgkgIE1vcmUgZ2NjNCBmaXhlcyBhbmQgYSBtZW0gbGVhayBmaXguCgoyMDA1LTEyLTEyIDE2OjIwOjQ3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy94bWwvcnVueG1sLmM6CgkgIG1vcmUgZ2NjIDQgd2FybmluZyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSBnY2MgNCB3YXJuaW5nIGZpeGVzCgoyMDA1LTEyLTEyIDE2OjA0OjQ1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy94bWwvY3JlYXRleG1sLmM6CgkgIGFub3RoZXIgZ2NjNCBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFub3RoZXIgZ2NjNCBmaXgKCjIwMDUtMTItMTIgMTU6NTk6NDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2V4YW1wbGVzL3htbC9jcmVhdGV4bWwuYzogZ2NjIDQgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMveG1sL2NyZWF0ZXhtbC5jOiAob2JqZWN0X3NhdmVkKToKCSAgZ2NjIDQgZml4ZXMKCjIwMDUtMTItMTIgMTU6NDY6MTYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL01ha2VmaWxlLmFtOiBlbmFibGUgdGhlIGV4YW1wbGVzIGV2ZW4gbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSAgZW5hYmxlIHRoZSBleGFtcGxlcyBldmVuIG1vcmUKCjIwMDUtMTItMTIgMTU6MDI6MDIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYyAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2NsYXNzX2luaXQsIGdzdF9uZXRfdGltZV9wcm92aWRlcl9pbml0KSAoZ3N0X25ldF90aW1lX3Byb3ZpZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMi0xMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmMKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9jbGFzc19pbml0LCBnc3RfbmV0X3RpbWVfcHJvdmlkZXJfaW5pdCkKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9zZXRfcHJvcGVydHkpCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfZ2V0X3Byb3BlcnR5KTogRXhwb3J0ICJhY3RpdmUiIGFzIGEgR09iamVjdAoJICBwcm9wZXJ0eS4KCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl90aHJlYWQpOiBPbmx5IHJlc3BvbmQgdG8gdGltZSBxdWVyaWVzIGlmCgkgIHRoZSB0aW1lIHByb3ZpZGVyIGlzIGFjdGl2ZS4KCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6IEFkZCBhbiAiYWN0aXZlIiBib29sZWFuIHRvCgkgIE5ldFRpbWVQcm92aWRlciwgcHJlc2VydmluZyBiaW5hcnkgY29tcGF0LgoKMjAwNS0xMi0xMiAxNDo0NjowNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvZXhhbXBsZXMvOiBjb252ZXJ0IGNvbW1lbnRzIGFnYWluCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOiAobWFpbik6CgkgICogdGVzdHMvZXhhbXBsZXMvbGF1bmNoL01ha2VmaWxlLmFtOgoJICBjb252ZXJ0IGNvbW1lbnRzIGFnYWluCgoyMDA1LTEyLTEyIDE0OjQzOjU3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6IEZpeCB0eXBvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSAgRml4IHR5cG8uCgoyMDA1LTEyLTEyIDE0OjQyOjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBGb3Jnb3QgdGhlIENoYW5nZWxvZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRm9yZ290IHRoZSBDaGFuZ2Vsb2cuLi4KCjIwMDUtMTItMTIgMTQ6NDE6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBBZGRlZCBuZXcgc3ltYm9sIHRvIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIEFkZGVkIG5ldyBzeW1ib2wgdG8gZG9jcy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19pbml0KSwgKGdzdF9iYXNlX3NyY19zZXRfZm9ybWF0KSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X3F1ZXJ5KSwgKGdzdF9iYXNlX3NyY19xdWVyeSksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9kb19zZWVrKSwgKGdzdF9iYXNlX3NyY19kb19zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspLCAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfZXZlbnQpLCAoZ3N0X2Jhc2Vfc3JjX2V2ZW50X2hhbmRsZXIpLAoJICAoZ3N0X2Jhc2Vfc3JjX3NldF9wcm9wZXJ0eSksIChnc3RfYmFzZV9zcmNfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3NyY193YWl0KSwgKGdzdF9iYXNlX3NyY19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NyY191cGRhdGVfbGVuZ3RoKSwgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX2NoZWNrX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfbG9vcCksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZWdvdGlhdGUpLCAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KSwKCSAgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBJbXBsZW1lbnQgc2Vla2luZyB0byBvdGhlciBmb3JtYXRzIHRoYW4gX0JZVEVTLgoJICBJbXBsZW1lbnQgbW9yZSBzZWVraW5nIG1ldGhvZHMgY29ycmVjdGx5LgoJICBEb2MgdXBkYXRlcy4KCSAgQWRkZWQgcXVlcnkgdm1ldGhvZC4KCSAgQWRkZWQgZG9fc2VlayB2bWV0aG9kIHRvIG1ha2UgbGlmZSBlYXNpZXIgZm9yIHN1YmNsYXNzZXMKCSAgd2hlbiBzZWVraW5nLgoJICBBUEkgYWRkaXRpb246IGdzdF9iYXNlX3NyY19zZXRfZm9ybWF0KCkKCjIwMDUtMTItMTIgMTQ6MDg6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOiBhZGRlZCB0aGF0IHRvbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgYWRkZWQgdGhhdCB0b28KCjIwMDUtMTItMTIgMTQ6MDI6MTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGFwcGxpZWQgc29tZSBzaW1wbGUgZml4aW5nIHRvIHNvbWUgZXhhbXBsZXMgcmUtZW5hYmxlZCB0aGUgd29ya2luZyBleGFtcGxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9tZWRpYS1kZXZpY2UtZGFlbW9uLnR4dDoKCSAgKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzogKG1haW4pOgoJICAqIHRlc3RzL2V4YW1wbGVzL2hlbGxvd29ybGQvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2V4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOiAoZXZlbnRfbG9vcCksIChtYWluKToKCSAgKiB0ZXN0cy9leGFtcGxlcy9sYXVuY2gvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9leGFtcGxlcy9sYXVuY2gvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMvbGF1bmNoL21wM3BhcnNlbGF1bmNoLmM6IChldmVudF9sb29wKSwgKG1haW4pOgoJICAqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOiAobWVzc2FnZV9sb29wKSwKCSAgKG1ha2VfcGlwZWxpbmUpLCAocHJpbnRfdGFnKSwgKG1haW4pOgoJICAqIHRlc3RzL2V4YW1wbGVzL3F1ZXVlLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvZXhhbXBsZXMvcXVldWUvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMvcXVldWUvcXVldWUuYzogKGV2ZW50X2xvb3ApLCAobWFpbik6CgkgICogdGVzdHMvZXhhbXBsZXMvdHlwZWZpbmQvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9leGFtcGxlcy90eXBlZmluZC9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9leGFtcGxlcy90eXBlZmluZC90eXBlZmluZC5jOiAodHlwZV9mb3VuZCksIChldmVudF9sb29wKSwKCSAgKG1haW4pOgoJICAqIHRlc3RzL2V4YW1wbGVzL3htbC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2V4YW1wbGVzL3htbC9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9leGFtcGxlcy94bWwvY3JlYXRleG1sLmM6IChvYmplY3Rfc2F2ZWQpLCAobWFpbik6CgkgICogdGVzdHMvZXhhbXBsZXMveG1sL3J1bnhtbC5jOiAoeG1sX2xvYWRlZCksIChldmVudF9sb29wKSwgKG1haW4pOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvVE9ETzoKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY29udHJvbGxlci8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvaGVsbG93b3JsZC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9oZWxsb3dvcmxkL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzoKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbGF1bmNoLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL2xhdW5jaC9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbGF1bmNoL21wM3BhcnNlbGF1bmNoLmM6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL2xhdW5jaC9tcDNwbGF5OgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL21ldGFkYXRhL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL3F1ZXVlLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL3F1ZXVlL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9xdWV1ZS9xdWV1ZS5jOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy90eXBlZmluZC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy90eXBlZmluZC9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvdHlwZWZpbmQvdHlwZWZpbmQuYzoKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMveG1sLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL3htbC9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMveG1sL2NyZWF0ZXhtbC5jOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy94bWwvcnVueG1sLmM6CgkgIGFwcGxpZWQgc29tZSBzaW1wbGUgZml4aW5nIHRvIHNvbWUgZXhhbXBsZXMKCSAgcmUtZW5hYmxlZCB0aGUgd29ya2luZyBleGFtcGxlcwoKMjAwNS0xMi0xMiAxMjo0ODozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IEFkZGVkIG1vcmUgZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X2luaXQpLAoJICAoZ3N0X3NlZ21lbnRfc2V0X2xhc3Rfc3RvcCksIChnc3Rfc2VnbWVudF9zZXRfc2VlayksCgkgIChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudCksIChnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSksCgkgIChnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUpOgoJICBBZGRlZCBtb3JlIGRvY3VtZW50YXRpb24uCgkgIE1ha2Ugc3VyZSB0aGUgbGFzdF9wb3MgdmFsdWUgaXMgdXBkYXRlZCBwcm9wZXJseS4KCSAgTWFrZSBzdXJlIHRvX3N0cmVhbV90aW1lIGFuZCB0b19ydW5uaW5nX3RpbWUgZG9uJ3QKCSAgb3BlcmF0ZSBvbiB3cm9uZyB2YWx1ZXMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVXBkYXRlIGNoZWNrLgoKMjAwNS0xMi0xMiAxMjozMjowNCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogTm93IHRoYXQgd2UncmUgbm90IGxlYWtpbmcgZmFjdG9yaWVzLCBtYWtlIHN1cmUgd2Uga2VlcCByZWZlcmVuY2VzIHRvIHRoZW0gd2hpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChmcmVlX2VudHJ5KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbik6CgkgIE5vdyB0aGF0IHdlJ3JlIG5vdCBsZWFraW5nIGZhY3RvcmllcywgbWFrZSBzdXJlIHdlIGtlZXAgcmVmZXJlbmNlcwoJICB0byB0aGVtIHdoaWxlIHdlIG5lZWQgdGhlbS4KCjIwMDUtMTItMTIgMTE6NDA6MTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6IGlmZGVmIG91dCB0aGUgWE1MIHN0cnVjdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkgIGlmZGVmIG91dCB0aGUgWE1MIHN0cnVjdHMKCjIwMDUtMTItMTIgMTA6NTk6MTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IGZsb29yIGlzIG5vdCBuZWVkZWQsIEYgaXMgYWx3YXlzIHBvc2l0aXZlOyB0aGlzIG9idmlhdGVzIHRoZSBuZWVkIGZvciBhZGRpbmcgLWxtIHdoZW4gYnVpbGRpbmcgd2l0aG91Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3RyYW5zZm9ybV9kb3VibGVfZnJhY3Rpb24pOgoJICBmbG9vciBpcyBub3QgbmVlZGVkLCBGIGlzIGFsd2F5cyBwb3NpdGl2ZTsgdGhpcyBvYnZpYXRlcyB0aGUKCSAgbmVlZCBmb3IgYWRkaW5nIC1sbSB3aGVuIGJ1aWxkaW5nIHdpdGhvdXQgbGlieG1sCgoyMDA1LTEyLTEyIDEwOjU3OjM3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL2FzcGVjdHJhdGlvOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkgIGFkZCBhIDsgYW5kIGFuIGV4YW1wbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhIDsgYW5kIGFuIGV4YW1wbGUKCjIwMDUtMTItMTIgMTA6MTY6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFRha2UgY3VycmVudCBwbGF5YmFjayByYXRlIGludG8gYWNjb3VudCB3aGVuIHJlcG9ydGluZyB0aGUgcG9zaXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgVGFrZSBjdXJyZW50IHBsYXliYWNrIHJhdGUgaW50byBhY2NvdW50IHdoZW4gcmVwb3J0aW5nCgkgIHRoZSBwb3NpdGlvbi4KCjIwMDUtMTItMTEgMTk6MzU6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9taW1lLXdvcmxkLmZpZzogTGV0J3MgdHJ5IHRoaXMgYWdhaW4sIHRoaXMgdGltZSB3aXRoIGEgZmlsZSB0aGF0IGlzIGFjdHVhbGx5IGluIFhGaWcgZm9ybWF0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9taW1lLXdvcmxkLmZpZzoKCSAgTGV0J3MgdHJ5IHRoaXMgYWdhaW4sIHRoaXMgdGltZSB3aXRoIGEgZmlsZSB0aGF0IGlzCgkgIGFjdHVhbGx5IGluIFhGaWcgZm9ybWF0LgoKMjAwNS0xMi0xMSAxOToxOTowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL21pbWUtd29ybGQuZmlnOiBBZGQgYXVkaW9jb252ZXJ0IGVsZW1lbnQgdG8gZGlhZ3JhbSBzbyB0aGF0IGl0IG1hdGNoZXMgdGhlIHRleHQgYW5kIHRoZSBjb2RlIChmaXhlcyAjMzE5NS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9taW1lLXdvcmxkLmZpZzoKCSAgQWRkIGF1ZGlvY29udmVydCBlbGVtZW50IHRvIGRpYWdyYW0gc28gdGhhdCBpdAoJICBtYXRjaGVzIHRoZSB0ZXh0IGFuZCB0aGUgY29kZSAoZml4ZXMgIzMxOTUyNikuCgoyMDA1LTEyLTExIDE4OjI0OjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wd2cvOiBVcGRhdGUgc3RhdGUgY2hhbmdlIHN0dWZmIGZvciAwLjEwIChmaXhlcyAjMzIyOTY5KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctY2hhaW5mbi54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctcGFkcy54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctc3RhdGUueG1sOgoJICAqIGRvY3MvcHdnL290aGVyLXNvdXJjZS54bWw6CgkgIFVwZGF0ZSBzdGF0ZSBjaGFuZ2Ugc3R1ZmYgZm9yIDAuMTAgKGZpeGVzICMzMjI5NjkpLgoKMjAwNS0xMi0xMSAxNzo0OToxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsLzogVXBkYXRlIGZvciAwLjEwOiBzLzAuOS8wLjEwLzsgcy9hdWRpb3NjYWxlL2F1ZGlvcnNhbXBsZS87IGFkZCBjb252ZXJ0ZXJzIGluIGZyb250IG9mIHBpcGVsaW5lczsgcmVtb3ZlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1jaGVja2xpc3QueG1sOgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXByb2dyYW1zLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgICogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOgoJICAqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgIFVwZGF0ZSBmb3IgMC4xMDogcy8wLjkvMC4xMC87IHMvYXVkaW9zY2FsZS9hdWRpb3JzYW1wbGUvOwoJICBhZGQgY29udmVydGVycyBpbiBmcm9udCBvZiBwaXBlbGluZXM7IHJlbW92ZSBjdXJseQoJICBicmFja2V0cyBmb3IgdGhyZWFkcyBzdHVmZiwgdGhleSBubyBsb25nZXIgZXhpc3Q7IHVzZQoJICBHU1RfVFlQRV9GUkFDVElPTiBmb3IgZnJhbWVyYXRlczsgdXBkYXRlIHNvbWUgcGllY2VzIG9mCgkgIGNvZGUgdG8gMC4xMCwgYnV0IHRoZXJlJ3MgcGxlbnR5IG1vcmUgdG8gZG8uCgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgIEV4cGFuZCBvbiBhc3luY2hyb25lb3VzIHN0YXRlIGNoYW5nZXM7IHMvMC45LzAuMTAvOwoJICBtZW50aW9uIGRpc2FwcGVhcmFuY2Ugb2YgZ3N0X2luaXRfZ2V0X3BvcHRfdGFibGUoKQoJICAoZml4ZXMgIzMyMjkxNikuCgoyMDA1LTEyLTExIDExOjUzOjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9mYXEvdXNpbmcueG1sOiBTcGlkZXIgbm8gbG9uZ2VyIGV4aXN0cywgYW5kIG5laXRoZXIgZG9lcyBnc3QtbGF1bmNoLWV4dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvdXNpbmcueG1sOgoJICBTcGlkZXIgbm8gbG9uZ2VyIGV4aXN0cywgYW5kIG5laXRoZXIgZG9lcyBnc3QtbGF1bmNoLWV4dC4KCSAgVXBkYXRlIGV4YW1wbGVzIHRvIHVzZSBkZWNvZGViaW4gYW5kIHBsYXliaW4gYW5kIHB1dAoJICBjb252ZXJ0ZXJzIGluIGZyb250IG9mIHNpbmtzIChmaXhlcyAjMzIzNzI2KS4KCjIwMDUtMTItMDkgMTc6MjY6MzEgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IEZpeCBsZWFraW5nIGVsZW1lbnQgZmFjdG9yaWVzIGluIHR5cGVmaW5kaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAoZmluZF9wZWVrKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbik6CgkgIEZpeCBsZWFraW5nIGVsZW1lbnQgZmFjdG9yaWVzIGluIHR5cGVmaW5kaW5nLgoJICBGaXggcHJvYmxlbSB3aGVyZSB3ZSBmb3Jnb3QgYWJvdXQgYSBwcm9iYWJsZSB0eXBlIG9uIG5vbi1zZWVrYWJsZQoJICBmaWxlcywgYW5kIHRodXMgbGF0ZXIgbWlzLXR5cGVmb3VuZCBpdC4KCjIwMDUtMTItMDkgMTU6MDk6NDIgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIFJlbW92ZSBtYWtlY29udGV4dCBzdHVmZjsgbm90IHVzZWQgaW4gMC4xMCBhbmQgY2F1c2VzIHByb2JsZW1zIG9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbW1vbi9tNC9nc3QtbWFrZWNvbnRleHQubTQ6CgkgICogY29tbW9uL200L2dzdC1tY3NjLm00OgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBSZW1vdmUgbWFrZWNvbnRleHQgc3R1ZmY7IG5vdCB1c2VkIGluIDAuMTAgYW5kIGNhdXNlcyBwcm9ibGVtcyBvbgoJICBIUFVYIGFjY29yZGluZyB0byBidWcgIzMyMjQ0MQoKMjAwNS0xMi0wNyAxOTowMzo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrLzogQWRkZWQgQUJJIGNoZWNrIGZvciBsaWJzLCB0aGlzIHRpbWUgZm9yIHJlYWwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RhYmlfc3VpdGUpLAoJICAobWFpbik6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaTM4Ni5oOgoJICBBZGRlZCBBQkkgY2hlY2sgZm9yIGxpYnMsIHRoaXMgdGltZSBmb3IgcmVhbAoKMjAwNS0xMi0wNyAxOTowMzowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrLzogQWRkZWQgQUJJIGNoZWNrIGZvciBsaWJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0YWJpX3N1aXRlKSwKCSAgKG1haW4pOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2kzODYuaDoKCSAgQWRkZWQgQUJJIGNoZWNrIGZvciBsaWJzCgoyMDA1LTEyLTA3IDE3OjU5OjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06IEFuZCBhZGQgdGhlIHN0cnVjdF9pMzg2LmggdG8gZGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIEFuZCBhZGQgdGhlIHN0cnVjdF9pMzg2LmggdG8gZGlzdC4KCjIwMDUtMTItMDcgMTc6MzY6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay86IEFkZGVkIGNoZWNrIGZvciBBQkkgY29tcGF0aWJpbGl0eS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0YWJpX3N1aXRlKSwKCSAgKG1haW4pOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOgoJICBBZGRlZCBjaGVjayBmb3IgQUJJIGNvbXBhdGliaWxpdHkuCgoyMDA1LTEyLTA3IDE1OjMzOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IEZpeCBicm9rZW4gc3luYyBvcHRpb24sIGZpeGVzICMzMjMyNTkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmFrZV9zcmNfZ2V0X3RpbWVzKSwgKGdzdF9mYWtlX3NyY19jcmVhdGUpOgoJICBGaXggYnJva2VuIHN5bmMgb3B0aW9uLCBmaXhlcyAjMzIzMjU5CgoyMDA1LTEyLTA3IDE1OjE2OjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBTbWFsbCBkb2NzIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICBTbWFsbCBkb2NzIHVwZGF0ZS4KCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfaXNfZXF1YWwpOgoJICBEb24ndCBhc3NlcnQgb24gTlVMTCA8LS0+IFguIEZpeGVzICMzMjMyNjAKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X21pbmlfb2JqZWN0X3JlcGxhY2UpOgoJICBJZiB3ZSdyZSBkb2luZyBhdG9taWMgb3BlcmF0aW9ucywgd2UgbWlnaHQganVzdCBhcyB3ZWxsIHVzZQoJICB0aGUgcHJvcGVyIHdheSB0byBnZXQgYW4gYXRvbWljIHBvaW50ZXIuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBDbGVhbiB1cCBkZWJ1Z2dpbmcuCgoyMDA1LTEyLTA3IDExOjUyOjA1ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvcGFyc2UvZ3JhbW1hci55OiBSZW1vdmUgaGFuZGxpbmcgb2YgeyB9IGZvciB0aHJlYWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBSZW1vdmUgaGFuZGxpbmcgb2YgeyB9IGZvciB0aHJlYWRzLgoKMjAwNS0xMi0wNiAyMzozMjowMSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogc3BlbGluZyBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBzcGVsaW5nIGZpeC4KCjIwMDUtMTItMDYgMTk6Mjk6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSogZG9jcy9yYW5kb20vb21lZ2EvdGVzdGluZy9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY3V0dGVyL2N1dHRlci5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWl4ZXIvbWl4ZXIuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3htbC9ydW54bWwuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL25vcm1hbGlzYXRpb24uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kZWJ1Zy9nbG9iYWwuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wYXJzZS9wYXJzZTEuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSogd2luMzIvY29tbW9uL2RpcmVudC5jOgoJICBleHBhbmQgdGFicwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZXhwYW5kIHRhYnMKCjIwMDUtMTItMDYgMTk6MDQ6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBiYWNrIHRvIGN2cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBjdnMKCjIwMDUtMTItMDUgMTg6MTM6MDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIEhFQUQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gSEVBRAoKPT09IHJlbGVhc2UgMC4xMC4wID09PQoKMjAwNS0xMi0wNSAxODowNTowMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICByZWxlYXNpbmcgMC4xMC4wCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC4xMC4wCgoyMDA1LTEyLTA1IDE1OjU3OjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA1LTEyLTA1IDE0OjM2OjA1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvLzogYWRkZWQgQ2hpbmVzZSAoVHJhZGl0aW9uYWwpIHRyYW5zbGF0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzdWJtaXR0ZWQgYnk6IEZ1bmRhIFdhbmcgPGZ1bmRhd2FuZ0BsaW51eC5uZXQuY24+CgkgICogcG8vTElOR1VBUzoKCSAgKiBwby96aF9DTi5wbzoKCSAgYWRkZWQgQ2hpbmVzZSAoVHJhZGl0aW9uYWwpIHRyYW5zbGF0aW9uCgoyMDA1LTEyLTA1IDE0OjE0OjM5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2FmLnBvOgoJICB1cGRhdGVkIEFmcmlrYWFucyB0cmFuc2xhdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlZCBBZnJpa2FhbnMgdHJhbnNsYXRpb24KCjIwMDUtMTItMDUgMTQ6MTQ6MDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHBhZC5oOgoJICByZW1vdmUgZGVwcmVjYXRpb24gZ3VhcmQgZnJvbSBkb2NzdHJpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBkZXByZWNhdGlvbiBndWFyZCBmcm9tIGRvY3N0cmluZwoKMjAwNS0xMi0wNSAxMzoxMDo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICB1cGRhdGUgdHJhbnNsYXRpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDA1LTEyLTA1IDEzOjA2OjM3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vdGhvbWFzdnMvVE9ETzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBmaXggZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGRvY3MKCjIwMDUtMTItMDUgMTM6MDE6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW1AZmx1ZW5kby5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTItMDUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgIHBhdGNoIGJ5OiBXaW0gVGF5bWFucyA8d2ltQGZsdWVuZG8uY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmKQoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jIChnc3RfcXVldWVfYnVmZmVyYWxsb2MpOiBDYWxsCgkgIGFsbG9jX2J1ZmZlcl9hbmRfc2V0X2NhcHMuCgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2FsbG9jX2J1ZmZlcik6IENoYW5nZWQgdG8gbm90IGNhbGwKCSAgc2V0X2NhcHMgb24gdGhlIHNvdXJjZSBwYWQuCgkgIChnc3RfcGFkX2FsbG9jX2J1ZmZlcl9hbmRfc2V0X2NhcHMpOiBOZXcgZnVuY3Rpb24sIGRvZXMgd2hhdAoJICBhbGxvY19idWZmZXIgdXNlZCB0byBkby4gRml4ZXMgIzMyMjg3NC4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDogVXBkYXRlIGZvciB0aGUgYWxsb2NfYnVmZmVyCgkgIGNoYW5nZXMuCgoyMDA1LTEyLTA1IDEyOjMzOjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICByZWFsbHkgYWRkIHRoZSB0ZXN0cyBmb3IgdGhlIDY0L2RvdWJsZSBjb252ZXJzaW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWFsbHkgYWRkIHRoZSB0ZXN0cyBmb3IgdGhlIDY0L2RvdWJsZSBjb252ZXJzaW9uCgoyMDA1LTEyLTA1IDEyOjA5OjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgYWRkIGRlZiBmb3IgY29udHJvbGxlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGRlZiBmb3IgY29udHJvbGxlcgoKMjAwNS0xMi0wNSAxMjowOTowMSArMDAwMCAgU2ViYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi86IHdpbjMyIGJ1aWxkIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogU2ViYXN0aWVuIE1vdXR0ZQoJICAqIHdpbjMyL01BTklGRVNUOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgKiB3aW4zMi92czYvbGliZ3N0Y29udHJvbGxlci5kc3A6CgkgIHdpbjMyIGJ1aWxkIGZpeGVzCgoyMDA1LTEyLTA1IDEwOjU5OjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQmFjayBvdXQgcHJldmlvdXMgY29kZSBjaGFuZ2VzLCBsZWF2ZSBkb2MgdXBkYXRlcywgZmlsZSBidWdzIGluc3RlYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19pc19lcXVhbCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmFrZV9zcmNfY3JlYXRlKToKCSAgQmFjayBvdXQgcHJldmlvdXMgY29kZSBjaGFuZ2VzLCBsZWF2ZSBkb2MgdXBkYXRlcywgZmlsZSBidWdzCgkgIGluc3RlYWQuCgoyMDA1LTEyLTA1IDEwOjI3OjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLio6IEZpeCBicm9rZW4gc3luYyBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9mYWtlX3NyY19nZXRfdGltZXMpLCAoZ3N0X2Zha2Vfc3JjX2NyZWF0ZSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkgIEZpeCBicm9rZW4gc3luYyBjb2RlLgoKMjAwNS0xMi0wNSAxMDoyMjo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IENvbXBhcmluZyBOVUxMIGFnYWluc3QgIU5VTEwgeWllbGRzIGRpZmZlcmVudCBjYXBzLCBub3QgYSBmYWlsdXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfaXNfZXF1YWwpOgoJICBDb21wYXJpbmcgTlVMTCBhZ2FpbnN0ICFOVUxMIHlpZWxkcyBkaWZmZXJlbnQgY2Fwcywgbm90IGEKCSAgZmFpbHVyZS4KCjIwMDUtMTItMDUgMTA6MTg6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogRml4IHNtYWxsIHR5cG8gaW4gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIEZpeCBzbWFsbCB0eXBvIGluIGRvY3MuCgoyMDA1LTEyLTA1IDA5OjUzOjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3QuYyAoaW5pdF9wb3N0KTogcmVtb3ZlIGhhcmQtY29kZWQgMC45IGxvY2F0aW9uIGZvciByZWdpc3RyaWVzL3BsdWdpbnMgd2l0aCBhIE1BSk9STUlOT1Igb25lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMi0wNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgcGF0Y2ggYnk6IFRob21hcyBWYW5kZXIgU3RpY2hlbGUgIDx0aG9tYXMgYXQgYXBlc3RhYXJ0IGRvdCBvcmc+CgkgICogZ3N0L2dzdC5jIChpbml0X3Bvc3QpOiByZW1vdmUgaGFyZC1jb2RlZCAwLjkgbG9jYXRpb24gZm9yCgkgIHJlZ2lzdHJpZXMvcGx1Z2lucyB3aXRoIGEgTUFKT1JNSU5PUiBvbmUuCgkgIChwbHVnaW5fZGVzYyk6IFJlbmFtZSBsaWJyYXJ5IGZyb20gZ3N0Y29yZWxlZW1lbnRzIHRvCgkgIHN0YXRpY2VsZW1lbnRzLiBGaXhlcyAjMzIzMjIyLgoKMjAwNS0xMi0wNSAwOTo0NToyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogQ2hhbmdlIGRlYnVnIGNhdGVnb3J5IHRvICdjb2xsZWN0cGFkcycgZnJvbSAnY29sbGVjdF9wYWRzJyAoZml4ZXMgIzMyMzI1MCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfYmFzZV9pbml0KToKCSAgQ2hhbmdlIGRlYnVnIGNhdGVnb3J5IHRvICdjb2xsZWN0cGFkcycgZnJvbSAnY29sbGVjdF9wYWRzJwoJICAoZml4ZXMgIzMyMzI1MCkuCgoyMDA1LTEyLTA0IDE5OjU3OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICByZW5hbWUgdHdvIGV4cG9ydHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbmFtZSB0d28gZXhwb3J0cwoKMjAwNS0xMi0wNCAxODo1NDoxOSArMDAwMCAgU2ViYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzogdXNlIGNvbnZlcnQgZnVuY3Rpb24gZm9yIHVpbnQ2NC9kb3VibGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBTZWJhc3RpZW4gTW91dHRlCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIHVzZSBjb252ZXJ0IGZ1bmN0aW9uIGZvciB1aW50NjQvZG91YmxlCgkgICogd2luMzIvdnM2L2xpYmdzdGNvbnRyb2xsZXIuZHNwOgoJICBsaW5rIHRvIEdMaWIKCjIwMDUtMTItMDQgMDk6NTc6MTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgYWRkIHRlc3RzIHRoYXQgc2VlbSB0byBzaG93IHRoYXQgdGhlIGd1aW50NjQvZ2RvdWJsZSBjb252ZXJzaW9ucyBhcmUgY29ycmVjdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF9ndWludDY0X3RvX2dkb3VibGUpLAoJICAoZ3N0X3V0aWxfZ2RvdWJsZV90b19ndWludDY0KSwgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQ2NCk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdXRpbHNfc3VpdGUpOgoJICBhZGQgdGVzdHMgdGhhdCBzZWVtIHRvIHNob3cgdGhhdCB0aGUgZ3VpbnQ2NC9nZG91YmxlIGNvbnZlcnNpb25zCgkgIGFyZSBjb3JyZWN0LgoKMjAwNS0xMi0wMiAxMjo0NDo1MyArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIG1ha2UgdmVyc2lvbiBudW1iZXIgYSBsaXR0bGUgbGVzcyBob3BlZnVsbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWFrZSB2ZXJzaW9uIG51bWJlciBhIGxpdHRsZSBsZXNzIGhvcGVmdWxsCgoyMDA1LTEyLTAyIDEyOjM0OjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogRml4IGRvY3MgYWdhaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2FkZF9wYXRoKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSAgRml4IGRvY3MgYWdhaW4uCgkgIFJlbW92ZWQgb2xkIGNvZGUgZnJvbSBnc3RyZWdpc3RyeXhtbC5jCgoyMDA1LTEyLTAyIDEyOjE5OjU1ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgZml4IHVwZGF0aW5nIGdzdHJlYW1lciBzcGVjIGZpbGUgbWFraW5nIGl0IDAuMTAgcmVhZHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCB1cGRhdGluZyBnc3RyZWFtZXIgc3BlYyBmaWxlIG1ha2luZyBpdCAwLjEwIHJlYWR5CgoyMDA1LTEyLTAyIDExOjM2OjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IFNtYWxsIGNsZWFudXAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludDY0KSwKCSAgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQpOgoJICBTbWFsbCBjbGVhbnVwLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCk6CgkgIEFkZCBkZWJ1ZyBsb2cgbGluZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCk6CgkgIEFkZCBGSVhNRS4KCjIwMDUtMTItMDIgMDk6NDg6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgd2luMzIvOiByZW5hbWVkIGNvcmUgZWxlbWVudHMgcGx1Z2luCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL01BTklGRVNUOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgKiB3aW4zMi92czYvZ3N0cmVhbWVyLmRzdzoKCSAgKiB3aW4zMi92czYvbGliZ3N0Y29yZWVsZW1lbnRzLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0ZWxlbWVudHMuZHNwOgoJICByZW5hbWVkIGNvcmUgZWxlbWVudHMgcGx1Z2luCgoyMDA1LTEyLTAyIDAxOjM1OjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRvb2xzL2dzdC1ydW4uYzogZG8gcGllY2Utd2lzZSBtYWpvci9taW5vciBjb21wYXJpc29uIHNvIDAuOSA8IDAuMTAgYWxzbyBhbGxvdyAuZXhlIGV4dGVuc2lvbnMgZm9yIHRvb2xzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1ydW4uYzogKGNvbXBhcmVfbWFqb3JfbWlub3IpLCAoZmluZF9oaWdoZXN0X3ZlcnNpb24pLAoJICAoZ2V0X2NhbmRpZGF0ZXMpOgoJICBkbyBwaWVjZS13aXNlIG1ham9yL21pbm9yIGNvbXBhcmlzb24gc28gMC45IDwgMC4xMAoJICBhbHNvIGFsbG93IC5leGUgZXh0ZW5zaW9ucyBmb3IgdG9vbHMKCjIwMDUtMTItMDEgMjM6NTc6MDcgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3QuYzogRXNjYXBlIGEgJSB0byBtYWtlIGd0a2RvYyBoYXBwaWVyOyBidWcgMzIyOTU4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIEVzY2FwZSBhICUgdG8gbWFrZSBndGtkb2MgaGFwcGllcjsgYnVnIDMyMjk1OC4KCjIwMDUtMTItMDEgMTk6MTg6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIEhFQUQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gSEVBRAoKPT09IHJlbGVhc2UgMC45LjcgPT09CgoyMDA1LTEyLTAxIDE5OjExOjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENIQU5HRVMtMC45OgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHJlbGVhc2luZyAwLjkuNwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzaW5nIDAuOS43CgoyMDA1LTEyLTAxIDE2OjUxOjIzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSogd2luMzIvdnM2L2dzdF9pbnNwZWN0LmRzcDoKCSogd2luMzIvdnM2L2dzdF9sYXVuY2guZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0YmFzZS5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RlbGVtZW50cy5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RyZWFtZXIuZHNwOgoJKiB3aW4zMi92czcvR1N0cmVhbWVyLnZjcHJvajoKCSogd2luMzIvdnM3L2dzdC1pbnNwZWN0LnZjcHJvajoKCSogd2luMzIvdnM3L2dzdC1sYXVuY2gudmNwcm9qOgoJKiB3aW4zMi92czcvbGliZ3N0YmFzZS52Y3Byb2o6CgkgIGJ1bXAgR1NUX01BSk9STUlOT1IgdG8gMC4xMCByZXNldCBsaWJ0b29sIHZlcnNpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJ1bXAgR1NUX01BSk9STUlOT1IgdG8gMC4xMAoJICByZXNldCBsaWJ0b29sIHZlcnNpb24KCjIwMDUtMTItMDEgMTU6Mjg6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdG9vbHMvZ3N0LWZlZWRiYWNrLTAuNzoKCSAgcmVtb3ZlIG9sZCBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgb2xkIGZpbGUKCjIwMDUtMTItMDEgMTU6MTg6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9wbHVnaW5zLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNS0xMi0wMSAxNTowODowOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIHBvL0xJTkdVQVM6CgkqIHBvL2JnLnBvOgoJICBBZGRlZCBCdWxnYXJpYW4gdHJhbnNsYXRpb24gYnkgKEFsZXhhbmRlciBTaG9wb3YpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBBZGRlZCBCdWxnYXJpYW4gdHJhbnNsYXRpb24gYnkgKEFsZXhhbmRlciBTaG9wb3YpCgoyMDA1LTEyLTAxIDE1OjA0OjAzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0LWJ1aWxkLnN0YW1wOgoJICBjb21taXQgZmluYWwgc3RhbXAgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29tbWl0IGZpbmFsIHN0YW1wIGZpbGUKCjIwMDUtMTItMDEgMTQ6NTE6MDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmludGVyZmFjZXM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5wcmVyZXF1aXNpdGVzOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIGFkZCBtb3JlIGZpbGVzIGZvciBkaXN0Y2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtb3JlIGZpbGVzIGZvciBkaXN0Y2hlY2sKCjIwMDUtMTItMDEgMTQ6NDA6NDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5zaWduYWxzOgoJICBhZGQgc2lnbmFscyBhbmQgYXJncwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHNpZ25hbHMgYW5kIGFyZ3MKCjIwMDUtMTItMDEgMTI6MzY6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgIGZpeCB0ZXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggdGVzdAoKMjAwNS0xMi0wMSAxMjoyOTozNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnR5cGVzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC5zdGFtcDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBkb2NzL3BsdWdpbnMvc2Nhbm9iai1idWlsZC5zdGFtcDoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGluZGV4ZXJzLmM6CgkgIGRvY3VtZW50IGNvcmUgcGx1Z2lucyBpbiBhIHNlcGFyYXRlIGRvY3VtZW50IGp1c3QgbGlrZSBhbGwgdGhlIG90aGVycyByZW5hbWUgdGhlc2UgcGx1Z2lucyB0byBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jdW1lbnQgY29yZSBwbHVnaW5zIGluIGEgc2VwYXJhdGUgZG9jdW1lbnQganVzdCBsaWtlIGFsbCB0aGUKCSAgb3RoZXJzCgkgIHJlbmFtZSB0aGVzZSBwbHVnaW5zIHRvIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIGNvcmUKCjIwMDUtMTItMDEgMTI6MDA6NTYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RldmVudC5oIChzdHJ1Y3QgX0dzdEV2ZW50KTogTWVhbnQgdG8gcmVtb3ZlIHRoZSBleHRyYSBwYWRkaW5nIGhlcmUgYmVmb3JlLCBidXQgaXQgbWlzc2VkIHRoZSBjb21taXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEyLTAxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RldmVudC5oIChzdHJ1Y3QgX0dzdEV2ZW50KTogTWVhbnQgdG8gcmVtb3ZlIHRoZSBleHRyYQoJICBwYWRkaW5nIGhlcmUgYmVmb3JlLCBidXQgaXQgbWlzc2VkIHRoZSBjb21taXQuCgoyMDA1LTEyLTAxIDEwOjA3OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJKiB3aW4zMi92czYvZ3N0cmVhbWVyLmRzdzoKCSogd2luMzIvdnM2L2xpYmdzdGNvbnRyb2xsZXIuZHNwOgoJICBhZGQgbGliZ3N0Y29udHJvbGxlciB0byB0aGUgYnVpbGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBsaWJnc3Rjb250cm9sbGVyIHRvIHRoZSBidWlsZAoKMjAwNS0xMi0wMSAwOTo1NDo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzogd2hpdGVzcGFjZSBwcmljZXMgaGF2ZSBjcmFzaGVkLCB3ZSBzaG91bGQgZmVlbCBmcmVlIHRvIHVzZSBzb21lIG5vdyB1c2UgZ3N0X2cuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIHdoaXRlc3BhY2UgcHJpY2VzIGhhdmUgY3Jhc2hlZCwgd2Ugc2hvdWxkIGZlZWwgZnJlZSB0byB1c2Ugc29tZSBub3cKCSAgdXNlIGdzdF9ndWludDY0X3RvX2dkb3VibGUKCjIwMDUtMTItMDEgMDk6MzI6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSAgZml4IHR5cG8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCB0eXBvCgoyMDA1LTEyLTAxIDA5OjIzOjIwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2xpYi5jOgoJICB3cmFwIGNvbmZpZy5oIGluY2x1ZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdyYXAgY29uZmlnLmggaW5jbHVkZQoKMjAwNS0xMi0wMSAwMjowODoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIHVwZGF0ZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgZG9jcwoKMjAwNS0xMi0wMSAwMDo1NDo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogbW9yZSBhbmFsIGNsZWFudXAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19fYmFzZV9pbml0KSwKCSAgKGdzdF9mZF9zaW5rX19jbGFzc19pbml0KSwgKGdzdF9mZF9zaW5rX19pbml0KSwKCSAgKGdzdF9mZF9zaW5rX19jaGFpbiksIChnc3RfZmRfc2lua19fc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9mZF9zaW5rX19nZXRfcHJvcGVydHkpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoX2RvX2luaXQpLCAoZ3N0X2ZkX3NyY19iYXNlX2luaXQpLAoJICAoZ3N0X2ZkX3NyY19jbGFzc19pbml0KSwgKGdzdF9mZF9zcmNfaW5pdCksIChnc3RfZmRfc3JjX2Rpc3Bvc2UpLAoJICAoZ3N0X2ZkX3NyY191cGRhdGVfZmQpLCAoZ3N0X2ZkX3NyY19zdGFydCksIChnc3RfZmRfc3JjX3N0b3ApLAoJICAoZ3N0X2ZkX3NyY191bmxvY2spLCAoZ3N0X2ZkX3NyY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2ZkX3NyY19nZXRfcHJvcGVydHkpLCAoZ3N0X2ZkX3NyY19jcmVhdGUpLAoJICAoZ3N0X2ZkX3NyY19pc19zZWVrYWJsZSksIChnc3RfZmRfc3JjX2dldF9zaXplKSwKCSAgKGdzdF9mZF9zcmNfdXJpX2dldF90eXBlKSwgKGdzdF9mZF9zcmNfdXJpX2dldF9wcm90b2NvbHMpLAoJICAoZ3N0X2ZkX3NyY191cmlfZ2V0X3VyaSksIChnc3RfZmRfc3JjX3VyaV9zZXRfdXJpKSwKCSAgKGdzdF9mZF9zcmNfdXJpX2hhbmRsZXJfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9nZXRfdHlwZSk6CgkgIG1vcmUgYW5hbCBjbGVhbnVwCgoyMDA1LTExLTMwIDE5OjM2OjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIGZpeCB0aGUgZG9jcyBidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHRoZSBkb2NzIGJ1aWxkCgoyMDA1LTExLTMwIDE5OjAzOjU5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSAgYWRkIG5ldyBpbnB1dCB0eXBlcyBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbmV3IGlucHV0IHR5cGVzIGZpbGUKCjIwMDUtMTEtMzAgMTk6MDE6NTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdmFyaW91cyBmaXhlcyB0byBtYWtlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbXBsZXhpdHkuYzoKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL21hc3MtZWxlbWVudHMuYzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0b29scy9NYWtlZmlsZS5hbToKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIHZhcmlvdXMgZml4ZXMgdG8gbWFrZQoJICAtLWRpc2FibGUtbmxzIC0tZGlzYWJsZS1yZWdpc3RyeSAtLWRpc2FibGUtbG9hZHNhdmUgICAgICAgICAgIC0tZGlzYWJsZS1wYXJzZSAtLWRpc2FibGUtZ3N0LWRlYnVnCgkgIHdvcmsgYW5kIGdldCB0aGUgY29yZSAuc28gZG93biB0byAzNjA0NDQgYnl0ZXMgYWZ0ZXIgc3RyaXBwaW5nCgoyMDA1LTExLTMwIDE3OjA1OjI5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgbW92ZSBsb2NhdGlvbiBvZiB0ZXN0IHJlZ2lzdHJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3ZlIGxvY2F0aW9uIG9mIHRlc3QgcmVnaXN0cnkKCjIwMDUtMTEtMzAgMTY6NDU6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNS0xMS0zMCAxNjo0NToxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9taXNjL01ha2VmaWxlLmFtOgoJICBtaXNzaW5nIG1ha2VmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtaXNzaW5nIG1ha2VmaWxlCgoyMDA1LTExLTMwIDE2OjQzOjE2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHNjcmlwdHMvY3ZzLXVwZGF0ZS5zaDoKCSAgcHJ1bmUgZW1wdHkgZGlycyB3aGVuIHVwZGF0aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwcnVuZSBlbXB0eSBkaXJzIHdoZW4gdXBkYXRpbmcKCjIwMDUtMTEtMzAgMTY6NDI6MjcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogRE9DQlVJTERJTkc6CgkqIGRvY3MvUkVBRE1FOgoJICByZW1vdmUgZW1wdHkgZGlyczsgbW92ZSBkb2NidWlsZGluZyBub3RlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGVtcHR5IGRpcnM7IG1vdmUgZG9jYnVpbGRpbmcgbm90ZXMKCjIwMDUtMTEtMzAgMTY6Mzk6MDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZGVzY2VuZCBpbnRvIHRlc3RzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgZGVzY2VuZCBpbnRvIHRlc3RzCgkgICogZG9jcy9yYW5kb20vdGhvbWFzdnMvVE9ETzoKCSAgKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9SRUFETUU6CgkgIGFkZCBhIFJFQURNRQoKMjAwNS0xMS0zMCAxNjozMjoyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMTEtMzAgMTY6MzA6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICB1cGRhdGUgUkVBRE1FCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgUkVBRE1FCgoyMDA1LTExLTMwIDE2OjI5OjI4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGRvbid0IGZhaWwgb24gbWlzc2luZyByZWdpc3RyeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9uJ3QgZmFpbCBvbiBtaXNzaW5nIHJlZ2lzdHJ5CgoyMDA1LTExLTMwIDE2OjI4OjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL1JFQURNRS50eHQ6CgkgIGFkZCBhIFJFQURNRQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgUkVBRE1FCgoyMDA1LTExLTMwIDE2OjI2OjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogd2luMzIvR1N0cmVhbWVyLnZjcHJvajoKCSogd2luMzIvTUFOSUZFU1Q6CgkqIHdpbjMyL01ha2VmaWxlOgoJKiB3aW4zMi9NYWtlZmlsZS5pbnNwZWN0OgoJKiB3aW4zMi9NYWtlZmlsZS5sYXVuY2g6CgkqIHdpbjMyL01ha2VmaWxlLnJlZ2lzdGVyOgoJKiB3aW4zMi9SRUFETUUudHh0OgoJKiB3aW4zMi9nc3QtaW5zcGVjdC52Y3Byb2o6CgkqIHdpbjMyL2dzdC1sYXVuY2gudmNwcm9qOgoJKiB3aW4zMi9nc3QtcmVnaXN0ZXIudmNwcm9qOgoJKiB3aW4zMi9nc3RlbGVtZW50cy52Y3Byb2o6CgkqIHdpbjMyL2dzdGdldGJpdHMuZGVmOgoJKiB3aW4zMi9nc3RnZXRiaXRzLnZjcHJvajoKCSogd2luMzIvZ3N0cmVhbWVyLWRiZy5kZWY6CgkqIHdpbjMyL2dzdHJlYW1lci5kZWY6CgkqIHdpbjMyL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9saWJnc3RiYXNlLnZjcHJvajoKCSogd2luMzIvbGlua19vbGRydW50aW1lLmM6CgkqIHdpbjMyL21tYW4uYzoKCSogd2luMzIvbW1hbi5oOgoJKiB3aW4zMi9tbWFuLmlubDoKCSogd2luMzIvbXN2YzcxLnNsbjoKCSAgbW92ZSBldmVuIG1vcmUgc3R1ZmYsIHdpbjMyLyBpcyBuaWNlIGFuZCBjbGVhbiBub3cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vdmUgZXZlbiBtb3JlIHN0dWZmLCB3aW4zMi8gaXMgbmljZSBhbmQgY2xlYW4gbm93CgoyMDA1LTExLTMwIDE2OjE3OjIzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogbGlicy9nc3QvY29udHJvbC8uZ2l0aWdub3JlOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHdpbjMyL01BTklGRVNUOgoJKiB3aW4zMi9jb25maWcuaDoKCSogd2luMzIvZGlyZW50LmM6CgkqIHdpbjMyL2RpcmVudC5oOgoJKiB3aW4zMi9nc3RieXRlc3RyZWFtLmRlZjoKCSogd2luMzIvZ3N0Ynl0ZXN0cmVhbS52Y3Byb2o6CgkqIHdpbjMyL2dzdGNvbmZpZy5oOgoJKiB3aW4zMi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2dzdG9wdGltYWxzY2hlZHVsZXIudmNwcm9qOgoJKiB3aW4zMi9nc3R2ZXJzaW9uLmg6CgkqIHdpbjMyL2d0Y2hhci5oOgoJKiB3aW4zMi90ZXN0c3VpdGUvYmlucy52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9ieXRlc3RyZWFtLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL2NhcHMudmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvY2xlYW51cC52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9jbG9jay52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9kZWJ1Zy52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9kbG9wZW4udmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvZHlucGFyYW1zLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL2VsZW1lbnRzLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL2dob3N0cGFkcy52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9pbmRleGVycy52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9uZWdvdGlhdGlvbi52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9wYXJzZS52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9wbHVnaW4udmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvcmVmY291bnRpbmcudmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvc2NoZWR1bGVycy52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9zdGF0ZXMudmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvdGFncy52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS90aHJlYWRzLnZjcHJvajoKCSAgcmVtb3ZlIG9sZCB3aW4zMiBzdHVmZiB0aGF0IGlzbid0IG1haW50YWluZWQgYW5kIHNob3VsZCBiZSByZW9yZ2FuaXplZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIG9sZCB3aW4zMiBzdHVmZiB0aGF0IGlzbid0IG1haW50YWluZWQgYW5kIHNob3VsZCBiZQoJICByZW9yZ2FuaXplZAoKMjAwNS0xMS0zMCAxNjoxMjo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBsaWJzL2dzdC9nZXRiaXRzLy5naXRpZ25vcmU6CgkgIHJlbW92ZSBnZXRiaXRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgZ2V0Yml0cwoKMjAwNS0xMS0zMCAxNjoxMDo1NyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY29uZmlndXJlLmFjIChHU1RfUEtHX0RFUFMpOiBSZXZlcnQgcHJldmlvdXMgcGF0Y2gsIG1ha2VzIGxvYWRpbmcgdGhlIGdzdC5pbnRlcmZhY2VzIHB5dGhvbiBtb2R1bGUgYm9yay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMzAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY29uZmlndXJlLmFjIChHU1RfUEtHX0RFUFMpOiBSZXZlcnQgcHJldmlvdXMgcGF0Y2gsIG1ha2VzCgkgIGxvYWRpbmcgdGhlIGdzdC5pbnRlcmZhY2VzIHB5dGhvbiBtb2R1bGUgYm9yay4KCSAgKiBjb25maWd1cmUuYWMgKEdTVF9QS0dfREVQUyk6IFVzZSBnbW9kdWxlLW5vLWV4cG9ydC0yLjAucGMsCgkgIGF2YWlsYWJsZSBzaW5jZSBHTGliIDIuMi4gRml4ZXMgIzMxODAzMS4KCjIwMDUtMTEtMzAgMTY6MDg6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBNYWtlZmlsZS5hbToKCSogY2hlY2svLmdpdGlnbm9yZToKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIGNoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzoKCSogY2hlY2svZWxlbWVudHMvZmRzcmMuYzoKCSogY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzoKCSogY2hlY2svZ2VuZXJpYy8uZ2l0aWdub3JlOgoJKiBjaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJKiBjaGVjay9nc3QtbGlicy8uZ2l0aWdub3JlOgoJKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6CgkqIGNoZWNrL2dzdC1saWJzL2dkcC5jOgoJKiBjaGVjay9nc3QvLmdpdGlnbm9yZToKCSogY2hlY2svZ3N0L2NhcHNsaXN0Lmg6CgkqIGNoZWNrL2dzdC9nc3QuYzoKCSogY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiBjaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIGNoZWNrL2dzdC9nc3RidXMuYzoKCSogY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSogY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiBjaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSogY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJKiBjaGVjay9nc3QvZ3N0cGFkLmM6CgkqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJKiBjaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkqIGNoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkqIGNoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGNoZWNrL2dzdC9nc3R0YWcuYzoKCSogY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiBjaGVjay9uZXQvLmdpdGlnbm9yZToKCSogY2hlY2svbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGNoZWNrL25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogY2hlY2svcGlwZWxpbmVzLy5naXRpZ25vcmU6CgkqIGNoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6CgkqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6CgkqIGNoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzoKCSogY2hlY2svc3RhdGVzLy5naXRpZ25vcmU6CgkqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOgoJKiBjb25maWd1cmUuYWM6CgkqIGV4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9hcHByZWFkZXIvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvYXBwcmVhZGVyL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9hcHByZWFkZXIvYXBwcmVhZGVyLmM6CgkqIGV4YW1wbGVzL2NvbnRyb2xsZXIvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIGV4YW1wbGVzL2N1dHRlci8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9jdXR0ZXIvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL2N1dHRlci9jdXR0ZXIuYzoKCSogZXhhbXBsZXMvY3V0dGVyL2N1dHRlci5oOgoJKiBleGFtcGxlcy9ldmVudHMvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL2V2ZW50cy9zZWVrLmM6CgkqIGV4YW1wbGVzL2hlbGxvd29ybGQvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvaGVsbG93b3JsZC9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvaGVsbG93b3JsZC9oZWxsb3dvcmxkLmM6CgkqIGV4YW1wbGVzL2hlbGxvd29ybGQyLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL2hlbGxvd29ybGQyL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9oZWxsb3dvcmxkMi9oZWxsb3dvcmxkMi5jOgoJKiBleGFtcGxlcy9sYXVuY2gvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvbGF1bmNoL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9sYXVuY2gvbXAzcGFyc2VsYXVuY2guYzoKCSogZXhhbXBsZXMvbGF1bmNoL21wM3BsYXk6CgkqIGV4YW1wbGVzL21hbnVhbC8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL21hbnVhbC9leHRyYWN0LnBsOgoJKiBleGFtcGxlcy9tZXRhZGF0YS9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOgoJKiBleGFtcGxlcy9taXhlci8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9taXhlci9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvbWl4ZXIvbWl4ZXIuYzoKCSogZXhhbXBsZXMvbWl4ZXIvbWl4ZXIuaDoKCSogZXhhbXBsZXMvcGluZ3BvbmcvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvcGluZ3BvbmcvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL3Bpbmdwb25nL3Bpbmdwb25nLmM6CgkqIGV4YW1wbGVzL3BsdWdpbnMvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvcGx1Z2lucy9leGFtcGxlLmM6CgkqIGV4YW1wbGVzL3BsdWdpbnMvZXhhbXBsZS5oOgoJKiBleGFtcGxlcy9wd2cvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvcHdnL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9wd2cvZXh0cmFjdC5wbDoKCSogZXhhbXBsZXMvcXVldWUvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvcXVldWUvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL3F1ZXVlL3F1ZXVlLmM6CgkqIGV4YW1wbGVzL3F1ZXVlMi8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9xdWV1ZTIvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL3F1ZXVlMi9xdWV1ZTIuYzoKCSogZXhhbXBsZXMvcXVldWUzLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL3F1ZXVlMy9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvcXVldWUzL3F1ZXVlMy5jOgoJKiBleGFtcGxlcy9xdWV1ZTQvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvcXVldWU0L01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9xdWV1ZTQvcXVldWU0LmM6CgkqIGV4YW1wbGVzL3JldGFnLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL3JldGFnL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9yZXRhZy9yZXRhZy5jOgoJKiBleGFtcGxlcy9yZXRhZy90cmFuc2NvZGUuYzoKCSogZXhhbXBsZXMvdGhyZWFkLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL3RocmVhZC9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvdGhyZWFkL3RocmVhZC5jOgoJKiBleGFtcGxlcy90eXBlZmluZC8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy90eXBlZmluZC9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvdHlwZWZpbmQvdHlwZWZpbmQuYzoKCSogZXhhbXBsZXMveG1sLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL3htbC9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMveG1sL2NyZWF0ZXhtbC5jOgoJKiBleGFtcGxlcy94bWwvcnVueG1sLmM6CgkqIHRlc3RzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL1J1bGVzOgoJKiB0ZXN0c3VpdGUvY2Fwcy8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvY2Fwcy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2NhcHMvYXBwX2ZpeGF0ZS5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9hdWRpb3NjYWxlLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL2NhcHMuYzoKCSogdGVzdHN1aXRlL2NhcHMvY2Fwcy5oOgoJKiB0ZXN0c3VpdGUvY2Fwcy9jYXBzX3N0cmluZ3M6CgkqIHRlc3RzdWl0ZS9jYXBzL2NvbXBhdGliaWxpdHkuYzoKCSogdGVzdHN1aXRlL2NhcHMvZGVzZXJpYWxpemUuYzoKCSogdGVzdHN1aXRlL2NhcHMvZW51bWNhcHMuYzoKCSogdGVzdHN1aXRlL2NhcHMvZXJhdG9zdGhlbmVzLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL2ZpbHRlcmNhcHMuYzoKCSogdGVzdHN1aXRlL2NhcHMvZml4ZWQuYzoKCSogdGVzdHN1aXRlL2NhcHMvZnJhY3Rpb24tY29udmVydC5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9mcmFjdGlvbi1tdWx0aXBseS1hbmQtemVyby5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9pbnRlcnNlY3QyLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL2ludGVyc2VjdGlvbi5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9ub3JtYWxpc2F0aW9uLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL3JhbmRvbS5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9yZW5lZ290aWF0ZS5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9zZXRzLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL3NpbXBsaWZ5LmM6CgkqIHRlc3RzdWl0ZS9jYXBzL3N0cmluZy1jb252ZXJzaW9ucy5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9zdHJ1Y3R1cmUuYzoKCSogdGVzdHN1aXRlL2NhcHMvc3VidHJhY3QuYzoKCSogdGVzdHN1aXRlL2NhcHMvdW5pb24uYzoKCSogdGVzdHN1aXRlL2RlYnVnLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9kZWJ1Zy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2RlYnVnL2NhdGVnb3J5LmM6CgkqIHRlc3RzdWl0ZS9kZWJ1Zy9jb21tYW5kbGluZS5jOgoJKiB0ZXN0c3VpdGUvZGVidWcvZ2xvYmFsLmM6CgkqIHRlc3RzdWl0ZS9kZWJ1Zy9vdXRwdXQuYzoKCSogdGVzdHN1aXRlL2RlYnVnL3ByaW50Zl9leHRlbnNpb24uYzoKCSogdGVzdHN1aXRlL2Rsb3Blbi8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvZGxvcGVuL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvZGxvcGVuL2Rsb3Blbl9nc3QuYzoKCSogdGVzdHN1aXRlL2Rsb3Blbi9sb2FkZ3N0LmM6CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy9nc3QtaW5zcGVjdC1jaGVjay5pbjoKCSogdGVzdHN1aXRlL2VsZW1lbnRzL3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy9zdHJ1Y3Rfc2l6ZS5jOgoJKiB0ZXN0c3VpdGUvaW5kZXhlcnMvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvaW5kZXhlcnMvY2FjaGUxLmM6CgkqIHRlc3RzdWl0ZS9pbmRleGVycy9pbmRleGR1bXAuYzoKCSogdGVzdHN1aXRlL3BhcnNlLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9wYXJzZS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL3BhcnNlL3BhcnNlMS5jOgoJKiB0ZXN0c3VpdGUvcGFyc2UvcGFyc2UyLmM6CgkqIHRlc3RzdWl0ZS9wbHVnaW4vLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL3BsdWdpbi9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL3BsdWdpbi9SRUFETUU6CgkqIHRlc3RzdWl0ZS9wbHVnaW4vZHluYW1pYy5jOgoJKiB0ZXN0c3VpdGUvcGx1Z2luL2xpbmtlZC5jOgoJKiB0ZXN0c3VpdGUvcGx1Z2luL2xvYWRpbmcuYzoKCSogdGVzdHN1aXRlL3BsdWdpbi9yZWdpc3RyeS5jOgoJKiB0ZXN0c3VpdGUvcGx1Z2luL3N0YXRpYy5jOgoJKiB0ZXN0c3VpdGUvcGx1Z2luL3N0YXRpYzIuYzoKCSogdGVzdHN1aXRlL3BsdWdpbi90ZXN0cGx1Z2luLmM6CgkqIHRlc3RzdWl0ZS9wbHVnaW4vdGVzdHBsdWdpbjIuYzoKCSogdGVzdHN1aXRlL3BsdWdpbi90ZXN0cGx1Z2luMl9zLmM6CgkqIHRlc3RzdWl0ZS9wbHVnaW4vdGVzdHBsdWdpbl9zLmM6CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9iaW4uYzoKCSogdGVzdHN1aXRlL3JlZmNvdW50aW5nL2VsZW1lbnQuYzoKCSogdGVzdHN1aXRlL3JlZmNvdW50aW5nL2VsZW1lbnRfcGFkLmM6CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9tYWlubG9vcC5jOgoJKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvbWVtLmM6CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9tZW0uaDoKCSogdGVzdHN1aXRlL3JlZmNvdW50aW5nL29iamVjdC5jOgoJKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvcGFkLmM6CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9zY2hlZC5jOgoJKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvdGhyZWFkLmM6CgkqIHRlc3RzdWl0ZS9zdGF0ZXMvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL3N0YXRlcy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL3N0YXRlcy9iaW4uYzoKCSogdGVzdHN1aXRlL3N0YXRlcy9sb2NrZWQuYzoKCSogdGVzdHN1aXRlL3N0YXRlcy9wYXJlbnQuYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL3RocmVhZHMvMTU5NTY2LmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzLzE1OTg1Mi5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL3RocmVhZHMvcXVldWUuYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvc2lnbmFscy5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy9zdGF0aWNyZWMuYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkLmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGIuYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkYy5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRkLmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGUuYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkZi5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRnLmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGguYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkaS5jOgoJICBtb3ZlIGFsbCBvZiB0aGVzZSB1bmRlciB0ZXN0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW92ZSBhbGwgb2YgdGhlc2UgdW5kZXIgdGVzdHMKCjIwMDUtMTEtMzAgMTU6Mzc6MzYgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICB1cGRhdGUgYWZ0ZXIgdGhvbWFzJ3MgQ1ZTIHN1cmdlcnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBhZnRlciB0aG9tYXMncyBDVlMgc3VyZ2VyeQoKMjAwNS0xMS0zMCAxNTozNDozNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2JlbmNobWFya3MvTWFrZWZpbGUuYW06CgkgIGFkZCBNYWtlZmlsZS5hbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIE1ha2VmaWxlLmFtCgoyMDA1LTExLTMwIDE1OjI5OjA1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGZpeCBkaXN0Y2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIHRlc3RzL01ha2VmaWxlLmFtOgoJICBmaXggZGlzdGNoZWNrCgoyMDA1LTExLTMwIDE1OjIwOjI5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9kZXNlcmlhbGl6ZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvaW50ZXJzZWN0aW9uLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy91bmlvbi5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9kZXNlcmlhbGl6ZS5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9pbnRlcnNlY3Rpb24uYzoKCSogdGVzdHN1aXRlL2NhcHMvdW5pb24uYzoKCSAgY29tcGlsZSB3YXJuaW5nIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjb21waWxlIHdhcm5pbmcgZml4ZXMKCjIwMDUtMTEtMzAgMTM6Mjg6MTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy9nc3QtY29tcHByZXAtY2hlY2suaW46CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2VsZW1lbnRzL2dzdC1jb21wcHJlcC1jaGVjay5pbjoKCSAgcmVtb3ZlIGNvbXBwcmVwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgY29tcHByZXAKCjIwMDUtMTEtMzAgMTM6MjU6MDUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYyAoR1NUX1BLR19ERVBTKTogVXNlIGdtb2R1bGUtbm8tZXhwb3J0LTIuMC5wYywgYXZhaWxhYmxlIHNpbmNlIEdMaWIgMi4yLiBGaXhlcyAjMzE4MDMxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0zMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjb25maWd1cmUuYWMgKEdTVF9QS0dfREVQUyk6IFVzZSBnbW9kdWxlLW5vLWV4cG9ydC0yLjAucGMsCgkgIGF2YWlsYWJsZSBzaW5jZSBHTGliIDIuMi4gRml4ZXMgIzMxODAzMS4KCjIwMDUtMTEtMzAgMTM6MDg6MDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgRmlyc3QgcGFzcyBhdCBjbGVhbmluZyB1cCB0ZXN0cy8gZGlyIGJlZm9yZSBtb3ZpbmcgdGhlIHJlc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIHRlc3RzL2JlbmNoLWNvbXBsZXhpdHkuc2NtOgoJICAqIHRlc3RzL2JlbmNoLW1hc3NfZWxlbWVudHMuc2NtOgoJICAqIHRlc3RzL2NvbXBsZXhpdHkuYzoKCSAgKiB0ZXN0cy9jb21wbGV4aXR5LmdudXBsb3Q6CgkgICogdGVzdHMvaW5zdGFudGlhdGUvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9pbnN0YW50aWF0ZS9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9pbnN0YW50aWF0ZS9jYXBzLmM6CgkgICogdGVzdHMvbWFzc19lbGVtZW50cy5jOgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2stdXRpbHMuc2NtOgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2suc2NtOgoJICAqIHRlc3RzL3Bsb3QtZGF0YToKCSAgRmlyc3QgcGFzcyBhdCBjbGVhbmluZyB1cCB0ZXN0cy8gZGlyIGJlZm9yZSBtb3ZpbmcgdGhlIHJlc3QKCSAgQ29tYmluZWQgd2l0aCBDVlMgc3VyZ2VyeQoKMjAwNS0xMS0zMCAxMzowNzoxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBtb3ZlIGluY2x1ZGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3ZlIGluY2x1ZGVzCgoyMDA1LTExLTMwIDExOjU1OjMyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgcmVtb3ZlIG5vcndlZ2lhbmlzbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIG5vcndlZ2lhbmlzbQoKMjAwNS0xMS0zMCAxMDo1MDo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBNYWtlZmlsZS5hbToKCSAgbWFrZSBub3QgaGF2aW5nIGNoZWNrIG5vbi1mYXRhbCBmb3IgZXh0cmEgdGFyZ2V0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWFrZSBub3QgaGF2aW5nIGNoZWNrIG5vbi1mYXRhbCBmb3IgZXh0cmEgdGFyZ2V0cwoKMjAwNS0xMS0zMCAxMDoxNTowOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwby9QT1RGSUxFUy5pbjogcXVldWUgaGFzIG1vdmVkLCB1cGRhdGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcG8vUE9URklMRVMuaW46CgkgIHF1ZXVlIGhhcyBtb3ZlZCwgdXBkYXRlCgoyMDA1LTExLTMwIDEwOjEzOjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB3aW4zMi92czYvZ3JhbW1hci5kc3A6CgkqIHdpbjMyL3ZzNi9nc3RfaW5zcGVjdC5kc3A6CgkqIHdpbjMyL3ZzNi9nc3RfbGF1bmNoLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdGJhc2UuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0ZWxlbWVudHMuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0cmVhbWVyLmRzcDoKCSAgYWRkIHNvbWUgZXhwbGljaXQgY2FzdHMgdXBkYXRlIGRzcCBmaWxlczsgYWxzbyBpbnN0YWxscyB0aGUgZGVidWcgYnVpbGQgaW4gXGdzdHJlYW1lclxkZWJ1ZyB0byBzZXBhcmF0ZSBpdCBmcm9tIHRoZSBuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgc29tZSBleHBsaWNpdCBjYXN0cwoJICB1cGRhdGUgZHNwIGZpbGVzOyBhbHNvIGluc3RhbGxzIHRoZSBkZWJ1ZyBidWlsZCBpbiBcZ3N0cmVhbWVyXGRlYnVnIHRvIHNlcGFyYXRlIGl0IGZyb20gdGhlIG5vbi1kZWJ1ZyBidWlsZAoKMjAwNS0xMS0zMCAxMDowMzo0NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYWRkIG1vcmUgc3ltYm9scyB0byBkZWYgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1vcmUgc3ltYm9scyB0byBkZWYgZmlsZQoKMjAwNS0xMS0zMCAwOTo1OTowNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiByZW1vdmUgZG91YmxlIGVudHJpZXMgZnJvbSB0aGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICByZW1vdmUgZG91YmxlIGVudHJpZXMgZnJvbSB0aGUgZG9jcwoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RpbmZvLmM6IChfZ3N0X2RlYnVnX2luaXQpOgoJICByZW1vdmUgdGhlIFRIUkVBRCBkZWJ1ZyBjYXRlZ29yeQoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0cXVldWUuYzoKCSAgKiBnc3QvZ3N0cXVldWUuaDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2dldF90eXBlKSwKCSAgKGdzdF9xdWV1ZV9pbml0KSwgKGdzdF9xdWV1ZV9maW5hbGl6ZSksIChnc3RfcXVldWVfY2hhbmdlX3N0YXRlKToKCSAgY29tcGxldGVseSBtb3ZlIHF1ZXVlIGFuZCBmaXggdXAgZGVidWdnaW5nIGNhdGVnb3JpZXMKCjIwMDUtMTEtMzAgMDk6Mzg6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBtYWtlIGluaXRpYWxpemF0aW9uIHBvcnRhYmxlLCB1c2luZyBMTCBpcyBub3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCk6CgkgIG1ha2UgaW5pdGlhbGl6YXRpb24gcG9ydGFibGUsIHVzaW5nIExMIGlzIG5vdAoKMjAwNS0xMS0zMCAwOTozNjoxOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYWRkIG1vcmUgc3ltYm9scyB0byBkZWYgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1vcmUgc3ltYm9scyB0byBkZWYgZmlsZQoKMjAwNS0xMS0zMCAwOTozMDo1MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYWRkIG1vcmUgc3ltYm9scyB0byBkZWYgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1vcmUgc3ltYm9scyB0byBkZWYgZmlsZQoKMjAwNS0xMS0zMCAwOToyNzo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6IGFkZCBsYXJnZSBwYWRkaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDoKCSAgYWRkIGxhcmdlIHBhZGRpbmcKCjIwMDUtMTEtMzAgMDk6MjI6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IHJlbmFtZSBzeW1ib2xzOyBzb3J0IGJhc2Ugc2VjdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcmVuYW1lIHN5bWJvbHM7IHNvcnQgYmFzZSBzZWN0aW9uCgoyMDA1LTExLTMwIDA5OjE4OjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RjbG9jay5jOiByZW1vdmUgY3JhY2sgbm9uLXBvcnRhYmxlIGhhbmRyb2xsZWQgREVCVUcgbWFjcm8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMzAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgIDx0aG9tYXMgYXQgYXBlc3RhYXJ0IGRvdCBvcmc+CgkgICogZ3N0L2dzdGNsb2NrLmM6IChkb19saW5lYXJfcmVncmVzc2lvbik6CgkgIHJlbW92ZSBjcmFjayBub24tcG9ydGFibGUgaGFuZHJvbGxlZCBERUJVRyBtYWNybwoKMjAwNS0xMS0zMCAwOToxMjo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICB1cGRhdGUgdmlzdWFsIHN0dWRpbyBnZW5lcmF0ZWQgZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSB2aXN1YWwgc3R1ZGlvIGdlbmVyYXRlZCBmaWxlcwoKMjAwNS0xMS0zMCAwODo1Njo1OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB3aW4zMi92czYvOiB1cGRhdGUgcHJvamVjdCBmaWxlcyBmb3IgbmV3IGxvY2F0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi92czYvbGliZ3N0YmFzZS5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdGVsZW1lbnRzLmRzcDoKCSAgdXBkYXRlIHByb2plY3QgZmlsZXMgZm9yIG5ldyBsb2NhdGlvbnMKCjIwMDUtMTEtMzAgMDg6NTI6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgTWFrZWZpbGUuYW06IHJlbW92ZSBzb21lIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICByZW1vdmUgc29tZSBmaWxlcwoJICAqIFJFQURNRToKCSAgcmVpbnN0YXRlIGFuZCB1cGRhdGUKCSAgKiBERVZFTDoKCSAgKiBSRVFVSVJFTUVOVFM6CgkgIHJlbW92ZWQKCSAgKiBMSUNFTlNFOgoJICAqIGRvY3MvcmFuZG9tL0xJQ0VOU0U6CgkgIG1vdmVkIHRvIHJhbmRvbQoKMjAwNS0xMS0zMCAwODozNjo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHB1dCB0aGUgUkVBRE1FIGJhY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHB1dCB0aGUgUkVBRE1FIGJhY2sKCjIwMDUtMTEtMzAgMDg6MzM6MzMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogVE9ETzoKCSAgY2xlYW4gdXAgVE9ETwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2xlYW4gdXAgVE9ETwoKMjAwNS0xMS0zMCAwODoyOToxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBsaWJzL2V4dC9NYWtlZmlsZS5hbToKCSAgcmVtb3ZpbmcgZXh0LCB3YXMgbm90IHVzZWQgYW55bW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZpbmcgZXh0LCB3YXMgbm90IHVzZWQgYW55bW9yZQoKMjAwNS0xMS0yOSAyMzo1NjoyMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC86IEZpeCBtZW1vcnkgbGVhayBpbiBHc3RUeXBlRmluZEZhY3RvcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0eXBlZmluZC5jOiAoZ3N0X3R5cGVfZmluZF9yZWdpc3Rlcik6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmg6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOiAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2luaXQpLAoJICAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2Rpc3Bvc2UpOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuaDoKCSAgRml4IG1lbW9yeSBsZWFrIGluIEdzdFR5cGVGaW5kRmFjdG9yeS4KCjIwMDUtMTEtMjkgMjA6MTY6NDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICB1cGRhdGVkIHRyYW5zbGF0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlZCB0cmFuc2xhdGlvbnMKCjIwMDUtMTEtMjkgMTk6NDc6MDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbW92ZSBxdWV1ZSBmcm9tIGNvcmUgdG8gdGhlIGVsZW1lbnRzIHBsdWdpbiDDpwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBtb3ZlIHF1ZXVlIGZyb20gY29yZSB0byB0aGUgZWxlbWVudHMgcGx1Z2luCgkgIMOnCgoyMDA1LTExLTI5IDE5OjQ0OjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQtdW5pbnN0YWxsZWQucGMuaW46CgkgIHVwZGF0ZSB1bmluc3RhbGxlZCBwYyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHVuaW5zdGFsbGVkIHBjIGZpbGVzCgoyMDA1LTExLTI5IDE5OjM3OjQ5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBsaWJzL2dzdC9iYXNlLzogZW4tTEFSR0UgdGhlIHBhZGRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTI5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDogZW4tTEFSR0UgdGhlIHBhZGRpbmcuCgkgICogZ3N0L2dzdGNvbmZpZy5oLmluIChHU1RfUEFERElOR19MQVJHRSk6IE5ldyBkZWZpbmUsIHRoZSBudW1iZXIKCSAgb2YgcG9pbnRlcnMgYnkgd2hpY2ggdG8gcGFkIHZlcnkgZXh0ZW5zaWJsZSBiYXNlIGNsYXNzZXMgKGxpa2UgdGhlCgkgIG9uZXMgaW4gbGlicy9nc3QvYmFzZSkuCgoyMDA1LTExLTI5IDE5OjM0OjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvOiBtb3ZpbmcgZG9jdW1lbnRhdGlvbiBmcm9tIGNvcmUgdG8gbGliCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIG1vdmluZyBkb2N1bWVudGF0aW9uIGZyb20gY29yZSB0byBsaWIKCjIwMDUtMTEtMjkgMTk6MTI6MzAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvYmFzZS8uZ2l0aWdub3JlOgoJKiBnc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogZ3N0L2Jhc2UvUkVBRE1FOgoJKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIGdzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSogZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBnc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGdzdC9uZXQvTWFrZWZpbGUuYW06CgkqIGdzdC9uZXQvZ3N0bmV0Lmg6CgkqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJKiBnc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSogZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0Lmg6CgkqIGdzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIGdzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkqIGxpYnMvZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBvL1BPVEZJTEVTLmluOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgQ1ZTIHN1cmdlcnkgKyBzdXBwb3J0IHRvIG1vdmUgYmFzZSwgY2hlY2ssIGFuZCBuZXQgb3V0IG9mIGdzdCBhbmQgaW50byBsaWJzL2dzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ1ZTIHN1cmdlcnkgKyBzdXBwb3J0IHRvIG1vdmUgYmFzZSwgY2hlY2ssIGFuZCBuZXQgb3V0IG9mIGdzdAoJICBhbmQgaW50byBsaWJzL2dzdAoKMjAwNS0xMS0yOSAxODo1Nzo1OSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGV2ZW50LmggKHN0cnVjdCBfR3N0RXZlbnQpOiBPbmx5IG9uZSBwb2ludGVyIG9mIHBhZGRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTI5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RldmVudC5oIChzdHJ1Y3QgX0dzdEV2ZW50KTogT25seSBvbmUgcG9pbnRlciBvZiBwYWRkaW5nLgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaCAoc3RydWN0IF9Hc3RTdHJ1Y3R1cmUpOiBPbmx5IG9uZSBwb2ludGVyIG9mCgkgIHBhZGRpbmcuCgkgICogZ3N0L2dzdHF1ZXJ5LmggKHN0cnVjdCBfR3N0UXVlcnkpOiBPbmx5IG9uZSBwb2ludGVyIG9mIHBhZGRpbmcuCgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDogUmVtb3ZlIGEgY29tbWVudCBpbiBQbHVnaW5GZWF0dXJlLgoJICAqIGdzdC9nc3RwbHVnaW4uaCAoc3RydWN0IF9Hc3RQbHVnaW5DbGFzcyk6IEFkZCBzb21lIHBhZGRpbmcuCgkgICogZ3N0L2dzdG9iamVjdC5oOiAoc3RydWN0IF9Hc3RPYmplY3QpOiBPbmx5IG9uZSBwb2ludGVyIG9mCgkgIHBhZGRpbmc7IHJlZHVjZXMgb2JqZWN0IHNpemUgYnkgYWJvdXQgMzAlLiBXZSBkb24ndCBleHBlY3QKCSAgYW55dGhpbmcgZWxzZSB0byBnbyBpbnRvIGdzdG9iamVjdC4KCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5oIChzdHJ1Y3QgX0dzdE1pbmlPYmplY3QpCgkgIChzdHJ1Y3QgX0dzdE1pbmlPYmplY3RDbGFzcyk6IE9ubHkgb25lIHBvaW50ZXIgb2YgcGFkZGluZzsgdGhlCgkgIHBheWxvYWQgaXMgb25seSBhIHBvaW50ZXIgYW5kIHR3byBpbnRzIGFueXdheS4gRm9yIHRoZSBjbGFzcyB0aGVyZQoJICBhcmUgb25seSB0d28gbWV0aG9kcyBhcyB3ZWxsLgoJICAqIGdzdC9nc3RlbGVtZW50LmggKHN0cnVjdCBfR3N0RWxlbWVudENsYXNzKTogUmVtb3ZlZAoJICB0aGUgc3RhdGVfY2hhbmdlZCBzaWduYWwgY2FsbGJhY2ssIGl0IGlzIG5vdCB1c2VkLgoKMjAwNS0xMS0yOSAxODo0OToxOSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogY29tcG9uZW50cy9ib25vYm8tZ3N0bWVkaWFwbGF5Ly5naXRpZ25vcmU6CgkqIGNvbXBvbmVudHMvYm9ub2JvLWdzdG1lZGlhcGxheS9NYWtlZmlsZS5hbToKCSogY29tcG9uZW50cy9ib25vYm8tZ3N0bWVkaWFwbGF5L2Jvbm9iby1nc3RtZWRpYXBsYXktdWkueG1sOgoJKiBjb21wb25lbnRzL2Jvbm9iby1nc3RtZWRpYXBsYXkvYm9ub2JvLWdzdG1lZGlhcGxheS5jOgoJKiBjb21wb25lbnRzL2Jvbm9iby1nc3RtZWRpYXBsYXkvZ3N0bWVkaWFwbGF5Lm9hZmluZm86CgkqIGNvbXBvbmVudHMvYm9ub2JvLW1lZGlhL01ha2VmaWxlLmFtOgoJKiBjb21wb25lbnRzL2Jvbm9iby1tZWRpYS9ib25vYm8tbWVkaWEtZ3N0cmVhbWVyLWZhY3RvcnkuYzoKCSogY29tcG9uZW50cy9ib25vYm8tbWVkaWEvYm9ub2JvLW1lZGlhLWdzdHJlYW1lci5nb2I6CgkqIGNvbXBvbmVudHMvYm9ub2JvLW1lZGlhL2Jvbm9iby1tZWRpYS1nc3RyZWFtZXIub2FmaW5mbzoKCSogY29tcG9uZW50cy9ib25vYm8tbWVkaWEvYm9ub2JvLW1lZGlhLWdzdHJlYW1lcnZpZGVvLmdvYjoKCSAgd2hhY2sgYSBtb2xlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGFjayBhIG1vbGUKCjIwMDUtMTEtMjkgMTg6Mzg6NDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vUE9URklMRVMuaW46CgkgIHRoZXNlIGZpbGVzIHdlcmUgbW92ZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRoZXNlIGZpbGVzIHdlcmUgbW92ZWQKCjIwMDUtMTEtMjkgMTg6MjE6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOiBmaXggaW5jbHVkZXMsIHRob3VnaCB0aGV5IGFyZSBhIGxpdHRsZSBkaW5reQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgIGZpeCBpbmNsdWRlcywgdGhvdWdoIHRoZXkgYXJlIGEgbGl0dGxlIGRpbmt5CgoyMDA1LTExLTI5IDE4OjE0OjM1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBsb29rIGluIHRoZSByaWdodCBwbGFjZSBmb3IgZWxlbWVudHMsIGEgbG90IG1vcmUgY2hhbmNlIG9mIHN1Y2Nlc3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIGxvb2sgaW4gdGhlIHJpZ2h0IHBsYWNlIGZvciBlbGVtZW50cywgYSBsb3QgbW9yZSBjaGFuY2Ugb2YKCSAgc3VjY2VzcwoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgcmVtb3ZlIGluZGV4ZXJzIGFuZCBlbGVtZW50cyBzdWJkaXJzCgkgICogcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgbWFrZSBpbmRleGVycyBjb25kaXRpb25hbAoKMjAwNS0xMS0yOSAxODowODoxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwbHVnaW5zL01ha2VmaWxlLmFtOgoJICBhZGQgbWlzc2luZyBNYWtlZmlsZS5hbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1pc3NpbmcgTWFrZWZpbGUuYW0KCjIwMDUtMTEtMjkgMTg6MDQ6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgIGZpeCBkb2MgYnVpbGQgZm9yIHN0dWZmIG1vdmVkIGFyb3VuZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGRvYyBidWlsZCBmb3Igc3R1ZmYgbW92ZWQgYXJvdW5kCgoyMDA1LTExLTI5IDE4OjAzOjUyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIGdzdC9lbGVtZW50cy9nc3RidWZmZXJzdG9yZS5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0YnVmZmVyc3RvcmUuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHRlZS5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSogZ3N0L2luZGV4ZXJzLy5naXRpZ25vcmU6CgkqIGdzdC9pbmRleGVycy9NYWtlZmlsZS5hbToKCSogZ3N0L2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJKiBnc3QvaW5kZXhlcnMvZ3N0aW5kZXhlcnMuYzoKCSogZ3N0L2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6CgkgIHJlbW92ZSBtb3ZlZCBkaXJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgbW92ZWQgZGlycwoKMjAwNS0xMS0yOSAxODowMjo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvcmVnaXN0cmllcy8uZ2l0aWdub3JlOgoJKiBnc3Qvc2NoZWR1bGVycy8uZ2l0aWdub3JlOgoJICByZW1vdmUgZW1wdHkgZGlycwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGVtcHR5IGRpcnMKCjIwMDUtMTEtMjkgMTg6MDA6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG8gQ1ZTIHN1cmdlcnkgYW5kIHJlbGF0ZWQgYnVpbGQgZml4ZXJ5IHRvIG1vdmUgZWxlbWVudHMgYW5kIGluZGV4ZXJzIGluIGEgbmV3IGdzdHJlYW1lci9wbHVnaW5zIGRpcmVjdG9yeSwgb3V0IG9mIHRoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgICogcGx1Z2lucy9pbmRleGVycy9NYWtlZmlsZS5hbToKCSAgZG8gQ1ZTIHN1cmdlcnkgYW5kIHJlbGF0ZWQgYnVpbGQgZml4ZXJ5IHRvIG1vdmUgZWxlbWVudHMKCSAgYW5kIGluZGV4ZXJzIGluIGEgbmV3IGdzdHJlYW1lci9wbHVnaW5zIGRpcmVjdG9yeSwgb3V0IG9mIHRoZQoJICBnc3QvIGRpcmVjdG9yeQoKMjAwNS0xMS0yOSAxNzo0NzowNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgUmVuYW1lIGdzdG5ldC10ZW1wbmFtZSB0byBnc3RuZXQuIEZpeGVzICMzMjIyNTcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTI5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LXVuaW5zdGFsbGVkLnBjLmluOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LnBjLmluOgoJICAqIGdzdC9uZXQvTWFrZWZpbGUuYW06IFJlbmFtZSBnc3RuZXQtdGVtcG5hbWUgdG8gZ3N0bmV0LiBGaXhlcwoJICAjMzIyMjU3LgoKMjAwNS0xMS0yOSAxNzozNTowMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMTEtMjkgMTc6MzM6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHJlbW92ZSBzb21lIG1vcmUgY29tcGxldGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBzb21lIG1vcmUgY29tcGxldGUKCjIwMDUtMTEtMjkgMTc6MzI6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdG9vbHMvOiByZW1vdmluZyAtY29tcHByZXAgYW5kIC1jb21wbGV0ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9NYWtlZmlsZS5hbToKCSAgKiB0b29scy9nc3QtY29tcGxldGUuMS5pbjoKCSAgKiB0b29scy9nc3QtY29tcGxldGUuYzoKCSAgKiB0b29scy9nc3QtY29tcHByZXAuMS5pbjoKCSAgKiB0b29scy9nc3QtY29tcHByZXAuYzoKCSAgcmVtb3ZpbmcgLWNvbXBwcmVwIGFuZCAtY29tcGxldGUKCjIwMDUtMTEtMjkgMTc6MjM6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGV2ZW50Lio6IGZpeCAjMzIwNTI5IC0gY2xlYW4gdXAgbmV3X3NlZ21lbnQgQVBJIGFuZCBzdHJ1Y3R1cmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19uZXdfc2VnbWVudCksCgkgIChnc3RfZXZlbnRfcGFyc2VfbmV3X3NlZ21lbnQpOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBmaXggIzMyMDUyOSAtIGNsZWFuIHVwIG5ld19zZWdtZW50IEFQSSBhbmQgc3RydWN0dXJlLgoJICBMZXQncyBob3BlIGV2ZXJ5b25lIHdhcyB1c2luZyB0aGUgbWV0aG9kcywgYW5kIG5vdCB0aGUgc3RydWN0dXJlLgoKMjAwNS0xMS0yOSAxNzoxMzo0NCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFByb3Blcmx5IGhhbmRsZSBub24gR1NUX0ZPUk1BVF9USU1FIHNlZ21lbnQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBQcm9wZXJseSBoYW5kbGUgbm9uIEdTVF9GT1JNQVRfVElNRSBzZWdtZW50CgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKToKCSAgUHJvcGVybHkgaGFuZGxlIG5vbiBHU1RfRk9STUFUX1RJTUUgc2VnbWVudAoJICAqIGdzdC9nc3RzZWdtZW50LmM6CgkgIFRoaXMgZnVuY3Rpb24gaXMgdmFsaWQgaWYgdGhlIGFjY3VtdWxhdG9yIGlzIDAgYW5kIHRoZSBmb3JtYXQKCSAgaXMgZGlmZmVyZW50IGZyb20gdGhlIHJlcXVlc3RlZCBmb3JtYXQuCgoyMDA1LTExLTI5IDE1OjUwOjUwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBnc3RfcXVlcnlfbmV3X3NlZWtpbmcgYW5kIGdzdF9xdWVyeV9wYXJzZV9zZWVraW5nIHRvIHRoZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgZ3N0X3F1ZXJ5X25ld19zZWVraW5nIGFuZCBnc3RfcXVlcnlfcGFyc2Vfc2Vla2luZyB0byB0aGUKCSAgZG9jcy4KCjIwMDUtMTEtMjkgMTU6MTU6MzggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBGaXggY29uZmxpY3QgbWFya2VyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaXggY29uZmxpY3QgbWFya2VyCgoyMDA1LTExLTI5IDE1OjEyOjIyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogVHJlYXQgYSBwYWQgYWxsb2Mgd2l0aCBuZXcgY2FwcyB0aGUgc2FtZSBhcyBpZiB3ZSB3ZXJlIG5vdCBuZWdvdGlhdGVkLCBpbiBvcmRlciB0byBhbGxvdy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgVHJlYXQgYSBwYWQgYWxsb2Mgd2l0aCBuZXcgY2FwcyB0aGUgc2FtZSBhcyBpZiB3ZSB3ZXJlIG5vdAoJICBuZWdvdGlhdGVkLCBpbiBvcmRlciB0byBhbGxvdyBhIGNoYW5naW5nIHVwc3RyZWFtIG91dHB1dAoJICB0byBwcm9kdWNlIGEgbmV3IGZvcm1hdCBvZiBkYXRhLgoKMjAwNS0xMS0yOSAxNDo0NzowNyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogVGhlIGV2ZW50IHZpcnR1YWwgbWV0aG9kIGlzIG5vdyBwcm9wZXJseSBpbXBsZW1lbnRlZCwgd2l0aCBhIGRlZmF1bHQgaGFuZGxlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50ZnVuYyk6CgkgIFRoZSBldmVudCB2aXJ0dWFsIG1ldGhvZCBpcyBub3cgcHJvcGVybHkgaW1wbGVtZW50ZWQsIHdpdGggYSBkZWZhdWx0CgkgIGhhbmRsZXIKCSAgU3ViIGNsYXNzZXMgc2hvdWxkIGNhbGwgdGhlIHBhcmVudF9jbGFzcyBldmVudCBtZXRob2QuIFRoZXkgc2hvdWxkCgkgIHJldHVybiBGQUxTRSBpZiB0aGV5IGhhZCBhIHByb2JsZW0gaGFuZGxpbmcgdGhlIGdpdmVuIGV2ZW50LCBvciBkb24ndAoJICB3YW50IEdzdEJhc2VUcmFuc2Zvcm0gdG8gc2VuZCB0aGF0IGV2ZW4gZG93bnN0cmVhbQoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpLAoJICAoZ3N0X2lkZW50aXR5X2luaXQpLCAoZ3N0X2lkZW50aXR5X2V2ZW50KSwKCSAgKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApLCAoZ3N0X2lkZW50aXR5X3NldF9wcm9wZXJ0eSksCgkgIChnc3RfaWRlbnRpdHlfZ2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgQWRkZWQgdGhlIHNpbmdsZS1zZWdtZW50IGJvb2xlYW4gcHJvcGVydHkuCgkgIElmIHNldCB0byBUUlVFLCBpdCB3aWxsIG91dHB1dCBhIHNpbmdsZSBzZWdtZW50IG9mIGRhdGEsIHN0YXJ0aW5nIGZyb20KCSAgMCwgd2lsbCBlYXQgdXAgYWxsIGluY29taW5nIG5ld3NlZ21lbnQsIGFuZCBtb2RpZnkgdGhlIHRpbWVzdGFtcCBvZiB0aGUKCSAgYnVmZmVycyBhY2NvcmRpbmdseQoKMjAwNS0xMS0yOSAxNDo0Mzo1MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS90aG9tYXN2cy8wLjEwOgoJICBmdXJ0aGVyIHJldmlldwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZnVydGhlciByZXZpZXcKCjIwMDUtMTEtMjkgMTM6MTA6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogRG9uJ3QgcmVmIE5VTEwgdGFyZ2V0IHBhZCAoIzMyMjc1MSkuIEltcHJvdmUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2dldF90YXJnZXQpOgoJICBEb24ndCByZWYgTlVMTCB0YXJnZXQgcGFkICgjMzIyNzUxKS4gSW1wcm92ZSBkb2NzLgoKMjAwNS0xMS0yOSAxMTowNzo1NCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IERvbid0IGNyYXNoIGlmIHdlIGZhaWxlZCB0byBsb2FkIGEgZmVhdHVyZSBmcm9tIGEgcGx1Z2luLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGxvYWRfcGx1Z2luKToKCSAgRG9uJ3QgY3Jhc2ggaWYgd2UgZmFpbGVkIHRvIGxvYWQgYSBmZWF0dXJlIGZyb20gYSBwbHVnaW4uCgoyMDA1LTExLTI5IDAwOjUxOjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL3Rob21hc3ZzLzAuMTA6CgkgIGFkZCBteSB0b2RvcyBmb3IgMC4xMAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG15IHRvZG9zIGZvciAwLjEwCgoyMDA1LTExLTI4IDIxOjUxOjM3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6IHVzZSBtb3JlIGNoZWNrIEFQSSBhbmQgbGVzcyBHTGliIEFQSQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOiAoc2V0dXBfcGlwZWxpbmUpLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICB1c2UgbW9yZSBjaGVjayBBUEkgYW5kIGxlc3MgR0xpYiBBUEkKCjIwMDUtMTEtMjggMjE6NDg6MTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSAgY29zbWV0aWMgY2hhbmdlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29zbWV0aWMgY2hhbmdlcwoKMjAwNS0xMS0yOCAxOTo1ODo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBNYWtlZmlsZS5hbTogZG9uJ3QgcnVuIGNoZWNrcyBpZiB3ZSBkb24ndCBoYXZlIGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICBkb24ndCBydW4gY2hlY2tzIGlmIHdlIGRvbid0IGhhdmUgY2hlY2sKCSAgKiBjb21tb24vY2hlY2subWFrOgoJICByZW1vdmUgdGhlIHJlZ2lzdHJ5IHdoZW4gcnVubmluZyBtYWtlIHRvcnR1cmUKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICByZW1vdmUgc2Vjb25kIG11bHRpcGx5CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbG9vcCk6CgkgIGZpeCBhIGNvbXBpbGUgd2FybmluZyB3aGVuIGRpc2FibGluZyBkZWJ1ZwoKMjAwNS0xMS0yOCAxOTo0MzoyNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0aW5mby5oOiBIZXkhIExldCdzIHByaW50IHRoZSBwYWQgbmFtZSBpZiB0aGUgcG9pbnRlciAhPSBOVUxMIGluc3RlYWQgb2Ygd2hlbiBpdCA9PSBOVUxMIDotKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBIZXkhIExldCdzIHByaW50IHRoZSBwYWQgbmFtZSBpZiB0aGUgcG9pbnRlciAhPSBOVUxMIGluc3RlYWQKCSAgb2Ygd2hlbiBpdCA9PSBOVUxMIDotKQoKMjAwNS0xMS0yOCAxODo0NDoxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3R1dGlscy5jOiBVcGRhdGVkIGNoZWNrLCBhZGQgc29tZSBzY2FsaW5nIGFjY3VyYWN5IGNoZWNraW5nIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3R1dGlscy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVcGRhdGVkIGNoZWNrLCBhZGQgc29tZSBzY2FsaW5nIGFjY3VyYWN5IGNoZWNraW5nIGNvZGUuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF9kaXYxMjhfNjQpLAoJICAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludDY0KSwgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZSksCgkgIChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50KToKCSAgRml4IDYgdGltZXMgZmFzdGVyIGRpdmlzaW9uIGNvZGUuIE9wdGltaXplIGZvciBjb21tb24KCSAgMS8xIGFuZCBsZXNzIGNvbW1vbiBYLzEgY2FzZXMuCgoyMDA1LTExLTI4IDE3OjU5OjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBkb2MgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jIHVwZGF0ZXMKCjIwMDUtMTEtMjggMTY6MDU6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0dXRpbHMuYzogTW9yZSBjaGVja3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3R1dGlscy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3V0aWxzX3N1aXRlKToKCSAgTW9yZSBjaGVja3MuCgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfZmluYWxpemUpLCAoZ3N0X2Nsb2NrX3NldF9tYXN0ZXIpLAoJICAoZG9fbGluZWFyX3JlZ3Jlc3Npb24pLCAoZ3N0X2Nsb2NrX2FkZF9vYnNlcnZhdGlvbik6CgkgIENsZWFudXBzLgoJICBSZWxlYXNlIGxvY2sgd2hlbiB0aGUgY2xvY2sgY2Fubm90IGJlIHNsYXZlZC4KCSAgQ2F0Y2ggdGhlIGNhc2Ugd2hlcmUgdGhlIHJlZ3Jlc3Npb24gcmV0dXJuZWQgYW4gaW52YWxpZCBkZW5vbWluYXRvci4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX2RpdjEyOF82NF9pdGVyYXRlKSwKCSAgKGdzdF91dGlsX2RpdjEyOF82NCksIChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50NjQpLAoJICAoZ3N0X3V0aWxfdWludDY0X3NjYWxlKSwgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQpOgoJICBBZGQgcHJvdGVudGlhbGx5IG1vcmUgcGVyZm9ybWFudCBub24taXRlcmF0aXZlIDEyOC82NCBkaXZpZGUgZnVuY3Rpb24KCSAgdGhhdCB1bmZvcnR1bmF0bHkgZG9lcyBub3Qgd29yayB5ZXQuCgkgIFNob3J0Y3V0IHRoZSB0cml2aWFsIDAvWCA9IDAgY2FzZS4KCSAgUmVtb3ZlIHRoZSB3YXJuaW5ncyBvbiBvdmVyZmxvdy4KCjIwMDUtMTEtMjggMTQ6MTg6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBldmVyeXRoaW5nIGNhdXNpbmcgYSBwbHVnaW4gbm90IHRvIGxvYWQgc2hvdWxkIGJlIGF0IGxlYXN0IGEgV0FSTklORwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX3JlZ2lzdGVyX2Z1bmMpOgoJICBldmVyeXRoaW5nIGNhdXNpbmcgYSBwbHVnaW4gbm90IHRvIGxvYWQgc2hvdWxkIGJlIGF0IGxlYXN0IGEgV0FSTklORwoKMjAwNS0xMS0yOCAxNDowMjo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgbG9nIGNhcHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGxvZyBjYXBzCgoyMDA1LTExLTI4IDE0OjAxOjUyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGZpeCBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZG9jcwoKMjAwNS0xMS0yOCAxMzoyNToxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy9kcGFyYW1zLnR4dDogc29tZSBUT0RPcyBmb3IgdGhlIG5leHQgZGV2IGN5Y2xlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHBhcmFtcy50eHQ6CgkgIHNvbWUgVE9ET3MgZm9yIHRoZSBuZXh0IGRldiBjeWNsZQoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfc2V0X2ludGVycG9sYXRpb25fbW9kZSksCgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9uZXcpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICB1c2UgYmFzZSB0eXBlIHRvIGFzc2lnbiBhY2NjZXNzb3IgZnVuY3Rpb25zCgoyMDA1LTExLTI4IDExOjMxOjMxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBPb3BzLCB0aGF0IHNob3VsZCBoYXZlIGJlZW4gdG9wX3NyY2RpcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgT29wcywgdGhhdCBzaG91bGQgaGF2ZSBiZWVuIHRvcF9zcmNkaXIKCjIwMDUtMTEtMjggMTA6Mjk6MzcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGRpc2FibGUgcGlwZWxpbmUgdGVzdCB1bnRpbCBzb21lb25lIGZpeGVzIHRoZSB1bnJlbGlhYmxlIGVycm9ycwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGlzYWJsZSBwaXBlbGluZSB0ZXN0IHVudGlsIHNvbWVvbmUgZml4ZXMgdGhlIHVucmVsaWFibGUgZXJyb3JzCgoyMDA1LTExLTI4IDEwOjA3OjM4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrLzogVXNlIGEgY21kbGluZSBkZWZpbmUgdG8gc3BlY2lmeSB0aGUgbG9jYXRpb24gb2YgYSBmaWxlIHRvIHVzZSBmb3IgdGVzdGluZywgdG8gYXZvaWQgYnJlYWtpbmcgZGlzdGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9lbGVtZW50cy9mZHNyYy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVc2UgYSBjbWRsaW5lIGRlZmluZSB0byBzcGVjaWZ5IHRoZSBsb2NhdGlvbiBvZiBhIGZpbGUgdG8gdXNlIGZvcgoJICB0ZXN0aW5nLCB0byBhdm9pZCBicmVha2luZyBkaXN0Y2hlY2suCgoyMDA1LTExLTI4IDEwOjA0OjQ1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmMgKGZpeGF0ZV92YWx1ZSk6IFVzZSBhcnJheSBmdW5jdGlvbnMgZm9yIGFycmF5cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5jIChmaXhhdGVfdmFsdWUpOiBVc2UgYXJyYXkgZnVuY3Rpb25zIGZvciBhcnJheXMuCgoyMDA1LTExLTI4IDA5OjU1OjE5ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBDbGFyaWZ5IHRoZSBvdXRwdXQgc3RyaW5ncywgbWFrZXMgaXQgZWFzaWVyIHRvIHRyYW5zbGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgIENsYXJpZnkgdGhlIG91dHB1dCBzdHJpbmdzLCBtYWtlcyBpdCBlYXNpZXIgdG8gdHJhbnNsYXRlLgoJICBGaXhlcyAjMzIyNjI2CgoyMDA1LTExLTI4IDA4OjIwOjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9NYWtlZmlsZS5hbTogZG9uJ3QgdHJ5IGFuZCBidWlsZCBuZXQgaWYgd2UgZG9uJ3QgZXZlbiBoYXZlIDxzeXMvc29ja2V0Lmg+CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgZG9uJ3QgdHJ5IGFuZCBidWlsZCBuZXQgaWYgd2UgZG9uJ3QgZXZlbiBoYXZlIDxzeXMvc29ja2V0Lmg+CgoyMDA1LTExLTI3IDIyOjUwOjA5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrLzogQWRkIHRlc3RzIGZvciBmZHNyYyBzZWVrYWJpbGl0eQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9lbGVtZW50cy9mZHNyYy5jOiAoZXZlbnRfZnVuYyksIChzZXR1cF9mZHNyYyksCgkgIChjbGVhbnVwX2Zkc3JjKSwgKEdTVF9TVEFSVF9URVNUKSwgKGZkc3JjX3N1aXRlKSwgKG1haW4pOgoJICBBZGQgdGVzdHMgZm9yIGZkc3JjIHNlZWthYmlsaXR5CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRzcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmRzcmNfaW5pdCksIChnc3RfZmRzcmNfdXBkYXRlX2ZkKSwgKGdzdF9mZHNyY19zdGFydCksCgkgIChnc3RfZmRzcmNfc2V0X3Byb3BlcnR5KSwgKGdzdF9mZHNyY19pc19zZWVrYWJsZSksCgkgIChnc3RfZmRzcmNfZ2V0X3NpemUpLCAoZ3N0X2Zkc3JjX3VyaV9zZXRfdXJpKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSAgZmRzcmMgc2hvdWxkIG5vdCBiZSBhICdsaXZlJyBzb3VyY2UuCgkgIEltcGxlbWVudCBzZWVraW5nIG9uIHNlZWthYmxlIGZkJ3MuCgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbmV3X3NlZWtpbmcpLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX3NlZWtpbmcpOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBJbXBsZW1lbnQgU0VFS0lORyBxdWVyeSBmdW5jdGlvbnM6CgkgICpfbmV3X3NlZWtpbmcgYW5kICpfcGFyc2Vfc2Vla2luZwoKMjAwNS0xMS0yNyAyMjo0MzowOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogZG9uJ3QgbG9vcCBmb3JldmVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9kaXNwb3NlKToKCSAgZG9uJ3QgbG9vcCBmb3JldmVyCgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBkb2MgZml4ZXMKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X3NldF9pbnRlcnBvbGF0aW9uX21vZGUpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAoaW50ZXJwb2xhdGVfbm9uZV9nZXRfZW51bV92YWx1ZV9hcnJheSk6CgkgIHN1cHBvcnQgY29udHJvbGxpbmcgZW51bXMKCjIwMDUtMTEtMjcgMTk6NTI6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuYzogSW1wcm92ZSBkb2N1bWVudGF0aW9uIGZvciBnc3RfdmFsdWVfdW5pb24oKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIEltcHJvdmUgZG9jdW1lbnRhdGlvbiBmb3IgZ3N0X3ZhbHVlX3VuaW9uKCkuCgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIENoYW5nZSByZXR1cm4gdmFsdWUgZm9yIHVuaW9uLCBpbnRlcnNlY3QgYW5kIHN1YnRyYWN0IGZ1bmN0aW9ucwoJICBmcm9tIGdpbnQgdG8gZ2Jvb2xlYW4uCgoyMDA1LTExLTI3IDE4OjExOjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLio6IFVzZSBnaW50LCBnZG91YmxlIGFuZCBnY2hhciBpbiBvdXIgQVBJIGluc3RlYWQgb2YgaW50LCBkb3VibGUgYW5kIGNoYXIgKGFuZCBtYWtlIHVzYWdlIGluIGdzdHZhbHVlLmMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9hbnlfbGlzdCksCgkgIChnc3RfdmFsdWVfdHJhbnNmb3JtX2FueV9saXN0X3N0cmluZyksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfbGlzdCksIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfYXJyYXkpLAoJICAoZ3N0X3ZhbHVlX3NldF9pbnRfcmFuZ2UpLCAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ludF9yYW5nZSksCgkgIChnc3RfdmFsdWVfc2V0X2RvdWJsZV9yYW5nZSksIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZG91YmxlX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9zZXRfZnJhY3Rpb25fcmFuZ2VfZnVsbCksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2NhcHMpLCAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2J1ZmZlciksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfYm9vbGVhbiksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfaW50X2hlbHBlciksIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZG91YmxlKSwKCSAgKGdzdF92YWx1ZV9zZXJpYWxpemVfZmxvYXQpLCAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2Zsb2F0KSwKCSAgKGdzdF9zdHJpbmdfd3JhcCksIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfc3RyaW5nKSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9lbnVtKSwgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9mbGFncyksCgkgIChnc3RfdmFsdWVfdW5pb25faW50X3JhbmdlX2ludF9yYW5nZSksCgkgIChnc3RfdmFsdWVfaW50ZXJzZWN0X2ludF9yYW5nZV9pbnRfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9kb3VibGVfcmFuZ2VfZG91YmxlX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9jcmVhdGVfbmV3X3JhbmdlKSwgKGdzdF92YWx1ZV9zdWJ0cmFjdF9pbnRfcmFuZ2VfaW50KSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9pbnRfcmFuZ2VfaW50X3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9kb3VibGVfZG91YmxlX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9kb3VibGVfcmFuZ2VfZG91YmxlX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9mcmFjdGlvbik6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIFVzZSBnaW50LCBnZG91YmxlIGFuZCBnY2hhciBpbiBvdXIgQVBJIGluc3RlYWQgb2YgaW50LCBkb3VibGUgYW5kCgkgIGNoYXIgKGFuZCBtYWtlIHVzYWdlIGluIGdzdHZhbHVlLmMgbW9yZSBjb25zaXN0ZW50KS4KCjIwMDUtMTEtMjcgMTc6MDU6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBhZGQgdW5kZWZpbmVkIGZvciBjb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgdW5kZWZpbmVkIGZvciBjb3JlCgoyMDA1LTExLTI3IDE2OjQ2OjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGZpeCB1cCBNYWtlZmlsZS5hbSBhbmQgcmVtb3ZlIEdTVF9FTkFCTEVfTkVXCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggdXAgTWFrZWZpbGUuYW0gYW5kIHJlbW92ZSBHU1RfRU5BQkxFX05FVwoKMjAwNS0xMS0yNyAxNToxNTozNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB1cGRhdGUgTERGTEFHUyB1c2Ugc29tZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbmV0L01ha2VmaWxlLmFtOgoJICB1cGRhdGUgTERGTEFHUyB1c2Ugc29tZSBtb3JlCgoyMDA1LTExLTI3IDE0OjE5OjM4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJICBGaXhlcyAjMzEyNTg5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaXhlcyAjMzEyNTg5CgoyMDA1LTExLTI3IDE0OjAzOjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgYWRkIHNvbWUgYWRkaXRpb25hbCBmYWlsX2lmJ3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBzb21lIGFkZGl0aW9uYWwgZmFpbF9pZidzCgoyMDA1LTExLTI2IDExOjI4OjMyICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogVGhpcyBzaG91bGRuJ3QgaXNzdWUgYSBnX3dhcm5pbmcgc2luY2UgaXQgcmV0dXJucyBOVUxMIGlmIGl0IGNvdWxkbid0IGZpbmQgdGhlIHBsdWdpbiwgYW5kIGFsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IChnc3RfcGx1Z2luX2ZlYXR1cmVfbG9hZCk6CgkgIFRoaXMgc2hvdWxkbid0IGlzc3VlIGEgZ193YXJuaW5nIHNpbmNlIGl0IHJldHVybnMgTlVMTCBpZiBpdAoJICBjb3VsZG4ndCBmaW5kIHRoZSBwbHVnaW4sIGFuZCBhbGwgZnVuY3Rpb25zIHVzaW5nIHRoaXMgYmVoYXZlCgkgIHByb3Blcmx5IG9uIGEgTlVMTCByZXR1cm4uIFN3aXRjaGluZyB0byBhIEdTVF9XQVJOSU5HLgoKMjAwNS0xMS0yNSAxNzowNjozNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IERvbid0IGxlYWsgY2xvY2sgbWVzc2FnZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIERvbid0IGxlYWsgY2xvY2sgbWVzc2FnZXMuCgoyMDA1LTExLTI1IDExOjM4OjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IE9wdGltaXNhdGlvbnMsIHJlbW92ZSB1bm5lZWRlZCB2YXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQ2NCksCgkgIChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50KToKCSAgT3B0aW1pc2F0aW9ucywgcmVtb3ZlIHVubmVlZGVkIHZhcnMuCgoyMDA1LTExLTI1IDAwOjAyOjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdHV0aWxzLmM6IEFkZGVkIG1vcmUgY2hlY2tzIGZvciB0aGUgaGlnaCBwcmVjaXNpb24gdWludDY0IGNhc2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0dXRpbHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF91dGlsc19zdWl0ZSk6CgkgIEFkZGVkIG1vcmUgY2hlY2tzIGZvciB0aGUgaGlnaCBwcmVjaXNpb24gdWludDY0IGNhc2VzLgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludDY0KSwKCSAgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZSksIChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50KToKCSAgSW1wbGVtZW50IGhpZ2ggcHJlY2lzc2lvbiAoZ3VpbnQ2NCAqIGd1aW50NjQpIC8gZ3VpbnQ2NC4KCjIwMDUtMTEtMjQgMTk6MDY6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEZpeCB3cm9uZyBwZXJjZW50YWdlIHF1ZXJ5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcXVlcnkpOgoJICBGaXggd3JvbmcgcGVyY2VudGFnZSBxdWVyeS4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX3VpbnQ2NF9zY2FsZSksCgkgIChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50KToKCSAgQWRkIHNvbWUgbW9yZSBjb21tb24gY2FzZXMgdGhhdCBjYW4gYmUgaGFuZGxlZAoJICBlZmZpY2llbnRseSB0byBfc2NhbGUuCgoyMDA1LTExLTI0IDE4OjQ0OjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIHJlbW92ZSB3cm9uZ2x5IGNvbW1pdGVkIGNvbW1lbnRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgd3JvbmdseSBjb21taXRlZCBjb21tZW50cwoKMjAwNS0xMS0yNCAxODo0MDo1OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOiBkb24ndCB1c2UgY2hlY2sgY2FsbHMgZnJvbSB0aHJlYWRzOyBjaGVjayBwcm9iYWJseSBpc24ndCB0aHJlYWRzYWZlIGFuZCB1c2luZyBhIGxvY2sgdG8gbWEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzogKHRocmVhZF9yZWYpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X21pbmlfb2JqZWN0X3N1aXRlKToKCSAgZG9uJ3QgdXNlIGNoZWNrIGNhbGxzIGZyb20gdGhyZWFkczsgY2hlY2sgcHJvYmFibHkgaXNuJ3QKCSAgdGhyZWFkc2FmZSBhbmQgdXNpbmcgYSBsb2NrIHRvIG1ha2UgaXQgdGhyZWFkc2FmZSB3b3VsZAoJICBkZWZlYXQgdGhlIHB1cnBvc2Ugb2YgdGhpcyBjaGVjawoJICAqIGdzdC9jaGVjay9nc3RjaGVjay5jOgoJICAqIGdzdC9jaGVjay9nc3RjaGVjay5oOgoJICB1c2UgR1NUX0RFQlVHIHNvbWUgbW9yZQoKMjAwNS0xMS0yNCAxODowMzoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBDaGFpbiB0cml2aWFsIGNhc2UgdG8gX3NjYWxlX2ludC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF91aW50NjRfc2NhbGUpLAoJICAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludCk6CgkgIENoYWluIHRyaXZpYWwgY2FzZSB0byBfc2NhbGVfaW50LgoKMjAwNS0xMS0yNCAxNzo0NDo1NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3R1dGlscy5jOiBBZGRlZCB0ZXN0IGZvciBzY2FsaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0dXRpbHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF91dGlsc19zdWl0ZSk6CgkgIEFkZGVkIHRlc3QgZm9yIHNjYWxpbmcuCgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIFNtYWxsIGRvYyBmaXguCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50KToKCSAgSW1wbGVtZW50ZWQgaGlnaCBwcmVjaXNpb24gc2NhbGluZyBjb2RlLgoKMjAwNS0xMS0yNCAxNjo1NjoyOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGluZm8uaDogZG8gbm90IGNyYXNoIG9uIHBhZD09TlVMTAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBkbyBub3QgY3Jhc2ggb24gcGFkPT1OVUxMCgoyMDA1LTExLTI0IDE2OjMyOjI2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJICBGaXggZGlzdGNoZWNrIGlzc3VlcyBmb3IgdGhlIGxpYnJhcmllcyBkb2NzIGJ1aWxkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU3RlZmFuIEtvc3QKCSAgKiBjb21tb24vZ3RrLWRvYy5tYWs6CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICBGaXggZGlzdGNoZWNrIGlzc3VlcyBmb3IgdGhlIGxpYnJhcmllcyBkb2NzIGJ1aWxkCgkgIENsb3NlcyAjMzE5NTk5CgoyMDA1LTExLTI0IDE0OjM5OjU5ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6IEZpeCBidWcgIzMxNTAyNzogbWVtb3J5IGxlYWsgaW4gZXhhbXBsZSBjb2RlIGluIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgRml4IGJ1ZyAjMzE1MDI3OiBtZW1vcnkgbGVhayBpbiBleGFtcGxlIGNvZGUgaW4gZG9jcy4KCjIwMDUtMTEtMjQgMTI6NDQ6MjUgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFVubG9jayB0aGUgUFJFUk9MTF9MT0NLIGluIGEgZmFpbHVyZSBjYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yNCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQGZsdWVuZG8uY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICBVbmxvY2sgdGhlIFBSRVJPTExfTE9DSyBpbiBhIGZhaWx1cmUgY2FzZS4KCjIwMDUtMTEtMjQgMTE6MTY6MzIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIGNoZWNrL25ldC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA1LTExLTI0IDA5OjQ0OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RpbmRleC5oOgoJKiBnc3QvZ3N0aW50ZXJmYWNlLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cXVldWUuaDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkqIGdzdC9nc3R0cmFjZS5jOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogZ3N0L2dzdHR5cGVmaW5kLmg6CgkqIGdzdC9nc3R1cmkuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJKiBnc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSogZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgRG9jIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRG9jIGZpeGVzLgoKMjAwNS0xMS0yMyAyMjo1NDo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIHJlbW92ZWQgZGlyZWN0b3JpZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZWQgZGlyZWN0b3JpZXMKCjIwMDUtMTEtMjMgMjI6MjE6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvaW5zdGFudGlhdGUvTWFrZWZpbGUuYW06CgkgIGZpeCBkaXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZGlzdAoKMjAwNS0xMS0yMyAyMToyNDo0NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBNYWtlZmlsZS5hbToKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBhZGQgYSB0b3J0dXJlIHRhcmdldAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgdG9ydHVyZSB0YXJnZXQKCjIwMDUtMTEtMjMgMjE6MTg6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvaW5zdGFudGlhdGUvY3JlYXRlLmM6CgkqIHRlc3RzL25lZ290aWF0aW9uLy5naXRpZ25vcmU6CgkqIHRlc3RzL25lZ290aWF0aW9uL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9uZWdvdGlhdGlvbi9jYXBzbmVnbzEuYzoKCSAgcmVtb3ZlIG9ic29sZXRlIHRlc3RzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgb2Jzb2xldGUgdGVzdHMKCjIwMDUtMTEtMjMgMjE6MTY6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2xhdC5jOgoJKiB0ZXN0cy9tdXhpbmcvLmdpdGlnbm9yZToKCSogdGVzdHMvbXV4aW5nL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9tdXhpbmcvY2FzZTEuYzoKCSogdGVzdHMvcHJvYmVzLy5naXRpZ25vcmU6CgkqIHRlc3RzL3Byb2Jlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvcHJvYmVzL3Byb2JldGVzdC5jOgoJICByZW1vdmUgb2Jzb2xldGUgdGVzdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBvYnNvbGV0ZSB0ZXN0cwoKMjAwNS0xMS0yMyAyMToxMzo1OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RyaWdnZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdHJpZ2dlci9SRUFETUU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdHJpZ2dlci90cmlnZ2VyLmM6CgkqIHRlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL3RyaWdnZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS90cmlnZ2VyL1JFQURNRToKCSogdGVzdHN1aXRlL3RyaWdnZXIvdHJpZ2dlci5jOgoJICByZW1vdmUgdHJpZ2dlciBzdWJkaXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSB0cmlnZ2VyIHN1YmRpcgoKMjAwNS0xMS0yMyAyMToxMjoyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL2Zha2UuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy9uYW1lLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvcHJvcGVydHkuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy9wcm9wZXJ0eS5oOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy9mYWtlLmM6CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy9uYW1lLmM6CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy9wcm9wZXJ0eS5jOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvcHJvcGVydHkuaDoKCSogdGVzdHN1aXRlL2VsZW1lbnRzL3RlZS5jOgoJICByZW1vdmUgdGVzdHMgcmVwbGFjZWQgYnkgY2hlY2tzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgdGVzdHMgcmVwbGFjZWQgYnkgY2hlY2tzCgoyMDA1LTExLTIzIDIwOjA0OjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIEhFQUQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gSEVBRAoKPT09IHJlbGVhc2UgMC45LjYgPT09CgoyMDA1LTExLTIzIDE5OjU1OjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICByZWxlYXNpbmcgMC45LjYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjkuNgoKMjAwNS0xMS0yMyAxODowNzoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDUtMTEtMjMgMTc6NTk6MDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy91cGxvYWQubWFrOgoJICBDaHJpc3RpYW4sIGxlYXJuIHRvIGNvbmZpZ3VyZSB5b3VyIC5zc2gvY29uZmlnIGZpbGUsIGFuZCBTVE9QIGNvbW1pdHRpbmcgdG8gdGhpc2ZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENocmlzdGlhbiwgbGVhcm4gdG8gY29uZmlndXJlIHlvdXIgLnNzaC9jb25maWcgZmlsZSwgYW5kIFNUT1AgY29tbWl0dGluZyB0byB0aGlzZmlsZQoKMjAwNS0xMS0yMyAxNjoxMDozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nbGliLWNvbXBhdC5jOgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgICogZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0Lmg6CgkgIERvYyB1cGRhdGVzLgoKMjAwNS0xMS0yMyAxNTo0OTowNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZmFxL3VzaW5nLnhtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0Y29udHJvbC5zZ21sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wd2cvb3RoZXItc291cmNlLnhtbDoKCSogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkqIGdzdC9nc3RwYWQuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICByZW1vdmUgbWVudGlvbnMgb2Ygc2luZXNyYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIG1lbnRpb25zIG9mIHNpbmVzcmMKCjIwMDUtMTEtMjMgMTQ6NTI6MzEgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IFVwZGF0ZSBmb3IgbmV3IEFQSSBhbmQgQVBJIGNoYW5nZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIFVwZGF0ZSBmb3IgbmV3IEFQSSBhbmQgQVBJIGNoYW5nZXMuCgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICBEb2N1bWVudGF0aW9uIGZpeDogR1NUX1RSWUxPQ0sgLT4gR1NUX09CSkVDVF9UUllMT0NLCgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIERvY3VtZW50YXRpb24gdHlwbyBmaXguCgkgICogZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6CgkgIERvY3VtZW50YXRpb24gZml4ZXMgZm9yIGFyZ3VtZW50cy4KCjIwMDUtMTEtMjMgMTM6MjI6MjEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgQVBJIENoYW5nZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfZ2V0X2ZyYWN0aW9uKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfcGFyc2VfdmFsdWUpLAoJICAoZ3N0X3N0cnVjdHVyZV9maXhhdGVfZmllbGRfbmVhcmVzdF9mcmFjdGlvbik6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludCk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogc2NyaXB0cy91cGRhdGUtZnVuY25hbWVzOgoJICBBUEkgQ2hhbmdlcy4KCSAgUmVuYW1lIGdzdF91dGlsX2Nsb2NrX3RpbWVfc2NhbGUgdG8gZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludAoJICBNYWtlIGdzdF9zdHJ1Y3R1cmVfZml4YXRlX2ZpZWxkX25lYXJlc3RfZnJhY3Rpb24gdGFrZSBhIG51bWVyYXRvcgoJICBhbmQgZGVub21pbmF0b3IgYXJndW1lbnQgaW5zdGVhZCBvZiBhIEdWYWx1ZQoJICBhZGQgZ3N0X3N0cnVjdHVyZV9nZXRfZnJhY3Rpb24gaGVscGVyIGZ1bmN0aW9uLgoKMjAwNS0xMS0yMyAxMzoxNDo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IFVwZGF0ZSBUT0RPLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBVcGRhdGUgVE9ETy4KCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IChnc3RfbmV0X2NsaWVudF9jbG9ja190aHJlYWQpOgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSAgVXNlIHBhcmVudCBmaWVsZHMgZm9yIHRpbWVvdXQgYW5kIHdpbmRvd19zaXplLgoKMjAwNS0xMS0yMyAxMjozOTozNiArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZG9jcy91cGxvYWQubWFrOgoJKiBnc3QvcmVnaXN0cmllcy8uZ2l0aWdub3JlOgoJKiBnc3Qvc2NoZWR1bGVycy8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9jb250cm9sLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2dldGJpdHMvLmdpdGlnbm9yZToKCSAgYWRkIG1pc3NpbmcgY3ZzaWdub3JlcyBzbyBDVlMgc2h1dHMgdXAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtaXNzaW5nIGN2c2lnbm9yZXMgc28gQ1ZTIHNodXRzIHVwCgoyMDA1LTExLTIzIDEyOjM2OjAwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAodGVzdF9mdW5jdGlvbmluZyk6IEFkanVzdCB0byByYXRlX251bS9yYXRlX2Rlbm9tIGNoYW5nZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMgKHRlc3RfZnVuY3Rpb25pbmcpOiBBZGp1c3QgdG8KCSAgcmF0ZV9udW0vcmF0ZV9kZW5vbSBjaGFuZ2UuCgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19vYnNlcnZlX3RpbWVzKTogVGFrZSB0aGUgU0xBVkVfTE9DSyBub3QgdGhlCgkgIE9CSkVDVF9MT0NLLiBEb24ndCBjYWxsIGFkZF9vYnNlcnZhdGlvbiB3aXRoIHRoZSBsb2NrLgoJICAqIGdzdC9nc3RjbG9jay5jIChnc3RfY2xvY2tfaW5pdCk6IEluaXRpYWxpemUgdGhlIHJhdGUgYXMgYQoJICBmcmFjdGlvbi4KCSAgKGdzdF9jbG9ja19hZGp1c3RfdW5sb2NrZWQpOiBBZGp1c3QgdXNpbmcgdWludDY0X3NjYWxlIGFuZCB0aGUKCSAgcmF0ZSBmcmFjdGlvbi4KCSAgKGdzdF9jbG9ja19zZXRfY2FsaWJyYXRpb24sIGdzdF9jbG9ja19nZXRfY2FsaWJyYXRpb24pOiBDaGFuZ2UgdG8KCSAgZGVhbCB3aXRoIHJhdGUgYXMgYSBmcmFjdGlvbiB3aG9zZSBudW1lcmF0b3IgYW5kIGRlbm9taW5hdG9yIGFyZQoJICBHc3RDbG9ja1RpbWUgdmFsdWVzLgoJICAoZ3N0X2Nsb2NrX3NldF9tYXN0ZXIpOiBPbmx5IHVzZSB0aGUgT0JKRUNUX0xPQ0sgdG8gc2V0IHRoZQoJICBtYXN0ZXI7IHRoZSBvdGhlciBmaWVsZHMgYXJlIHByb3RlY3RlZCBieSB0aGUgU0xBVkVfTE9DSy4KCSAgKGRvX2xpbmVhcl9yZWdyZXNzaW9uKTogTm90ZSB0aGF0IHRoaXMgbXVzdCBiZSBjYWxsZWQgd2l0aCB0aGUKCSAgU0xBVkVfTE9DSy4KCSAgKGdzdF9jbG9ja19hZGRfb2JzZXJ2YXRpb24pOiBUYWtlIHRoZSBTTEFWRV9MT0NLLCBub3QgdGhlCgkgIE9CSkVDVF9MT0NLLiBDYWxsIHNldF9jYWxpYnJhdGlvbiBpbnN0ZWFkIG9mIHRvdWNoaW5nIHRoZQoJICB2YXJpYWJsZXMgZGlyZWN0bHkuCgkgIChnc3RfY2xvY2tfc2V0X3Byb3BlcnR5LCBnc3RfY2xvY2tfZ2V0X3Byb3BlcnR5KTogUHJvdGVjdAoJICBtYXN0ZXIvc2xhdmUgcGFyYW1ldGVycyB3aXRoIHRoZSBTTEFWRV9MT0NLLgoJICAqIGdzdC9nc3RjbG9jay5oIChHc3RDbG9jayk6IFJlbW92ZSByYXRlLCBhZGQgcmF0ZV9udW1lcmF0b3IgYW5kCgkgIHJhdGVfZGVub21pbmF0b3IuIFBSM0MxUzMuIEFkZCBhIG5ldyBsb2NrLCB0aGUgU0xBVkVfTE9DSywgYW5kCgkgIG5vdGUgdGhhdCBhbGwgb2YgdGhlIGluc3RhbmNlIHZhcmlhYmxlcyB0aGF0IGFkZF9vYnNlcnZhdGlvbiBhbmQKCSAgdGhlIHNldF9tYXN0ZXIgZnVuY3Rpb25zIHVzZSBhcmUgcHJvdGVjdGVkIGJ5IHRoYXQgbG9jayBhbmQgbm90CgkgIHRoZSBPQkpFQ1RfTE9DSy4KCSAgKEdTVF9DTE9DS19TTEFWRV9MT0NLLCBHU1RfQ0xPQ0tfU0xBVkVfVU5MT0NLKTogTmV3IG1hY3Jvcy4KCSAgKiBnc3QvZ3N0Y2xvY2suYyAoZ3N0X2Nsb2NrX2FkZF9vYnNlcnZhdGlvbik6IE5vIGxvbmdlciByZXF1aXJlcwoJICB0aGUgY2FsbGVyIHRvIHRha2UgdGhlIG9iamVjdCBsb2NrLgoKMjAwNS0xMS0yMyAxMToyMjozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlcnJvci4qOiBBZGQgZXJyb3IgZm9yIGNsb2NrIHN0dWZmLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzogKF9nc3RfY29yZV9lcnJvcnNfaW5pdCk6CgkgICogZ3N0L2dzdGVycm9yLmg6CgkgIEFkZCBlcnJvciBmb3IgY2xvY2sgc3R1ZmYuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9waXBlbGluZV9zZXRfY2xvY2spOgoJICBQb3N0IGNsb2NrIGVycm9yIHdoZW4gY2xvY2sgY2Fubm90IGJlIHVzZWQgaW4gYSBwaXBlbGluZS4KCjIwMDUtMTEtMjMgMTE6MDU6MzcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IG1ha2UgdHdvIHN5bWJvbHMgZnJvbSBnc3RpbmZvIHByaXZhdGUgZm9yIHRoZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIG1ha2UgdHdvIHN5bWJvbHMgZnJvbSBnc3RpbmZvIHByaXZhdGUgZm9yIHRoZSBkb2NzCgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZml4IGRvYyB0eXBvcywgdXBkYXRlIGRvY3MKCjIwMDUtMTEtMjIgMTg6Mjg6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay4qOiBObyBuZWVkIHRvIHN0b3JlIHRoZSBjbG9jaywgdGhlIHBhcmVudCBlbGVtZW50IGNsYXNzIGFscmVhZHkgaGFzIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3Npbmtfd2FpdCksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfZXZlbnQpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIE5vIG5lZWQgdG8gc3RvcmUgdGhlIGNsb2NrLCB0aGUgcGFyZW50IGVsZW1lbnQgY2xhc3MgYWxyZWFkeQoJICBoYXMgaXQuCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9zZXRfY2xvY2tfZnVuYyksIChnc3RfYmluX2FkZF9mdW5jKToKCSAgVXBkYXRlcyBmb3IgY2xvY2tfc2V0IHJldHVybmluZyBhIGdib29sZWFuCgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfZW50cnlfbmV3KSwgKGdzdF9jbG9ja19pZF93YWl0KSwKCSAgKGdzdF9jbG9ja19pZF93YWl0X2FzeW5jKSwgKGdzdF9jbG9ja19jbGFzc19pbml0KSwKCSAgKGdzdF9jbG9ja19pbml0KSwgKGdzdF9jbG9ja19maW5hbGl6ZSksCgkgIChnc3RfY2xvY2tfZ2V0X2ludGVybmFsX3RpbWUpLCAoZ3N0X2Nsb2NrX2dldF90aW1lKSwKCSAgKGdzdF9jbG9ja19zbGF2ZV9jYWxsYmFjayksIChnc3RfY2xvY2tfc2V0X21hc3RlciksCgkgIChnc3RfY2xvY2tfZ2V0X21hc3RlciksIChkb19saW5lYXJfcmVncmVzc2lvbiksCgkgIChnc3RfY2xvY2tfYWRkX29ic2VydmF0aW9uKSwgKGdzdF9jbG9ja19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Nsb2NrX2dldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIEltcGxlbWVudCBtYXN0ZXIvc2xhdmUuIFdoZW4gc2V0dGluZyBhIGNsb2NrIGFzIGEgc2xhdmUsIGEKCSAgcGVyaW9kaWMgdGltZW91dCBpcyBzY2hlZHVsZWQgdG8gc2FtcGxlIG1hc3RlciBhbmQgc2xhdmUgdGltZXMuCgkgIFRoZW4gdGhlIHNsYXZlIGNsb2NrIGlzIHJlY2FsaWJyYXRlZCB0byBtYXRjaCBvZmZzZXQgYW5kIHJhdGUKCSAgb2YgdGhlIG1hc3RlciBjbG9jay4KCSAgVXBkYXRlIGxvZ2dpbmcgYSBiaXQuCgkgIEFkZCBmbGFnIHNvIHRoYXQgYSBjbG9jayBjYW4gc3RhdGUgdGhhdCBpcyBjYW5ub3QgYmUgc2xhdmVkIHRvCgkgIGFub3RoZXIgY2xvY2suCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9jbG9jayk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgVGhlIHNldF9jbG9jayByZXR1cm5zIGEgZ2Jvb2xlYW4gZm9yIHdoZW4gYW4gZWxlbWVudCBjYW5ub3QKCSAgZGVhbCB3aXRoIHRoZSBzZWxlY3RlZCBjbG9jayBpbiB0aGUgcGlwZWxpbmUuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9waXBlbGluZV9zZXRfY2xvY2spOgoJICAqIGdzdC9nc3RwaXBlbGluZS5oOgoJICBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlIHNlbGVjdGVkIGNsb2NrIGNhbm5vdCBiZSBzZXQgb24KCSAgdGhlIHBpcGVsaW5lLgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2NsYXNzX2luaXQpLAoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfaW5pdCksIChnc3RfbmV0X2NsaWVudF9jbG9ja19maW5hbGl6ZSksCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX29ic2VydmVfdGltZXMpOgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSAgVXNlIHJlZ3Jlc3Npb24gY29kZSBpbiBHc3RDbG9jayBwYXJlbnQsIHJlbW92ZSBkdXBsaWNhdGVkCgkgIGZ1bmN0aW9uYWxpdHkuCgoyMDA1LTExLTIyIDE2OjMxOjA4ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQWRkIHVuZGVyc2NvcmVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBBZGQgdW5kZXJzY29yZXMKCjIwMDUtMTEtMjIgMTU6NTI6MDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogY29ycmVjdGx5IGZpeCBHRW51bVZhbHVlcyBzbyB0aGF0IG5pY2sgaXMgdGhlIHNob3J0IGxvd2VyY2FzZSBkYXNoZWQgdGFnCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3Npbmtfc3RhdGVfZXJyb3JfZ2V0X3R5cGUpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfZGF0YV9nZXRfdHlwZSksCgkgIChnc3RfZmFrZV9zcmNfc2l6ZXR5cGVfZ2V0X3R5cGUpLCAoZ3N0X2Zha2Vfc3JjX2ZpbGx0eXBlX2dldF90eXBlKSwKCSAgKGdzdF9mYWtlX3NyY19pbml0KSwgKGdzdF9mYWtlX3NyY19wcmVwYXJlX2J1ZmZlciksCgkgIChnc3RfZmFrZV9zcmNfYWxsb2NfYnVmZmVyKSwgKGdzdF9mYWtlX3NyY19nZXRfc2l6ZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSAgKiBnc3QvZ3N0cXVldWUuYzogKHF1ZXVlX2xlYWt5X2dldF90eXBlKToKCSAgY29ycmVjdGx5IGZpeCBHRW51bVZhbHVlcyBzbyB0aGF0IG5pY2sgaXMgdGhlIHNob3J0IGxvd2VyY2FzZQoJICBkYXNoZWQgdGFnCgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKToKCSAgYWxzbyBzaG93IHRoZSBuaWNrLCBzaW5jZSBpdCdzIHVzZWZ1bCB0byB1c2UgZnJvbSBwYXJzZV9sYXVuY2gKCSAgc3ludGF4CgkgIEZpeGVzICMzMjIxMzkKCjIwMDUtMTEtMjIgMTU6MTU6NTMgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIEFkZCB1dGlsIG1ldGhvZCBmb3Igc2NhbGluZyBhIGNsb2NrdGltZSBieSBhIGZyYWN0aW9uLiBVc2VmdWwgaW1wbGVtZW50YXRpb24gaXMgbGVmdCBhcyBhbiBleGVyY2lzZSBmb3IgdGhlIHJlYWRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF9jbG9ja3RpbWVfc2NhbGUpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCB1dGlsIG1ldGhvZCBmb3Igc2NhbGluZyBhIGNsb2NrdGltZSBieSBhIGZyYWN0aW9uLiBVc2VmdWwKCSAgaW1wbGVtZW50YXRpb24gaXMgbGVmdCBhcyBhbiBleGVyY2lzZSBmb3IgdGhlIHJlYWRlci4KCjIwMDUtMTEtMjIgMTQ6Mjk6MTAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IElmIG5lZWRlZCwgYWxsb2NhdGUgc3RvcmFnZSBpbiB0aGUgZGVzdGluYXRpb24gdmFsdWUgZHVyaW5nIGNvbGxlY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2NvbGxlY3RfZnJhY3Rpb25fcmFuZ2UpOgoJICBJZiBuZWVkZWQsIGFsbG9jYXRlIHN0b3JhZ2UgaW4gdGhlIGRlc3RpbmF0aW9uIHZhbHVlIGR1cmluZwoJICBjb2xsZWN0aW9uLgoKMjAwNS0xMS0yMiAxMzo1ODowMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIFJlbW92ZWQgR3N0VVJJICwgY2xvc2VzIGJ1ZyAjMzIxMDYxCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuaDoKCSAgKiBnc3QvZ3N0dXJpdHlwZS5jOgoJICAqIGdzdC9nc3R1cml0eXBlLmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF9zZXRfb2JqZWN0X2FyZyk6CgkgICogdG9vbHMvZ3N0LWNvbXBwcmVwLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICBSZW1vdmVkIEdzdFVSSSAsIGNsb3NlcyBidWcgIzMyMTA2MQoKMjAwNS0xMS0yMiAxMzoxNDo1MSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBPb3BzLCBicm9rZSBhdXRvbWF0aWMgc3RyaW5nIHR5cGUgcGFyc2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfcGFyc2VfdmFsdWUpOgoJICBPb3BzLCBicm9rZSBhdXRvbWF0aWMgc3RyaW5nIHR5cGUgcGFyc2luZy4KCSAgQWRkIGEgdGVzdCB0byBjYXRjaCBpdCBpbiBmdXR1cmUuCgoyMDA1LTExLTIyIDEzOjAyOjEyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgZ3N0L2dzdHRhZ3NldHRlci5jIChnc3RfdGFnX3NldHRlcl9nZXRfdGFnX21lcmdlX21vZGUpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuYyAoZ3N0X3RhZ19zZXR0ZXJfZ2V0X3RhZ19tZXJnZV9tb2RlKQoJICAoZ3N0X3RhZ19zZXR0ZXJfc2V0X3RhZ19tZXJnZV9tb2RlLCBnc3RfdGFnX3NldHRlcl9nZXRfdGFnX2xpc3QpOgoJICBBY3R1YWxseSByZW5hbWUgdGhlIGZ1bmN0aW9uIGltcGxlbWVudGF0aW9ucy4gR3JyLgoKMjAwNS0xMS0yMiAxMjo1MToxOCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogc2NyaXB0cy91cGRhdGUtZnVuY25hbWVzOgoJICBmaXggYm9ya2VkIGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGJvcmtlZCBjb21taXQKCjIwMDUtMTEtMjIgMTI6MzU6NDIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svZ3N0L2NhcHNsaXN0Lmg6IENvbW1lbnQgdGVzdCBjYXNlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvY2Fwc2xpc3QuaDoKCSAgQ29tbWVudCB0ZXN0IGNhc2VzCgkgICogY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3N0cnVjdHVyZV9zdWl0ZSk6CgkgIFRlc3QgYXV0b21hdGljIHZhbHVlIHR5cGUgZGV0ZWN0aW9uIGluIGdzdF9zdHJ1Y3R1cmVfZnJvbV9zdHJpbmcuCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9wYXJzZV92YWx1ZSk6CgkgIEFkZCBmcmFjdGlvbiBhcyBhIHR5cGUgd2UgdHJ5IGFuZCBndWVzcyBhdXRvbWF0aWNhbGx5IGluCgkgIGNhcHMvc3RydWN0dXJlIHN0cmluZ3MuCgoyMDA1LTExLTIyIDEyOjM1OjM1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBzY3JpcHRzL3VwZGF0ZS1mdW5jbmFtZXM6CgkgIHVwZGF0ZSB1cGRhdGUtZnVuY3MgZm9yIHRhZ3NldHRlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHVwZGF0ZS1mdW5jcyBmb3IgdGFnc2V0dGVyCgoyMDA1LTExLTIyIDEyOjIwOjA0ICswMDAwICBUb3JzdGVuIFNjaG9lbmZlbGQgPGthZmZlZXRpc2NoQGdteC5kZT4KCgkgIGdzdC9nc3R0YWdzZXR0ZXIuKjogKGdzdF90YWdfc2V0dGVyX21lcmdlX3RhZ3MpIChnc3RfdGFnX3NldHRlcl9hZGRfdGFncywgZ3N0X3RhZ19zZXR0ZXJfYWRkX3RhZ192YWx1ZXMpIChnc3RfdGFnX3NldC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgcGF0Y2ggYnk6IFRvcnN0ZW4gU2Nob2VuZmVsZCA8a2FmZmVldGlzY2ggZ214IGRlPgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmM6IChnc3RfdGFnX3NldHRlcl9tZXJnZV90YWdzKQoJICAoZ3N0X3RhZ19zZXR0ZXJfYWRkX3RhZ3MsIGdzdF90YWdfc2V0dGVyX2FkZF90YWdfdmFsdWVzKQoJICAoZ3N0X3RhZ19zZXR0ZXJfYWRkX3RhZ192YWxpc3QpCgkgIChnc3RfdGFnX3NldHRlcl9hZGRfdGFnX3ZhbGlzdF92YWx1ZXMpOiBSZW5hbWVkIGZyb20gX21lcmdlLCBfYWRkLAoJICBfYWRkX3ZhbHVlcywgX2FkZF92YWxpc3QsIGFuZCBfYWRkX3ZhbGlzdF92YWx1ZXMuIFNpbmNlIHRoaXMgaXMgYW4KCSAgaW50ZXJmYWNlIHRoZSBmdW5jdGlvbiBzdWZmaXhlcyBzaG91bGQgYmUgbW9yZSBleHBsaWNpdCBzbwoJICBsYW5ndWFnZSBiaW5kaW5nIGRvbid0IGVuZCB1cCB3aXRoIGVsZW1lbnQuYWRkX3ZhbGlzdCAtPgoJICBnc3RfdGFnX3NldHRlcl9hZGRfdmFsaXN0LCBmb3IgZXhhbXBsZS4gRml4ZXMgIzMyMjA2OS4KCjIwMDUtMTEtMjIgMTI6MTU6MTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBkb24ndCB2YWxncmluZCB0aGUgc3RyZXNzIHRlc3QsIHRha2VzIHRvbyBsb25nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCB2YWxncmluZCB0aGUgc3RyZXNzIHRlc3QsIHRha2VzIHRvbyBsb25nCgoyMDA1LTExLTIyIDExOjU2OjAxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RjYXBzLmM6IEV4dGVuZCBjYXBzIHN0cmluZyB0ZXN0cyB0byBjaGVjayB0aGF0IGEgY2FwcyB0byBzdHJpbmcgY29udmVyc2lvbiBpcyByZXZlcnNpYmxlIGFuZCBwcm9kdWNlcyB0aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBFeHRlbmQgY2FwcyBzdHJpbmcgdGVzdHMgdG8gY2hlY2sgdGhhdCBhIGNhcHMgdG8gc3RyaW5nCgkgIGNvbnZlcnNpb24gaXMgcmV2ZXJzaWJsZSBhbmQgcHJvZHVjZXMgdGhlIHNhbWUgY2Fwcy4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3ZhbHVlX2dldF9nZW5lcmljX3R5cGUpOgoJICBPdXRwdXQgImZyYWN0aW9uIiBhcyB0aGUgZ2VuZXJpYyB0eXBlIGZyYWN0aW9uIHJhbmdlLCBzbyBjYXBzCgkgIHNlcmlhbGlzYXRpb24gYW5kIGRlc2VyaWFsaXNhdGlvbiB3b3Jrcy4KCSAgKiBjaGVjay9nc3QvY2Fwc2xpc3QuaDoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9mcmFjdGlvbik6CgkgIFN1cHBvcnQgJ01JTicgYW5kICdNQVgnIGZvciBkZXNlcmlhbGlzaW5nIGZyYWN0aW9ucy4KCjIwMDUtMTEtMjIgMTE6NTA6MTIgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgTWlub3IgZG9jIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE1pbm9yIGRvYyBmaXguCgoyMDA1LTExLTIyIDExOjQ4OjU4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuaCAoZ3N0X2V2ZW50X25ld19uZXdfc2VnbWVudCkgKGdzdF9ldmVudF9wYXJzZV9uZXdfc2VnbWVudCwgZ3N0X2V2ZW50X25ld19idWZmZXJfc2l6ZSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGV2ZW50LmggKGdzdF9ldmVudF9uZXdfbmV3X3NlZ21lbnQpCgkgIChnc3RfZXZlbnRfcGFyc2VfbmV3X3NlZ21lbnQsIGdzdF9ldmVudF9uZXdfYnVmZmVyX3NpemUpCgkgIChnc3RfZXZlbnRfcGFyc2VfYnVmZmVyX3NpemUsIGdzdF9naG9zdF9wYWRfbmV3X25vX3RhcmdldCk6CgkgIFJlbmFtZWQgZnJvbSAqX25ld3NlZ21lbnQsICpfYnVmZmVyc2l6ZSwgKl9ub3RhcmdldC4KCSAgKiBzY3JpcHRzL3VwZGF0ZS1mdW5jbmFtZXM6IE5ldyBzY3JpcHQsIHBlcmZvcm1zIHRoZSBjaGFuZ2VzCgkgIGxpc3RlZCBhYm92ZS4KCjIwMDUtMTEtMjIgMTE6MjU6MDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBNYWtlIHN1cmUgdGhlIEdzdEZsb3dSZXR1cm4gaXMgcmV0dXJuZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICBNYWtlIHN1cmUgdGhlIEdzdEZsb3dSZXR1cm4gaXMgcmV0dXJuZWQuCgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoX2Z1bGwpLAoJICAoZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoKToKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgIGFkZCBnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2hfZnVsbC4KCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6CgkgIFNtYWxsIHN0eWxlIGNsZWFudXAuCgoyMDA1LTExLTIyIDEwOjI0OjMxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RldmVudC5jOiBCbG9jayB0aGUgZmFrZXNyYyBzcmNwYWQgd2hlbiB3ZSBzZW5kIGFuIGV2ZW50LCB0byBhdm9pZCBjb250ZW50aW9uIG9uIHRoZSBzdHJlYW1fbG9jayBjYXVzaW5nIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnQuYzogKHRlc3RfZXZlbnQpLCAoR1NUX1NUQVJUX1RFU1QpOgoJICBCbG9jayB0aGUgZmFrZXNyYyBzcmNwYWQgd2hlbiB3ZSBzZW5kIGFuIGV2ZW50LCB0byBhdm9pZAoJICBjb250ZW50aW9uIG9uIHRoZSBzdHJlYW1fbG9jayBjYXVzaW5nIHJhbmRvbSB0ZXN0IGZhaWx1cmVzLgoKMjAwNS0xMS0yMiAwOTo0MjoxNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBGaXggc3VidHJhY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2ZyYWN0aW9uX3N1YnRyYWN0KToKCSAgRml4IHN1YnRyYWN0aW9uLgoKMjAwNS0xMS0yMiAwOTozNToyNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdC5oOiBpbmNsdWRlICJnc3RjaGlsZHByb3h5LmgiCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuaDoKCSAgaW5jbHVkZSAiZ3N0Y2hpbGRwcm94eS5oIgoJICAqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgIHVzZSBHX0dOVUNfTlVMTF9URVJNSU5BVEVECgoyMDA1LTExLTIxIDIzOjU0OjU5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEltcGxlbWVudCBmcmFjdGlvbiByYW5nZXMgYW5kIGV4dGVuZCBHc3RGcmFjdGlvbiB0byBzdXBwb3J0IGFyaXRobWV0aWMgc3VidHJhY3Rpb24sIGFzIHdlbGwgYXMgZGVzZXJpYWxpemF0aW9uIGZyb20gaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvY2Fwc2xpc3QuaDoKCSAgKiBjaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3BhcnNlX3JhbmdlKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfZml4YXRlX2ZpZWxkX25lYXJlc3RfZnJhY3Rpb24pOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9pbml0X2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9mcmVlX2ZyYWN0aW9uX3JhbmdlKSwgKGdzdF92YWx1ZV9jb3B5X2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9jb2xsZWN0X2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9sY29weV9mcmFjdGlvbl9yYW5nZSksIChnc3RfdmFsdWVfc2V0X2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9zZXRfZnJhY3Rpb25fcmFuZ2VfZnVsbCksCgkgIChnc3RfdmFsdWVfZ2V0X2ZyYWN0aW9uX3JhbmdlX21pbiksCgkgIChnc3RfdmFsdWVfZ2V0X2ZyYWN0aW9uX3JhbmdlX21heCksCgkgIChnc3RfdmFsdWVfc2VyaWFsaXplX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV90cmFuc2Zvcm1fZnJhY3Rpb25fcmFuZ2Vfc3RyaW5nKSwKCSAgKGdzdF92YWx1ZV9jb21wYXJlX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfaW50ZXJzZWN0X2ZyYWN0aW9uX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9pbnRlcnNlY3RfZnJhY3Rpb25fcmFuZ2VfZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2ZyYWN0aW9uX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9mcmFjdGlvbl9yYW5nZV9mcmFjdGlvbiksCgkgIChnc3RfdmFsdWVfc3VidHJhY3RfZnJhY3Rpb25fcmFuZ2VfZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2NvbGxlY3RfZnJhY3Rpb24pLCAoZ3N0X3ZhbHVlX2ZyYWN0aW9uX211bHRpcGx5KSwKCSAgKGdzdF92YWx1ZV9mcmFjdGlvbl9zdWJ0cmFjdCksIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZnJhY3Rpb24pLAoJICAoZ3N0X3ZhbHVlX3RyYW5zZm9ybV9zdHJpbmdfZnJhY3Rpb24pLCAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgSW1wbGVtZW50IGZyYWN0aW9uIHJhbmdlcyBhbmQgZXh0ZW5kIEdzdEZyYWN0aW9uIHRvIHN1cHBvcnQKCSAgYXJpdGhtZXRpYyBzdWJ0cmFjdGlvbiwgYXMgd2VsbCBhcyBkZXNlcmlhbGl6YXRpb24gZnJvbSBpbnRlZ2VyCgkgIHN0cmluZ3Mgc3VjaCBhcyAiMTAwIgoJICBBZGQgYSB0ZXN0c3VpdGUgYXMgZm9yIGludCBhbmQgZG91YmxlIHJhbmdlIHNldCBvcGVyYXRpb25zCgoyMDA1LTExLTIxIDE5OjU4OjIzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvOiBBZGQgZ2xpYi1jb21wYXQuaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDogQWRkIGdsaWItY29tcGF0LmguCgoyMDA1LTExLTIxIDE5OjEzOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBGaXggZm9yICMzMjE1OTUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgIEZpeCBmb3IgIzMyMTU5NQoKMjAwNS0xMS0yMSAxOTowMDoyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50Lmg6IEFuZCBhZGQgYSBuaWNlIGRlZmluZSB0b28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIEFuZCBhZGQgYSBuaWNlIGRlZmluZSB0b28uCgoyMDA1LTExLTIxIDE4OjUzOjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuKjogTWFrZSBiaW5kaW5nIGZyaWVuZGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfY29weSksIChnc3Rfc2VnbWVudF9nZXRfdHlwZSksCgkgIChnc3Rfc2VnbWVudF9uZXcpLCAoZ3N0X3NlZ21lbnRfZnJlZSksIChnc3Rfc2VnbWVudF9pbml0KSwKCSAgKGdzdF9zZWdtZW50X3NldF9kdXJhdGlvbiksIChnc3Rfc2VnbWVudF9zZXRfbGFzdF9zdG9wKSwKCSAgKGdzdF9zZWdtZW50X3NldF9zZWVrKSwgKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50KSwKCSAgKGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lKSwgKGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSksCgkgIChnc3Rfc2VnbWVudF9jbGlwKToKCSAgKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBNYWtlIGJpbmRpbmcgZnJpZW5kbHkuCgoyMDA1LTExLTIxIDE4OjQxOjM5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvOiBTcHJpbmtsZSBOVUxMX1RFUk1JTkFURUQgdG8gdGFzdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICAqIGdzdC9nc3R1dGlscy5oOiBTcHJpbmtsZSBOVUxMX1RFUk1JTkFURUQgdG8gdGFzdGUuCgoyMDA1LTExLTIxIDE4OjI3OjI2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZXJyb3IuKjogTmV3IGVycm9yIGNhdGVnb3J5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZXJyb3IuYyAoX2dzdF9jb3JlX2Vycm9yc19pbml0KToKCSAgKiBnc3QvZ3N0ZXJyb3IuaCAoR1NUX0NPUkVfRVJST1JfTUlTU0lOR19QTFVHSU4pOiBOZXcgZXJyb3IKCSAgY2F0ZWdvcnkuCgoyMDA1LTExLTIxIDE4OjE2OjAwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvTWFrZWZpbGUuYW0gKGdzdF9oZWFkZXJzKTogQWRkIGdsaWItY29tcGF0LmguIG5vaW5zdCB0aGUgLXByaXZhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9NYWtlZmlsZS5hbSAoZ3N0X2hlYWRlcnMpOiBBZGQgZ2xpYi1jb21wYXQuaC4KCSAgKG5vaW5zdF9IRUFERVJTKTogbm9pbnN0IHRoZSAtcHJpdmF0ZS4KCjIwMDUtMTEtMjEgMTg6MTA6MTMgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC86IFJlbW92ZSB1bmltcGxlbWVudGVkIGRlY2xhcmF0aW9ucyBmb3Igd2hpY2ggd2UgY2FuIHNlZSBubyBzZW5zaWJsZSB1c2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgUmVtb3ZlIHVuaW1wbGVtZW50ZWQgZGVjbGFyYXRpb25zIGZvciB3aGljaCB3ZSBjYW4gc2VlIG5vIHNlbnNpYmxlCgkgIHVzZS4KCjIwMDUtMTEtMjEgMTg6MDM6MjIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3QuaDogSW5jbHVkZSBnbGliLWNvbXBhdC5oLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Lmg6IEluY2x1ZGUgZ2xpYi1jb21wYXQuaC4KCSAgKiBnc3QvZ2xpYi1jb21wYXQuaDogQWRkIEdfR05VQ19OVUxMX1RFUk1JTkFURUQuCgkgICogZ3N0L2dsaWItY29tcGF0LmM6IEluY2x1ZGUgdGhlIHB1YmxpYyBhbmQgdGhlIHByaXZhdGUgaGVhZGVyLgoJICAqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6IENvcGllZCBoZXJlIGZyb20gZ2xpYi1jb21wYXQuaC4KCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IHMvZ2xpYi1jb21wYXQvZ2xpYi1jb21wYXQtcHJpdmF0ZS8uCgoyMDA1LTExLTIxIDE3OjIxOjE1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QvZ3N0ZXZlbnQuYyAoY3JlYXRlX2N1c3RvbV9ldmVudHMpOiBDaGVjayB0aGF0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3RldmVudC5jIChjcmVhdGVfY3VzdG9tX2V2ZW50cyk6IENoZWNrIHRoYXQKCSAgRkxVU0hfU1RPUCBpcyBzZXJpYWxpemVkLgoJICAqIGNoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmMgKGV2ZW50X2Z1bmMpOgoJICAqIGNoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYyAoZXZlbnRfZnVuYyk6IE5vIHN0cmVhbSBsb2NrLCB0aGUgY29yZQoJICB0YWtlcyBpdC4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCk6IE5vIG1vcmUKCSAgc3RyZWFtIGxvY2sgdGFraW5nLCB5YXkuCgkgICogZ3N0L2dzdGV2ZW50LmggKEdTVF9FVkVOVF9GTFVTSF9TVE9QKTogTWFya2VkIGFzIHNlcmlhbGl6ZWQgdG8KCSAgZW5zdXJlIHRoYXQgY29yZSB0YWtlcyB0aGUgc3RyZWFtIGxvY2suCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfZG9fc2Vlayk6IFVwZGF0ZSBmb3Igc3RyZWFtCgkgIGxvY2sgbmFtZSBjaGFuZ2UuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19ldmVudCk6IE5vIG5lZWQgdG8gdGFrZQoJICB0aGUgc3RyZWFtIGxvY2sgZm9yIEVPUywgTkVXU0VHTUVOVCwgb3IgRkxVU0hfU1RPUCwgdGhlIGNvcmUgZG9lcwoJICBpdCBhbHJlYWR5LiBGb3IgdGhlIGZsdXNoIHN0YXJ0IHdlIGRvIHRha2UgaXQgdGhvdWdoIHNvIHdlIGdldCB0aGUKCSAgcmlnaHQgcHJlcm9sbCBzdGF0ZSBjaGFuZ2UgbWVzc2FnZXMuCgkgICogZ3N0L2dzdHF1ZXVlLmMgKGdzdF9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpOiBObyBuZWVkIHRvIHRha2UKCSAgdGhlIHN0cmVhbSBsb2NrIGhlcmUsIHRoZSBjb3JlIGRvZXMgaXQgZm9yIHVzLgoJICAqIGdzdC9nc3RwYWQuaCAoR1NUX1BBRF9HRVRfU1RSRUFNX0xPQ0spOiBSZW5hbWVkIGZyb20KCSAgR1NUX1NUUkVBTV9HRVRfTE9DSy4KCSAgKEdTVF9QQURfU1RSRUFNX0xPQ0ssIEdTVF9QQURfU1RSRUFNX1RSWUxPQ0spCgkgIChHU1RfUEFEX1NUUkVBTV9VTkxPQ0ssIEdTVF9QQURfU1RSRUFNX1VOTE9DS19GVUxMKQoJICAoR1NUX1BBRF9TVFJFQU1fTE9DS19GVUxMKTogUmVuYW1lZCBmcm9tIEdTVF9TVFJFQU1fKi4KCSAgKEdTVF9QQURfR0VUX1BSRVJPTExfTE9DSyk6IFJlbmFtZWQgZnJvbSBHU1RfUFJFUk9MTF9HRVRfTE9DSy4KCSAgKEdTVF9QQURfUFJFUk9MTF9MT0NLLCBHU1RfUEFEX1BSRVJPTExfVFJZTE9DSykKCSAgKEdTVF9QQURfUFJFUk9MTF9VTkxPQ0spOiBSZW5hbWVkIGZyb20gR1NUX1BSRVJPTExfKi4KCSAgKiBnc3QvZ3N0cGFkLmM6IFVwZGF0ZSBmb3Igc3RyZWFtIGxvY2sgbmFtZSBjaGFuZ2UuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogVXBkYXRlIGZvciBwcmVyb2xsIGxvY2sgbmFtZSBjaGFuZ2UuCgoyMDA1LTExLTIxIDE3OjEyOjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQ29udmVydCBDbG9jayBmbGFncyB0byBvYmplY3QgZmxhZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2luaXQpLCAoZ3N0X2Nsb2NrX3NldF9tYXN0ZXIpLAoJICAoZ3N0X2Nsb2NrX2dldF9tYXN0ZXIpOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19pbml0KToKCSAgQ29udmVydCBDbG9jayBmbGFncyB0byBvYmplY3QgZmxhZ3MuCgkgIEFkZGVkIG1ldGhvZHMgdG8gbWFuYWdlIG1hc3Rlci9zbGF2ZSBjbG9ja3MuCgoyMDA1LTExLTIxIDE3OjA5OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgTW9yZSBzZWdtZW50IHVwZGF0ZXMsIHJlcGxhY2UgY29kZSBpbiBwbHVnaW5zIHdpdGggc2VnbWVudCBoZWxwZXIgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfaW5pdCksIChnc3RfYmFzZV9zcmNfcXVlcnkpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmV3c2VnbWVudCksCgkgIChnc3RfYmFzZV9zcmNfY29uZmlndXJlX3NlZ21lbnQpLCAoZ3N0X2Jhc2Vfc3JjX2RvX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfbG9vcCksCgkgIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZiksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCk6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2luaXQpLAoJICAoZ3N0X2Zha2Vfc3JjX2NyZWF0ZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9pbml0KSwgKGdzdF9zZWdtZW50X3NldF9kdXJhdGlvbiksCgkgIChnc3Rfc2VnbWVudF9zZXRfbGFzdF9zdG9wKSwgKGdzdF9zZWdtZW50X3NldF9zZWVrKSwKCSAgKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50KSwgKGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lKSwKCSAgKGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSksIChnc3Rfc2VnbWVudF9jbGlwKToKCSAgKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBNb3JlIHNlZ21lbnQgdXBkYXRlcywgcmVwbGFjZSBjb2RlIGluIHBsdWdpbnMgd2l0aCBzZWdtZW50CgkgIGhlbHBlciBmdW5jdGlvbnMuCgoyMDA1LTExLTIxIDE2OjQ2OjA3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOiBEb24ndCBpZ25vcmUgc3NjYW5mIHJlc3VsdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRzcmNfdXJpX3NldF91cmkpOgoJICBEb24ndCBpZ25vcmUgc3NjYW5mIHJlc3VsdHMKCjIwMDUtMTEtMjEgMTY6NDE6MTYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuaCAoR1NUX0lTX1BBRF9GQVNUKTogUmVtb3ZlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5oIChHU1RfSVNfUEFEX0ZBU1QpOiBSZW1vdmVkLgoKMjAwNS0xMS0yMSAxNjozNDoyNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgKi4qOiBSYW4gc2NyaXB0cy91cGRhdGUtbWFjcm9zLiBPaCB5ZXMuIGdzdC9nc3RvYmplY3QuaCAoR1NUX09CSkVDVF9HRVRfTE9DSywgR1NUX09CSkVDVF9MT0NLKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiAqLmg6CgkgICogKi5jOiBSYW4gc2NyaXB0cy91cGRhdGUtbWFjcm9zLiBPaCB5ZXMuCgkgICogZ3N0L2dzdG9iamVjdC5oIChHU1RfT0JKRUNUX0dFVF9MT0NLLCBHU1RfT0JKRUNUX0xPQ0spCgkgIChHU1RfT0JKRUNUX1RSWUxPQ0ssIEdTVF9PQkpFQ1RfVU5MT0NLKTogUmVuYW1lZCBmcm9tCgkgIEdTVF9HRVRfTE9DSywgZXRjLgoJICAqIHNjcmlwdHMvdXBkYXRlLW1hY3JvczogTmV3IHNjcmlwdC4gUnVuIGl0IG9uIHlvdXIgZmlsZXMgdG8KCSAgY2hhbmdlIEdTVF9MT0NLIHRvIEdTVF9PQkpFQ1RfTE9DSywgYW5kIHRoZSBzYW1lIGZvciBVTkxPQ0sgYXMKCSAgd2VsbC4KCjIwMDUtMTEtMjEgMTU6NDc6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG1vcmUgZG9jcyBmaXhlcywgYWRkIG5ldyBhcGkgdG8gdGhlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBtb3JlIGRvY3MgZml4ZXMsIGFkZCBuZXcgYXBpIHRvIHRoZSBkb2NzCgoyMDA1LTExLTIxIDE1OjAxOjQ4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YmluLmMgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpOiBXaW0gY2xhaW1zIEkgY2FuIHJlbW92ZSB0aGlzIHN0YXRlX2Jyb2FkY2FzdCBjYWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0YmluLmMgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpOiBXaW0gY2xhaW1zIEkgY2FuIHJlbW92ZSB0aGlzCgkgIHN0YXRlX2Jyb2FkY2FzdCBjYWxsLgoKMjAwNS0xMS0yMSAxNDo1MzozNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYyAoZ3N0X3NlZ21lbnRfaW5pdCk6IEluaXRpYWxpemUgYWJzX3JhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RzZWdtZW50LmMgKGdzdF9zZWdtZW50X2luaXQpOiBJbml0aWFsaXplIGFic19yYXRlLgoKMjAwNS0xMS0yMSAxNDo1Mjo1NiArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuYzogRml4IHdyb25nIGZ1bmN0aW9uIGNhbGxzIGZvciBhcnJheXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfaW50ZXJzZWN0X2FycmF5KTogRml4IHdyb25nCgkgIGZ1bmN0aW9uIGNhbGxzIGZvciBhcnJheXMuCgoyMDA1LTExLTIxIDE0OjUwOjIyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljL21lZGlhLWRldmljZS1kYWVtb24udHh0OiB3aWxkIGlkZWEsIGNhbiB0aGlzIGJlIGRvbmU/CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvbWVkaWEtZGV2aWNlLWRhZW1vbi50eHQ6CgkgIHdpbGQgaWRlYSwgY2FuIHRoaXMgYmUgZG9uZT8KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RlcnJvci5oOgoJICAqIGdzdC9nc3RmaWx0ZXIuYzoKCSAgKiBnc3QvZ3N0ZmlsdGVyLmg6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgICogZ3N0L2dzdHRyYWNlLmM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIGRvYyBmaXhlcyBhbmQgYWRkaXRpb25zCgoyMDA1LTExLTIxIDE0OjQxOjI2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoR1NUX0xJVkVfQlJPQURDQVNULCBHU1RfTElWRV9TSUdOQUwpIChHU1RfTElWRV9USU1FRF9XQUlULCBHU1RfTElWRV9XQUlULCBHU1RfTElWRV9HRVRfQ09ORCkgKC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKEdTVF9MSVZFX0JST0FEQ0FTVCwgR1NUX0xJVkVfU0lHTkFMKQoJICAoR1NUX0xJVkVfVElNRURfV0FJVCwgR1NUX0xJVkVfV0FJVCwgR1NUX0xJVkVfR0VUX0NPTkQpCgkgIChHU1RfTElWRV9VTkxPQ0ssIEdTVF9MSVZFX1RSWUxPQ0ssIEdTVF9MSVZFX0xPQ0spCgkgIChHU1RfTElWRV9HRVRfTE9DSyk6IE1vdmVkIGhlcmUgZnJvbSBnc3RiYXNlc3JjLmguIFRoZXkgYXJlCgkgIHByaXZhdGUgdG8gdGhlIGJhc2VzcmMgaW1wbGVtZW50YXRpb24uCgoyMDA1LTExLTIxIDE0OjM0OjA3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfc2VuZF9ldmVudCk6IERvYyBtb3JlLiBUYWtlIHN0cmVhbSBsb2NrIG9uIGJlaGFsZiBvZiBldmVudCBmdW5jdGlvbiBpZiBuZWNlc3NhcnkuIEl0IHNob3VsZCBubyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX3NlbmRfZXZlbnQpOiBEb2MgbW9yZS4gVGFrZSBzdHJlYW0gbG9jayBvbgoJICBiZWhhbGYgb2YgZXZlbnQgZnVuY3Rpb24gaWYgbmVjZXNzYXJ5LiBJdCBzaG91bGQgbm8gbG9uZ2VyIGJlCgkgIG5lY2Vzc2FyeSB0byB0YWtlIHRoZSBzdHJlYW0gbG9jayBpbiBwYWQncyBldmVudCBmdW5jdGlvbnMuIEZpeGVzCgkgICMzMjAyOTkuCgoyMDA1LTExLTIxIDE0OjI4OjIxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIFJlbmFtZSBnc3RfY2Fwc19zdHJ1Y3R1cmVfZml4YXRlXyogdG8gZ3N0X3N0cnVjdHVyZV9maXhhdGVfKiAoIzMyMjAyNykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2ZpeGF0ZV9maWVsZF9uZWFyZXN0X2ludCksCgkgIChnc3Rfc3RydWN0dXJlX2ZpeGF0ZV9maWVsZF9uZWFyZXN0X2RvdWJsZSksCgkgIChnc3Rfc3RydWN0dXJlX2ZpeGF0ZV9maWVsZF9ib29sZWFuKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgICogd2luMzIvZ3N0cmVhbWVyLmRlZjoKCSAgUmVuYW1lIGdzdF9jYXBzX3N0cnVjdHVyZV9maXhhdGVfKiB0byBnc3Rfc3RydWN0dXJlX2ZpeGF0ZV8qCgkgICgjMzIyMDI3KQoKMjAwNS0xMS0yMSAxNDoyNToyMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuKjogUG9ydCBmZDovLyBVUkkgaGFuZGxlciBmcm9tIDAuOCB0byBmZHNyYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKF9kb19pbml0KSwgKGdzdF9mZHNyY19jbGFzc19pbml0KSwKCSAgKGdzdF9mZHNyY19pbml0KSwgKGdzdF9mZHNyY19kaXNwb3NlKSwgKGdzdF9mZHNyY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Zkc3JjX3VyaV9nZXRfdHlwZSksIChnc3RfZmRzcmNfdXJpX2dldF9wcm90b2NvbHMpLAoJICAoZ3N0X2Zkc3JjX3VyaV9nZXRfdXJpKSwgKGdzdF9mZHNyY191cmlfc2V0X3VyaSksCgkgIChnc3RfZmRzcmNfdXJpX2hhbmRsZXJfaW5pdCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkgIFBvcnQgZmQ6Ly8gVVJJIGhhbmRsZXIgZnJvbSAwLjggdG8gZmRzcmMKCjIwMDUtMTEtMjEgMTM6MjY6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBNb3JlIHNlZ21lbnQgdXBkYXRlcyBhbmQgbW9yZSBjaGVja3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RzZWdtZW50c19zdWl0ZSksCgkgIChtYWluKToKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfaW5pdCksIChnc3Rfc2VnbWVudF9zZXRfZHVyYXRpb24pLAoJICAoZ3N0X3NlZ21lbnRfc2V0X2xhc3Rfc3RvcCksIChnc3Rfc2VnbWVudF9zZXRfc2VlayksCgkgIChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudCksIChnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSksCgkgIChnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUpLCAoZ3N0X3NlZ21lbnRfY2xpcCk6CgkgICogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgTW9yZSBzZWdtZW50IHVwZGF0ZXMgYW5kIG1vcmUgY2hlY2tzLgoKMjAwNS0xMS0yMSAxMzoyNjo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS4qOiBEcm9wIGxlYWRpbmcgJyUnIGZyb20gR1NUX0ZPVVJDQ19GT1JNQVQsIHRodXMgbWFraW5nIGl0IGNvbnNpc3RlbnQgd2l0aCBvdXIgb3RoZXIgZm9ybWF0IGRlZmluZXMgKCMzMi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV90cmFuc2Zvcm1fZm91cmNjX3N0cmluZyksCgkgIChnc3RfdmFsdWVfc2VyaWFsaXplX2ZvdXJjYyk6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIERyb3AgbGVhZGluZyAnJScgZnJvbSBHU1RfRk9VUkNDX0ZPUk1BVCwgdGh1cyBtYWtpbmcgaXQKCSAgY29uc2lzdGVudCB3aXRoIG91ciBvdGhlciBmb3JtYXQgZGVmaW5lcyAoIzMyMDMyNCkuCgoyMDA1LTExLTIxIDEzOjEyOjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLmM6IFJldmVydCBwcmV2aW91cyBjb21taXQuIFZhbHVlIGxpc3RzIGFyZSBieSBkZWZpbml0aW9uIG5vdCBmaXhlZCwgYXMgdGhleSBhcmUgYSBsaXN0IG9mIHBvc3NpYmxlIHZhbHVlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfaXNfZml4ZWQpOgoJICBSZXZlcnQgcHJldmlvdXMgY29tbWl0LiBWYWx1ZSBsaXN0cyBhcmUgYnkgZGVmaW5pdGlvbgoJICBub3QgZml4ZWQsIGFzIHRoZXkgYXJlIGEgbGlzdCBvZiBwb3NzaWJsZSB2YWx1ZXMuCgoyMDA1LTExLTIxIDEzOjAzOjM2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuaCAoR1NUX0VWRU5UX0ZJTExFUik6IFJlbW92ZWQuIENhbiBiZSBhZGRlZCBiYWNrIGR1cmluZyB0aGUgc3RhYmxlIHNlcmllcyBpZiB3ZSBuZWVkIGl0LiBGaXhlcyAjMzE5MTc4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZXZlbnQuaCAoR1NUX0VWRU5UX0ZJTExFUik6IFJlbW92ZWQuIENhbiBiZSBhZGRlZCBiYWNrCgkgIGR1cmluZyB0aGUgc3RhYmxlIHNlcmllcyBpZiB3ZSBuZWVkIGl0LiBGaXhlcyAjMzE5MTc4LgoJICAqIGdzdC9nc3RldmVudC5jIChnc3RfZXZlbnRfbmV3X2ZpbGxlcik6IFJlbW92ZWQuCgkgICogY2hlY2svZ3N0L2dzdGV2ZW50LmM6IFVwZGF0ZSBjb21tZW50IGFib3V0IGZpbGxlciBldmVudHMuCgoyMDA1LTExLTIxIDEyOjQyOjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLmM6IFNob3VsZCBoYW5kbGUgYm90aCB2YWx1ZSBhcnJheXMgYW5kIHZhbHVlIGxpc3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9pc19maXhlZCk6CgkgIFNob3VsZCBoYW5kbGUgYm90aCB2YWx1ZSBhcnJheXMgYW5kIHZhbHVlIGxpc3RzLgoKMjAwNS0xMS0yMSAxMjoyNzowMSArMDAwMCAgQWxlc3NhbmRybyBEZXNzaW5hIDxhbGVzc2FuZHJvQG5udmEub3JnPgoKCSAgZ3N0L2dzdHZhbHVlLmMgKGdzdF92YWx1ZV9pc19maXhlZCk6IFVzZSBnc3RfdmFsdWVfYXJyYXkgZnVuY3Rpb25zIHRvIGFjY2VzcyBhcnJheXMuIEZpeGVzICMzMjE5NjIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICBwYXRjaCBieTogQWxlc3NhbmRybyBEZXNzaW5hIDxhbGVzc2FuZHJvIG5udmEgb3JnPgoJICAqIGdzdC9nc3R2YWx1ZS5jIChnc3RfdmFsdWVfaXNfZml4ZWQpOiBVc2UgZ3N0X3ZhbHVlX2FycmF5CgkgIGZ1bmN0aW9ucyB0byBhY2Nlc3MgYXJyYXlzLiBGaXhlcyAjMzIxOTYyLgoKMjAwNS0xMS0yMSAxMToyNjowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczogZ3N0X2NvbGxlY3RwYWRzX2dldF90eXBlID0+IGdzdF9jb2xsZWN0X3BhZHNfZ2V0X3R5cGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgZ3N0X2NvbGxlY3RwYWRzX2dldF90eXBlID0+IGdzdF9jb2xsZWN0X3BhZHNfZ2V0X3R5cGUuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBSZW1vdmUgdW51c2VkIFNJR05BTF9IQU5ET0ZGIGVudW0uCgoyMDA1LTExLTIxIDExOjA2OjQyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuaCAoR3N0RXZlbnRUeXBlRmxhZ3MpOiBOZXcgZGF0YSB0eXBlLCB0aGUgZmxhZ3Mgb2YgdGhlIGV2ZW50IHR5cGUgKHVwc3RyZWFtLCBkb3duc3RyZWFtLCBzZXJpYWxpemVkKS4gUmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGV2ZW50LmggKEdzdEV2ZW50VHlwZUZsYWdzKTogTmV3IGRhdGEgdHlwZSwgdGhlIGZsYWdzIG9mCgkgIHRoZSBldmVudCB0eXBlICh1cHN0cmVhbSwgZG93bnN0cmVhbSwgc2VyaWFsaXplZCkuIFJlbmFtZWQKCSAgR1NUX0VWRElSXyogYW5kIEdTVF9FVlNFUiB0byBHU1RfRVZFTlRfVFlQRV8qLgoJICAoR3N0RXZlbnRUeXBlKTogVXNlIEdzdEV2ZW50VHlwZUZsYWdzLiBSZW5hbWUgQ1VTVE9NX1VQIHRvCgkgIENVU1RPTV9VUFNUUkVBTSwgQ1VTVE9NX0RTIHRvIENVU1RPTV9ET1dOU1RSRUFNLCBldGMuCgkgICogZ3N0L2dzdGV2ZW50LmM6IFVwZGF0ZSBmb3IgbmV3IENVU1RPTSBldmVudCBuYW1lcy4KCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnQuYzogVXBkYXRlIGNoZWNrIGZvciBuZXcgQ1VTVE9NIGV2ZW50IG5hbWVzLgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RldmVudC5jIChnc3RfZXZlbnRfdHlwZV9nZXRfZmxhZ3MpOiBOZXcgZnVuY3Rpb24uIEZpeGVzCgkgIGJ1ZyAjMzE5MzkyLgoKMjAwNS0xMS0yMSAxMTowMDowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIFJlbmFtZSBnc3RfY29sbGVjcGFkc19mb28oKSA9PiBnc3RfY29sbGVjdF9wYWRzX2ZvbygpLiBEb2N1bWVudCB1bmltcGxlbWVudGVkIGZ1bmN0aW9ucyBhcyB1bmltcGxlbWVudGVkICgjMzIwNzY2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvbGliZ3N0YmFzZS5kZWY6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfYmFzZV9pbml0KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY2xhc3NfaW5pdCksIChnc3RfY29sbGVjdF9wYWRzX2luaXQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19maW5hbGl6ZSksIChnc3RfY29sbGVjdF9wYWRzX25ldyksCgkgIChnc3RfY29sbGVjdF9wYWRzX3NldF9mdW5jdGlvbiksIChnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19yZW1vdmVfcGFkKSwgKGdzdF9jb2xsZWN0X3BhZHNfaXNfYWN0aXZlKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY29sbGVjdCksIChnc3RfY29sbGVjdF9wYWRzX2NvbGxlY3RfcmFuZ2UpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zdGFydCksIChnc3RfY29sbGVjdF9wYWRzX3N0b3ApLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19wZWVrKSwgKGdzdF9jb2xsZWN0X3BhZHNfcG9wKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfYXZhaWxhYmxlKSwgKGdzdF9jb2xsZWN0X3BhZHNfcmVhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2ZsdXNoKSwgKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19jaGFpbik6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgUmVuYW1lIGdzdF9jb2xsZWNwYWRzX2ZvbygpID0+IGdzdF9jb2xsZWN0X3BhZHNfZm9vKCkuIERvY3VtZW50CgkgIHVuaW1wbGVtZW50ZWQgZnVuY3Rpb25zIGFzIHVuaW1wbGVtZW50ZWQgKCMzMjA3NjYpLgoKMjAwNS0xMS0yMSAxMDo0MTowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RtZXNzYWdlLmM6IEltcHJvdmUgZG9jcyBmb3IgRFVSQVRJT04gbWVzc2FnZSAodXNhZ2Ugb2YgZHVyYXRpb24gcGFyYW1ldGVyKSAoIzMyMDExMykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgSW1wcm92ZSBkb2NzIGZvciBEVVJBVElPTiBtZXNzYWdlICh1c2FnZSBvZiBkdXJhdGlvbiBwYXJhbWV0ZXIpCgkgICgjMzIwMTEzKQoKMjAwNS0xMS0yMSAxMDowNDoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSAgdXBkYXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUKCjIwMDUtMTEtMjEgMDk6NDQ6NDYgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBhZGQgbGF0ZXN0IC5wYyBmaWxlIHRvIHNwZWMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBsYXRlc3QgLnBjIGZpbGUgdG8gc3BlYwoKMjAwNS0xMS0yMCAxOToxMTowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZGVkIHNlZ21lbnQgaGVscGVyIHN0cnVjdHVyZSBhbmQgbWV0aG9kcy4gTm90IGZ1bGx5IGltcGxlbWVudGVkIHlldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdGV2ZW50c19zdWl0ZSksCgkgIChtYWluKToKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5oOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9pbml0KSwgKGdzdF9zZWdtZW50X3NldF9kdXJhdGlvbiksCgkgIChnc3Rfc2VnbWVudF9zZXRfc2VlayksIChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudCksCgkgIChnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSksIChnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUpLAoJICAoZ3N0X3NlZ21lbnRfY2xpcCk6CgkgICogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgQWRkZWQgc2VnbWVudCBoZWxwZXIgc3RydWN0dXJlIGFuZCBtZXRob2RzLiBOb3QgZnVsbHkgaW1wbGVtZW50ZWQKCSAgeWV0LgoJICBBZGRlZCBzZWdtZW50IGNoZWNrLgoKMjAwNS0xMS0yMCAxNzoxMjo0OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay9nc3QvZ3N0dmFsdWUuYzogQWRkIGEgZGVzZXJpYWxpc2F0aW9uIHRlc3QgZm9yIGZyYWN0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgIEFkZCBhIGRlc2VyaWFsaXNhdGlvbiB0ZXN0IGZvciBmcmFjdGlvbnMKCSAgKiBleGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6IChtZXNzYWdlX2xvb3ApLAoJICAobWFrZV9waXBlbGluZSksIChtYWluKToKCSAgRml4IHVwIG1ldGFkYXRhIHJlYWRpbmcgc2FtcGxlLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICBEZWJ1ZyBmb3JtYXQgZml4CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmVnb3RpYXRlKToKCSAgRG9uJ3QgdHJ5IGFuZCBmaXhhdGUgZW1wdHkgY2FwcwoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICBXcmFwIGluIEdfQkVHSU5fREVDTFMvR19FTkRfREVDTFMKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9jb2xsZWN0X2ZyYWN0aW9uKSwKCSAgKGdzdF92YWx1ZV9zZXRfZnJhY3Rpb24pLCAoZ3N0X3ZhbHVlX2dldF9mcmFjdGlvbl9kZW5vbWluYXRvciksCgkgIChnc3RfdmFsdWVfdHJhbnNmb3JtX3N0cmluZ19mcmFjdGlvbiksCgkgIChnc3RfdmFsdWVfY29tcGFyZV9mcmFjdGlvbik6CgkgIEFkZCBzb21lIGV4dHJhIGd1YXJkcyB0byBlbnN1cmUgdGhhdCB3ZSBkb24ndCBlbmQgdXAKCSAgd2l0aCBhbiBpbnZhbGlkIGRlbm9taW5hdG9yIG9mIDAgaW4gYSBnc3RmcmFjdGlvbiBhbmQKCSAgdGhhdCBmcmFjdGlvbnMgYWx3YXlzIGdldCByZWR1Y2VkLgoKMjAwNS0xMS0yMCAxNDo1NjoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgU29tZXRoaW5nIHdlbnQgd3Jvbmcgd2l0aCBjaGFuZ2Vsb2cgaW4gbGFzdCBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFNvbWV0aGluZyB3ZW50IHdyb25nIHdpdGggY2hhbmdlbG9nIGluIGxhc3QgY29tbWl0CgoyMDA1LTExLTIwIDE0OjUwOjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRG9jIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICAqIGdzdC9nc3Rmb3JtYXQuYzoKCSAgKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkgICogZ3N0L2dzdGluZGV4Lmg6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIERvYyBmaXhlcy4KCjIwMDUtMTEtMjAgMTM6Mjg6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBNYWtlIGEgcHJvcGVyIGVudW0gb2YgdGhlIGZsYWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgTWFrZSBhIHByb3BlciBlbnVtIG9mIHRoZSBmbGFnLgoKMjAwNS0xMS0xOSAxODo1NzowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCB0eXBlIHRvIHF1YXJrIGFuZCB0eXBlIHRvIHN0cmluZyBjb252ZXJzaW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBnc3QvZ3N0Zm9ybWF0LmM6IChfZ3N0X2Zvcm1hdF9pbml0aWFsaXplKSwgKGdzdF9mb3JtYXRfZ2V0X25hbWUpLAoJICAoZ3N0X2Zvcm1hdF90b19xdWFyayksIChnc3RfZm9ybWF0X3JlZ2lzdGVyKToKCSAgKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChfZ3N0X3F1ZXJ5X2luaXRpYWxpemUpLAoJICAoZ3N0X3F1ZXJ5X3R5cGVfZ2V0X25hbWUpLCAoZ3N0X3F1ZXJ5X3R5cGVfdG9fcXVhcmspLAoJICAoZ3N0X3F1ZXJ5X3R5cGVfcmVnaXN0ZXIpOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBBZGQgdHlwZSB0byBxdWFyayBhbmQgdHlwZSB0byBzdHJpbmcgY29udmVyc2lvbnMuCgoyMDA1LTExLTE5IDE4OjMyOjAxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmggKEdTVF9CVUZGRVJfRkxBR19PUklHSU5BTCk6IFJlbW92ZWQuIEZpeGVzICMzMjAwOTcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RidWZmZXIuaCAoR1NUX0JVRkZFUl9GTEFHX09SSUdJTkFMKTogUmVtb3ZlZC4gRml4ZXMKCSAgIzMyMDA5Ny4KCjIwMDUtMTEtMTkgMTg6Mjg6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBNYWtlIG1lc3NhZ2UgaGFuZGxpbmcgb3ZlcnJpZGFibGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5fcHJvdmlkZV9jbG9ja19mdW5jKSwKCSAgKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChiaW5fYnVzX2hhbmRsZXIpLAoJICAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgIE1ha2UgbWVzc2FnZSBoYW5kbGluZyBvdmVycmlkYWJsZS4KCjIwMDUtMTEtMTkgMTg6MjY6MzUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuaCAoR1NUX1BBRF9JU19VU0FCTEUpOiBSZW1vdmVkLiBGaXhlcyAjMzIxMjM1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmggKEdTVF9QQURfSVNfVVNBQkxFKTogUmVtb3ZlZC4gRml4ZXMgIzMyMTIzNS4KCjIwMDUtMTEtMTkgMTg6MTc6MjkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RjbG9jay4qOiBDaGFuZ2UgcmVzb2x1dGlvbiB0byBiZSBhIEdzdENsb2NrVGltZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgICogZ3N0L2dzdGNsb2NrLmMgKEdzdENsb2NrLCBHc3RDbG9ja0NsYXNzKTogQ2hhbmdlIHJlc29sdXRpb24gdG8KCSAgYmUgYSBHc3RDbG9ja1RpbWUuCgkgIChnc3RfY2xvY2tfc2V0X3Jlc29sdXRpb24sIGdzdF9jbG9ja19nZXRfcmVzb2x1dGlvbik6IFJlc29sdXRpb24KCSAgaXMgYSBHc3RDbG9ja1RpbWUuIEZpeGVzICMzMjE3MTAuCgoyMDA1LTExLTE5IDE4OjA2OjU2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Y2xvY2suaCAoR3N0Q2xvY2spOiBSZW1vdmUgb2Zmc2V0IHByb3BlcnR5LiBBZGQgaW50ZXJuYWxfY2FsaWJyYXRpb24gYW5kIGV4dGVybmFsX2NhbGlicmF0aW9uLiBGaXggcGFkZGluZy4gUGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGNsb2NrLmggKEdzdENsb2NrKTogUmVtb3ZlIG9mZnNldCBwcm9wZXJ0eS4gQWRkCgkgIGludGVybmFsX2NhbGlicmF0aW9uIGFuZCBleHRlcm5hbF9jYWxpYnJhdGlvbi4gRml4IHBhZGRpbmcuIFBhZAoJICBhbHNvIGJ5IEdzdENsb2NrVGltZSBzbyB3ZSBkb24ndCBydW4gaW50byBwcm9ibGVtcy4KCSAgKiBnc3QvZ3N0Y2xvY2suYyAoZ3N0X2Nsb2NrX3NldF9yYXRlX29mZnNldCk6IFJlbW92ZS4KCSAgKGdzdF9jbG9ja19nZXRfcmF0ZV9vZmZzZXQpOiBSZW1vdmUuCgkgIChnc3RfY2xvY2tfc2V0X3RpbWVfYWRqdXN0KTogUmVtb3ZlLiBGaXhlcyAjMzIxNzEyLgoKMjAwNS0xMS0xOSAxNzo1MDo1MiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmg6IGdzdC9nc3R1dGlscy5jIChnX3N0YXRpY19yZWNfY29uZF93YWl0KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYyAoZ19zdGF0aWNfcmVjX2NvbmRfd2FpdCkKCSAgKGdfc3RhdGljX3JlY19jb25kX3RpbWVkX3dhaXQpOiBSZW1vdmVkLCBubyBsb25nZXIgbmVlZGVkLgoJICAqIGdzdC9nc3RiaW4uYzogUmVtb3ZlIHRlcnJpYmxlIGNvbnRpbnVlX3N0YXRlIHByb3RvdHlwZS4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5oIChnc3RfZWxlbWVudF9jb250aW51ZV9zdGF0ZSk6IE1ha2UgcHVibGljLgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKTogUmVtb3ZlZCwgcmVwbGFjZWQKCSAgYnkgY29udGludWVfc3RhdGUuIEZpeGVzICMzMTkzODkuCgoyMDA1LTExLTE5IDE3OjI4OjU4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0aW5kZXguaCAoR3N0SW5kZXhGaWx0ZXIpOiBBY3R1YWxseSBwYXNzIG9uIHRoZSB1c2VyX2RhdGEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RpbmRleC5oIChHc3RJbmRleEZpbHRlcik6IEFjdHVhbGx5IHBhc3Mgb24gdGhlIHVzZXJfZGF0YS4KCSAgUmVhbGx5IGZpeGVzICMxNjg0MzguIEhvd2V2ZXIgSSBkb24ndCBzZWUgYW55d2hlcmUgd2hlcmUgdGhlCgkgIGZpbHRlciBmdW5jdGlvbiBpcyBjYWxsZWQuLi4gc3R1cGlkIEdTdHJlYW1lci4uLgoKMjAwNS0xMS0xOSAxNzoyNjoyNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGluZGV4LmggKEdzdEluZGV4KTogQWRkIGZpZWxkIGZvciB1c2VyX2RhdGFfZGVzdHJveS4gV2UgZG9uJ3QgaGF2ZSBhIGRpc3Bvc2UgZnVuY3Rpb24sIHNvIGl0IHdvbid0IGdldCBjYWxsZWQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RpbmRleC5oIChHc3RJbmRleCk6IEFkZCBmaWVsZCBmb3IgdXNlcl9kYXRhX2Rlc3Ryb3kuIFdlCgkgIGRvbid0IGhhdmUgYSBkaXNwb3NlIGZ1bmN0aW9uLCBzbyBpdCB3b24ndCBnZXQgY2FsbGVkIHdoZW4gdGhlCgkgIG9iamVjdCBpcyB1bnJlZmZlZCwgYnV0IG9oIHdlbGwhCgkgICogZ3N0L2dzdGluZGV4LmMgKGdzdF9pbmRleF9zZXRfZmlsdGVyX2Z1bGwpOiBOZXcgQVBJIGZ1bmN0aW9uLAoJICBhbGxvd3MgYSBkZXN0cm95IGZ1bmN0aW9uIHRvIGJlIHNldCBzbyB1c2VyX2RhdGEgY2FuIGJlIGZyZWVkLgoJICBGaXhlcyAjMTY4NDM4LgoJICAoZ3N0X2luZGV4X3NldF9maWx0ZXIpOiBDYWxsIGdzdF9pbmRleF9zZXRfZmlsdGVyX2Z1bGwuCgoyMDA1LTExLTE5IDE3OjA4OjIzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QvZ3N0dmFsdWUuYyAodGVzdF9zdHJpbmcpOiBBZGQgdGVzdCBmb3IgYnVnICMxNjU2NTAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jICh0ZXN0X3N0cmluZyk6IEFkZCB0ZXN0IGZvciBidWcgIzE2NTY1MC4KCSAgKiBnc3QvZ3N0dmFsdWUuYyAoZ3N0X3N0cmluZ193cmFwKTogVHJ5aW5nIHRvIHNlcmlhbGl6ZSBhIE5VTEwKCSAgc3RyaW5nIHNob3VsZCBwcm9kdWNlIGFuIGVycm9yLCBnaXZlbiB0aGUgbGFjayBvZiBhIHdheSB0bwoJICByZXByZXNlbnQgTlVMTCBzdHJpbmdzLiBGaXhlcyAjMTY1NjUwLgoKMjAwNS0xMS0xOSAxNjo0NjozMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHZhbHVlLmg6IGdzdC9nc3R2YWx1ZS5jIChnc3RfdmFsdWVfYXJyYXlfYXBwZW5kX3ZhbHVlKSAoZ3N0X3ZhbHVlX2FycmF5X3ByZXBlbmRfdmFsdWUsIGdzdF92YWx1ZV9hcnJheV9nZXRfc2l6ZSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgICogZ3N0L2dzdHZhbHVlLmMgKGdzdF92YWx1ZV9hcnJheV9hcHBlbmRfdmFsdWUpCgkgIChnc3RfdmFsdWVfYXJyYXlfcHJlcGVuZF92YWx1ZSwgZ3N0X3ZhbHVlX2FycmF5X2dldF9zaXplKQoJICAoZ3N0X3ZhbHVlX2FycmF5X2dldF92YWx1ZSk6IE5ldyBBUEksIGNvcGllZCBmcm9tCgkgIGdzdF92YWx1ZV9saXN0XyosIG9ubHkgb3BlcmF0ZXMgb24gYXJyYXlzLgoJICAoZ3N0X3ZhbHVlX2xpc3RfYXBwZW5kX3ZhbHVlLCBnc3RfdmFsdWVfbGlzdF9wcmVwZW5kX3ZhbHVlKQoJICAoZ3N0X3ZhbHVlX2xpc3RfY29uY2F0LCBnc3RfdmFsdWVfbGlzdF9nZXRfc2l6ZSkKCSAgKGdzdF92YWx1ZV9saXN0X2dldF92YWx1ZSk6IE9ubHkgb3BlcmF0ZSBvbiBsaXN0cy4gRml4ZXMgIzE1NjYzMy4KCSAgKiBnc3QvZ3N0dmFsdWUuYyAoZ3N0X3ZhbHVlX2luaXRfbGlzdF9vcl9hcnJheSk6IFJlbmFtZWQgZnJvbQoJICBpbml0X2xpc3QsIGJlY2F1c2UgaXQgd29ya3Mgb24gYm90aC4KCSAgKGNvcHlfZ2FycmF5X29mX2dzdHZhbHVlKTogUmVuYW1lZCBmcm9tIGdzdF92YWx1ZV9saXN0X2NvcHlfYXJyYXkuCgkgIChnc3RfdmFsdWVfY29weV9saXN0X29yX2FycmF5KTogUmVuYW1lZCBmcm9tIGNvcHlfbGlzdC4KCSAgKGdzdF92YWx1ZV9mcmVlX2xpc3Rfb3JfYXJyYXkpOiBSZW5hbWVkIGZyb20gZnJlZV9saXN0LgoJICAoZ3N0X3ZhbHVlX2NvbGxlY3RfbGlzdF9vcl9hcnJheSk6IFJlbmFtZWQgZnJvbSBjb2xsZWN0X2xpc3QuCgkgIChnc3RfdmFsdWVfbGNvcHlfbGlzdF9vcl9hcnJheSk6IFJlbmFtZWQgZnJvbSBsY29weV9saXN0LgoJICAoZ3N0X3ZhbHVlX2xpc3Rfb3JfYXJyYXlfcGVla19wb2ludGVyKTogUmVuYW1lZCBmcm9tCgkgIGxpc3RfcGVla19wb2ludGVyLgoJICAoX2dzdF92YWx1ZV9hcnJheV92YWx1ZV90YWJsZSwgX2dzdF92YWx1ZV9saXN0X3ZhbHVlX3RhYmxlKToKCSAgVXBkYXRlIHZhbHVlIHRhYmxlIGZ1bmN0aW9ucy4KCSAgKGdzdF92YWx1ZV9jb21wYXJlX2xpc3Rfb3JfYXJyYXkpOiBSZW5hbWVkIGZyb20gY29tcGFyZV9saXN0LgoKMjAwNS0xMS0xOSAxNjowNToxMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0dGFnbGlzdC5oOiBXaG9vcHMsIGZvcmVhY2ggZnVuY3Rpb24gcmV0dXJucyB2b2lkLiBBbHNvIGZpeCBzb21lIGNvbnN0bmVzcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0dGFnbGlzdC5oOiBXaG9vcHMsIGZvcmVhY2ggZnVuY3Rpb24gcmV0dXJucyB2b2lkLiBBbHNvIGZpeAoJICBzb21lIGNvbnN0bmVzcy4KCjIwMDUtMTEtMTkgMTU6NTE6NDEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3R0YWdsaXN0Lio6IE9wZXJhdGVzIG9uIGEgY29uc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oIChnc3RfdGFnX2xpc3RfZm9yZWFjaCk6IE9wZXJhdGVzIG9uIGEgY29uc3QKCSAgR3N0VGFnTGlzdCouIEZpeGVzICMxNDM0NzIuCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOiBDbGFyaWZ5IHdoYXQgdGhlIGZvcmVhY2gvbWFwIGZ1bmN0aW9ucyBjYW4KCSAgb3IgY2FuJ3QgZG8gdG8gdGhlaXIgYXJndW1lbnRzLgoKMjAwNS0xMS0xOCAxOToyMTo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjbG9jay5jOiBEb2MgYW5kIEFQSSBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfc2V0X2NhbGlicmF0aW9uKSwKCSAgKGdzdF9jbG9ja19nZXRfY2FsaWJyYXRpb24pOgoJICBEb2MgYW5kIEFQSSBmaXhlcy4KCSAgQ2FsbGlicmF0aW9uIGNhbiBiZSBzZXQgd2l0aCBpbnRlcm5hbCB0aW1lIGVxdWFsIHRvIGN1cnJlbnQKCSAgaW50ZXJuYWwgdGltZSB0b28uCgoyMDA1LTExLTE4IDE4OjU1OjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RlcnJvci4qOiBkb2N1bWVudAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgZG9jdW1lbnQKCjIwMDUtMTEtMTggMTg6Mzg6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkgIGRvY3VtZW50IG9uIHJlcXVpcmVtZW50cyBmb3IgbW92aW5nIHBsdWdpbnMgdG8gZ29vZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jdW1lbnQgb24gcmVxdWlyZW1lbnRzIGZvciBtb3ZpbmcgcGx1Z2lucyB0byBnb29kCgoyMDA1LTExLTE4IDE2OjI0OjU2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBBZGQgbmV0IHBrZ2NvbmZpZyBmaWxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY29uZmlndXJlLmFjOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LnBjLmluOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LXVuaW5zdGFsbGVkLnBjLmluOgoJICAqIHBrZ2NvbmZpZy9NYWtlZmlsZS5hbTogQWRkIG5ldCBwa2djb25maWcgZmlsZXMuCgoyMDA1LTExLTE4IDE2OjA0OjI4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBkb2NzIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6CgkgICogZ3N0L2dzdHRyYWNlLmM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIGRvY3MgZml4ZXMKCjIwMDUtMTEtMTggMTU6NTI6MjQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogVHVybiBvZmYgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IFR1cm4gb2ZmIGRlYnVnZ2luZy4KCSAgKiBjaGVjay9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAodGVzdF9mdW5jdGlvbmluZyk6IEFzc2VydCB0aGF0IHRoZQoJICB0aW1lcyBjb25udmVyZ2Ugc29tZXdoYXQuIENhbid0IG1ha2UgYSByZWFsIHRlc3QuCgoyMDA1LTExLTE4IDE1OjMwOjE4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMgKGRvX2xpbmVhcl9yZWdyZXNzaW9uKTogVXNlIGFsbCBpbnRlZ2VyIGFyaXRobWV0aWMuIFJldHVybiB0aGUgbWluaW11bSBvZiB0aGUgZG9tYWluLCB3aGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jIChkb19saW5lYXJfcmVncmVzc2lvbik6IFVzZSBhbGwKCSAgaW50ZWdlciBhcml0aG1ldGljLiBSZXR1cm4gdGhlIG1pbmltdW0gb2YgdGhlIGRvbWFpbiwgd2hpY2ggY2FuIGJlCgkgIHNldCBhcyAiaW50ZXJuYWwiIGZvciBnc3RfY2xvY2tfc2V0X2NhbGlicmF0aW9uLgoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfb2JzZXJ2ZV90aW1lcyk6IENhbGwgX3NldF9jYWxpYnJhdGlvbi4KCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX25ldyk6IENhbGwgX3NldF9jYWxpYnJhdGlvbiBpbnN0ZWFkIG9mCgkgIHJhdGVfb2Zmc2V0LgoJICAqIGNoZWNrL25ldC9nc3RuZXRjbGllbnRjbG9jay5jICh0ZXN0X2Z1bmN0aW9uaW5nKTogVXNlIHRoZSByaWdodAoJICBhZGp1c3RtZW50IGFwaS4KCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBnc3QvZ3N0Y2xvY2suYyAoZ3N0X2Nsb2NrX2dldF9jYWxpYnJhdGlvbikKCSAgKGdzdF9jbG9ja19zZXRfY2FsaWJyYXRpb24pOiBOZXcgZnVuY3Rpb25zLCBvYnNvbGV0ZSB0aGUgb25lcyBJCgkgIGFkZGVkIHllc3RlcmRheS4gRG9oLiBQcmVjaXNpb24gaXNzdWVzIG1lYW4gd2UgaGF2ZSB0byBleHRyYXBvbGF0ZQoJICBmcm9tIGEgcG9pbnQgaW4gdGhlIG1vcmUgcmVjZW50IHBhc3QgdGhhbiAxOTcwLgoJICAoZ3N0X2Nsb2NrX2dldF9yYXRlX29mZnNldCwgZ3N0X2Nsb2NrX3NldF9yYXRlX29mZnNldCk6IE1hcmsgYXMKCSAgb2Jzb2xldGUuCgkgIChnc3RfY2xvY2tfYWRqdXN0X3VubG9ja2VkKTogVXNlIHRoZSByaWdodCBjYWxpYnJhdGlvbiBkYXRhLgoKMjAwNS0xMS0xOCAxNDo0OToyOCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEFsc28gcmVzZXQgdGhlIC0+Y3VycmVudF8qIHZhbHVlcyBpbiBSRUFEWS0+UEFVU0VECgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIEFsc28gcmVzZXQgdGhlIC0+Y3VycmVudF8qIHZhbHVlcyBpbiBSRUFEWS0+UEFVU0VECgoyMDA1LTExLTE4IDE0OjEzOjI4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3RocmVhZCk6IFdob29wcywgY2hlY2sgdGhlIHJpZ2h0IGZkLiBBbHNvIGFkZCBzb21lIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jIChnc3RfbmV0X2NsaWVudF9jbG9ja190aHJlYWQpOgoJICBXaG9vcHMsIGNoZWNrIHRoZSByaWdodCBmZC4gQWxzbyBhZGQgc29tZSBkZWJ1Z2dpbmcuCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19vYnNlcnZlX3RpbWVzKTogQWRqdXN0IGZvciBpbnQ2NCBvZmZzZXQuCgkgIChkb19saW5lYXJfcmVncmVzc2lvbik6IEFkZCBhIGNyYXBsb2FkIG9mIGRlYnVnZ2luZy4gU3VidHJhY3Qgb2ZmCgkgIHRoZSBtaW5pbXVtIHZhbHVlcyBmcm9tIHRoZSBpbnB1dCBzZXJpZXMgdG8gZGlzY2FyZCB1bm5lZWRlZCBiaXRzLgoJICBVc2Ugb25seSBpbnQgYXJpdGhtZXRpYy4gVGhlcmUgaXMgc3RpbGwgZG91YmxlIGFyaXRobWV0aWMgd2hlbgoJICBjYWxjdWxhdGluZyB0aGUgaW50ZXJjZXB0IHRoYXQgbmVlZHMgZml4aW5nLiBSZXR1cm4gYm9vbGVhbiB0bwoJICBpbmRpY2F0ZSBzdWNjZXNzOyBGQUxTRSB3b3VsZCBtZWFuIHRoZSBkb21haW4gb3IgcmFuZ2UgaXMgdG9vCgkgIGdyZWF0LiBTdGlsbCBuZWVkcyBmaXhlcy4KCjIwMDUtMTEtMTggMTM6MTg6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBGb3IgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gc3RyZWFtIHRpbWUsIHdlIG5lZWQgdG8gc3VidHJhY3QgYWNjdW11bGF0ZWQgdGltZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgRm9yIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHN0cmVhbSB0aW1lLCB3ZSBuZWVkIHRvIHN1YnRyYWN0CgkgIGFjY3VtdWxhdGVkIHRpbWUuCgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2FzeW5jX3RocmVhZCk6CgkgIFJlbGVhc2UgbG9jayBiZWZvcmUgY2FsbGluZyB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gb2YgYXN5bmMKCSAgZW50cmllcy4KCjIwMDUtMTEtMTggMTE6NTc6MzAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAoZ3N0X25ldF9jbGllbnRfY2xvY2tfY2xhc3NfaW5pdCk6IFBvcnQgZ29lcyBhbGwgdGhlIHdheSB0byBNQVhVSU5UMTYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAoZ3N0X25ldF9jbGllbnRfY2xvY2tfY2xhc3NfaW5pdCk6CgkgIFBvcnQgZ29lcyBhbGwgdGhlIHdheSB0byBNQVhVSU5UMTYuCgkgICogZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzogTWFrZSB0aGUgcG9ydCByYW5nZSB0aGUgc2FtZSBhcwoJICBmb3IgdGhlIGtlcm5lbDogMCBhc3NpZ25zLCBvdGhlcndpc2UgcG9ydHMgYXJlIGxlc3MgdGhhbgoJICBNQVhVSU5UMTYuCgkgICogY2hlY2svbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOiBBZGFwdCBmb3IgMCA9PSBrZXJuZWwgYXNzaWducwoJICBwb3J0IGNoYW5nZS4KCSAgKiBjaGVjay9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAodGVzdF9mdW5jdGlvbmluZyk6IEFkZCB0aGUgc3RhcnQKCSAgb2YgYW5vdGhlciB0ZXN0LgoKMjAwNS0xMS0xOCAxMTowMzoxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uKjogUmVtb3ZpbmcgYSBjbG9jayBwcm92aWRlciBmcm9tIGEgYmluLCB0cmlnZ2VycyBhIGNsb2NrIGxvc3QgbWVzc2FnZSBzbyB0aGF0IGEgbmV3IGNsb2NrIHdpbGwgYmUgc2VsZWN0ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcHJvdmlkZV9jbG9ja19mdW5jKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChiaW5fYnVzX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgUmVtb3ZpbmcgYSBjbG9jayBwcm92aWRlciBmcm9tIGEgYmluLCB0cmlnZ2VycyBhIGNsb2NrIGxvc3QgbWVzc2FnZQoJICBzbyB0aGF0IGEgbmV3IGNsb2NrIHdpbGwgYmUgc2VsZWN0ZWQuCgkgIEFkZGluZyBhIGNsb2NrIHRvIGEgYmluIHRyaWdnZXJzIGEgY2xvY2sgcHJvdmlkZXIgbWVzc2FnZS4KCSAgTWFrZSBzdXJlIHdlIHJlc2VsZWN0IGEgY2xvY2sgd2hlbiB3ZSByZWNlaXZlZCBhIGNsb2NrIGxvc3QgbWVzc2FnZS4KCSAgS2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgZWxlbWVudCB0aGF0IHByb3ZpZGVkIHRoZSBjbG9jay4KCjIwMDUtMTEtMTggMTA6NTQ6NTUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAoZ3N0X25ldF9jbGllbnRfY2xvY2tfbmV3KTogQWRqdXN0IHRoZSBjbG9jayBpbml0aWFsbHkgc28gaXQgcHJvZHVjZXMgdmFsdWVzIGFyb3VuZCB0aGUgYi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX25ldyk6IEFkanVzdAoJICB0aGUgY2xvY2sgaW5pdGlhbGx5IHNvIGl0IHByb2R1Y2VzIHZhbHVlcyBhcm91bmQgdGhlIGJhc2UgdGltZS4KCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2NsYXNzX2luaXQpOiBUeXBvIGZpeC4KCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3RocmVhZCk6IEFkZCBub3RlIG9uIHdoZW4gdGhlIHNvY2tldCBnZXRzCgkgIGNsb3NlZC4KCjIwMDUtMTEtMTcgMTg6NTA6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IEZyZWUgcmVtb3RlIGFuZCBsb2NhbCB0aW1lIGFycmF5cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiAoZ3N0X25ldF9jbGllbnRfY2xvY2tfZmluYWxpemUpOgoJICBGcmVlIHJlbW90ZSBhbmQgbG9jYWwgdGltZSBhcnJheXMuCgoyMDA1LTExLTE3IDE4OjE4OjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiBGaXggY29tcGlsYXRpb24sIHVuaW5pdGlhbGl6ZWQgdmFycyBhbmQgYSBmb3Jnb3R0ZW4gY29udGludWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogKGRvX2xpbmVhcl9yZWdyZXNzaW9uKSwKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2RvX3NlbGVjdCksIChnc3RfbmV0X2NsaWVudF9jbG9ja190aHJlYWQpOgoJICBGaXggY29tcGlsYXRpb24sIHVuaW5pdGlhbGl6ZWQgdmFycyBhbmQgYSBmb3Jnb3R0ZW4gY29udGludWUuCgoyMDA1LTExLTE3IDE3OjU1OjE3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay86IEFkZCBhIG1vc3QgbWluaW1hbCB0ZXN0IGZvciB0aGUgbmV0IGNsaWVudCBjbG9jay4gTW9yZSB0byBjb21lIGxhdGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9NYWtlZmlsZS5hbSAoY2hlY2tfUFJPR1JBTVMpOgoJICAqIGNoZWNrL25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiBBZGQgYSBtb3N0IG1pbmltYWwgdGVzdCBmb3IgdGhlCgkgIG5ldCBjbGllbnQgY2xvY2suIE1vcmUgdG8gY29tZSBsYXRlci4KCSAgKiBnc3QvbmV0L2dzdG5ldC5oOgoJICAqIGdzdC9uZXQvTWFrZWZpbGUuYW06IEFkZCBuZXRjbGllbnRjbG9jay4KCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiBOZXcgZmlsZXMsIGltcGxlbWVudCBhbiB1bnRlc3RlZAoJICBHc3RDbG9jayB0aGF0IHRha2VzIGl0cyB0aW1lIGZyb20gYSBuZXR3b3JrIHRpbWUgcHJvdmlkZXIuCgkgIEltcGxlbWVudHMgdGhlIGFsZ29yaXRobSBpbiBuZXR3b3JrLWNsb2NrLnNjbS4KCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbSAoKndpbmRvdy1zaXplKik6IFJlbmFtZSBmcm9tCgkgICpxdWV1ZS1sZW5ndGgqLgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2suc2NtIChuZXR3b3JrLXRpbWUpOgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2stdXRpbHMuc2NtIChxLXB1c2gpOiBVcGRhdGUgY2FsbGVycy4KCjIwMDUtMTEtMTcgMTY6MDI6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEFuZCB1bnJlZiB0aGUgY2hpbGQgdG9vLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9wcm92aWRlX2Nsb2NrX2Z1bmMpLAoJICAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25ldyk6CgkgIEFuZCB1bnJlZiB0aGUgY2hpbGQgdG9vLi4KCjIwMDUtMTEtMTcgMTQ6NTE6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFJlZmFjdG9yIHRoZSBzb3J0IGl0ZXJhdG9yIHNvIGl0IGNhbiBiZSB1c2VkIHdoaWxlIGhvbGRpbmcgdGhlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZGlzcG9zZSksIChnc3RfYmluX3Byb3ZpZGVfY2xvY2tfZnVuYyksCgkgIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV3KSwgKGdzdF9iaW5faXRlcmF0ZV9zb3J0ZWQpOgoJICBSZWZhY3RvciB0aGUgc29ydCBpdGVyYXRvciBzbyBpdCBjYW4gYmUgdXNlZCB3aGlsZSBob2xkaW5nIHRoZQoJICBMT0NLIHRvby4KCSAgTWFrZSBjbG9jayBzZWxlY3Rpb24gc2VsZWN0IGEgY2xvY2sgY2xvc2VzdCB0byB0aGUgc291cmNlLgoKMjAwNS0xMS0xNyAxMjozNjozMCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdGNsb2NrLio6IEFub255bW91cyBzdHJ1Y3RzIGFyZSBhIGdjYyAoYW5kIHNvbWUgb3RoZXIgY29tcGlsZXJzKSBleHRlbnNpb24sIHNvIGRvbid0IHVzZSB0aGVtLiBTaW5jZSB0aGlzIGlzIG9uLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2luaXQpLCAoZ3N0X2Nsb2NrX2FkanVzdF91bmxvY2tlZCksCgkgIChnc3RfY2xvY2tfc2V0X3JhdGVfb2Zmc2V0KSwgKGdzdF9jbG9ja19nZXRfcmF0ZV9vZmZzZXQpOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBBbm9ueW1vdXMgc3RydWN0cyBhcmUgYSBnY2MgKGFuZCBzb21lIG90aGVyIGNvbXBpbGVycykgZXh0ZW5zaW9uLCBzbwoJICBkb24ndCB1c2UgdGhlbS4gU2luY2UgdGhpcyBpcyBvbmx5IGZvciBBQkktY29tcGF0aWJpbGl0eSwgYW5kIG91cgoJICBBUEkvQUJJIGZyZWV6ZSBpcyBvdmVyIGluIGEgZmV3IGRheXMsIHRoaXMgd2hvbGUgdGhpbmcgd2lsbCBvbmx5CgkgIGxhc3QgYSBmZXcgZGF5cywgc28gZG9uJ3QgYm90aGVyIHRyeWluZyB0byB0aGluayB1cCBhIG1lYW5pbmdmdWwKCSAgbmFtZSBmb3IgdGhlIHN0cnVjdC4KCjIwMDUtMTEtMTcgMTE6NTE6NDkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RjbG9jay5oIChHc3RDbG9jayk6IEFkZCByYXRlIGFuZCBvZmZzZXQgcHJvcGVydGllcywgcHJlc2VydmluZyBBQkkgc3RhYmlsaXR5LiBBZGQgcmF0ZS9vZmZzZXQgYWNjZXNzb3JzLiBXaWxsIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Y2xvY2suaCAoR3N0Q2xvY2spOiBBZGQgcmF0ZSBhbmQgb2Zmc2V0IHByb3BlcnRpZXMsCgkgIHByZXNlcnZpbmcgQUJJIHN0YWJpbGl0eS4gQWRkIHJhdGUvb2Zmc2V0IGFjY2Vzc29ycy4gV2lsbCBmaWxlIGJ1ZwoJICBmb3IgdGhlIGZyZWV6ZSBicmVhay4KCSAgKiBnc3QvZ3N0Y2xvY2suYyAoZ3N0X2Nsb2NrX2FkanVzdF91bmxvY2tlZCk6IEltcGxlbWVudCB1c2luZyByYXRlCgkgIGFuZCBvZmZzZXQsIHRyeWluZyB0byBrZWVwIHByZWNpc2lvbiBhbmQgYXZvaWRpbmcKCSAgdW5kZXJmbG93L292ZXJmbG93LgoJICAoZ3N0X2Nsb2NrX3NldF9yYXRlX29mZnNldCwgZ3N0X2Nsb2NrX2dldF9yYXRlX29mZnNldCk6IE5ldwoJICBmdW5jdGlvbnMuIE1ha2UgZ3N0X2Nsb2NrX3NldF90aW1lX2FkanVzdCBvYnNvbGV0ZS4KCSAgKGdzdF9jbG9ja19zZXRfdGltZV9hZGp1c3QpOiBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBpcyBvYnNvbGV0ZS4KCSAgV2lsbCBmaWxlIGJ1ZyBzb29uLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDogTWFrZSB0aGUgQUJJLXN0YWJpbGl0eSBoYWNrCgkgIGdyZXBwYWJsZSBieSB1c2luZyBHU1RfUEFERElORy0xKzEuCgoyMDA1LTExLTE3IDExOjI1OjM0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL05PVEVTLTAuMS4xOgoJKiBkb2NzL3JhbmRvbS9OT1RFUy0wLjIuMDoKCSogZG9jcy9yYW5kb20vVE9ETy1wb3N0LTAuMS4wOgoJKiBkb2NzL3JhbmRvbS9hcmNoOgoJKiBkb2NzL3JhbmRvbS9jb3JvdXRpbmVzOgoJKiBkb2NzL3JhbmRvbS9kZXNpZ246CgkqIGRvY3MvcmFuZG9tL2ZhY3RvcnlpbmZvOgoJKiBkb2NzL3JhbmRvbS9nYm9vbGVhbjoKCSogZG9jcy9yYW5kb20vcGFkYXJjaDoKCSogZG9jcy9yYW5kb20vc2VxdWVuY2U6CgkqIGRvY3MvcmFuZG9tL3N0YXRlLXRyYW5zaXRpb25zOgoJKiBkb2NzL3JhbmRvbS9zdGF0ZXM6CgkqIGRvY3MvcmFuZG9tL3N0YXRlcy5uZXc6CgkqIGRvY3MvcmFuZG9tL3N0YXRlcy5vbGQ6CgkqIGRvY3MvcmFuZG9tL3dhbGt0aHJvdWdoOgoJICByZW1vdmUgY29tcGxldGVseSBvdXRkYXRlZCByYW5kb20gZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGNvbXBsZXRlbHkgb3V0ZGF0ZWQgcmFuZG9tIGRvY3MKCjIwMDUtMTEtMTcgMDk6Mzc6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0bWVzc2FnZS5jOiBBc3NlcnRpb24gc2hvdWxkIGNoZWNrIGZvciBDTE9DS19MT1NULCBub3QgTkVXX0NMT0NLICgjMzIxNjQ4KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyICA8dGltIGF0IGNlbnRyaWN1bGFyIGRvdCBuZXQ+CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX3BhcnNlX2Nsb2NrX2xvc3QpOgoJICBBc3NlcnRpb24gc2hvdWxkIGNoZWNrIGZvciBDTE9DS19MT1NULCBub3QgTkVXX0NMT0NLICgjMzIxNjQ4KS4KCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJICBEb24ndCB1c2UgYysrIHN0eWxlIGNvbW1lbnRzIGluIGhlYWRlcnMgKCMzMjE2MzgpLgoKMjAwNS0xMS0xNiAxODozNzo1NyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmMgKGdzdF9uZXRfdGltZV9wYWNrZXRfc2VuZCk6IEZyZWUgYnVmZmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYyAoZ3N0X25ldF90aW1lX3BhY2tldF9zZW5kKTogRnJlZQoJICBidWZmZXIuCgoyMDA1LTExLTE2IDE4OjE2OjUxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6IENoZWNrIHRvIHNlZSB0aGF0IHRoZSB0aW1lIHByb3ZpZGVyIGFjdHVhbGx5IHByb3ZpZGVzIHRpbWVzLiBXb3JrcywgeW8hCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzogQ2hlY2sgdG8gc2VlIHRoYXQgdGhlIHRpbWUKCSAgcHJvdmlkZXIgYWN0dWFsbHkgcHJvdmlkZXMgdGltZXMuIFdvcmtzLCB5byEKCjIwMDUtMTEtMTYgMTg6MDk6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogRW5hYmxlIG1vcmUgdGVzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBFbmFibGUgbW9yZSB0ZXN0cy4KCSAgKiBjaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFNldCBlbGVtZW50IHRvIE5VTEwgYmVmb3JlIGRpc3Bvc2luZyBpdC4KCjIwMDUtMTEtMTYgMTc6NTM6NTQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGdzdC9uZXQvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXgKCjIwMDUtMTEtMTYgMTc6NTI6MDQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9uZXQvOiBVc2UgdGhlIHRpbWVwYWNrZXQgc3R1ZmYgaW4gdGhlIHByb3ZpZGVyLCBpbmNsdWRlIGl0IGZyb20gZ3N0bmV0LmgsIGFuZCBhZGQgaXQgdG8gdGhlIGJ1aWxkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvbmV0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9uZXQvZ3N0bmV0Lmg6CgkgICogZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgKiBnc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOiBVc2UgdGhlIHRpbWVwYWNrZXQgc3R1ZmYgaW4gdGhlCgkgIHByb3ZpZGVyLCBpbmNsdWRlIGl0IGZyb20gZ3N0bmV0LmgsIGFuZCBhZGQgaXQgdG8gdGhlIGJ1aWxkLgoJICAqIGdzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5oOgoJICAqIGdzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOiBOZXcgZmlsZXMsIGFic3RyYWN0cyBvdXQgdGhlIHBhY2tldAoJICBzZW5kaW5nIGFuZCByZWNlaXZpbmcuCgoyMDA1LTExLTE2IDE3OjM1OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IEVuYWJsZSB2YWxncmluZCBjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIEVuYWJsZSB2YWxncmluZCBjaGVjay4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2FsbG9jX3BhcmVudCksCgkgIChnc3RfZmFrZV9zcmNfYWxsb2NfYnVmZmVyKToKCSAgRml4IG1lbWxlYWsuCgoyMDA1LTExLTE2IDE3OjIyOjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzogQ2FsbCBwYXJlbnQgZmluYWxpemUgdG9vLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOiAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2ZpbmFsaXplKToKCSAgQ2FsbCBwYXJlbnQgZmluYWxpemUgdG9vLgoKMjAwNS0xMS0xNiAxNzoxODozNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBFbmFibGUgdmFsZ3JpbmQgY2hlY2sgdGhhdCBzaG91bGQgd29yayBmaW5lIG5vdy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIEVuYWJsZSB2YWxncmluZCBjaGVjayB0aGF0IHNob3VsZCB3b3JrIGZpbmUgbm93LgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9pbml0KToKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9pbml0KToKCSAgRml4IG1lbWxlYWtzIGluIHBhZCBhbGxvY2F0aW9uLgoKMjAwNS0xMS0xNiAxNjo0OTo0OSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L25ldC86IE5ldyBwYXJ0IG9mIGNvcmUgdG8gaG9sZCBuZXR3b3JrIGVsZW1lbnRzIGFuZCBvYmplY3RzLiBQdXQgaW4gY29yZSBiZWNhdXNlIGl0IGV4cG9zZXMgQVBJIHRoYXQgYXBwbGljYXRpb25zLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9uZXQvTWFrZWZpbGUuYW06CgkgICogZ3N0L25ldC9nc3RuZXQuaDogTmV3IHBhcnQgb2YgY29yZSB0byBob2xkIG5ldHdvcmsgZWxlbWVudHMgYW5kCgkgIG9iamVjdHMuIFB1dCBpbiBjb3JlIGJlY2F1c2UgaXQgZXhwb3NlcyBBUEkgdGhhdCBhcHBsaWNhdGlvbnMgd2FudAoJICB0byB1c2UuIFRoZSBsaWJyYXJ5IGlzIG5hbWVkIGxpYmdzdG5ldC10ZW1wbmFtZSByaWdodCBub3cgYmVjYXVzZQoJICBvZiB0aGUgZXhpc3RpbmcgbGliZ3N0bmV0IGluIGdzdC1wbHVnaW5zLWJhc2UuIFNvbHV0aW9uIGlzCgkgIHByb2JhYmx5IHRvIHJlbmFtZSB0aGUgb25lIGluIHBsdWdpbnMtYmFzZTsgd2lsbCBmaWxlIGEgYnVnIGZvcgoJICB0aGUgZnJlZXplIGJyZWFrLgoJICAqIGdzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgICogZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDogTmV3IG9iamVjdCB0byBleHBvcnQgYSBHc3RDbG9jaydzCgkgIGdldF90aW1lIGNhbGwgb3ZlciB0aGUgbmV0d29yay4KCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L01ha2VmaWxlLmFtIChsaWJfTFRMSUJSQVJJRVMpOiBBZGQgZ3N0bmV0IHRvIHRoZSBidWlsZC4KCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6IEEgbW9zdCBtaW5pbWFsIHRlc3Qgc3VpdGUuIFdpbGwKCSAgZ2V0IGFkZGl0aW9ucyBzaG9ydGx5LgoKMjAwNS0xMS0xNiAxNjowOTo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0cGFkLio6IGFkZCBnc3RfcGFkX25ld19mcm9tX3N0YXRpY190ZW1wbGF0ZSBmdW5jdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9uZXdfZnJvbV9zdGF0aWNfdGVtcGxhdGUpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgYWRkIGdzdF9wYWRfbmV3X2Zyb21fc3RhdGljX3RlbXBsYXRlIGZ1bmN0aW9ucwoJICAqIGdzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX3NldHVwX3NyY19wYWQpLAoJICAoZ3N0X2NoZWNrX3NldHVwX3NpbmtfcGFkKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2luaXQpOgoJICBhbmQgdXNlIHRoZW0KCjIwMDUtMTEtMTYgMTY6MDY6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFJlbW92ZWQgd2FybmluZywgaXQncyBub3QgcmVhbHkgYW4gZXJyb3IgZWl0aGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3BhdXNlX3Rhc2spOgoJICBSZW1vdmVkIHdhcm5pbmcsIGl0J3Mgbm90IHJlYWx5IGFuIGVycm9yIGVpdGhlci4KCjIwMDUtMTEtMTYgMTQ6Mjc6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IENoZWNrIGlmIHRoZSBjYXBzIGFyZSBOVUxMLCB0aGlzIGNhbiBoYXBwZW4gaWYgdGhlIGVsZW1lbnQgaXMgc2h1dHRpbmcgZG93biBhbmQgdGhlIHBhZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZiksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpOgoJICBDaGVjayBpZiB0aGUgY2FwcyBhcmUgTlVMTCwgdGhpcyBjYW4gaGFwcGVuIGlmIHRoZSBlbGVtZW50CgkgIGlzIHNodXR0aW5nIGRvd24gYW5kIHRoZSBwYWQgY2FwcyBhcmUgc2V0IHRvIE5VTEwuCgoyMDA1LTExLTE2IDEyOjU3OjUxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBmaXggcGFkIHRlbXBhbHRlIGxlYWsgaW4gdGVlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggcGFkIHRlbXBhbHRlIGxlYWsgaW4gdGVlCgoyMDA1LTExLTE2IDEyOjQwOjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IHVzZSBnc3Rfb2JqZWN0X3JlZiB3aGVuIHNldHRpbmcgdGhlIHBhZCB0ZW1wbGF0ZTsgdGhpcyB3aWxsIHRyaWdnZXIgdGhlIHBhZCB0ZW1wbGF0ZSBsZWFrcyBvbiBHTGliIDIuNiBhbmQgdGhlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ2xpYi1jb21wYXQuYzogKGdfdmFsdWVfZHVwX2dzdF9vYmplY3QpOgoJICAqIGdzdC9nbGliLWNvbXBhdC5oOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X3Byb3BlcnR5KToKCSAgdXNlIGdzdF9vYmplY3RfcmVmIHdoZW4gc2V0dGluZyB0aGUgcGFkIHRlbXBsYXRlOyB0aGlzIHdpbGwKCSAgdHJpZ2dlciB0aGUgcGFkIHRlbXBsYXRlIGxlYWtzIG9uIEdMaWIgMi42IGFuZCB0aGUgc2xhdmVzCgoyMDA1LTExLTE2IDEyOjI1OjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IHJlbW92ZSBmdW5jdGlvbnMgY29waWVkIGZyb20gR0xpYiAyLjYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dsaWItY29tcGF0LmM6IChnc3RfZmxhZ3NfZ2V0X2ZpcnN0X3ZhbHVlKToKCSAgKiBnc3QvZ2xpYi1jb21wYXQuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSAgcmVtb3ZlIGZ1bmN0aW9ucyBjb3BpZWQgZnJvbSBHTGliIDIuNgoKMjAwNS0xMS0xNiAxMToyOTo1NyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L01ha2VmaWxlLmFtOiBEb24ndCBsaW5rIGFnYWluc3QgVkFMR1JJTkRfTElCUy4gVGhhdCB3YXMgYWx3YXlzIHRoZSB3cm9uZyB0aGluZyB0byBkbywgYnV0IG9ubHkgYnJlYWtzIHdpdGggbmV3ZXIgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgRG9uJ3QgbGluayBhZ2FpbnN0IFZBTEdSSU5EX0xJQlMuIFRoYXQgd2FzIGFsd2F5cyB0aGUgd3JvbmcgdGhpbmcgdG8KCSAgZG8sIGJ1dCBvbmx5IGJyZWFrcyB3aXRoIG5ld2VyIHZhbGdyaW5kIHZlcnNpb25zLiBXZSdyZSBub3QgYQoJICB2YWxncmluZCB0b29sLCB3ZSBoYXZlIG5vIGxpbmstdGltZSBkZXBlbmRlbmNpZXMgb24gbGliY29yZWdyaW5kLgoKMjAwNS0xMS0xNiAxMTowNjowNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IHNvbWUgZGVidWcgY2hhbmdlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZWdvdGlhdGUpOgoJICBzb21lIGRlYnVnIGNoYW5nZXMKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICB0eXBvIGZpeGVzCgoyMDA1LTExLTE1IDIzOjUzOjA4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIGdzdC9nc3RxdWV1ZS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgUmV2ZXJ0IGFsbCB0aGVzZSB1bnJlZnMsIHRoZXkgZG9uJ3QgZXZlbiBwYXNzIG1ha2UgY2hlY2sgIQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2ZXJ0IGFsbCB0aGVzZSB1bnJlZnMsIHRoZXkgZG9uJ3QgZXZlbiBwYXNzIG1ha2UgY2hlY2sgIQoKMjAwNS0xMS0xNSAxOTo0ODo0MCArMDAwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogZ3N0L2dzdHF1ZXVlLmM6CgkqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBBbmQgZ3N0X29iamVjdF91bnJlZiBoZXJlIHRvbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQW5kIGdzdF9vYmplY3RfdW5yZWYgaGVyZSB0b28KCjIwMDUtMTEtMTUgMTk6MzE6MDUgKzAwMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSAgZ3N0LzogRnJlZSBwYWQgdGVtcGxhdGVzLCBmaXhlcyBhIGNvdXBsZSBvZiBsZWFrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2luaXQpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9pbml0KToKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9pbml0KToKCSAgRnJlZSBwYWQgdGVtcGxhdGVzLCBmaXhlcyBhIGNvdXBsZSBvZiBsZWFrcy4KCjIwMDUtMTEtMTUgMTk6MjQ6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IEdTVF9QQURfUEFEX1RFTVBMQVRFKHBhZCkgZ2V0cyB0aGUgcGFkIHRlbXBsYXRlLCB3aGlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2aWV3ZWQgYnk6IFRpbS1QaGlsaXBwIE3DvGxsZXIgIDx0aW0gYXQgY2VudHJpY3VsYXIgZG90IG5ldD4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9wcm9wZXJ0eSk6CgkgIEdTVF9QQURfUEFEX1RFTVBMQVRFKHBhZCkgZ2V0cyB0aGUgcGFkIHRlbXBsYXRlLCB3aGlsZQoJICBHU1RfUEFEX1RFTVBMQVRFKHBhZCkgZG9lcyBhIGNhc3QuIFdlIHdhbnQgdGhlIGZvcm1lciBoZXJlLgoJICAoIzMyMTQ1MikKCjIwMDUtMTEtMTUgMTg6MzQ6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuYzogU21hbGwgZG9jIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgIFNtYWxsIGRvYyB1cGRhdGUuCgoyMDA1LTExLTE1IDE3OjU3OjUxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9zZXRfYmFzZV90aW1lKTogQWRkIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfc2V0X2Jhc2VfdGltZSk6IEFkZCBkZWJ1Z2dpbmcuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmMgKGdzdF9waXBlbGluZV9zZXRfbmV3X3N0cmVhbV90aW1lKTogRG9jdW1lbnQKCSAgdXNpbmcgR1NUX0NMT0NLX1RJTUVfTk9ORSB0byBkaXNhYmxlIGJhc2UgdGltZSBtYW5hZ2VtZW50LgoJICAoZG9fcGlwZWxpbmVfc2VlaywgZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6IERvbid0IHJlc2V0IHN0cmVhbQoJICB0aW1lIGlmIGl0IHdhcyBOT05FIGJlZm9yZS4KCSAgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOiBPbmx5IG11bmdlIHRoZSBiYXNlIHRpbWUgaWYKCSAgc3RyZWFtX3RpbWUgIT0gR1NUX0NMT0NLX1RJTUVfTk9ORS4KCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYyAodGVzdF9iYXNlX3RpbWUpOiBQdW50IGFyb3VuZCB0aGUKCSAgcHJvYmxlbSBvZiB0aGUgcHJvYmUgbm90IGJlaW5nIGNhbGxlZCwgYmVjYXVzZSB0aGF0J3Mgbm90IHRoZQoJICBpc3N1ZSBJJ20gbG9va2luZyBhdC4gQWRkIGEgY2hlY2sgdGhhdCBzZXR0aW5nIHN0cmVhbV90aW1lIHRvIE5PTkUKCSAgZGlzYWJsZXMgYmFzZSB0aW1lIG1hbmFnZW1lbnQuCgoyMDA1LTExLTE1IDE3OjE4OjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogc2VnbWVudF9zdG9wID09IC0xIGF0IHN0YXJ0dXAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIHNlZ21lbnRfc3RvcCA9PSAtMSBhdCBzdGFydHVwLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKToKCSAgSW5pdCBzZWdtZW50IHZhbHVlcyBhdCBzdGFydC4KCjIwMDUtMTEtMTUgMTY6NTI6NDYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jICh0ZXN0X2Jhc2VfdGltZSk6IFB1bnQgYXJvdW5kIHRoZSBwcm9ibGVtIG9mIHRoZSBwcm9iZSBub3QgYmVpbmcgY2FsbGVkLCBiZWNhdXNlIHRoYXQncyBub3QgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYyAodGVzdF9iYXNlX3RpbWUpOiBQdW50IGFyb3VuZCB0aGUKCSAgcHJvYmxlbSBvZiB0aGUgcHJvYmUgbm90IGJlaW5nIGNhbGxlZCwgYmVjYXVzZSB0aGF0J3Mgbm90IHRoZQoJICBpc3N1ZSBJJ20gbG9va2luZyBhdC4uLgoKMjAwNS0xMS0xNSAxNjo0NzowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IDAgc2VnbWVudCB2YWx1ZXMgYXJlIDAgaW4gYW55IGZvcm1hdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCk6CgkgIDAgc2VnbWVudCB2YWx1ZXMgYXJlIDAgaW4gYW55IGZvcm1hdC4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgUGFyc2UgbmV3c2VnbWVudCBjb3JyZWN0bHkgaW4gYmFzZXRyYW5zZm9ybQoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCk6CgkgIFN5bmMgdG8gY2xvY2sgdXNpbmcgdXBkYXRlZCBzZWdtZW50IHZhbHVlcy4KCjIwMDUtMTEtMTUgMTY6Mjc6MDQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jICh0ZXN0X2Jhc2VfdGltZSk6IEFkZCBjaGVjayB0aGF0IHRoZSBiYXNlIHRpbWUgYW5kIHN0cmVhbSB0aW1lIGFyZSByZXNldCBjb3JyZWN0bHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jICh0ZXN0X2Jhc2VfdGltZSk6IEFkZCBjaGVjayB0aGF0IHRoZQoJICBiYXNlIHRpbWUgYW5kIHN0cmVhbSB0aW1lIGFyZSByZXNldCBjb3JyZWN0bHkuCgoyMDA1LTExLTE1IDE1OjQ0OjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogU29tZSBtb3JlIFRPRE8gaXRlbXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFNvbWUgbW9yZSBUT0RPIGl0ZW1zLgoKMjAwNS0xMS0xNSAxMjozNTo0NSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYyAoZ3N0X2Zha2Vfc3JjX2NyZWF0ZSk6IEl0J3Mgbm90IGFuIGVycm9yIGlmIHRoZSB1c2VyIHNlbGVjdGVkICJubyBjbG9jayIgYXMgdGhlIGNsb2NraW5nIG1lLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmMgKGdzdF9mYWtlX3NyY19jcmVhdGUpOiBJdCdzIG5vdCBhbgoJICBlcnJvciBpZiB0aGUgdXNlciBzZWxlY3RlZCAibm8gY2xvY2siIGFzIHRoZSBjbG9ja2luZyBtZXRob2QuCgoyMDA1LTExLTE1IDEyOjI5OjA3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYyAodGVzdF9iYXNlX3RpbWUpOiBOZXcgdGVzdCBmb3IgYnVmZmVyIHRpbWVzdGFtcHMgd2l0aCBsaXZlIGNhcHR1cmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jICh0ZXN0X2Jhc2VfdGltZSk6IE5ldyB0ZXN0IGZvciBidWZmZXIKCSAgdGltZXN0YW1wcyB3aXRoIGxpdmUgY2FwdHVyZS4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jIChnc3RfZmFrZV9zcmNfY3JlYXRlKTogSWYgdGhlIGRhdGFyYXRlCgkgIGlzIDAgYnV0IHdlIGFyZSBhIGxpdmUgc291cmNlLCB0aW1lc3RhbXAgdGhlIGJ1ZmZlcnMgdXNpbmcgdGhlCgkgIGVsZW1lbnQncyBjbG9jay4KCjIwMDUtMTEtMTQgMTU6MTU6NDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG1vcmUgc2VjdGlvbiBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGVycm9yLmM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICAqIGdzdC9nc3R4bWwuYzoKCSAgbW9yZSBzZWN0aW9uIGRvY3MKCjIwMDUtMTEtMTQgMTQ6NDU6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjb21tb24vZ3N0LnN1cHA6IGFkZCBzdXBwcmVzc2lvbnMgZnJvbSBXaW0ncyBEZWJpYW4gbWFjaGluZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb21tb24vZ3N0LnN1cHA6CgkgIGFkZCBzdXBwcmVzc2lvbnMgZnJvbSBXaW0ncyBEZWJpYW4gbWFjaGluZQoKMjAwNS0xMS0xNCAxNDozNjoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb21tb24vZ3N0LnN1cHA6IGFkZCBzdXBwcmVzc2lvbnMgZnJvbSBBbmR5J3MgQU1ENjQgVWJ1bnR1IG1hY2hpbmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29tbW9uL2dzdC5zdXBwOgoJICBhZGQgc3VwcHJlc3Npb25zIGZyb20gQW5keSdzIEFNRDY0IFVidW50dSBtYWNoaW5lCgoyMDA1LTExLTE0IDEyOjQzOjQzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfc2V0X2FjdGl2ZSk6IENoYW5nZSBkb2NzOyBwYXJlbnQncwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfc2V0X2FjdGl2ZSk6IENoYW5nZSBkb2NzOyBwYXJlbnQncwoJICBTVEFURV9MT0NLIG5vdCBuZWNlc3NhcnkuIEZpeGVzICMzMTE0ODkuCgoyMDA1LTExLTE0IDEyOjE3OjQ2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZXJyb3IuYyAoRklMRV9BX0JVRyk6IEJlIHBvbGl0ZSAqYW5kKiBoZWxwZnVsLiBGaXhlcyAjMzA1MjkxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZXJyb3IuYyAoRklMRV9BX0JVRyk6IEJlIHBvbGl0ZSAqYW5kKiBoZWxwZnVsLiBGaXhlcwoJICAjMzA1MjkxLgoKMjAwNS0xMS0xNCAxMTo1ODo0NCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGluZGV4LmMgKGdzdF9pbmRleF9hZGRfb2JqZWN0KTogTm90ZSBpbiB0aGUgZG9jcyB0aGF0IHRoaXMgZnVuY3Rpb24gaXMgbm90IGltcGxlbWVudGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0aW5kZXguYyAoZ3N0X2luZGV4X2FkZF9vYmplY3QpOiBOb3RlIGluIHRoZSBkb2NzIHRoYXQKCSAgdGhpcyBmdW5jdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQuCgoyMDA1LTExLTE0IDEwOjQ5OjM1ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogUmVmIHRoZSBzb3VyY2UgcGFkIGNhcHMgd2hpbGUgd2UgbmVlZCB0aGVtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNCAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWYpOgoJICBSZWYgdGhlIHNvdXJjZSBwYWQgY2FwcyB3aGlsZSB3ZSBuZWVkIHRoZW0uCgkgIEZpeGVzICgjMzIxMzg2KQoKMjAwNS0xMS0xMiAxMDoyMzo1MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9waXBlbGluZXMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNS0xMS0xMiAxMDowNDowMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZSB3aW4zMiBmaWxlcyBmb3IgSEVBRAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHdpbjMyIGZpbGVzIGZvciBIRUFECgoyMDA1LTExLTEyIDEwOjAzOjA4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIGRlYnVnIHRhc2sgam9pbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGVidWcgdGFzayBqb2luCgoyMDA1LTExLTEyIDEwOjAwOjAzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXF1b3Rlcy54bWw6CgkgIGZvdW5kIGFub3RoZXIgcXVvdGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZvdW5kIGFub3RoZXIgcXVvdGUKCjIwMDUtMTEtMTEgMjA6MTI6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGRlZCBzb21lIGRvY3MgZm9yIEdzdENvbGxlY3REYXRhLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGRlZCBzb21lIGRvY3MgZm9yIEdzdENvbGxlY3REYXRhLgoJICAqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgU29tZSBzbWFsbCBjb2RlIGV4YW1wbGUgZml4LgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgRG9jdW1lbnQgc29tZSBtb3JlLgoKMjAwNS0xMS0xMSAxOToyNjozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBoZWFkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIGhlYWQKCj09PSByZWxlYXNlIDAuOS41ID09PQoKMjAwNS0xMS0xMSAxOToyNDozMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICByZWxlYXNpbmcgMC45LjUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjkuNQoKMjAwNS0xMS0xMSAxODoyNTo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogQ29weSBtb3JlIGZsYWdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChfZ3N0X2J1ZmZlcl9jb3B5KToKCSAgQ29weSBtb3JlIGZsYWdzLgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19pc19lcXVhbCk6CgkgIEZpeCBzb21lIGRvY3MuCgkgIE1ha2UgX2lzX2VxdWFsIGZhc3QgaW4gdGhlIHRyaXZpYWwgY2FzZXMuCgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBNb3JlIGRvY3MuIFNwaWZpZnkgLmggZmlsZS4KCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgU21hbGwgZG9jIHVwZGF0ZS4KCjIwMDUtMTEtMTEgMTc6MTY6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA1LTExLTExIDE2OjM3OjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBTbWFsbCBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZiksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgIFNtYWxsIGNsZWFudXBzLgoJICBJZiB3ZSdyZSBwcm9jZXNzaW5nIGEgYnVmZmVyIGFuZCBuZWVkIHRvIGFsbG9jYXRlIGFuIG91dHB1dAoJICBidWZmZXIsIHdlIGNhbm5vdCBhY2NlcHQgYSBmb3JtYXQgY2hhbmdlLiBJZiB3ZSBkaWQgZ2V0IGEKCSAgZm9ybWF0IGNoYW5nZSwgd2UgaGF2ZSB0byBhbGxvYyBhIGJ1ZmZlciBvdXJzZWx2ZXMgb2YgdGhlCgkgIHJpZ2h0IHNpemUuCgoyMDA1LTExLTExIDE2OjM0OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBXaGlsZSBjaGVja2luZyB0aGUgZmxhZyBmb3IgcmVlbnRyYW5jeSBpbiB0aGUgZ3N0Y2FwcyBmdW5jdGlvbiBpcyBuaWNlIHRvIGRldGVjdCByZWN1cnNpdmUgaW52b2NhdGlvbnMsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X2NhcHMpLCAoZ3N0X3BhZF9wZWVyX2dldF9jYXBzKToKCSAgV2hpbGUgY2hlY2tpbmcgdGhlIGZsYWcgZm9yIHJlZW50cmFuY3kgaW4gdGhlIGdzdGNhcHMgZnVuY3Rpb24KCSAgaXMgbmljZSB0byBkZXRlY3QgcmVjdXJzaXZlIGludm9jYXRpb25zLCBpdCBhbHNvIG1ha2VzIGl0CgkgIGltcG9zc2libGUgdG8gY2FsbCBnZXRjYXBzIGZyb20gbXVsdGlwbGUgdGhyZWFkcywgd2hpY2ggbXVzdCBiZQoJICBwb3NzaWJsZS4gU28sIGNoZWNraW5nIGZvciByZWN1cnNpdmUgY2FsbHMgaGFzIHRvIGdvLgoKMjAwNS0xMS0xMSAxNToxOTozNyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRG9uJ3Qgc3luYyBvbiBidWZmZXJzIHRoYXQgZmFsbCBwYXJ0aWFsbHkgb3V0c2lkZSBvdXIgY3VycmVudCBzZWdtZW50LiBQcmV2ZW50cyBhbiBhc3NlcnRpb24gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICBEb24ndCBzeW5jIG9uIGJ1ZmZlcnMgdGhhdCBmYWxsIHBhcnRpYWxseSBvdXRzaWRlIG91ciBjdXJyZW50CgkgIHNlZ21lbnQuIFByZXZlbnRzIGFuIGFzc2VydGlvbiBmYWlsdXJlL2Fib3J0IHBsYXlpbmcgc29tZSBmaWxlcy4KCjIwMDUtMTEtMTAgMTg6MTU6MjQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYyAodGVzdF9tZXNzYWdlX3N0YXRlX2NoYW5nZWRfY2hpbGRyZW4pOiBTdHlsZSBmaXguLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0YmluLmMgKHRlc3RfbWVzc2FnZV9zdGF0ZV9jaGFuZ2VkX2NoaWxkcmVuKTogU3R5bGUKCSAgZml4Li4KCSAgKiBnc3QvZ3N0YnVzLmMgKHBvbGxfZGVzdHJveSwgcG9sbF9mdW5jLCBnc3RfYnVzX3BvbGwpOiBJbXBsZW1lbnQKCSAgZ3N0X2J1c19wb2xsIHdpdGggdGhlIHNpZ25hbCB3YXRjaC4gRW5zdXJlcyB0aGF0IHBvbGwgYW5kIGEgc2lnbmFsCgkgIHdhdGNoIHNlZSB0aGUgc2FtZSBtZXNzYWdlcy4KCSAgKiBjaGVjay9nc3QvZ3N0YnVzLmMgKHRlc3Rfd2F0Y2hfd2l0aF9wb2xsKTogTmV3IHRlc3QsIGNoZWNrcyB0aGF0CgkgIGEgcG9sbCBhbmQgYSB3YXRjaCBhdCB0aGUgc2FtZSB0aW1lIGdldCB0aGUgc2FtZSBtZXNzYWdlcy4KCjIwMDUtMTEtMTAgMTc6Mzc6MzkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogRG9uJ3QgY2FsbCBnc3RfY2Fwc19kb19zaW1wbGlmeSAtIGl0IGRvZXNuJ3QgcmVzcGVjdCBvcmRlciBvZiBjYXBzIGFuZCBpdCdzIG5vdCBuZWVkZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2Fwcyk6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2ludGVyc2VjdCk6CgkgIERvbid0IGNhbGwgZ3N0X2NhcHNfZG9fc2ltcGxpZnkgLSBpdCBkb2Vzbid0IHJlc3BlY3Qgb3JkZXIgb2YgY2FwcwoJICBhbmQgaXQncyBub3QgbmVlZGVkLgoKMjAwNS0xMS0xMCAxNTowNzo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IFVwZGF0ZWQgdG9kby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgVXBkYXRlZCB0b2RvLgoKMjAwNS0xMS0xMCAxNDo0NToyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlLzogSW1wbGVtZW50IGNsb2NrIHN5bmMgaW4gYmFzZSBjbGFzcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3dhaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSk6CgkgIEltcGxlbWVudCBjbG9jayBzeW5jIGluIGJhc2UgY2xhc3MuCgoyMDA1LTExLTEwIDEyOjMyOjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBGb3J3YXJkLXBvcnQgYSAwLjggcGF0Y2ggdG8gaGFuZGxlIGVzY2FwZWQgc3BhY2VzIGluIHN0cnVjdHVyZSBzdHJpbmcsICAgICAgICAgIHNvIHRoYXQgZ3N0X3BhcnNlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogVGltLVBoaWxpcHAgTcO8bGxlciA8dGltIGF0IGNlbnRyaWN1bGFyIGRvdCBuZXQ+CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9wYXJzZV9maWVsZCksCgkgIChnc3Rfc3RydWN0dXJlX2Zyb21fc3RyaW5nKToKCSAgRm9yd2FyZC1wb3J0IGEgMC44IHBhdGNoIHRvIGhhbmRsZSBlc2NhcGVkIHNwYWNlcyBpbiBzdHJ1Y3R1cmUgc3RyaW5nLCAgICAgICAgICBzbyB0aGF0IGdzdF9wYXJzZV9sYXVuY2goKSBjYW4gZGVhbCB3aXRoIHNwYWNlcyBpbiBmaWx0ZXJlZCBsaW5rCgkgIGNhcHMgKGZpeGVzICMxNjQ0NzkpCgkgICogY2hlY2svZ3N0L2NhcHNsaXN0Lmg6CgkgICogY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBhZGQgdW5pdCB0ZXN0cyBmb3IgdGhpcyBjaGFuZ2UKCjIwMDUtMTEtMTAgMTE6MTc6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBGaXggZG9jcywgbW92ZSBzb21lIFNUQVRFIG1hY3JvcyB0byBwcml2YXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgRml4IGRvY3MsIG1vdmUgc29tZSBTVEFURSBtYWNyb3MgdG8gcHJpdmF0ZS4KCjIwMDUtMTEtMTAgMTA6MTc6MDEgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgRnVydGhlciBpbXByb3ZlIHF1ZXJ5IGRvY3MuIFN0aWxsIG5vdCBoYXBweSB3aXRoIHRoaXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGdXJ0aGVyIGltcHJvdmUgcXVlcnkgZG9jcy4gU3RpbGwgbm90IGhhcHB5IHdpdGggdGhpcy4KCjIwMDUtMTEtMTAgMDk6MTk6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogQWRkZWQgY2hlY2sgZm9yIGJ1ZyAjMzE3MzQxCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2dob3N0X3BhZF9zdWl0ZSk6CgkgIEFkZGVkIGNoZWNrIGZvciBidWcgIzMxNzM0MQoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIFNvbWUgbW9yZSBzcGlmZmlmeWluZy4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfZG9fbGluayk6CgkgIENhbGwgcGVlciBsaW5rZnVuY3Rpb24gaWYgd2UgYXJlIGEgc291cmNlIHBhZC4gVG90YWxseSBmaXhlcwoJICAjMzE3MzQxCgkgICogZ3N0L2dzdHBhZC5jOgoJICBVcGRhdGUgZG9jcywgc291cmNlIHBhZHMgc2hvdWxkIGNhbGwgdGhlIHBlZXIgbGlua2Z1bmN0aW9uCgkgIHNvIHRoZXkgY2FuIGF0b21pY2FsbHkgcGVyZm9ybSB0aGUgcGFkIGxpbmsuCgoyMDA1LTExLTA5IDE5OjMyOjMyICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgSW1wcm92ZS9maXggZG9jdW1lbnRhdGlvbiBmb3IgR3N0UXVlcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBJbXByb3ZlL2ZpeCBkb2N1bWVudGF0aW9uIGZvciBHc3RRdWVyeS4KCSAgVGhpcyBzdGlsbCBuZWVkcyBzb21lIG1vcmUgd29yayB0byBleHBsYWluIHdoYXQgdGhlIHF1ZXJpZXMgYWN0dWFsbHkgbWVhbi4KCjIwMDUtMTEtMDkgMTg6NDE6NTMgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIFNsaWdodGx5IHBvbGlzaCBkb2NzIGZvciBHc3RBZGFwdGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgU2xpZ2h0bHkgcG9saXNoIGRvY3MgZm9yIEdzdEFkYXB0ZXIuCgoyMDA1LTExLTA5IDE4OjEwOjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci4qOiBVYmVyLXNwaWZmeS1zcGlmZmlmeSBzb21lIG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIFViZXItc3BpZmZ5LXNwaWZmaWZ5IHNvbWUgbW9yZS4KCjIwMDUtMTEtMDkgMTc6NTU6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBVc2UgR1NUX0RFQlVHX0ZVTkNQVFIoKSBtb3JlIGV4dGVuc2l2ZWx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RwYWRzX2FkZF9wYWQpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19pbml0KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaW5pdCk6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfZ2hvc3RfcGFkX3NldF9pbnRlcm5hbCksCgkgIChnc3RfZ2hvc3RfcGFkX2luaXQpLCAoZ3N0X2dob3N0X3BhZF9uZXdfbm90YXJnZXQpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfaW5pdCk6CgkgIFVzZSBHU1RfREVCVUdfRlVOQ1BUUigpIG1vcmUgZXh0ZW5zaXZlbHkuCgoyMDA1LTExLTA5IDE3OjMyOjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG9iamVjdC4qOiBEb2N1bWVudGF0aW9uIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgRG9jdW1lbnRhdGlvbiBmaXhlcy4KCjIwMDUtMTEtMDkgMTc6MDY6MjAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6IEZpeCBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkgIEZpeCBkb2NzLgoKMjAwNS0xMS0wOSAxNjo0NDo0MCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC86CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmg6CgoyMDA1LTExLTA5IDE2OjMyOjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGl0ZXJhdG9yLmM6IEZpeCByZXZpc2lvbiBkYXRhLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgRml4IHJldmlzaW9uIGRhdGEuCgkgICogZ3N0L2dzdHRhc2suYzoKCSAgKiBnc3QvZ3N0dGFzay5oOgoJICBGaXggZG9jcy4KCjIwMDUtMTEtMDkgMTY6MTY6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBGaXggZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdHVyaS5oOgoJICBGaXggZG9jcy4KCjIwMDUtMTEtMDkgMTY6MDA6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBNb3ZlZCB0aGUgbWVzc2FnZSBhc3luYyBkZWxpdmVyeSBwcml2YXRlIGxvY2sgYW5kIGNvbmQgdG8gdGhlIHByaXZhdGUgc2VjdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgTW92ZWQgdGhlIG1lc3NhZ2UgYXN5bmMgZGVsaXZlcnkgcHJpdmF0ZSBsb2NrIGFuZCBjb25kCgkgIHRvIHRoZSBwcml2YXRlIHNlY3Rpb24uCgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBGaXhlZCBkb2NzLgoKMjAwNS0xMS0wOSAxNTozNDo0NiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIERvY3VtZW50IEdzdFVSSUhhbmRsZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dXJpLmM6CgkgICogZ3N0L2dzdHVyaS5oOgoJICBEb2N1bWVudCBHc3RVUklIYW5kbGVyCgoyMDA1LTExLTA5IDE1OjMxOjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGl0ZXJhdG9yLio6IEZpeCBpdGVyYXRvciBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzogKGdzdF9pdGVyYXRvcl9mb2xkKSwgKGdzdF9pdGVyYXRvcl9mb3JlYWNoKSwKCSAgKGdzdF9pdGVyYXRvcl9maW5kX2N1c3RvbSk6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgIEZpeCBpdGVyYXRvciBkb2NzLgoKMjAwNS0xMS0wOSAxNToxMDozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uaDogRG9jdW1lbnQgYW5vdGhlciBmaWVsZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5oOgoJICBEb2N1bWVudCBhbm90aGVyIGZpZWxkLgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIERvY3VtZW50LgoKMjAwNS0xMS0wOSAxMzoxNDoyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uaDogRG9jdW1lbnRlZCBzdHJ1Y3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmg6CgkgIERvY3VtZW50ZWQgc3RydWN0cy4KCjIwMDUtMTEtMDkgMTI6MzY6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGRlZCBzb21lIG5ldyBtYWNyb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZGVkIHNvbWUgbmV3IG1hY3Jvcy4KCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIERvY3MgdXBkYXRlcy4KCjIwMDUtMTEtMDkgMTI6MDE6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBTb21lIG1vcmUgaXRlbXMgZm9yIHRoZSBUT0RPCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFNvbWUgbW9yZSBpdGVtcyBmb3IgdGhlIFRPRE8KCSAgKiBnc3QvZ3N0Y2Fwcy5jOgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgIERvY3VtZW50IEdzdENhcHMuCgoyMDA1LTExLTA5IDEwOjA2OjMwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBBZGQgdGhlIGJlZ2lubmluZyBvZiBkb2NzIGhlcmUgLS0gaGF2ZSB0byB3b3JrIG9uIHNvbWV0aGluZyBlbHNlIG5vdyB0aG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMDkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQWRkIHRoZSBiZWdpbm5pbmcgb2YgZG9jcyBoZXJlIC0tIGhhdmUKCSAgdG8gd29yayBvbiBzb21ldGhpbmcgZWxzZSBub3cgdGhvLi4uCgoyMDA1LTExLTA5IDA5OjQ4OjE2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jIChnc3RfZmlsZV9zaW5rX3N0YXJ0KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0wOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYyAoZ3N0X2ZpbGVfc2lua19zdGFydCkKCSAgKGdzdF9maWxlX3Npbmtfc3RvcCk6IE5ldyBmdW5jdGlvbnMsIHJlcGxhY2UgdGhlIHN0YXRlIGNoYW5nZQoJICBoYW5kbGVyLgoJICAoZ3N0X2ZpbGVfc2lua19jbGFzc19pbml0KTogSG9vayB1cCB0aGUgc3RhcnQgYW5kIHN0b3AgZnVuY3Rpb25zLgoJICAoZ3N0X2ZpbGVfc2lua19iYXNlX2luaXQpOiBEb24ndCBzZXQgdGhlIHN0YXRlIGNoYW5nZSBoYW5kbGVyIGFueQoJICBtb3JlLiBJdCB3YXMgYSBiaXQgdWdseSB0b28sIGJlaW5nIHNldCBmcm9tIGhlcmUuLi4KCSAgKGdzdF9maWxlX3NpbmtfZ2V0X3Byb3BlcnR5LCBnc3RfZmlsZV9zaW5rX3NldF9wcm9wZXJ0eSk6CgkgIENsZWFudXBzLi4uCgkgIChnc3RfZmlsZV9zaW5rX3NldF9sb2NhdGlvbik6IE1vcmUgcm9idXN0IGNoZWNrIHRoYXQgZG9lc24ndCBjYWxsCgkgIEdTVF9TVEFURS4gVWdnZ2dnZy4KCjIwMDUtMTEtMDkgMDk6NDc6MTIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmMgKGdzdF9maWxlX3Npbmtfc3RhcnQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTA5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jIChnc3RfZmlsZV9zaW5rX3N0YXJ0KQoJICAoZ3N0X2ZpbGVfc2lua19zdG9wKTogTmV3IGZ1bmN0aW9ucywgcmVwbGFjZSB0aGUgc3RhdGUgY2hhbmdlCgkgIGhhbmRsZXIuCgkgIChnc3RfZmlsZV9zaW5rX2NsYXNzX2luaXQpOiBIb29rIHVwIHRoZSBzdGFydCBhbmQgc3RvcCBmdW5jdGlvbnMuCgkgIChnc3RfZmlsZV9zaW5rX2Jhc2VfaW5pdCk6IERvbid0IHNldCB0aGUgc3RhdGUgY2hhbmdlIGhhbmRsZXIgYW55CgkgIG1vcmUuIEl0IHdhcyBhIGJpdCB1Z2x5IHRvbywgYmVpbmcgc2V0IGZyb20gaGVyZS4uLgoJICAoZ3N0X2ZpbGVfc2lua19nZXRfcHJvcGVydHksIGdzdF9maWxlX3Npbmtfc2V0X3Byb3BlcnR5KToKCSAgQ2xlYW51cHMuLi4KCSAgKGdzdF9maWxlX3Npbmtfc2V0X2xvY2F0aW9uKTogTW9yZSByb2J1c3QgY2hlY2sgdGhhdCBkb2Vzbid0IGNhbGwKCSAgR1NUX1NUQVRFLiBVZ2dnZ2dnLgoKMjAwNS0xMS0wOCAxMjozMzowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogSG9sZCBTVFJFQU1fTE9DSyB3aGlsZSBwdXNoaW5nIG5ld3NlZ21lbnQgb3IgdGFnIGV2ZW50cyBhcyB3ZWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpOgoJICBIb2xkIFNUUkVBTV9MT0NLIHdoaWxlIHB1c2hpbmcgbmV3c2VnbWVudCBvciB0YWcgZXZlbnRzIGFzIHdlbGwuCgoyMDA1LTExLTA4IDExOjUyOjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgcmV2ZXJ0IHBhcnQgb2YgdGhlIHBhdGNoIHNvIHRoYXQgcGF0aHMgYXJlIGNvcnJlY3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmVydCBwYXJ0IG9mIHRoZSBwYXRjaCBzbyB0aGF0IHBhdGhzIGFyZSBjb3JyZWN0CgoyMDA1LTExLTA4IDExOjEzOjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQXZvaWQgZXhjZXNzaXZlIHR5cGVjaGVja2luZyBpbiBtYWNyb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZW1wdHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhaW4pLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIEF2b2lkIGV4Y2Vzc2l2ZSB0eXBlY2hlY2tpbmcgaW4gbWFjcm9zLgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfbWluaV9vYmplY3RfZ2V0X3R5cGUpLAoJICAoZ3N0X21pbmlfb2JqZWN0X2luaXQpLCAoZ3N0X21pbmlfb2JqZWN0X25ldyksCgkgIChnc3RfbWluaV9vYmplY3RfZnJlZSk6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9jbGFzc19pbml0KSwgKGdzdF9vYmplY3RfaW5pdCksCgkgIChnc3Rfb2JqZWN0X2ZpbmFsaXplKToKCSAgUmVtb3ZlIGNydWZ0IGNvZGUsIG9wdGltaXplIGFsbG9jX3RyYWNlLgoKMjAwNS0xMS0wNyAxODoxNjoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IGZpeCB1cCBQUzEgZm9yIHN5c3RlbXMgdGhhdCB0cnkgdG8gcmVzZXQgaXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBmaXggdXAgUFMxIGZvciBzeXN0ZW1zIHRoYXQgdHJ5IHRvIHJlc2V0IGl0CgoyMDA1LTExLTA3IDEwOjMzOjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBTZXQgdGhlIHNlZ21lbnRfZW5kIHRvIC0xIGluaXRpYWxseS4gRml4ZWQgdHlwZWZpbmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpOgoJICBTZXQgdGhlIHNlZ21lbnRfZW5kIHRvIC0xIGluaXRpYWxseS4gRml4ZWQgdHlwZWZpbmQuCgoyMDA1LTExLTA3IDEwOjEzOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiBEZWJ1ZyBjYXRlZ29yeSBzaG91bGQgYmUgJ2FkYXB0ZXInLCBub3QgJ0dzdEFkYXB0ZXInLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIERlYnVnIGNhdGVnb3J5IHNob3VsZCBiZSAnYWRhcHRlcicsIG5vdCAnR3N0QWRhcHRlcicuCgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0cGFkc19iYXNlX2luaXQpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2NsYXNzX2luaXQpLCAoZ3N0X2NvbGxlY3RwYWRzX2luaXQpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX3BlZWspLCAoZ3N0X2NvbGxlY3RwYWRzX3BvcCksCgkgIChnc3RfY29sbGVjdHBhZHNfZXZlbnQpLCAoZ3N0X2NvbGxlY3RwYWRzX2NoYWluKToKCSAgQWRkIGRlYnVnIGNhdGVnb3J5IGFuZCBzb21lIGRlYnVnZ2luZyBvdXRwdXQuIFVzZSBib2lsZXJwbGF0ZQoJICBtYWNyb3MuIFJlbW92ZSBzb21lIGV4dHJhbmVvdXMgd29yZHMgZnJvbSBkb2NzLgoKMjAwNS0xMS0wNSAxNToxNDozMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOiBTaG9ydGVuIGJ5IDMwJSB2aWEgdXNlIG9mIGJvaWxlcnBsYXRlIG1hY3JvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0wNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmM6IFNob3J0ZW4gYnkgMzAlIHZpYSB1c2Ugb2YgYm9pbGVycGxhdGUKCSAgbWFjcm8uCgoyMDA1LTExLTA0IDIwOjEyOjAxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBtb3JlIGRvY3MgYWRkZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIG1vcmUgZG9jcyBhZGRlZAoKMjAwNS0xMS0wNCAxNTozMzo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogU21hbGwgdXBkYXRlIHRvIHN0b3AgYXQgdGhlIGNvbmZpZ3VyZWQgc2VnbWVudF9lbmQgcG9zaXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpOgoJICBTbWFsbCB1cGRhdGUgdG8gc3RvcCBhdCB0aGUgY29uZmlndXJlZCBzZWdtZW50X2VuZAoJICBwb3NpdGlvbi4KCjIwMDUtMTEtMDQgMTU6MDI6NDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeS4qOiBhZGRlZCBtaXNzaW5nIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIGFkZGVkIG1pc3NpbmcgZG9jcwoKMjAwNS0xMS0wNCAxNDozNToxMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogQ2hlY2sgaWYgd2UgYXJlIGRvaW5nIGEgc2VnbWVudCBzZWVrIGFuZCBoYXZlIGFycml2ZWQgYXQgdGhlIGVuZCBvZiB0aGF0IHNlZ21lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpOgoJICBDaGVjayBpZiB3ZSBhcmUgZG9pbmcgYSBzZWdtZW50IHNlZWsgYW5kIGhhdmUgYXJyaXZlZCBhdCB0aGUKCSAgZW5kIG9mIHRoYXQgc2VnbWVudC4KCjIwMDUtMTEtMDQgMTI6MDg6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVzLmM6IERvbid0IGxlYWsgYSBtdXRleCB1bmxvY2sgaW4gY2FzZSBvZiBhbiBlcnJvci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19wb3N0KSwgKGdzdF9idXNfc2V0X3N5bmNfaGFuZGxlcik6CgkgIERvbid0IGxlYWsgYSBtdXRleCB1bmxvY2sgaW4gY2FzZSBvZiBhbiBlcnJvci4KCSAgKiBnc3QvZ3N0YnVzLmg6CgkgIERvYyBmaXhlcy4KCjIwMDUtMTEtMDQgMTE6NDM6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVzLmM6IEdldCB0aGUgY29udGV4dCB0byB3YWtlIHVwIG9ubHkgb25jZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19jbGFzc19pbml0KSwgKGdzdF9idXNfaW5pdCksCgkgIChnc3RfYnVzX3Bvc3QpOgoJICBHZXQgdGhlIGNvbnRleHQgdG8gd2FrZSB1cCBvbmx5IG9uY2UuCgoyMDA1LTExLTAzIDIwOjE3OjI0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjaGVjay9zdGF0ZXMvc2lua3MuYzogVW5jb21tZW50IGZpeGVkIGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVW5jb21tZW50IGZpeGVkIGNoZWNrLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFVwZGF0ZWQgVE9ETy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIElmIHdlIGFyZSBnb2luZyB0byBQTEFZSU5HLCBwb3N0IHRoZSByaWdodCBwZW5kaW5nIHN0YXRlCgkgIHdoZW4gd2UgcG9zdCB0aGUgaW50ZXJtZWRpYXRlIHBhdXNlZCBtZXNzYWdlLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jb250aW51ZV9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGVfZnVuYyksIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBEb24ndCBwb3N0IHN0YXRlIGNoYW5nZXMgdGhhdCB3ZXJlIGJldHdlZW4gdGhlIHNhbWUgc3RhdGUKCSAgYW5kIHdlcmUgbm90IEFTWU5DLgoKMjAwNS0xMS0wMyAyMDoxNDoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL3N0YXRlcy9zaW5rcy5jOiBVbmNvbW1lbnQgZml4ZWQgY2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVbmNvbW1lbnQgZml4ZWQgY2hlY2suCgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgVXBkYXRlZCBUT0RPLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgSWYgd2UgYXJlIGdvaW5nIHRvIFBMQVlJTkcsIHBvc3QgdGhlIHJpZ2h0IHBlbmRpbmcgc3RhdGUKCSAgd2hlbiB3ZSBwb3N0IHRoZSBpbnRlcm1lZGlhdGUgcGF1c2VkIG1lc3NhZ2UuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NvbnRpbnVlX3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9mdW5jKSwgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgIERvbid0IHBvc3Qgc3RhdGUgY2hhbmdlcyB0aGF0IHdlcmUgYmV0d2VlbiB0aGUgc2FtZSBzdGF0ZQoJICBhbmQgd2VyZSBub3QgQVNZTkMuCgoyMDA1LTExLTAzIDE5OjM4OjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2MgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIGRvYyBmaXhlcwoKMjAwNS0xMS0wMyAxNzo1MzoyNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svc3RhdGVzL3NpbmtzLmMgKHRlc3RfbGl2ZXNyY19zaW5rKTogQWRkIGNoZWNrcyB0aGF0IHRoZSBzdGF0ZS1jaGFuZ2VkIG1lc3NhZ2VzIGFjdHVhbGx5IGhhdmUgdGhlIHJpZ2h0IG9yZGVyIGFuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTAzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rcy5jICh0ZXN0X2xpdmVzcmNfc2luayk6IEFkZCBjaGVja3MgdGhhdCB0aGUKCSAgc3RhdGUtY2hhbmdlZCBtZXNzYWdlcyBhY3R1YWxseSBoYXZlIHRoZSByaWdodCBvcmRlciBhbmQgdGhlIHJpZ2h0CgkgIHZhbHVlcy4KCjIwMDUtMTEtMDMgMTc6MTI6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9zdGF0ZXMvc2lua3MuYzogQWRkZWQgc29tZSBtb3JlIGNoZWNrcy4gU3BlY2lmaWNhbGx5IHRoZSBjYXNlIHdoZXJlIE5PX1BSRVJPTEwgZWxlbWVudHMgYXJlIGluIHRoZSBwaXBlbGluZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svc3RhdGVzL3NpbmtzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3Rfb2JqZWN0X3N1aXRlKToKCSAgQWRkZWQgc29tZSBtb3JlIGNoZWNrcy4gU3BlY2lmaWNhbGx5IHRoZSBjYXNlIHdoZXJlIE5PX1BSRVJPTEwKCSAgZWxlbWVudHMgYXJlIGluIHRoZSBwaXBlbGluZS4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIFBvc3QgUkVBRFktPlBBVVNFRCBzdGF0ZSBjaGFuZ2UgbWVzc2FnZXMgdG9vLgoJICBGaXggYnVnIHdoZXJlIFZPSUQgd2FzIHBvc3RlZCBhcyBwZW5kaW5nIHN0YXRlLi4uCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9yZWNhbGNfc3RhdGUpOgoJICB1c2UgX2VsZW1lbnRfY29udGludWVfc3RhdGUoKSB0byBjb250aW51ZSB0aGUgc3RhdGUgY2hhbmdlLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jb250aW51ZV9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKSwgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZV9mdW5jKToKCSAgTG90cyBvZiBzdGF0ZSBjaGFuZ2UgY2xlYW51cHMsIGFzc2lnbiB0aGUgU1RBVEVfUkVUVVJOIGluCgkgIGEgbmV3IGNvbnRpbnVlX3N0YXRlKCkgZnVuY3Rpb24gdGhhdCBhbHNvIHByb3BhZ2F0ZXMgdGhlCgkgIGxhc3QgcmV0dXJuIHZhbHVlIGZyb20gYSBzdGF0ZSBjaGFuZ2UgdG8gdGhlIGFwcC4KCSAgVXBkYXRlIHNvbWUgZGVidWcgc3RhdGVtZW50cyB3aXRoIHByb3BlciBjYXRlZ29yeS4KCjIwMDUtMTEtMDMgMTQ6MjI6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzLzogU21hbGwgZG9jcyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1wb3NpdGlvbi54bWw6CgkgIFNtYWxsIGRvY3MgdXBkYXRlcy4KCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIFBlb3BsZSB0aGluayAhISBpcyB1Z2x5LCB0aGlzIGxvb2tzIGJldHRlci4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9ibG9ja2VkX2FzeW5jKToKCSAgUmVtb3ZlICEhIHNpbmNlIGl0J3MgZml4ZWQgZWxzZXdoZXJlIG5vdy4KCjIwMDUtMTEtMDMgMTM6NTI6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBBZGQgISEgdG8gX0ZMQUdfSVNfU0VUIG1hY3JvcyB0byBtYWtlIHRoZSByZXN1bHQgYm9vbGVhbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIEFkZCAhISB0byBfRkxBR19JU19TRVQgbWFjcm9zIHRvIG1ha2UgdGhlIHJlc3VsdCBib29sZWFuLgoKMjAwNS0xMS0wMyAxMjo0ODozMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogY29tcGFyaW5nIGEgZmxhZyBhbmQgYSBnYm9vbGVhbiByYXJlbHkgcmV0dXJucyBjb2hlcmVudCByZXN1bHRzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2Jsb2NrZWRfYXN5bmMpOgoJICBjb21wYXJpbmcgYSBmbGFnIGFuZCBhIGdib29sZWFuIHJhcmVseSByZXR1cm5zIGNvaGVyZW50IHJlc3VsdHMuLi4KCSAgQWRkZWQgdHdvIGNoYXJhY3RlcnMgKCEhKSB0byBtYWtlIHRoYXQgd29yayBjb3JyZWN0bHkuCgoyMDA1LTExLTAzIDEyOjE2OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJ1cy5jOiBGaXggc29tZSB0eXBvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19jbGFzc19pbml0KToKCSAgRml4IHNvbWUgdHlwb3MuCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbG9vcCk6CgkgIERvbid0IGFzc3VtZSBhIG1pbmlvYmplY3QgdGhhdCBpc24ndCBhIGJ1ZmZlciBpcyBhbgoJICBldmVudCAoaXQgY291bGQgYmUgdGhhdCB0aGVyZSBpcyBhIHJlZmNvdW50aW5nCgkgIHByb2JsZW0gc29tZXdoZXJlIGFuZCB0aGUgcG9pbnRlciBpcyBzdGFsZSBhbmQKCSAgcmVmZXJzIHRvIGFuIGFscmVhZHkgZGVzdHJveWVkIG1pbmlvYmplY3QpLgoKMjAwNS0xMS0wMyAxMDo1NjoyMyArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IEZpeCBzb21lIHR5cG9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0wMyAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWxsb2NfYnVmZmVyKTogRml4IHNvbWUgdHlwb3MuCgoyMDA1LTExLTAzIDA5OjE4OjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtcG9zaXRpb24ueG1sOiBVcGRhdGUgc2VlayBleGFtcGxlIGFuZCBleHBsYW5hdGlvbnMgdG8gY3VycmVudCAwLjkgQVBJLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1wb3NpdGlvbi54bWw6CgkgIFVwZGF0ZSBzZWVrIGV4YW1wbGUgYW5kIGV4cGxhbmF0aW9ucyB0byBjdXJyZW50IDAuOSBBUEkuCgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2FjdGl2YXRlKToKCSAgUmVtb3ZlIEZJWE1FIGNvbW1lbnQgbm93IHRoYXQgdGhlIGZvdW5kIGNhcHMKCSAgYXJlIHVucmVmZmVkLgoKMjAwNS0xMS0wMyAwMDozOTo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJICBBZGQgYW5vdGhlciBHU1RfU1RSX05VTEwgaW5zdGFuY2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFkZCBhbm90aGVyIEdTVF9TVFJfTlVMTCBpbnN0YW5jZQoKMjAwNS0xMS0wMiAxOTowNDoyMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogRm9sbG93LXVwIHRvIFdpbSdzIHBhdGNoLCBzb2x2ZXMgZGVhZGxvY2sgZm9yIGJsb2NrZWQgYW5kIGZsdXNoaW5nIHBhZHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoaGFuZGxlX3BhZF9ibG9jayk6CgkgIEZvbGxvdy11cCB0byBXaW0ncyBwYXRjaCwgc29sdmVzIGRlYWRsb2NrIGZvciBibG9ja2VkIGFuZCBmbHVzaGluZyBwYWRzCgoyMDA1LTExLTAyIDE4OjQ0OjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBGaXggdHlwbyBpbiBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6CgkgIEZpeCB0eXBvIGluIGRvY3MuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSk6CgkgIFJlbW92ZSB1bnVzZWQgdmFsdWUuCgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIE1lbnRpb24gdGhhdCB0aGUgcmV0dXJuZWQgZWxlbWVudCBpcyByZWZmZWQgaW4gdGhlIGRvY3MuCgoyMDA1LTExLTAyIDE4OjMzOjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBVbmxvY2sgYmxvY2tlZCBwYWRzIHdoZW4gdGhleSBhcmUgZmx1c2hlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hbGxvY19idWZmZXIpLCAoaGFuZGxlX3BhZF9ibG9jayksCgkgIChnc3RfcGFkX3B1c2gpLCAoZ3N0X3BhZF9wdXNoX2V2ZW50KToKCSAgVW5sb2NrIGJsb2NrZWQgcGFkcyB3aGVuIHRoZXkgYXJlIGZsdXNoZWQuCgoyMDA1LTExLTAyIDE1OjM0OjIzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvYyB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvUkVBRE1FOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGJpbi5jOgoJICBkb2MgdXBkYXRlcwoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgIGZpeCBmb3IgYSBuYXN0eSBsaXR0bGUgbWlzc2VkIHNpdHVhdGlvbiB3aGVyZSBhbiBpbnN0YWxsZWQgcGx1Zy1pbgoJICB3aGljaCB3YXMgaW4gdGhlIGNhY2hlIGRpZCBub3QgZ2V0IG92ZXJyaWRkZW4gYnkgYW4gdW5pbnN0YWxsZWQgb25lCgkgIHdoaWNoIHdhcyBlYXJsaWVyIGluIHRoZSBwbHVnaW4gcGF0aCBiZWNhdXNlIHRoZSBuZXdseSBjcmVhdGVkIHBsdWdpbgoJICBmb3IgdGhlIHVuaW5zdGFsbGVkIG9uZSAobm90IGluIHRoZSByZWdpc3RyeSkgZGlkbid0IGdldCBpdHMKCSAgLT5yZWdpc3RlcmVkIHNldCB0byBUUlVFCgoyMDA1LTExLTAyIDE1OjA4OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogR3VhcmQgcHVibGljIEFQSSB3aXRoIGFzc2VydGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdHBhZHNfc2V0X2Z1bmN0aW9uKSwKCSAgKGdzdF9jb2xsZWN0cGFkc19hZGRfcGFkKSwgKGdzdF9jb2xsZWN0cGFkc19yZW1vdmVfcGFkKSwKCSAgKGdzdF9jb2xsZWN0cGFkc19pc19hY3RpdmUpLCAoZ3N0X2NvbGxlY3RwYWRzX2NvbGxlY3QpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2NvbGxlY3RfcmFuZ2UpLCAoZ3N0X2NvbGxlY3RwYWRzX3N0YXJ0KSwKCSAgKGdzdF9jb2xsZWN0cGFkc19zdG9wKSwgKGdzdF9jb2xsZWN0cGFkc19wZWVrKSwKCSAgKGdzdF9jb2xsZWN0cGFkc19wb3ApLCAoZ3N0X2NvbGxlY3RwYWRzX2F2YWlsYWJsZSksCgkgIChnc3RfY29sbGVjdHBhZHNfcmVhZCksIChnc3RfY29sbGVjdHBhZHNfZmx1c2gpOgoJICBHdWFyZCBwdWJsaWMgQVBJIHdpdGggYXNzZXJ0aW9ucy4KCSAgKiBnc3QvZ3N0cGFkLmM6CgkgIEZpeCBkb2NzIGZvciBnc3RfcGFkX3NldF9saW5rX2Z1bmN0aW9uKCkuCgoyMDA1LTExLTAyIDE0OjI4OjAyICswMDAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkgIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYyAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2FjdGl2YXRlKTogVW5yZWYgZm91bmRfY2FwcyBhZnRlciB3ZSB1c2VkIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmMgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9hY3RpdmF0ZSk6CgkgIFVucmVmIGZvdW5kX2NhcHMgYWZ0ZXIgd2UgdXNlZCBpdC4KCjIwMDUtMTEtMDIgMTI6MjA6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBEb24ndCB0cnkgdG8gcmVmIE5VTEwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdHBhZHNfcGVlayk6CgkgIERvbid0IHRyeSB0byByZWYgTlVMTC4KCjIwMDUtMTEtMDIgMDk6MzE6MDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGFkZCBtb3JlIHN5bWJvbHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtb3JlIHN5bWJvbHMKCjIwMDUtMTEtMDIgMDk6Mjc6MzMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGFkZCBtb3JlIHN5bWJvbHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtb3JlIHN5bWJvbHMKCjIwMDUtMTEtMDIgMDk6MjQ6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGUgZ2VuZXJhdGVkIGNvbmZpZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGdlbmVyYXRlZCBjb25maWcKCjIwMDUtMTEtMDIgMDk6MjQ6MDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIHByb3ZpZGUgYSBHU1RfRlVOQ1RJT04gdGhhdCBqdXN0IGdpdmVzIGEgc3RyaW5nIGZvciBub3cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHByb3ZpZGUgYSBHU1RfRlVOQ1RJT04gdGhhdCBqdXN0IGdpdmVzIGEgc3RyaW5nIGZvciBub3cKCjIwMDUtMTEtMDIgMDg6NTY6MDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIHVwZGF0ZSB3aW4zMiBjb3BpZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSB3aW4zMiBjb3BpZXMKCjIwMDUtMTEtMDEgMTk6MTY6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBtb3JlIGRvYyB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIGRvYyB1cGRhdGVzCgoyMDA1LTExLTAxIDE3OjQ1OjQ2ICswMDAwICBMdWNhIE9nbmliZW5lIDxsdW9nbmlAdGluLml0PgoKCSAgZ3N0L2dzdC5jOiBmaXggZG9jcy4gcG9wdCBpcyBkZWF0aCwgbG9uZyBsaXZlIEdPcHRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgZml4IGRvY3MuIHBvcHQgaXMgZGVhdGgsIGxvbmcgbGl2ZSBHT3B0aW9uLgoKMjAwNS0xMC0zMSAxMTo0NDozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuaDogU21hbGwgZG9jIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBTbWFsbCBkb2MgZml4LgoKMjAwNS0xMC0zMSAwOTo1MjoxMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgQm9vIQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0zMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBCb28hCgkgICogZ3N0L2dzdHF1ZXVlLmMgKGdzdF9xdWV1ZV9jaGFpbik6IEZpeCBkb3duc3RyZWFtIGxlYWt5IG1vZGUuCgkgICogZ3N0L2dzdG9iamVjdC5jIChnc3Rfb2JqZWN0X2Rpc3BhdGNoX3Byb3BlcnRpZXNfY2hhbmdlZCk6IE5vCgkgIG5lZWQgdG8gc2VyaWFsaXplIHByb3BlcnR5IG5vdGlmaWNhdGlvbnMgb24gR0xpYiAyLjguIEdMaWIgMi42IGhhcwoJICB0aGUgcG9zc2liaWxpdHkgb2YgZGVhZGxvY2tzIGhlcmUgaWYgY29kZSBjYWxsaW5nIG5vdGlmeSgpIG9yCgkgIHNldCgpIGhhcyBhIGxvY2sgdGhhdCBjYW4gYmUgdGFrZW4gaW4gYW5vdGhlciBub3RpZnkgaGFuZGxlciAoQUJCQQoJICB3aXRoIGNsYXNzIGxvY2sgYW5kIGUuZy4gcHl0aG9uIEdJTCBzdGF0ZSBsb2NrKS4KCjIwMDUtMTAtMjggMTg6MTg6MjMgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdGJ1cy5jOiBEb2MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMjggIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvZ3N0YnVzLmM6IERvYyB1cGRhdGVzLgoKMjAwNS0xMC0yOCAxODoxNDoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJICBEb2MgdXBkYXRlcy4KCjIwMDUtMTAtMjggMTg6MTA6NDEgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBkb2NzL2dzdC86IHRoZSBHc3RVUklUeXBlIGRvY3VtZW50YXRpb24gcGFnZSBpcyBwcml2YXRlLCBpdCBvbmx5IGRlZmluZXMgR3N0VVJJVHlwZSB3aGljaCBzaG91bGQgYmUgZGVmaW5lZCBpbiB0aGUgR3MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICB0aGUgR3N0VVJJVHlwZSBkb2N1bWVudGF0aW9uIHBhZ2UgaXMgcHJpdmF0ZSwgaXQgb25seSBkZWZpbmVzIEdzdFVSSVR5cGUKCSAgd2hpY2ggc2hvdWxkIGJlIGRlZmluZWQgaW4gdGhlIEdzdFVSSUhhbmRsZXIgcGFnZQoKMjAwNS0xMC0yOCAxNzozNTo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoKMjAwNS0xMC0yOCAxNzozNTowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvY3VtZW50ZWQgdGhlIGNsb2Nrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgRG9jdW1lbnRlZCB0aGUgY2xvY2tzLgoKMjAwNS0xMC0yOCAxNzozNDozMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdXBkYXRlZCBjb25maWcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZWQgY29uZmlnCgoyMDA1LTEwLTI4IDE3OjIwOjQ1ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIFdvcmsgYXJvdW5kIGd0a2RvYyBkZWZpY2llbmNpZXMsIGRvY3VtZW50IGEgbWFjcm8gZGlmZmVyZW50bHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBXb3JrIGFyb3VuZCBndGtkb2MgZGVmaWNpZW5jaWVzLCBkb2N1bWVudCBhIG1hY3JvIGRpZmZlcmVudGx5LgoKMjAwNS0xMC0yOCAxNzowMToxNCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBJbXByb3ZlIEdzdEJ1ZmZlciBkb2N1bWVudGF0aW9uLiBJdCdzIG5vdyAxMDAlIFNwaWZmaWVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgSW1wcm92ZSBHc3RCdWZmZXIgZG9jdW1lbnRhdGlvbi4gSXQncyBub3cgMTAwJSBTcGlmZmllci4KCjIwMDUtMTAtMjggMTY6NTQ6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9SRUFETUU6CgkgIHNvbWUgc3R5bGUgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNvbWUgc3R5bGUgZml4ZXMKCjIwMDUtMTAtMjggMTY6NDY6NTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IG1vdmUgc29tZSBtYWNyb3MgdG8gcHJpdmF0ZSBzZWN0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBtb3ZlIHNvbWUgbWFjcm9zIHRvIHByaXZhdGUgc2VjdGlvbnMKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIGFkZCBkZXNjcmlwdGlvbnMgcHJvdmlkZWQgYnkgZHMgYW5kIHNvbWUgbW9yZQoJICAqIGdzdC9nc3RwYWQuaDoKCSAgbWFyayBtYWNybyBhcyB0byBiZSByZW1vdmVkCgoyMDA1LTEwLTI4IDE2OjIxOjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogQWRkIGFuIGl0ZW0gdG8gVE9ETy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgQWRkIGFuIGl0ZW0gdG8gVE9ETy4KCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzogKGdzdF9pdGVyYXRvcl9mb2xkKSwKCSAgKGdzdF9pdGVyYXRvcl9maW5kX2N1c3RvbSk6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgIEFkZCBpdGVyYXRvciBkb2NzLgoKMjAwNS0xMC0yOCAxNjowODo1MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL1JFQURNRToKCSAgYWRkIHN0eWxlIGd1aWRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgc3R5bGUgZ3VpZGUKCjIwMDUtMTAtMjggMTA6NDU6MzMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IERvbid0IGxlYWsgY2xhc3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KToKCSAgRG9uJ3QgbGVhayBjbGFzcy4KCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfbG9vcCk6CgkgIEFuIEVPUyBldmVudCBtYXJrcyB0aGUgcXVldWUgYXMgY29tcGxldGVseSBmaWxsZWQuCgoyMDA1LTEwLTI3IDIwOjU5OjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU29tZSBtb3JlIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBTb21lIG1vcmUgZGVidWdnaW5nLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9maW5hbGl6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCksIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0cmFuZ2UpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIEZpeCBkZWJ1Z2dpbmcsCgkgIFByb3RlY3QgdHJhbnNmb3JtIGFuZCBjb25jdXJyZW50IGJ1ZmZlciBhbGxvYyB3aXRoIGEgbmV3IGxvY2suCgkgIFRyeSBub3QgdG8gYnJlYWsgQUJJL0FQSS4KCjIwMDUtMTAtMjcgMTk6Mzc6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IE1vdmUgc29tZSBzdHVmZiBhcm91bmQgYW5kIGNsZWFudXAgdGhpbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfaW5pdCksIChnc3RfYmFzZV9zcmNfcXVlcnkpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmV3c2VnbWVudCksCgkgIChnc3RfYmFzZV9zcmNfY29uZmlndXJlX3NlZ21lbnQpLCAoZ3N0X2Jhc2Vfc3JjX2RvX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZXZlbnQpLCAoZ3N0X2Jhc2Vfc3JjX2V2ZW50X2hhbmRsZXIpLAoJICAoZ3N0X2Jhc2Vfc3JjX3BhZF9nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc3JjX3VubG9jayksIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZWdvdGlhdGUpLAoJICAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KSwgKGdzdF9iYXNlX3NyY19kZWFjdGl2YXRlKSwKCSAgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBNb3ZlIHNvbWUgc3R1ZmYgYXJvdW5kIGFuZCBjbGVhbnVwIHRoaW5ncy4KCjIwMDUtMTAtMjcgMTU6NDg6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEFkZCBtaXNzaW5nIGJyZWFrIHN0YXRlbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19xdWVyeSk6CgkgIEFkZCBtaXNzaW5nIGJyZWFrIHN0YXRlbWVudHMuCgoyMDA1LTEwLTI3IDEzOjQ3OjMzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBBbiBleHRyYSByZWZjb3VudCBpcyB0YWtlbiBpbiBiYXNlc3JjLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFuIGV4dHJhIHJlZmNvdW50IGlzIHRha2VuIGluIGJhc2VzcmMuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2luaXQpLCAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5KSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX3BhZF9nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApOgoJICBTbWFsbCBjbGVhbnVwcywgY2hlY2sgZm9yIGZsdXNoaW5nIGFmdGVyIGJlaW5nIHVubG9ja2VkIGZyb20gdGhlCgkgIExJVkVfTE9DSy4gdGFrZSByZWZjb3VudHMgY29ycmVjdGx5IChub3QgeWV0IGV2ZXJ5d2hlcmUpLgoJICBEb24ndCBzZW5kIG91dCBFT1Mgd2hlbiBnb2luZyB0byBSRUFEWS4KCjIwMDUtMTAtMjcgMDg6NTU6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBTb21lIG1vcmUgZGVidWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBTb21lIG1vcmUgZGVidWcuCgkgICogZ3N0L2dzdGJpbi5jOiAobWVzc2FnZV9jaGVjayksIChiaW5fcmVwbGFjZV9tZXNzYWdlKSwKCSAgKGJpbl9yZW1vdmVfbWVzc2FnZXMpLCAoaXNfZW9zKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAodXBkYXRlX2RlZ3JlZSksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV4dCksIChiaW5fYnVzX2hhbmRsZXIpLAoJICAoYmluX3F1ZXJ5X2R1cmF0aW9uX2luaXQpLCAoYmluX3F1ZXJ5X2R1cmF0aW9uX2ZvbGQpLAoJICAoYmluX3F1ZXJ5X2R1cmF0aW9uX2RvbmUpLCAoYmluX3F1ZXJ5X2dlbmVyaWNfZm9sZCksCgkgIChnc3RfYmluX3F1ZXJ5KToKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgUmVtb3ZlIG9sZCBvcHRpb24uCgoyMDA1LTEwLTI2IDE4OjU3OjQzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBmaXhpbmcgZXhhbXBsZXMgZml4aW5nIGRvY3MgdHlwb3MgY2hhbmdpbmcgbG9nIHByaW9yaXR5IGluIGVycm9yIHNpdHVhdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6IChtYWluKToKCSAgKiBleGFtcGxlcy9xdWV1ZS9xdWV1ZS5jOiAoZXZlbnRfbG9vcCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZW5kX2V2ZW50KToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBmaXhpbmcgZXhhbXBsZXMKCSAgZml4aW5nIGRvY3MgdHlwb3MKCSAgY2hhbmdpbmcgbG9nIHByaW9yaXR5IGluIGVycm9yIHNpdHVhdGlvbnMKCjIwMDUtMTAtMjYgMTA6MTE6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogc2NyaXB0cy9jdnMtdXBkYXRlLnNoOgoJICBtYWtlIHN1cmUgZGlycyBnZXQgY2hlY2tlZCBvdXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1ha2Ugc3VyZSBkaXJzIGdldCBjaGVja2VkIG91dAoKMjAwNS0xMC0yNiAwOTo1Njo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9NQU5JRkVTVDoKCSAgZml4IGRpc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBkaXN0CgoyMDA1LTEwLTI1IDE3OjQxOjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBTb21lIGRvYyBhbmQgZGVidWcgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAobWVzc2FnZV9jaGVjayksIChiaW5fcmVwbGFjZV9tZXNzYWdlKSwKCSAgKGJpbl9yZW1vdmVfbWVzc2FnZXMpLCAoaXNfZW9zKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAodXBkYXRlX2RlZ3JlZSksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV4dCksIChiaW5fYnVzX2hhbmRsZXIpLAoJICAoYmluX3F1ZXJ5X2R1cmF0aW9uX2luaXQpLCAoYmluX3F1ZXJ5X2R1cmF0aW9uX2ZvbGQpLAoJICAoYmluX3F1ZXJ5X2R1cmF0aW9uX2RvbmUpLCAoYmluX3F1ZXJ5X2dlbmVyaWNfZm9sZCksCgkgIChnc3RfYmluX3F1ZXJ5KToKCSAgU29tZSBkb2MgYW5kIGRlYnVnIHVwZGF0ZXMuCgkgIENhY2hlIHByZXZpb3VzbHkgcmVxdWVzdGVkIHF1ZXJ5IERVUkFUSU9OIGZvciBzcGVlZC4gaW52YWxpZGF0ZQoJICBjYWNoZWQgZHVyYXRpb24gaWYgZWxlbWVudCBwb3N0cyBhIERVUkFUSU9OIG1lc3NhZ2UuCgoyMDA1LTEwLTI1IDE1OjM5OjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogVXBkYXRlIFRPRE8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFVwZGF0ZSBUT0RPLgoJICAqIGdzdC9nc3RiaW4uYzogKG1lc3NhZ2VfY2hlY2spLCAoYmluX3JlcGxhY2VfbWVzc2FnZSksCgkgIChiaW5fcmVtb3ZlX21lc3NhZ2VzKSwgKGlzX2VvcyksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKHVwZGF0ZV9kZWdyZWUpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25leHQpLCAoYmluX2J1c19oYW5kbGVyKSwKCSAgKGJpbl9xdWVyeV9kdXJhdGlvbl9pbml0KSwgKGJpbl9xdWVyeV9kdXJhdGlvbl9mb2xkKSwKCSAgKGJpbl9xdWVyeV9kdXJhdGlvbl9kb25lKSwgKGJpbl9xdWVyeV9nZW5lcmljX2ZvbGQpLAoJICAoZ3N0X2Jpbl9xdWVyeSk6CgkgIEhhbmRsZSBTRUdNRU5UX1NUQVJUL0RPTkUgbWVzc2FnZXMgY29ycmVjdGx5LgoJICBNb3JlIGV2b2x2ZWQgcXVlcnkgYWxnb3JpdGhtIHRoYXQgaGFuZGxlcyBkdXJhdGlvbiBxdWVyaWVzCgkgIGNvcnJlY3RseS4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2VuZF9ldmVudCksIChnc3RfZWxlbWVudF9xdWVyeSksCgkgIChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksIChnc3RfZWxlbWVudF9hYm9ydF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSk6CgkgIFNvbWUgbW9yZSBkZWJ1Z2dpbmcuCgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgQWRkZWQgZG9jLgoKMjAwNS0xMC0yNSAxMDoxNTo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IERvbid0IHVzZSBpbnZhbGlkIHN0cmVhbV90aW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBEb24ndCB1c2UgaW52YWxpZCBzdHJlYW1fdGltZS4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfbmV3c2VnbWVudCk6CgkgIHN0cmVhbV90aW1lIGluIG5ld3NlZ21lbnQgY2Fubm90IGJlIHVuZGVmaW5lZC4KCjIwMDUtMTAtMjUgMTA6MTI6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEZvcmdvdCB0aGUgY2hhbmdlbG9nIGxhc3QgdGltZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRm9yZ290IHRoZSBjaGFuZ2Vsb2cgbGFzdCB0aW1lCgoyMDA1LTEwLTI0IDE1OjQxOjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1cy5jOiBEb2MgZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgIERvYyBmaXguCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9xdWV1ZV9sb29wKToKCSAgRml4IHBvdGVudGlhbCBkZWFkbG9jayB3aGVuIFFVRVVFX0xPQ0sgaXMgdGFrZW4gYmVmb3JlIFNUUkVBTV9MT0NLLgoKMjAwNS0xMC0yNCAxMTo1NjowMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9saWJzL3RtcGwvOiB0aGVzZSBhcmUgb2Jzb2xldGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL3RtcGwvZ3N0ZHBhcmFtLnNnbWw6CgkgICogZG9jcy9saWJzL3RtcGwvZ3N0ZHBsaW5pbnQuc2dtbDoKCSAgKiBkb2NzL2xpYnMvdG1wbC9nc3RkcG1hbi5zZ21sOgoJICAqIGRvY3MvbGlicy90bXBsL2dzdGRwc21vb3RoLnNnbWw6CgkgICogZG9jcy9saWJzL3RtcGwvZ3N0dW5pdGNvbnZlcnQuc2dtbDoKCSAgdGhlc2UgYXJlIG9ic29sZXRlCgoyMDA1LTEwLTI0IDA5OjEzOjI3ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0cXVldWUuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgRml4IHNvbWUgbWlub3IgZG9jdW1lbnRhdGlvbiB0eXBvcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRml4IHNvbWUgbWlub3IgZG9jdW1lbnRhdGlvbiB0eXBvcwoKMjAwNS0xMC0yMyAyMzowNDozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBIRUFECgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIEhFQUQKCj09PSByZWxlYXNlIDAuOS40ID09PQoKMjAwNS0xMC0yMyAyMjozMDoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHRpbWUgdG8gcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGltZSB0byByZWxlYXNlCgoyMDA1LTEwLTIzIDEwOjQ5OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL01BTklGRVNUOgoJICBhZGQgbW9yZSBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1vcmUgZmlsZXMKCjIwMDUtMTAtMjMgMTA6Mjk6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogVXNlIGZzZWVrbygpIGFuZCBmdGVsbG8oKSBpZiBhdmFpbGFibGUuIFdoZW4gZmFsbGluZyBiYWNrIG9uIGxzZWVrKCkgdG8gZ2V0IHRoZSBjdXJyZW50IG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2RvX3NlZWspLAoJICAoZ3N0X2ZpbGVfc2lua19nZXRfY3VycmVudF9vZmZzZXQpOgoJICBVc2UgZnNlZWtvKCkgYW5kIGZ0ZWxsbygpIGlmIGF2YWlsYWJsZS4gV2hlbiBmYWxsaW5nIGJhY2sgb24KCSAgbHNlZWsoKSB0byBnZXQgdGhlIGN1cnJlbnQgb2Zmc2V0LCBmZmx1c2goKSBmaXJzdCB0byBtYWtlIHN1cmUKCSAgZXZlcnl0aGluZyBpcyB1cC10by1kYXRlIGFuZCB3ZSBnZXQgdGhlIHJpZ2h0IG9mZnNldC4KCjIwMDUtMTAtMjMgMDk6MDg6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0ZXJyb3IuaDoKCSogZ3N0L2dzdHF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcG8vUE9URklMRVMuaW46CgkgIHJlbW92ZSBwcmVtYXR1cmVseSBhZGRlZCBlcnJvciBjYXRlZ29yeSBhbmQgY2xlYW4gdXAgdGhlIGluc3RhbmNlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHByZW1hdHVyZWx5IGFkZGVkIGVycm9yIGNhdGVnb3J5IGFuZCBjbGVhbiB1cCB0aGUgaW5zdGFuY2VzCgoyMDA1LTEwLTIxIDE3OjUzOjMxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU2ltcGx5IHNldCB0aGUgcmlnaHQgZmxhZyB3aGVuIGdvaW5nIHRvIHBsYXlpbmcsIHRoYXQncyBhbGwgd2UgbmVlZCB0byBkbyBpbnN0ZWFkIG9mIGNhbGxpbmcgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgU2ltcGx5IHNldCB0aGUgcmlnaHQgZmxhZyB3aGVuIGdvaW5nIHRvIHBsYXlpbmcsIHRoYXQncyBhbGwKCSAgd2UgbmVlZCB0byBkbyBpbnN0ZWFkIG9mIGNhbGxpbmcgYSBmdW5jdGlvbiBpbnNpZGUgdGhlIG9iamVjdAoJICBsb2NrICh0aGF0IGNvdWxkIHRha2UgdGhlIGxvY2sgYXMgd2VsbCBhbmQgZGVhZGxvY2spCgoyMDA1LTEwLTIxIDE2OjE4OjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBEb24ndCB3YXJuLCB0aGUgcGVlciBlbGVtZW50IGtub3dzIHdoYXQgdG8gZG8gYmVzdCB3aGVuIHRoZSBzZWVrIGZhaWxlZCwgaXQgbWlnaHQgdHJ5IHNvbWV0aGluLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kb19zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKToKCSAgRG9uJ3Qgd2FybiwgdGhlIHBlZXIgZWxlbWVudCBrbm93cyB3aGF0IHRvIGRvIGJlc3Qgd2hlbgoJICB0aGUgc2VlayBmYWlsZWQsIGl0IG1pZ2h0IHRyeSBzb21ldGhpbmcgZWxzZS4KCjIwMDUtMTAtMjEgMTY6MTQ6MzQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEZpeCBzZWVraW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfZG9fc2VlayksIChnc3RfYmFzZV9zcmNfbG9vcCksIChnc3RfYmFzZV9zcmNfc3RhcnQpOgoJICBGaXggc2Vla2luZy4KCjIwMDUtMTAtMjEgMTU6MTM6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDogTW9yZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDoKCSAgTW9yZSBkb2NzLgoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9wcmVwYXJlX2J1Zik6CgkgIENvcnJlY3RseSBzZXQgY2FwcywgZXZlbiBvbiB0aGUgc3ViYnVmZXIuCgoyMDA1LTEwLTIxIDExOjM2OjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQW5kIDIlIG1vcmUgZG9jIGNvdmVyYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cGFyc2UuaDoKCSAgKiBnc3QvZ3N0dGFzay5jOiAoZ3N0X3Rhc2tfZmluYWxpemUpLCAoZ3N0X3Rhc2tfZnVuYyk6CgkgICogZ3N0L2dzdHRhc2suaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQW5kIDIlIG1vcmUgZG9jIGNvdmVyYWdlLgoKMjAwNS0xMC0yMSAwOToyNDoyOCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfcXVlcnkpOiBDbGVhbiB1cCBwZXJjZW50IHBvc2l0aW9uIHJlcG9ydGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfcXVlcnkpOiBDbGVhbiB1cCBwZXJjZW50CgkgIHBvc2l0aW9uIHJlcG9ydGluZy4KCjIwMDUtMTAtMjAgMjE6MDg6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBNb3JlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlcnJvci5jOiAoZ3N0X2Vycm9yX2dldF9tZXNzYWdlKToKCSAgKiBnc3QvZ3N0cGFyc2UuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgICogZ3N0L2dzdHRyYWNlLmM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIE1vcmUgZG9jcy4KCjIwMDUtMTAtMjAgMjA6NDY6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBBbm90aGVyIDElIG1vcmUgY292ZXJhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgICogZ3N0L2dzdHBhcnNlLmM6CgkgIEFub3RoZXIgMSUgbW9yZSBjb3ZlcmFnZS4KCjIwMDUtMTAtMjAgMjA6MjU6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBZYXkhIDElIG1vcmUgZG9jcyBjb3ZlcmFnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2VsZW1lbnRfYWJvcnRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X3NldF9wb3NpdGlvbiksCgkgIChnc3RfcXVlcnlfcGFyc2VfcG9zaXRpb24pLCAoZ3N0X3F1ZXJ5X3NldF9kdXJhdGlvbiksCgkgIChnc3RfcXVlcnlfcGFyc2VfZHVyYXRpb24pLCAoZ3N0X3F1ZXJ5X25ld19jb252ZXJ0KToKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgWWF5ISAxJSBtb3JlIGRvY3MgY292ZXJhZ2UuCgoyMDA1LTEwLTIwIDE5OjQ3OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogRG9jcyBhbmQgY29uc2lzdGVuY3kgZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9zZXRfcG9zaXRpb24pLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX3Bvc2l0aW9uKSwgKGdzdF9xdWVyeV9zZXRfZHVyYXRpb24pLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX2R1cmF0aW9uKSwgKGdzdF9xdWVyeV9uZXdfY29udmVydCk6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9xdWVyeV9jb252ZXJ0KToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgRG9jcyBhbmQgY29uc2lzdGVuY3kgZml4ZXMuCgoyMDA1LTEwLTIwIDE5OjMwOjU3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHRhc2suKjogTW9yZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFzay5jOgoJICAqIGdzdC9nc3R0YXNrLmg6CgkgIE1vcmUgZG9jcy4KCjIwMDUtMTAtMjAgMTc6MjI6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFJld29ya2VkIHRoZSBtZXNzYWdlIGhhbmRsaW5nIGEgYml0LCBjYWNoZSB0aGUgbWVzc2FnZXMgaW5zdGVhZCBvZiBvbmx5IHRoZSBzZW5kZXJzLiBhbG93cyB1cyB0byBkbyBtb3IuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAobWVzc2FnZV9jaGVjayksIChiaW5fcmVwbGFjZV9tZXNzYWdlKSwKCSAgKGJpbl9yZW1vdmVfbWVzc2FnZXMpLCAoaXNfZW9zKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAodXBkYXRlX2RlZ3JlZSksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV4dCksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwgKGdzdF9iaW5fZGlzcG9zZSksIChiaW5fYnVzX2hhbmRsZXIpOgoJICBSZXdvcmtlZCB0aGUgbWVzc2FnZSBoYW5kbGluZyBhIGJpdCwgY2FjaGUgdGhlIG1lc3NhZ2VzIGluc3RlYWQgb2YKCSAgb25seSB0aGUgc2VuZGVycy4gYWxvd3MgdXMgdG8gZG8gbW9yZSBpbiB0aGUgZnV0dXJlLgoKMjAwNS0xMC0yMCAxNzoxODoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IFVwZGF0ZSBUT0RPCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFVwZGF0ZSBUT0RPCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnkpOgoJICBEb24ndCB1c2UgY2xvY2sgdGltZSB0byByZXBvcnQgcG9zaXRpb24gd2hlbiBpbiBFT1MuCgoyMDA1LTEwLTIwIDEzOjEwOjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogRml4IGludGVyZmFjZSBvdXRwdXQgd2l0aCBnc3QtaW5zcGVjdCAtYTsgZG9uJ3QgcHJpbnQgbmV3bGluZXMgYWZ0ZXIgZG91YmxlL2Zsb2F0IHByb3BlcnRpZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9pbnRlcmZhY2VzKSwKCSAgKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKSwgKHByaW50X2VsZW1lbnRfaW5mbyk6CgkgIEZpeCBpbnRlcmZhY2Ugb3V0cHV0IHdpdGggZ3N0LWluc3BlY3QgLWE7IGRvbid0IHByaW50CgkgIG5ld2xpbmVzIGFmdGVyIGRvdWJsZS9mbG9hdCBwcm9wZXJ0aWVzLgoKMjAwNS0xMC0yMCAxMTo0ODo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFNwZWVkIHVwIGN1cnJlbnQgcG9zaXRpb24gY2FsY3VsYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KToKCSAgU3BlZWQgdXAgY3VycmVudCBwb3NpdGlvbiBjYWxjdWxhdGlvbi4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcXVlcnkpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmV3c2VnbWVudCk6CgkgIENvcnJlY3RseSBzZXQgc3RyZWFtIHBvc2l0aW9uIGluIG5ld3NlZ21lbnQuCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyksIChhZGRfdG9fcXVldWUpLAoJICAodXBkYXRlX2RlZ3JlZSksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV4dCksCgkgIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfcmVzeW5jKSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9mcmVlKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X2N1c3RvbSk6CgkgIENsZWFuIHVwIGRlYnVnZ2luZyBpbmZvCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbGlua19zcmMpLCAoZ3N0X3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9xdWV1ZV9sb29wKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KToKCSAgUGF1c2UgdGFzayBmYXN0ZXIuCgoyMDA1LTEwLTE5IDE3OjA2OjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRml4IHF1ZXJ5IGhhbmRsaW5nIGFnYWluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfcXVlcnkpLCAoZG9fcGxheWluZyk6CgkgIEZpeCBxdWVyeSBoYW5kbGluZyBhZ2Fpbi4KCjIwMDUtMTAtMTkgMTU6NTA6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBBUEkgY2hhbmdlIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KSwgKGRvX3BsYXlpbmcpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19xdWVyeSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX3F1ZXJ5KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2hhbmRsZV9zcmNfcXVlcnkpLCAoZmluZF9lbGVtZW50X2dldF9sZW5ndGgpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2FjdGl2YXRlKToKCSAgQVBJIGNoYW5nZSBmaXguCgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbmV3X3Bvc2l0aW9uKSwKCSAgKGdzdF9xdWVyeV9zZXRfcG9zaXRpb24pLCAoZ3N0X3F1ZXJ5X3BhcnNlX3Bvc2l0aW9uKSwKCSAgKGdzdF9xdWVyeV9uZXdfZHVyYXRpb24pLCAoZ3N0X3F1ZXJ5X3NldF9kdXJhdGlvbiksCgkgIChnc3RfcXVlcnlfcGFyc2VfZHVyYXRpb24pLCAoZ3N0X3F1ZXJ5X3NldF9zZWdtZW50KSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9zZWdtZW50KToKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgQnVuZGxpbmcgcXVlcnkgcG9zaXRpb24vZHVyYXRpb24gaXMgbm90IGEgZ29vZCBpZGVhIHNpbmNlIGR1cmF0aW9uCgkgIGRvZXMgbm90IGNoYW5nZSBtdWNoIGFuZCB3ZSBkb24ndCB3YW50IHRvIHJlY2FsY3VsYXRlIGl0IGZvciBldmVyeQoJICBwb3NpdGlvbiBxdWVyeSwgc28gdGhleSBhcmUgc2VwYXJhdGVkIGFnYWluLi4KCSAgQmFzZSB2YWx1ZSBpbiBzZWdtZW50IHF1ZXJ5IGlzIG5vdCBuZWVkZWQuCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSk6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9xdWVyeV9wb3NpdGlvbiksCgkgIChnc3RfZWxlbWVudF9xdWVyeV9kdXJhdGlvbiksIChnc3RfcGFkX3F1ZXJ5X3Bvc2l0aW9uKSwKCSAgKGdzdF9wYWRfcXVlcnlfZHVyYXRpb24pOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBVcGRhdGVzIGZvciBxdWVyeSBBUEkgY2hhbmdlLgoJICBBZGRlZCBzb21lIGRvY3MgaGVyZSBhbmQgdGhlcmUuCgoyMDA1LTEwLTE5IDExOjQzOjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrLzogd2FpdCBvbiB0aHJlYWQgdG8gZGllIHNvIHdlIGNhbiBjaGVjayByZWZjb3VudCBjb3JyZWN0bHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIHdhaXQgb24gdGhyZWFkIHRvIGRpZSBzbyB3ZSBjYW4gY2hlY2sgcmVmY291bnQgY29ycmVjdGx5CgoyMDA1LTEwLTE5IDExOjQzOjE4ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgdXBkYXRlIHRvb2xzIHBhY2thZ2UgbmFtaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgdG9vbHMgcGFja2FnZSBuYW1pbmcKCjIwMDUtMTAtMTkgMTE6NDI6MzkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBsb2cgYW4gaWYgYnJhbmNoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBsb2cgYW4gaWYgYnJhbmNoCgoyMDA1LTEwLTE4IDE3OjMwOjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svcGlwZWxpbmVzL3N0cmVzcy5jOiBNYWtlIGNoZWNrIGEgbGl0dGxlIG1vcmUgdGltZSBjb25zdW1pbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgTWFrZSBjaGVjayBhIGxpdHRsZSBtb3JlIHRpbWUgY29uc3VtaW5nLgoKMjAwNS0xMC0xOCAxNzowNjoyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrLzogU21hbGwgc3RhdGUgY2hhbmdlIHRvcnR1cmUgdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svcGlwZWxpbmVzL3N0cmVzcy5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoc2ltcGxlX2xhdW5jaF9saW5lc19zdWl0ZSksIChtYWluKToKCSAgU21hbGwgc3RhdGUgY2hhbmdlIHRvcnR1cmUgdGVzdC4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGRvX3BsYXlpbmcpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBOZXZlciB0YWtlIHN0YXRlIGxvY2sgZnJvbSBzdHJlYW1pbmcgdGhyZWFkLCBjbGVhbiB1cCB1Z2x5CgkgIGhhY2tzLiBVbmZvcnR1bmF0bHkgY29yZSBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBuaWNlIHdheXMgdG8KCSAgYXN5bmMgY29tbWl0IHN0YXRlLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9yZWNhbGNfc3RhdGUpLAoJICAoYmluX2J1c19oYW5kbGVyKToKCSAgU3RhcnQgc3RhdGUgcmVjYWxjIGlmIGEgU1RBVEVfRElSVFkgbWVzc2FnZSBpcyBwb3N0ZWQsIGJ1dCBvbmx5CgkgIG9uIHRoZSB0b3BsZXZlbCBiaW4uCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3N5bmNfc3RhdGVfd2l0aF9wYXJlbnQpLAoJICAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpLCAoZ3N0X2VsZW1lbnRfYWJvcnRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKSwgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2Z1bmMpLCAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBTdGF0ZSB2YXJpYWJsZXMgYXJlIG5vdyBwcm90ZWN0ZWQgd2l0aCB0aGUgTE9DSywgdGhlIHN0YXRlCgkgIGxvY2sgaXMgb25seSB1c2VkIHRvIHNlcmlhbGl6ZSBfc2V0X3N0YXRlKCkuCgoyMDA1LTEwLTE4IDE2OjI1OjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgU2VyaW91c2x5LCB0aGlzIGlzIGJldHRlciB0aGFuIGEgcHJldmlvdXMgY29tbWl0IGFzIHdlIG9ubHkgbmVlZCB0byBub3RpZnkgdGhlIGZhY3QgdGhhdCBhbiBlbGVtZW50IGNoYW5nZWQgc3RhdGUgaW4gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0bWVzc2FnZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAobWVzc2FnZV9yZWNlaXZlZCk6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5fcmVjYWxjX2Z1bmMpLAoJICAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfYWJvcnRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKSwgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCksCgkgIChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfZGlydHkpLCAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfZG9uZSksIChnc3RfbWVzc2FnZV9uZXdfZHVyYXRpb24pLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc3RhdGVfY2hhbmdlZCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zZWdtZW50X3N0YXJ0KSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3NlZ21lbnRfZG9uZSksIChnc3RfbWVzc2FnZV9wYXJzZV9kdXJhdGlvbik6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgU2VyaW91c2x5LCB0aGlzIGlzIGJldHRlciB0aGFuIGEgcHJldmlvdXMgY29tbWl0IGFzIHdlIG9ubHkgbmVlZAoJICB0byBub3RpZnkgdGhlIGZhY3QgdGhhdCBhbiBlbGVtZW50IGNoYW5nZWQgc3RhdGUgaW4gYSBzdHJlYW1pbmcKCSAgdGhyZWFkLCBtYXJraW5nIHRoZSBzdGF0ZSBvZiB0aGUgcGFyZW50cyBkaXJ0eSwgaGVuY2UgdGhlCgkgIFNUQVRFX0RJUlRZIG1lc3NhZ2UgaW5zdGVhZCBvZiBhYnVzaW5nIGEgYm9vbGVhbiBpbiBhIFNUQVRFX0NIQU5HRQoJICBtZXNzYWdlLgoKMjAwNS0xMC0xOCAxNToxNToxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IENsZWFudXBzLCBwcmVwYXJlIGZvciBzdGF0ZSBjaGFuZ2UgZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9iaW5fcmVjYWxjX2Z1bmMpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfY2xvY2spLAoJICAoZ3N0X2VsZW1lbnRfYWJvcnRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSk6CgkgIENsZWFudXBzLCBwcmVwYXJlIGZvciBzdGF0ZSBjaGFuZ2UgZml4ZXMuCgoyMDA1LTEwLTE4IDE0OjI5OjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogUGVuZGluZyBBQkkgY2hhbmdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19pbml0KSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSksIChnc3RfZWxlbWVudF9zZXRfc3RhdGVfZnVuYyk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgUGVuZGluZyBBQkkgY2hhbmdlcy4KCSAgR1RocmVhZFBvb2wgaW4gR3N0QmluQ2xhc3MgdG8gbW9uaXRvciBhc3luYyBzdGF0ZSBjaGFuZ2VzLgoJICBzdGF0ZV9jb29raWUgaW4gR3N0RWxlbWVudCB0byBkZXRlY3QgY29uY3VycmVudCBnc3Qvc2V0IHN0YXRlLgoJICBzZXRfc3RhdGUgaXMgbm93IHZpcnR1YWwgdG9vIGluIGNhc2UgYSB2ZXJ5IGNvbXBsaWNhdGVkIGVsZW1lbnQKCSAgaGFzIHRvIGJlIGNvbnN0cnVjdGVkLgoKMjAwNS0xMC0xOCAxMzoxOToxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIE1ha2UgbWVzc2FnZXMgZnV0dXJlIHByb29mLiBzdGF0ZS1jaGFuZ2UgZ2V0cyBhIGZsYWcgaWYgaXQgd2FzIGEgbWVzc2FnZSBjb21taW5nIGZyb20gdGhlIHN0cmVhbWluZyB0aHJlYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0bWVzc2FnZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAobWVzc2FnZV9yZWNlaXZlZCk6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCksCgkgIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9zdGFydCksIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9kb25lKSwKCSAgKGdzdF9tZXNzYWdlX25ld19kdXJhdGlvbiksIChnc3RfbWVzc2FnZV9wYXJzZV9zdGF0ZV9jaGFuZ2VkKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc2VnbWVudF9kb25lKSwgKGdzdF9tZXNzYWdlX3BhcnNlX2R1cmF0aW9uKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBNYWtlIG1lc3NhZ2VzIGZ1dHVyZSBwcm9vZi4KCSAgc3RhdGUtY2hhbmdlIGdldHMgYSBmbGFnIGlmIGl0IHdhcyBhIG1lc3NhZ2UgY29tbWluZyBmcm9tIHRoZQoJICBzdHJlYW1pbmcgdGhyZWFkLgoJICBzZWdtZW50LXN0YXJ0L3N0b3AgY2FuIGFsc28gYmUgc3BlY2lmaWVkIGluIG90aGVyIGZvcm1hdHMuCgkgIEEgbWVzc2FnZSB0byBub3RpZnkgYW4gYXBwIHRoYXQgYSBwaXBlbGluZSBjaGFuZ2VkIHBsYXliYWNrCgkgIGR1cmF0aW9uLgoJICBBbHNvIGZpeCBhIEdzdE1lc3NhZ2UgbGVhayBpbiAtbGF1bmNoCgoyMDA1LTEwLTE4IDEwOjMyOjQ4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9kaXNwb3NlKTogTW9yZSBoZWxwZnVsIG1lc3NhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTE4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X2Rpc3Bvc2UpOiBNb3JlIGhlbHBmdWwgbWVzc2FnZS4KCjIwMDUtMTAtMTggMDg6MjA6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkgIHJlbW92ZSBpbmZvIG1lc3NhZ2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgaW5mbyBtZXNzYWdlcwoKMjAwNS0xMC0xOCAwNzoxMzoyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnkuYzogdW5yZWYgYSBwbHVnLWluIHdlIGdldCB0aGF0IHdhcyBhbHJlYWR5IGluaXRpYWxpemVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgIHVucmVmIGEgcGx1Zy1pbiB3ZSBnZXQgdGhhdCB3YXMgYWxyZWFkeSBpbml0aWFsaXplZAoKMjAwNS0xMC0xNyAyMDoxNjo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgYWRkIG5ldyBhcGkgZW50cmllcyBoaWRlIGludGVybmFsIG1hY3JvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBhZGQgbmV3IGFwaSBlbnRyaWVzCgkgIGhpZGUgaW50ZXJuYWwgbWFjcm8KCjIwMDUtMTAtMTcgMTg6MDk6MzIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmMgKGdzdF9jb2xsZWN0cGFkc19jaGFpbik6IFNsaWdodCBjbGVhbnVwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jIChnc3RfY29sbGVjdHBhZHNfY2hhaW4pOiBTbGlnaHQKCSAgY2xlYW51cC4KCSAgKiBnc3QvTWFrZWZpbGUuYW0gKGdzdGVudW10eXBlcy5jKTogVGhyZWFkc2FmZSBub3cuCgkgICogZ3N0L2dzdGV2ZW50LmMgKGdzdF9ldmVudF9uZXcsIGdzdF9ldmVudF9maW5hbGl6ZSk6IExPRy4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyk6IHMvSU5GTy9ERUJVRy8uCgkgIChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyk6IEJldHRlciBkZWJ1ZyBtZXNzYWdlLgoJICAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKTogcy9JTkZPL0RFQlVHLy4KCSAgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUsIGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYyAoZ3N0X21lc3NhZ2VfaW5pdCk6IHMvSU5GTy9MT0cvLgoJICAoZ3N0X21lc3NhZ2VfbmV3X2N1c3RvbSk6IHMvSU5GTy9MT0cvLgoKMjAwNS0xMC0xNyAxNzo0NjozNyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIENoZWNrIHZhbGlkaXR5IG9mIGVuZCB0aW1lIGJhc2VkIG9uIGVuZCB0aW1lIHZhcmlhYmxlLCBub3Qgc3RhcnQgdGltZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENoZWNrIHZhbGlkaXR5IG9mIGVuZCB0aW1lIGJhc2VkIG9uIGVuZCB0aW1lIHZhcmlhYmxlLCBub3Qgc3RhcnQgdGltZS4KCjIwMDUtMTAtMTcgMTc6MDU6MzggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG1lcmdlIGNvbnRyb2xsZXIgdGVzdHN1aXRlcyBmaXggYnJva2VuIHRlc3RzIHJlbW92ZSBtZW0tY2h1bmsgZnJvbSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X3NldF9pbnRlcnBvbGF0aW9uX21vZGUpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAqIHRlc3RzdWl0ZS9jb250cm9sbGVyLy5jdnNpZ25vcmU6CgkgICogdGVzdHN1aXRlL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgICogdGVzdHN1aXRlL2NvbnRyb2xsZXIvaW50ZXJwb2xhdG9yLmM6CgkgIG1lcmdlIGNvbnRyb2xsZXIgdGVzdHN1aXRlcwoJICBmaXggYnJva2VuIHRlc3RzCgkgIHJlbW92ZSBtZW0tY2h1bmsgZnJvbSBkb2NzCgoyMDA1LTEwLTE3IDE0OjQyOjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IG91dC4gIGdldCBvdXQuICB5b3UncmUgZmlyZWQuICB0byB0aGUgQXR0aWMgIQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVtY2h1bmsuYzoKCSAgKiBnc3QvZ3N0bWVtY2h1bmsuaDoKCSAgKiBnc3QvZ3N0dHJhc2hzdGFjay5jOgoJICAqIGdzdC9nc3R0cmFzaHN0YWNrLmg6CgkgIG91dC4gIGdldCBvdXQuICB5b3UncmUgZmlyZWQuICB0byB0aGUgQXR0aWMgIQoKMjAwNS0xMC0xNyAxNDozNzowNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBmaXggc2lnbmVkbmVzcyBpc3N1ZXMgaW4gYSAoaG9wZWZ1bGx5KSBjb3JyZWN0IHdheQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfaW50ZXJzZWN0KToKCSAgZml4IHNpZ25lZG5lc3MgaXNzdWVzIGluIGEgKGhvcGVmdWxseSkgY29ycmVjdCB3YXkKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6CgkgIHNvbWUgZGVidWdnaW5nCgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9zZXRfcGFyZW50KToKCSAgc29tZSBkZWJ1Z2dpbmcKCjIwMDUtMTAtMTcgMTA6Mzc6MTMgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgRml4IGEgZG9jIHR5cG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaXggYSBkb2MgdHlwby4KCjIwMDUtMTAtMTcgMDk6Mjg6MzUgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLmg6IEZpeCBwcm90b3R5cGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xNyAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9nc3R2YWx1ZS5oOiBGaXggcHJvdG90eXBlcy4KCjIwMDUtMTAtMTYgMTQ6MzI6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdHZlcnNpb24uaC5pbjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGFkZCBnc3RfdmVyc2lvbl9zdHJpbmcgKCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBnc3RfdmVyc2lvbl9zdHJpbmcgKCkKCjIwMDUtMTAtMTYgMTM6NTU6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIGNvbW1lbnQ7IHVwZGF0ZSB3aW4zMiBjb25maWcuaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29tbWVudDsgdXBkYXRlIHdpbjMyIGNvbmZpZy5oCgoyMDA1LTEwLTE2IDEyOjM3OjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHNjcmlwdHMvY3ZzLXVwZGF0ZS5zaDoKCSAgRGVhciBBbmR5OiBoZXJlJ3MgYSBzY3JpcHQgdG8gdXBkYXRlIHN0dWZmIGZyb20gQ1ZTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBEZWFyIEFuZHk6CgkgIGhlcmUncyBhIHNjcmlwdCB0byB1cGRhdGUgc3R1ZmYgZnJvbSBDVlMKCSAgTG92ZSwKCSAgVGhvbWFzCgoyMDA1LTEwLTE2IDEyOjI4OjIwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogY2xlYW4gdXAgZnVydGhlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIGNsZWFuIHVwIGZ1cnRoZXIKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgaXQncyBQTFVHSU5ESVIgbm93CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2ludGVyc2VjdCk6CgkgIHVzZSBnaW50NjQsIHRoZSByYW5nZSBjb3VsZCBiZSBiaWdnZXIgdGhhbiBhIGd1aW50CgoyMDA1LTEwLTE2IDExOjQ4OjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgR1N0cmVhbWVyIGNvbnN1bHRhbnRzIHdpbGwgbWFrZSBhIGxvdCBvZiBtb25leSBpbiAyMDM4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBHU3RyZWFtZXIgY29uc3VsdGFudHMgd2lsbCBtYWtlIGEgbG90IG9mIG1vbmV5IGluIDIwMzgKCjIwMDUtMTAtMTYgMTA6NTg6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGNhcHMuYzogRml4IGd1aW50IGogZGl2aW5nIHVuZGVyIDAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2ludGVyc2VjdCk6CgkgIEZpeCBndWludCBqIGRpdmluZyB1bmRlciAwCgoyMDA1LTEwLTE2IDEwOjM4OjAyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrIGZvciBwcm9jZXNzLmgsIGRlY2xhcmVzIGdldHBpZCgpIG9uIFdpbmRvd3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIGNoZWNrIGZvciBwcm9jZXNzLmgsIGRlY2xhcmVzIGdldHBpZCgpIG9uIFdpbmRvd3MKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICBpbmNsdWRlIHByb2Nlc3MuaCBpZiB3ZSBoYXZlIGl0CgkgICogZ3N0L2dzdG1lbWNodW5rLmM6IChwb3B1bGF0ZSksIChnc3RfbWVtX2NodW5rX25ldyk6CgkgICogZ3N0L2dzdG1lbWNodW5rLmg6CgkgIGZpeCBzaWduZWRuZXNzIGlzc3VlcwoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBmaXggZ2V0X3R5cGUncwoKMjAwNS0xMC0xNiAxMDoyMjoyOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBmaXggc2lnbmVkbmVzcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHNpZ25lZG5lc3MKCjIwMDUtMTAtMTYgMTA6MTg6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIGZpeCBHU1RfVkVSU0lPTgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IEdTVF9WRVJTSU9OCgoyMDA1LTEwLTE2IDEwOjE1OjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBmaXggaW5saW5lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggaW5saW5lCgoyMDA1LTEwLTE2IDEwOjEyOjM0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBkZWZpbmUgUEFDS0FHRQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGVmaW5lIFBBQ0tBR0UKCjIwMDUtMTAtMTYgMTA6MTA6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIHVwZGF0ZSBhdmFpbGFibGUgaGVhZGVycwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGF2YWlsYWJsZSBoZWFkZXJzCgoyMDA1LTEwLTE2IDA5OjU2OjMzICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RjYXBzLmM6IEZpeCBhIGJhZCBidWcgd2l0aCBhIHNpbXBsZSBmaXguIEJlY2F1c2Ugb2YgdW5zaWduZWQgaW50cywgY2FwcyBpbnRlcnNlY3Rpb24gd2FzIGdvaW5nIG51dHMgYW5kIHRyeWluZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xNiAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19pbnRlcnNlY3QpOiBGaXggYSBiYWQgYnVnIHdpdGggYQoJICBzaW1wbGUKCSAgZml4LiBCZWNhdXNlIG9mIHVuc2lnbmVkIGludHMsIGNhcHMgaW50ZXJzZWN0aW9uIHdhcyBnb2luZyBudXRzCgkgIGFuZAoJICB0cnlpbmcgdG8gYWNjZXNzIHN0cnVjdHVyZXMgd2l0aCBHX01BWFVJTlQgaW5kZXguIFRoYXQgZml4ZXMKCSAgdmlkZW90ZXN0c3JjICEgZmZtcGVnY29sb3JzcGFjZSAhIGZha2VzaW5rCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9saW5rX2NoZWNrX2NvbXBhdGlibGVfdW5sb2NrZWQpOiBsb2dzCgkgIGNvbnNpc3RlbmN5LgoKMjAwNS0xMC0xNiAwOTo1NToyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlCgoyMDA1LTEwLTE2IDA5OjU0OjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgdHlwbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdHlwbwoKMjAwNS0xMC0xNiAwOTo1MToyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgdXBkYXRlcyBmb3IgMmluMzIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZXMgZm9yIDJpbjMyCgoyMDA1LTEwLTE2IDA5OjQ0OjA0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzoKCSogY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIG1vcmUgZGVmaW5lIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIGRlZmluZSBmaXhlcwoKMjAwNS0xMC0xNiAwOToyMDo1MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IHVzZSB0aGUgZ2V0dGV4dCBtYWNybwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xNiAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSAgPHRob21hcyBhdCBhcGVzdGFhcnQgZG90IG9yZz4KCSAgKiBjb25maWd1cmUuYWM6CgkgIHVzZSB0aGUgZ2V0dGV4dCBtYWNybwoJICAqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvaW5kZXhlcnMvZ3N0aW5kZXhlcnMuYzoKCSAgdXBkYXRlIGZvciBHU1RfUEFDS0FHRV9OQU1FLCBHU1RfUEFDS0FHRV9PUklHSU4KCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZWQgY29uZmlnLmgKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIGFkZCB0aGUgdGVtcGxhdGUgdG8gZ2VuZXJhdGUgY29uZmlnLmgKCSAgKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkgICogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgdXBkYXRlZCBjb3BpZXMKCjIwMDUtMTAtMTYgMDk6MTE6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLnBjLmluOgoJICByZW1vdmUgbW9yZSBQS0dfQ0ZMQUdTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgbW9yZSBQS0dfQ0ZMQUdTCgoyMDA1LTEwLTE2IDA5OjEwOjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IGFkZCB0aGUgbmFubwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChnc3RfdmVyc2lvbik6CgkgICogZ3N0L2dzdHZlcnNpb24uaC5pbjoKCSAgYWRkIHRoZSBuYW5vCgoyMDA1LTEwLTE2IDA4OjU5OjM0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkgIHJlbW92ZSBHU1RfUEtHX0NGTEFHUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIEdTVF9QS0dfQ0ZMQUdTCgoyMDA1LTEwLTE1IDIyOjI0OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGV2ZW50Lmg6IE9vcHMsIGFkZCBtaXNzaW5nIGNsb3NpbmcgYnJhY2tldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIE9vcHMsIGFkZCBtaXNzaW5nIGNsb3NpbmcgYnJhY2tldC4KCjIwMDUtMTAtMTUgMjE6NDE6MjAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiB1c2UgY29tbW9uIG00J3MgZm9yIGFyZ3VtZW50IGNoZWNraW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgdXNlIGNvbW1vbiBtNCdzIGZvciBhcmd1bWVudCBjaGVja2luZwoKMjAwNS0xMC0xNSAyMDozMzowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBHU1RfRVZFTlRfVFlQRV9OQU1FKCkgbWFjcm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIEFkZCBHU1RfRVZFTlRfVFlQRV9OQU1FKCkgbWFjcm8uCgoyMDA1LTEwLTE1IDIwOjAwOjMwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1cGRhdGUgZGVmcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGRlZnMKCjIwMDUtMTAtMTUgMTk6NTc6MDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogcHJpdmF0aXplIG1vcmUgc3ltYm9scwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgICogZ3N0L2dzdHRhc2suYzoKCSAgcHJpdmF0aXplIG1vcmUgc3ltYm9scwoKMjAwNS0xMC0xNSAxODoyMjozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IGFkZCBzcmNkaXIsIGJ1aWxkZGlyIGluY2x1ZGVzIHRvIEdTVF9BTExfQ0ZMQUdTLCBzaW5jZSBldmVyeXRoaW5nIHRoYXQgdXNlcyBHU3RyZWFtZXIgQVBJIHNob3VsZCBoYXZlIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBhZGQgc3JjZGlyLCBidWlsZGRpciBpbmNsdWRlcyB0byBHU1RfQUxMX0NGTEFHUywgc2luY2UKCSAgZXZlcnl0aGluZyB0aGF0IHVzZXMgR1N0cmVhbWVyIEFQSSBzaG91bGQgaGF2ZSB0aGUgaW5jbHVkZXMKCjIwMDUtMTAtMTUgMTc6NTk6MDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ2l2ZSBlYWNoIHZhbHVlIGEgX2dldF90eXBlLCByZW1vdmVzIHRoZSBEQVRBIGV4cG9ydHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF9kYXRlX2dldF90eXBlKSwgKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIGdpdmUgZWFjaCB2YWx1ZSBhIF9nZXRfdHlwZSwgcmVtb3ZlcyB0aGUgREFUQSBleHBvcnRzCgoyMDA1LTEwLTE1IDE3OjIyOjM0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJICBmaXggbGluayBmbGFncwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGxpbmsgZmxhZ3MKCjIwMDUtMTAtMTUgMTY6Mzk6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHVwZGF0ZSBkZWZzIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBkZWZzIGZpbGUKCjIwMDUtMTAtMTUgMTY6Mzc6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHVwZGF0ZSBkZWZzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgZGVmcwoKMjAwNS0xMC0xNSAxNjozMzowOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0Lio6IHJlbW92ZSBfZ3N0X3JlZ2lzdHJ5X2F1dG9fbG9hZCwgbm90IHVzZWQgYW55bW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdC5oOgoJICByZW1vdmUgX2dzdF9yZWdpc3RyeV9hdXRvX2xvYWQsIG5vdCB1c2VkIGFueW1vcmUKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIG1ha2UgX2dldF90eXBlIGZ1bmN0aW9ucyBzaW1pbGFyLCBmaXhlcyBkYXRhIGV4cG9ydCBmcm9tIGxpYnJhcnkKCjIwMDUtMTAtMTUgMTY6MTY6MDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBJJ20gdG9vIGxhenkgdG8gY29tbWVudCB0aGlzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBndGstZG9jIGluc2lzdHMgb24gaW5zZXJ0aW5nIDxQQVJBPiBhdCBldmVyeSBlbXB0eSBsaW5lLCBzaWdoCgoyMDA1LTEwLTE1IDE2OjAxOjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGZpbHRlci5jOgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW50ZXJmYWNlLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0bWVtY2h1bmsuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWV1ZS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpdHlwZS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHhtbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHZhcmlvdXMgc3R5bGUgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHZhcmlvdXMgc3R5bGUgZml4ZXMKCjIwMDUtMTAtMTUgMTU6NTM6NTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiBjaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogZXhhbXBsZXMvYXBwcmVhZGVyL2FwcHJlYWRlci5jOgoJKiBleGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogZXhhbXBsZXMvY3V0dGVyL2N1dHRlci5jOgoJKiBleGFtcGxlcy9jdXR0ZXIvY3V0dGVyLmg6CgkqIGV4YW1wbGVzL21peGVyL21peGVyLmM6CgkqIGV4YW1wbGVzL21peGVyL21peGVyLmg6CgkqIGV4YW1wbGVzL3JldGFnL3JldGFnLmM6CgkqIGV4YW1wbGVzL3JldGFnL3RyYW5zY29kZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9hcHByZWFkZXIvYXBwcmVhZGVyLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2N1dHRlci9jdXR0ZXIuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2N1dHRlci9jdXR0ZXIuaDoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL21peGVyL21peGVyLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9taXhlci9taXhlci5oOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcmV0YWcvcmV0YWcuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3JldGFnL3RyYW5zY29kZS5jOgoJKiB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkqIHdpbjMyL2RpcmVudC5jOgoJKiB3aW4zMi9nc3Rjb25maWcuaDoKCSogd2luMzIvZ3N0dmVyc2lvbi5oOgoJKiB3aW4zMi9ndGNoYXIuaDoKCSogd2luMzIvbW1hbi5oOgoJKiB3aW4zMi92czcvbW1hbi5oOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA1LTEwLTE1IDE1OjUzOjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvYnl0ZXN0cmVhbS8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2J5dGVzdHJlYW0vTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvYnl0ZXN0cmVhbS9maWxlcGFkc2luay5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2J5dGVzdHJlYW0vZ3N0YnN0ZXN0LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvYnl0ZXN0cmVhbS90ZXN0MS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2J5dGVzdHJlYW0vdGVzdGZpbGUxOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvbm9ybWFsaXNhdGlvbi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvcmFuZG9tLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2xlYW51cC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NsZWFudXAvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2xlYW51cC9jbGVhbnVwMS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NsZWFudXAvY2xlYW51cDIuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jbGVhbnVwL2NsZWFudXAzLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2xlYW51cC9jbGVhbnVwNC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NsZWFudXAvY2xlYW51cDUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jb250cm9sbGVyL2ludGVycG9sYXRvci5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2RlYnVnL3ByaW50Zl9leHRlbnNpb24uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9uZWdvdGlhdGlvbi8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL25lZ290aWF0aW9uL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL25lZ290aWF0aW9uL3BhZF9saW5rLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGFkL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BhZC9jaGFpbm5vcHVsbC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BhZC9nZXRub3B1c2guYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wYWQvbGluay5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZmNvdW50aW5nL3NjaGVkLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVnaXN0cnkvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVnaXN0cnkvZ3N0LXByaW50LWZvcm1hdHMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDIxODMtMi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQyMTgzLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDM3NzctMi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQzNzc3LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDc3MTMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0NzgxOS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQ3ODk0LTIuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0Nzg5NC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy9ncm91cF9saW5rLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy9xdWV1ZV9saW5rLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy9yZWxpbmsuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzL3VubGluay5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvdW5yZWYuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzL3VzZWxlc3NfaXRlcmF0aW9uLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc3RhdGVzL2Jpbi5jOgoJKiB0ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9ieXRlc3RyZWFtLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9ieXRlc3RyZWFtL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvYnl0ZXN0cmVhbS9maWxlcGFkc2luay5jOgoJKiB0ZXN0c3VpdGUvYnl0ZXN0cmVhbS9nc3Ric3Rlc3QuYzoKCSogdGVzdHN1aXRlL2J5dGVzdHJlYW0vdGVzdDEuYzoKCSogdGVzdHN1aXRlL2J5dGVzdHJlYW0vdGVzdGZpbGUxOgoJKiB0ZXN0c3VpdGUvY2Fwcy9ub3JtYWxpc2F0aW9uLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL3JhbmRvbS5jOgoJKiB0ZXN0c3VpdGUvY2xlYW51cC8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvY2xlYW51cC9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2NsZWFudXAvY2xlYW51cDEuYzoKCSogdGVzdHN1aXRlL2NsZWFudXAvY2xlYW51cDIuYzoKCSogdGVzdHN1aXRlL2NsZWFudXAvY2xlYW51cDMuYzoKCSogdGVzdHN1aXRlL2NsZWFudXAvY2xlYW51cDQuYzoKCSogdGVzdHN1aXRlL2NsZWFudXAvY2xlYW51cDUuYzoKCSogdGVzdHN1aXRlL2NvbnRyb2xsZXIvaW50ZXJwb2xhdG9yLmM6CgkqIHRlc3RzdWl0ZS9kZWJ1Zy9wcmludGZfZXh0ZW5zaW9uLmM6CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHN1aXRlL25lZ290aWF0aW9uLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9uZWdvdGlhdGlvbi9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL25lZ290aWF0aW9uL3BhZF9saW5rLmM6CgkqIHRlc3RzdWl0ZS9wYWQvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9wYWQvY2hhaW5ub3B1bGwuYzoKCSogdGVzdHN1aXRlL3BhZC9nZXRub3B1c2guYzoKCSogdGVzdHN1aXRlL3BhZC9saW5rLmM6CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9zY2hlZC5jOgoJKiB0ZXN0c3VpdGUvcmVnaXN0cnkvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9yZWdpc3RyeS9nc3QtcHJpbnQtZm9ybWF0cy5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDIxODMtMi5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDIxODMuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQzNzc3LTIuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQzNzc3LmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0NzcxMy5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDc4MTkuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQ3ODk0LTIuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQ3ODk0LmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy9ncm91cF9saW5rLmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzL3F1ZXVlX2xpbmsuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvcmVsaW5rLmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzL3VubGluay5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy91bnJlZi5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy91c2VsZXNzX2l0ZXJhdGlvbi5jOgoJKiB0ZXN0c3VpdGUvc3RhdGVzL2Jpbi5jOgoJICByZW1vdmUgb2Jzb2xldGUgdGVzdHMgd2hpdGVzcGFjZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIG9ic29sZXRlIHRlc3RzCgkgIHdoaXRlc3BhY2UgZml4ZXMKCjIwMDUtMTAtMTUgMTU6NTI6MDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiBjb3JyZWN0bHkgbWFrZSBjb25kaXRpb25hbHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBjb3JyZWN0bHkgbWFrZSBjb25kaXRpb25hbHMKCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgIGZpeCB0eXBvIGNhdXNpbmcgZmRzcmMgbm90IHRvIGJ1aWxkCgoyMDA1LTEwLTE1IDE1OjMwOjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGdzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGJ1ZmZlcnN0b3JlLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHRlZS5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSogZ3N0L2dsaWItY29tcGF0LmM6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSogZ3N0L2dzdGZvcm1hdC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RpbmRleC5oOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdGludGVyZmFjZS5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdG1hY3Jvcy5oOgoJKiBnc3QvZ3N0bWVtY2h1bmsuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cXVldWUuYzoKCSogZ3N0L2dzdHF1ZXVlLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0cmFjZS5jOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuaDoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogZ3N0L2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJKiBnc3QvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSogZ3N0L3BhcnNlL3R5cGVzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RidWZmZXJzdG9yZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RtZW1pbmRleC5jOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA1LTEwLTE1IDE1OjAxOjM5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogY2hlY2sgZm9yIHNvbWUgaGVhZGVycwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIGNoZWNrIGZvciBzb21lIGhlYWRlcnMKCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgIGRvbid0IGNvbXBpbGUgZmRzcmMgd2l0aG91dCBzeXMvc29ja2V0LmgKCSAgKiBnc3QvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkgICogZ3N0L2luZGV4ZXJzL2dzdGluZGV4ZXJzLmM6IChwbHVnaW5faW5pdCk6CgkgIGRvbid0IGNvbXBpbGUgZmlsZWluZGV4IHdpdGhvdXQgbW1hcAoKMjAwNS0xMC0xNSAxMzo1ODoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IHJlb3JnYW5pemUgY2xlYW4gdXAgZG9jdW1lbnQgbW9yZSByZW1vdmUgY3J1ZnQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICByZW9yZ2FuaXplCgkgIGNsZWFuIHVwCgkgIGRvY3VtZW50IG1vcmUKCSAgcmVtb3ZlIGNydWZ0CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZXhhbXBsZXMvaGVsbG93b3JsZC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJICAqIGV4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOiAoZXZlbnRfbG9vcCk6CgkgIGNvbXBpbGUgZml4ZXMsIHRob3VnaCBpdCdzIG5vdCBiZWluZyBjb21waWxlZCBjdXJyZW50bHkKCjIwMDUtMTAtMTUgMTM6MjQ6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2xsZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLnBjLmluOgoJICBjbGVhbiB1cCBwYyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2xlYW4gdXAgcGMgZmlsZXMKCjIwMDUtMTAtMTUgMTI6MDM6MzIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogbGlicy9nc3QvZ2V0Yml0cy8uZ2l0aWdub3JlOgoJICByZW1vdmUgZGlyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgZGlyCgoyMDA1LTEwLTE1IDEwOjM0OjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZ3N0L3NjaGVkdWxlcnMvLmdpdGlnbm9yZToKCSAgcmVtb3ZlIGRpcmVjdG9yeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGRpcmVjdG9yeQoKMjAwNS0xMC0xNSAwMDoyMjowMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHVyaS5jOgoJICBzaWduZWRuZXNzL3R5cGUgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNpZ25lZG5lc3MvdHlwZSBmaXhlcwoKMjAwNS0xMC0xNSAwMDoyMDo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgc2lnbmVkbmVzcy90eXBlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzaWduZWRuZXNzL3R5cGUgZml4ZXMKCjIwMDUtMTAtMTUgMDA6MTU6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHNpZ25lZG5lc3MgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNpZ25lZG5lc3MgZml4ZXMKCjIwMDUtMTAtMTUgMDA6MTI6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgc2lnbmVkbmVzcyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc2lnbmVkbmVzcyBmaXhlcwoKMjAwNS0xMC0xNCAxNzowMTo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNoZWNrL2dzdC9nc3R0YWcuYzogQWRkIHNvbWUgc2ltcGxlIHRlc3RzIGZvciB0aGUgbmV3IHRhZ2xpc3QgZGF0ZSBBUEkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3R0YWcuYzogKHRlc3RfZGF0ZV90YWdzKSwgKGdzdF90YWdfc3VpdGUpOgoJICBBZGQgc29tZSBzaW1wbGUgdGVzdHMgZm9yIHRoZSBuZXcgdGFnbGlzdCBkYXRlIEFQSS4KCjIwMDUtMTAtMTQgMTQ6MTA6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZWxlbWVudHMvOiBCZWF1dGlmeSAnbGFzdC1tZXNzYWdlJyBvdXRwdXQ6IHByaW50ICdub25lJyBmb3IgYnVmZmVyIHRpbWVzdGFtcHMgYW5kIGR1cmF0aW9ucyBpZiBub25lIGlzIHNldDsgaW1wcm8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX3JlbmRlcik6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19jcmVhdGUpOgoJICBCZWF1dGlmeSAnbGFzdC1tZXNzYWdlJyBvdXRwdXQ6IHByaW50ICdub25lJyBmb3IgYnVmZmVyIHRpbWVzdGFtcHMKCSAgYW5kIGR1cmF0aW9ucyBpZiBub25lIGlzIHNldDsgaW1wcm92ZSBhbGlnbm1lbnQgd2l0aCBuZXh0IG1lc3NhZ2VzLgoKMjAwNS0xMC0xNCAxMTowOToyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBuZXcgQVBJIHRvIGNoZWNrIHBsdWdpbiBmZWF0dXJlIHZlcnNpb24gcmVxdWlyZW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiAoZ3N0X3BsdWdpbl9mZWF0dXJlX2NoZWNrX3ZlcnNpb24pOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfZGVmYXVsdF9yZWdpc3RyeV9jaGVja19mZWF0dXJlX3ZlcnNpb24pOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBuZXcgQVBJIHRvIGNoZWNrIHBsdWdpbiBmZWF0dXJlIHZlcnNpb24gcmVxdWlyZW1lbnRzLgoJICAqIGNoZWNrL2dzdC9nc3RwbHVnaW4uYzogKHRlc3RfdmVyc2lvbl9jaGVja3MpLCAoZ3N0X3BsdWdpbl9zdWl0ZSk6CgkgIFNvbWUgYmFzaWMgdGVzdHMgZm9yIHRoZSBhYm92ZS4KCjIwMDUtMTAtMTMgMjE6Mjc6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBndWFyZCBhZ2FpbnN0IE5VTEwgcHJpbnRmIC0gaGFwcGVucyB3aGVuIGZvciBleGFtcGxlIGEgbWVzc2FnZSBzdHJ1Y3R1cmUgd2l0aCBHc3RDbG9jayBnZXRzIHNlcmlhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEzICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlICA8dGhvbWFzIGF0IGFwZXN0YWFydCBkb3Qgb3JnPgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfdG9fc3RyaW5nKToKCSAgZ3VhcmQgYWdhaW5zdCBOVUxMIHByaW50ZiAtIGhhcHBlbnMgd2hlbiBmb3IgZXhhbXBsZQoJICBhIG1lc3NhZ2Ugc3RydWN0dXJlIHdpdGggR3N0Q2xvY2sgZ2V0cyBzZXJpYWxpemVkCgoyMDA1LTEwLTEzIDE4OjMzOjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogRml4IHByZXN1bWFibGUgY29weSduJ3Bhc3RvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RwYWRzX2V2ZW50KToKCSAgRml4IHByZXN1bWFibGUgY29weSduJ3Bhc3RvLgoKMjAwNS0xMC0xMyAxNzo1MTo1MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgYWRkIGNvcnJlY3QgaGVhZGVyIGZvciBXSU4zMgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGNvcnJlY3QgaGVhZGVyIGZvciBXSU4zMgoKMjAwNS0xMC0xMyAxNzo0MzozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZWxlbWVudHMvOiBmaXggc29tZSBzaWduZWRuZXNzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jcmVhdGVfcmVhZCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBmaXggc29tZSBzaWduZWRuZXNzCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX3JlbmRlcik6CgkgIEkgd29uZGVyIGlmIHRoaXMgY291bGQgYWN0dWFsbHkgd3JpdGUgKzJHQiBmaWxlcyBiZWZvcmUKCjIwMDUtMTAtMTMgMTc6MjQ6NTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGFkZCBhbiBleHBvcnQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhbiBleHBvcnQKCjIwMDUtMTAtMTMgMTc6MjA6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dsaWItY29tcGF0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSAgaW5jbHVkZSBoZWFkZXIgY29ycmVjdGx5OyBzaG93IG1lIHRoZSBuYW1lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpbmNsdWRlIGhlYWRlciBjb3JyZWN0bHk7IHNob3cgbWUgdGhlIG5hbWUKCjIwMDUtMTAtMTMgMTY6MzQ6MDQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgZm9vCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmb28KCjIwMDUtMTAtMTMgMTY6MjY6MTIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYyAoZ3N0X2RwX3BhY2tldF9mcm9tX2NhcHMpOiBGaXggVGltbWVrZSBXYXltYW5zIGJ1Zy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jIChnc3RfZHBfcGFja2V0X2Zyb21fY2Fwcyk6CgkgIEZpeCBUaW1tZWtlIFdheW1hbnMgYnVnLgoJICAoZ3N0X2RwX2NhcHNfZnJvbV9wYWNrZXQpOiBNYWtlIHN1cmUgd2UgcGFzcyBhIE5VTC10ZXJtaW5hdGVkCgkgIHN0cmluZyBvZiB0aGUgcHJvcGVyIGxlbmd0aCB0byBnc3RfY2Fwc19mcm9tX3N0cmluZy4gVGhlcmUncyBhCgkgIHBvdGVudGlhbCBmb3IsIGJlZm9yZSB0aGlzIGZpeCwgdGhhdCB0aGlzIGNvdWxkIGNhdXNlIHNvbWVvbmUKCSAgY29ubmVjdGluZyBvdmVyIHRoZSBuZXR3b3JrIHRvIGNhdXNlIGEgc2VnZmF1bHQgaWYgdGhlIHBheWxvYWQgaXMKCSAgbm90IE5VTC10ZXJtaW5hdGVkLgoKMjAwNS0xMC0xMyAxNToyNzo0MCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZml4ZWQgdHlwb3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtcHVzaC1wdWxsLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgKiBkb2NzL3JhbmRvbS9UT0RPLXByZS0wLjk6CgkgICogZG9jcy9yYW5kb20vb2xkL0NoYW5nZUxvZy5nc3RyZWFtZXI6CgkgICogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICBmaXhlZCB0eXBvcwoKMjAwNS0xMC0xMyAxNToyMzo1MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiBHTGliIDIuNiBnX2ZsYWdzX2dldF9maXJzdF92YWx1ZSBoYXMgYSBidWcgdGhhdCB0cmlnZ2VycyBhbiBpbmZpbml0ZSBsb29wCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nbGliLWNvbXBhdC5jOiAoZ3N0X2ZsYWdzX2dldF9maXJzdF92YWx1ZSk6CgkgICogZ3N0L2dsaWItY29tcGF0Lmg6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfZGVzZXJpYWxpemVfaW50X2hlbHBlciksCgkgIChnc3RfdmFsdWVfY29tcGFyZV9kb3VibGUpLCAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9mbGFncyk6CgkgIEdMaWIgMi42IGdfZmxhZ3NfZ2V0X2ZpcnN0X3ZhbHVlIGhhcyBhIGJ1ZyB0aGF0IHRyaWdnZXJzIGFuCgkgIGluZmluaXRlIGxvb3AKCjIwMDUtMTAtMTMgMTU6MjI6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2Jhc2UvOiBmaXggdXAgZGVidWdnaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEzICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlICA8dGhvbWFzIGF0IGFwZXN0YWFydCBkb3Qgb3JnPgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpOgoJICBmaXggdXAgZGVidWdnaW5nCgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIHByaW50IG91dCBjbG9jayBuaWNlbHkKCjIwMDUtMTAtMTMgMTU6MTM6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGRlZCBnc3RfdGFnX2xpc3RfZ2V0X2RhdGUoKSBhbmQgZ3N0X3RhZ19saXN0X2dldF9kYXRlX2luZGV4KCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoX2dzdF90YWdfaW5pdGlhbGl6ZSksIChnc3RfdGFnX2xpc3RfZ2V0X2RhdGUpLAoJICAoZ3N0X3RhZ19saXN0X2dldF9kYXRlX2luZGV4KToKCSAgQWRkZWQgZ3N0X3RhZ19saXN0X2dldF9kYXRlKCkgYW5kIGdzdF90YWdfbGlzdF9nZXRfZGF0ZV9pbmRleCgpLgoJICBHU1RfVEFHX0RBVEUgbm93IGhhcyBhIHRhZyB0eXBlIG9mIEdTVF9UWVBFX0RBVEUgKCMxNzA3NzcpLgoKMjAwNS0xMC0xMyAxNDo1NToxNyArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy4qOiBIYW5kbGUgbmV3c2VnbWVudCBhbmQgc3RvcmUgaW5mb3JtYXRpb25zIGluIENvbGxlY3REYXRhLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMyAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdHBhZHNfZXZlbnQpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2NoYWluKToKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOiBIYW5kbGUgbmV3c2VnbWVudCBhbmQgc3RvcmUKCSAgaW5mb3JtYXRpb25zCgkgIGluIENvbGxlY3REYXRhLgoKMjAwNS0xMC0xMyAwOTo1NzoxNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZml4IEdPcHRpb24gY29udGV4dCBsZWFrcyBkb2MgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdGVycm9yLmg6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1ydW4uYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IChtYWluKToKCSAgZml4IEdPcHRpb24gY29udGV4dCBsZWFrcwoJICBkb2MgZml4ZXMKCjIwMDUtMTAtMTIgMjI6MzQ6NDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGJ1cy5jOiB1c2UgSEFWRV9VTklTVERfSAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgIHVzZSBIQVZFX1VOSVNURF9ICgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGUgY29uZmlnCgkgICogd2luMzIvdnM2L2dyYW1tYXIuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RlbGVtZW50cy5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdHJlYW1lci5kc3A6CgkgIHVwZGF0ZSB2czYgZmlsZXMKCjIwMDUtMTAtMTIgMjI6MDA6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBoYWQgYSBmZXcgdG9vIG1hbnkgMEQgYnl0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGhhZCBhIGZldyB0b28gbWFueSAwRCBieXRlcwoKMjAwNS0xMC0xMiAyMTo1Njo1MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvYmFzZS86IGZpeCBtb3JlIGd1aW50NjQ8LT5nZG91YmxlIGNvbnZlcnNpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19xdWVyeSk6CgkgIGZpeCBtb3JlIGd1aW50NjQ8LT5nZG91YmxlIGNvbnZlcnNpb25zCgoyMDA1LTEwLTEyIDIwOjIzOjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIE1ha2VmaWxlLmFtOiBhZGQgd2luMzItdXBkYXRlIHRhcmdldAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgYWRkIHdpbjMyLXVwZGF0ZSB0YXJnZXQKCSAgKiB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6CgkgICogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJICAqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSAgKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBhZGQgZmlsZXMgdGhhdCB2aXN1YWwgc3R1ZGlvIGNhbid0IGdlbmVyYXRlCgoyMDA1LTEwLTEyIDE5OjM4OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogUHJvdGVjdCBmbGFncyB3aXRoIHByb3BlciBsb2NrLiB1bnJlZiBwcm92aWRlZCBjYWNoZWQgY2xvY2sgaW4gZGlzcG9zZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX3JlbW92ZV9mdW5jKSwKCSAgKHJlc2V0X2RlZ3JlZSksIChnc3RfYmluX2Rpc3Bvc2UpLCAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSk6CgkgIFByb3RlY3QgZmxhZ3Mgd2l0aCBwcm9wZXIgbG9jay4KCSAgdW5yZWYgcHJvdmlkZWQgY2FjaGVkIGNsb2NrIGluIGRpc3Bvc2UuCgoyMDA1LTEwLTEyIDE5OjE0OjIzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgbGF5b3V0IGNsZWFudXAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGxheW91dCBjbGVhbnVwCgoyMDA1LTEwLTEyIDE5OjEwOjQ2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICByZW1vdmVkIHVudXNlZCBmbGFncyBmcm9tIG1pbmlvYmplY3QgZG9jIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiB3aW4zMi9nc3RlbnVtdHlwZXMuYzogKGdzdF9taW5pX29iamVjdF9mbGFnc19nZXRfdHlwZSk6CgkgIHJlbW92ZWQgdW51c2VkIGZsYWdzIGZyb20gbWluaW9iamVjdAoJICBkb2MgZml4ZXMKCjIwMDUtMTAtMTIgMTg6MDM6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvdnM2L2dyYW1tYXIuZHNwOgoJKiB3aW4zMi92czYvZ3N0X2luc3BlY3QuZHNwOgoJKiB3aW4zMi92czYvZ3N0X2xhdW5jaC5kc3A6CgkqIHdpbjMyL3ZzNi9nc3RyZWFtZXIuZHN3OgoJKiB3aW4zMi92czYvbGliZ3N0YmFzZS5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RlbGVtZW50cy5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RyZWFtZXIuZHNwOgoJICBjb252ZXJ0IHRvIHVuaXggbGluZSBlbmRzOyBzaW5jZSB0aGUgc291cmNlIGlzIGFsc28gdW5peC1zdHlsZSBsaW5lIGVuZHMsIGRldmVsb3BlcnMgZG9uJ3QgbmVlZCB0byBmaWRkbGUgYW5kIHNwZWNpYWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNvbnZlcnQgdG8gdW5peCBsaW5lIGVuZHM7IHNpbmNlIHRoZSBzb3VyY2UgaXMgYWxzbyB1bml4LXN0eWxlIGxpbmUgZW5kcywgZGV2ZWxvcGVycyBkb24ndCBuZWVkIHRvIGZpZGRsZSBhbmQgc3BlY2lhbC1jYXNlLCBidXQgY2FuIGp1c3QgYWxsb3cgdHJhbnNsYXRpb24gb24gdGhlIGZseQoKMjAwNS0xMC0xMiAxNjowMzozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiBGbHVzaCBiZWZvcmUgc2Vla2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2RvX3NlZWspLAoJICAoZ3N0X2ZpbGVfc2lua19ldmVudCksIChnc3RfZmlsZV9zaW5rX3JlbmRlcik6CgkgIEZsdXNoIGJlZm9yZSBzZWVraW5nLgoKMjAwNS0xMC0xMiAxNTo1ODoyNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdC5jIChnc3RfaW5pdF9jaGVjayk6IElnbm9yZSB1bmtub3duIG9wdGlvbnMsIGFzIGhhcyBhbHdheXMgYmVlbiB0aGUgY2FzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdC5jIChnc3RfaW5pdF9jaGVjayk6IElnbm9yZSB1bmtub3duIG9wdGlvbnMsIGFzIGhhcwoJICBhbHdheXMgYmVlbiB0aGUgY2FzZS4KCjIwMDUtMTAtMTIgMTQ6Mjg6MzkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHJlbmFtZWQgR1NUX0ZMQUdTIG1hY3JvcyB0byBHU1RfT0JKRUNUX0ZMQUdTIG1vdmVkIGJpdHNoaWZ0IGZyb20gbWFjcm8gdG8gZW51bSBkZWZpbml0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2luaXQpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX2NoZWNrX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfc3RhcnQpLCAoZ3N0X2Jhc2Vfc3JjX3N0b3ApOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX3NldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX3JlbW92ZV9mdW5jKSwKCSAgKGJpbl9lbGVtZW50X2lzX3NpbmspLCAocmVzZXRfZGVncmVlKSwgKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpLAoJICAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfcG9zdCksIChnc3RfYnVzX3NldF9mbHVzaGluZyk6CgkgICogZ3N0L2dzdGJ1cy5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9pc19sb2NrZWRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X2xvY2tlZF9zdGF0ZSksIChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RpbmRleC5jOiAoZ3N0X2luZGV4X2luaXQpOgoJICAqIGdzdC9nc3RpbmRleC5oOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9pbml0KSwgKGdzdF9vYmplY3Rfc2luayksCgkgIChnc3Rfb2JqZWN0X3NldF9wYXJlbnQpOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9ibG9ja2VkX2FzeW5jKSwgKGdzdF9wYWRfaXNfYmxvY2tlZCksCgkgIChnc3RfcGFkX2dldF9jYXBzX3VubG9ja2VkKSwgKGdzdF9wYWRfc2V0X2NhcHMpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9wcm92aWRlX2Nsb2NrX2Z1bmMpLAoJICAoZ3N0X3BpcGVsaW5lX3VzZV9jbG9jayksIChnc3RfcGlwZWxpbmVfYXV0b19jbG9jayk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmg6CgkgICogZ3N0L2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOiAoZ3N0X2ZpbGVfaW5kZXhfbG9hZCksCgkgIChnc3RfZmlsZV9pbmRleF9jb21taXQpOgoJICAqIHRlc3RzdWl0ZS9ieXRlc3RyZWFtL2ZpbGVwYWRzaW5rLmM6IChnc3RfZnBfc2lua19pbml0KToKCSAgKiB0ZXN0c3VpdGUvcGFkL2xpbmsuYzogKGdzdF90ZXN0X3NyY19pbml0KSwKCSAgKGdzdF90ZXN0X2ZpbHRlcl9pbml0KSwgKGdzdF90ZXN0X3NpbmtfaW5pdCk6CgkgICogdGVzdHN1aXRlL3N0YXRlcy9sb2NrZWQuYzogKG1haW4pOgoJICByZW5hbWVkIEdTVF9GTEFHUyBtYWNyb3MgdG8gR1NUX09CSkVDVF9GTEFHUwoJICBtb3ZlZCBiaXRzaGlmdCBmcm9tIG1hY3JvIHRvIGVudW0gZGVmaW5pdGlvbgoKMjAwNS0xMC0xMiAxNDoxMjozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFNvbWUgbW9yZSBkZWJ1Z2dpbmcgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX2J1ZmZlcik6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9maWxlX3NpbmtfcmVuZGVyKToKCSAgU29tZSBtb3JlIGRlYnVnZ2luZyBpbmZvLgoKMjAwNS0xMC0xMiAxMjo1ODo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFNvbWUgZG9jIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgU29tZSBkb2MgdXBkYXRlcy4KCSAgUmV2ZXJ0IG5vbi1pbnRlbnRpb25hbCBjaGFuZ2UuCgoyMDA1LTEwLTEyIDEyOjE4OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgVXNlIEdzdENsb2NrVGltZSBpbiBfZ2V0X3N0YXRlKCkgaW5zdGVhZCBvZiBHVGltZVZhbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RlbGVtZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdGV2ZW50LmM6IChHU1RfU1RBUlRfVEVTVCksICh0ZXN0X2V2ZW50KToKCSAgKiBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOiAocnVuX3BpcGVsaW5lKToKCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChzdG9wX3R5cGVmaW5kaW5nKToKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3Byb3ZpZGVfY2xvY2tfZnVuYyksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfYmluX3JlY2FsY19zdGF0ZSksIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwKCSAgKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X2dldF9zdGF0ZSksIChnc3RfZWxlbWVudF9hYm9ydF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSksIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jbGFzc19pbml0KSwgKGRvX3BpcGVsaW5lX3NlZWspLAoJICAoZ3N0X3BpcGVsaW5lX3Byb3ZpZGVfY2xvY2tfZnVuYyk6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9saW5rX3BhZHNfZmlsdGVyZWQpOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC10eXBlZmluZC5jOiAobWFpbik6CgkgIFVzZSBHc3RDbG9ja1RpbWUgaW4gX2dldF9zdGF0ZSgpIGluc3RlYWQgb2YgR1RpbWVWYWwuCgkgIFJlbW92ZSBvbGQgY29kZSBpbiBnc3R1dGlscy5jCgoyMDA1LTEwLTEyIDExOjQ5OjM1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfcGF1c2VfdGFzayk6IEFjdHVhbGx5IHJldHVybiBGQUxTRSBpZiB0aGVyZSBpcyBubyB0YXNrLiBTaG91bGRuJ3QgYWZmZWN0IGFueSBjb2RlLCBhcyBub3RoaW5nIGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX3BhdXNlX3Rhc2spOiBBY3R1YWxseSByZXR1cm4gRkFMU0UgaWYKCSAgdGhlcmUgaXMgbm8gdGFzay4gU2hvdWxkbid0IGFmZmVjdCBhbnkgY29kZSwgYXMgbm90aGluZyBpbiBvdXIKCSAgcGx1Z2lucyBjaGVja3MgdGhpcyByZXR1cm4gdmFsdWUuCgkgIChnc3RfcGFkX3N0b3BfdGFzayk6IEFsc28gdGFrZSB0aGUgc3RyZWFtIGxvY2sgaWYgdGhlIHBhZCBoYXMgbm8KCSAgdGFzay4gRG9jcyB1cGRhdGVkLgoKMjAwNS0xMC0xMiAxMDowNTozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogQ2xlYW51cCBhY3RpdmF0aW9uIGNvZGUuIFJlc2V0IG9sZCBzdGF0ZSBpZiBhY3RpdmF0aW9uIGZhaWxlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAocHJlX2FjdGl2YXRlKSwgKHBvc3RfYWN0aXZhdGUpLAoJICAoZ3N0X3BhZF9hY3RpdmF0ZV9wdWxsKSwgKGdzdF9wYWRfYWN0aXZhdGVfcHVzaCk6CgkgIENsZWFudXAgYWN0aXZhdGlvbiBjb2RlLiBSZXNldCBvbGQgc3RhdGUgaWYKCSAgYWN0aXZhdGlvbiBmYWlsZWQuCgoyMDA1LTEwLTEyIDA5OjAyOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogTm8gbmVlZCB0byBwcmVyb2wgYWZ0ZXIgcmVjZWl2aW5nIEVPUy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIE5vIG5lZWQgdG8gcHJlcm9sIGFmdGVyIHJlY2VpdmluZyBFT1MuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2V2ZW50KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2V2ZW50X2hhbmRsZXIpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2V2ZW50KToKCSAgUHJpbnQgZXZlbnRzIG1vcmUgdmVyYm9zZWx5LgoKMjAwNS0xMC0xMiAwODozODowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrLzogTW92ZWQgc2lua3MyIHRlc3Rjb2RlIGluIHNpbmtzIGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9vYmplY3Rfc3VpdGUpOgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rczIuYzoKCSAgTW92ZWQgc2lua3MyIHRlc3Rjb2RlIGluIHNpbmtzIGNoZWNrLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcHJvdmlkZV9jbG9ja19mdW5jKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX3JlY2FsY19zdGF0ZSksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgIEZpeCBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb24gd2hlbiBfZ2V0X3N0YXRlKCkgaXRlcmF0ZWQgb3ZlciBhbgoJICBBU1lOQyBlbGVtZW50IHJpZ2h0IGJlZm9yZSBpdCBwb3N0ZWQgYSBzdGF0ZSBjb21wbGV0aW9uLgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBEbyBwcm9wZXIgY2FzdCBoZXJlLgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19uZXdzZWdtZW50KSwKCSAgKGdzdF9ldmVudF9wYXJzZV9uZXdzZWdtZW50KToKCSAgQSBwbGF5YmFjayByYXRlIG9mIDAuMCBpcyBub3QgYWxsb3dlZC4KCjIwMDUtMTAtMTIgMDI6MjY6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogYXV0b2dlbi5zaDoKCSAgYXV0b2NvbmYgZm9yIGZyZWVic2QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGF1dG9jb25mIGZvciBmcmVlYnNkCgoyMDA1LTEwLTEyIDAyOjI1OjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9jb25mIGZvciBmcmVlYnNkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhdXRvY29uZiBmb3IgZnJlZWJzZAoKMjAwNS0xMC0xMiAwMjoyMzoyOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBhdXRvZ2VuLnNoOgoJICBhdXRvY29uZiBmb3IgZnJlZWJzZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYXV0b2NvbmYgZm9yIGZyZWVic2QKCjIwMDUtMTAtMTIgMDI6MTk6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogYXV0b2dlbi5zaDoKCSAgYXV0b2NvbmYgZm9yIGZyZWVic2QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGF1dG9jb25mIGZvciBmcmVlYnNkCgoyMDA1LTEwLTEyIDAyOjE2OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9jb25mIGZvciBmcmVlYnNkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhdXRvY29uZiBmb3IgZnJlZWJzZAoKMjAwNS0xMC0xMSAxODowMzoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB3aW4zMi86IFZpc3VhbCBTdHVkaW8gNiBwcm9qZWN0IGZpbGVzLCBhbmQgYSBuZXcgY29tbW9uIGRpcmVjdG9yeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTEgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgIDx0aG9tYXMgYXQgYXBlc3RhYXJ0IGRvdCBvcmc+CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAqIHdpbjMyL2NvbW1vbi9kaXJlbnQuYzogKF90b3BlbmRpciksIChfdHJlYWRkaXIpLCAoX3RjbG9zZWRpciksCgkgIChfdHJld2luZGRpciksIChfdHRlbGxkaXIpLCAoX3RzZWVrZGlyKToKCSAgKiB3aW4zMi9jb21tb24vZGlyZW50Lmg6CgkgICogd2luMzIvY29tbW9uL2d0Y2hhci5oOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgKiB3aW4zMi92czYvZ3JhbW1hci5kc3A6CgkgICogd2luMzIvdnM2L2dzdF9pbnNwZWN0LmRzcDoKCSAgKiB3aW4zMi92czYvZ3N0X2xhdW5jaC5kc3A6CgkgICogd2luMzIvdnM2L2dzdHJlYW1lci5kc3c6CgkgICogd2luMzIvdnM2L2xpYmdzdGJhc2UuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RlbGVtZW50cy5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdHJlYW1lci5kc3A6CgkgIFZpc3VhbCBTdHVkaW8gNiBwcm9qZWN0IGZpbGVzLCBhbmQgYSBuZXcgY29tbW9uIGRpcmVjdG9yeS4KCSAgUGhlYXIuCgoyMDA1LTEwLTExIDE3OjMzOjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBmb3Jnb3QgdGhpcyBvbmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZvcmdvdCB0aGlzIG9uZQoKMjAwNS0xMC0xMSAxNzozMjowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLio6IENvcnJlY3RseSBwYXJzZSBuZXdzZWdtZW50IGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfcXVlcnkpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIENvcnJlY3RseSBwYXJzZSBuZXdzZWdtZW50IGluZm8uCgoyMDA1LTEwLTExIDE2OjU0OjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3QuYzogc3BsaXQgcGx1Z2luIHBhdGhzIGNvcnJlY3RseQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMSAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSAgPHRob21hcyBhdCBhcGVzdGFhcnQgZG90IG9yZz4KCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICBzcGxpdCBwbHVnaW4gcGF0aHMgY29ycmVjdGx5CgoyMDA1LTEwLTExIDE2OjI4OjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkZWQgZXh0cmEgZmxhZyB0byBuZXdzZWdtZW50IGZvciBmdXR1cmUgQVBJIGZyZWV6ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGV2ZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmV3c2VnbWVudCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfZXZlbnQpOgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19uZXdzZWdtZW50KSwKCSAgKGdzdF9ldmVudF9wYXJzZV9uZXdzZWdtZW50KToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgQWRkZWQgZXh0cmEgZmxhZyB0byBuZXdzZWdtZW50IGZvciBmdXR1cmUgQVBJIGZyZWV6ZS4KCSAgVXBkYXRlZCBjaGVjayBhbmQgYmFzZSBlbGVtZW50cy4KCjIwMDUtMTAtMTEgMTY6MjU6MzUgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuKjogSGFuZGxlIEVPUyBjb3JyZWN0bHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTExICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0cGFkc19pbml0KSwKCSAgKGdzdF9jb2xsZWN0cGFkc19hZGRfcGFkKSwgKGdzdF9jb2xsZWN0cGFkc19wb3ApLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2V2ZW50KSwgKGdzdF9jb2xsZWN0cGFkc19jaGFpbik6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDogSGFuZGxlIEVPUyBjb3JyZWN0bHkuCgoyMDA1LTEwLTExIDE2OjIxOjA1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBtb3JlIHN0ciBudWxsIHByb3RlY3Rpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vcmUgc3RyIG51bGwgcHJvdGVjdGlvbgoKMjAwNS0xMC0xMSAxNjowNToxNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0LWkxOG4tbGliLmg6IGNoZWNrIGZvciBFTkFCTEVfTkxTLCBub3QgR0VUVEVYVF9QQUNLQUdFCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QtaTE4bi1saWIuaDoKCSAgY2hlY2sgZm9yIEVOQUJMRV9OTFMsIG5vdCBHRVRURVhUX1BBQ0tBR0UKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9hZGRfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpLAoJICAoX2dzdF9yZWdpc3RyeV9yZW1vdmVfY2FjaGVfcGx1Z2lucyk6CgkgIHByb3RlY3QgcG9zc2libHkgTlVMTCBzdHJpbmdzCgkgICogZ3N0L3BhcnNlL3R5cGVzLmg6CgkgIGNvbmZpZy5oIGFscmVhZHkgaW5jbHVkZWQgYmVmb3JlCgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKG1haW4pOgoJICBzeXMvd2FpdC5oIGFsc28gZG9lc260dCBleGlzdCBvbiBtaW5ndywgc28gY2hhbmdlIHRoZSBpZmRlZiBjaGVjawoJICBjaGVjayBmb3IgRU5BQkxFX05MUywgbm90IEdFVFRFWFRfUEFDS0FHRQoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICBjaGVjayBmb3IgRU5BQkxFX05MUywgbm90IEdFVFRFWFRfUEFDS0FHRQoJICBUaGlzIGNvbW1pdCBicm91Z2h0IHRvIHlvdSBmcm9tIG1zeXMvbWluZ3cKCjIwMDUtMTAtMTEgMTU6MjY6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiBpZiB3ZSBkb24ndCBoYXZlIGdsaWIsIGZhaWwgYmVmb3JlIHRlc3RpbmcgMi44CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgaWYgd2UgZG9uJ3QgaGF2ZSBnbGliLCBmYWlsIGJlZm9yZSB0ZXN0aW5nIDIuOAoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpOgoJICBmaXggYSBsZWFrLCBzaG91bGQgZml4IHBsdWdpbnMtYmFzZSB0ZXN0c3VpdGUKCjIwMDUtMTAtMTEgMTU6MjM6MTAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuYyAocHJlX2FjdGl2YXRlKTogUmVuYW1lZCBmcm9tIHByZV9hY3RpdmF0ZV9zd2l0Y2gsIHRha2UgdGhlIG1vZGUgd2UncmUgZ29pbmcgdG8gYXMgYW4gYXJnLiBHbyBoZWFkIGFuZCBzZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmMgKHByZV9hY3RpdmF0ZSk6IFJlbmFtZWQgZnJvbSBwcmVfYWN0aXZhdGVfc3dpdGNoLAoJICB0YWtlIHRoZSBtb2RlIHdlJ3JlIGdvaW5nIHRvIGFzIGFuIGFyZy4gR28gaGVhZCBhbmQgc2V0IHRoZSBtb2RlCgkgIGFuZCBmbHVzaGluZyBmbGFncyBub3csIHNvIHRoYXQgaWYgdGhlIGFjdGl2YXRlIGZ1bmN0aW9uIHN0YXJ0cyBhCgkgIHRocmVhZCBhbGwgdGhlIGZsYWdzIHdpbGwgYmUgaW4gdGhlIHJpZ2h0IHN0YXRlLgoJICAocG9zdF9hY3RpdmF0ZSk6IFJlbmFtZWQgYWxzby4gSnVzdCBoYW5kbGUgbWFraW5nIHN1cmUgc3RyZWFtaW5nCgkgIGZpbmlzaGVzIGZvciB0aGUgZGVhY3RpdmF0aW9uIGNhc2UsIGFuZCBzZXR0aW5nIHRoZSBkZWFjdGl2YXRlZAoJICBtb2RlLgoJICAoZ3N0X3BhZF9zZXRfYWN0aXZlKTogQ29tcGxhaW4gbG91ZGx5IGlmIGRlYWN0aXZhdGlvbiBmYWlscy4KCSAgKGdzdF9wYWRfYWN0aXZhdGVfcHVsbCk6IEFkYXB0IHRvIHByZS9wb3N0X2FjdGl2YXRlIGNoYW5nZXMuCgkgIChnc3RfcGFkX2FjdGl2YXRlX3B1c2gpOiBBZGFwdCB0byBwcmUvcG9zdF9hY3RpdmF0ZSBjaGFuZ2VzLAoJICByZW1vdmUgdGhlIHRlcnJpYmxlIGhhY2suCgoyMDA1LTEwLTExIDE1OjA1OjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi4qOiBQcmVwYXJlIHRvIG1ha2UgY3VycmVudCBFT1MgbWVzc2FnZSBxdWV1ZSBtb3JlIGdlbmVyaWMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faW5pdCksIChnc3RfYmluX3Byb3ZpZGVfY2xvY2tfZnVuYyksCgkgIChpc19lb3MpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX3JlbW92ZV9mdW5jKSwKCSAgKGdzdF9iaW5fcmVjYWxjX3N0YXRlKSwgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2Jpbl9kaXNwb3NlKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdGJpbi5oOgoJICBQcmVwYXJlIHRvIG1ha2UgY3VycmVudCBFT1MgbWVzc2FnZSBxdWV1ZSBtb3JlIGdlbmVyaWMuCgkgIEZpeCBzb21lIHR5cG9zLgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19uZXdzZWdtZW50KSwKCSAgKGdzdF9ldmVudF9wYXJzZV9uZXdzZWdtZW50KToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgUmVuYW1lIGJhc2UgdG8gc3RyZWFtX3RpbWUuCgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgRml4IHR5cG8gaW4gZG9jcy4KCjIwMDUtMTAtMTEgMTI6NTg6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLio6IFdvcmsgb24gcHJvcGVyIGNsb2NrIHNlbGVjdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9pbml0KSwgKGdzdF9iaW5fcHJvdmlkZV9jbG9ja19mdW5jKSwKCSAgKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX3JlY2FsY19zdGF0ZSksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdGJpbi5oOgoJICBXb3JrIG9uIHByb3BlciBjbG9jayBzZWxlY3Rpb24uCgoyMDA1LTEwLTExIDEyOjQyOjIzICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLio6IEFkZGVkIEdMaXN0KiB2ZXJzaW9uIG9mIF9yZW1vdmVfcHJvcGVydGllcygpIGluIG9yZGVyIHRvIGJlIGFibGUgdG8gd3JhcCBpdCBpbiBiLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfcmVtb3ZlX3Byb3BlcnRpZXNfbGlzdCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgIEFkZGVkIEdMaXN0KiB2ZXJzaW9uIG9mIF9yZW1vdmVfcHJvcGVydGllcygpIGluIG9yZGVyIHRvIGJlIGFibGUgdG8gd3JhcAoJICBpdCBpbiBiaW5kaW5ncy4KCjIwMDUtMTAtMTEgMTE6MDg6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6IFNvbWUgbW9yZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgIFNvbWUgbW9yZSBkb2NzLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fc2V0X2Nsb2NrX2Z1bmMpLCAoZ3N0X2Jpbl9yZWNhbGNfc3RhdGUpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyksIChiaW5fYnVzX2hhbmRsZXIpOgoJICBEb2MgdXBkYXRlcy4gRG9uJ3QgZGlzdHJpYnV0ZSB0aGUgc2FtZSBjbG9jayBvdmVyIGFuZCBvdmVyIGFnYWluLgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBEb2MgdXBkYXRlcy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfZmxvd19nZXRfbmFtZSksIChnc3RfZmxvd190b19xdWFyayksCgkgIChnc3RfcGFkX2dldF90eXBlKSwgKGdzdF9wYWRfcHVzaCksIChnc3RfcGFkX3B1c2hfZXZlbnQpLAoJICAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIE1ha2UgcHJvYmUgZW1pc3Npb24gdGhyZWFkc2FmZSBhZ2Fpbi4KCSAgUmVnaXN0ZXIgcXVhcmtzIGFuZCBtb3ZlIF9nZXRfbmFtZSgpIGZyb20gdXRpbHMuCgkgIERvYyB1cGRhdGVzLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpLAoJICAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksIChnc3RfcGlwZWxpbmVfcHJvdmlkZV9jbG9ja19mdW5jKToKCSAgT25seSByZWRpc3RyaWJ1dGUgdGhlIGNsb2NrIG9mIGl0IGNoYW5nZWQuCgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkgIERvYyB1cGRhdGVzLgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBNb3ZlZCB0aGUgX2Zsb3dfZ2V0X25hbWUoKSB0byBHc3RQYWQuCgoyMDA1LTEwLTExIDA5OjE0OjU5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBpZiB3ZSBsb2cgb3VyIGluaXQsIHNob3VsZCBhbHNvIGxvZyBmaW5hbGl6ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWYgd2UgbG9nIG91ciBpbml0LCBzaG91bGQgYWxzbyBsb2cgZmluYWxpemUKCjIwMDUtMTAtMTAgMjM6NTU6MzkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9nc3QtbGlicy9nZHAuYzoKCSogY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogY29tbW9uOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6CgkgIGZpeCBtb3JlIHZhbGdyaW5kIHdhcm5pbmdzIGJlZm9yZSB0dXJuaW5nIHVwIHRoZSBoZWF0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggbW9yZSB2YWxncmluZCB3YXJuaW5ncyBiZWZvcmUgdHVybmluZyB1cCB0aGUgaGVhdAoKMjAwNS0xMC0xMCAyMzoxMTozMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBkb24ndCBkZWNsYXJlIG9uIHRoZSBwcm9wZXIgZGVmaW5lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCBkZWNsYXJlIG9uIHRoZSBwcm9wZXIgZGVmaW5lCgoyMDA1LTEwLTEwIDIyOjU5OjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHVubWFuZ2xlIHRoZSBuZXN0aW5nIGEgbGl0dGxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1bm1hbmdsZSB0aGUgbmVzdGluZyBhIGxpdHRsZQoKMjAwNS0xMC0xMCAyMjo0OTo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvcGFyc2UvZ3JhbW1hci55OiBzb21lIGNsZWFudXAgYmVmb3JlIHRoZSBoYWNraW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHNvbWUgY2xlYW51cCBiZWZvcmUgdGhlIGhhY2tpbmcKCjIwMDUtMTAtMTAgMTg6MTY6MzcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiB1c2UgY29udmVyc2lvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5KToKCSAgdXNlIGNvbnZlcnNpb25zCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZ3VpbnQ2NF90b19nZG91YmxlKSwKCSAgKGdzdF9nZG91YmxlX3RvX2d1aW50NjQpLCAoZ3N0X3V0aWxfdWludDY0X3NjYWxlKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZXh0ZXJuYWxpemUsIGJhc2VzcmMgdXNlcyBpdAoJICBvYnZpb3VzbHkgdGhlIGltcGxlbWVudGF0aW9uIG5lZWRzIHRlc3RpbmcKCjIwMDUtMTAtMTAgMTc6MDU6MDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGFub3RoZXIgY2FzdCBiaXRlcyB0aGUgZHVzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYW5vdGhlciBjYXN0IGJpdGVzIHRoZSBkdXN0CgoyMDA1LTEwLTEwIDE2OjQ1OjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBhbm90aGVyIGNhc3QgYml0ZXMgdGhlIGR1c3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFub3RoZXIgY2FzdCBiaXRlcyB0aGUgZHVzdAoKMjAwNS0xMC0xMCAxNjo0MzozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL3NjaGVkLzoKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvc2NoZWQvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvc2NoZWQvc29ydC5jOiAobWFrZV9waXBlbGluZTEpLCAobWFrZV9waXBlbGluZTIpLAoJICAobWFrZV9waXBlbGluZTMpLCAobWFrZV9waXBlbGluZTQpLCAocHJpbnRfZWxlbSksIChtYWluKToKCjIwMDUtMTAtMTAgMTY6Mzg6NTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IGFwcGFyZW50bHkgY29udmVydGluZyBmcm9tIGd1aW50NjQgdG8gZG91YmxlIGlzIG5vdCBpbXBsZW1lbnRlZCBvbiBNU1ZDCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3VpbnQ2NF90b19nZG91YmxlKSwgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZSk6CgkgIGFwcGFyZW50bHkgY29udmVydGluZyBmcm9tIGd1aW50NjQgdG8gZG91YmxlIGlzIG5vdCBpbXBsZW1lbnRlZAoJICBvbiBNU1ZDCgoyMDA1LTEwLTEwIDE2OjM4OjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svOiBDaGVjayBmaXhlcywgdXNlIEFQSSBhcyBzdGF0ZWQgaW4gZGVzaWduIGRvY3MsIHJlbW92ZSBoYWNrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfcGlwZWxpbmVfc3VpdGUpOgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rczIuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9vYmplY3Rfc3VpdGUpLAoJICAobWFpbik6CgkgIENoZWNrIGZpeGVzLCB1c2UgQVBJIGFzIHN0YXRlZCBpbiBkZXNpZ24gZG9jcywgcmVtb3ZlIGhhY2tzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBDYXRjaCBzdG9wcGluZyBvdXIgdGFzayB3aGlsZSB3ZSdyZSBzaHV0dGluZyBkb3duLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faW5pdCksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfYmluX3JlY2FsY19zdGF0ZSksIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwKCSAgKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdGJpbi5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9pbml0KSwKCSAgKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwgKGdzdF9lbGVtZW50X2Fib3J0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSksIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSksIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlX2Z1bmMpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIE5ldyBzdGF0ZSBjaGFuZ2UgYWxnb3JpdGhtIChzZWUgIzMxODExNikKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jbGFzc19pbml0KSwKCSAgKGdzdF9waXBlbGluZV9pbml0KSwgKGdzdF9waXBlbGluZV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3BpcGVsaW5lX2dldF9wcm9wZXJ0eSksIChkb19waXBlbGluZV9zZWVrKSwKCSAgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X3BpcGVsaW5lX3Byb3ZpZGVfY2xvY2tfZnVuYyk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmg6CgkgIFJlbW92ZSBjcnVkZSBzdGF0ZSBjaGFuZ2UgaGFja3MuCgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIFJlbW92ZSBjcnVkZSBoYWNrcy4KCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgRml4ZXMgZm9yIHN0YXRlIGNoYW5nZS4gTmVlZHMgc29tZSBtb3JlIHdvcmsgdG8gZnVsbHkgdXNlIHRoZQoJICBuZXcgc3R1ZmYuCgoyMDA1LTEwLTEwIDE2OjIwOjQxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9NYWtlZmlsZS5hbSAobm9pbnN0X1BST0dSQU1TKTogTm8gbW9yZSBpbml0LmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL01ha2VmaWxlLmFtIChub2luc3RfUFJPR1JBTVMpOiBObyBtb3JlIGluaXQuYy4KCjIwMDUtMTAtMTAgMTY6MDQ6MjggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3QuYyAoR19PUFRJT05fRkxBR19OT19BUkcpOiBBcHBhcmVudGx5IEdMaWIgMi44IHJlcXVpcmVzIHRoaXMgZmxhZywgYnV0IGl0J3Mgbm90IGV2ZW4gaW4gR0xpYiAyLjYuIE9kZC4gSGFjayBhci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0LmMgKEdfT1BUSU9OX0ZMQUdfTk9fQVJHKTogQXBwYXJlbnRseSBHTGliIDIuOCByZXF1aXJlcwoJICB0aGlzIGZsYWcsIGJ1dCBpdCdzIG5vdCBldmVuIGluIEdMaWIgMi42LiBPZGQuIEhhY2sgYXJvdW5kIHRoZQoJICBpc3N1ZS4KCjIwMDUtMTAtMTAgMTU6NTg6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aXRlcmF0b3IuYzogRml4IG15IHByZXZpb3VzIGNvbW1pdDogR1R5cGVzIHBhc3NlZCB0byBnc3RfaXRlcmF0b3JfbmV3KCkgY2FuIGJlIGZ1bmRhbWVudGFsIHR5cGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzogKGdzdF9pdGVyYXRvcl9uZXcpOgoJICBGaXggbXkgcHJldmlvdXMgY29tbWl0OiBHVHlwZXMgcGFzc2VkIHRvIGdzdF9pdGVyYXRvcl9uZXcoKQoJICBjYW4gYmUgZnVuZGFtZW50YWwgdHlwZXMuCgoyMDA1LTEwLTEwIDE1OjU1OjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogVXNlIHNyYy9zaW5rIHBhZHMgbGlzdHMgZm9yIHRoZSByZXNwZWN0aXZlIGl0ZXJhdG9ycyBpbnN0ZWFkIG9mIGZpbHRlcmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2l0ZXJhdGVfcGFkX2xpc3QpLAoJICAoZ3N0X2VsZW1lbnRfaXRlcmF0ZV9wYWRzKSwgKGdzdF9lbGVtZW50X2l0ZXJhdGVfc3JjX3BhZHMpLAoJICAoZ3N0X2VsZW1lbnRfaXRlcmF0ZV9zaW5rX3BhZHMpOgoJICBVc2Ugc3JjL3NpbmsgcGFkcyBsaXN0cyBmb3IgdGhlIHJlc3BlY3RpdmUgaXRlcmF0b3JzIGluc3RlYWQKCSAgb2YgZmlsdGVyaW5nLgoKMjAwNS0xMC0xMCAxNTo1Mzo1OSArMDAwMCAgUm9uYWxkIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBNZXJnZWQgaW4gcG9wdCByZW1vdmFsICsgR09wdGlvbiBhZGRpdGlvbiBwYXRjaCBmcm9tIFJvbmFsZCwgYnVnICMxNjk3NzIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICBNZXJnZWQgaW4gcG9wdCByZW1vdmFsICsgR09wdGlvbiBhZGRpdGlvbiBwYXRjaCBmcm9tIFJvbmFsZCwgYnVnCgkgICMxNjk3NzIuCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIFNUQVRFXyhVTilMT0NLX0ZVTEwsIG1vdmUKCSAgR3N0RWxlbWVudCBtYWNyb3MgYXJvdW5kLCByZW1vdmUgcG9wdC1yZWxhdGVkIHN5bWJvbHMsIGFkZCBnb3B0aW9uCgkgIHN0dWZmLgoJICAqIGNvbmZpZ3VyZS5hYzogUmVtb3ZlIHBvcHQgY2hlY2tzLCByZXF1aXJlIEdMaWIgMi42IGZvciBHT3B0aW9uLgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbTogTm8gUE9QVF9DRkxBR1MuCgkgICogZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1pbml0LnhtbDogRG9jIHVwZGF0ZXMgd2l0aCBhbiBleGFtcGxlLgoJICAqIGdzdC9nc3QuYzogKGdzdF9pbml0X2dldF9vcHRpb25fZ3JvdXApLCAoZ3N0X2luaXRfY2hlY2spLAoJICAoZ3N0X2luaXQpLCAocGFyc2Vfb25lX29wdGlvbiksIChwYXJzZV9nb3B0aW9uX2FyZyk6CgkgICogZ3N0L2dzdC5oOiBSZW1vdmVkIGdzdF9pbml0X3dpdGhfcG9wdF90YWJsZSBhbmQgZnJpZW5kcy4gVG9vayBhCgkgIGJpdCBvZiBoYW5kIG1lcmdpbmcgYW5kIGRlYnVnZ2luZyB0byBnZXQgdGhlIEdPcHRpb24gc3R1ZmYgd29ya2luZwoJICB0aG8uCgkgICogdGVzdHMvTWFrZWZpbGUuYW06CgkgICogdG9vbHMvTWFrZWZpbGUuYW06CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1ydW4uYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IChtYWluKTogVGhhbmtzIFJvbmFsZCEKCjIwMDUtMTAtMTAgMTU6MzA6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aXRlcmF0b3IuYzogQWRkIGFzc2VydGlvbnMgdG8gbWFrZSBzdXJlIHBhc3NlZCBHVHlwZSBpcyBsaWtlbHkgdG8gcmVhbGx5IGJlIGEgR1R5cGUgKGFzIHRoZSBjb21waWxlciB3b24ndCBjYXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6IChnc3RfaXRlcmF0b3JfbmV3KToKCSAgQWRkIGFzc2VydGlvbnMgdG8gbWFrZSBzdXJlIHBhc3NlZCBHVHlwZSBpcyBsaWtlbHkgdG8gcmVhbGx5CgkgIGJlIGEgR1R5cGUgKGFzIHRoZSBjb21waWxlciB3b24ndCBjYXRjaCBpdCBpZiB0aGUgc2l6ZSBhbmQKCSAgR1R5cGUgYXJndW1lbnRzIGdldCBtaXhlZCB1cCwgc2VlICMzMTg0NDcpLgoKMjAwNS0xMC0xMCAxNToyNzoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogUGFzcyBHVHlwZSBhbmQgc2l6ZSBhcmd1bWVudHMgdG8gZ3N0X2l0ZXJhdG9yX25ldygpIGluIHRoZSByaWdodCBvcmRlciAobWF5YmUgd2Ugc2hvdWxkIG1ha2UgX25ldygpIHRhay4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2aWV3ZWQgYnk6IFRpbS1QaGlsaXBwIE3DvGxsZXIgIDx0aW0gYXQgY2VudHJpY3VsYXIgZG90IG5ldD4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2l0ZXJhdGVfc29ydGVkKToKCSAgUGFzcyBHVHlwZSBhbmQgc2l6ZSBhcmd1bWVudHMgdG8gZ3N0X2l0ZXJhdG9yX25ldygpIGluIHRoZSByaWdodAoJICBvcmRlciAobWF5YmUgd2Ugc2hvdWxkIG1ha2UgX25ldygpIHRha2UgdGhlIEdUeXBlIGFzIGZpcnN0IGFyZ3VtZW50CgkgIGp1c3QgbGlrZSBfbmV3X2xpc3QoKT8pICgjMzE4NDQ3KS4KCjIwMDUtMTAtMTAgMTU6MTc6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBBbmQgZnJlZSB0aGUgR1N0YXRpY1JlY011dGV4IHRvbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZmluYWxpemUpOgoJICBBbmQgZnJlZSB0aGUgR1N0YXRpY1JlY011dGV4IHRvbwoKMjAwNS0xMC0xMCAxNDozMzozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9HU3RyZWFtZXIudmNwcm9qOgoJKiB3aW4zMi92czcvR1N0cmVhbWVyLnZjcHJvajoKCSAgZG9uJ3QgZWNobyBwYXRoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCBlY2hvIHBhdGgKCjIwMDUtMTAtMTAgMTQ6MzM6MTMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X2luaXQsIGdzdF9lbGVtZW50X2ZpbmFsaXplKTogQWxsb2NhdGUgYW5kIGZyZWUgdGhlIG11dGV4IHByb3Blcmx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9pbml0LCBnc3RfZWxlbWVudF9maW5hbGl6ZSk6CgkgIEFsbG9jYXRlIGFuZCBmcmVlIHRoZSBtdXRleCBwcm9wZXJseS4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5oIChHU1RfU1RBVEVfVU5MT0NLX0ZVTEwsIEdTVF9TVEFURV9MT0NLX0ZVTEwpOgoJICBOZXcgbWFjcm9zLgoJICAoR3N0RWxlbWVudCk6IFRoZSBzdGF0ZV9sb2NrIGlzIG5vdyByZWN1cnNpdmUuIFJlYnVpbGQgeW91cgoJICBwbHVnaW5zLCBzdWNrZXJzLiBPbGQgbWFjcm9zIGFkYXB0ZWQuCgoyMDA1LTEwLTEwIDE0OjIzOjU3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIGNoYW5nZWxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2hhbmdlbG9nCgoyMDA1LTEwLTEwIDE0OjIzOjI2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBEb2MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogRG9jIHVwZGF0ZXMuCgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogZ3N0L2dzdHV0aWxzLmMgKGdfc3RhdGljX3JlY19jb25kX3RpbWVkX3dhaXQpCgkgIChnX3N0YXRpY19yZWNfY29uZF93YWl0KTogUG9ydGVkIGZyb20gc3RhdGUgY2hhbmdlcyBwYXRjaCwgd2hpbGUKCSAgd2Ugd2FpdCBvbiBidWcgIzMxNzgwMiB0byBiZSBzb2x2ZWQgaW4gYSB3ZWxsLWRpc3RyaWJ1dGVkIEdMaWIuCgoyMDA1LTEwLTEwIDE0OjE1OjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL01BTklGRVNUOgoJKiB3aW4zMi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvbGliZ3N0YmFzZS52Y3Byb2o6CgkqIHdpbjMyL2xpbmtfb2xkcnVudGltZS5jOgoJKiB3aW4zMi92czcvbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL3ZzNy9saWJnc3RiYXNlLnZjcHJvajoKCSogd2luMzIvdnM3L2xpbmtfb2xkcnVudGltZS5jOgoJICBhZGQgbW9yZSB3aW4zMiBidWlsZCBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1vcmUgd2luMzIgYnVpbGQgZmlsZXMKCjIwMDUtMTAtMTAgMTQ6MDM6MjUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZV9mdW5jKTogUmVuYW1lZCBmcm9tIGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSwgdmFyaWFibGUgbmFtZSBjaGFuZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGVfZnVuYyk6IFJlbmFtZWQgZnJvbQoJICBnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUsIHZhcmlhYmxlIG5hbWUgY2hhbmdlcy4KCSAgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6IFNwbGl0IG91dCBvZiBnc3RfZWxlbWVudF9zZXRfc3RhdGUgaW4KCSAgcHJlcGFyYXRpb24gZm9yIHRoZSBzdGF0ZSBjaGFuZ2UgbWVyZ2UuIERvZXNuJ3QgcGF5IGF0dGVudGlvbiB0bwoJICB0aGUgJ3RyYW5zaXRpb24nIGFyZ3VtZW50LgoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKTogVXBkYXRlcywgaG9wZWZ1bGx5IHB1cmVseSBjb3NtZXRpYy4KCSAgKGdzdF9lbGVtZW50X3N5bmNfc3RhdGVfd2l0aF9wYXJlbnQpOiBNVC1zYWZldHkuIFBvcnRlZCBmcm9tIHRoZQoJICBzdGF0ZSBjaGFuZ2UgcGF0Y2guCgkgIChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyk6IFJlbmFtZWQgZnJvbSBnZXRfc3RhdGUsIGNvc21ldGljCgkgIGNoYW5nZXMuCgoyMDA1LTEwLTEwIDEzOjUyOjE4ICswMDAwICBTZWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHVwZGF0ZXMgZm9yIHRoZSB3aW4zMiBidWlsZCAocGF0Y2ggZnJvbSBTZWJhc3RpZW4gTW91dHRlKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgKiB3aW4zMi9HU3RyZWFtZXIudmNwcm9qOgoJICAqIHdpbjMyL2NvbmZpZy5oOgoJICAqIHdpbjMyL2RpcmVudC5jOiAoX3RzZWVrZGlyKToKCSAgKiB3aW4zMi9nc3QtaW5zcGVjdC52Y3Byb2o6CgkgICogd2luMzIvZ3N0LWxhdW5jaC52Y3Byb2o6CgkgICogd2luMzIvZ3N0Y29uZmlnLmg6CgkgICogd2luMzIvZ3N0ZWxlbWVudHMudmNwcm9qOgoJICAqIHdpbjMyL2dzdGVudW10eXBlcy5jOiAoZ3N0X29iamVjdF9mbGFnc19nZXRfdHlwZSk6CgkgICogd2luMzIvZ3N0cmVhbWVyLmRlZjoKCSAgKiB3aW4zMi9tc3ZjNzEuc2xuOgoJICB1cGRhdGVzIGZvciB0aGUgd2luMzIgYnVpbGQgKHBhdGNoIGZyb20gU2ViYXN0aWVuIE1vdXR0ZSkKCjIwMDUtMTAtMTAgMTE6NTI6NTggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RiaW4uYyAoZ3N0X2Jpbl9nZXRfc3RhdGVfZnVuYyk6IFJlbmFtZWQgZnJvbSBnc3RfYmluX2dldF9zdGF0ZSwgY2xlYW5lZCB1cCAoYnV0IG5vIGxvZ2ljIGNoYW5nZXMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0YmluLmMgKGdzdF9iaW5fZ2V0X3N0YXRlX2Z1bmMpOiBSZW5hbWVkIGZyb20KCSAgZ3N0X2Jpbl9nZXRfc3RhdGUsIGNsZWFuZWQgdXAgKGJ1dCBubyBsb2dpYyBjaGFuZ2VzKS4KCSAgKGJpbl9lbGVtZW50X2lzX3NpbmspOiBDb21tZW50IHVwZGF0ZXMuCgkgIChzaW5rX2l0ZXJhdG9yX2ZpbHRlcik6IFJlbW92ZSBuZWVkbGVzcyBjYXN0LgoJICAoZ3N0X2Jpbl9pdGVyYXRlX3NpbmtzKTogRG9jIHVwZGF0ZS4KCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpOiBSZW5hbWVkIGZyb20gZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUsCgkgIGNsZWFuZWQgdXAgKGJ1dCBubyBsb2dpYyBjaGFuZ2VzKS4KCjIwMDUtMTAtMTAgMTE6MDQ6NTUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL3N0YXRlcy9zaW5rcy5jICh0ZXN0X3NyY19zaW5rKTogQ2xlYW51cHMgZnJvbSB0aGUgc3RhdGUgY2hhbmdlIHBhdGNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MuYyAodGVzdF9zcmNfc2luayk6IENsZWFudXBzIGZyb20gdGhlIHN0YXRlCgkgIGNoYW5nZSBwYXRjaC4KCSAgKHRlc3RfbGl2ZXNyY19zaW5rKTogU3luYyBvbiB0aGUgc3RhdGUuCgoyMDA1LTEwLTEwIDEwOjU5OjMzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jIChydW5fcGlwZWxpbmUpOiBNZXJnZSBmcm9tIHRoZSBzdGF0ZSBjaGFuZ2UgcGF0Y2guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmMgKHJ1bl9waXBlbGluZSk6IE1lcmdlIGZyb20KCSAgdGhlIHN0YXRlIGNoYW5nZSBwYXRjaC4KCjIwMDUtMTAtMTAgMTA6NTc6NDAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jICh0ZXN0X2dob3N0X3BhZHMpOiBNZXJnZSBmcm9tIHRoZSBzdGF0ZSBjaGFuZ2UgcGF0Y2guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jICh0ZXN0X2dob3N0X3BhZHMpOiBNZXJnZSBmcm9tIHRoZSBzdGF0ZQoJICBjaGFuZ2UgcGF0Y2guCgoyMDA1LTEwLTEwIDEwOjUwOjEyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IE1lcmdlIGluIHNvbWUgc3R5bGUgZml4ZXMgYW5kIGFkZGl0aW9uYWwgY2hlY2tzIGZyb20gV2ltJ3Mgc3RhdGUgY2hhbmdlIHBhdGNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IE1lcmdlIGluIHNvbWUgc3R5bGUgZml4ZXMgYW5kIGFkZGl0aW9uYWwKCSAgY2hlY2tzIGZyb20gV2ltJ3Mgc3RhdGUgY2hhbmdlIHBhdGNoLgoKMjAwNS0xMC0xMCAxMDo0MzoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IENoZWNrIHdoZXRoZXIgd2UgaGF2ZSB0aGUgcmVxdWVzdGVkIGRhdGEgYWxyZWFkeSBpbiBvdXIgbGlzdCBvZiBjYWNoZWQgYnVmZmVycyBiZWZvcmUgcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoaGVscGVyX2ZpbmRfcGVlayksCgkgIChnc3RfdHlwZV9maW5kX2hlbHBlcik6CgkgIENoZWNrIHdoZXRoZXIgd2UgaGF2ZSB0aGUgcmVxdWVzdGVkIGRhdGEgYWxyZWFkeSBpbiBvdXIgbGlzdCBvZgoJICBjYWNoZWQgYnVmZmVycyBiZWZvcmUgcHVsbGluZyBhIG5ldyBidWZmZXI7IGFsc28gbWFrZSB0aGUgYnVmZmVyCgkgIGxpc3QgYSBHU0xpc3QuIFNwZWVkcyB1cCB0eXBlZmluZGluZyBieSBjYS4gNS0xMCUgYWx0b2dldGhlci4KCjIwMDUtMTAtMTAgMDk6NDg6MjEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogZG9jIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZG9jIHVwZGF0ZXMKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9pbnRfaGVscGVyKToKCSAgZG9uJ3QgdXNlIGxvbmcgbG9uZywgaXQncyBub3QgcG9ydGFibGUuICBSZXBsYWNpbmcgd2l0aAoJICBnaW50NjQgc2VlbXMgdG8gd29yazsgbGV0J3MgaG9wZSBubyBza2VsZXRvbnMgZmFsbCBvdXQgb2YgdGhlIGNsb3NldC4KCjIwMDUtMTAtMTAgMDg6NTE6NTkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGF1dG9nZW4uc2ggKENPTkZJR1VSRV9ERUZfT1BUKTogTm8gbW9yZSAtLXBsdWdpbi1idWlkZGlyLCB5YXkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogYXV0b2dlbi5zaCAoQ09ORklHVVJFX0RFRl9PUFQpOiBObyBtb3JlIC0tcGx1Z2luLWJ1aWRkaXIsIHlheQoKMjAwNS0xMC0wOSAyMDo0OTo0NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbW9yZSBkb2NzLCBmaXggY29tcGlsYXRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX3BhcnNlX3N0YXRlX2NoYW5nZWQpOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIG1vcmUgZG9jcywgZml4IGNvbXBpbGF0aW9uCgoyMDA1LTEwLTA5IDIwOjE5OjQ4ICswMDAwICBQaGlsaXBwZSBLYWxhZiA8cGhpbGlwcGUua2FsYWZAY29sbGFib3JhLmNvLnVrPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuYzogRml4ZWQgYSBmZXcgZm9yZ290dGVuIHZhcmlhYmxlcyBvbiBwcmV2aW91cyBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMDkgIFBoaWxpcHBlIEtoYWxhZiA8YnVyZ2VyQHNwZWVkeS5vcmc+CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgRml4ZWQgYSBmZXcgZm9yZ290dGVuIHZhcmlhYmxlcyBvbiBwcmV2aW91cyBjb21taXQKCjIwMDUtMTAtMDkgMTc6NTk6MDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiBGaXggZXZpbCB0eXBlZmluZCBjcmFzaGVyOiBnZXRyYW5nZSgpIG1pZ2h0IHJldHVybiBhIHNob3J0IGJ1ZmZlciBhdCB0aGUgZW5kIG9mIGEgZmlsZSwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGhlbHBlcl9maW5kX3BlZWspOgoJICBGaXggZXZpbCB0eXBlZmluZCBjcmFzaGVyOiBnZXRyYW5nZSgpIG1pZ2h0IHJldHVybiBhIHNob3J0CgkgIGJ1ZmZlciBhdCB0aGUgZW5kIG9mIGEgZmlsZSwgYnV0IGdzdF90eXBlX2ZpbmRfcGVlaygpIG11c3QKCSAgZWl0aGVyIHJldHVybiB0aGUgZnVsbCBkYXRhIGFzIHJlcXVlc3RlZCBvciBOVUxMLCBidXQKCSAgbmV2ZXIgYSBzaG9ydCBidWZmZXIuCgoyMDA1LTEwLTA5IDE3OjUzOjMzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RtZXNzYWdlLio6IGRvbid0IHVzZSBuZXcsIGl0J3MgYSBDKysga2V5d29yZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc3RhdGVfY2hhbmdlZCk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgZG9uJ3QgdXNlIG5ldywgaXQncyBhIEMrKyBrZXl3b3JkCgoyMDA1LTEwLTA5IDE3OjIyOjMzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIG9uY2UgaXMgZW5vdWdoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBvbmNlIGlzIGVub3VnaAoKMjAwNS0xMC0wOCAxODoyMToyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFNtYWxsIGRvY3MgYW5kIGRlYnVnIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGlzX2VvcyksICh1cGRhdGVfZGVncmVlKSwgKGdzdF9iaW5fcXVlcnkpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6CgkgIFNtYWxsIGRvY3MgYW5kIGRlYnVnIHVwZGF0ZXMuCgoyMDA1LTEwLTA4IDE4OjA3OjIwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBtb3JlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBtb3JlIGRvY3MKCjIwMDUtMTAtMDggMTg6MDE6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEZpeCB0eXBvcywgYWRkIGNvbW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChpc19lb3MpLCAodXBkYXRlX2RlZ3JlZSksIChnc3RfYmluX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfYmluX2Rpc3Bvc2UpLCAoYmluX2J1c19oYW5kbGVyKToKCSAgRml4IHR5cG9zLCBhZGQgY29tbWVudHMuCgkgIENsZWFyIEVPUyBsaXN0IHdoZW4gZ29pbmcgdG8gUEFVU0VEIGZyb20gYW55IGRpcmVjdGlvbiBhbmQgZG8gaXQKCSAgaW4gYSB0aHJlYWRzYWZlIHdheS4KCSAgR2V0IGJhc2UgdGltZSBpbiBhIHRocmVhZHNhZmUgd2F5IHRvby4KCSAgRml4IGNvbmZ1c2luZyBkZWJ1ZyBpbiB0aGUgY2hhbmdlX3N0YXRlIGZ1bmN0aW9uLgoJICBWYXJpb3VzIG90aGVyIG1hbGwgY2xlYW51cHMuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZSk6CgkgIEZpeCB2ZXJ5IHZlcmJvc2UgYnVzIHBvc3RpbmcgY29kZS4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jbGFzc19pbml0KSwKCSAgKGdzdF9waXBlbGluZV9zZXRfcHJvcGVydHkpLCAoZ3N0X3BpcGVsaW5lX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKToKCSAgU21hbGwgQVJHXyAtPiBQUk9QXyBjbGVhbnVwCgoyMDA1LTEwLTA4IDE3OjMwOjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBEbyBhIGxlc3MgQ1BVIGRlbWFuZGluZyBFT1MgY2hlY2sgYmVjYXVzZSB3ZSBjYW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGlzX2VvcyksIChiaW5fYnVzX2hhbmRsZXIpOgoJICBEbyBhIGxlc3MgQ1BVIGRlbWFuZGluZyBFT1MgY2hlY2sgYmVjYXVzZSB3ZSBjYW4uCgoyMDA1LTEwLTA4IDE3OjE3OjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sLzogSXQncyBhYm91dCB0aW1lIHdlIGJ1bXAgdGhlIHZlcnNpb24gbnVtYmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIChnc3RfZHBfaGVhZGVyX2Zyb21fYnVmZmVyKSwgKGdzdF9kcF9wYWNrZXRfZnJvbV9jYXBzKSwKCSAgKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudCk6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kcC1wcml2YXRlLmg6CgkgIEl0J3MgYWJvdXQgdGltZSB3ZSBidW1wIHRoZSB2ZXJzaW9uIG51bWJlci4KCSAgU2luY2UgZXZlbnQgdHlwZXMgZG9uJ3QgZml0IGluIHRoZSBndWludDggYW55bW9yZSBkZXNjcmliaW5nCgkgIHRoZSBwYXlsb2FkIHR5cGUsIG1ha2UgcGF5bG9hZCB0eXBlIDE2IGJpdHMgd2lkZS4KCjIwMDUtMTAtMDggMTY6NDk6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IE1hbnkgZG9jIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJpbi50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RlbGVtZW50LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdHBpcGVsaW5lLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWxpdmUtc291cmNlLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgIE1hbnkgZG9jIHVwZGF0ZXMuCgoyMDA1LTEwLTA4IDE2OjEzOjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGV2ZW50Lio6IEZpeCBldmVudCBxdWFyayByZWdpc3RyYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBGaXggZXZlbnQgcXVhcmsgcmVnaXN0cmF0aW9uLgoJICBBZGQgc29tZSBzcGFjZSBiZXR3ZWVuIGV2ZW50cyBzbyB3ZSBjYW4gaW5zZXJ0IHRoZW0gaW4gdGhlCgkgIHJpZ2h0IGdyb3Vwcy4KCjIwMDUtMTAtMDggMTQ6NTc6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBCZXR0ZXIgbG9nIG1lc3NhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfYnVmZmVyKToKCSAgQmV0dGVyIGxvZyBtZXNzYWdlLgoJICAqIGdzdC9nc3RidXMuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBNb3JlIGRvY3MuCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfY2xhc3NfaW5pdCksIChnc3RfcXVldWVfaW5pdCksCgkgIChnc3RfcXVldWVfc2V0X3Byb3BlcnR5KSwgKGdzdF9xdWV1ZV9nZXRfcHJvcGVydHkpOgoJICAqIGdzdC9nc3RxdWV1ZS5oOgoJICBSZW1vdmUgb2xkIHVudXNlZCBwcm9wZXJ0aWVzLgoKMjAwNS0xMC0wOCAxNDo0ODoxNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbG90cyBvZiBuZXcgZG9jcyBhbmQgZG9jIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBsb3RzIG9mIG5ldyBkb2NzIGFuZCBkb2MgZml4ZXMKCjIwMDUtMTAtMDggMTQ6NDE6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIGZpeCBhIGxlYWsgSSBpbnRyb2R1Y2VkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggYSBsZWFrIEkgaW50cm9kdWNlZAoKMjAwNS0xMC0wOCAxMzo1NzoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiBPbmx5IGV2ZXIgbG9hZCBvbmUgcGx1Z2luIGZvciBhIGdpdmVuIHBsdWdpbiBiYXNlbmFtZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9maW5hbGl6ZSksIChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2xvb2t1cF9sb2NrZWQpLAoJICAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChsb2FkX3BsdWdpbik6CgkgIE9ubHkgZXZlciBsb2FkIG9uZSBwbHVnaW4gZm9yIGEgZ2l2ZW4gcGx1Z2luIGJhc2VuYW1lLgoJICBUaGlzIGVuc3VyZXMgY29ycmVjdCBvdmVycmlkaW5nIG9mIEdTVF9QTFVHSU5fUEFUSCBvdmVyCgkgIEdTVF9QTFVHSU5fU1lTVEVNX1BBVEggYW5kIG9mIGhvbWUgZGlyIHBsdWdpbnMgb3ZlcgoJICBzeXN0ZW0gaW5zdGFsbGVkIHBsdWdpbnMuCgoyMDA1LTEwLTA4IDEzOjM5OjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUHJlcGFyZSBmb3IgZG9pbmcgUU9TLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9idWZmZXIpOgoJICBQcmVwYXJlIGZvciBkb2luZyBRT1MuCgoyMDA1LTEwLTA4IDEzOjEwOjM0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svOiBBbGxvdyBuZXcgY2xvY2sgbWVzc2FnZSB0b28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9waXBlbGluZXMvY2xlYW51cC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFsbG93IG5ldyBjbG9jayBtZXNzYWdlIHRvby4KCjIwMDUtMTAtMDggMTI6NTY6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0bWVzc2FnZS4qOiBBbHNvIGNhcnJ5IHRoZSBjbG9jayBpbiBxdWVzdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19lcnJvciksCgkgIChnc3RfbWVzc2FnZV9uZXdfd2FybmluZyksIChnc3RfbWVzc2FnZV9uZXdfdGFnKSwKCSAgKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKSwgKGdzdF9tZXNzYWdlX25ld19jbG9ja19wcm92aWRlKSwKCSAgKGdzdF9tZXNzYWdlX25ld19jbG9ja19sb3N0KSwgKGdzdF9tZXNzYWdlX25ld19uZXdfY2xvY2spLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfc3RhcnQpLCAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfZG9uZSksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zdGF0ZV9jaGFuZ2VkKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX2Nsb2NrX3Byb3ZpZGUpLCAoZ3N0X21lc3NhZ2VfcGFyc2VfY2xvY2tfbG9zdCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9uZXdfY2xvY2spOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEFsc28gY2FycnkgdGhlIGNsb2NrIGluIHF1ZXN0aW9uLgoKMjAwNS0xMC0wOCAxMjozNjozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RtZXNzYWdlLio6IENsZWFuIHVwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X2N1c3RvbSksCgkgIChnc3RfbWVzc2FnZV9uZXdfZW9zKSwgKGdzdF9tZXNzYWdlX25ld19lcnJvciksCgkgIChnc3RfbWVzc2FnZV9uZXdfd2FybmluZyksIChnc3RfbWVzc2FnZV9uZXdfdGFnKSwKCSAgKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKSwgKGdzdF9tZXNzYWdlX25ld19jbG9ja19wcm92aWRlKSwKCSAgKGdzdF9tZXNzYWdlX25ld19uZXdfY2xvY2spLCAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfZG9uZSksIChnc3RfbWVzc2FnZV9wYXJzZV9zdGF0ZV9jaGFuZ2VkKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX2Nsb2NrX3Byb3ZpZGUpLCAoZ3N0X21lc3NhZ2VfcGFyc2VfbmV3X2Nsb2NrKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBDbGVhbiB1cC4KCSAgQWRkZWQgY2xvY2sgcmVsYXRlZCBtZXNzYWdlcy4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOgoJICBQb3N0IG1lc3NhZ2Ugd2hlbiB0aGUgY2xvY2sgY2hhbmdlZC4KCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgUHJpbnQgbmV3IGNsb2NrLgoKMjAwNS0xMC0wOCAxMToxNjowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IENhbid0IHBhc3MgTlVMTCBzdHJpbmdzIHRvIGdfcHJpbnQoKSBvbiB3aW5kb3dzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICBDYW4ndCBwYXNzIE5VTEwgc3RyaW5ncyB0byBnX3ByaW50KCkgb24gd2luZG93cy4KCjIwMDUtMTAtMDggMTE6MTI6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy86IGFkZCBhIGNoYXB0ZXIgb24gcnVubmluZyBHU3RyZWFtZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvTWFrZWZpbGUuYW06CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgKiBkb2NzL3ZlcnNpb24uZW50aXRpZXMuaW46CgkgIGFkZCBhIGNoYXB0ZXIgb24gcnVubmluZyBHU3RyZWFtZXIuCgkgIGRvY3VtZW50IEdTVF9ERUJVRyBhbmQgR1NUX1BMVUdJTiogZW52IHZhcnMKCjIwMDUtMTAtMDggMTE6MTA6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgTWFrZWZpbGUuYW06IHJlbW92ZSBpbmNsdWRlIGRpcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgcmVtb3ZlIGluY2x1ZGUgZGlyCgkgICogY29uZmlndXJlLmFjOgoJICByZW1vdmUgUExVR0lOU19CVUlMRERJUiBzdHVmZgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgIHJlb3JkZXIgcGFyc2luZyBvZiBHU1RfUExVR0lOX1BBVEggYW5kIEdTVF9QTFVHSU5fU1lTVEVNX1BBVEgKCSAgKiBpZGlvdHRlc3QubWFrOgoJICByZW1vdmUsIGl0IHdhcyBjb25kZXNjZW5kaW5nIGFuZCBub3QgbmVlZGVkCgoyMDA1LTEwLTA4IDA5OjU4OjMwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuKjogUmVwb3N0IEVPUyBtZXNzYWdlIHdoaWxlIGdvaW5nIHRvIFBMQVlJTkcgaWYgc3RpbGwgRU9TLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2ZsdXNoKSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3Npbmtfd2FpdCksIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgUmVwb3N0IEVPUyBtZXNzYWdlIHdoaWxlIGdvaW5nIHRvIFBMQVlJTkcgaWYgc3RpbGwgRU9TLgoJICBNYWtlIHN1cmUgdGhhdCB3aGVuIHJlY2VpdmluZyBhIEZMVVNIX1NUQVJUIHdlIGRvbid0IGF0dGVtcHQKCSAgdG8gc3luYyBvbiB0aGUgY2xvY2sgYW55bW9yZS4KCjIwMDUtMTAtMDggMDk6Mzg6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IEJldHRlciBtZXNzYWdlIHByaW50b3V0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgQmV0dGVyIG1lc3NhZ2UgcHJpbnRvdXQuCgoyMDA1LTEwLTA4IDA5OjI0OjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogTWFrZSBDaGlsZFByb3h5IHRocmVhZHNhZmUgYW5kIGZpeCBtZW0gbGVha3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2hpbGRfcHJveHlfZ2V0X2NoaWxkX2J5X2luZGV4KSwKCSAgKGdzdF9iaW5fY2hpbGRfcHJveHlfZ2V0X2NoaWxkcmVuX2NvdW50KToKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOiAoZ3N0X2NoaWxkX3Byb3h5X2dldF9jaGlsZF9ieV9uYW1lKSwKCSAgKGdzdF9jaGlsZF9wcm94eV9sb29rdXApLCAoZ3N0X2NoaWxkX3Byb3h5X2dldF9wcm9wZXJ0eSksCgkgIChnc3RfY2hpbGRfcHJveHlfZ2V0X3ZhbGlzdCksIChnc3RfY2hpbGRfcHJveHlfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9jaGlsZF9wcm94eV9zZXRfdmFsaXN0KToKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBNYWtlIENoaWxkUHJveHkgdGhyZWFkc2FmZSBhbmQgZml4IG1lbSBsZWFrcy4KCjIwMDUtMTAtMDggMDk6MDk6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdC5jOiBkZWJ1ZyB0aGUgR1NUX1BMVUdJTl8gZW52IHZhcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgZGVidWcgdGhlIEdTVF9QTFVHSU5fIGVudiB2YXJzCgoyMDA1LTEwLTA4IDA4OjU4OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkZWQgZXh0cmEgZmllbGQgdG8gU1RBVEVfQ0hBTkdFIG1lc3NhZ2Ugd2l0aCB0aGUgcGVuZGluZyBzdGF0ZSwgd2hpY2ggd2lsbCBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgbmV3IHN0YXRlIHNvb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0bWVzc2FnZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAobWVzc2FnZV9yZWNlaXZlZCk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc3RhdGVfY2hhbmdlZCk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgQWRkZWQgZXh0cmEgZmllbGQgdG8gU1RBVEVfQ0hBTkdFIG1lc3NhZ2Ugd2l0aCB0aGUgcGVuZGluZwoJICBzdGF0ZSwgd2hpY2ggd2lsbCBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgbmV3IHN0YXRlIHNvb24uCgoyMDA1LTEwLTA4IDA4OjAwOjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogU21hbGwgY2xlYW51cHMgYW5kIGRvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3BvcCk6CgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2FzeW5jX3RocmVhZCk6CgkgIFNtYWxsIGNsZWFudXBzIGFuZCBkb2MgdXBkYXRlcy4KCjIwMDUtMTAtMDggMDY6NDk6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogbG9nIGRpc3RyaWJ1dGluZyBjbG9ja3MgYW5kIGJhc2UgdGltZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3ByZSk6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyk6CgkgIGxvZyBkaXN0cmlidXRpbmcgY2xvY2tzIGFuZCBiYXNlIHRpbWUKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9hZGRfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpLCAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aCk6CgkgIGNsZWFuIHVwIHRoZSBkZWJ1Z2dpbmcgb3V0cHV0IGEgbGl0dGxlCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZSk6CgkgIHdhcm4gYWJvdXQgYSBtZW1sZWFrIChJJ3ZlIGFjdHVhbGx5IHNlZW4gdGhpcyBiZSB1c2VkLCB0aG91Z2gKCSAgaXQgd2FzIHByb2JhYmx5IGEgYnVnKQoKMjAwNS0xMC0wOCAwNjo0MjozMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBhZGQgdHdvIG5ldyBmdW5jdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCB0d28gbmV3IGZ1bmN0aW9ucwoKMjAwNS0xMC0wNyAxODoxNzoyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuKjogTWFrZSB0aGUgbmV3c2VnbWVudCBldmVudCBjdXN0b21pemFibGUgYnkgc3ViY2xhc3Nlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2luaXQpLCAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmV3c2VnbWVudCksCgkgIChnc3RfYmFzZV9zcmNfbmV3c2VnbWVudCksIChnc3RfYmFzZV9zcmNfZG9fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCksIChnc3RfYmFzZV9zcmNfc3RhcnQpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgTWFrZSB0aGUgbmV3c2VnbWVudCBldmVudCBjdXN0b21pemFibGUgYnkgc3ViY2xhc3Nlcy4KCjIwMDUtMTAtMDcgMTg6MDI6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuKjogTmV3IGV2ZW50IGZvciBmdXR1cmUgaWRlYS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X2J1ZmZlcnNpemUpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX2J1ZmZlcnNpemUpOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBOZXcgZXZlbnQgZm9yIGZ1dHVyZSBpZGVhLgoKMjAwNS0xMC0wNyAxNjoyODo1NiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlKTogRG9jIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMDcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlKTogRG9jIHVwZGF0ZS4KCjIwMDUtMTAtMDcgMTY6MTM6NTEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IFVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMDcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogVXBkYXRlLgoJICAqIGdzdC9nc3RtZXNzYWdlLmMgKGdzdF9tZXNzYWdlX25ld19hcHBsaWNhdGlvbik6IE1hZGUgaW50byBhCgkgIGZ1bmN0aW9uIGxpa2UgaG9uZXN0IEFQSSBjYWxscy4KCSAgKGdzdF9tZXNzYWdlX25ld19lbGVtZW50KTogTmV3IG1lc3NhZ2UgdHlwZS4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5oIChlbnVtKTogQWRkIEdTVF9NRVNTQUdFX0VMRU1FTlQgdHlwZS4KCjIwMDUtMTAtMDcgMTU6MjU6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgZmRzcmMgZG9lcyBub3QgYnVpbGQgY3VycmVudGx5IG9uIHdpbjMyIGR1ZSB0byBzb2NrZXRwYWlyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmZHNyYyBkb2VzIG5vdCBidWlsZCBjdXJyZW50bHkgb24gd2luMzIgZHVlIHRvIHNvY2tldHBhaXIKCjIwMDUtMTAtMDcgMTU6MjI6MzggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYyAodGVzdF9ub19wcmVyb2xsKTogTmV3IGNoZWNrLCBjaGVja3MgdGhhdCBzZXR0aW5nIGEgbGl2ZSBmYWtlc3JjIHRvIFBBVVNFRCByZXR1cm5zIE5PX1BSRVJPTC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0wNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9lbGVtZW50cy9mYWtlc3JjLmMgKHRlc3Rfbm9fcHJlcm9sbCk6IE5ldyBjaGVjaywgY2hlY2tzCgkgIHRoYXQgc2V0dGluZyBhIGxpdmUgZmFrZXNyYyB0byBQQVVTRUQgcmV0dXJucyBOT19QUkVST0xMIGJvdGgKCSAgdGltZXMuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKTogQWxsb3cgYQoJICBOT19QUkVST0xMIGZyb20gZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlIHRvIGZhbGwgdGhyb3VnaC4KCjIwMDUtMTAtMDcgMTU6MTM6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBkb24ndCB1c2UgaWYgbm90IGRlY2xhcmVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCB1c2UgaWYgbm90IGRlY2xhcmVkCgoyMDA1LTEwLTA3IDEyOjUyOjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IEFjdGl2YXRpbmcgYSBnaG9zdHBhZCB3aXRoIG5vIGludGVybmFsIHBhZCBpbiBwdXNoIG1vZGUgaXMgb2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X2dob3N0X3BhZF9nZXRfaW50ZXJuYWwpLAoJICAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdXNoKToKCSAgQWN0aXZhdGluZyBhIGdob3N0cGFkIHdpdGggbm8gaW50ZXJuYWwgcGFkIGluIHB1c2ggbW9kZQoJICBpcyBvay4KCjIwMDUtMTAtMDcgMTI6NDU6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdG9iamVjdC5oOiB0aGVyZSdzIG5vIHBvaW50IGluIHdyYXBwaW5nIEZMQUdfU0VUL19VTlNFVCBpbiBTVE1UIG1hY3Jvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICB0aGVyZSdzIG5vIHBvaW50IGluIHdyYXBwaW5nIEZMQUdfU0VUL19VTlNFVCBpbiBTVE1UIG1hY3Jvcy4KCSAgRml4ZXMgY29tcGlsYXRpb24gb24gV2luZG93cy4KCjIwMDUtMTAtMDcgMTA6MzI6MjQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBQcmludCBvdXQgZmVhdHVyZSBhbmQgcGx1Z2luIGNvdW50IGF0IHRoZSBlbmQgd2hlbiBwcmludGluZyBvdXQgYWxsIGZlYXR1cmVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUHJpbnQgb3V0IGZlYXR1cmUgYW5kIHBsdWdpbiBjb3VudCBhdCB0aGUgZW5kIHdoZW4gcHJpbnRpbmcgb3V0CgkgIGFsbCBmZWF0dXJlcy4KCSAgQWxzbyBhZGQgYSBjaGFuZ2Vsb2cgZW50cnkgd2hpY2ggSSdkIHdyaXR0ZW4gYnV0IG5vdCBjb21taXR0ZWQ/CgoyMDA1LTEwLTA3IDAwOjE0OjQ1ICswMDAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkgIEFkZCBhIEdUeXBlIHRvIEdzdEl0ZXJhdG9yLCB1cGRhdGUgY2FsbHNpdGVzIGFuZCB0ZXN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9pdGVyYXRlX2VsZW1lbnRzKSwKCSAgKGdzdF9iaW5faXRlcmF0ZV9yZWN1cnNlKSwgKGdzdF9iaW5faXRlcmF0ZV9zb3J0ZWQpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9pdGVyYXRlX3BhZHMpOgoJICAqIGdzdC9nc3Rmb3JtYXQuYzogKGdzdF9mb3JtYXRfaXRlcmF0ZV9kZWZpbml0aW9ucyk6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6IChnc3RfaXRlcmF0b3JfaW5pdCksIChnc3RfaXRlcmF0b3JfbmV3KSwKCSAgKGdzdF9pdGVyYXRvcl9uZXdfbGlzdCksIChnc3RfaXRlcmF0b3JfZmlsdGVyKToKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV90eXBlX2l0ZXJhdGVfZGVmaW5pdGlvbnMpOgoJICBBZGQgYSBHVHlwZSB0byBHc3RJdGVyYXRvciwgdXBkYXRlIGNhbGxzaXRlcyBhbmQgdGVzdHMuCgoyMDA1LTEwLTA2IDIxOjA5OjExICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgZG9oLiAgdXNlIGNvcnJlY3QgdmFyaWFibGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvaC4gIHVzZSBjb3JyZWN0IHZhcmlhYmxlCgoyMDA1LTEwLTA2IDE3OjAwOjUwICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgdmVyc2lvbiBnc3RyZWFtZXItdG9vbHMgcGFja2FnZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdmVyc2lvbiBnc3RyZWFtZXItdG9vbHMgcGFja2FnZQoKMjAwNS0xMC0wNiAxNDoyMDoxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgaW5pdGlhbGl6ZSBxdWFya3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGluaXRpYWxpemUgcXVhcmtzCgoyMDA1LTEwLTA2IDE0OjAxOjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RwYWQuYzogZ2l2ZSBldmVudHMgYSBjaGFuY2UgdG8gYmUgaGFuZGxlZCBieSBldmVudCBwcm9iZXMgd2hlbiB0aGUgcGFkIGlzIG5vdCBsaW5rZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9ldmVudF9kZWZhdWx0X2Rpc3BhdGNoKToKCSAgZ2l2ZSBldmVudHMgYSBjaGFuY2UgdG8gYmUgaGFuZGxlZCBieSBldmVudCBwcm9iZXMgd2hlbiB0aGUgcGFkCgkgIGlzIG5vdCBsaW5rZWQKCjIwMDUtMTAtMDYgMTM6NTU6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGV2ZW50Lio6IGFkZCBzdHJpbmcgcmVwcmVzZW50YXRpb25zIGZvciBldmVudCB0eXBlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF90eXBlX2dldF9uYW1lKSwKCSAgKGdzdF9ldmVudF90eXBlX3RvX3F1YXJrKSwgKGdzdF9ldmVudF9maW5hbGl6ZSksIChnc3RfZXZlbnRfbmV3KToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgYWRkIHN0cmluZyByZXByZXNlbnRhdGlvbnMgZm9yIGV2ZW50IHR5cGVzCgoyMDA1LTEwLTA2IDEzOjQyOjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RldmVudC5oOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA1LTEwLTA2IDEzOjI0OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IERvbid0IHVzZSBOVUxMIHBvaW50ZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfY2xvc2VfZmlsZSk6CgkgIERvbid0IHVzZSBOVUxMIHBvaW50ZXJzLgoKMjAwNS0xMC0wNiAwOTo0OTo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiB3aWRlbiB0aGUgZGVidWcgY2F0ZWdvcnkgaW4gb3V0cHV0IHRvIGZpdCB0aGUgYmlnZ2VzdCBvbmUgd2UgaGF2ZSBhZGQgYSBidXMgY2F0ZWdvcnkgYW5kIHVzZSBpdCBwbGF5IHdpdGggdGhlIGMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICB3aWRlbiB0aGUgZGVidWcgY2F0ZWdvcnkgaW4gb3V0cHV0IHRvIGZpdCB0aGUgYmlnZ2VzdCBvbmUgd2UgaGF2ZQoJICBhZGQgYSBidXMgY2F0ZWdvcnkgYW5kIHVzZSBpdAoJICBwbGF5IHdpdGggdGhlIGNvbG9ycwoJICBmaXggdXAgc29tZSBjYXRlZ29yaWVzCgoyMDA1LTEwLTA2IDA3OjQyOjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGZpcnN0IHN0YWIgYXQgcmVvcmdhbml6aW5nIGRvY3MgZm9yIHBhZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlyc3Qgc3RhYiBhdCByZW9yZ2FuaXppbmcgZG9jcyBmb3IgcGFkCgoyMDA1LTEwLTA2IDA3OjEzOjAxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBhZGQgcHVzaCBhY3RpdmF0aW9uIG9mIHNpbmsgZ2hvc3QgcGFkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMDYgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgIDx0aG9tYXMgYXQgYXBlc3RhYXJ0IGRvdCBvcmc+CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfZ2hvc3RfcGFkX2ludGVybmFsX2RvX2FjdGl2YXRlX3B1c2gpOgoJICBhZGQgcHVzaCBhY3RpdmF0aW9uIG9mIHNpbmsgZ2hvc3QgcGFkcy4KCSAgQW5keWUsIHBsZWFzZSB2ZXJpZnkKCjIwMDUtMTAtMDUgMjI6MzU6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJICBkb2MgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jIHVwZGF0ZXMKCjIwMDUtMTAtMDUgMjE6MzQ6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IGZpeCBhIGJ1ZyBpbiB0aGUgY2FzZSB3aGVyZSBuZWl0aGVyIGVsZW1lbnQgaGFzIGEgcGFkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfbGlua19wYWRzKToKCSAgZml4IGEgYnVnIGluIHRoZSBjYXNlIHdoZXJlIG5laXRoZXIgZWxlbWVudCBoYXMgYSBwYWQKCSAgKiBjaGVjay9nc3QvZ3N0ZWxlbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2VsZW1lbnRfc3VpdGUpOgoJICBhZGQgYSB0ZXN0IGZvciB0aGF0IGNhc2UKCjIwMDUtMTAtMDUgMTc6MDE6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHVucmVmIG91ciB0ZXN0IGJ1ZmZlcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVucmVmIG91ciB0ZXN0IGJ1ZmZlcnMKCjIwMDUtMTAtMDUgMTY6MTY6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHBhZC5jOiBlbWl0IGhhdmUtZGF0YSBiZWZvcmUgY2hlY2tpbmcgZm9yIHBlZXJzLiAgVGhpcyBhbGxvd3MgZm9yIHByb2JlIGhhbmRsZXJzIHRvIGNvbm5lY3QgZWxlbWVudHMuICBUaGlzIGhlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfcHVzaCksIChnc3RfcGFkX3B1c2hfZXZlbnQpOgoJICBlbWl0IGhhdmUtZGF0YSBiZWZvcmUgY2hlY2tpbmcgZm9yIHBlZXJzLiAgVGhpcyBhbGxvd3MKCSAgZm9yIHByb2JlIGhhbmRsZXJzIHRvIGNvbm5lY3QgZWxlbWVudHMuICBUaGlzIGhlbHBzIGF1dG9wbHVnZ2Vycy4KCSAgKiBjaGVjay9nc3QvZ3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCksIChfcHJvYmVfaGFuZGxlciksCgkgIChnc3RfcGFkX3N1aXRlKToKCSAgYWRkIHNpeCBjaGVja3MsIGxpbmtlZC91bmxpbmtlZCB3aXRoIG5vL3RydWUvZmFsc2UgcHJvYmUKCjIwMDUtMTAtMDUgMTE6NTA6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBpbmRlbnQgaWZkZWZzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpbmRlbnQgaWZkZWZzCgoyMDA1LTEwLTA0IDE4OjQ2OjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2VsZW1lbnRzLzogUHJvdGVjdCBsYXN0X21lc3NhZ2Ugd2l0aCBsb2NrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9mYWtlX3NpbmtfZXZlbnQpLCAoZ3N0X2Zha2Vfc2lua19wcmVyb2xsKSwKCSAgKGdzdF9mYWtlX3NpbmtfcmVuZGVyKSwgKGdzdF9mYWtlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2V2ZW50X2hhbmRsZXIpLAoJICAoZ3N0X2Zha2Vfc3JjX2dldF9wcm9wZXJ0eSksIChnc3RfZmFrZV9zcmNfY3JlYXRlKSwKCSAgKGdzdF9mYWtlX3NyY19zdG9wKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9zdG9wKToKCSAgUHJvdGVjdCBsYXN0X21lc3NhZ2Ugd2l0aCBsb2NrLgoKMjAwNS0xMC0wNCAxNTowNDo1MCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3Rmb3JtYXQuaDogQWRkZWQgcHJlY2lzaW9uIGluIHRoZSBjb21tZW50cyBmb3IgR1NUX0ZPUk1BVF9ERUZBVUxUCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3Rmb3JtYXQuaDoKCSAgQWRkZWQgcHJlY2lzaW9uIGluIHRoZSBjb21tZW50cyBmb3IgR1NUX0ZPUk1BVF9ERUZBVUxUCgoyMDA1LTEwLTA0IDEzOjE5OjQ3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgdXBkYXRlIHVuaW5zdGFsbGVkIHNjcmlwdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHVuaW5zdGFsbGVkIHNjcmlwdAoKMjAwNS0xMC0wNCAxMjowMjozNCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHJlbW92ZSBzb21lIGZpbGVzIHRoYXQgYXJlIG5vIGxvbmdlciB0aGVyZSBmcm9tIHNwZWMgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHNvbWUgZmlsZXMgdGhhdCBhcmUgbm8gbG9uZ2VyIHRoZXJlIGZyb20gc3BlYyBmaWxlCgoyMDA1LTEwLTA0IDExOjUxOjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBEb24ndCB0cnkgdG8gcnVuIGVycm9uZW91cyBwaXBlbGluZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICBEb24ndCB0cnkgdG8gcnVuIGVycm9uZW91cyBwaXBlbGluZXMuCgoyMDA1LTEwLTA0IDExOjEwOjA0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0ZXJyb3IuYzogQWRkIGFub3RoZXIgZXJyb3Igc3RyaW5nIHVzZWQgaW4gYSBmZXcgZXhpc3RpbmcgcGx1Z2lucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVycm9yLmM6IChfZ3N0X3N0cmVhbV9lcnJvcnNfaW5pdCk6CgkgIEFkZCBhbm90aGVyIGVycm9yIHN0cmluZyB1c2VkIGluIGEgZmV3IGV4aXN0aW5nIHBsdWdpbnMuCgkgICogZ3N0L2dzdHBsdWdpbi5jOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IChnc3RfcGx1Z2luX2ZlYXR1cmVfbG9hZCk6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfaW5mbyk6CgkgIFdoZW4gYSBmZWF0dXJlIGRpc2FwcGVhcnMgZnJvbSBhIHBsdWdpbiAoYW5kIHRoZSBmZWF0dXJlIGV4aXN0cyBpbgoJICB0aGUgY2FjaGVkIHJlZ2lzdHJ5IGZpbGUpLCB0aGluZ3Mgd2VudCBob3JyaWJseSB3cm9uZy4gVGhpcyBpc24ndCBhCgkgIGNvbXBsZXRlIGZpeCwgd2Ugc2hvdWxkIGFjdHVhbGx5IGJlIHJlbW92aW5nIHRoZSAnbWlzc2luZycgZmVhdHVyZXMKCSAgZnJvbSB0aGUgZmVhdHVyZXMgbGlzdCB3aGVuIHdlIGxvYWQgdGhlIGFjdHVhbCBwbHVnaW4uIFRoYXQncyBub3QKCSAgeWV0IGltcGxlbWVudGVkLgoKMjAwNS0xMC0wNCAxMTowOTo0MSArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0YnVzLmM6IFdlIGRvbid0IG5lZWQgdGhpcyBoZWFkZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTA0ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2dzdGJ1cy5jOiBXZSBkb24ndCBuZWVkIHRoaXMgaGVhZGVyLgoKMjAwNS0xMC0wMyAxNzo1NzozMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBoZWFkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIGhlYWQKCj09PSByZWxlYXNlIDAuOS4zID09PQoKMjAwNS0xMC0wMyAxNzo0NzoyMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFQURNRToKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIHJlbGVhc2UgdGltZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzZSB0aW1lCgoyMDA1LTEwLTAyIDIzOjI0OjI1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfYWN0aXZhdGVfcHVzaCk6IFRoZXJlIGlzIGEgcmFjZSBjb25kaXRpb24gd2hlcmVieSBjYWxsaW5nIGEgcGFkJ3MgYWN0aXZhdGVwdXNoKCkgZnVuY3Rpb24gY2FuIHMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMDMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2FjdGl2YXRlX3B1c2gpOiBUaGVyZSBpcyBhIHJhY2UgY29uZGl0aW9uCgkgIHdoZXJlYnkgY2FsbGluZyBhIHBhZCdzIGFjdGl2YXRlcHVzaCgpIGZ1bmN0aW9uIGNhbiBzdGFydCBhIHRocmVhZAoJICB0aGF0IHN0YXJ0cyB0byBwdXNoIG9yIHB1bGwgYmVmb3JlIHRoZSBwYWQgZ2V0cyB0aGUgRkxVU0hJTkcgZmxhZwoJICB1bnNldC4gSGFjayBhcm91bmQgaXQgYnkgaG9sZGluZyB0aGUgc3RyZWFtIGxvY2sgdW50aWwgdGhlIGZsYWcgaXMKCSAgc2V0LiBOZWVkIHRvIHJlcGxhY2UgdGhpcyB3aXRoIGEgcHJvcGVyIHNvbHV0aW9uLiBUb2dldGhlciB3aXRoCgkgIHRoZSBnaG9zdCBwYWQgZml4ZXMsIHRoaXMgZml4ZXMgbXAzIHBsYXlpbmcvdGFncmVhZGluZy4KCjIwMDUtMTAtMDIgMjM6MjE6MDQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgY2hhbmdlbG9nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjaGFuZ2Vsb2cKCjIwMDUtMTAtMDIgMjM6MjA6MjYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OiBBZGQgYSBub3RlIGFib3V0IGFjdGl2YXRpb24gb2YgcHJveHkgcGFkcyBvdXRzaWRlIG9mIGdob3N0IHBhZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTAzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OiBBZGQgYSBub3RlIGFib3V0IGFjdGl2YXRpb24gb2YKCSAgcHJveHkgcGFkcyBvdXRzaWRlIG9mIGdob3N0IHBhZHMuCgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IEltcGxlbWVudCB0aGUgZ2hvc3QgcGFkIGFjdGl2YXRpb24gZGVzaWduLgoKMjAwNS0xMC0wMiAxODo1NzowNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdG9iamVjdC5oIChHU1RfT0JKRUNUX1JFRkNPVU5UX1ZBTFVFKTogSnVzdCB1c2UgdGhlIGludC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMDIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdG9iamVjdC5oIChHU1RfT0JKRUNUX1JFRkNPVU5UX1ZBTFVFKTogSnVzdCB1c2UgdGhlIGludC4KCSAgSXQgaXMgdm9sYXRpbGUsIGFmdGVyIGFsbC4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDogRmxlc2ggb3V0IGFjdGl2YXRpb24gd2l0aAoJICBnaG9zdCBwYWRzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX2luaXQpOiBVc2UKCSAgR1NUX0RFQlVHX0ZVTkNQVFIuCgoyMDA1LTEwLTAyIDE4OjMwOjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY29uZmlndXJlLmFjOiBGaXggKHVudXNlZCkgQU1fQ09ORElUSU9OQUwgdGVzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRml4ICh1bnVzZWQpIEFNX0NPTkRJVElPTkFMIHRlc3RzLgoKMjAwNS0xMC0wMSAxNzoxMTowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R1dGlscy5jOiBBZGQgYXNzZXJ0aW9uIHRoYXQgbWFrZXMgc3VyZSBzcmNfdmFsIGlzID49MCwganVzdCBsaWtlIGdzdF9xdWVyeV9uZXdfY29udmVydCgpIGhhcy4gKCMzMTU4OTUpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZpZXdlZCBieTogVGltLVBoaWxpcHAgTcO8bGxlciAgPHRpbSBhdCBjZW50cmljdWxhciBkb3QgbmV0PgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhZF9xdWVyeV9jb252ZXJ0KToKCSAgQWRkIGFzc2VydGlvbiB0aGF0IG1ha2VzIHN1cmUgc3JjX3ZhbCBpcyA+PTAsIGp1c3QgbGlrZQoJICBnc3RfcXVlcnlfbmV3X2NvbnZlcnQoKSBoYXMuICgjMzE1ODk1KQoKMjAwNS0wOS0zMCAxNTo0MzowMyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzogTGV0J3Mgbm90IGl0ZXJhdGUgcGFkcyB3ZSdyZSBub3QgaW50ZXJlc3RlZCBpbiwgaXQgYXZvaWRzIGdldHRpbmcgc2t5LWhpZ2ggcmVmY291bnRzIG9uIHNpbmtwYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfZG9fcHVzaCksIChnc3RfdGVlX2hhbmRsZV9idWZmZXIpOgoJICBMZXQncyBub3QgaXRlcmF0ZSBwYWRzIHdlJ3JlIG5vdCBpbnRlcmVzdGVkIGluLCBpdCBhdm9pZHMgZ2V0dGluZwoJICBza3ktaGlnaCByZWZjb3VudHMgb24gc2lua3BhZC4KCjIwMDUtMDktMzAgMDg6Mjk6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBTbWFsbCB0d2VhaywgZWxlbWVudCBpbiBBU1lOQyByZW1haW5zIEFTWU5DLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgIFNtYWxsIHR3ZWFrLCBlbGVtZW50IGluIEFTWU5DIHJlbWFpbnMgQVNZTkMuCgoyMDA1LTA5LTMwIDA4OjAwOjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogT25seSBlcnJvciBpcyBhbiBlcnJvci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgT25seSBlcnJvciBpcyBhbiBlcnJvci4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgIEJldHRlciBkZWJ1Z2dpbmcuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hbGxvY19idWZmZXIpLCAoZ3N0X3BhZF9jaGFpbik6CgkgIEFsc28gY2FsbCBwYWRfYmxvY2sgaW4gcGFkIGFsbG9jLgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2Zsb3dfZ2V0X25hbWUpOgoJICBCZXR0ZXIgZGVidWdnaW5nLgoKMjAwNS0wOS0yOSAyMDoyNjoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogRml4IGRvY3VtZW50YXRpb24gdHlwb3MuIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSk6CgkgIEZpeCBkb2N1bWVudGF0aW9uIHR5cG9zLiBBZGQgc29tZSBtb3JlIGRlYnVnIGluZm8uCgoyMDA1LTA5LTI5IDIwOjE2OjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgZGlzYWJsZSByZWZjb3VudCBjaGVja3MgdW50aWwgd2UgdHJhY2sgdGhlIGRhbmdsaW5nIHJlZgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGlzYWJsZSByZWZjb3VudCBjaGVja3MgdW50aWwgd2UgdHJhY2sgdGhlIGRhbmdsaW5nIHJlZgoKMjAwNS0wOS0yOSAxOTo0NToyNyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IE1ha2Ugc29tZSBlcnJvciBtZXNzYWdlcyBtb3JlIGVuZC11c2VyIGZyaWVuZGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6IE1ha2Ugc29tZSBlcnJvciBtZXNzYWdlcwoJICBtb3JlIGVuZC11c2VyIGZyaWVuZGx5LgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChtYWluKTogQ2hlY2sgaWYgY29tbWFuZC1saW5lIGFyZ3VtZW50IGlzCgkgIGEgZmlsZSBhbmQgYXR0ZW1wdCB0byBsb2FkIHRoYXQgZmlsZSBhcyBhIHBsdWdpbi4KCjIwMDUtMDktMjkgMTg6Mzc6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svOiBmaXggdGVzdHMgZm9yIHRoZSBuZXcgd2FybmluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6CgkgICogY2hlY2svc3RhdGVzL3NpbmtzLmM6CgkgIGZpeCB0ZXN0cyBmb3IgdGhlIG5ldyB3YXJuaW5nCgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGFkZCBhIHRlc3QgZm9yIHBpcGVsaW5lIGFuZCBidXMgaW50ZXJhY3Rpb24KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50cyBzaG91bGQgYmUgTlVMTCBpZiB0aGV5IGdldCBkaXNwb3NlZDsgYWRkIGEgd2FybmluZyBpZiBub3QKCjIwMDUtMDktMjkgMTg6MzU6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdG9iamVjdC5jOiBmb3IgMi42IHJlZmNvdW50aW5nLCBtYWtlIGRlYnVnIGxvZyBtb3JlIGNvcnJlY3QgYnkgcHJpbnRpbmcgdGhlIGFjdHVhbCByZWZjb3VudHMgYXQgdGhlIHRpbWUgb2Ygc3dhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RvYmplY3QuYzoKCSAgZm9yIDIuNiByZWZjb3VudGluZywgbWFrZSBkZWJ1ZyBsb2cgbW9yZSBjb3JyZWN0IGJ5IHByaW50aW5nCgkgIHRoZSBhY3R1YWwgcmVmY291bnRzIGF0IHRoZSB0aW1lIG9mIHN3YXAgKFdpbSkKCjIwMDUtMDktMjkgMTg6MjU6NTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgdXNlIG1lc3NhZ2UgdHlwZSBuYW1lcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXNlIG1lc3NhZ2UgdHlwZSBuYW1lcwoKMjAwNS0wOS0yOSAxNjowNjoxOCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJICBjaGFuZ2Vsb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNoYW5nZWxvZwoKMjAwNS0wOS0yOSAxNjowNDozMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGJ1cy5jIChnc3RfYnVzX3JlbW92ZV9zaWduYWxfd2F0Y2gpOiBOZXcgZnVuY3Rpb24sIHJlbW92ZXMgc2lnbmFsIHdhdGNoZXMgcHJldmlvdXNseSBhZGRlZCB2aWEgZ3N0X2J1c19hZGRfc2lnLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTI5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RidXMuYyAoZ3N0X2J1c19yZW1vdmVfc2lnbmFsX3dhdGNoKTogTmV3IGZ1bmN0aW9uLAoJICByZW1vdmVzIHNpZ25hbCB3YXRjaGVzIHByZXZpb3VzbHkgYWRkZWQgdmlhCgkgIGdzdF9idXNfYWRkX3NpZ25hbF93YXRjaC4KCSAgKGdzdF9idXNfYWRkX3NpZ25hbF93YXRjaCk6IERvbid0IHJldHVybiB0aGUgc291cmNlIGlkLCBqdXN0IHN0b3JlCgkgIGl0IG9uIHRoZSBidXMgaWYgdGhlcmUgd2Fzbid0IGFuIGlkIGFscmVhZHkuCgkgICogZ3N0L2dzdGJ1cy5oIChHc3RCdXMpOiBBZGQgYSBjb3VwbGUgbmV3IGZpZWxkcy4gQVBJIGNoYW5nZXMgZm9yCgkgIGFkZF9zaWduYWxfd2F0Y2ggYW5kIHJlbW92ZV9zaWduYWxfd2F0Y2guCgoyMDA1LTA5LTI5IDE1OjM5OjIyICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IEJldHRlciBpZiB3ZSBhY3R1YWxseSBpdGVyYXRlIHRoZSBsaXN0IDopCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfbmV3X2xpc3QpOgoJICBCZXR0ZXIgaWYgd2UgYWN0dWFsbHkgaXRlcmF0ZSB0aGUgbGlzdCA6KQoKMjAwNS0wOS0yOSAxMzowNzozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogQ2hhbmdlIGZvciBuZXcgYnVzIEFQSS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBDaGFuZ2UgZm9yIG5ldyBidXMgQVBJLgoJICAqIGNoZWNrL2dzdC9nc3RidXMuYzogKG1lc3NhZ2VfZnVuY19lb3MpLCAobWVzc2FnZV9mdW5jX2FwcCksCgkgIChzZW5kX21lc3NhZ2VzKSwgKEdTVF9TVEFSVF9URVNUKSwgKGdzdGJ1c19zdWl0ZSk6CgkgIENoYW5nZSBmb3IgbmV3IGJ1cyBzaWduYWwgQVBJLgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfY2xhc3NfaW5pdCksIChnc3RfYnVzX2hhdmVfcGVuZGluZyksCgkgIChnc3RfYnVzX3NvdXJjZV9wcmVwYXJlKSwgKGdzdF9idXNfc291cmNlX2NoZWNrKSwKCSAgKGdzdF9idXNfY3JlYXRlX3dhdGNoKSwgKGdzdF9idXNfYWRkX3dhdGNoX2Z1bGwpLAoJICAoZ3N0X2J1c19hZGRfd2F0Y2gpLCAoZ3N0X2J1c19wb2xsKSwgKGdzdF9idXNfYXN5bmNfc2lnbmFsX2Z1bmMpLAoJICAoZ3N0X2J1c19zeW5jX3NpZ25hbF9oYW5kbGVyKSwgKGdzdF9idXNfYWRkX3NpZ25hbF93YXRjaCk6CgkgICogZ3N0L2dzdGJ1cy5oOgoJICBSZW1vdmUgc3VwcG9ydCBmb3IgbXVsdGlwbGUgR1NvdXJjZXMgb3BlcmF0aW5nIG9uIGRpZmZlcmVudAoJICBtZXNzYWdlIHR5cGVzIGFzIGl0IGlzIHRvbyBjb21wbGV4IGFuZCB1bm5lZWRlZCB3aGVuIHVzaW5nCgkgIHNpZ25hbHMuCgkgIEFkZGVkIHN1cHBvcnQgZm9yIHJlY2VpdmluZyBzaWduYWxzIGZyb20gdGhlIGJ1cy4KCjIwMDUtMDktMjkgMTI6Mzc6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcmVuYW1lIGZpbHRlci1jYXBzIHRvIGNhcHMgcHJvcGVydHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgcmVuYW1lIGZpbHRlci1jYXBzIHRvIGNhcHMgcHJvcGVydHkKCjIwMDUtMDktMjkgMTI6MDU6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuYzogTW9yZSByb2J1c3QgZnJhY3Rpb24gc3RyaW5nIHBhcnNpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ZyYWN0aW9uKToKCSAgTW9yZSByb2J1c3QgZnJhY3Rpb24gc3RyaW5nIHBhcnNpbmcuCgkgICogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgIE1lbnRpb24gZ3N0X3BhZF91c2VfZXhwbGljaXRfY2FwcygpID0+IGdzdF9wYWRfdXNlX2ZpeGVkX2NhcHMoKQoKMjAwNS0wOS0yOSAxMDo1Njo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RjYXBzLmM6IFRob3Ugc2hhbHQgbm90IGZyZWUgYSBzdHJ1Y3R1cmUgYW5kIHRoZW4gY29udGludWUgdXNpbmcgaXQgaW4gdGhlIG5leHQgbG9vcCBpdGVyYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19kb19zaW1wbGlmeSk6CgkgIFRob3Ugc2hhbHQgbm90IGZyZWUgYSBzdHJ1Y3R1cmUgYW5kIHRoZW4gY29udGludWUgdXNpbmcgaXQKCSAgaW4gdGhlIG5leHQgbG9vcCBpdGVyYXRpb24uCgkgICogY2hlY2svZ3N0L2dzdGNhcHMuYzogKGNoZWNrX2ZvdXJjY19saXN0KSwgKHRlc3Rfc2ltcGxpZnkpLAoJICAoZ3N0X2NhcHNfc3VpdGUpOgoJICBBZGQgdGVzdCBjYXNlIGZvciBjYXBzIHNpbXBsaWZpY2F0aW9uLgoKMjAwNS0wOS0yOSAwOTo0NDozNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICByZW1vdmUgdHdvIHJlbW92ZWQgZnVuY3Rpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgdHdvIHJlbW92ZWQgZnVuY3Rpb25zCgoyMDA1LTA5LTI5IDA5OjQyOjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBPb3BzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIE9vcHMuCgoyMDA1LTA5LTI5IDA5OjM5OjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBBZGQgYnVzIHRvIGJpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgYnVzIHRvIGJpbi4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9pbml0KSwKCSAgKGFkZF90b19xdWV1ZSksIChjbGVhcl9xdWV1ZSksIChyZXNldF9kZWdyZWUpLCAodXBkYXRlX2RlZ3JlZSksCgkgIChmaW5kX2VsZW1lbnQpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25leHQpLAoJICAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX3Jlc3luYyksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfZnJlZSksCgkgIChnc3RfYmluX2l0ZXJhdGVfc29ydGVkKSwgKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X2Jpbl9kaXNwb3NlKToKCSAgQSBiaW4gZG9lcyBub3QgaGF2ZSBhIGJ1cywgaXQgZ2V0cyB0aGUgYnVzIGZyb20gdGhlIHBhcmVudC4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcmVxdWlyZXNfY2xvY2spLAoJICAoZ3N0X2VsZW1lbnRfcHJvdmlkZXNfY2xvY2spLCAoZ3N0X2VsZW1lbnRfaXNfaW5kZXhhYmxlKSwKCSAgKGdzdF9lbGVtZW50X2lzX2xvY2tlZF9zdGF0ZSksIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X2J1c19mdW5jKToKCSAgU21hbGwgY2xlYW51cHMuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCksCgkgIChnc3RfcGlwZWxpbmVfaW5pdCksIChnc3RfcGlwZWxpbmVfcHJvdmlkZV9jbG9ja19mdW5jKToKCSAgVGhlIHBpcGVsaW5lIHByb3ZpZGVzIGEgYnVzLgoKMjAwNS0wOS0yOSAwMjozMjozNyArMDAwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJICBnc3QvZ3N0bWVzc2FnZS5jIChnc3RfbWVzc2FnZV9wYXJzZV9zdGF0ZV9jaGFuZ2VkKTogVXNlIGdzdF9zdHJ1Y3R1cmVfZ2V0X2VudW0gaW5zdGVhZCBvZiBnc3Rfc3RydWN0dXJlX2dldF9pbnQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYyAoZ3N0X21lc3NhZ2VfcGFyc2Vfc3RhdGVfY2hhbmdlZCk6IFVzZQoJICBnc3Rfc3RydWN0dXJlX2dldF9lbnVtIGluc3RlYWQgb2YgZ3N0X3N0cnVjdHVyZV9nZXRfaW50CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jIChnc3Rfc3RydWN0dXJlX2dldF9lbnVtKTogSW1wbC4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmggKGdzdF9zdHJ1Y3R1cmVfZ2V0X2VudW0pOiBBZGQKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBEaXR0bwoKMjAwNS0wOS0yOSAwMTo1NzowMCArMDAwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJICBnc3QvZ3N0bWVzc2FnZS5jIChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCk6IFVzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jIChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCk6IFVzZQoJICBHU1RfVFlQRV9TVEFURSBpbnN0ZWFkIG9mIEdfVFlQRV9JTlQsIG1haW5seSBmb3IgbGFuZ3VhZ2UgYmluZGluZ3MKCSAgd2hpY2ggZG9lcyBpbnRyb3NwZWN0aW9uLgoJICBSZXZpZXdlZCBieSBDaHJpc3RpYW4gU2NoYWxsZXIKCjIwMDUtMDktMjggMTg6MTQ6MTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSAgZml4ZWQgdW1sYXV0cyBpbiBDaGFuZ2VMb2cgYWdhaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeGVkIHVtbGF1dHMgaW4gQ2hhbmdlTG9nIGFnYWluCgoyMDA1LTA5LTI4IDE3OjMwOjEzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0aW5mby5jOiBkb24ndCBkbyBkdW1teSBnX3N0cmR1cCgpcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOiAoZ3N0X2RlYnVnX2xvZ19kZWZhdWx0KToKCSAgZG9uJ3QgZG8gZHVtbXkgZ19zdHJkdXAoKXMKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKG9uX29iamVjdF9jb250cm9sbGVkX3Byb3BlcnR5X2NoYW5nZWQpLAoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfbmV3KSwgKGdzdF9jb250cm9sbGVyX25ld192YWxpc3QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfbmV3X2xpc3QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfcmVtb3ZlX3Byb3BlcnRpZXNfdmFsaXN0KSwgKGdzdF9jb250cm9sbGVyX3NldCksCgkgIChnc3RfY29udHJvbGxlcl9nZXQpLCAoZ3N0X2NvbnRyb2xsZXJfc3luY192YWx1ZXMpLAoJICAoZ3N0X2NvbnRyb2xsZXJfZ2V0X3ZhbHVlX2FycmF5KSwgKF9nc3RfY29udHJvbGxlcl9jbGFzc19pbml0KSwKCSAgKGdzdF9jb250cm9sbGVyX2dldF90eXBlKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X2ZpbmRfdGltZWRfdmFsdWVfbm9kZSk6CgkgIGNvbnZlcnQgLy8gdG8gLyoqLyBjb21tZW50cwoKMjAwNS0wOS0yOCAxNjo0MzoyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidXMuKjogQWRkZWQgYXN5bmMtbWVzc2FnZSBhbmQgc3luYy1tZXNzYWdlIHNpZ25hbHMgdG8gdGhlIGJ1cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAobWFyc2hhbF9WT0lEX19NSU5JT0JKRUNUKSwgKGdzdF9idXNfY2xhc3NfaW5pdCksCgkgIChnc3RfYnVzX3Bvc3QpLCAocG9sbF9mdW5jKSwgKGdzdF9idXNfYXN5bmNfc2lnbmFsX2Z1bmMpLAoJICAoZ3N0X2J1c19zeW5jX3NpZ25hbF9oYW5kbGVyKToKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgIEFkZGVkIGFzeW5jLW1lc3NhZ2UgYW5kIHN5bmMtbWVzc2FnZSBzaWduYWxzIHRvIHRoZSBidXMuCgkgIEFkZGVkIGhlbHBlciBCdXNGdW5jIHRvIGVtaXQgc2lnbmFscyBmb3IgYWxsIHBvc3RlZCBtZXNzYWdlcy4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfdHlwZV9nZXRfbmFtZSksCgkgIChnc3RfbWVzc2FnZV90eXBlX3RvX3F1YXJrKSwgKGdzdF9tZXNzYWdlX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBSZWdpc3RlciBxdWFya3MgZm9yIG1lc3NhZ2UgbmFtZXMuCgoyMDA1LTA5LTI4IDE2OjM5OjI5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBhZGRlZCBhbm90aGVyIGNvbnN0cnVjdG9yIGZvciBsYW5ndWFnZSBiaW5kaW5ncwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfbmV3X3ZhbGlzdCksCgkgIChnc3RfY29udHJvbGxlcl9uZXdfbGlzdCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgIGFkZGVkIGFub3RoZXIgY29uc3RydWN0b3IgZm9yIGxhbmd1YWdlIGJpbmRpbmdzCgoyMDA1LTA5LTI4IDE1OjQ1OjIxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiBhZGQgYW5vdGhlciBjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9waXBlbGluZV9zdWl0ZSk6CgkgIGFkZCBhbm90aGVyIGNoZWNrCgkgICogZ3N0L2dzdGJ1cy5jOgoJICBhZGQgc29tZSBkb2MKCSAgKiBnc3QvZ3N0aW5mby5jOiAoX2dzdF9kZWJ1Z19pbml0KToKCSAgc2xpZ2h0bHkgbW9yZSByZWFkYWJsZSBjb2xvciBmb3IgcmVmY291bnQgZGVidWdnaW5nCgoyMDA1LTA5LTI4IDEzOjQxOjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBTbWFsbCBkb2MgZml4ZXMuIGdldF9jbG9jayAtPiBwcm92aWRlX2Nsb2NrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9wcm92aWRlX2Nsb2NrX2Z1bmMpLAoJICAoYWRkX3RvX3F1ZXVlKSwgKGNsZWFyX3F1ZXVlKSwgKHJlc2V0X2RlZ3JlZSksICh1cGRhdGVfZGVncmVlKSwKCSAgKGZpbmRfZWxlbWVudCksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV4dCksCgkgIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfcmVzeW5jKSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9mcmVlKSwKCSAgKGdzdF9iaW5faXRlcmF0ZV9zb3J0ZWQpLCAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZSksIChnc3RfYmluX2Rpc3Bvc2UpOgoJICBTbWFsbCBkb2MgZml4ZXMuIGdldF9jbG9jayAtPiBwcm92aWRlX2Nsb2NrLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19pbml0KSwKCSAgKGdzdF9lbGVtZW50X3Byb3ZpZGVzX2Nsb2NrKSwgKGdzdF9lbGVtZW50X3Byb3ZpZGVfY2xvY2spLAoJICAoZ3N0X2VsZW1lbnRfZ2V0X2Nsb2NrKSwgKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBNYWtlIGdldC9zZXRfY2xvY2soKSBzeW1ldHJpYy4gQWRkIHByb3ZpZGVfY2xvY2sgdm1ldGhvZCBzaW5jZQoJICB0aGF0IGlzIGFjdHVhbGx5IHdoYXQgdGhpcyBmdW5jdGlvbiBkb2VzLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpLAoJICAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksIChnc3RfcGlwZWxpbmVfcHJvdmlkZV9jbG9ja19mdW5jKSwKCSAgKGdzdF9waXBlbGluZV9nZXRfY2xvY2spOgoJICBnZXRfY2xvY2sgLT4gcHJvdmlkZV9jbG9jay4KCjIwMDUtMDktMjggMTM6MDU6MTIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX3VubG9jayk6IENvbW1lbnQgYSBiaXQgaW4gbGlldSBvZiByZWFsIGRvY3MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMjggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfdW5sb2NrKTogQ29tbWVudCBhIGJpdCBpbgoJICBsaWV1IG9mIHJlYWwgZG9jcy4uLgoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOiBDbGVhbmVkIHVwIGEgYml0LgoKMjAwNS0wOS0yOCAxMjo1Mjo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9lbGVtZW50cy86IE1ha2UgZWxlbWVudCBkZXRhaWxzIHN0YXRpYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIE1ha2UgZWxlbWVudCBkZXRhaWxzIHN0YXRpYy4KCjIwMDUtMDktMjggMTE6MDM6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFNvbWUgZG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChhZGRfdG9fcXVldWUpLCAoY2xlYXJfcXVldWUpLCAocmVzZXRfb3V0ZGVncmVlKSwKCSAgKHVwZGF0ZV9vdXRkZWdyZWUpLCAoZmluZF9lbGVtZW50KSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9uZXh0KSwKCSAgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9yZXN5bmMpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX2ZyZWUpLAoJICAoZ3N0X2Jpbl9pdGVyYXRlX3NvcnRlZCksIChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKSwgKGdzdF9iaW5fZGlzcG9zZSk6CgkgIFNvbWUgZG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoJICBDbGVhbiB1cCBkaXNwb3NlIGhhbmRsZXJzLgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfcmVmKSwgKGdzdF9vYmplY3RfdW5yZWYpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZGlzcG9zZSk6CgkgIENsZWFuIHVwIGRpc3Bvc2UgaGFuZGxlci4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOgoJICBSZW1vdmVkIHNwdXJpb3VzIFVOTE9DSy4KCjIwMDUtMDktMjcgMjA6NDA6MzUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGFkZGVkIHR3byBuZXcgZnVuY3Rpb25zIHRvIHRoZSBkb2NzIGRvY3VtZW50cyBhbGwgdW5kb2N1bWVudGVkIEdzdFhYWEZsYWdzIGNvbXBsZXRlZCBzb21lIGluY29tcGxldGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmg6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogZ3N0L2dzdHhtbC5oOgoJICBhZGRlZCB0d28gbmV3IGZ1bmN0aW9ucyB0byB0aGUgZG9jcwoJICBkb2N1bWVudHMgYWxsIHVuZG9jdW1lbnRlZCBHc3RYWFhGbGFncwoJICBjb21wbGV0ZWQgc29tZSBpbmNvbXBsZXRlIGRvY3MKCjIwMDUtMDktMjcgMTg6MzM6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogcmVtb3ZlIG5vdyB1c2VsZXNzIGFuZCBsZWFreSByZXN1cnJlY3Rpb24gY29kZSBpbiBkaXNwb3NlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZGlzcG9zZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2Rpc3Bvc2UpOgoJICByZW1vdmUgbm93IHVzZWxlc3MgYW5kIGxlYWt5IHJlc3VycmVjdGlvbiBjb2RlIGluIGRpc3Bvc2UKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfaW5pdCk6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9mYWN0b3J5X2NyZWF0ZSk6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9zZXRfcGFyZW50KToKCSAgYWRkIHNvbWUgZGVidWdnaW5nCgoyMDA1LTA5LTI3IDE3OjAwOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogVXBkYXRlIFRPRE8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFVwZGF0ZSBUT0RPLgoJICAqIGdzdC9nc3RiaW4uYzogKGFkZF90b19xdWV1ZSksIChjbGVhcl9xdWV1ZSksIChyZXNldF9vdXRkZWdyZWUpLAoJICAodXBkYXRlX291dGRlZ3JlZSksIChmaW5kX2VsZW1lbnQpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25leHQpLAoJICAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX3Jlc3luYyksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfZnJlZSksCgkgIChnc3RfYmluX2l0ZXJhdGVfc29ydGVkKSwgKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIFJlbW92ZSBlbGVtZW50IHZhcmlhYmxlLCB3ZSBrZWVwIGVsZW1lbnQgaW5mbyBpbiB0aGUgaXRlcmF0b3Igbm93LgoKMjAwNS0wOS0yNyAxNjozMDoyNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBGaXggZXJyb3ItY2hlY2tpbmcgcmV0dXJuIHZhbHVlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMjcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBGaXggZXJyb3ItY2hlY2tpbmcgcmV0dXJuCgkgIHZhbHVlcy4KCjIwMDUtMDktMjcgMTY6MTY6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IEVuYWJsZSBjaGVjayB0aGF0IHdvcmtzIG5vdy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBFbmFibGUgY2hlY2sgdGhhdCB3b3JrcyBub3cuCgkgICogZ3N0L2dzdGJpbi5jOiAoYWRkX3RvX3F1ZXVlKSwgKGNsZWFyX3F1ZXVlKSwgKHJlc2V0X291dGRlZ3JlZSksCgkgICh1cGRhdGVfb3V0ZGVncmVlKSwgKGZpbmRfZWxlbWVudCksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV4dCksCgkgIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfcmVzeW5jKSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9mcmVlKSwKCSAgKGdzdF9iaW5faXRlcmF0ZV9zb3J0ZWQpLCAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdGJpbi5oOgoJICBSZWRpZCB0aGUgc3RhdGUgY2hhbmdlIGFsZ29yaXRobSB1c2luZyBhIHRvcG9sb2dpY2FsIHNvcnQgYWxnby4KCSAgSGFuZGxlcyBhbGwgY2FzZXMgY29ycmVjdGx5LgoJICBFeHBvc2VkIGl0ZXJhdG9yIGZvciBzdGF0ZSBjaGFuZ2Ugb3JkZXIuCgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgVGVtcCBzdG9yYWdlIGZvciBzdGF0ZSBjaGFuZ2VzLiBOZWVkIHRvIGdldCByaWQgb2YgdGhpcyBzb29uLgoKMjAwNS0wOS0yNyAxNTozNzo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IExlYWsgZml4ZXMsIHRoZSBmb2xkIGZ1bmN0aW9ucyBuZWVkIHRvIHVucmVmIHRoZSBwYXNzZWQgb2JqZWN0IGFuZCBfZ2V0X3BhcmVudF8qKCkgcmV0dXJucyByZWYgdG8gcGFyZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2luaXQpLCAoZ3N0X3RlZV9kb19wdXNoKToKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGludGVyc2VjdF9jYXBzX2Z1bmMpLCAoZ3N0X3BhZF9wcm94eV9nZXRjYXBzKSwKCSAgKGxpbmtfZm9sZF9mdW5jKSwgKGdzdF9wYWRfcHJveHlfc2V0Y2Fwcyk6CgkgIExlYWsgZml4ZXMsIHRoZSBmb2xkIGZ1bmN0aW9ucyBuZWVkIHRvIHVucmVmIHRoZSBwYXNzZWQgb2JqZWN0IGFuZAoJICBfZ2V0X3BhcmVudF8qKCkgcmV0dXJucyByZWYgdG8gcGFyZW50LgoKMjAwNS0wOS0yNyAxMzoyNToxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNoZWNrL2dzdC9nc3RidWZmZXIuYzogUGx1ZyBsZWFrIGluIHRlc3QgY2FzZSBhbmQgZml4ICdtYWtlIGNoZWNrLXZhbGdyaW5kJwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YnVmZmVyLmM6ICh0ZXN0X21ha2Vfd3JpdGFibGUpOgoJICBQbHVnIGxlYWsgaW4gdGVzdCBjYXNlIGFuZCBmaXggJ21ha2UgY2hlY2stdmFsZ3JpbmQnCgoyMDA1LTA5LTI3IDEzOjA3OjE0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBTZXQgUkVBRE9OTFkgZmxhZyBvbiBzdWJidWZmZXJzLCBzbyB0aGF0IGdzdF9idWZmZXJfbWFrZV93cml0YWJsZSgpIHdvcmtzIGNvcnJlY3RseSBpbiBhbGwgY2lyY3Vtc3RhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9zdWJidWZmZXJfaW5pdCk6CgkgIFNldCBSRUFET05MWSBmbGFnIG9uIHN1YmJ1ZmZlcnMsIHNvIHRoYXQgZ3N0X2J1ZmZlcl9tYWtlX3dyaXRhYmxlKCkKCSAgd29ya3MgY29ycmVjdGx5IGluIGFsbCBjaXJjdW1zdGFuY2VzICh3ZSBjb3VsZCBoYXZlIGp1c3QgY29waWVkCgkgIHRoZSBwYXJlbnQgYnVmZmVyJ3MgcmVhZG9ubHkgZmxhZywgYnV0IGNvbmNlcHR1YWxseSBpdCBzZWVtcwoJICBjbGVhbmVyIHRvIG1hcmsgYWxsIHN1YmJ1ZmZlcnMgYXMgcmVhZC1vbmx5KS4gKGJhc2VkIG9uIHBhdGNoCgkgIGJ5IEFsZXNzYW5kcm8gRGVjaW5hLCAjMzE0NzEwKS4KCSAgKiBjaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChjcmVhdGVfcmVhZF9vbmx5X2J1ZmZlciksCgkgICh0ZXN0X21ha2Vfd3JpdGFibGUpLCAodGVzdF9zdWJidWZmZXJfbWFrZV93cml0YWJsZSksCgkgIChnc3RfdGVzdF9zdWl0ZSk6CgkgIEFkZCBzb21lIHRlc3RzIGZvciBnc3RfYnVmZmVyX21ha2Vfd3JpdGFibGUoKS4KCjIwMDUtMDktMjcgMDk6NTc6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IHVzZSBnc3Rfb2JqZWN0X2hhc19hbmNlc3RvcigpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fZWxlbWVudF9pc19zZW1pX3NpbmspLCAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICB1c2UgZ3N0X29iamVjdF9oYXNfYW5jZXN0b3IoKS4KCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2hhc19hbmNlc3Rvcik6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICBnc3Rfb2JqZWN0X2hhc19hbmNlc3RvcigpIGNvcGllZCBmcm9tIGdzdGJpbi5jIGFzIGl0IGlzIGEKCSAgdXNlZnVsbCBmdW5jdGlvbi4KCSAgKiB0ZXN0cy9pbnN0YW50aWF0ZS9jcmVhdGUuYzogKGNyZWF0ZV9hbGxfZWxlbWVudHMpOgoJICAqIHRlc3RzL2xhdC5jOiAoaGFuZG9mZl9zcmMpLCAoaGFuZG9mZl9zaW5rKToKCSAgKiB0ZXN0cy9zY2hlZC9ydW54bWwuYzogKG1haW4pOgoJICAqIHRlc3RzL3NlZWtpbmcvc2Vla2luZzEuYzogKG1haW4pOgoJICAqIHRlc3RzL3RocmVhZHN0YXRlL3RocmVhZHN0YXRlMi5jOiAoYnVzX2hhbmRsZXIpLCAodGltZW91dF9mdW5jKSwKCSAgKG1haW4pOgoJICBGaXggY29tcGlsYXRpb24gb2Ygc29tZSB0ZXN0cy4KCjIwMDUtMDktMjcgMDk6Mjk6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZXJyb3IuaDogUmVtb3ZlIGNvbW1lbnQuIEdTVF9UWVBFX0dfRVJST1IgaXMgaGVyZSB0byBzdGF5LAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgUmVtb3ZlIGNvbW1lbnQuIEdTVF9UWVBFX0dfRVJST1IgaXMgaGVyZSB0byBzdGF5LAoJICBHX1RZUEVfRVJST1IgaGFzIGJlZW4gV09OVEZJWCdlZCBieSB0aGUgR0xpYiBmb2xrcwoJICAoIzMxNjk2MSwgIzMwMDYxMCkuCgoyMDA1LTA5LTI2IDE4OjIyOjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBBZGRlZCBjaGVjayB0aGF0IHNob3dzIGVycm9yIGluIHN0YXRlIGNoYW5nZSBvcmRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2Jpbl9zdWl0ZSk6CgkgIEFkZGVkIGNoZWNrIHRoYXQgc2hvd3MgZXJyb3IgaW4gc3RhdGUgY2hhbmdlIG9yZGVyLgoKMjAwNS0wOS0yNiAxNzo0NjoyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogTWFrZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gdXNlIDMgcXVldWVzIGFnYWluLCB3ZSB3ZXJlIGFkZGluZyBlbGVtZW50cyBpbiB0aGUgd3Jvbmcgb3JkZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2hhbmdlX3N0YXRlKToKCSAgTWFrZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gdXNlIDMgcXVldWVzIGFnYWluLCB3ZSB3ZXJlCgkgIGFkZGluZyBlbGVtZW50cyBpbiB0aGUgd3Jvbmcgb3JkZXIuCgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfZ2hvc3RfcGFkX2RvX3VubGluayk6CgkgIFNvbWUgZGVidWcgaW5mbywKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2Rpc3Bvc2UpOgoJICBBZGRlZCBzb21lIGRlYnVnIGluZm8gZmlyc3QuCgoyMDA1LTA5LTI2IDE3OjQwOjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9kZXNpZ24vOiBSZXBsYWNlIGFsbCBfcHVsbF9yZWdpb24oKSB3aXRoIF9wdWxsX3JhbmdlKCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtcHVzaC1wdWxsLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zY2hlZHVsaW5nLnR4dDoKCSAgUmVwbGFjZSBhbGwgX3B1bGxfcmVnaW9uKCkgd2l0aCBfcHVsbF9yYW5nZSgpCgoyMDA1LTA5LTI2IDE2OjE5OjI3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdHJ5IHRoZSBmb3VydGgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRyeSB0aGUgZm91cnRoCgoyMDA1LTA5LTI2IDE2OjEyOjA3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZm9vCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmb28KCjIwMDUtMDktMjYgMTY6MDc6NTQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3R2YWx1ZS5jIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOiBCZXR0ZXIgZmFrZW91dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMjYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHZhbHVlLmMgKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6IEJldHRlciBmYWtlb3V0LgoKMjAwNS0wOS0yNiAxNTo0OToyMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOiBVcGRhdGUgZm9yIGNvbnRyb2xsZXIgYXBpIGNoYW5nZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMjYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOiBVcGRhdGUgZm9yIGNvbnRyb2xsZXIgYXBpIGNoYW5nZS4KCjIwMDUtMDktMjYgMTU6NDM6MzAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIFJlbW92ZSBtZW1jaHVuayBiZW5jaG1hcmsgc3R1ZmYsIHRoaXMgaXMgdGFrZW4gb3ZlciBieSBHTGliIGJ1ZyAxMTg0MzkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTI2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9tZW1jaHVuazogUmVtb3ZlIG1lbWNodW5rIGJlbmNobWFyayBzdHVmZiwgdGhpcyBpcyB0YWtlbgoJICBvdmVyIGJ5IEdMaWIgYnVnIDExODQzOS4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX3dhaXQpOiBGYWN0b3Igb3V0IHRoZSB3YWl0CgkgIHJvdXRpbmVzIHRvIGEgZnVuY3Rpb24uCgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogSSBhbSBhIGdvb2QgcGVyc29uIHRvZGF5LgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmggKGdzdF9jb250cm9sbGVyX3N5bmNfdmFsdWVzKQoJICAoZ3N0X29iamVjdF9zeW5jX3ZhbHVlcyk6IFJlbmFtZWQgZnJvbSBzaW5rX3ZhbHVlcy4gVWdoLgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6IFVwZGF0ZSBmb3IgX19nc3RfY29udHJvbGxlcl9rZXkuCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmMgKF9fZ3N0X2NvbnRyb2xsZXJfa2V5KToKCSAgUmVuYW1lZCBmcm9tIGNvbnRyb2xsZXJfa2V5LCBhcyBpdCBpcyBleHBvcnRlZC4KCSAgKiBnc3QvZ3N0dmFsdWUuYyAoX2dzdF92YWx1ZV9pbml0aWFsaXplKTogRmFrZSBvdXQgdGhlIGNvbXBpbGVyLgoKMjAwNS0wOS0yNiAxNTowMzo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RxdWVyeXV0aWxzLmM6CgkqIGdzdC9nc3RxdWVyeXV0aWxzLmg6CgkgIHJlbW92ZSBxdWVyeXV0aWxzIGhlYWRlcnMgYWZ0ZXIgbW92aW5nIHRoZSB0d28gdXNlZCBmdW5jdGlvbnMgdG8gZ3N0cXVlcnkuICBhbHNvIGZpeGVzIGJ1aWxkIHByb2JsZW0gZm9yIGdzdHNpZGRlYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHF1ZXJ5dXRpbHMgaGVhZGVycyBhZnRlciBtb3ZpbmcgdGhlIHR3byB1c2VkIGZ1bmN0aW9ucwoJICB0byBnc3RxdWVyeS4gIGFsc28gZml4ZXMgYnVpbGQgcHJvYmxlbSBmb3IgZ3N0c2lkZGVjCgoyMDA1LTA5LTI2IDEzOjQwOjIxICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgQ29ycmVjdCBzeW50YXggZm9yIGRlYnVnIG9wdGlvbiBpbiBnc3QtbGF1bmNoIG1hbnBhZ2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENvcnJlY3Qgc3ludGF4IGZvciBkZWJ1ZyBvcHRpb24gaW4gZ3N0LWxhdW5jaCBtYW5wYWdlCgoyMDA1LTA5LTI2IDExOjIxOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBTb21lIG1vcmUgZGVidWdnaW5nIGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX2lzX3NlZWthYmxlKSwgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBTb21lIG1vcmUgZGVidWdnaW5nIGluZm8uCgoyMDA1LTA5LTI1IDE4OjM0OjQ5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBhZGRlZCBtb3JlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgICogZ3N0L2dzdGluZGV4Lmg6CgkgIGFkZGVkIG1vcmUgZG9jcwoKMjAwNS0wOS0yNSAxMjoxMTozOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgaW5saW5lZCB0aGUgbGFzdCB0d28gZG9jcyBmaWxlcyByZW1vdmVkIHRoZSB0bXBsIGRpcmVjdG9yeSBmcm9tIGN2cyAobm8gbW9yZSBjb25mbGljdHMgaGVyZSEpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0Ly5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cGlwZWxpbmUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOgoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIGlubGluZWQgdGhlIGxhc3QgdHdvIGRvY3MgZmlsZXMKCSAgcmVtb3ZlZCB0aGUgdG1wbCBkaXJlY3RvcnkgZnJvbSBjdnMgKG5vIG1vcmUgY29uZmxpY3RzIGhlcmUhKQoKMjAwNS0wOS0yNSAxMToxOToyMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgaW5saW5lZCB0d28gbW9yZSBkb2NzIGZhY3RvcmVkIGdzdHBhZHRlbXBsYXRlIG91dCBvZiBnc3RwYWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RwYWQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBhZHRlbXBsYXRlLnNnbWw6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfY2xhc3NfaW5pdCksIChnc3RfcGFkX2Rpc3Bvc2UpLAoJICAoZ3N0X3BhZF9maW5hbGl6ZSksIChnc3RfcGFkX3NldF9wYWRfdGVtcGxhdGUpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzogKGdzdF9wYWRfdGVtcGxhdGVfZ2V0X3R5cGUpLAoJICAoZ3N0X3BhZF90ZW1wbGF0ZV9jbGFzc19pbml0KSwgKGdzdF9wYWRfdGVtcGxhdGVfaW5pdCksCgkgIChnc3RfcGFkX3RlbXBsYXRlX2Rpc3Bvc2UpLCAobmFtZV9pc192YWxpZCksCgkgIChnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXQpLCAoZ3N0X3BhZF90ZW1wbGF0ZV9uZXcpLAoJICAoZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0X2NhcHMpLCAoZ3N0X3BhZF90ZW1wbGF0ZV9nZXRfY2FwcyksCgkgIChnc3RfcGFkX3RlbXBsYXRlX3BhZF9jcmVhdGVkKToKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSAgaW5saW5lZCB0d28gbW9yZSBkb2NzCgkgIGZhY3RvcmVkIGdzdHBhZHRlbXBsYXRlIG91dCBvZiBnc3RwYWQKCjIwMDUtMDktMjQgMTQ6MzU6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IEZpeCB0ZXN0IGNhc2U6IHdlIGNhbid0IHJlbHkgb24gYSBmaXhlZCBzdGF0ZSBjaGFuZ2Ugb3JkZXIgd2hlbiBnb2luZyBmcm9tIFJFQURZID0+IFBBVVNFRCBiZWNhdXMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAodGVzdF9jaGlsZHJlbl9zdGF0ZV9jaGFuZ2Vfb3JkZXJfZmxhZ2dlZF9zaW5rKSwKCSAgKHRlc3RfY2hpbGRyZW5fc3RhdGVfY2hhbmdlX29yZGVyX3NlbWlfc2luayk6CgkgIEZpeCB0ZXN0IGNhc2U6IHdlIGNhbid0IHJlbHkgb24gYSBmaXhlZCBzdGF0ZSBjaGFuZ2Ugb3JkZXIgd2hlbgoJICBnb2luZyBmcm9tIFJFQURZID0+IFBBVVNFRCBiZWNhdXNlIHRoZSBzaW5rIG1pZ2h0IGNvbW1pdCBpdHMKCSAgbmV3IHN0YXRlIGZpcnN0IHdoZW4gdGhlIGZpcnN0IGJ1ZmZlciBjcmVhdGVkIGJ5IHRoZSBzb3VyY2UKCSAgcmVhY2hlcyB0aGUgc2luayBiZWZvcmUgdGhlIHNvdXJjZSBoYXMgZmluaXNoZWQgaXRzIGNoYW5nZSBzdGF0ZS4KCSAgKFRlc3QgY2FzZSBzdGlsbCBmYWlscyBhdCB0aW1lcywgc2VlICMzMTY4NTYsIGNvbW1lbnQgNSBvbndhcmRzKQoKMjAwNS0wOS0yNCAxNDoxNDowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFZhcmlvdXMgZG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RidXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2VnbWVudHMudHh0OgoJICAqIGdzdC9nc3RiaW4uYzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0ZmlsdGVyLmM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIFZhcmlvdXMgZG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoKMjAwNS0wOS0yNCAxMTo0MTowMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0Y2xvY2suaDogV2VsbCwgdGhhdCdzIGVtYmFyYXNzaW5nLiAgTHVja2lseSB3ZSB3ZXJlbid0IHVzaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBXZWxsLCB0aGF0J3MgZW1iYXJhc3NpbmcuICBMdWNraWx5IHdlIHdlcmVuJ3QgdXNpbmcKCSAgR1NUX0NMT0NLX0RJRkYgYW55d2hlcmUuCgoyMDA1LTA5LTIzIDE4OjA4OjU5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbW1vbi9ndGstZG9jLm1hazogZG9uJ3QgZmFpbCBvbiBidWlsZGluZyBYTUwsIEZDNCBzbGF2ZSBzaG93cyBhIGJ1bmNoIG9mIGRvYyBtaXNzaW5nIGJpdHMgdGhhdCBJIGRvbid0IGdldAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb21tb24vZ3RrLWRvYy5tYWs6CgkgIGRvbid0IGZhaWwgb24gYnVpbGRpbmcgWE1MLCBGQzQgc2xhdmUgc2hvd3MgYSBidW5jaCBvZiBkb2MKCSAgbWlzc2luZyBiaXRzIHRoYXQgSSBkb24ndCBnZXQKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzb21lIGRvYyB1cGRhdGVzCgoyMDA1LTA5LTIzIDE4OjAyOjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkIGJsdXJiIGFib3V0IGhvdyB0aGUgYnVzIGdvZXMgaW50byBmbHVzaGluZyBtb2RlIGFuZCBkcm9wcyBhbGwgbWVzc2FnZXMgd2hlbiBpdHMgYmluIGdvZXMgZnJvbSBSRUFEWSBpbnRvIE5VTEwgc3RhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YmluLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJ1cy50eHQ6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICBBZGQgYmx1cmIgYWJvdXQgaG93IHRoZSBidXMgZ29lcyBpbnRvIGZsdXNoaW5nIG1vZGUgYW5kCgkgIGRyb3BzIGFsbCBtZXNzYWdlcyB3aGVuIGl0cyBiaW4gZ29lcyBmcm9tIFJFQURZIGludG8gTlVMTAoJICBzdGF0ZS4KCjIwMDUtMDktMjMgMTc6NDY6MDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgYWRkIGEgbWV0aG9kIHRvIGdldCBhIEdzdENsb2NrVGltZSBvdXQgb2YgYSBzdHJ1Y3R1cmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2dldF9jbG9ja190aW1lKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIGFkZCBhIG1ldGhvZCB0byBnZXQgYSBHc3RDbG9ja1RpbWUgb3V0IG9mIGEgc3RydWN0dXJlCgoyMDA1LTA5LTIzIDE3OjE3OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBBZGRlZCB0ZXN0IHRvIGNoZWNrIHN0YXRlIGNoYW5nZSBvcmRlciBpbiBiaW5zIChjYW4gc3RpbGwgYmUgbWFkZSB0byBmYWlsIGhlcmUgdW5kZXIgaGVhdnkgZGlzayBsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKHRlc3RfY2hpbGRyZW5fc3RhdGVfY2hhbmdlX29yZGVyX2ZsYWdnZWRfc2luayksCgkgICh0ZXN0X2NoaWxkcmVuX3N0YXRlX2NoYW5nZV9vcmRlcl9zZW1pX3NpbmspLCAoZ3N0X2Jpbl9zdWl0ZSk6CgkgIEFkZGVkIHRlc3QgdG8gY2hlY2sgc3RhdGUgY2hhbmdlIG9yZGVyIGluIGJpbnMgKGNhbiBzdGlsbCBiZSBtYWRlCgkgIHRvIGZhaWwgaGVyZSB1bmRlciBoZWF2eSBkaXNrIGxvYWQ7IGJhaWxzIG91dCB3aXRoICdQdXNoIG9uIHBhZAoJICBmYWtlc2luazpzaW5rMCwgYnV0IGl0IHdhcyBub3QgYWN0aXZhdGVkIGluIHB1c2ggbW9kZScpLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgIEZpeCBzdGF0ZSBjaGFuZ2Ugb3JkZXIgd2hlbiB0aGVyZSBpcyBvbmx5IGEgc2VtaSBzaW5rICgjMzE2ODU2KQoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfY2xhc3NfaW5pdCk6CgkgIFVzZSBfY2xhc3NfcGVla19wYXJlbnQoKSwgbm90IF9jbGFzc19yZWYoKTsgZml4IGRvY3MgdG8gc2F5CgkgICdkZWZhdWx0IG1haW4gY29udGV4dCcgaW5zdGVhZCBvZiAnbWFpbmxvb3AnIHdoZXJlIHRoYXQgaXMKCSAgd2hhdCdzIG1lYW50LgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgRml4IHR5cG9zIGluIGRlYnVnIG1lc3NhZ2VzCgoyMDA1LTA5LTIzIDE2OjM1OjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZml4IGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBkb2NzCgoyMDA1LTA5LTIzIDE1OjQ4OjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgIGRvbid0IGJyZWFrIGRvY3MgYnVpbGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvbid0IGJyZWFrIGRvY3MgYnVpbGQKCjIwMDUtMDktMjMgMTU6MzY6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdmFyaW91cyBkb2MgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL1JFQURNRToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2NsYXNzX2luaXQpLCAoZ3N0X3BhZF9jaGFpbik6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdmFyaW91cyBkb2MgdXBkYXRlcwoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICBjaGFuZ2UgYW4gYXNzZXJ0IGludG8gYW4gZXJyb3IgdW50aWwgaXQgZ2V0cyBmaXhlZCBwcm9wZXJseQoKMjAwNS0wOS0yMyAxNDozMToyMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgaW5saW5lZCAzIG1vcmUgYmlpaWlnIGRvYyBmaWxlcyBhbmQgYWRkZWQgc29tZSBtaXNzaW5nIGRvY3Mgb24gdGhlIGZseQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGluZm8uc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdG9iamVjdC5zZ21sOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIGlubGluZWQgMyBtb3JlIGJpaWlpZyBkb2MgZmlsZXMgYW5kIGFkZGVkIHNvbWUgbWlzc2luZyBkb2NzIG9uIHRoZSBmbHkKCjIwMDUtMDktMjMgMTE6NDE6MzAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcHV0IGJhY2sgc291cmNlIGluIHJlZ2lzdHJ5LiAgYWRkIGNoZWNrcyBmb3IgZmluZF9wbHVnaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIGNoZWNrL2dzdC9nc3RwbHVnaW4uYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9wbHVnaW5fc3VpdGUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAobG9hZF9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X3htbF9zYXZlX3BsdWdpbik6CgkgIHB1dCBiYWNrIHNvdXJjZSBpbiByZWdpc3RyeS4gIGFkZCBjaGVja3MgZm9yIGZpbmRfcGx1Z2luLgoJICAqIHRlc3RzdWl0ZS9zdGF0ZXMvYmluLmM6IChhc3NlcnRfc3RhdGUpLCAoZW1wdHlfYmluKSwKCSAgKHRlc3RfYWRkaW5nX29uZV9lbGVtZW50KSwgKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9zdGF0ZXMvbG9ja2VkLmM6IChtYWluKToKCSAgc29tZSBjb21waWxlL3J1biBmaXhlcwoKMjAwNS0wOS0yMiAyMDowMjoxMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgZml4IGxlYWsgaW4gdGhlIHRlc3QgaXRzZWxmCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggbGVhayBpbiB0aGUgdGVzdCBpdHNlbGYKCjIwMDUtMDktMjIgMTg6MDc6MjIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBQcmVwYXJlIGZvciBtb3JlIGFjY3VyYXRlIHBvc2l0aW9uIHJlcG9ydGluZyBhbmQgcXVlcnkgaGFuZGxpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19zZW5kX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfcGVlcl9xdWVyeSksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KToKCSAgUHJlcGFyZSBmb3IgbW9yZSBhY2N1cmF0ZSBwb3NpdGlvbiByZXBvcnRpbmcgYW5kIHF1ZXJ5CgkgIGhhbmRsaW5nLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZW5kX2V2ZW50KSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSk6CgkgIEFkZCBzb21lIGNvbW1lbnQuCgoyMDA1LTA5LTIyIDE3OjQwOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHF1ZXJ5Lio6IE1vcmUgZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbmV3X3NlZ21lbnQpLCAoZ3N0X3F1ZXJ5X3NldF9zZWdtZW50KSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9zZWdtZW50KToKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgTW9yZSBkb2N1bWVudGF0aW9uLgoJICBBZGQgc2VnbWVudCBxdWVyeSBmb3IgZnV0dXJlIHVzZS4KCjIwMDUtMDktMjIgMTY6NTE6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKToKCSAgU29tZSBtb3JlIGRlYnVnIGluZm8uCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NlbmRfZXZlbnQpOgoJICBTaW1wbGlmeSBzZW5kX2V2ZW50CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgRG9uJ3Qga25vdyBob3cgZmxhZ3MgZ290IGJyb2tlbi4KCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgQWRkZWQgbmV3IHF1ZXJ5LgoKMjAwNS0wOS0yMiAxNTozODoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiBBZGQgc2ltcGxpc3RpYyB0ZXN0IHN1aXRlIGZvciBHU1RfVFlQRV9EQVRFIHNlcmlhbGlzYXRpb24gYW5kIGRlc2VyaWFsaXNhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHZhbHVlLmM6ICh0ZXN0X2RhdGUpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgQWRkIHNpbXBsaXN0aWMgdGVzdCBzdWl0ZSBmb3IgR1NUX1RZUEVfREFURSBzZXJpYWxpc2F0aW9uIGFuZAoJICBkZXNlcmlhbGlzYXRpb24uCgoyMDA1LTA5LTIyIDE1OjA4OjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkIEdTVF9UWVBFX0RBVEUsIGEgYm94ZWQgdHlwZSB0aGF0IHdyYXBzIEdEYXRlLCBhbmQgdGhlIHVzdWFsIGJ1bmNoIG9mIHV0aWxpdHkgZnVuY3Rpb25zIGFsb25nIHdpdGggYSBoYWNrIHRoYXQgY2hlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9zZXRfdmFsaXN0KSwKCSAgKGdzdF9zdHJ1Y3R1cmVfZ2V0X2RhdGUpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9zZXRfZGF0ZSksIChnc3RfdmFsdWVfZ2V0X2RhdGUpLAoJICAoZ3N0X2RhdGVfY29weSksIChnc3RfdmFsdWVfY29tcGFyZV9kYXRlKSwKCSAgKGdzdF92YWx1ZV9zZXJpYWxpemVfZGF0ZSksIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZGF0ZSksCgkgIChnc3RfdmFsdWVfdHJhbnNmb3JtX2RhdGVfc3RyaW5nKSwKCSAgKGdzdF92YWx1ZV90cmFuc2Zvcm1fc3RyaW5nX2RhdGUpLCAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgQWRkIEdTVF9UWVBFX0RBVEUsIGEgYm94ZWQgdHlwZSB0aGF0IHdyYXBzIEdEYXRlLCBhbmQgdGhlIHVzdWFsCgkgIGJ1bmNoIG9mIHV0aWxpdHkgZnVuY3Rpb25zIGFsb25nIHdpdGggYSBoYWNrIHRoYXQgY2hlY2tzIHRoYXQKCSAgZGV2ZWxvcGVycyBkb24ndCBhY2NpZGVudGFsbHkgdXNlIEdfVFlQRV9EQVRFIHdoZXJlIEdTVF9UWVBFX0RBVEUKCSAgaXMgcmVxdWlyZWQuIFBhcnQgb2YgdGhlIGdyYW5kIHNjaGVtZSBpbiAjMTcwNzc3LgoKMjAwNS0wOS0yMiAxMjowNTowNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGNvbmZpZy5oLmluOiBQc3ljaCBvdXQgZ3RrLWRvYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMjIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOiBQc3ljaCBvdXQgZ3RrLWRvYy4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgR1NUX0hBVkVfR0xJQl8yXzguCgkgICogY2hlY2svTWFrZWZpbGUuYW0gKGNoZWNrX1BST0dSQU1TKTogQWRkIGdzdHBsdWdpbiB0byB0aGUgdGVzdHMuCgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYyAocHJpbnRfZWxlbWVudF9saXN0KTogUGx1ZyBzb21lCgkgIGluY29uc2VxdWVudGlhbCBsZWFrcy4KCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYyAoZ3N0X3JlZ2lzdHJ5X2dldF9kZWZhdWx0KTogRG9jLgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYyAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2NhbGxfZnVuY3Rpb24pOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jIChnc3RfZWxlbWVudF9mYWN0b3J5X2NyZWF0ZSk6CgkgICogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jIChnc3RfaW5kZXhfZmFjdG9yeV9jcmVhdGUpOiBVcGRhdGUgZm9yCgkgIHJlZmNvdW50IGNoYW5nZXMuCgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYyAoZ3N0X3BsdWdpbl9mZWF0dXJlX2xpc3RfZnJlZSk6IERvYy4KCSAgKGdzdF9wbHVnaW5fZmVhdHVyZV9sb2FkKTogRG9jLCBkb24ndCBlYXQgcmVmcy4KCSAgKiBnc3QvZ3N0cGx1Z2luLmMgKGdzdF9wbHVnaW5fbG9hZCk6IERvYywgZG9uJ3QgZWF0IHJlZnMuCgkgIChnc3RfcGx1Z2luX2xpc3RfZnJlZSk6IERvYy4KCSAgKGdzdF9wbHVnaW5fbG9hZF9maWxlKTogRG9jIHVwZGF0ZXMuCgoyMDA1LTA5LTIyIDA5OjMwOjQxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmMgKGdzdF9idWZmZXJfZ2V0X2NhcHMpOiBMaWtlIGFsbCBvdXIgX2dldCBhY2Nlc3NvcnMgcmV0dXJuaW5nIHJlZmNvdW50ZWQgb2JqZWN0cywgcmV0dXJuIGEgcmVmLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0yMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0YnVmZmVyLmMgKGdzdF9idWZmZXJfZ2V0X2NhcHMpOiBMaWtlIGFsbCBvdXIgX2dldAoJICBhY2Nlc3NvcnMgcmV0dXJuaW5nIHJlZmNvdW50ZWQgb2JqZWN0cywgcmV0dXJuIGEgcmVmLgoJICAqIGNoZWNrL2dzdC9nc3RidWZmZXIuYyAoR1NUX1NUQVJUX1RFU1QpOiBVc2UgcmVmY291bnQtaWRlbXBvdGVudAoJICBhY2Nlc3NvciBmb3IgY2Fwcy4gSURFTVBPVEVOQ0UuIE9oIHllcy4KCjIwMDUtMDktMjEgMjE6Mzk6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aW5mby5jOiBBZGQgbXV0ZXggdG8gc2VyaWFsaXNlIGFjY2VzcyB0byB0aGUgaGFzaCB0YWJsZSB3aXRoIHRoZSBmdW5jdGlvbiBwb2ludGVyID0+IGZ1bmN0aW9uIG5hbWUgc3RyaW5nIG1hcHAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyICA8dGltIGF0IGNlbnRyaWN1bGFyIGRvdCBuZXQ+CgkgICogZ3N0L2dzdGluZm8uYzogKF9nc3RfZGVidWdfbmFtZW9mX2Z1bmNwdHIpLAoJICAoX2dzdF9kZWJ1Z19yZWdpc3Rlcl9mdW5jcHRyKToKCSAgQWRkIG11dGV4IHRvIHNlcmlhbGlzZSBhY2Nlc3MgdG8gdGhlIGhhc2ggdGFibGUgd2l0aAoJICB0aGUgZnVuY3Rpb24gcG9pbnRlciA9PiBmdW5jdGlvbiBuYW1lIHN0cmluZyBtYXBwaW5nOwoJICBtYWtlIHRoYXQgaGFzaCB0YWJsZSBzdGF0aWMgc2NvcGUgKCMzMTY4MDkpLgoJICAqIGdzdC9yZWdpc3RyaWVzLy5jdnNpZ25vcmU6CgkgIFJlbW92ZSBsZWZ0LW92ZXIgZmlsZS4KCjIwMDUtMDktMjEgMTU6NTU6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDogQW5kIHNvbWV0aGluZyBhYm91dCBuZXdzZWdtZW50IGV2ZW50cyBhbmQgY2Fwcy1vbi1idWZmZXJzIHRvIHRoZSBwb3J0aW5nIGd1aWRlIChmZWVsIGYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgIEFuZCBzb21ldGhpbmcgYWJvdXQgbmV3c2VnbWVudCBldmVudHMgYW5kIGNhcHMtb24tYnVmZmVycyB0bwoJICB0aGUgcG9ydGluZyBndWlkZSAoZmVlbCBmcmVlIHRvIGltcHJvdmUpLgoKMjAwNS0wOS0yMSAxMzoyNDozMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIFRlc3QgdGhhdCByZW1vdmluZyBwcm9iZXMgZnJvbSB3aXRoaW4gdGhlIHByb2JlIGZ1bmN0aW9ucyB3b3Jrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICh0ZXN0X2J1ZmZlcl9wcm9iZV9vbmNlKTogVGVzdCB0aGF0IHJlbW92aW5nIHByb2JlcyBmcm9tIHdpdGhpbgoJICB0aGUgcHJvYmUgZnVuY3Rpb25zIHdvcmtzLgoKMjAwNS0wOS0yMSAxMzoxMToyMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svZ3N0L2dzdHV0aWxzLmMgKHRlc3RfYnVmZmVyX3Byb2JlX25fdGltZXMpOiBBZGQgdGVzdHMgZm9yIGRhdGEgYW5kIGV2ZW50IHByb2JlcyBvbiB0aGUgc2FtZSBwYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3R1dGlscy5jICh0ZXN0X2J1ZmZlcl9wcm9iZV9uX3RpbWVzKTogQWRkIHRlc3RzIGZvcgoJICBkYXRhIGFuZCBldmVudCBwcm9iZXMgb24gdGhlIHNhbWUgcGFkLgoKMjAwNS0wOS0yMSAxMjoyMToxMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svZ3N0L2dzdHV0aWxzLmM6IE5ldyBmaWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0dXRpbHMuYzogTmV3IGZpbGUuCgkgICh0ZXN0X2J1ZmZlcl9wcm9iZV9uX3RpbWVzKTogQSBzaW1wbGUgYnVmZmVyIHByb2JlIHRlc3QuIE1vcmUgdG8KCSAgY29tZSwgZm9vbGlvcy4KCSAgKiBnc3QvZ3N0dXRpbHMuYyAoZ3N0X3BhZF9hZGRfYnVmZmVyX3Byb2JlKTogQ29ubmVjdCB0bwoJICBoYXZlLWRhdGE6OmJ1ZmZlciwgbm90IGhhdmUtZGF0YS4KCSAgKGdzdF9wYWRfYWRkX2V2ZW50X3Byb2JlKTogTGlrZXdpc2UgZm9yIGhhdmUtZGF0YTo6ZXZlbnQuCgkgIChnc3RfcGFkX2FkZF9kYXRhX3Byb2JlKTogTW9yZSBkb2NzLiBUaGUgcGFydCBhYm91dCAncmVzb2x2aW5nIHRoZQoJICBwZWVyJyBpc24ndCBxdWl0ZSByaWdodCB5ZXQgdGhvdWdoLgoJICAoZ3N0X3BhZF9yZW1vdmVfYnVmZmVyX3Byb2JlLCBnc3RfcGFkX3JlbW92ZV9ldmVudF9wcm9iZSkKCSAgKGdzdF9wYWRfcmVtb3ZlX2RhdGFfcHJvYmUpOiBDaGFuZ2UgdG8gdGFrZSB0aGUgZ3VpbnQgaGFuZGxlcl9pZAoJICBhcyB0aGVpciBhcmcsIG5vdCB0aGUgZnVuY3Rpb24rZGF0YSwgd2hpY2ggaXMgbW9yZSBnbGliLWxpa2UuCgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2VtaXRfaGF2ZV9kYXRhX3NpZ25hbCk6IEFkZCBhIGRldGFpbCB0bwoJICB0aGUgc2lnbmFsIGVtaXNzaW9uIHRvIGluZGljYXRlIGlmIHRoZSBkYXRhIGlzIGEgYnVmZmVyIG9yIGFuCgkgIGV2ZW50LgoJICAoZ3N0X3BhZF9nZXRfdHlwZSk6IEluaXRpYWxpemUgYnVmZmVyIGFuZCBldmVudCBxdWFya3MuCgkgIChnc3RfcGFkX2NsYXNzX2luaXQpOiBoYXZlLWRhdGEgaXMgbm93IGEgZGV0YWlsZWQgc2lnbmFsLCB5ZXMgaXQKCSAgaXMuCgoyMDA1LTA5LTIxIDExOjUyOjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogRG9uJ3QgcHV0IGZ1bmN0aW9uYWwgY29kZSBpbiBnX3JldHVybl9pZl9mYWlsKCkgb3IgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoKSBzdGF0ZW1lbnRzLCBvdGhlcndpc2UgdGhpbmdzIHdpbGwgYnJlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fc2l6ZSk6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF9zZXRfdmFsdWVfZnJvbV9zdHJpbmcpLAoJICAoZ3N0X3V0aWxfc2V0X29iamVjdF9hcmcpOgoJICBEb24ndCBwdXQgZnVuY3Rpb25hbCBjb2RlIGluIGdfcmV0dXJuX2lmX2ZhaWwoKSBvcgoJICBnX3JldHVybl92YWxfaWZfZmFpbCgpIHN0YXRlbWVudHMsIG90aGVyd2lzZSB0aGluZ3Mgd2lsbAoJICBicmVhayB3aGVuIEdfRElTQUJMRV9DSEVDS1MgaXMgZGVmaW5lZCBkdXJpbmcgY29tcGlsYXRpb24uCgoyMDA1LTA5LTIxIDA5OjQ4OjQwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBpbmxpZWQgYW5vdGhlciBvbmUgYW5kIGFkZGVkICBzb21lIG9idmlvdXMgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R2YWx1ZS5zZ21sOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBpbmxpZWQgYW5vdGhlciBvbmUgYW5kIGFkZGVkICBzb21lIG9idmlvdXMgZG9jcwoKMjAwNS0wOS0yMSAwOToxMzozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RmZHNyYy4qOiBQcm9wZXJseSBpbXBsZW1lbnQgZmRzcmMuIFJlbW92ZWQgc2lnbmFsIGFuZCB0aW1lb3V0LCBiZXR0ZXIgaW1wbGVtZW50ZWQgc29tZXdoZXJlIGVsc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2Zkc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zkc3JjX2luaXQpLCAoZ3N0X2Zkc3JjX3N0YXJ0KSwgKGdzdF9mZHNyY19zdG9wKSwKCSAgKGdzdF9mZHNyY191bmxvY2spLCAoZ3N0X2Zkc3JjX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfZmRzcmNfZ2V0X3Byb3BlcnR5KSwgKGdzdF9mZHNyY19jcmVhdGUpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5oOgoJICBQcm9wZXJseSBpbXBsZW1lbnQgZmRzcmMuIFJlbW92ZWQgc2lnbmFsIGFuZCB0aW1lb3V0LAoJICBiZXR0ZXIgaW1wbGVtZW50ZWQgc29tZXdoZXJlIGVsc2UuCgoyMDA1LTA5LTIxIDA4OjU4OjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBpbmxpbmVkIG1vcmUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RpbXBsZW1lbnRzaW50ZXJmYWNlLnNnbWw6CgkgICogZ3N0L2dzdGludGVyZmFjZS5jOgoJICBpbmxpbmVkIG1vcmUgZG9jcwoKMjAwNS0wOS0yMSAwODo0MDo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvOiByZW1vdmUgb2Jzb2xldGUgZG9jIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RlbnVtdHlwZXMuc2dtbDoKCSAgcmVtb3ZlIG9ic29sZXRlIGRvYyBmaWxlCgoyMDA1LTA5LTIxIDA3OjM3OjAyICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiBEcmluayBhIGxpdHRsZSBiZWVyLCBmaXggYSBsaXR0bGUgbGVhay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UpOiBEcmluayBhCgkgIGxpdHRsZSBiZWVyLCBmaXggYSBsaXR0bGUgbGVhay4KCjIwMDUtMDktMjAgMjA6NTQ6MzcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVudW10eXBlcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGltcGxlbWVudHNpbnRlcmZhY2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4ZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZm8uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RvYmplY3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWR0ZW1wbGF0ZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBpcGVsaW5lLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luZmVhdHVyZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dmFsdWUuc2dtbDoKCSAgcmVtb3ZlIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgZmlsZXMKCjIwMDUtMDktMjAgMjA6NDA6MDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG1vcmUgZG9jcyBpbmxpbmVkLCBzcGxpdHRlZCBnc3RpbmRleC57YyxofQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdGJpbi5jOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGluZGV4Lmg6CgkgICogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOiAoZ3N0X2luZGV4X2ZhY3RvcnlfZ2V0X3R5cGUpLAoJICAoZ3N0X2luZGV4X2ZhY3RvcnlfY2xhc3NfaW5pdCksIChnc3RfaW5kZXhfZmFjdG9yeV9pbml0KSwKCSAgKGdzdF9pbmRleF9mYWN0b3J5X2ZpbmFsaXplKSwgKGdzdF9pbmRleF9mYWN0b3J5X25ldyksCgkgIChnc3RfaW5kZXhfZmFjdG9yeV9kZXN0cm95KSwgKGdzdF9pbmRleF9mYWN0b3J5X2ZpbmQpLAoJICAoZ3N0X2luZGV4X2ZhY3RvcnlfY3JlYXRlKSwgKGdzdF9pbmRleF9mYWN0b3J5X21ha2UpOgoJICAqIGdzdC9nc3RpbmRleGZhY3RvcnkuaDoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChnc3RfY29udHJvbGxlcl9uZXdfdmFsaXN0KToKCSAgbW9yZSBkb2NzIGlubGluZWQsIHNwbGl0dGVkIGdzdGluZGV4LntjLGh9CgoyMDA1LTA5LTIwIDIwOjE5OjUyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIGZpeCBhIGxlYWsgaW4gY29udHJvbGxlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGEgbGVhayBpbiBjb250cm9sbGVyCgoyMDA1LTA5LTIwIDE5OjE2OjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IFNldCBzeW5jIHRvIEZBTFNFIGJ5IGRlZmF1bHQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19pbml0KToKCSAgU2V0IHN5bmMgdG8gRkFMU0UgYnkgZGVmYXVsdC4KCjIwMDUtMDktMjAgMTc6Mzg6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBNYWtlIHN5bmMgcHJvcGVydHkgc2V0dGFibGUgZnJvbSBzdWJjbGFzcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX2luaXQpOgoJICBNYWtlIHN5bmMgcHJvcGVydHkgc2V0dGFibGUgZnJvbSBzdWJjbGFzcy4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfaW5pdCksCgkgIChnc3RfZmFrZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIFNldCBzeW5jIHRvIEZBTFNFIGJ5IGRlZmF1bHQuCgoyMDA1LTA5LTIwIDE3OjMwOjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgVGhlIHRpbWVvdXQgaGFuZGxlciBzaG91bGQgaGF2ZSBsb3dlciBwcmlvcml0eSB0aGFuIHRoZSBzb3VyY2Ugc28gd2UgZG9uJ3QgdGltZW91dCBiZWZvcmUgcG9wcGluZyBhIG1lc3NhZ2Ugd2l0aCAwIHRpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKHBvbGxfZnVuYyksIChwb2xsX3RpbWVvdXQpLCAoZ3N0X2J1c19wb2xsKToKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgVGhlIHRpbWVvdXQgaGFuZGxlciBzaG91bGQgaGF2ZSBsb3dlciBwcmlvcml0eSB0aGFuIHRoZSBzb3VyY2UKCSAgc28gd2UgZG9uJ3QgdGltZW91dCBiZWZvcmUgcG9wcGluZyBhIG1lc3NhZ2Ugd2l0aCAwIHRpbWVvdXQuCgkgIER1bXAgZXJyb3IgbWVzc2FnZXMgYWZ0ZXIgZmFpbGVkIHN0YXRlIGNoYW5nZS4KCjIwMDUtMDktMjAgMTc6MjE6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBGaXggdHdvIHR5cG9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICBGaXggdHdvIHR5cG9zLgoKMjAwNS0wOS0yMCAxNTo0NTo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICByZW1vdmUgdGhlIHN5bmMgcHJvcGVydHkgZnJvbSBmYWtlc2luay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkgIHJlbW92ZSB0aGUgc3luYyBwcm9wZXJ0eSBmcm9tIGZha2VzaW5rLgoJICBoYXMgdGhlIHNpZGUgZWZmZWN0IG9mIHNldHRpbmcgc3luYyBUUlVFCgkgIGZvciBmYWtlc2luaywgd2hpY2ggaXMgYSBjaGFuZ2UuICBBbnlvbmUgd2hvIGtub3dzIGhvdwoJICB0byBmaXggdGhpcyBuaWNlbHkgaW4gYSBHT2JqZWN0LXkgd2F5LCBmZWVsIGZyZWUuCgoyMDA1LTA5LTIwIDE1OjE5OjA4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOiByZW1vdmUgcHJvYmUgcmVmc2VjdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICByZW1vdmUgcHJvYmUgcmVmc2VjdGlvbgoKMjAwNS0wOS0yMCAxMjo1MDoyMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IGRpc2FibGUgdmFsZ3JpbmRpbmcgdGhlIGNvbnRyb2xsZXIgdGVzdCBhZ2FpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgZGlzYWJsZSB2YWxncmluZGluZyB0aGUgY29udHJvbGxlciB0ZXN0IGFnYWluCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgdXBkYXRlIGZvciBhcGktY2hhbmdlcwoKMjAwNS0wOS0yMCAxMjowNTo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLio6IEFkZGVkIHN5bmMgcHJvcGVydHkgdG8gYmFzZXNpbmsgdG8gZGlzYWJsZSBjbG9jayBzeW5jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3Npbmtfc2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgQWRkZWQgc3luYyBwcm9wZXJ0eSB0byBiYXNlc2luayB0byBkaXNhYmxlIGNsb2NrIHN5bmMuCgoyMDA1LTA5LTIwIDExOjA5OjUwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYyAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9jcmVhdGUpOiBBdm9pZCBlYXRpbmcgdGhlIGNhbGxlcidzIHJlZmNvdW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0yMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYyAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9jcmVhdGUpOiBBdm9pZAoJICBlYXRpbmcgdGhlIGNhbGxlcidzIHJlZmNvdW50LgoJICAqIGdzdC9nc3RvYmplY3QuaCAoR1NUX09CSkVDVF9SRUZDT1VOVCkKCSAgKEdTVF9PQkpFQ1RfUkVGQ09VTlRfVkFMVUUpOiBDb25kaXRpb25hbGx5IGZvbmRsZSB0aGUgcmlnaHQKCSAgcmVmY291bnQuCgkgICogZ3N0L2dzdGNvbmZpZy5oLmluIChHU1RfSEFWRV9HTElCXzJfOCk6CgkgICogY29uZmlndXJlLmFjIChHU1RfSEFWRV9HTElCXzJfOF9ERUZJTkUpOiBNYWtlIHRoZSBhdmFpbGFiaWxpdHkKCSAgb2YgR0xpYiAyLjggcHVibGljLCBzbyB3ZSBjYW4ga25vdyB3aGljaCByZWZjb3VudCB0byBjaGVjayBpbgoJICB0ZXN0cy4KCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IFVzZSB0aGUgR1NUX0hBVkVfR0xJQl8yXzggZGVmaW5lLgoJICAoZ3N0X29iamVjdF9pbml0KTogT25seSBzZXQgdGhlIGdzdCByZWZjb3VudCBpZiB3ZSdyZSBnb2luZyBhaGVhZAoJICB3aXRoIHRoZSByZWZjb3VudCBoYWNrLgoKMjAwNS0wOS0yMCAxMDo0MTowMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbW9yZSBsZWFrcyBwbHVtYmVkLCBhZGRlZCBtb3JlIGRlYnVnLWxvZ2dpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOiAocGx1Z2luX2luaXQpLCAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfbmV3X3ZhbGlzdCk6CgkgIG1vcmUgbGVha3MgcGx1bWJlZCwgYWRkZWQgbW9yZSBkZWJ1Zy1sb2dnaW5nCgkgICogZ3N0L2dzdG1hY3Jvcy5oOgoJICB3aGl0ZXNwYWNlIGZpeAoKMjAwNS0wOS0yMCAwOTo0NzoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIHJlbW92ZSBpbmNsdWRlIG9mIHJlbW92ZWQgaGVhZGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgaW5jbHVkZSBvZiByZW1vdmVkIGhlYWRlcgoKMjAwNS0wOS0yMCAwOToyODo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0Y2xvY2suYzogQ29tbWl0IGZyb20gdGhlIFBvbGl0aWNhbCBQYXJ0eSBGb3IgTW9yZSBBdG9taWMgQ1ZTIENvbW1pdHMsIHNvIHRoYXQgcGVvcGxlIGRvbid0IHdhc3RlIHRvbyBtdWNoIG9mIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChfZ3N0X2Nsb2NrX2lkX2ZyZWUpOgoJICBDb21taXQgZnJvbSB0aGUgUG9saXRpY2FsIFBhcnR5IEZvciBNb3JlIEF0b21pYyBDVlMgQ29tbWl0cywKCSAgc28gdGhhdCBwZW9wbGUgZG9uJ3Qgd2FzdGUgdG9vIG11Y2ggb2YgdGhlaXIgZGF5IGZpc2hpbmcKCSAgb3V0IG9idmlvdXMgbGVha3Mgb3V0IG9mIG1hc3NpdmUgY29tbWl0cy4KCSAgT2gsIGFuZCBmaXggYSBwcmV0dHkgZGFtbiBvYnZpb3VzIGxlYWsgaW4gdGhlIG1lbWNodW5rCgkgIHJlbW92YWwgY29kZS4KCjIwMDUtMDktMjAgMDk6MjM6MzkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNoZWNrLzogcGx1ZyBtZW0tbGVhaywgcmUtYWRkIHRvIHZhbGdyaW5kYWJsZSB0ZXN0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6IChwbHVnaW5faW5pdCksIChHU1RfU1RBUlRfVEVTVCk6CgkgIHBsdWcgbWVtLWxlYWssIHJlLWFkZCB0byB2YWxncmluZGFibGUgdGVzdHMKCjIwMDUtMDktMjAgMDk6MDg6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIHVuYnJlYWsgdGhlIGJ1aWxkIGZvciB0aG9zZSB3aG8gaGF2ZSBjaHJvbmljIGFydGhyaXRpcyBhbmQgdHlwaW5nICJtYWtlIGNoZWNrIiBpcyBqdXN0IHRvbyB0YXhpbmcgb24gdGhlIGhhbmRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1bmJyZWFrIHRoZSBidWlsZCBmb3IgdGhvc2Ugd2hvIGhhdmUgY2hyb25pYyBhcnRocml0aXMKCSAgYW5kIHR5cGluZyAibWFrZSBjaGVjayIgaXMganVzdCB0b28gdGF4aW5nIG9uIHRoZSBoYW5kcwoKMjAwNS0wOS0yMCAwODoyNTozMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdC5oOiBSZS1hZGQgbWFyc2hhbCB0byBnc3QuaCdzIGluY2x1ZGUgbGlzdCAtLSBpZiB3ZSByZWFsbHkgd2FudCBpdCBvdXQsIHlvdSBzaG91bGQgZml4IHBsdWdpbnMgYXQgdGhlIHNhbWUgdGltZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMjAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdC5oOiBSZS1hZGQgbWFyc2hhbCB0byBnc3QuaCdzIGluY2x1ZGUgbGlzdCAtLSBpZiB3ZQoJICByZWFsbHkgd2FudCBpdCBvdXQsIHlvdSBzaG91bGQgZml4IHBsdWdpbnMgYXQgdGhlIHNhbWUgdGltZS4KCjIwMDUtMDktMjAgMDc6MzI6NDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGFkZGVkIG1pc3Npbmcgc3ltYm9scyB0byBhcGkgZG9jcyBkaXNhYmxlIHJlZi1jb3VudCBoYWNrIGlmIHdlIGhhdmUgZ2xpYiA+PSAyLjgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdG9iamVjdC5jOgoJICBhZGRlZCBtaXNzaW5nIHN5bWJvbHMgdG8gYXBpIGRvY3MKCSAgZGlzYWJsZSByZWYtY291bnQgaGFjayBpZiB3ZSBoYXZlIGdsaWIgPj0gMi44CgoyMDA1LTA5LTIwIDA2OjI4OjMzICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGRvY3MvZ3N0L01ha2VmaWxlLmFtOiBJZ25vcmUgYSBmZXcgbW9yZSBpbnRlcm5hbCBoZWFkZXJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOiBJZ25vcmUgYSBmZXcgbW9yZSBpbnRlcm5hbCBoZWFkZXJzCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDogUmVtb3ZlIG9sZCBzZWN0aW9ucwoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IFJlbW92ZSBvbGQgc2VjdGlvbnMKCSAgKiBkb2NzL2dzdC90bXBsL2dzdG9iamVjdC5zZ21sOiB1cGRhdGUKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOiB1cGRhdGUKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbmZlYXR1cmUuc2dtbDogdXBkYXRlCgkgICogZG9jcy9yYW5kb20vZHMvMC45LXN1Z2dlc3RlZC1jaGFuZ2VzOiB1cGRhdGUuCgkgICogZ3N0L01ha2VmaWxlLmFtOiByZW1vdmUgbWVtY2h1bmsgYW5kIHRyYXNoc3RhY2ssIHNpbmNlIHRoZXkncmUKCSAgbm90IHVzZWQuCgkgICogZ3N0L2dzdC5jOiAoZ3N0X2RlaW5pdCk6IHJlbmFtZSBnc3RfcmVnaXN0cnlfZGVpbml0IHRvIF9jbGVhbnVwCgkgICogZ3N0L2dzdC5oOiBkb24ndCBpbmNsdWRlIHNvbWUgaGVhZGVycwoJICAqIGdzdC9nc3RjaGlsZHByb3h5LmM6IGFkZCBnc3RtYXJzaGFsLmgKCSAgKiBnc3QvZ3N0Y2xvY2suYzogRG9uJ3QgdXNlIG1lbWNodW5rcwoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IEFkZCBzb21lIGRvY3MKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IHJlbW92ZSBERVNUUk9ZRUQgZmxhZywgc2luY2UgaXQncyByZWR1bmRhbnQKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6IHNhbWUKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IGluY2x1ZGUgZ3N0bWFjcm9zLmgKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6IGRvbid0IGluY2x1ZGUgZ3N0bWFjcm9zLmgsIHNpbmNlIGl0J3MgcHJpdmF0ZQoJICAqIGdzdC9nc3RxdWVyeS5jOiBkb24ndCB1c2UgbWVtY2h1bmtzCgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IHJlbmFtZSBnc3RfcmVnaXN0cnlfZGVpbml0KCkKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDogc2FtZQoKMjAwNS0wOS0yMCAwNToxMzozMCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOiBSZW1vdmUgZG9jcyBmb3IgZ2V0Yml0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOiBSZW1vdmUgZG9jcyBmb3IgZ2V0Yml0cwoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9saWJzL3RtcGwvZ3N0Z2V0Yml0cy5zZ21sOgoJICAqIGRvY3MvbGlicy90bXBsL2dzdHB1dGJpdHMuc2dtbDoKCjIwMDUtMDktMjAgMDA6Mjc6MzcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogQWRkIGEgc2xlZXAgdG8gZW5zdXJlIGVsZW1lbnRzIGhhdmUgYSBjaGFuY2UgdG8gc3RhcnQgdGhlaXIgcGFkIHRhc2tzIGJlZm9yZSBzaHV0ZG93bi4gUmVkdWNlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IChHU1RfU1RBUlRfVEVTVCksIChzdGF0ZXNfc3VpdGUpOgoJICBBZGQgYSBzbGVlcCB0byBlbnN1cmUgZWxlbWVudHMgaGF2ZSBhIGNoYW5jZSB0byBzdGFydCB0aGVpcgoJICBwYWQgdGFza3MgYmVmb3JlIHNodXRkb3duLiBSZWR1Y2VzIHJhY3kgdGVzdCByZXN1bHRzLgoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2Zkc3JjX2luaXQpLCAoZ3N0X2Zkc3JjX2NyZWF0ZSk6CgkgIFRpbWUgb3V0IHRoZSBzZWxlY3QgZXZlcnkgbm93IGFuZCB0aGVuIHRvIGNoZWNrIGZvciBzaHV0ZG93bi4KCjIwMDUtMDktMTkgMjA6MDE6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB3aW4zMi9nc3RlbnVtdHlwZXMuKjogVXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9nc3RlbnVtdHlwZXMuYzoKCSAgKiB3aW4zMi9nc3RlbnVtdHlwZXMuaDoKCSAgVXBkYXRlLgoKMjAwNS0wOS0xOSAxNjozMjo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBBdXRvbWF0aWNhbGx5IFBBVVNFIGFuZCBSRVNVTUUgYSBwaXBlbGluZSB3aGVuIGEgZmx1c2hpbmcgc2VlayBpcyBwZXJmb3JtZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZG9fcGlwZWxpbmVfc2VlayksIChnc3RfcGlwZWxpbmVfc2VuZF9ldmVudCk6CgkgIEF1dG9tYXRpY2FsbHkgUEFVU0UgYW5kIFJFU1VNRSBhIHBpcGVsaW5lIHdoZW4gYSBmbHVzaGluZyBzZWVrCgkgIGlzIHBlcmZvcm1lZC4KCSAgUmVtb3ZlZCBvbGQgZmlsZXMuCgoyMDA1LTA5LTE5IDE2OjI4OjU4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RidXMuYzoKCSAgd2hpdGVzcGFjZSBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2UgZml4CgoyMDA1LTA5LTE5IDE1OjEyOjI1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cmVnaXN0cnkuaDogU3BhY2luZyBmaXhlbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6IFNwYWNpbmcgZml4ZW4uCgoyMDA1LTA5LTE5IDE0OjU1OjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBIYW5kbGUgc3RhdGUgY2hhbmdlIGZhaWx1cmUgbW9yZSBjb3JyZWN0bHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBIYW5kbGUgc3RhdGUgY2hhbmdlIGZhaWx1cmUgbW9yZSBjb3JyZWN0bHkuCgoyMDA1LTA5LTE5IDE0OjQxOjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrLzogZW5hYmxlIGNsZWFudXAgYWdhaW4gYWZ0ZXIgZml4aW5nIHRoZSBsZWFrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6IChydW5fcGlwZWxpbmUpOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6IChydW5fcGlwZWxpbmUpLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICBlbmFibGUgY2xlYW51cCBhZ2FpbiBhZnRlciBmaXhpbmcgdGhlIGxlYWsKCSAgKiBkb2NzL1JFQURNRToKCSAgc29tZSBtb3JlIGluZm8gb24gZG9jcwoKMjAwNS0wOS0xOSAxNDoyMDozNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIGRvbid0IGNvbXBsYWluIGFib3V0IG15IEFSTSAuc28gZmlsZXMuICBBbm90aGVyIHJlYXNvbiB3aHkgaXQgZG9lcyBtYWtlIHNlbnNlIHRvIGhhdmUgcGx1Z2lucyBmb2xsb3cgYSBzdGFuZGFyZCBmaWxlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9uJ3QgY29tcGxhaW4gYWJvdXQgbXkgQVJNIC5zbyBmaWxlcy4gIEFub3RoZXIgcmVhc29uIHdoeSBpdCBkb2VzIG1ha2Ugc2Vuc2UKCSAgdG8gaGF2ZSBwbHVnaW5zIGZvbGxvdyBhIHN0YW5kYXJkIGZpbGUgbmFtZSBwYXR0ZXJuIGxpa2UgbGliZ3N0KHdoYXRldmVyKS5zbwoKMjAwNS0wOS0xOSAxNDowOTo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogcmUtZW5hYmxlIHRlc3RzIG5vdyB0aGF0IGxlYWtzIGFyZSBwbHVnZ2VkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICByZS1lbmFibGUgdGVzdHMgbm93IHRoYXQgbGVha3MgYXJlIHBsdWdnZWQKCSAgKiBjaGVjay9nc3QvZ3N0LmM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBhZGQgc29tZSBtb3JlIHRlc3RzIHdoaWxlIGZpeGluZyBsZWFrcwoJICAqIGNvbW1vbi9jaGVjay5tYWs6CgkgIG1ha2Ugc3VyZSBiaW5hcmllcyBhcmUgdXB0b2RhdGUgd2hlbiB2YWxncmluZGluZy9nZGJpbmcKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIHJlbW92ZSBhIHJlZiB0b28gbWFueSwgYW5kIGFkZCBhIEZJWE1FIGZvciB3aGVuIHdlIGdldAoJICByb3VuZCB0byBkaXNwb3Npbmcgb2YgY2xhc3NlcwoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgZml4IHRoZSByZWZjb3VudGluZyB3aGVuIGxvYWRpbmcgYSBwbHVnaW4gZnJvbSBhIGZpbGUgYW5kCgkgIHRoZSBjb2RlIHByZXRlbmRzIHRoYXQgdGhlIHBvaW50ZXIgaXMgdGhlIHNhbWUgZXZlbiB0aG91Z2gKCSAgb2YgY291cnNlIGl0IGNhbiBjaGFuZ2UKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICB1bnJlZiBwbHVnaW5zIG1hcmtlZCBjYWNoZWQgKGEgYml0IGNvbmZ1c2luZyBhcyBhIG5hbWUpCgkgIGFzIHRoZSBkb2NzIHN0YXRlIHNob3VsZCBiZSBkb25lCgkgIHZhcmlvdXMgZG9jIGFkZGl0aW9ucyB0byBleHBsYWluIHJlZmNvdW50aW5nCgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkgIGRlYnVnZ2luZwoKMjAwNS0wOS0xOSAxNDowOTozNyArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHVwZGF0ZSBzcGVjIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBzcGVjIGZpbGUKCjIwMDUtMDktMTkgMTE6MTg6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBHc3RCdXNIYW5kbGVyIC0+IEdzdEJ1c0Z1bmMsIHJldHVybiB2YWx1ZSBoYXMgdGhlIHNhbWUgbWVhbmluZyBhcyBhbnkgb3RoZXIgR1NvdXJjZSAoRkFMU0UgPT0gcmVtb3ZlIHNvdXJjZSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKHBvcF9tZXNzYWdlcyksIChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdGJ1cy5jOiAobWVzc2FnZV9mdW5jX2VvcyksIChtZXNzYWdlX2Z1bmNfYXBwKSwKCSAgKHNlbmRfbWVzc2FnZXMpLCAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0YnVzX3N1aXRlKToKCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9waXBlbGluZXMvY2xlYW51cC5jOiAocnVuX3BpcGVsaW5lKToKCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOiAocnVuX3BpcGVsaW5lKSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2hhdmVfcGVuZGluZyksIChnc3RfYnVzX3NvdXJjZV9wcmVwYXJlKSwKCSAgKGdzdF9idXNfc291cmNlX2NoZWNrKSwgKGdzdF9idXNfc291cmNlX2Rpc3BhdGNoKSwKCSAgKGdzdF9idXNfY3JlYXRlX3dhdGNoKSwgKGdzdF9idXNfYWRkX3dhdGNoX2Z1bGwpLAoJICAoZ3N0X2J1c19hZGRfd2F0Y2gpLCAocG9sbF9mdW5jKSwgKHBvbGxfdGltZW91dCksIChnc3RfYnVzX3BvbGwpOgoJICAqIGdzdC9nc3RidXMuaDoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgKiB0b29scy9nc3QtbWQ1c3VtLmM6IChldmVudF9sb29wKToKCSAgR3N0QnVzSGFuZGxlciAtPiBHc3RCdXNGdW5jLCByZXR1cm4gdmFsdWUgaGFzIHRoZSBzYW1lIG1lYW5pbmcgYXMKCSAgYW55IG90aGVyIEdTb3VyY2UgKEZBTFNFID09IHJlbW92ZSBzb3VyY2UpLgoJICBfYWRkX3dhdGNoKCkgYW5kIF9hZGRfd2F0Y2hfZnVsbCgpIG5vdyB0YWtlIGEgTWVzc2FnZVR5cGUgbWFzayB0bwoJICBvbmx5IGhhbmRsZSBzcGVjaWZpYyB0eXBlcyBvZiBtZXNzYWdlcy4KCSAgX3BvbGwoKSByZXR1cm5zIHRoZSBHc3RNZXNzYWdlIGluc3RlYWQgb2YgdGhlIG1lc3NhZ2UgdHlwZSB0byBhdm9pZAoJICByYWNlIGNvbmRpdGlvbnMuCgkgIF9oYXZlX3BlbmRpbmcoKSB0YWtlcyBhIE1lc3NhZ2VUeXBlIG1hc2sgbm93IHRvby4KCSAgQWRkZWQgdGVzdHN1aXRlIGZvciBtdWx0aXBsZSBidXMgd2F0Y2hlcy4KCSAgRml4IHRlc3RzdWl0ZXMgYW5kIGFwcGxpY2F0aW9ucyBmb3IgbmV3IGJ1cyBBUEkuCgoyMDA1LTA5LTE4IDIyOjE1OjIzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBtYXJrIGEgYnVuY2ggb2YgdGhlIHRlc3RzIGFzIHRvIGZpeCB1bnRpbCB3ZSBmaXggdGhlbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWFyayBhIGJ1bmNoIG9mIHRoZSB0ZXN0cyBhcyB0byBmaXggdW50aWwgd2UgZml4IHRoZW0KCjIwMDUtMDktMTggMjE6NDA6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29tbW9uL2NoZWNrLm1hazogdXNlIEdTVF9QTFVHSU4gc2V0dGluZ3MgZm9yIHZhbGdyaW5kIHRlc3RzIGFzIHdlbGwsIHNvIHdlJ3JlIHZhbGdyaW5kaW5nIHRoZSBjb3JyZWN0IHRoaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbW1vbi9jaGVjay5tYWs6CgkgIHVzZSBHU1RfUExVR0lOIHNldHRpbmdzIGZvciB2YWxncmluZCB0ZXN0cyBhcyB3ZWxsLCBzbyB3ZSdyZQoJICB2YWxncmluZGluZyB0aGUgY29ycmVjdCB0aGluZwoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgIHBsdWcgYW5vdGhlciBsZWFrCgoyMDA1LTA5LTE4IDIxOjI0OjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3QuYzoKCSAgdmFyaW91cyBjbGVhbnVwcyBhbmQgbWVtbGVhayBwbHVnZ2luZy4gIG1ha2UgdmFsZ3JpbmQgaXMgaGFwcHkgbm93LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdmFyaW91cyBjbGVhbnVwcyBhbmQgbWVtbGVhayBwbHVnZ2luZy4gIG1ha2UgdmFsZ3JpbmQgaXMgaGFwcHkgbm93LgoKMjAwNS0wOS0xOCAyMToyMzoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiBjb21tb246CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJICBhZGQgY2hlY2stdmFsZ3JpbmQgdGFyZ2V0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgY2hlY2stdmFsZ3JpbmQgdGFyZ2V0CgoyMDA1LTA5LTE4IDA5OjE1OjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBsb2FkaW5nIGEgcGx1Z2luIGNhbiByZXR1cm4gTlVMTAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbG9hZGluZyBhIHBsdWdpbiBjYW4gcmV0dXJuIE5VTEwKCjIwMDUtMDktMTggMDc6NDE6MjggKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogUmV2ZXJ0IHRoZSBHT3B0aW9uIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IFJldmVydCB0aGUgR09wdGlvbiBjb2RlLgoKMjAwNS0wOS0xOCAwNjo1OToyNSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogRml4IGVudmlyb25tZW50IHZhcmlhYmxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06IEZpeCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCgkgICogY2hlY2svZ3N0L2dzdHBsdWdpbi5jOiBGaXggZm9yIEFQSSBjaGFuZ2VzLgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEZpeCBmb3IgQVBJIGNoYW5nZXMuCgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogRml4IGZvciBBUEkgY2hhbmdlcy4KCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkgICogZ3N0L2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJICAqIGdzdC9pbmRleGVycy9nc3RtZW1pbmRleC5jOgoJICAqIGdzdC9zY2hlZHVsZXJzL01ha2VmaWxlLmFtOgoJICBDaGFuZ2UgcmVnaXN0cnkgdG8ga2VlcCB0cmFjayBvZiBib3RoIHBsdWdpbnMgYW5kIGZlYXR1cmVzLAoJICByZW1vdmluZyB0aGUgZmVhdHVyZSB0cmFja2luZyBmcm9tIHBsdWdpbnMgdGhlbXNlbHZlcy4KCjIwMDUtMDktMTcgMTg6MTQ6NDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBhZGQgdmFsZ3JpbmQgdGFyZ2V0OyBkaXNhYmxlIGdzdHBsdWdpbiB1bnRpbCBpdCBwYXNzZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCB2YWxncmluZCB0YXJnZXQ7IGRpc2FibGUgZ3N0cGx1Z2luIHVudGlsIGl0IHBhc3NlcwoKMjAwNS0wOS0xNyAxODoxMToyNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBNYWtlZmlsZS5hbToKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNvbW1vbjoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGFkZCB2YWxncmluZCB0YXJnZXQ7IGRpc2FibGUgZ3N0cGx1Z2luIHVudGlsIGl0IHBhc3NlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHZhbGdyaW5kIHRhcmdldDsgZGlzYWJsZSBnc3RwbHVnaW4gdW50aWwgaXQgcGFzc2VzCgoyMDA1LTA5LTE2IDExOjI0OjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgYWRkIG1pc2luZyBpbmNsdWRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbWlzaW5nIGluY2x1ZGUKCjIwMDUtMDktMTYgMDg6MTc6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBzZXQgdGhlIHJpZ2h0IHZhcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc2V0IHRoZSByaWdodCB2YXIKCjIwMDUtMDktMTYgMDg6MTQ6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRvb2xzL2dzdC1yZWdpc3Rlci4xLmluOgoJICByZW1vdmUgZ3N0LXJlZ2lzdGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgZ3N0LXJlZ2lzdGVyCgoyMDA1LTA5LTE2IDA0OjU0OjI0ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIEdldHRpbmcgdGlyZWQgb2YgZGVidWdnaW5nLiAgRGlzYWJsZWQgYWxsIHRoZSB1bnJlZmZpbmcgb2YgcGx1Z2lucyBhbmQgZmVhdHVyZXMsIHdoaWNoIGZpeGVzIHRoZSBzZWdmYXVsdHMsIGJ1dCBvZiBjby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIEdldHRpbmcgdGlyZWQgb2YgZGVidWdnaW5nLiAgRGlzYWJsZWQgYWxsIHRoZSB1bnJlZmZpbmcgb2YKCSAgcGx1Z2lucyBhbmQgZmVhdHVyZXMsIHdoaWNoIGZpeGVzIHRoZSBzZWdmYXVsdHMsIGJ1dCBvZgoJICBjb3Vyc2UgbGVha3MgbGlrZSBjcmF6eS4gIEF0IGxlYXN0IHBsYXliaW4gd29ya3MuCgoyMDA1LTA5LTE2IDAzOjQ2OjE0ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGNoZWNrL2dzdC9nc3RwbHVnaW4uYzogTW9yZSB0ZXN0aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RwbHVnaW4uYzogKHJlZ2lzdGVyX2NoZWNrX2VsZW1lbnRzKSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKHBlZWspLCAoc3VnZ2VzdCksIChnc3RfcGx1Z2luX3N1aXRlKToKCSAgTW9yZSB0ZXN0aW5nCgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBGaXggcmVmY291bnRpbmcuCgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuaDoKCjIwMDUtMDktMTYgMDA6Mzc6NTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgIHVudmVyYm9zaWZ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1bnZlcmJvc2lmeQoKMjAwNS0wOS0xNiAwMDowODoxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBzb21lIHdoaXRlc3BhY2UgdG8gdHJpZ2dlciBhIGJ1aWxkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzb21lIHdoaXRlc3BhY2UgdG8gdHJpZ2dlciBhIGJ1aWxkCgoyMDA1LTA5LTE2IDAwOjAyOjI3ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RpbmRleC5jOiBnZXQgcmVmY291bnRpbmcgY29ycmVjdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZGV4LmM6IGdldCByZWZjb3VudGluZyBjb3JyZWN0LgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgYSBmZWF0dXJlL3BsdWdpbiBpcwoJICBub3QgZm91bmQuCgoyMDA1LTA5LTE1IDIzOjUxOjI0ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGNoZWNrLzogQWRkIHRlc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZ3N0L2dzdHBsdWdpbi5jOiBBZGQgdGVzdAoJICAqIGdzdC9nc3RwbHVnaW4uYzogRml4IHByb2JsZW1zIG5vdGljZWQgYnkgdGVzdHN1aXRlCgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoKMjAwNS0wOS0xNSAyMDo1NjozMCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IEltcGxlbWVudCBzZW1pLWRlY2VudCByZWNvdW50aW5nIGFuZCBsb2NraW5nIGluIHBsdWdpbnMgYW5kIHBsdWdpbiBmZWF0dXJlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiBJbXBsZW1lbnQgc2VtaS1kZWNlbnQgcmVjb3VudGluZyBhbmQgbG9ja2luZwoJICBpbiBwbHVnaW5zIGFuZCBwbHVnaW4gZmVhdHVyZXMuCgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCjIwMDUtMDktMTUgMTQ6MjE6MDggKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgSW1wbGVtZW50IG1pc3NpbmcgZnVuY3Rpb24uIFRoaXMgaXMgZW5vdWdoIHRvIGdldCB0aGUgYmFzaWNzIG9mIHR5cGVmaW5kaW5nIHdvcmtpbmcgLSBvZ2dkZW11eCBzdWNjZWVkcyBub3cuIGRlY29kZWJpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBJbXBsZW1lbnQgbWlzc2luZyBmdW5jdGlvbi4gVGhpcyBpcyBlbm91Z2ggdG8gZ2V0IHRoZSBiYXNpY3Mgb2YKCSAgdHlwZWZpbmRpbmcgd29ya2luZyAtIG9nZ2RlbXV4IHN1Y2NlZWRzIG5vdy4gZGVjb2RlYmluIGlzIHN0aWxsIGJyb2tlbi4KCjIwMDUtMDktMTUgMDU6NTg6MzcgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgY29uZmlndXJlLmFjOiBBZGQgLW5vLXVuZGVmaW5lZCB0byBHU1RfUExVR0lOX0xERkxBR1MgKGJ1ZyAjMzE2MDc2KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6IEFkZCAtbm8tdW5kZWZpbmVkIHRvIEdTVF9QTFVHSU5fTERGTEFHUyAoYnVnCgkgICMzMTYwNzYpCgkgICogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06IEFkZCAtbm8tdW5kZWZpbmVkIHRvIExERkxBR1MgZm9yIGxpYnMKCSAgKiBnc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgoyMDA1LTA5LTE1IDA1OjQ4OjMwICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogUmVtb3ZlIGdldGJpdHMgbGlicmFyeS4gIE5vdGhpbmcgdXNlcyBpdCwgYW5kIGl0IHNob3VsZCBiZSBpbiBzb21ldGhpbmcgbGlrZSBsaWJvaWwgaWYgc29tZW9uZSBkaWQgd2FudC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6IFJlbW92ZSBnZXRiaXRzIGxpYnJhcnkuICBOb3RoaW5nIHVzZXMgaXQsIGFuZAoJICBpdCBzaG91bGQgYmUgaW4gc29tZXRoaW5nIGxpa2UgbGlib2lsIGlmIHNvbWVvbmUgZGlkIHdhbnQKCSAgdG8gdXNlIGl0LgoJICAqIGxpYnMvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2dldGJpdHMvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvZ2V0Yml0cy9nYnRlc3QuYzoKCSAgKiBsaWJzL2dzdC9nZXRiaXRzL2dldGJpdHMuYzoKCSAgKiBsaWJzL2dzdC9nZXRiaXRzL2dldGJpdHMuaDoKCSAgKiBsaWJzL2dzdC9nZXRiaXRzL2dzdGdldGJpdHNfZ2VuZXJpYy5jOgoJICAqIGxpYnMvZ3N0L2dldGJpdHMvZ3N0Z2V0Yml0c19pMzg2LnM6CgkgICogbGlicy9nc3QvZ2V0Yml0cy9nc3RnZXRiaXRzX2lubC5oOgoKMjAwNS0wOS0xNSAwNTo0MjoxMyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvTWFrZWZpbGUuYW06IERpc3QgZ2xpYi1jb21wYXQuaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06IERpc3QgZ2xpYi1jb21wYXQuaAoKMjAwNS0wOS0xNSAwMzoyMDo0OSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBjb25maWd1cmUuYWM6IFJlbW92ZSBnc3QvcmVnaXN0cmllcywgc2luY2UgaXQncyBubyBsb25nZXIgdXNlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOiBSZW1vdmUgZ3N0L3JlZ2lzdHJpZXMsIHNpbmNlIGl0J3Mgbm8gbG9uZ2VyIHVzZWQuCgkgICogZ3N0L3JlZ2lzdHJpZXMvTWFrZWZpbGUuYW06CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzoKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5oOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5LmM6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuaDoKCSAgKiBnc3QvcmVnaXN0cmllcy9yZWdpc3RyeXRlc3QuYzoKCjIwMDUtMDktMTUgMDE6Mzg6MzMgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0LzogQ29udmVyZ2VuY2UgaXMgbmVhci4gIFNlcmlvdXNseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dsaWItY29tcGF0Lmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkgIENvbnZlcmdlbmNlIGlzIG5lYXIuICBTZXJpb3VzbHkuCgoyMDA1LTA5LTE1IDAxOjM0OjUyICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nbGliLWNvbXBhdC4qOiBBdHRlbXB0ICM0IHRvIGFwcGVhc2UgdGhlIGJ1aWxkYm90cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dsaWItY29tcGF0LmM6IChnX21rZGlyX3dpdGhfcGFyZW50cyksIChnX21rZGlyKSwgKGdfc3RhdCk6CgkgICogZ3N0L2dsaWItY29tcGF0Lmg6CgkgIEF0dGVtcHQgIzQgdG8gYXBwZWFzZSB0aGUgYnVpbGRib3RzLgoKMjAwNS0wOS0xNSAwMToyNjo0MiArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ2xpYi1jb21wYXQuYzogQXR0ZW1wdCAjMy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dsaWItY29tcGF0LmM6IChnX21rZGlyX3dpdGhfcGFyZW50cyksIChnX21rZGlyKSwgKGdfc3RhdCk6CgkgIEF0dGVtcHQgIzMuCgoyMDA1LTA5LTE1IDAxOjIwOjIyICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nbGliLWNvbXBhdC5jOiBBdHRlbXB0ICMyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ2xpYi1jb21wYXQuYzogKGdfbWtkaXJfd2l0aF9wYXJlbnRzKSwgKGdfbWtkaXIpLCAoZ19zdGF0KToKCSAgQXR0ZW1wdCAjMi4KCjIwMDUtMDktMTUgMDE6MTQ6MTcgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L01ha2VmaWxlLmFtOiBPaCB5ZWFoLCBsaWJnc3RyZWFtZXIuc28gbmVlZHMgdG8gY29udGFpbiB0aGUgbmV3IGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOiBPaCB5ZWFoLCBsaWJnc3RyZWFtZXIuc28gbmVlZHMgdG8gY29udGFpbgoJICB0aGUgbmV3IGZ1bmN0aW9ucy4KCjIwMDUtMDktMTUgMDE6MTA6NTIgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dsaWItY29tcGF0Lio6IEFkZCBzb21lIGZ1bmN0aW9ucyB0aGF0IGFyZSBpbiBuZXdlciB2ZXJzaW9ucyBvZiBnbGliIHRoYW4gd2UgY2FyZSB0byByZXF1aXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ2xpYi1jb21wYXQuYzogKGdfbWtkaXJfd2l0aF9wYXJlbnRzKSwgKGdfbWtkaXIpLCAoZ19zdGF0KToKCSAgKiBnc3QvZ2xpYi1jb21wYXQuaDogQWRkIHNvbWUgZnVuY3Rpb25zIHRoYXQgYXJlIGluIG5ld2VyIHZlcnNpb25zCgkgIG9mIGdsaWIgdGhhbiB3ZSBjYXJlIHRvIHJlcXVpcmUuCgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IFVzZSB0aGVtLgoKMjAwNS0wOS0xNSAwMDo0ODo0NSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBwby9QT1RGSUxFUy5pbjogcmVtb3ZlIGdzdC1yZWdpc3Rlci5jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBvL1BPVEZJTEVTLmluOiByZW1vdmUgZ3N0LXJlZ2lzdGVyLmMKCjIwMDUtMDktMTUgMDA6NDI6MDMgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZG9jcy9nc3QvOiBEb2N1bWVudGF0aW9uIHVwZGF0ZXMgZm9yIHJlZ2lzdHJ5IGNoYW5nZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW4uc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbmZlYXR1cmUuc2dtbDoKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzIGZvciByZWdpc3RyeSBjaGFuZ2VzLgoKMjAwNS0wOS0xNSAwMDozNToxMSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogQ29weSBnX21rZGlyX3dpdGhfcGFyZW50KCkgZnJvbSBnbGliLCBiZWNhdXNlIHdlIGRvbid0IHJlcXVpcmUgZ2xpYi0yLjguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBDb3B5IGdfbWtkaXJfd2l0aF9wYXJlbnQoKSBmcm9tIGdsaWIsCgkgIGJlY2F1c2Ugd2UgZG9uJ3QgcmVxdWlyZSBnbGliLTIuOC4KCjIwMDUtMDktMTUgMDA6MjA6MTQgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IEFkZGVkLiAgRXNzZW50aWFsbHkgbW92ZWQgb3V0IG9mIHRoZSByZWdpc3RyaWVzIGRpcmVjdG9yeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IEFkZGVkLiAgRXNzZW50aWFsbHkgbW92ZWQgb3V0IG9mIHRoZQoJICByZWdpc3RyaWVzIGRpcmVjdG9yeS4KCjIwMDUtMDktMTUgMDA6MTM6MjYgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgcmVtb3ZlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgICogZ3N0L2dzdGluZGV4LmM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnlwb29sLmM6IHJlbW92ZQoJICAqIGdzdC9nc3RyZWdpc3RyeXBvb2wuaDogcmVtb3ZlCgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJICAqIGdzdC9nc3R1cmkuYzoKCSAgKiB0b29scy9NYWtlZmlsZS5hbToKCSAgKiB0b29scy9nc3QtY29tcHByZXAuYzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICAqIHRvb2xzL2dzdC1yZWdpc3Rlci5jOiByZW1vdmUKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICBSZWdpc3RyeSByZXdyaXRlLiAgQ2hhbmdlcyByZWdpc3RyeSBmcm9tIGJlaW5nIGEgZmlsZSBjcmVhdGVkCgkgIGJ5IGEgdG9vbCBpbnRvIGEgc2ltcGxlIGNhY2hlIGZpbGUgY3JlYXRlZCBhdXRvbWF0aWNhbGx5IGJ5CgkgIGxpYmdzdHJlYW1lci4gIFJlbW92ZWQgZ3N0LXJlZ2lzdGVyIChiZWNhdXNlIGl0J3Mgbm8gbG9uZ2VyCgkgIG5lZWRlZCkuICBSZW1vdmUgcmVnaXN0cnkgcG9vbHMsIGJlY2F1c2Ugd2Ugb25seSBoYXZlIG9uZQoJICByZWdpc3RyeSBpbXBsZW1lbnRhdGlvbiAoWE1MKS4gIEZpeCB1cCBvdGhlciBzdWJzeXN0ZW1zIGFzCgkgIG5lY2Vzc2FyeS4KCjIwMDUtMDktMTQgMjI6MDU6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbnVtdHlwZXMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbXBsZW1lbnRzaW50ZXJmYWNlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXguc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleGZhY3Rvcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmZvLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0b2JqZWN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkdGVtcGxhdGUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwaXBlbGluZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbmZlYXR1cmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHZhbHVlLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RnZXRiaXRzLnNnbWw6CgkgIHdob29wcywgd3JvbmcgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aG9vcHMsIHdyb25nIGNvbW1pdAoKMjAwNS0wOS0xNCAyMjowMTo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGRvY3MvUkVBRE1FOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbnVtdHlwZXMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbXBsZW1lbnRzaW50ZXJmYWNlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXguc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleGZhY3Rvcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmZvLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0b2JqZWN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkdGVtcGxhdGUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwaXBlbGluZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbmZlYXR1cmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHZhbHVlLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RnZXRiaXRzLnNnbWw6CgkgIG5vdGVzIG9uIGRvY3VtZW50aW5nIGVsZW1lbnRzIGFuZCBwbHVnaW5zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBub3RlcyBvbiBkb2N1bWVudGluZyBlbGVtZW50cyBhbmQgcGx1Z2lucwoKMjAwNS0wOS0xNCAxNToxNjozMyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogY29tbW9uOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIFJlc3Qgb2YgdGhlIGZpeCBmb3IgMzE2MTU1OiBkb24ndCBjb25mdXNlIE1pbkdXIHdoZW4gcnVubmluZyBnbGliLW1rZW51bXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlc3Qgb2YgdGhlIGZpeCBmb3IgMzE2MTU1OiBkb24ndCBjb25mdXNlIE1pbkdXIHdoZW4gcnVubmluZyBnbGliLW1rZW51bXMKCjIwMDUtMDktMTMgMTU6MDM6MDUgKzAwMDAgIFN0ZXZlIExob21tZSA8c3RldmUubGhvbW1lQGZyZWUuZnI+CgoJICBmaWxlIGdzdC10eXBlZmluZC52Y3Byb2ogd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaWxlIGdzdC10eXBlZmluZC52Y3Byb2ogd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgoyMDA1LTA5LTEzIDE0OjQ5OjIzICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgRG9uJ3QgdXNlIHdpbmRvd3MgbGlua2luZyBhdHRyaWJ1dGVzIGluIE1pbkdXCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBEb24ndCB1c2Ugd2luZG93cyBsaW5raW5nIGF0dHJpYnV0ZXMgaW4gTWluR1cKCjIwMDUtMDktMTMgMTE6MDA6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IEFwcGFyZW50bHkgcGVvcGxlIHRoaW5rIGl0J3MgYmV0dGVyIGlmIHRoaXMgZnVuY3Rpb24gZG9lc24ndCB0cnkgdG8gc2V0IHRoZSBzdGF0ZSB0byB3aGF0ZXZlciBzdGF0ZSB3Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoc2V0X3N0YXRlX2FzeW5jX3RocmVhZF9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9hc3luYyk6CgkgIEFwcGFyZW50bHkgcGVvcGxlIHRoaW5rIGl0J3MgYmV0dGVyIGlmIHRoaXMgZnVuY3Rpb24gZG9lc24ndAoJICB0cnkgdG8gc2V0IHRoZSBzdGF0ZSB0byB3aGF0ZXZlciBzdGF0ZSB3YXMgYXNrZWQgZm9yIG9uIHRoZSBmaXJzdAoJICBjYWxsIHRvIHRoaXMgZnVuY3Rpb24gZm9yIGFueSBvYmplY3QuICBTZXJpb3VzbHkuCgoyMDA1LTA5LTEyIDE4OjE0OjAzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGFkZCBhIGdzdF9lbGVtZW50X3NldF9zdGF0ZV9hc3luYyBtZXRob2QgdGhhdCBzZXRzIHRoZSBzdGF0ZSBhbmQgc3RhcnRzIGEgdGhyZWFkIHRvIG1ha2Ugc3VyZSB0aGUgc3RhdGUgY2hhbmdlIGNvbXBsZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R1dGlscy5jOiAoc2V0X3N0YXRlX2FzeW5jX3RocmVhZF9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9hc3luYyk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIGFkZCBhIGdzdF9lbGVtZW50X3NldF9zdGF0ZV9hc3luYyBtZXRob2QgdGhhdAoJICBzZXRzIHRoZSBzdGF0ZSBhbmQgc3RhcnRzIGEgdGhyZWFkIHRvIG1ha2Ugc3VyZSB0aGUgc3RhdGUKCSAgY2hhbmdlIGNvbXBsZXRlcyBhcyBiZXN0IGFzIGl0IGNhbgoKMjAwNS0wOS0xMiAxNzowMToxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgY29kaWZ5IGRlc2lnbitiZWhhdmlvdXIgaW4gdGVzdHN1aXRlIGFmdGVyIGRpc2N1c3Npb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNvZGlmeSBkZXNpZ24rYmVoYXZpb3VyIGluIHRlc3RzdWl0ZSBhZnRlciBkaXNjdXNzaW9uCgoyMDA1LTA5LTEyIDE2OjEwOjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvOiBhZGQgYSBxdW90ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1xdW90ZXMueG1sOgoJICBhZGQgYSBxdW90ZQoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfc3RhdGUpOgoJICBhZGQgc29tZSBkZWJ1ZwoKMjAwNS0wOS0xMiAxMzo0NTowNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvOiBSZW1vdmUgdGhlIHJlcXVpcmVtZW50IGZvciBzdWItY2xhc3NlcyB0byBjYWxsIHRoZSBwYXJlbnQgaW1wbGVtZW50YXRpb24gb2YgcHJlcGFyZV9vdXRwdXRfYnVmZmVyIHdpdGggYSB3cmFwcGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZiksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX3RyYW5zZm9ybV9pcCksCgkgIChnc3RfY2Fwc2ZpbHRlcl9wcmVwYXJlX2J1Zik6CgkgIFJlbW92ZSB0aGUgcmVxdWlyZW1lbnQgZm9yIHN1Yi1jbGFzc2VzIHRvIGNhbGwgdGhlIHBhcmVudAoJICBpbXBsZW1lbnRhdGlvbiBvZiBwcmVwYXJlX291dHB1dF9idWZmZXIgd2l0aCBhIHdyYXBwZXIgZnVuY3Rpb24uCgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkgIEZpeCAjZGVmaW5lIHdyYXBwZXIKCjIwMDUtMDktMTEgMTk6MjI6MjMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IG1vcmUgZG9jIGNsZWFudXBzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIG1vcmUgZG9jIGNsZWFudXBzCgoyMDA1LTA5LTExIDEzOjA3OjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luLnNnbWw6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJICBkb2MgYnVpbGQgY2xlYW4sIGh1cnJheQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jIGJ1aWxkIGNsZWFuLCBodXJyYXkKCjIwMDUtMDktMTEgMTI6NTc6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZXMuc2dtbDoKCSogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICB2YXJpb3VzIGRvYyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdmFyaW91cyBkb2MgZml4ZXMKCjIwMDUtMDktMTEgMTI6MDI6MDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBmaXggc2lsbHkgYnVnIHRoYXQgY2F1c2VkIGJ1aWxkIHRvIGZhaWwgd2hlbiBjaGVjayBpcyBtaXNzaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggc2lsbHkgYnVnIHRoYXQgY2F1c2VkIGJ1aWxkIHRvIGZhaWwgd2hlbiBjaGVjayBpcyBtaXNzaW5nCgoyMDA1LTA5LTExIDEyOjAxOjEyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvZ3N0LzogcmVhcnJhbmdlIGdzdHZhbHVlIHNlY3Rpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHZhbHVlLnNnbWw6CgkgIHJlYXJyYW5nZSBnc3R2YWx1ZSBzZWN0aW9uCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZSk6CgkgIE5PTkUgLT4gVk9JRAoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgZG9jIHVwZGF0ZXMKCjIwMDUtMDktMTEgMTE6NTc6MDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBkZWJ1ZyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGVidWcgZml4ZXMKCjIwMDUtMDktMDkgMjM6NDU6MTUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOiBIZWFkZXIgaW5jbHVkZSBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzoKCSAgSGVhZGVyIGluY2x1ZGUgZml4LgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9kZWZhdWx0X3ByZXBhcmVfYnVmKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIFNvbWUgbW9yZSBiYXNldHJhbnNmb3JtIGNoYW5nZXMgYW5kIGZpeGVzIHRvIGVuYWJsZSBzdWItY2xhc3NlcwoJICB0aGF0IG1vZGlmeSBidWZmZXIgbWV0YWRhdGEgb25seS4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfY2xhc3NfaW5pdCksCgkgIChnc3RfY2Fwc2ZpbHRlcl9pbml0KSwgKGdzdF9jYXBzZmlsdGVyX3RyYW5zZm9ybV9pcCksCgkgIChnc3RfY2Fwc2ZpbHRlcl9wcmVwYXJlX2J1Zik6CgkgIElmIHRoZSBvdXRwdXQgcGFkIGhhcyBmaXhlZCBhbGxvd2VkIGNhcHMgYW5kIGlucHV0IGJ1ZmZlcnMKCSAgZG9uJ3QgaGF2ZSBhbnksIHNldCB0aGUgZml4ZWQgY2FwcyBvbiBvdXRnb2luZyBidWZmZXJzLgoKMjAwNS0wOS0wOSAxODowNTo0MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIG9iamVjdCBkZWJ1Z2dpbmcgaXMgZ29vZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgb2JqZWN0IGRlYnVnZ2luZyBpcyBnb29kCgoyMDA1LTA5LTA5IDE3OjQyOjIwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6IE1ha2UgdGhlIGVycm9yIGEgbGl0dGxlIGNsZWFyZXIgd2hlbiB0aGUgdGVzdCBmYWlscyBiZWNhdXNlIGlkZW50aXR5IG1hZGUgYSBjb3B5IG9mIHRoZSBidS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBNYWtlIHRoZSBlcnJvciBhIGxpdHRsZSBjbGVhcmVyIHdoZW4gdGhlIHRlc3QgZmFpbHMgYmVjYXVzZQoJICBpZGVudGl0eSBtYWRlIGEgY29weSBvZiB0aGUgYnVmZmVyLgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIE5ldyBzeW1ib2xzIGluIGdzdGJhc2V0cmFuc2Zvcm0uaAoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KSwgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fc2l6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY29uZmlndXJlX2NhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2RlZmF1bHRfcHJlcGFyZV9idWYpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF91bml0X3NpemUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X3Bhc3N0aHJvdWdoKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfaW5fcGxhY2UpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2lzX2luX3BsYWNlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIENoYW5nZSBCYXNlVHJhbnNmb3JtIHRvIHNlcGFyYXRlIGluX3BsYWNlIG9wZXJhdGUgZnJvbSBzYW1lX2NhcHMKCSAgb3V0cHV0LiBpbl9wbGFjZSBpbXBsaWVzIHRoYXQgdGhlIGVsZW1lbnQgY2FuIHBlcmZvcm0gdGhlIHRyYW5zZm9ybQoJICBvbiBpbmNvbWluZyBidWZmZXJzIGluLXBsYWNlLCBldmVuIGlmIHRoZSBjYXBzIG9uIHRoZSBvdXRwdXQgYXJlCgkgIGRpZmZlcmVudC4KCSAgU3ViLWNsYXNzIGVsZW1lbnRzIGNhbiBub3cgaW1wbGVtZW50IHNwZWNpYWwgYnVmZmVyIGFsbG9jYXRpb24KCSAgbWV0aG9kcyBmb3Igb3V0Z29pbmcgYnVmZmVycyBpZiB0aGV5IHdpc2ggdG8uCgkgIEJpZyBkb2N1bWVudGF0aW9uIGFkZGl0aW9uLgoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl90cmFuc2Zvcm1faXApOgoJICAqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICBDaGFuZ2VzIGZvciBiYXNldHJhbnNmb3JtIG1vZGlmaWNhdGlvbnMuCgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2Zkc3JjX2luaXQpLCAoZ3N0X2Zkc3JjX2NyZWF0ZSk6CgkgIENvbXBpbGUgZml4LiBFeHRyYSBkZWJ1ZyBvdXRwdXQuCgoyMDA1LTA5LTA5IDE1OjE5OjI0ICswMDAwICBTdGV2ZSBMaG9tbWUgPHN0ZXZlLmxob21tZUBmcmVlLmZyPgoKCSAgZmlsZSBnc3Rjb250cm9sLnZjcHJvaiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpbGUgZ3N0Y29udHJvbC52Y3Byb2ogd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgoyMDA1LTA5LTA5IDE0OjM0OjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL2dzdC9nc3RwYWQuYzogYWRkIHRlc3RzIGZvciB2YWxpZCBwYWQgbmFtaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKSwgKG5hbWVfaXNfdmFsaWQpLAoJICAoZ3N0X3BhZF9zdWl0ZSk6CgkgIGFkZCB0ZXN0cyBmb3IgdmFsaWQgcGFkIG5hbWluZwoJICAqIGdzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX2xvZ19tZXNzYWdlX2Z1bmMpLAoJICAoZ3N0X2NoZWNrX2xvZ19jcml0aWNhbF9mdW5jKToKCSAgYWRkIEFTU0VSVF9XQVJOSU5HCgkgIHJlbW92ZSBwcmludGluZyBvZiBjb2RlLCBpdCBpcyBmcmFnaWxlIHdoZW4gdGhlIGNvZGUgY29udGFpbnMKCSAgJSBhbmQgdGhlIGxpbmUgbnVtYmVyIGlzIGVub3VnaCBpbmZvCgkgICogZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF90ZW1wbGF0ZV9uZXcpOgoJICBmaXggbWVtbGVha3MKCjIwMDUtMDktMDkgMTM6Mjg6MDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJICBhbmQgdGhlIGNoYW5nZWxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYW5kIHRoZSBjaGFuZ2Vsb2cKCjIwMDUtMDktMDkgMTM6MjY6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiBzYXkgd2hhdCBDSEVDSyBmbGFncyB3ZSB1c2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBzYXkgd2hhdCBDSEVDSyBmbGFncyB3ZSB1c2UKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWhlbHBlci5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWludGVycG9sYXRpb24uYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9wbHVnaW5faW5mbyk6CgkgIHdlIGRvbid0IHVzZSBkYXNoZXMgaW4gaGVhZGVyIG5hbWVzCgoyMDA1LTA5LTA5IDEyOjAyOjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrLzogYWRkaW5nIGEgdGVzdCBmb3IgcGlwZWxpbmVzIGFuZCBzdGF0ZSBjaGFuZ2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiAocG9wX21lc3NhZ2VzKSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9waXBlbGluZV9zdWl0ZSksIChtYWluKToKCSAgYWRkaW5nIGEgdGVzdCBmb3IgcGlwZWxpbmVzIGFuZCBzdGF0ZSBjaGFuZ2VzCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnZXRfc3RhdGVfZnVuYyk6CgkgIGFkZCBzb21lIGRlYnVnZ2luZwoJICAqIGdzdHJlYW1lci5zcGVjLmluOgoJICBmaXggdXAgc3BlYyBmaWxlCgoyMDA1LTA5LTA4IDE3OjIzOjU3ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkgIFZhcmlvdXMgZml4ZXMgZm9yIHVuc2Vla2FibGUsIHVubW1hcGFibGUsIGFuZCBub24tbm9ybWFsIGZpbGVzLCBzbyB0aGF0IGZhbGxiYWNrIHRvIHJlYWQoKSByYXRoZXIgdGhhbiBtbWFwKCkgd29ya3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBWYXJpb3VzIGZpeGVzIGZvciB1bnNlZWthYmxlLCB1bm1tYXBhYmxlLCBhbmQgbm9uLW5vcm1hbCBmaWxlcywgc28gdGhhdAoJICBmYWxsYmFjayB0byByZWFkKCkgcmF0aGVyIHRoYW4gbW1hcCgpIHdvcmtzLgoJICBBbGxvdyBuZXdzZWdtZW50IGV2ZW50cyB3aXRoIHN0YXJ0ID09IGVuZCwgc28gdGhhdCBjYXNlcyB3aGVyZSB0aGF0J3MKCSAgY29ycmVjdCB3b3JrIChlLmcuIGZpbGVzcmMgb24gYSB6ZXJvLXNpemUgZmlsZSkuCgoyMDA1LTA5LTA4IDExOjQ1OjEyICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1zdGF0ZS54bWw6CgkgIFVwZGF0ZSB0aGUgbWFudWFsIHNlY3Rpb24gb24gc3RhdGUgY2hhbmdlcyBmb3Igd2luZ28ncyBuZXcgQVBJCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgdGhlIG1hbnVhbCBzZWN0aW9uIG9uIHN0YXRlIGNoYW5nZXMgZm9yIHdpbmdvJ3MgbmV3IEFQSQoKMjAwNS0wOS0wNyAxNToyMjoyOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IENhbGwgZ19tb2R1bGVfY2xvc2Ugd2hlbiB3ZSBkb24ndCBsb2FkIHRoZSBtb2R1bGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOgoJICBDYWxsIGdfbW9kdWxlX2Nsb3NlIHdoZW4gd2UgZG9uJ3QgbG9hZCB0aGUgbW9kdWxlCgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzoKCSAgKGdzdF94bWxfcmVnaXN0cnlfZ2V0X3Byb3BlcnR5KToKCSAgUG9ydCBsZWFrIGZpeCBmcm9tIDAuOAoKMjAwNS0wOS0wNyAxNDowODo0NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogcG8vUE9URklMRVMuaW46CgkgIG1vcmUgcmVuYW1lIGZpeGluZyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vcmUgcmVuYW1lIGZpeGluZyAuLi4KCjIwMDUtMDktMDcgMTM6MjI6MTYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHJlbmFtZWQgZ3N0dGFnIC0+IGdzdHRhZ2xpc3QsIGdzdHRhZ2ludGVyZmFjZSAtPiBnc3R0YWdzZXR0ZXIgaW5saW5lZCBkb2NzIGZvciBnc3R0cmFjZSwgZ3N0dHJhc2hzdGFjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHRyYWNlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R0cmFzaHN0YWNrLnNnbWw6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiBnc3QvZ3N0dGFnLmM6CgkgICogZ3N0L2dzdHRhZy5oOgoJICAqIGdzdC9nc3R0YWdpbnRlcmZhY2UuYzoKCSAgKiBnc3QvZ3N0dGFnaW50ZXJmYWNlLmg6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkgICogZ3N0L2dzdHRyYWNlLmM6CgkgICogZ3N0L2dzdHRyYWNlLmg6CgkgICogZ3N0L2dzdHRyYXNoc3RhY2suYzoKCSAgcmVuYW1lZCBnc3R0YWcgLT4gZ3N0dGFnbGlzdCwgZ3N0dGFnaW50ZXJmYWNlIC0+IGdzdHRhZ3NldHRlcgoJICBpbmxpbmVkIGRvY3MgZm9yIGdzdHRyYWNlLCBnc3R0cmFzaHN0YWNrCgoyMDA1LTA5LTA3IDEyOjM1OjIzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBzcGxpdHRlZCBnc3R0eXBlZmluZCBpbnRvIGdzdHR5cGVmaW5kLCBnc3R0eXBlZmluZGZhY3RvcnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9lbGVtZW50cy9nc3RidWZmZXJzdG9yZS5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgICogZ3N0L2dzdC5oOgoJICAqIGdzdC9nc3R0eXBlZmluZC5jOgoJICAqIGdzdC9nc3R0eXBlZmluZC5oOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzogKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9nZXRfdHlwZSksCgkgIChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfY2xhc3NfaW5pdCksIChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfaW5pdCksCgkgIChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfZGlzcG9zZSksCgkgIChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfdW5sb2FkX3RoeXNlbGYpLAoJICAoZ3N0X3R5cGVfZmluZF9sb2FkX3BsdWdpbiksIChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfZ2V0X2xpc3QpLAoJICAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2dldF9jYXBzKSwKCSAgKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9nZXRfZXh0ZW5zaW9ucyksCgkgIChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfY2FsbF9mdW5jdGlvbik6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5oOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuYzoKCSAgc3BsaXR0ZWQgZ3N0dHlwZWZpbmQgaW50byBnc3R0eXBlZmluZCwgZ3N0dHlwZWZpbmRmYWN0b3J5CgoyMDA1LTA5LTA3IDEwOjA2OjU2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwpOiBGaXggYSByYWNlIGNvbmRpdGlvbiB3aGVyZWJ5IHRoZSBwYWQncyB0YXNrIGZ1bmN0aW9uIGlzIGVudGVyZWQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMDcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsKTogRml4IGEgcmFjZQoJICBjb25kaXRpb24gd2hlcmVieSB0aGUgcGFkJ3MgdGFzayBmdW5jdGlvbiBpcyBlbnRlcmVkIGJlZm9yZSB0aGUKCSAgcGFkX21vZGUgdmFyaWFibGUgd2FzIHNldC4KCjIwMDUtMDktMDYgMjI6NTc6MDUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBDYXRjaCBtaXNiZWhhdmluZyBwYWRfYWxsb2MgZnVuY3Rpb25zIHRoYXQgZG9uJ3Qgc2V0IHVwIGNhcHMgYW5kIGRvIGl0IGZvciB0aGVtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FsbG9jX2J1ZmZlcik6CgkgIENhdGNoIG1pc2JlaGF2aW5nIHBhZF9hbGxvYyBmdW5jdGlvbnMgdGhhdCBkb24ndAoJICBzZXQgdXAgY2FwcyBhbmQgZG8gaXQgZm9yIHRoZW0uCgoyMDA1LTA5LTA2IDIyOjAzOjAxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOiB0ZXN0IGZvciBwaXBlIT1OVUxMCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6IChydW5fcGlwZWxpbmUpOgoJICB0ZXN0IGZvciBwaXBlIT1OVUxMCgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0bWVtY2h1bmsuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBhcnNlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R0YWdsaXN0LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R0YWdzZXR0ZXIuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVmaW5kLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R0eXBlZmluZGZhY3Rvcnkuc2dtbDoKCSAgKiBnc3QvZ3N0bWVtY2h1bmsuYzoKCSAgKiBnc3QvZ3N0cGFyc2UuYzoKCSAgKiBnc3QvZ3N0dGFnLmM6CgkgICogZ3N0L2dzdHRhZ2ludGVyZmFjZS5jOgoJICAqIGdzdC9nc3R0eXBlZmluZC5jOgoJICAqIGdzdC9nc3R0eXBlZmluZC5oOgoJICBpbmxpbmVkIG1vcmUgZG9jcwoKMjAwNS0wOS0wNiAxODoxODo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGFkZCBhIGNoZWNrIGZvciBhIGdob3N0cGFkIHRoYXQgZG9lc24ndCBoYXZlIGEgdGFyZ2V0IGJlaW5nIGxpbmtlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgY2hlY2sgZm9yIGEgZ2hvc3RwYWQgdGhhdCBkb2Vzbid0IGhhdmUgYSB0YXJnZXQgYmVpbmcgbGlua2VkCgoyMDA1LTA5LTA2IDE0OjExOjIxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBoZWFkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIGhlYWQKCj09PSByZWxlYXNlIDAuOS4yID09PQoKMjAwNS0wOS0wNiAxNDowMjoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFQURNRToKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJICByZWxlYXNpbmcgMC45LjIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjkuMgoKMjAwNS0wOS0wNiAxMTo0NTowMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkqIGNvbW1vbjoKCSAgdXBkYXRlIHJlYWRtZSB3aXRoIGV4cGxhbmF0aW9uIG9mIG1vZHVsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSByZWFkbWUgd2l0aCBleHBsYW5hdGlvbiBvZiBtb2R1bGVzCgoyMDA1LTA5LTA2IDA5OjUyOjIzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJKiBkb2NzL3JhbmRvbS9DaGFuZ2VMb2ctMC44OgoJICBjaGFuZ2Vsb2cgc3BsaXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNoYW5nZWxvZyBzcGxpdAoKMjAwNS0wOS0wNSAxNzo1NToxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBhdXRvZ2VuLnNoOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJICBtYWludGVuYW5jZSB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtYWludGVuYW5jZSB1cGRhdGVzCgoyMDA1LTA5LTA1IDE3OjUzOjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgYWRkaW5nIC1iYWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGluZyAtYmFkCgoyMDA1LTA5LTA1IDE2OjU0OjU0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS4qOiBhbmQgdXBkYXRlIHRvIG5ld2VyIEFQSS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuaDoKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5jOiBhbmQgdXBkYXRlIHRvIG5ld2VyIEFQSS4KCSAgSW5jaWRlbnRhbGx5IHRoZXkgc2hvdWxkIGJlIGEgYml0IGZhc3RlciBub3cgdGhhdCB0aGV5IGRvbid0IGhhdmUKCSAgdG8gcGFyc2UgdGhlIGNhcHMuCgoyMDA1LTA5LTA1IDE2OjUyOjU2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS4qOiBVbS4uLiByZXN1cnJlY3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMDUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuaDoKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5jOiBVbS4uLiByZXN1cnJlY3QuLi4KCjIwMDUtMDktMDUgMTY6MzY6NDcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5Lio6IFJlbW92ZSBmcm9tIENWUywgdGhleSB3ZXJlIHJlcGxhY2VkIGJ5IHRoZSBsaWJ4bWwgcmVnaXN0cnkgYSB3aGlsZSBiYWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTA1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5Lmg6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuYzogUmVtb3ZlIGZyb20gQ1ZTLCB0aGV5IHdlcmUKCSAgcmVwbGFjZWQgYnkgdGhlIGxpYnhtbCByZWdpc3RyeSBhIHdoaWxlIGJhY2sKCjIwMDUtMDktMDUgMTE6NTQ6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ2VuZXJpYy8uZ2l0aWdub3JlOgoJKiBjaGVjay9nc3QvLmdpdGlnbm9yZToKCSogZG9jcy9SRUFETUU6CgkqIGV4YW1wbGVzL3B3Zy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcHdnLy5naXRpZ25vcmU6CgkgIG1haW50ZW5hbmNlIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1haW50ZW5hbmNlIHVwZGF0ZXMKCjIwMDUtMDktMDUgMDk6Mzg6MzggKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgIFJldmVyIHRvIDEuODAgdmVyc2lvbiBvZiB0aGlzIGZpbGUgYXMgR3N0VXRpbHMgaXMgbm90IGFzIGRlYWQgYXMgaXQgc2VlbWVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZlciB0byAxLjgwIHZlcnNpb24gb2YgdGhpcyBmaWxlIGFzIEdzdFV0aWxzIGlzIG5vdCBhcyBkZWFkIGFzIGl0IHNlZW1lZAoKMjAwNS0wOS0wNSAwOToyMzo0NCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogY29tbW9uOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICByZW1vdmUgR3N0VXRpbHMgbWVudGlvbiBhcyBpdCBpcyBub3cgZ29uZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIEdzdFV0aWxzIG1lbnRpb24gYXMgaXQgaXMgbm93IGdvbmUKCjIwMDUtMDktMDQgMTE6MDE6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLnBjLmluOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIG5lZWQgdG8gYWRkIC1sY2hlY2sgdG8gdGhlIHBrZ2NvbmZpZyBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBuZWVkIHRvIGFkZCAtbGNoZWNrIHRvIHRoZSBwa2djb25maWcgZmlsZQoKMjAwNS0wOS0wMyAxNzozNjoyMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIGZpeCBmb3IgYSBjcml0aWNhbCB3aGVuIGEgbW9kdWxlIHJldHVybnMgTlVMTCBvbiBvcGVuaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZm9yIGEgY3JpdGljYWwgd2hlbiBhIG1vZHVsZSByZXR1cm5zIE5VTEwgb24gb3BlbmluZwoKMjAwNS0wOS0wMyAxNzowMDo1MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luLnNnbWw6CgkqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOgoJKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGFkZCBhIHNvdXJjZSBwbHVnaW4gZGVzY3JpcHRpb24gZmllbGQsIHRvIHJlcHJlc2VudCB0aGUgc291cmNlIG1vZHVsZSB0aGlzIHBsdWdpbiBpcyBhIHBhcnQgb2YuICBCeSBkZWZhdWx0IEdTVF9QTFVHSS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgc291cmNlIHBsdWdpbiBkZXNjcmlwdGlvbiBmaWVsZCwgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UKCSAgbW9kdWxlIHRoaXMgcGx1Z2luIGlzIGEgcGFydCBvZi4gIEJ5IGRlZmF1bHQgR1NUX1BMVUdJTl9ERUZJTkUKCSAgd2lsbCBzZXQgaXQgdG8gUEFDS0FHRSwgd2hpY2ggaXMgYXV0b21ha2UncyBpZGVhIG9mIHRoZSBuYW1lIG9mCgkgIHRoZSBzb3VyY2UgcHJvamVjdC4KCjIwMDUtMDktMDMgMTY6MTY6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBkb2NzL2h0bWxpbnN0YWxsLm1hazoKCSAgZml4IGRpc3RjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGRpc3RjaGVjawoKMjAwNS0wOS0wMyAxNDoyMDoxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBNYWtlZmlsZS5hbToKCSogZG9jcy9odG1saW5zdGFsbC5tYWs6CgkgIGVuYWJsZSBkb2NzIGJ1aWxkIGZvciBkaXN0Y2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGVuYWJsZSBkb2NzIGJ1aWxkIGZvciBkaXN0Y2hlY2sKCjIwMDUtMDktMDMgMTM6NTQ6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9wbHVnaW5zLy5naXRpZ25vcmU6CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdGRvYy1ta2RiOgoJKiBkb2NzL3BsdWdpbnMvZ3N0ZG9jLW1rdG1wbDoKCSogZG9jcy9wbHVnaW5zL2dzdGRvYy1zY2Fub2JqOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMudHlwZXMuaW46CgkqIGRvY3MvcGx1Z2lucy90bXBsL2FjM2RlYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9hYzNwYXJzZS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9hdWRpb3NjYWxlLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2NvYmluLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2R2ZHNyYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9leGFtcGxlLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdGF2aWVuY29kZXIuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0anBlZy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RqcGVnZGVjLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdGpwZWdlbmMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0bXBlZzFlbmNvZGVyLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdG1wZWcyZW5jLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdG1wZWcycGxheS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RtcGVnX3BsYXkuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0bXBlZ2F1ZGlvLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdG1wZzEyMy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RwYXJzZWF1LnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdHBhcnNlYXZpLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdHBhcnNld2F2LnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdHJlYW1lci1wbHVnaW5zLXVudXNlZC5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RzcGVjdHJ1bS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3R2NGxzcmMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0d2luY29kZWMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0d2luZGVjLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdHdpbmVuYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3R4YS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3R4aW5nLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL21lZGlhbi5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9tcDF2aWRlb3BhcnNlLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL21wMnZpZGVvcGFyc2Uuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvbXAzcGFyc2Uuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvbXBlZzFwYXJzZS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9tcGVnMnBhcnNlLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL21wZWcyc3VidC5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9ydGpwZWdkZWMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvcnRqcGVnZW5jLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3Ntb290aC5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9zbW9vdGh3YXZlLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3NwaW5kZW50aXR5LnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3N0ZXJlby5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9zeW5hZXN0aGVzaWEuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvc3lzdGVtX2VuY29kZS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC92Y2RzcmMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvdmlkZW9zY2FsZS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC92aWRlb3Npbmsuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvdm9sdW1lLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3ZvcmJpc2RlYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC92b3JiaXNlbmMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvdnVtZXRlci5zZ21sOgoJICByZW1vdmUgb2xkIHBsdWdpbnMgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIG9sZCBwbHVnaW5zIGRvY3MKCjIwMDUtMDktMDMgMTM6NDk6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBNYWtlZmlsZS5hbToKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvTWFrZWZpbGUuYW06CgkqIGRvY3MvZmFxL01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlcy5zZ21sOgoJKiBkb2NzL2h0bWxpbnN0YWxsLm1hazoKCSogZG9jcy9tYW51YWwvTWFrZWZpbGUuYW06CgkqIGRvY3MvcHdnL01ha2VmaWxlLmFtOgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICBjbGVhbiB1cCBkb2NzIGJ1aWxkIGEgbGl0dGxlOyBoYXZlIGRvY2RpciBiZSBhbiBvdmVycmlkYWJsZSBpbnN0YWxsIGxvY2F0aW9uOyBzZXBhcmF0ZSBndGstZG9jIGFuZCBkb2Nib29rIGJpdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNsZWFuIHVwIGRvY3MgYnVpbGQgYSBsaXR0bGU7IGhhdmUgZG9jZGlyIGJlIGFuIG92ZXJyaWRhYmxlIGluc3RhbGwgbG9jYXRpb247IHNlcGFyYXRlIGd0ay1kb2MgYW5kIGRvY2Jvb2sgYml0cwoKMjAwNS0wOS0wMiAyMzozNjoyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0dXJpLmg6CgkgIHdoaXRlc3BhY2UgY2xlYW51cHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2UgY2xlYW51cHMKCjIwMDUtMDktMDIgMjM6MTc6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBBZGQgY29tbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcGFkX2J1ZmZlcl9hbGxvYyk6CgkgIEFkZCBjb21tZW50LgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19pbml0KSwKCSAgKGdzdF9mYWtlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgTWFrZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gdGhyZWFkLXNhZmUuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hbGxvY19idWZmZXIpOgoJICBTZXQgb2Zmc2V0IG9uIGdlbmVyaWMgYnVmZmVyIGFsbG9jYXRlZCBieSBmYWxsYmFjay4KCjIwMDUtMDktMDIgMjM6MDM6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHRyYXNoc3RhY2suaDoKCSAgd2hpdGVzcGFjZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZSBmaXhlcwoKMjAwNS0wOS0wMiAyMTozNzo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcnVuIHRoZSB3aW5nby1tYWdpYyBzY3JpcHQgYWdhaW5zdCB0aGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKSwKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X25ldyksCgkgIChnc3RfY29udHJvbGxlcl9maW5kX2NvbnRyb2xsZWRfcHJvcGVydHkpOgoJICBydW4gdGhlIHdpbmdvLW1hZ2ljIHNjcmlwdCBhZ2FpbnN0IHRoZSBkb2NzCgoyMDA1LTA5LTAyIDE4OjM2OjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBkb2NzL2dzdC90bXBsL2dzdHF1ZXVlLnNnbWw6CgkgIHJlbW92ZWQgZmlsZSBhZ2FpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlZCBmaWxlIGFnYWluCgoyMDA1LTA5LTAyIDE3OjIzOjA2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBtZXJnZWQgZWxlbWVudGRldGFpbHMgZG9jcyBpbnRvIGVsZW1lbnRmYWN0b3J5IGRvY3MgaW5saW5lZCBib3RoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50ZGV0YWlscy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudGZhY3Rvcnkuc2dtbDoKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBtZXJnZWQgZWxlbWVudGRldGFpbHMgZG9jcyBpbnRvIGVsZW1lbnRmYWN0b3J5IGRvY3MKCSAgaW5saW5lZCBib3RoCgoyMDA1LTA5LTAyIDE2OjQ0OjU3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5oOiBBZGQgbWFnaWNhbCBwaXhpZSBkdXN0IHRvIG1ha2UgZ2xpYi1ta2VudW1zIGNvbnNpZGVyIHRoaXMgZW51bSBhbiBlbnVtIGFuZCBub3QgYSBmbGFncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMDIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGVsZW1lbnQuaDogQWRkIG1hZ2ljYWwgcGl4aWUgZHVzdCB0byBtYWtlIGdsaWItbWtlbnVtcwoJICBjb25zaWRlciB0aGlzIGVudW0gYW4gZW51bSBhbmQgbm90IGEgZmxhZ3MuCgoyMDA1LTA5LTAyIDE2OjE3OjIzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBtb3JlIGRvY3MgaW5saW5lZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGdob3N0cGFkLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RpdGVyYXRvci5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0bWFjcm9zLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RyZWFscGFkLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RyZWdpc3RyeS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cmVnaXN0cnlwb29sLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RzdHJ1Y3R1cmUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHN5c3RlbWNsb2NrLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R0cmFjZS5zZ21sOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICAqIGdzdC9nc3RtYWNyb3MuaDoKCSAgKiBnc3QvZ3N0bWVtY2h1bmsuYzoKCSAgKiBnc3QvZ3N0bWVtY2h1bmsuaDoKCSAgKiBnc3QvZ3N0cXVldWUuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnlwb29sLmM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBtb3JlIGRvY3MgaW5saW5lZAoKMjAwNS0wOS0wMiAxNTo0MjowMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuaCAoR3N0U3RhdGUpOiBSZW5hbWVkIGZyb20gR3N0RWxlbWVudFN0YXRlLCBjaGFuZ2VkIHRvIGJlIGEgbm9ybWFsIGVudW0gaW5zdGVhZCBvZiBmbGFncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMDIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGVsZW1lbnQuaCAoR3N0U3RhdGUpOiBSZW5hbWVkIGZyb20gR3N0RWxlbWVudFN0YXRlLAoJICBjaGFuZ2VkIHRvIGJlIGEgbm9ybWFsIGVudW0gaW5zdGVhZCBvZiBmbGFncy4KCSAgKEdzdFN0YXRlQ2hhbmdlUmV0dXJuKTogUmVuYW1lZCBmcm9tIEdzdEVsZW1lbnRTdGF0ZVJldHVybiwgbmFtZXMKCSAgbXVuZ2VkIHRvIGJlIEdTVF9TVEFURV9DSEFOR0VfKi4KCSAgKEdTVF9TVEFURV9DSEFOR0UpOiBSZW5hbWVkIGZyb20gR1NUX1NUQVRFX1RSQU5TSVRJT04sIHVwZGF0ZWQgdG8KCSAgd29yayB3aXRoIHRoZSBuZXcgc3RhdGUgcmVwcmVzZW50YXRpb24uCgkgIChHc3RTdGF0ZUNoYW5nZSk6IE5ldyBlbnVtZXJhdGlvbiBvZiBwb3NzaWJsZSBzdGF0ZSB0cmFuc2l0aW9ucy4KCSAgUmVwbGFjZXMgR1NUX1NUQVRFX0ZPT19UT19CQVIgd2l0aCBHU1RfU1RBVEVfQ0hBTkdFX0ZPT19UT19CQVIuCgkgIChHc3RFbGVtZW50Q2xhc3M6OmNoYW5nZV9zdGF0ZSk6IFBhc3MgdGhlIEdzdFN0YXRlQ2hhbmdlIGFsb25nIGFzCgkgIGFuIGFyZ3VtZW50LiBIZWxwcyBsYW5ndWFnZSBiaW5kaW5ncywgc28gdGhleSBkb24ndCBoYXZlIHRvIHVzZQoJICB0cmlja3kgbG9jay1uZWVkaW5nIG1hY3JvcyBsaWtlIEdTVF9TVEFURV9DSEFOR0UgKCkuCgkgICogc2NyaXB0cy91cGRhdGUtc3RhdGVzIChmaWxlKTogTmV3IHNjcmlwdC4gUnVuIGl0IG9uIGEgZmlsZSB0bwoJICB1cGRhdGUgaXQgZm9yIHN0YXRlIG5hbWluZyBhbmQgQVBJIGNoYW5nZXMuIFVwZGF0ZXMgZmlsZXMgaW4KCSAgcGxhY2UuCgkgICogQWxsIGZpbGVzIHVwZGF0ZWQgZm9yIHRoZSBuZXcgQVBJLgoKMjAwNS0wOS0wMiAxMjoxMTo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgY2xlYW4gdXAgc3BlYyBzb21lIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNsZWFuIHVwIHNwZWMgc29tZSBtb3JlCgoyMDA1LTA5LTAyIDEyOjA4OjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IGZpeCBhIGJ1bmNoIG9mIHVuY2hlY2tlZCByZXR1cm4gdmFsdWVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0cmFjZS5jOiAoZ3N0X3RyYWNlX2ZsdXNoKSwgKGdzdF90cmFjZV90ZXh0X2ZsdXNoKToKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX3NldF92YWx1ZV9mcm9tX3N0cmluZyksCgkgIChnc3RfdXRpbF9zZXRfb2JqZWN0X2FyZyk6CgkgIGZpeCBhIGJ1bmNoIG9mIHVuY2hlY2tlZCByZXR1cm4gdmFsdWVzCgkgICogdG9vbHMvZ3N0LWNvbXBsZXRlLmM6IChtYWluKToKCSAgKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgY2xlYW4gdXAgYSBsaXR0bGUKCjIwMDUtMDktMDEgMTk6MDY6MzkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGRvY3MvZ3N0L3RtcGwvLmdpdGlnbm9yZToKCSogZG9jcy9nc3QvdG1wbC9nc3R0YWdsaXN0LnNnbWw6CgkgIHVwZGF0ZWQgLmN2c2lnbm9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlZCAuY3ZzaWdub3JlCgoyMDA1LTA5LTAxIDE4OjEyOjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuKjogSGFuZGxlIG5ld3NlZ21lbnRzIG1vcmUgY29ycmVjdGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX2V2ZW50KToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBIYW5kbGUgbmV3c2VnbWVudHMgbW9yZSBjb3JyZWN0bHkuCgkgICogZ3N0L2dzdGJ1cy5jOgoJICBGaXggZG9jcy4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfbmV3c2VnbWVudCk6CgkgIEEgbmV3c2VnbWVudCBjYW5ub3QgaGF2ZSBhIHN0YXJ0X3RpbWUgb2YgLTEKCjIwMDUtMDktMDEgMTY6NTM6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB3aW4zMi9nc3RlbnVtdHlwZXMuKjogVXBkYXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2dzdGVudW10eXBlcy5jOgoJICAqIHdpbjMyL2dzdGVudW10eXBlcy5oOgoJICBVcGRhdGUKCjIwMDUtMDgtMzEgMjE6MDE6MzUgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgIFJlbW92ZSBleHRyYW5lb3VzICdjbycgZnJvbSBjdnMgY29tbWFuZCBpbiBQV0csIGFzIHJlcG9ydGVkIG9uIGlyYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbW92ZSBleHRyYW5lb3VzICdjbycgZnJvbSBjdnMgY29tbWFuZCBpbiBQV0csIGFzIHJlcG9ydGVkIG9uIGlyYy4KCjIwMDUtMDgtMzEgMTg6NDU6NDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuYzogZml4ZWQgYm9vbGVhbiBhZ2FpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKSwKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X25ldyk6CgkgIGZpeGVkIGJvb2xlYW4gYWdhaW4KCjIwMDUtMDgtMzEgMTU6Mjc6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBhZGQgLWdvb2QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBhZGQgLWdvb2QKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgcmVtb3ZlIHdyb25nIGRvY3MKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2xpbmtfZmlsdGVyZWQpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBhZGQgZ3N0X2VsZW1lbnRfbGlua19maWx0ZXJlZAoKMjAwNS0wOC0zMSAxNDowODo0NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgaW5saW5lZCBtb3JlIGRvY3MsIGZpeGVkIGRvdWJsZSBpZC1yZWYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGVycm9yLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RmaWx0ZXIuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHVyaWhhbmRsZXIuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHVyaXR5cGUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHV0aWxzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R4bWwuc2dtbDoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgKiBnc3QvZ3N0ZmlsdGVyLmM6CgkgICogZ3N0L2dzdHVyaS5jOgoJICAqIGdzdC9nc3R1cml0eXBlLmM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgICogZ3N0L2dzdHhtbC5jOgoJICBpbmxpbmVkIG1vcmUgZG9jcywgZml4ZWQgZG91YmxlIGlkLXJlZgoKMjAwNS0wOC0zMSAxMzo1MzozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogUGFzc3Rocm91Z2ggZWxlbWVudHMgZG9uJ3QgbmVlZCB0aGUgY2FwcyBhcyB0aGV5IGRvbid0IGNhcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgUGFzc3Rocm91Z2ggZWxlbWVudHMgZG9uJ3QgbmVlZCB0aGUgY2FwcyBhcyB0aGV5IGRvbid0IGNhcmUuCgoyMDA1LTA4LTMxIDEzOjUwOjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBEb24ndCBsZWFrIHJlZmNvdW50cyBvbiBidWZmZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pOgoJICBEb24ndCBsZWFrIHJlZmNvdW50cyBvbiBidWZmZXJzLgoKMjAwNS0wOC0zMSAxMzo0MToxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uKjogSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHdlIGFyZSBub3QgbmVnb3RpYXRlZCBtb3JlIGdyYWNlZnVsbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9jb25maWd1cmVfY2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgd2UgYXJlIG5vdCBuZWdvdGlhdGVkIG1vcmUgZ3JhY2VmdWxseS4KCjIwMDUtMDgtMzEgMTI6NTU6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiBTZXQgUkVBRE9OTFkgZmxhZyBvbiBtbWFwJ2VkIGJ1ZmZlcnMsIG90aGVyd2lzZSBnc3RfYnVmZmVyX21ha2Vfd3JpdGFibGUoKSB3b24ndCB3b3JrIHByb3AuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9tbWFwX2J1ZmZlcl9pbml0KSwKCSAgKGdzdF9maWxlX3NyY19tYXBfcmVnaW9uKToKCSAgU2V0IFJFQURPTkxZIGZsYWcgb24gbW1hcCdlZCBidWZmZXJzLCBvdGhlcndpc2UKCSAgZ3N0X2J1ZmZlcl9tYWtlX3dyaXRhYmxlKCkgd29uJ3Qgd29yayBwcm9wZXJseSAoIzMxNDcwOCkuCgoyMDA1LTA4LTMxIDEwOjA3OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBwYXNzdGhyb3VnaCBlbGVtZW50cyBjYW4gZXZlbiBkbyBpbnBsYWNlIG9uIG5vbiB3cml0YWJsZSBidWZmZXJzIChhcyB0aGV5IGRvbid0IHRvdWNoIHRoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgcGFzc3Rocm91Z2ggZWxlbWVudHMgY2FuIGV2ZW4gZG8gaW5wbGFjZSBvbiBub24gd3JpdGFibGUKCSAgYnVmZmVycyAoYXMgdGhleSBkb24ndCB0b3VjaCB0aGVtKS4KCjIwMDUtMDgtMzEgMTA6MDA6MDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzogbW9yZSB0ZXN0cyAoaGVoZSBJIGhhdmUgdGhlIG1vc3QpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzogKGdzdF90ZXN0X21vbm9fc291cmNlX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfdGVzdF9tb25vX3NvdXJjZV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3Rlc3RfbW9ub19zb3VyY2VfY2xhc3NfaW5pdCksIChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgIG1vcmUgdGVzdHMgKGhlaGUgSSBoYXZlIHRoZSBtb3N0KQoJICAqIGdzdC9nc3RidXMuYzoKCSAgZGVzY3JpYmUgcG9wcGluZyBtZXNzYWdlcyB3aGVudXNpbmcgbXVsbHRpcGxlIHNvdXJjZXMKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKSwKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X25ldyk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWludGVycG9sYXRpb24uYzoKCSAgaW1wbGVtZW50IGJvb2xlYW4gcHJvcGVydGllcwoKMjAwNS0wOC0zMSAwODo1NzoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IENhbm5vdCBhc3NlcnQgdGhhdCB0aGUgcmVmY291bnQgaGFzIHRvIGJlIHBvc2l0aXZlIHNpbmNlIGEgZGlzcG9zZWQgb2JqZWN0IGNhbiBiZSByZXN1cmVjdGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X21pbmlfb2JqZWN0X3JlZik6CgkgIENhbm5vdCBhc3NlcnQgdGhhdCB0aGUgcmVmY291bnQgaGFzIHRvIGJlIHBvc2l0aXZlCgkgIHNpbmNlIGEgZGlzcG9zZWQgb2JqZWN0IGNhbiBiZSByZXN1cmVjdGVkLgoKMjAwNS0wOC0zMSAwODozODozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogUmV2ZXJ0IGNoYW5nZSwgbmVlZCB0byBmaXJzdCBmaXggYmFkbHkgYmVoYXZpbmcgYXBwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9pbml0KToKCSAgUmV2ZXJ0IGNoYW5nZSwgbmVlZCB0byBmaXJzdCBmaXggYmFkbHkgYmVoYXZpbmcKCSAgYXBwcy4KCjIwMDUtMDgtMzAgMTk6NDU6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9lbGVtZW50cy86IEFjdGl2YXRlIHBhZHMgYmVmb3JlIHVzaW5nIHRoZW0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzogKHNldHVwX2Zha2VzcmMpOgoJICAqIGNoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6IChzZXR1cF9pZGVudGl0eSk6CgkgIEFjdGl2YXRlIHBhZHMgYmVmb3JlIHVzaW5nIHRoZW0uCgoyMDA1LTA4LTMwIDE5OjI5OjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiBGbHVzaGluZyBvdXQgMCBieXRlcyBpcyBvayBmb3IgdGhpcyBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiAoZ3N0X2FkYXB0ZXJfZmx1c2gpOgoJICBGbHVzaGluZyBvdXQgMCBieXRlcyBpcyBvayBmb3IgdGhpcyBmdW5jdGlvbi4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KToKCSAgbm8gbmV3c2VnbWVudCBnaXZlcyBhIHdhcm5pbmcgYW5kIHNldHMgdGhlIHN0YXJ0L3N0b3AgdG8KCSAgaW52YWxpZC4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfcGFzc3Rocm91Z2gpOgoJICBTb21lIGRlYnVnIGluZm8uCgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF9taW5pX29iamVjdF9yZWYpOgoJICBDaGVjayByZWZjb3VudCBoZXJlIHRvby4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2luaXQpOgoJICBQYWRzIGFyZSBpbml0aWFsbHkgZmx1c2hpbmcgYW5kIHJlZnVzaW5nIGRhdGEuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9saW5rX3BhZHNfZmlsdGVyZWQpOgoJICBXaGVuIGFkZGluZyBhIGNhcHNmaWx0ZXIgZWxlbWVudCBtYWtlIHN1cmUgaXQgaGFzIHRoZQoJICBzYW1lIHN0YXRlIGFzIHRoZSBwYXJlbnQgYmluLgoKMjAwNS0wOC0zMCAxNzoyMzoxOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbW9yZSBkb2NzIGFuZCB0d28gbW9yZSBpbmxpbmVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGZvcm1hdC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dmVyc2lvbi5zZ21sOgoJICAqIGdzdC9nc3RidXMuaDoKCSAgKiBnc3QvZ3N0Zm9ybWF0LmM6CgkgICogZ3N0L2dzdGZvcm1hdC5oOgoJICAqIGdzdC9nc3R2ZXJzaW9uLmguaW46CgkgIG1vcmUgZG9jcyBhbmQgdHdvIG1vcmUgaW5saW5lZAoKMjAwNS0wOC0zMCAxNzoxMjozMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiBEb24ndCBzeW5jIHRvIGNsb2NrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfY2xhc3NfaW5pdCk6CgkgIERvbid0IHN5bmMgdG8gY2xvY2suCgoyMDA1LTA4LTMwIDA4OjE3OjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiB1bHRyYWwzM3QgZnVuYzEwbnMgZGVzZXJ2ZSB0byBhcHBlYXIgaW4gdGhlIGRvY3MgYWN0dWFseQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICB1bHRyYWwzM3QgZnVuYzEwbnMgZGVzZXJ2ZSB0byBhcHBlYXIgaW4gdGhlIGRvY3MgYWN0dWFseQoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGNvbXBhdC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0Y29uZmlnLnNnbWw6CgkgICogZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgICogZ3N0L2dzdGNvbXBhdC5oOgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgaW5saW5lZCBtb3JlIGRvY3MKCjIwMDUtMDgtMjkgMjE6NDE6MDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGlubGluZWQgYW5kIGV4dGVuZGVkIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cXVlcnkuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHV0aWxzLnNnbWw6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIGlubGluZWQgYW5kIGV4dGVuZGVkIGRvY3MKCjIwMDUtMDgtMjkgMTk6NTk6NTIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzogbW9yZSB0ZXN0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgIG1vcmUgdGVzdHMKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHV0aWxzLnNnbWw6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSAgaW5jbHVkZSBwYXRoIGZpeGVzCgkgICogZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6IChtYWluKToKCSAgY29udHJvbGxlciBleGFtcGxlIHdvcmtzIG5vdwoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBkb2MgZml4ZXMKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICBzaG93IHBhcmFtIHNwZWMgZmxhZ3MKCjIwMDUtMDgtMjkgMTY6MTA6MzYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jIChnc3RfdXRpbF91aW50NjRfc2NhbGUpOiBOZXcgMzczM3QgZnVuY3QxMG4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTI5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R1dGlscy5jIChnc3RfdXRpbF91aW50NjRfc2NhbGUpOiBOZXcgMzczM3QgZnVuY3QxMG4uCgoyMDA1LTA4LTI5IDA5OjUyOjQ0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBkb2NzL2ZhcS9jdnMueG1sOgoJICBNaW5vciB1cGRhdGVzIHRvIGRldmVsb3BlciBjdnMgaW5zdHJ1Y3Rpb25zLCB0byBtb3JlIGNsb3NlbHkgbWF0Y2ggd2hhdCB0aGUgZnJlZWRlc2t0b3AgcGVvcGxlIHdhbnQuIEFsc28sIHRlc3QgbXkgY3YuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE1pbm9yIHVwZGF0ZXMgdG8gZGV2ZWxvcGVyIGN2cyBpbnN0cnVjdGlvbnMsIHRvIG1vcmUgY2xvc2VseSBtYXRjaCB3aGF0CgkgIHRoZSBmcmVlZGVza3RvcCBwZW9wbGUgd2FudC4gQWxzbywgdGVzdCBteSBjdnMgY29tbWl0IGFjY2Vzcy4uLgoKMjAwNS0wOC0yOCAxNzo0NTo1OCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmggKEdTVF9CT0lMRVJQTEFURV9GVUxMKTogUHJvdG90eXBlIGluc3RhbmNlX2luaXQgYXMgaGF2aW5nIHR3byBhcmd1bWVudHMgaW5zdGVhZCBvZiBqdXN0IG9uZS4gQWxsb3dzIHN1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTI4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R1dGlscy5oIChHU1RfQk9JTEVSUExBVEVfRlVMTCk6IFByb3RvdHlwZSBpbnN0YW5jZV9pbml0CgkgIGFzIGhhdmluZyB0d28gYXJndW1lbnRzIGluc3RlYWQgb2YganVzdCBvbmUuIEFsbG93cyBzdXBlcmNsYXNzZXMKCSAgdG8gYWNjZXNzIGluZm9ybWF0aW9uIG9uIHN1YmNsYXNzZXMgLS0gc2VlIHRoZSB0ZXJyaWJsZSBmb3IoKSBsb29wCgkgIGluIGd0eXBlLmM6Z190eXBlX2NyZWF0ZV9pbnN0YW5jZSBmb3IgdGhlIHJlYXNvbiB3aHkuIEFsbCBjYWxsZXJzCgkgIGNoYW5nZWQuCgoyMDA1LTA4LTI3IDEwOjU3OjAwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDogdXBkYXRlIGluZm8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkgIHVwZGF0ZSBpbmZvCgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0Y2Fwcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0Y2xvY2suc2dtbDoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgICogZ3N0L2dzdGNhcHMuYzoKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIGFkZGVkIGRlc2NyaXB0aW9ucyBmb3IgYnVzIGFuZCBtZXNzYWdlCgkgIGlubGluZSBjYXBzIGFuZCBjbG9jayBkb2NzCgoyMDA1LTA4LTI2IDIyOjMyOjUxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0bWVzc2FnZS4qOiBkb2MgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBkb2MgZml4ZXMKCjIwMDUtMDgtMjYgMjE6MjM6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogZml4IGRpdi1ieS16ZXJvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fc2l6ZSk6CgkgIGZpeCBkaXYtYnktemVybwoKMjAwNS0wOC0yNiAxNDoyMTo0MyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYyAocnVuX3BpcGVsaW5lKTogQ2hlY2sgZWxlbWVudF9zZXRfc3RhdGUncyByZXR1cm4gdmFsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0yNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jIChydW5fcGlwZWxpbmUpOiBDaGVjawoJICBlbGVtZW50X3NldF9zdGF0ZSdzIHJldHVybiB2YWwuCgkgICh0ZXN0XzJfZWxlbWVudHMpOiBBZGQgdGVzdCB0aGF0J3MgYmVlbiBkaXNhYmxlZCBmb3IgbW9udGhzLgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOiBDbGVhbnVwcy4gQWRkIGNhbi1hY3RpdmF0ZS1wdXNoIGFuZAoJICBjYW4tYWN0aXZhdGUtcHVsbCBwcm9wZXJ0aWVzLgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IENsZWFudXBzLiBBZGQgY2FuLWFjdGl2YXRlLXB1c2ggYW5kCgkgIGNhbi1hY3RpdmF0ZS1wdWxsIHByb3BlcnRpZXMuIEltcGxlbWVudCBpc19zZWVrYWJsZSBzbyBmYWtlc3JjIGNhbgoJICBvcGVyYXRlIGluIHB1bGwgbW9kZS4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jIChHc3RCYXNlU2luayk6IFJlbW92ZSBoYXMtbG9vcCwgaGFzLWNoYWluCgkgIHByb3BlcnRpZXMuCgkgIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlLCBnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwpCgkgIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1c2gpOiBNYWtlIGFjdGl2YXRpb24gbW9kZSBjaG9vc2luZyB3b3JrLgoJICBDbGVhbnVwcy4KCSAgKGdzdF9iYXNlX3NpbmtfY2hhaW4sIGdzdF9iYXNlX3NpbmtfbG9vcCk6IEFzc2VydCBhY3RpdmF0aW9uIG1vZGUKCSAgaXMgcmlnaHQuIE1ha2UgcHVsbCBtb2RlIHdvcmsuIFBvc3QgYW4gZW9zIGJlZm9yZSBwYXVzaW5nIGluIHB1bGwKCSAgbW9kZS4KCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKTogUGF5IGF0dGVudGlvbiB0byB0aGUgY29yZSdzCgkgIGNoYW5nZV9zdGF0ZSgpIHJldHVybiB2YWwuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChHc3RCYXNlU3JjKTogUmVtb3ZlIGhhcy1sb29wLAoJICBoYXMtZ2V0cmFuZ2UgcHJvcGVydGllcy4gQ2xlYW51cHMuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oIChHc3RCYXNlU3JjKTogUmVtb3ZlIGhhc19sb29wLAoJICBoYXNfZ2V0cmFuZ2UgYW5kIHJlcGxhY2Ugd2l0aCBjYW5fYWN0aXZhdGVfcHVsbCBhbmQKCSAgY2FuX2FjdGl2YXRlX3B1c2guCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaCAoR3N0QmFzZVNpbmspOiBSZWFycmFuZ2UgZmllbGRzLCBhZGQKCSAgbG9ja2luZyBjb21tZW50cy4gUmVtb3ZlIGhhc19sb29wLCBoYXNfY2hhaW4gYW5kIHJlcGxhY2Ugd2l0aAoJICBjYW5fYWN0aXZhdGVfcHVsbCBhbmQgY2FuX2FjdGl2YXRlX3B1c2guCgoyMDA1LTA4LTI2IDEzOjI4OjAxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEFkZCBtZXRhZGF0YSByZWFkaW5nIGV4YW1wbGUgdGhhdCBsb29wcyBvdmVyIGEgbGlzdCBvZiBmaWxlbmFtZXMsIGR1bXBpbmcgYW55IHRhZ3MgZm91bmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBleGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgKiBleGFtcGxlcy9tZXRhZGF0YS9NYWtlZmlsZS5hbToKCSAgKiBleGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6IChtZXNzYWdlX2xvb3ApLAoJICAoaGF2ZV9wYWRfaGFuZGxlciksIChtYWtlX3BpcGVsaW5lKSwgKHByaW50X3RhZyksIChtYWluKToKCSAgQWRkIG1ldGFkYXRhIHJlYWRpbmcgZXhhbXBsZSB0aGF0IGxvb3BzIG92ZXIgYSBsaXN0IG9mIGZpbGVuYW1lcywKCSAgZHVtcGluZyBhbnkgdGFncyBmb3VuZC4KCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2Rpc3Bvc2UpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9kaXNwb3NlKToKCSAgUmVsZWFzZSBhIGZldyBwb3RlbnRpYWxseS1oZWxkIHJlZmVyZW5jZXMgaW4gZGlzcG9zZS4KCjIwMDUtMDgtMjYgMTM6MjE6NDcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L3RtcGwvZ3N0bWluaW9iamVjdC5zZ21sOiBkbyAqbm90KiBhZGQgdG1wbC8qLnNnbWwgZmlsZXMgdG8gQ1ZTIQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdG1pbmlvYmplY3Quc2dtbDoKCSAgZG8gKm5vdCogYWRkIHRtcGwvKi5zZ21sIGZpbGVzIHRvIENWUyEKCjIwMDUtMDgtMjYgMTM6MTc6NTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2J5dGVzdHJlYW0vOiByZW1vdmluZyBvYnNvbGV0ZSBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9ieXRlc3RyZWFtLy5jdnNpZ25vcmU6CgkgICogbGlicy9nc3QvYnl0ZXN0cmVhbS9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9ieXRlc3RyZWFtL2FkYXB0ZXIuYzoKCSAgKiBsaWJzL2dzdC9ieXRlc3RyZWFtL2FkYXB0ZXIuaDoKCSAgKiBsaWJzL2dzdC9ieXRlc3RyZWFtL2J5dGVzdHJlYW0uYzoKCSAgKiBsaWJzL2dzdC9ieXRlc3RyZWFtL2J5dGVzdHJlYW0uaDoKCSAgKiBsaWJzL2dzdC9ieXRlc3RyZWFtL2ZpbGVwYWQuYzoKCSAgKiBsaWJzL2dzdC9ieXRlc3RyZWFtL2ZpbGVwYWQuaDoKCSAgcmVtb3Zpbmcgb2Jzb2xldGUgZmlsZXMKCjIwMDUtMDgtMjYgMTI6NDg6MjkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvOiBkaXNhYmVkIGFkZGl0aW9uYWwgaW5kZXggZW50cmllcyBhZ2FpbiwgYXMgdGhpcyBtYWtlcyBkb2NzLWdlbiBqdXN0IHNsb3cgYW5kIHRoZXkgYXJlbid0IHVzZWZ1bCB5ZXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICBkaXNhYmVkIGFkZGl0aW9uYWwgaW5kZXggZW50cmllcyBhZ2FpbiwgYXMgdGhpcyBtYWtlcyBkb2NzLWdlbiBqdXN0CgkgIHNsb3cgYW5kIHRoZXkgYXJlbid0IHVzZWZ1bCB5ZXQKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBsaXR0bGUgLXNlY3Rpb24udHh0IGNsZWFudXAgZm9yIGxpYnMKCjIwMDUtMDgtMjYgMTE6NTY6MTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2Jhc2UvOiBmaXggdXAgc29tZSBkZWJ1Z2dpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9zaXplKSwKCSAgZml4IHVwIHNvbWUgZGVidWdnaW5nCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3VuaXRfc2l6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBoYW5kbGUgYW5kIHN0b3JlIHRpbWVkIE5FV1NFR01FTlQgZXZlbnRzIHNvIHRoYXQgc3ViY2xhc3NlcyB0aGF0CgkgIGNhbGN1bGF0ZSB0aW1lIGJ5IGNvdW50aW5nIHNhbXBsZXMgaGF2ZSBhIHNlZ21lbnRfc3RhcnQgdGltZSB0aGV5CgkgIG5lZWQgdG8gYWRkIHRvIHRoZWlyIHRpbWVzdGFtcHMgLSBzZWUgYXVkaW9yZXNhbXBsZQoKMjAwNS0wOC0yNiAxMToxOToyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICB3aGl0ZXNwYWNlLCBkb2MgYW5kIGRlYnVnIGZpeGluZy9hZGRpdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2UsIGRvYyBhbmQgZGVidWcgZml4aW5nL2FkZGl0aW9ucwoKMjAwNS0wOC0yNSAyMzoxNzoxOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGJpbi5oOiByZW1vdmVkICc7JyBmcm9tIHRoZSBlbmQgb2YgbWFjcm8gZGVmcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmg6CgkgIHJlbW92ZWQgJzsnIGZyb20gdGhlIGVuZCBvZiBtYWNybyBkZWZzCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NsYXNzX2luaXQpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKSwgKGFjdGl2YXRlX3BhZHMpLAoJICAoZ3N0X2VsZW1lbnRfc2F2ZV90aHlzZWxmKToKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfbmV3c2VnbWVudCk6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgICogZ3N0L2dzdHBhZC5jOgoJICAqIGdzdC9nc3Rwcm9iZS5oOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhZF9xdWVyeV9jb252ZXJ0KToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZml4ZWQgcGFyYW1ldGVyIG5hbWUgbWlzbWF0Y2hlcyBiZXR3ZWVuIHNvdXJjZSwgaGVhZGVyIGFuZCBkb2NzCgkgIGFkZGVkIHNvbWUgbW9yZSBkb2NzLCByZXNvbHZlZCB0aGUgbGFzdCBiYXRjaCBvZiB1bnVzZWQgZWxlbWVudHMgaW4KCSAgZG9jcyAobm93IHNvbWVvbmUgbmVlZHMgdG8gZG9jIHRoZW0pCgoyMDA1LTA4LTI1IDIwOjUyOjA3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzoKCSogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuYzoKCSAgcmVzcGVjdCBvcmRlciBvZiBwbHVnaW4gZGlycyB3aGVuIGxvYWRpbmcgcGxsdWdpbnMgYW5kIHJlYnVpbGRpbmcgcmVnaXN0cnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlc3BlY3Qgb3JkZXIgb2YgcGx1Z2luIGRpcnMgd2hlbiBsb2FkaW5nIHBsbHVnaW5zIGFuZCByZWJ1aWxkaW5nIHJlZ2lzdHJ5CgoyMDA1LTA4LTI1IDE5OjM2OjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS4qOiBDYWNoZSBjYXBzIHVuaXRfc2l6ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9zaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jb25maWd1cmVfY2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3VuaXRfc2l6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgQ2FjaGUgY2FwcyB1bml0X3NpemUuCgkgIE1ha2Ugc3VyZSB3ZSBjYW5ub3QgbmVnb3RpYXRlIHVwIGFuZCBkb3duc3RyZWFtIGF0IHRoZQoJICBzYW1lIHRpbWUuCgoyMDA1LTA4LTI1IDE4OjU1OjM0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOgoJKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5jOgoJICBtYWtlIHJlZ2lzdHJ5IHJlc3BlY3Qgb3JkZXIgb2YgR1NUX1BMVUdJTl9QQVRIOyBtYWtlIHRoZSBpbnN0YWxsZWQgbG9jYXRpb24gZ28gbGFzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWFrZSByZWdpc3RyeSByZXNwZWN0IG9yZGVyIG9mIEdTVF9QTFVHSU5fUEFUSDsgbWFrZSB0aGUgaW5zdGFsbGVkIGxvY2F0aW9uIGdvIGxhc3QKCjIwMDUtMDgtMjUgMTg6NTQ6MDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGFkZCBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgZG9jcwoKMjAwNS0wOC0yNSAxNjoyNzo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGFkZCBhIHVpbnQ2NCBjaGVja2luZyBtZXRob2QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhIHVpbnQ2NCBjaGVja2luZyBtZXRob2QKCjIwMDUtMDgtMjUgMTM6NTI6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEJlIGEgYml0IG1vcmUgY29uc2VydmF0aXZlIGFib3V0IHRoZSBwb3N0ZWQgbWVzc2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2J1c19oYW5kbGVyKToKCSAgQmUgYSBiaXQgbW9yZSBjb25zZXJ2YXRpdmUgYWJvdXQgdGhlIHBvc3RlZCBtZXNzYWdlLgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfcG9zdCk6CgkgIFNvbWUgY2xlYW51cHMsIHdhcm4gd3JvbmcgcmV0dXJuIHZhbHVlcy4KCjIwMDUtMDgtMjUgMTA6NTE6MTQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgUmV2ZXJ0IHVucG9wdWxhciBjaGFuZ2UgZm9yIEdTVF9NRVNTQUdFX1NSQyB0byBHT2JqZWN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfZmluYWxpemUpLCAoX2dzdF9tZXNzYWdlX2NvcHkpLAoJICAoZ3N0X21lc3NhZ2VfbmV3KSwgKGdzdF9tZXNzYWdlX25ld19lb3MpLCAoZ3N0X21lc3NhZ2VfbmV3X2Vycm9yKSwKCSAgKGdzdF9tZXNzYWdlX25ld193YXJuaW5nKSwgKGdzdF9tZXNzYWdlX25ld190YWcpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpLCAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfZG9uZSksIChnc3RfbWVzc2FnZV9uZXdfY3VzdG9tKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICAqIHRvb2xzL2dzdC1tZDVzdW0uYzogKGV2ZW50X2xvb3ApOgoJICBSZXZlcnQgdW5wb3B1bGFyIGNoYW5nZSBmb3IgR1NUX01FU1NBR0VfU1JDIHRvIEdPYmplY3QuCgoyMDA1LTA4LTI1IDEwOjM1OjQ2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgZml4IGRvY3MgYnkgZml4aW5nIGVudW0gdHlwZWRlZgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGRvY3MgYnkgZml4aW5nIGVudW0gdHlwZWRlZgoKMjAwNS0wOC0yNSAxMDoxNjoyMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHdpbSBmaXhlZCB0aGUgdGFzaywgeWF5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aW0gZml4ZWQgdGhlIHRhc2ssIHlheQoKMjAwNS0wOC0yNSAxMDowMTo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IENsZWFudXAgY2FuIGJlIGRvbmUgYXQgdGhlIGVuZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQ2xlYW51cCBjYW4gYmUgZG9uZSBhdCB0aGUgZW5kLgoJICAqIGdzdC9nc3R0YXNrLmM6IChnc3RfdGFza19nZXRfdHlwZSksIChnc3RfdGFza19maW5hbGl6ZSksCgkgIChnc3RfdGFza19mdW5jKSwgKGdzdF90YXNrX2NsZWFudXBfYWxsKSwgKGdzdF90YXNrX3NldF9sb2NrKSwKCSAgKGdzdF90YXNrX2dldF9zdGF0ZSksIChnc3RfdGFza19zdGFydCksIChnc3RfdGFza19wYXVzZSk6CgkgIE9oIGJveS4uIFRoYW5rcyBmb3IgZmluZGluZyB0aGlzLCBUaG9tYXMuCgoyMDA1LTA4LTI0IDIyOjAxOjQxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgIGdybXBmLCBhbm90aGVyIHRyeSB0byBmaXggaXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGdybXBmLCBhbm90aGVyIHRyeSB0byBmaXggaXQKCjIwMDUtMDgtMjQgMjE6NTc6MDUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgYW5vdGhlciBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFub3RoZXIgZml4CgoyMDA1LTA4LTI0IDIxOjQ1OjEzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6IGFkZGVkIG1pc3NpbmcgdHlwZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICBhZGRlZCBtaXNzaW5nIHR5cGVzCgoyMDA1LTA4LTI0IDIxOjM1OjQzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBhZGRlZCBtaWlzc2luZyBjbGFzc2VzIGFuZCBzeW1ib2xzICgxMjMgbW9yZSB0byBnbykgcmVtb3ZlZCByZW1vdmVkIHN5bWJvbHMgZnJvbSBzZWN0aW9uIGZpbGUgZml4ZWQgbWFueSBkb2MtY29tbWVudHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBnc3QvZ3N0YmluLmM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuaDoKCSAgYWRkZWQgbWlpc3NpbmcgY2xhc3NlcyBhbmQgc3ltYm9scyAoMTIzIG1vcmUgdG8gZ28pCgkgIHJlbW92ZWQgcmVtb3ZlZCBzeW1ib2xzIGZyb20gc2VjdGlvbiBmaWxlCgkgIGZpeGVkIG1hbnkgZG9jLWNvbW1lbnRzCgoyMDA1LTA4LTI0IDIwOjQ5OjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogTWFrZSBzdXJlIGFsbCB0YXNrcyBhcmUgc3RvcHBlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgTWFrZSBzdXJlIGFsbCB0YXNrcyBhcmUgc3RvcHBlZC4KCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFVucmVmIGFmdGVyIHVzYWdlIGZvciBwcm9wZXIgdmFsZ3JpbmRpbmcuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9maW5hbGl6ZSksIChnc3RfcGFkX3N0b3BfdGFzayk6CgkgIFJlYWxseSB3YWl0IGZvciB0aGUgdGFzayB0byBzdG9wIGJlZm9yZSBkZXN0cm95aW5nIHRoZQoJICBtdXRleC4KCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKToKCSAgU21hbGwgY2xlYW51cHMuIERvbid0IHN0b3AgdGhlIHRhc2sgd2hlbiB3ZSBkaWQgbm90IHN0YXJ0CgkgIGl0LgoJICAqIGdzdC9nc3R0YXNrLmM6IChnc3RfdGFza19nZXRfdHlwZSksIChnc3RfdGFza19pbml0KSwKCSAgKGdzdF90YXNrX2Z1bmMpLCAoZ3N0X3Rhc2tfY2xlYW51cF9hbGwpLCAoZ3N0X3Rhc2tfc2V0X2xvY2spLAoJICAoZ3N0X3Rhc2tfZ2V0X3N0YXRlKSwgKGdzdF90YXNrX3N0YXJ0KSwgKGdzdF90YXNrX3BhdXNlKSwKCSAgKGdzdF90YXNrX2pvaW4pOgoJICAqIGdzdC9nc3R0YXNrLmg6CgkgIFByb3RlY3QgdGhlIHN0cmVhbSBsb2NrIHdpdGggdGhlIG9iamVjdCBsb2NrLgoJICBEaXNhbGxvdyBzZXR0aW5nIHRoZSBzdHJlYW0gbG9jayB3aGVuIHJ1bm5pbmcuCgkgIEFkZCBjbGVhbnVwX2FsbCB0byB3YWl0IGZvciB0aGUgdGhyZWFkcG9vbCB0byBmaW5pc2guCgkgIFJlbW92ZSBjb2RlIHRvIGF1dG9hbGxvY2F0ZSBhIG11dGV4IGlmIG5vbmUgd2FzIHByb3ZpZGVkLgoJICBBZGQgX2pvaW4oKSB0byB3YWl0IGZvciBhIHRhc2sgdG8gc3RvcC4KCSAgUHJvdGVjdCB0aGUgdGhyZWFkIHBvb2wgd2l0aCBhIGdsb2JhbCBsb2NrLgoKMjAwNS0wOC0yNCAxNzo1NzozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLio6IEhhbmRsZSBuZXdzZWdtZW50IGV2ZW50cyBjb3JyZWN0bHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfdGltZXMpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX2J1ZmZlciksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgSGFuZGxlIG5ld3NlZ21lbnQgZXZlbnRzIGNvcnJlY3RseS4KCSAgRHJvcCBidWZmZXJzIG91dCBvZiB0aGUgc2VnbWVudCByYW5nZS4KCjIwMDUtMDgtMjQgMTc6MjQ6MjEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBkaXNhYmxlIHRlc3Qgd2hpbGUgd2ltIGlzIGZpeGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGlzYWJsZSB0ZXN0IHdoaWxlIHdpbSBpcyBmaXhpbmcKCjIwMDUtMDgtMjQgMTY6NDY6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSAgYWRkIHBsdWdpbnNkaXIgdG8gcGtnY29uZmlnIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgcGx1Z2luc2RpciB0byBwa2djb25maWcgZmlsZXMKCjIwMDUtMDgtMjQgMTY6NDE6NDUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgY2hhbmdlbG9nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjaGFuZ2Vsb2cKCjIwMDUtMDgtMjQgMTY6MDk6NTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svOiBhZGQgYSB0ZXN0IHRoYXQgZG9lcyBhIGJ1bmNoIG9mIHN0YXRlIGNoYW5nZXMgb24gZWxlbWVudHMgbmVlZHMgc29tZSBmaXhpbmcgZm9yIHZhbGdyaW5kCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IChHU1RfU1RBUlRfVEVTVCksIChzdGF0ZXNfc3VpdGUpLCAobWFpbik6CgkgIGFkZCBhIHRlc3QgdGhhdCBkb2VzIGEgYnVuY2ggb2Ygc3RhdGUgY2hhbmdlcyBvbiBlbGVtZW50cwoJICBuZWVkcyBzb21lIGZpeGluZyBmb3IgdmFsZ3JpbmQKCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MuYzogKGdzdF9vYmplY3Rfc3VpdGUpOgoJICB3aGl0ZXNwYWNlCgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgYWRkIHByb3RvdHlwZSBmb3IgZ3N0X2NhcHNfaXNfZXF1YWxfZml4ZWQKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5cG9vbC5jOgoJICBkb2MgZml4ZXMKCjIwMDUtMDgtMjQgMTU6NDk6MDMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RxdWVyeS5jIChnc3RfcXVlcnlfbmV3X2NvbnZlcnQpOiBTcGV3IGlmIHdlIHRyeSB0byBjb252ZXJ0IGEgbmVnYXRpdmUgdmFsdWUuIERvZXNuJ3QgbWFrZSBtdWNoIHNlbnNlLiBNb3N0bHkgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0yNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cXVlcnkuYyAoZ3N0X3F1ZXJ5X25ld19jb252ZXJ0KTogU3BldyBpZiB3ZSB0cnkgdG8KCSAgY29udmVydCBhIG5lZ2F0aXZlIHZhbHVlLiBEb2Vzbid0IG1ha2UgbXVjaCBzZW5zZS4gTW9zdGx5IHRoaXMgaXMKCSAgaGVyZSB0byBmb3JjZSBjYWxsZXJzIHRvIGVuc3VyZSAtMSBtYXBzIHRvIC0xLgoKMjAwNS0wOC0yNCAxNToxMDo0MSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6IFdlbGwgZG9uZSB0byBNaWNoYWVsIGZvciBjYXRjaGluZyBteSBkZWxpYmVyYXRlIGludHJvZHVjdGlvbiBvZiB0aGlzIHNwZWxsaW5nIG1pc3Rha2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgV2VsbCBkb25lIHRvIE1pY2hhZWwgZm9yIGNhdGNoaW5nIG15IGRlbGliZXJhdGUgaW50cm9kdWN0aW9uCgkgIG9mIHRoaXMgc3BlbGxpbmcgbWlzdGFrZS4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgQWRkIEdTVF9FTEVNRU5UX1VOUEFSRU5USU5HIHRvIHByZXZlbnQgcmFjZXMgc28gdGhhdCB3ZSBjYW4KCSAgdW5saW5rIHBhZHMgYmVmb3JlIHJlbW92aW5nIHRoZSBlbGVtZW50IGZyb20gdGhlIGJpbi4KCjIwMDUtMDgtMjQgMTM6NDk6MjEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3QuYyAocGFyc2VfZGVidWdfbGlzdCk6IEFjY2VwdCBlLmcuIEdTVF9ERUJVRz00IHRvIG1lYW4gdGhlIHNhbWUgdGhpbmcgYXMgR1NUX0RFQlVHPSo6NC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDgtMjQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdC5jIChwYXJzZV9kZWJ1Z19saXN0KTogQWNjZXB0IGUuZy4gR1NUX0RFQlVHPTQgdG8gbWVhbgoJICB0aGUgc2FtZSB0aGluZyBhcyBHU1RfREVCVUc9Kjo0LgoJICAocGFyc2VfZGVidWdfbGV2ZWwsIHBhcnNlX2RlYnVnX2NhdGVnb3J5KTogTmV3IGhlbHBlciBwYXJzZXJzLgoKMjAwNS0wOC0yNCAxMzozMzoyMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IHVzZSBnYm9vbGVhbiByZXR1cm4gdmFsdWVzIGFuZCBwb2ludGVycyB0byBzaXplIHNvIHdlIGNhbiB1c2UgdGhlIGZ1bGwgR1NUX0JVRkZFUl9TSVpFIHIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fc2l6ZSksIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3VuaXRfc2l6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgdXNlIGdib29sZWFuIHJldHVybiB2YWx1ZXMgYW5kIHBvaW50ZXJzIHRvIHNpemUgc28gd2UgY2FuIHVzZSB0aGUKCSAgZnVsbCBHU1RfQlVGRkVSX1NJWkUgcmFuZ2UgKGd1aW50KSBmb3IgYnVmZmVyIHNpemVzCgkgIHVzZSBHc3RQYWREaXJlY3Rpb24gZm9yIHRyYW5zZm9ybV9jYXBzCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICByZW5hbWUgZ2V0X3NpemUgdG8gZ2V0X3VuaXRfc2l6ZSBzaW5jZSB0aGF0J3Mgd2hhdCBpdCBpcwoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl90cmFuc2Zvcm1fY2Fwcyk6CgkgIHVzZSBHc3RQYWREaXJlY3Rpb24gZm9yIHRyYW5zZm9ybV9jYXBzCgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9uZXdfYW5kX2FsbG9jKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgY2xlYW51cCBhbmQgZGVidWdnaW5nCgoyMDA1LTA4LTI0IDEzOjA0OjMxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBGaXhlZCBsb25nIHN0YW5kaW5nIG1lbS1sZWFrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19pbml0KSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSksIChhY3RpdmF0ZV9wYWRzKSwKCSAgKGdzdF9lbGVtZW50X3NhdmVfdGh5c2VsZik6CgkgICogdG9vbHMvZ3N0LWNvbXBwcmVwLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXMpOgoJICBGaXhlZCBsb25nIHN0YW5kaW5nIG1lbS1sZWFrCgoyMDA1LTA4LTI0IDExOjU0OjM3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIENoYW5nZSBHU1RfTUVTU0FHRV9TUkMgdG8gYmUgYSBHT2JqZWN0IHJhdGhlciB0aGFuIGEgR3N0T2JqZWN0LCBzbyB0aGF0IGFwcGxpY2F0aW9ucyBjYW4gc2Vuc2libHkgcG9zdCBjdXN0b20gbWVzc2FnZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfZmluYWxpemUpLCAoX2dzdF9tZXNzYWdlX2NvcHkpLAoJICAoZ3N0X21lc3NhZ2VfbmV3KSwgKGdzdF9tZXNzYWdlX25ld19lb3MpLCAoZ3N0X21lc3NhZ2VfbmV3X2Vycm9yKSwKCSAgKGdzdF9tZXNzYWdlX25ld193YXJuaW5nKSwgKGdzdF9tZXNzYWdlX25ld190YWcpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpLCAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfZG9uZSksIChnc3RfbWVzc2FnZV9uZXdfY3VzdG9tKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICAqIHRvb2xzL2dzdC1tZDVzdW0uYzogKGV2ZW50X2xvb3ApOgoJICBDaGFuZ2UgR1NUX01FU1NBR0VfU1JDIHRvIGJlIGEgR09iamVjdCByYXRoZXIgdGhhbiBhIEdzdE9iamVjdCwgc28KCSAgdGhhdCBhcHBsaWNhdGlvbnMgY2FuIHNlbnNpYmx5IHBvc3QgY3VzdG9tIG1lc3NhZ2VzIHdpdGggcmVmZXJlbmNlcwoJICB0byB0aGVpciBvd24gb2JqZWN0cy4KCjIwMDUtMDgtMjQgMTE6NDQ6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLio6IE1hbnkgZml4ZXMgYW5kIG5ldyBmZWF0dXJlcyBhZGRlZCBieSBUaG9tYXMuIENhbiBub3cgYWxzbyBkbyB0cmFuc2Zvcm1zIHdpdGggdmFyaWFibGUgc2kuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fc2l6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY29uZmlndXJlX2NhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF9zaXplKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgTWFueSBmaXhlcyBhbmQgbmV3IGZlYXR1cmVzIGFkZGVkIGJ5IFRob21hcy4gQ2FuIG5vdyBhbHNvIGRvCgkgIHRyYW5zZm9ybXMgd2l0aCB2YXJpYWJsZSBzaXplcyBhbmQgYSBjdXN0b20gZml4YXRlX2NhcHMgZnVuY3Rpb24uCgoyMDA1LTA4LTI0IDExOjM2OjQ5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfZml4YXRlX2NhcHMpOiBDaGVjayBpZiB0aGUgY2FwcyBpcyBmaXhlZCBhbHJlYWR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0yNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfZml4YXRlX2NhcHMpOiBDaGVjayBpZiB0aGUgY2FwcyBpcyBmaXhlZAoJICBhbHJlYWR5LgoKMjAwNS0wOC0yNCAxMToyMjozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogU29tZSBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfbmV3X2FuZF9hbGxvYyk6CgkgIFNvbWUgZGVidWdnaW5nLgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBDYXN0IHRvIENsb2NrVGltZSBiZWZvcmUgZm9ybWF0dGluZyB0byB0aW1lLgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBDbGVhbnVwcy4KCjIwMDUtMDgtMjMgMjE6MzI6MzEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdyYWNlZnVsbHkgaGFuZGxlIGhlbHBlciBtZXRob2QgY2FsbHMgdG8gb2JqZWN0cyB0aGF0IGFyZSBub3QgYmVlaW5nIGNvbnRyb2xsZWQsIGFkZGVkIHRlc3QgY2FzZSBmb3IgdGhhdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RjYXBzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RnaG9zdHBhZC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cXVlcnkuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHV0aWxzLnNnbWw6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3QtaGVscGVyLmM6IChnc3Rfb2JqZWN0X3NldF9jb250cm9sbGVyKSwKCSAgKGdzdF9vYmplY3Rfc2lua192YWx1ZXMpLCAoZ3N0X29iamVjdF9nZXRfdmFsdWVfYXJyYXlzKSwKCSAgKGdzdF9vYmplY3RfZ2V0X3ZhbHVlX2FycmF5KToKCSAgZ3JhY2VmdWxseSBoYW5kbGUgaGVscGVyIG1ldGhvZCBjYWxscyB0byBvYmplY3RzIHRoYXQgYXJlIG5vdCBiZWVpbmcKCSAgY29udHJvbGxlZCwgYWRkZWQgdGVzdCBjYXNlIGZvciB0aGF0CgoyMDA1LTA4LTIzIDE4OjE3OjAxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGV2ZW50Lio6IFNvbWUgbW9yZSBkZWJ1Z2dpbmcgb3V0cHV0IGFuZCBkb2MgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOiAoX2dzdF9ldmVudF9jb3B5KSwgKGdzdF9ldmVudF9uZXdfY3VzdG9tKSwKCSAgKGdzdF9ldmVudF9uZXdfbmV3c2VnbWVudCksIChnc3RfZXZlbnRfcGFyc2VfbmV3c2VnbWVudCksCgkgIChnc3RfZXZlbnRfbmV3X3RhZyksIChnc3RfZXZlbnRfcGFyc2VfdGFnKSwgKGdzdF9ldmVudF9uZXdfcW9zKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9xb3MpLCAoZ3N0X2V2ZW50X25ld19zZWVrKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9zZWVrKToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgU29tZSBtb3JlIGRlYnVnZ2luZyBvdXRwdXQgYW5kIGRvYyBjbGVhbnVwcy4KCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCk6CgkgIEZpeCBwb3NzaWJsZSBkZWFkbG9jay4KCjIwMDUtMDgtMjMgMTQ6MjU6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGFkZGVkIGFib3V0IDEwMCBzeW1ib2xzIGZyb20gZ3N0cmVhbWVyLXVudXNlZC50eHQgdG8gdGhlIHJpZ2h0IHNlY3Rpb25zIGZpeGVkIG1vcmUgYnJva2VuIGNvbW1lbnRzIGFkZGVkIEdzdEJ1cyB0byBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgYWRkZWQgYWJvdXQgMTAwIHN5bWJvbHMgZnJvbSBnc3RyZWFtZXItdW51c2VkLnR4dCB0byB0aGUgcmlnaHQgc2VjdGlvbnMKCSAgZml4ZWQgbW9yZSBicm9rZW4gY29tbWVudHMKCSAgYWRkZWQgR3N0QnVzIHRvIGRvY3MKCjIwMDUtMDgtMjMgMTE6NTM6NTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGlubGluZWQgbW9yZSBkb2MgY29tbWVudHMsIGFkZGVkIG1pc3NpbmcgY29tbWVudHMgYW5kIGZpeGVkIGNvbW1lbnRzIGZpeGVkIHR5cG9zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0YmluLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RidWZmZXIuc2dtbDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9nZXRfdHlwZSksIChnc3RfYmluX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBpbmxpbmVkIG1vcmUgZG9jIGNvbW1lbnRzLCBhZGRlZCBtaXNzaW5nIGNvbW1lbnRzIGFuZCBmaXhlZCBjb21tZW50cwoJICBmaXhlZCB0eXBvcwoKMjAwNS0wOC0yMyAxMTozODoyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IHNvbWUgZGVidWdnaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfbmV3X2FuZF9hbGxvYyk6CgkgIHNvbWUgZGVidWdnaW5nCgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgd2hpdGVzcGFjZSBmaXhlcwoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWN0aXZhdGVfcHVzaCksIChnc3RfcGFkX2FsbG9jX2J1ZmZlcik6CgkgIG1vcmUgZGVidWdnaW5nCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X2NhcHNfc3RydWN0dXJlX2ZpeGF0ZV9maWVsZF9ib29sZWFuKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIGFkZCBhIGZpeGF0ZSBmdW5jdGlvbiBmb3IgYm9vbGVhbnM7IGFkZCBhIEZJWE1FIHRoYXQgdGhlc2UgZnVuYwoJICBuYW1lcyBzaG91bGQgcHJvYmFibHkgYmUgZ3N0X3N0cnVjdHVyZV9maXhhdGVfKgoKMjAwNS0wOC0yMiAyMTowMzozMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcG9ydGVkIGdzdGNoaWxkcHJveHkgb3ZlciBmcm9tIDAuOCBwb3J0ZWQgZ3N0LWluc3BlY3QgZml4ZXMgYW5kIGVuaGFuY2VtZW50cyBvdmVyIGZyb20gMC44CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9nZXRfdHlwZSksCgkgIChnc3RfYmluX2NoaWxkX3Byb3h5X2dldF9jaGlsZF9ieV9pbmRleCksCgkgIChnc3RfYmluX2NoaWxkX3Byb3h5X2dldF9jaGlsZHJlbl9jb3VudCksCgkgIChnc3RfYmluX2NoaWxkX3Byb3h5X2luaXQpOgoJICAqIGdzdC9nc3RjaGlsZHByb3h5LmM6IChnc3RfY2hpbGRfcHJveHlfZ2V0X2NoaWxkX2J5X25hbWUpLAoJICAoZ3N0X2NoaWxkX3Byb3h5X2dldF9jaGlsZF9ieV9pbmRleCksCgkgIChnc3RfY2hpbGRfcHJveHlfZ2V0X2NoaWxkcmVuX2NvdW50KSwgKGdzdF9jaGlsZF9wcm94eV9sb29rdXApLAoJICAoZ3N0X2NoaWxkX3Byb3h5X2dldF9wcm9wZXJ0eSksIChnc3RfY2hpbGRfcHJveHlfZ2V0X3ZhbGlzdCksCgkgIChnc3RfY2hpbGRfcHJveHlfZ2V0KSwgKGdzdF9jaGlsZF9wcm94eV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2NoaWxkX3Byb3h5X3NldF92YWxpc3QpLCAoZ3N0X2NoaWxkX3Byb3h5X3NldCksCgkgIChnc3RfY2hpbGRfcHJveHlfY2hpbGRfYWRkZWQpLCAoZ3N0X2NoaWxkX3Byb3h5X2NoaWxkX3JlbW92ZWQpLAoJICAoZ3N0X2NoaWxkX3Byb3h5X2Jhc2VfaW5pdCksIChnc3RfY2hpbGRfcHJveHlfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfaW50ZXJmYWNlcyksCgkgIChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyksIChwcmludF9lbGVtZW50X2luZm8pOgoJICBwb3J0ZWQgZ3N0Y2hpbGRwcm94eSBvdmVyIGZyb20gMC44CgkgIHBvcnRlZCBnc3QtaW5zcGVjdCBmaXhlcyBhbmQgZW5oYW5jZW1lbnRzIG92ZXIgZnJvbSAwLjgKCjIwMDUtMDgtMjIgMTk6NDg6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEFsc28gY2FsbCB0aGUgdHJhbnNmb3JtIGZ1bmN0aW9uIGlmIHdlIGhhdmUgQU5ZIGNhcHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgIEFsc28gY2FsbCB0aGUgdHJhbnNmb3JtIGZ1bmN0aW9uIGlmIHdlIGhhdmUgQU5ZIGNhcHMuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfc2V0X25ld19zdHJlYW1fdGltZSk6CgkgIEZpeCBkZWJ1ZyBpbmZvLgoKMjAwNS0wOC0yMiAxOToyMjozNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZXZlbnRfaGFuZGxlcikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2V2ZW50X2hhbmRsZXIpCgkgIERvbid0IHByZXRlbmQgdG8gaGFuZGxlIHNlZWsgZXZlbnRzIGlmIHRoZSBzb3VyY2UgaXMgbm90IHNlZWthYmxlCgoyMDA1LTA4LTIyIDE4OjQ4OjQ4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFJlbW92ZSBleHRyYSBwYXJhbWV0ZXIgdG8gZGVidWcgb3V0cHV0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICBSZW1vdmUgZXh0cmEgcGFyYW1ldGVyIHRvIGRlYnVnIG91dHB1dAoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19zZW5kX2Rpc2NvbnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RvX3NlZWspLCAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1c2gpOgoJICBGaXggc2VlayBldmVudCBoYW5kbGluZy4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCk6CgkgIERvbid0IHN0YXJ0IHRoZSBzcmMgcGFkIHRhc2sgb24gRkxVU0hfU1RPUCBpZiB0aGUgcGFkCgkgIGlzbid0IGxpbmtlZC4KCSAgRGVidWcgY2hhbmdlcy4KCjIwMDUtMDgtMjIgMTU6MTI6NTYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3R1dGlscy5oIChHU1RfQk9JTEVSUExBVEVfV0lUSF9JTlRFUkZBQ0UpOiBOZXcgZ2hldHRvIG1hY3JvLCBpbXBsZW1lbnRzIGFuIGludGVyZmFjZSBhbmQgZ3N0aW1wbGVtZW50c2ludGVyZmFjZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0yMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0dXRpbHMuaCAoR1NUX0JPSUxFUlBMQVRFX1dJVEhfSU5URVJGQUNFKTogTmV3IGdoZXR0bwoJICBtYWNybywgaW1wbGVtZW50cyBhbiBpbnRlcmZhY2UgYW5kIGdzdGltcGxlbWVudHNpbnRlcmZhY2UgZm9yIGEKCSAgbmV3IHR5cGUuCgoyMDA1LTA4LTIyIDE1OjA4OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGNhcHMuYzogQWRkZWQgY2hlY2sgZm9yIGdzdF9zdGF0aWNfY2Fwc19nZXQoKSByZWZjb3VudGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGNhcHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9jYXBzX3N1aXRlKToKCSAgQWRkZWQgY2hlY2sgZm9yIGdzdF9zdGF0aWNfY2Fwc19nZXQoKSByZWZjb3VudGluZy4KCjIwMDUtMDgtMjIgMTQ6MzU6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBNYWtlIF9zdGF0aWNfY2Fwc19nZXQoKSByZWZjb3VudGluZyBzYW5lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X3N0YXRpY19jYXBzX2dldCksIChnc3RfY2Fwc190b19zdHJpbmcpOgoJICBNYWtlIF9zdGF0aWNfY2Fwc19nZXQoKSByZWZjb3VudGluZyBzYW5lLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfc3RhdGUpOgoJICBBZGQgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoKSB0byBwcm90ZWN0IGFnYWluc3Qgc2VnZmF1bHRzLgoKMjAwNS0wOC0yMiAxMDozNzowMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgaW5saW5lZCByZW1haW5pbmcgZG9jcywgYWRkZWQgbWlzc2luZyBkb2MgY29tbWVudHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RldmVudC5zZ21sOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBpbmxpbmVkIHJlbWFpbmluZyBkb2NzLCBhZGRlZCBtaXNzaW5nIGRvYyBjb21tZW50cwoKMjAwNS0wOC0yMiAwOToyNTo1MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IHNpbmNlIHdlIGRvbid0IGtub3cgd2hlbiBwcmVyb2xsIGlzIGRvbmUsIHVzZSByZWZjb3VudCByYW5nZSBjaGVjayBmb3IgdGhlIHNpbmsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBzaW5jZSB3ZSBkb24ndCBrbm93IHdoZW4gcHJlcm9sbCBpcyBkb25lLCB1c2UgcmVmY291bnQgcmFuZ2UKCSAgY2hlY2sgZm9yIHRoZSBzaW5rCgkgICogZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGFkZCBtYWNybyBmb3IgY2hlY2tpbmcgcmVmY291bnQgcmFuZ2UKCjIwMDUtMDgtMjEgMTY6NTM6MDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGZpZ3VyZSB0aGlzIG91dCBmb3IgSFQgbWFjaGluZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpZ3VyZSB0aGlzIG91dCBmb3IgSFQgbWFjaGluZXMKCjIwMDUtMDgtMjEgMTU6MjE6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIHNvbWUgZnVua3kgSFQvbXVsdGljcHUgdnMgc2luZ2xlIGRpZmZlcmVuY2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNvbWUgZnVua3kgSFQvbXVsdGljcHUgdnMgc2luZ2xlIGRpZmZlcmVuY2UKCjIwMDUtMDgtMjEgMTU6MDE6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IGNsZWFuIHVwIGVudmlyb25tZW50IGZvciB3aGVuIHJlZ2lzdHJ5IGdldHMgYnVpbHQgdmVyc3VzIHdoZW4gYWN0dWFsIHRlc3RzIGFyZSBydW47IHZhbGdyaW5kIHNlZW1zLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBjbGVhbiB1cCBlbnZpcm9ubWVudCBmb3Igd2hlbiByZWdpc3RyeSBnZXRzIGJ1aWx0IHZlcnN1cwoJICB3aGVuIGFjdHVhbCB0ZXN0cyBhcmUgcnVuOyB2YWxncmluZCBzZWVtcyB0byBub3QgcmVwb3J0CgkgIGxlYWtzIGlmIEdTVF9QTFVHSU5fUEFUSCBpcyBzZXQgdG8gc29tZSBzcGVjaWZpYyB2YWx1ZXMKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIGFkZCBtb3JlIHJlZmNvdW50aW5nIGNoZWNrczsgbWF5YmUgdGhpcyBleHBvc2VzIGEKCSAgcHJlcm9sbCBsb2NrIGJ1ZyA/CgkgICogY29tbW9uL2NoZWNrLm1hazoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KToKCSAgKiBnc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fZWxlbWVudF9pc19zZW1pX3NpbmspLCAoZ3N0X2Jpbl9nZXRfc3RhdGUpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWN0aXZhdGVfcHVzaCksIChnc3RfcGFkX2NoYWluKToKCSAgYWRkL2ZpeCBkZWJ1Z2dpbmcvd2hpdGVzcGFjZQoKMjAwNS0wOC0yMSAxMTo0MDo0NCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay9nc3QvZ3N0ZXZlbnQuYzogRXIsIGRvbid0IGNhbGwgZ3N0X2Jpbl93YXRjaF9mb3Jfc3RhdGVfY2hhbmdlIHlvdSBpZGlvdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGV2ZW50LmM6IChldmVudF9wcm9iZSksICh0ZXN0X2V2ZW50KSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgRXIsIGRvbid0IGNhbGwgZ3N0X2Jpbl93YXRjaF9mb3Jfc3RhdGVfY2hhbmdlIHlvdSBpZGlvdC4KCjIwMDUtMDgtMjEgMTE6MTU6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNvbW1vbjoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHJ1biB2YWxncmluZCB3aXRoIHByb3BlciBlbnYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJ1biB2YWxncmluZCB3aXRoIHByb3BlciBlbnYKCjIwMDUtMDgtMjEgMTA6NTQ6NDcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IFVzZSBDSEVDS19DRkxBR1MgYW5kIENIRUNLX0xJQlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIFVzZSBDSEVDS19DRkxBR1MgYW5kIENIRUNLX0xJQlMKCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnQuYzogKGV2ZW50X3Byb2JlKSwgKHRlc3RfZXZlbnQpLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICBEb24ndCBsZWFrIGV2ZW50cy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfc2VuZF9kaXNjb250KSwKCSAgKGdzdF9iYXNlX3NyY19zdGFydCksIChnc3RfYmFzZV9zcmNfc3RvcCksCgkgIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCksIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgU3ByaW5rbGUgZ3N0X2Jhc2Vfc3JjX3N0b3AgbGliZXJhbGx5IGFyb3VuZCBlcnJvciBwYXRocyB0byBmaXgKCSAgcHJvYmxlbXMgcmV1c2luZyBhIHNvdXJjZSBhZnRlciBmYWlsZWQgc3RhdGUgY2hhbmdlcy4KCSAgKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoaGVscGVyX2ZpbmRfcGVlayksCgkgIChoZWxwZXJfZmluZF9zdWdnZXN0KSwgKGdzdF90eXBlX2ZpbmRfaGVscGVyKToKCSAgRXh0cmEgZGVidWcgb3V0cHV0LiBEb24ndCBzZWdmYXVsdCBvbiBHU1RfUEFEX0dFVFJBTkdFRlVOQyA9IE5VTEwKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGV2ZW50LnNnbWw6CgkgIE1pZ3JhdGUgcGFydCBvZiB0aGUgZG9jcyBmcm9tIHRoZSBTR01MIGZpbGUuIFdhaXQgZm9yIGVuc29uaWMgdG8KCSAgdGVsbCBtZSBob3cgSSBkaWQgaXQgd3JvbmcgOykKCSAgKiB0b29scy9nc3QtdHlwZWZpbmQuYzogKG1haW4pOgoJICBFeHRyYSByb2J1c3RuZXNzIHRvIHN0YXRlIGNoYW5nZXMgYmV0d2VlbiBmaWxlcy4KCjIwMDUtMDgtMjEgMTA6Mzk6MzkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IGRvbid0IHZhbGdyaW5kIHRoZSBjb250cm9sbGVyIHRlc3QgLSBpdCdzIGxlYWtpbmcgLSBTdGVmYW4sIEhFTFAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIGRvbid0IHZhbGdyaW5kIHRoZSBjb250cm9sbGVyIHRlc3QgLSBpdCdzIGxlYWtpbmcgLSBTdGVmYW4sIEhFTFAKCSAgKiBnc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19tZXNzYWdlX2Vycm9yKSwKCSAgKGdzdF9jaGVja19jaGFpbl9mdW5jKSwgKGdzdF9jaGVja19zZXR1cF9lbGVtZW50KSwKCSAgKGdzdF9jaGVja190ZWFyZG93bl9lbGVtZW50KSwgKGdzdF9jaGVja19zZXR1cF9zcmNfcGFkKSwKCSAgKGdzdF9jaGVja190ZWFyZG93bl9zcmNfcGFkKSwgKGdzdF9jaGVja19zZXR1cF9zaW5rX3BhZCksCgkgIChnc3RfY2hlY2tfdGVhcmRvd25fc2lua19wYWQpOgoJICAqIGdzdC9jaGVjay9nc3RjaGVjay5oOgoJICBhZGQgYSBidW5jaCBvZiBtZXRob2RzIHRvIHNldCB1cCBlbGVtZW50cywgYW5kIHNyYyBhbmQgc2luayBwYWRzCgkgICogY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOiAoc2V0dXBfZmFrZXNyYyksIChjbGVhbnVwX2Zha2VzcmMpOgoJICAqIGNoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6IChzZXR1cF9pZGVudGl0eSksIChjbGVhbnVwX2lkZW50aXR5KSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgdXNlIHRoZW0KCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICAqIGdzdC9nc3R0YWcuaDoKCSAgd2hpdGVzcGFjZS9kb2MgZml4ZXMKCjIwMDUtMDgtMjAgMjA6MzA6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBtYWtlIEdTVF9FTEVNRU5UX0VSUk9SIG5vdCBkbyBHU1RfRVJST1JfT0JKRUNUIC0gdGhlc2UgZXJyb3JzIHNob3VsZCBiZSBoYW5kbGVkIGJ5IHRoZSBhcHBsaWNhdGlvbiBhbmQgbm90IGFsd2F5cyBwcmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1ha2UgR1NUX0VMRU1FTlRfRVJST1Igbm90IGRvIEdTVF9FUlJPUl9PQkpFQ1QgLSB0aGVzZSBlcnJvcnMgc2hvdWxkCgkgIGJlIGhhbmRsZWQgYnkgdGhlIGFwcGxpY2F0aW9uIGFuZCBub3QgYWx3YXlzIHByaW50ZWQgYXMgd2VsbAoKMjAwNS0wOC0yMCAyMDoxNTo1MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogc2V0IEdTVF9UT09MU19ESVIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIHNldCBHU1RfVE9PTFNfRElSCgkgICogZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfbWVzc2FnZV9lcnJvcik6CgkgICogZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGFkZCBhIGZhaWxfdW5sZXNzX2VxdWFsc19pbnQKCSAgYWRkIGZhaWxfdW5sZXNzIGZvciBlcnJvciBtZXNzYWdlcwoKMjAwNS0wOC0yMCAxNDowMDoxMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9nc3Quc3VwcDoKCSogY29tbW9uOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0LnN1cHA6CgkgIGZhY3RvciBvdXQgdGhlIGNvbW1vbiBzdHVmZgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmFjdG9yIG91dCB0aGUgY29tbW9uIHN0dWZmCgoyMDA1LTA4LTIwIDEzOjE3OjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgd29yayBvbiBidWlsZHMgd2l0aG91dCBjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd29yayBvbiBidWlsZHMgd2l0aG91dCBjaGVjawoKMjAwNS0wOC0yMCAxMjo0NzowOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHJlbmFtZWQgdGVzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVuYW1lZCB0ZXN0CgoyMDA1LTA4LTIwIDEyOjQzOjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJICBwdXQgc29tZSBtYWtlLXVwIG9uIHRoZSBnc3RldmVudCB0ZXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwdXQgc29tZSBtYWtlLXVwIG9uIHRoZSBnc3RldmVudCB0ZXN0CgoyMDA1LTA4LTIwIDEyOjM5OjA1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJKiBjaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSAgdmFsZ3JpbmQgbW9yZSB0ZXN0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdmFsZ3JpbmQgbW9yZSB0ZXN0cwoKMjAwNS0wOC0yMCAxMjoxNDoyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiBjaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6CgkqIGNoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6CgkqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzoKCSogY2hlY2svZ3N0LWxpYnMvZ2RwLmM6CgkqIGNoZWNrL2dzdC9nc3QuYzoKCSogY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiBjaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIGNoZWNrL2dzdC9nc3RidXMuYzoKCSogY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGNoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJKiBjaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiBjaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBjaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkqIGNoZWNrL2dzdC9nc3RwYWQuYzoKCSogY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBjaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzoKCSogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzoKCSogY2hlY2svc3RhdGVzL3NpbmtzLmM6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWQuc2dtbDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGdzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBnc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIHBrZ2NvbmZpZy9NYWtlZmlsZS5hbToKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay5wYy5pbjoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvY2xlYW51cC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJICBtb3ZlIGNoZWNrIHN0dWZmIHRvIGl0cyBvd24gbGlicmFyeSB0byBiZSB1c2VkIGJ5IG90aGVyIG1vZHVsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vdmUgY2hlY2sgc3R1ZmYgdG8gaXRzIG93biBsaWJyYXJ5IHRvIGJlIHVzZWQgYnkgb3RoZXIgbW9kdWxlcwoKMjAwNS0wOC0xOSAwOTo1ODo0MiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZWxpbWluYXRlIGFub3RoZXIgdG1wbCBmaWxlLCBmaXggc3BlbGxpbmcgaW4gdGhlIGxvbmctZGVzY3JpcHRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvdG1wbC9nc3Quc2dtbDoKCSAgKiBnc3QvZ3N0LmM6CgkgIGVsaW1pbmF0ZSBhbm90aGVyIHRtcGwgZmlsZSwgZml4IHNwZWxsaW5nIGluIHRoZSBsb25nLWRlc2NyaXB0aW9uCgoyMDA1LTA4LTE4IDE2OjQyOjQ5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RldmVudHMuYzogU2hvdWxkIGZpeCBidWlsZCBvbiA2NC1iaXQgYXJjaCdzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RldmVudHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGV2ZW50X3Byb2JlKSwKCSAgKHRlc3RfZXZlbnQpLCAodGltZWRpZmYpLCAoZ3N0ZXZlbnRzX3N1aXRlKToKCSAgU2hvdWxkIGZpeCBidWlsZCBvbiA2NC1iaXQgYXJjaCdzCgoyMDA1LTA4LTE4IDE2OjIwOjI0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBNYWtlIHN1cmUgdGhhdCB3aGVuIGEgcGlwZWxpbmUgZ29lcyB0byBQTEFZSU5HLCB0aGF0IGRhdGEgaGFzIGFjdHVhbGx5IGhpdCB0aGUgc2luay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDgtMTggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgIE1ha2Ugc3VyZSB0aGF0IHdoZW4gYSBwaXBlbGluZSBnb2VzIHRvIFBMQVlJTkcsIHRoYXQgZGF0YSBoYXMKCSAgYWN0dWFsbHkgaGl0IHRoZSBzaW5rLgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rcy5jICh0ZXN0X3NpbmspOiBBIHNpbmsgdGhhdCBkb2Vzbid0IGdldCBhbnkKCSAgZGF0YSBzaG91bGRuJ3QgcmV0dXJuIFNVQ0NFU1MgZm9yIGdvaW5nIHRvIGVpdGhlciBQTEFZSU5HIG9yCgkgIFBBVVNFRC4gVGVzdCBhbHNvIHRoZSByZXR1cm4gdmFsdWVzIG9uIHRoZSB3YXkgYmFjayBkb3duLgoJICAqIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSk6IFdoZW4gY2hhbmdpbmcgdGhlCgkgIHN0YXRlIG9mIGFuIGVsZW1lbnQgY3VycmVudGx5IGNoYW5naW5nIHN0YXRlIGFzeW5jaHJvbm91c2x5LCBnbyB0bwoJICBsb3N0LXN0YXRlIGFmdGVyIGNvbW1pdGluZyB0aGUgcGVuZGluZyBzdGF0ZS4gTWFrZXMgZnV0dXJlIGNhbGxzCgkgIHRvIGdldF9zdGF0ZSBjb250aW51ZSB0byByZXR1cm4gQVNZTkMuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOiBSZXR1cm4KCSAgQVNZTkMgd2hlbiBnb2luZyB0byBQTEFZSU5HIGlmIHdlIHN0aWxsIGRvbid0IGhhdmUgcHJlcm9sbCwgYXMgY2FuCgkgIGhhcHBlbiB3aXRoIGxpdmUgc291cmNlcy4KCjIwMDUtMDgtMTggMTY6MTU6MjggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOiBIYWNrIGxvbmcgcGFyYWdyYXBoIGludG8gMiBjaHVua3MgYXMgYSB3b3JrYXJvdW5kIGZvciBidWdneSBqYWRldGV4IHZlcnNpb24gaW4gc2lkIGFuZCBiLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgSGFjayBsb25nIHBhcmFncmFwaCBpbnRvIDIgY2h1bmtzIGFzIGEgd29ya2Fyb3VuZCBmb3IgYnVnZ3kKCSAgamFkZXRleCB2ZXJzaW9uIGluIHNpZCBhbmQgYnJlZXp5IHRoYXQgbG9vcHMgaW5maW5pdGVseSBhbmQKCSAgZWF0cyBhbGwgUkFNLgoKMjAwNS0wOC0xOCAxNjowMDozNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay9nc3QvZ3N0ZXZlbnRzLmM6IFByb3ZpZGUgbW9yZSBlcnJvciBtYXJnaW4gaW4gY2xvY2sgbWVhc3VyZW1lbnRzIHRvIGFsbG93IGZvciBnX2dldF9jdXJyZW50X3RpbWUgaW5hY2N1cmFjaWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnRzLmM6IChHU1RfU1RBUlRfVEVTVCksIChldmVudF9wcm9iZSksCgkgICh0ZXN0X2V2ZW50KSwgKHRpbWVkaWZmKSwgKGdzdGV2ZW50c19zdWl0ZSk6CgkgIFByb3ZpZGUgbW9yZSBlcnJvciBtYXJnaW4gaW4gY2xvY2sgbWVhc3VyZW1lbnRzIHRvIGFsbG93IGZvcgoJICBnX2dldF9jdXJyZW50X3RpbWUgaW5hY2N1cmFjaWVzLgoKMjAwNS0wOC0xOCAxNTo0NzoxNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay9nc3QvZ3N0ZXZlbnRzLmM6IEZpeCBlcnJvciBtZXNzYWdlIG91dHB1dCBzbyBJIG1pZ2h0IGJlIGFibGUgdG8gdGVsbCB3aHkgdGhlIHRlc3Qgd29ya3MgaGVyZSBidXQgZmFpbHMgb24gdGhlIGIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGV2ZW50cy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZXZlbnRfcHJvYmUpLAoJICAodGVzdF9ldmVudCksICh0aW1lZGlmZiksIChnc3RldmVudHNfc3VpdGUpOgoJICBGaXggZXJyb3IgbWVzc2FnZSBvdXRwdXQgc28gSSBtaWdodCBiZSBhYmxlIHRvIHRlbGwgd2h5IHRoZQoJICB0ZXN0IHdvcmtzIGhlcmUgYnV0IGZhaWxzIG9uIHRoZSBidWlsZCBmYXJtLgoKMjAwNS0wOC0xOCAxNTozMToyOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay86IEkgd3JvdGUgYSB0ZXN0IQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnRzLmM6IChHU1RfU1RBUlRfVEVTVCksIChldmVudF9wcm9iZSksCgkgICh0ZXN0X2V2ZW50KSwgKHRpbWVkaWZmKSwgKGdzdGV2ZW50c19zdWl0ZSksIChtYWluKToKCSAgSSB3cm90ZSBhIHRlc3QhCgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSAgU3BlbGxpbmcgY29ycmVjdGlvbgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZXZlbnQuc2dtbDoKCSAgRG9jcyB1cGRhdGVzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICBUcmVhdCBhIGJ1ZmZlci13aXRob3V0LW5ld3NlZ21lbnQgdGhlIHNhbWUgYXMgYSByZWNlaXZpbmcKCSAgYSBuZXdzZWdtZW50IG5vdCBpbiB0aW1lIGZvcm1hdCwgYW5kIGRpc2FibGUgc3luY2luZyB0byB0aGUgY2xvY2sKCSAgd2l0aCBhIHdhcm5pbmcuCgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19zZXRfc3luY19oYW5kbGVyKToKCSAgQXNzZXJ0IGlmIGFueW9uZSB0cmllcyB0byByZXBsYWNlIHRoZSBleGlzdGluZyBzeW5jX2hhbmRsZXIgZm9yIGJ1cywKCSAgYXMgb25seSB0aGUgb3duZXIgc2hvdWxkIGJlIHNldHRpbmcgaXQuCgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIEhhdmUgYSBmaXhlZCBzZXQgb2YgY3VzdG9tIGV2ZW50IGVudW1zIHdpdGggZXZlbnRzIGlkZW50aWZpZWQgYnkKCSAgdGhlaXIgc3RydWN0dXJlIG5hbWUgKGFzIGluIDAuOCksIHJhdGhlciB0aGFuIGEgZnJlZS1mb3ItYWxsCgkgIGFsbG93aW5nIGNvbGxpc2lvbnMgYmV0d2VlbiBlbnVtIHZhbHVlcyBmcm9tIGRpZmZlcmVudCBwbHVnaW5zLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfY2xhc3NfaW5pdCk6CgkgIERvY3MgY2hhbmdlLgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KToKCSAgSGFuZGxlIG91dC1vZi1iYW5kIGRvd25zdHJlYW0gZXZlbnRzIGZyb20gdGhlIHNlbmRpbmcgdGhyZWFkLgoKMjAwNS0wOC0xNyAxNjo1NzowMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmMgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOiBJbnRlcnByZXQgcGxheS10aW1lb3V0PT0wIHRvIG1lYW4gbm8gdGltZW91dCBhdCBhbGwuIEluIHRoYXQgY2FzZSwgZG9uLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTE3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwaXBlbGluZS5jIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKTogSW50ZXJwcmV0CgkgIHBsYXktdGltZW91dD09MCB0byBtZWFuIG5vIHRpbWVvdXQgYXQgYWxsLiBJbiB0aGF0IGNhc2UsIGRvbid0CgkgIGJvdGhlciB3aXRoIGEgZ2V0X3N0YXRlIG9yIGEgd2FybmluZywganVzdCByZXR1cm4gZGlyZWN0bHksIGV2ZW4KCSAgaWYgaXQncyBBU1lOQy4KCjIwMDUtMDgtMTcgMTY6MzM6MjcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRGVidWcgY2hhbmdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDgtMTcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBEZWJ1ZyBjaGFuZ2VzLgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIGdzdC9nc3R1dGlscy5jIChnc3RfYmluX3dhdGNoX2Zvcl9zdGF0ZV9jaGFuZ2UpOiBBZGQgZnVuY3Rpb24gdG8KCSAgZW5zdXJlIGJpbnMgcG9zdCBzdGF0ZSBjaGFuZ2UgbWVzc2FnZXMuIEEgYml0IG9mIGEgaGFjayBidXQgSSBjYW4ndAoJICB0aGluayBvZiBhIHdheSB0byBhdm9pZCBpdC4KCSAgKiBjaGVjay9nc3QvZ3N0YmluLmMgKHRlc3Rfd2F0Y2hfZm9yX3N0YXRlX2NoYW5nZSk6IEFkZGVkIHRlc3QuCgoyMDA1LTA4LTE2IDE3OjIzOjU1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RhZGFwdGVyLio6IE5ldyBmdW5jdGlvbiwgbGlrZSBwZWVrKCkgYnV0IHlvdSBvd24gdGhlIGRhdGEuIE5vdCB0ZXJyaWJseSBlZmZpY2llbnQgYXRtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0xNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jIChnc3RfYWRhcHRlcl90YWtlKTogTmV3IGZ1bmN0aW9uLCBsaWtlCgkgIHBlZWsoKSBidXQgeW91IG93biB0aGUgZGF0YS4gTm90IHRlcnJpYmx5IGVmZmljaWVudCBhdG0uCgoyMDA1LTA4LTE2IDE2OjI5OjA0ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuKjogQWRkIHR3byB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgdGFnIGhhbmRsaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2ZvdW5kX3RhZ3NfZm9yX3BhZCksIChwdXNoX2FuZF9yZWYpLAoJICAoZ3N0X2VsZW1lbnRfZm91bmRfdGFncyk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFkZCB0d28gdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHRhZyBoYW5kbGluZy4KCjIwMDUtMDgtMTYgMTI6MTU6NDYgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvbWFudWFsLzogRml4IGRvY3MgdG8gdXNlIF9iaW5fYWRkKCkgYmVmb3JlIF9saW5rKCksIHdoaWNoIGZpeGVzIHRoZSBleGFtcGxlcyB3aXRoIHJlY2VudCBjb3JlIHZlcnNpb25zIChyZXBvcnRlZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkgIEZpeCBkb2NzIHRvIHVzZSBfYmluX2FkZCgpIGJlZm9yZSBfbGluaygpLCB3aGljaCBmaXhlcyB0aGUgZXhhbXBsZXMKCSAgd2l0aCByZWNlbnQgY29yZSB2ZXJzaW9ucyAocmVwb3J0ZWQgYnkgTWFkaGFuIFJhaiBNCgkgIDxyYWpfbWFkYW5AcmVkaWZmbWFpbC5jb20+LCAjMzEzMTk5KS4KCjIwMDUtMDgtMTYgMDk6NDI6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0dmFsdWUuYzogQWRkZWQgc3VidHJhY3QgY2hlY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgIEFkZGVkIHN1YnRyYWN0IGNoZWNrcy4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgIFNvbWUgbW9yZSBkb2NzIGFib3V0IG5ld3NlZ21lbnQKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NoYW5nZV9zdGF0ZSksIChiaW5fYnVzX2hhbmRsZXIpOgoJICBGaXggRklYTUUKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfdG9fc3RyaW5nKToKCSAgQWRkIGNvbW1lbnRzLCBjbGVhbnVwcy4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2F2ZV90aHlzZWxmKToKCSAgY2xlYW51cHMKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9jb2xsZWN0X2ludF9yYW5nZSksCgkgIChnc3Rfc3RyaW5nX3Vud3JhcCksIChnc3RfdmFsdWVfdW5pb25faW50X2ludF9yYW5nZSksCgkgIChnc3RfdmFsdWVfdW5pb25faW50X3JhbmdlX2ludF9yYW5nZSksCgkgIChnc3RfdmFsdWVfaW50ZXJzZWN0X2ludF9pbnRfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9pbnRfcmFuZ2VfaW50X3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9pbnRlcnNlY3RfZG91YmxlX2RvdWJsZV9yYW5nZSksCgkgIChnc3RfdmFsdWVfaW50ZXJzZWN0X2RvdWJsZV9yYW5nZV9kb3VibGVfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9saXN0KSwgKGdzdF92YWx1ZV9zdWJ0cmFjdF9pbnRfaW50X3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9pbnRfcmFuZ2VfaW50KSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9kb3VibGVfcmFuZ2VfZG91YmxlKSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9kb3VibGVfcmFuZ2VfZG91YmxlX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9mcm9tX2xpc3QpLCAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2xpc3QpLAoJICAoZ3N0X3ZhbHVlX2Nhbl9jb21wYXJlKSwgKGdzdF92YWx1ZV9jb21wYXJlX2ZyYWN0aW9uKToKCSAgQ2xlYW51cHMsIGFkZCBjb21tZW50cywgcmVtb3ZlIHVubmVlZGVkIGFzc2VydHMuCgoyMDA1LTA4LTE1IDE4OjE1OjM4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGRvbid0IGNvbnZlcnQgTlVMTCBzdHJ1Y3R1cmVzIHRvIHN0cmluZ3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvbid0IGNvbnZlcnQgTlVMTCBzdHJ1Y3R1cmVzIHRvIHN0cmluZ3MKCjIwMDUtMDgtMTUgMTY6NTc6MzQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IG1hZGUgc29tZSBkZWZpbmVzIHByaXZhdGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgbWFkZSBzb21lIGRlZmluZXMgcHJpdmF0ZQoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0Y29uZmlnLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RxdWV1ZS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dGFnbGlzdC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZXMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHV0aWxzLnNnbWw6CgkgICogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19jbGFzc19pbml0KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3R4bWwuYzogKGdzdF94bWxfY2xhc3NfaW5pdCk6CgkgIGRvY3VtZW50ZWQgYWxsIHVuZG9jdW1lbnRlZCBzaWduYWwgaW5saW5lCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5oOgoJICBhZGRlZCBwYWRkaW5nCgoyMDA1LTA4LTE1IDA5OjU2OjE5ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDogRG9jdW1lbnQgX3NldF9saW5rX2Z1bmN0aW9uIC0+IF9zZXRfc2V0Y2Fwc19mdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgIERvY3VtZW50IF9zZXRfbGlua19mdW5jdGlvbiAtPiBfc2V0X3NldGNhcHNfZnVuY3Rpb24uCgoyMDA1LTA4LTE0IDIyOjI5OjA3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBhZGQgYSAuY2hlY2sgdGFyZ2V0IGZvciBydW5uaW5nIHRoZSBjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgYWRkIGEgLmNoZWNrIHRhcmdldCBmb3IgcnVubmluZyB0aGUgY2hlY2sKCSAgKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIGNvc21ldGljIGZpeHVwcwoJICAqIGNoZWNrL2dzdC9nc3RidWZmZXIuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF90ZXN0X3N1aXRlKToKCSAgY29tcGxldGUgY2hlY2tzIGZvciBnc3RidWZmZXI7IHdvdWxkIGJlIG5pY2UgaWYgSSBjb3VsZCBnZXQgdGhlCgkgIGdjb3Ygc3R1ZmYgdG8gd29yayBzbyBJIGNhbiBzZWUgaWYgSSBhY3R1YWxseSBjb21wbGV0ZWQgZ3N0YnVmZmVyLmMKCSAgKiBjaGVjay9nc3RjaGVjay5oOgoJICBhZGQgQVNTRVJUX0JVRkZFUl9SRUZDT1VOVAoKMjAwNS0wOC0xMyAxMTo0NTo1MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9NQU5JRkVTVDoKCSAgcmVtb3ZlIHNwaWRlciBmcm9tIGRpc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBzcGlkZXIgZnJvbSBkaXN0CgoyMDA1LTA4LTEzIDExOjQzOjEzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2dzdHNwaWRlci52Y3Byb2o6CgkgIHJlbW92ZWQgZnJvbSBIRUFECgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmVkIGZyb20gSEVBRAoKMjAwNS0wOC0xMyAxMDozMzoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBHU1RfVEFHX0xBTkdVQUdFX0NPREUgYXMgd2UgaGF2ZSBpbiAwLjgsIGFuZCBkb24ndCBzcGV3IG91dCBhIHdhcm5pbmcgaWYgYSB0YWcgdGhhdCBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQgaXMgcmUtci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWcuYzogKF9nc3RfdGFnX2luaXRpYWxpemUpLCAoZ3N0X3RhZ19yZWdpc3Rlcik6CgkgICogZ3N0L2dzdHRhZy5oOgoJICBBZGQgR1NUX1RBR19MQU5HVUFHRV9DT0RFIGFzIHdlIGhhdmUgaW4gMC44LCBhbmQgZG9uJ3QKCSAgc3BldyBvdXQgYSB3YXJuaW5nIGlmIGEgdGFnIHRoYXQgaXMgYWxyZWFkeSByZWdpc3RlcmVkCgkgIGlzIHJlLXJlZ2lzdGVyZWQsIHVubGVzcyBpdCBpcyByZS1yZWdpc3RlcmVkIHdpdGggYQoJICBkaWZmZXJlbnQgdHlwZSAoIzMwODQzOCkuCgoyMDA1LTA4LTEyIDE0OjMwOjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wd2cvOiBBZGQgc29tZSBwYXJhZ3JhcGhzIGFib3V0IHN0YXRlIGNoYW5nZXMgaW4gMC45IHRvIHRoZSBQV0cgYW5kIHRoZSBwb3J0aW5nIGd1aWRlLCBpbiBwYXJ0aWN1bGFyIGFib3V0IHRoZSBuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXN0YXRlLnhtbDoKCSAgQWRkIHNvbWUgcGFyYWdyYXBocyBhYm91dCBzdGF0ZSBjaGFuZ2VzIGluIDAuOSB0byB0aGUgUFdHCgkgIGFuZCB0aGUgcG9ydGluZyBndWlkZSwgaW4gcGFydGljdWxhciBhYm91dCB0aGUgbmV3IG1lYW5pbmcKCSAgb2YgR1NUX1NUQVRFX1BBVVNFRCBhbmQgaG93IHRvIHdyaXRlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbnMKCSAgd2l0aCBjb25jdXJyZW50IGFjY2VzcyBieSBtdWx0aXBsZSB0aHJlYWRzIGluIG1pbmQuCgoyMDA1LTA4LTExIDE3OjM5OjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJICBhZGRlZCBkZXByZWNhdGlvbiBhbmQgc2luY2UgaW5kZXhlcyBhZGRlZCBzaW5jZSB0YWdzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRlZCBkZXByZWNhdGlvbiBhbmQgc2luY2UgaW5kZXhlcwoJICBhZGRlZCBzaW5jZSB0YWdzCgoyMDA1LTA4LTExIDE0OjI0OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IEFjdHVhbGx5IGltcGxlbWVudCAocmUpc2V0dGluZyB0aGUgdGFyZ2V0IG9uIGEgZ2hvc3RwYWQgYXMgZGVzY3JpYmVkIGluIHRoZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfc2V0X3RhcmdldF91bmxvY2tlZCksCgkgIChnc3RfcHJveHlfcGFkX3NldF90YXJnZXQpLCAoZ3N0X3Byb3h5X3BhZF9nZXRfdGFyZ2V0KSwKCSAgKGdzdF9wcm94eV9wYWRfZGlzcG9zZSksIChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X2dob3N0X3BhZF9kb19saW5rKSwgKGdzdF9naG9zdF9wYWRfc2V0X2ludGVybmFsKSwKCSAgKGdzdF9naG9zdF9wYWRfbmV3X25vdGFyZ2V0KSwgKGdzdF9naG9zdF9wYWRfZ2V0X3RhcmdldCksCgkgIChnc3RfZ2hvc3RfcGFkX3NldF90YXJnZXQpOgoJICBBY3R1YWxseSBpbXBsZW1lbnQgKHJlKXNldHRpbmcgdGhlIHRhcmdldCBvbiBhIGdob3N0cGFkCgkgIGFzIGRlc2NyaWJlZCBpbiB0aGUgZG9jcy4KCjIwMDUtMDgtMTAgMjE6MTk6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IENoZWNrIHdoZXRoZXIgR1NUX0RFQlVHX05PX0NPTE9SIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHNldCBhbmQgZGlzYWJsZSBjb2xvdXJlZCBkZWJ1ZyBvdXRwdXQgaWYgdGhhdCBpcyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZ3N0X2luaXRfY2hlY2tfd2l0aF9wb3B0X3RhYmxlKSwgKGluaXRfcHJlKToKCSAgQ2hlY2sgd2hldGhlciBHU1RfREVCVUdfTk9fQ09MT1IgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMKCSAgc2V0IGFuZCBkaXNhYmxlIGNvbG91cmVkIGRlYnVnIG91dHB1dCBpZiB0aGF0IGlzIHRoZSBjYXNlLgoKMjAwNS0wOC0xMCAxNTowODowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IFRoZSBtZW1vcnkgcmV0dXJuZWQgYnkgZ3N0X3R5cGVfZmluZF9wZWVrKCkgbmVlZHMgdG8gc3RheSB2YWxpZCB1bnRpbCB0aGUgZW5kIG9mIGEgdHlwZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoaGVscGVyX2ZpbmRfcGVlayksCgkgIChnc3RfdHlwZV9maW5kX2hlbHBlcik6CgkgIFRoZSBtZW1vcnkgcmV0dXJuZWQgYnkgZ3N0X3R5cGVfZmluZF9wZWVrKCkgbmVlZHMgdG8KCSAgc3RheSB2YWxpZCB1bnRpbCB0aGUgZW5kIG9mIGEgdHlwZWZpbmQgZnVuY3Rpb24sIGFuZAoJICB0eXBlZmluZCBmdW5jdGlvbnMgbWF5IGtlZXAgcmVzdWx0cyBmcm9tIGRpZmZlcmVudAoJICBvZmZzZXRzIGFyb3VuZCwgc28gd2UgY2FuJ3QganVzdCB1bnJlZiB0aGUgYnVmZmVyIGZyb20KCSAgdGhlIHByZXZpb3VzIF9wZWVrKCksIGJ1dCBoYXZlIHRvIHNhdmUgYWxsIGJ1ZmZlcnMKCSAgcmV0dXJuZWQgYnkgX3BlZWsoKSB1bnRpbCB0eXBlZmluZGluZyBpcyBkb25lIGFuZCBvbmx5CgkgIGZyZWUgdGhlbSB0aGVuLgoKMjAwNS0wOC0wOSAxNjoyNTo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIE5ldyBtYWNyb3M6IEdTVF9ST1VORF9VUF8yKCkgdGhyb3VnaCBHU1RfUk9VTkRfVVBfNjQoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgTmV3IG1hY3JvczogR1NUX1JPVU5EX1VQXzIoKSB0aHJvdWdoIEdTVF9ST1VORF9VUF82NCgpLgoKMjAwNS0wOC0wOCAxNjowMToxMiArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGZpeCB1cCBzcGVjIGZvciBsYXRlc3QgQ1ZTIGNoYW5nZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCB1cCBzcGVjIGZvciBsYXRlc3QgQ1ZTIGNoYW5nZXMKCjIwMDUtMDgtMDggMTU6MDg6MTQgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRml4IGEgcHJldHR5IGdvb2QgbWVtbGVhay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIEZpeCBhIHByZXR0eSBnb29kIG1lbWxlYWsuCgoyMDA1LTA4LTA4IDEzOjU1OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGl0ZXJhdG9yLmg6IEZpeCB3cm9uZyBpbmNsdWRlIGFuZCAnbWFrZSBkaXN0Y2hlY2snLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgRml4IHdyb25nIGluY2x1ZGUgYW5kICdtYWtlIGRpc3RjaGVjaycuCgoyMDA1LTA4LTA4IDEzOjM4OjM0ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IFVzZSBnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UoKSBpbnN0ZWFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fYnVzX2hhbmRsZXIpOgoJICBVc2UgZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlKCkgaW5zdGVhZC4KCjIwMDUtMDgtMDggMTM6MzE6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBBZGQgcGFkZGluZyB0byBvdXIgYmFzZSBlbGVtZW50cycgY2xhc3MgYW5kIGluc3RhbmNlIHN0cnVjdHMgYW5kIHRvIEdzdEl0ZXJhdG9yICh5b3Ugd2lsbCBuZWVkIHRvIHJlYnVpbGQgYWxsIHAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICAqIGdzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgQWRkIHBhZGRpbmcgdG8gb3VyIGJhc2UgZWxlbWVudHMnIGNsYXNzIGFuZCBpbnN0YW5jZSBzdHJ1Y3RzIGFuZAoJICB0byBHc3RJdGVyYXRvciAoeW91IHdpbGwgbmVlZCB0byByZWJ1aWxkIGFsbCBwbHVnaW5zIGFuZCBhcHBzISkKCjIwMDUtMDgtMDggMTM6MTc6MDcgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogTWFrZSBkZWZhdWx0IG1lc3NhZ2UgZm9yd2FyZGluZyBmcm9tIGNoaWxkLT5idXMgdG8gYmluLT5idXMgdGhyZWFkc2FmZSBhbmQgbWFrZSBpdCBub3QgZW1pdCB3YXJuaW5ncyBpZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fYnVzX2hhbmRsZXIpOgoJICBNYWtlIGRlZmF1bHQgbWVzc2FnZSBmb3J3YXJkaW5nIGZyb20gY2hpbGQtPmJ1cyB0byBiaW4tPmJ1cwoJICB0aHJlYWRzYWZlIGFuZCBtYWtlIGl0IG5vdCBlbWl0IHdhcm5pbmdzIGlmIHRoZSBwYXJlbnQgaGFzIG5vIGJ1cy4KCjIwMDUtMDgtMDggMTI6MTQ6MjAgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IE9uIHBhdXNlZC0+cmVhZHksIHNldCBwYWQtPmNhcHMgdG8gTlVMTCwgYXMgaXMgdGhlIGRvY3VtZW50ZWQgYmVoYXZpb3VyIGluIHRoaXMgc3RhdGUgY2hhbmdlLiBGaXhlcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoYWN0aXZhdGVfcGFkcyk6CgkgIE9uIHBhdXNlZC0+cmVhZHksIHNldCBwYWQtPmNhcHMgdG8gTlVMTCwgYXMgaXMgdGhlIGRvY3VtZW50ZWQKCSAgYmVoYXZpb3VyIGluIHRoaXMgc3RhdGUgY2hhbmdlLiBGaXhlcyBwbGF5YmFjayBvZiBzZXJpZXMgb2YKCSAgbWVkaWEgZmlsZXMgd2hlbiB2aXN1YWxpemF0aW9uIGlzIGVuYWJsZWQgaW4gVG90ZW0uCgoyMDA1LTA4LTA3IDEzOjM3OjA4ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiBBbGxvdyBOVUxMIGFzIGZpbHRlci1jYXBzICh3aGljaCBtZWFucyAiYW55IikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9zZXRfcHJvcGVydHkpOgoJICBBbGxvdyBOVUxMIGFzIGZpbHRlci1jYXBzICh3aGljaCBtZWFucyAiYW55IikuCgoyMDA1LTA4LTA1IDE3OjI4OjMwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWhlbHBlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkgIGFkZGluZyBtb3JlIGVudHJpZXMgdG8gdGhlIGRvY3MgYW5kIGZpeCBzbWFsbCBkb2MtYnVncwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkaW5nIG1vcmUgZW50cmllcyB0byB0aGUgZG9jcyBhbmQgZml4IHNtYWxsIGRvYy1idWdzCgoyMDA1LTA4LTA1IDEzOjQyOjEwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBjaGVjay9nc3QtbGlicy8uZ2l0aWdub3JlOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC90bXBsLy5naXRpZ25vcmU6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWxlc3JjLnNnbWw6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJICBtaWdyYXRlZCBzb21lIG1vcmUgZG9jcyB0byBiZSBpbmxpbmVkIGluIHRoZSBzb3VyY2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtaWdyYXRlZCBzb21lIG1vcmUgZG9jcyB0byBiZSBpbmxpbmVkIGluIHRoZSBzb3VyY2VzCgoyMDA1LTA4LTA1IDEyOjU5OjQ2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNldHJhbnNmb3JtLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNyYy5zZ21sOgoJKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWhlbHBlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1pbnRlcnBvbGF0aW9uLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvbGliLmM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgYWRkZWQgbG9uZy9zaG9ydCBkZXNjIGZvciBjb250cm9sbGVyIGRvY3MgYWRkZWQgY29sbGVjdHBhZHMgYmFzZSBjbGFzcyBkb2NzIGFkZGVkIGNvcnJlY3QgaW5jbHVkZXMgdG8gYmFzZS1jbGFzcyBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRlZCBsb25nL3Nob3J0IGRlc2MgZm9yIGNvbnRyb2xsZXIgZG9jcwoJICBhZGRlZCBjb2xsZWN0cGFkcyBiYXNlIGNsYXNzIGRvY3MKCSAgYWRkZWQgY29ycmVjdCBpbmNsdWRlcyB0byBiYXNlLWNsYXNzIGRvY3MKCjIwMDUtMDgtMDUgMTA6MDI6NDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXRyYW5zZm9ybS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJ1ZmZlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNhcHMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RjbG9jay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNvbXBhdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNvbmZpZy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50ZGV0YWlscy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnRmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZW51bXR5cGVzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZXJyb3Iuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RldmVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbGVzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbHRlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZvcm1hdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGdob3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW1wbGVtZW50c2ludGVyZmFjZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXhmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5mby5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGl0ZXJhdG9yLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0bWFjcm9zLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0bWVtY2h1bmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RtaW5pb2JqZWN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0b2JqZWN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkdGVtcGxhdGUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYXJzZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBpcGVsaW5lLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luZmVhdHVyZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHF1ZXJ5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cXVldWUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RyZWdpc3RyeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHJlZ2lzdHJ5cG9vbC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHN0cnVjdHVyZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHN5c3RlbWNsb2NrLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dGFnbGlzdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRhZ3NldHRlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRyYWNlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHJhc2hzdGFjay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVmaW5kLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZWZpbmRmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZXMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R1cmloYW5kbGVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dXJpdHlwZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHV0aWxzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dmFsdWUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R2ZXJzaW9uLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0eG1sLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RnZXRiaXRzLnNnbWw6CgkqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1oZWxwZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgbW9yZSB0ZXN0cyAoYW5kIGZpeGVzKSBmb3IgdGhlIGNvbnRyb2xsZXIgbW9yZSBkb2NzIGZvciB0aGUgY29udHJvbGxlciBpbnRlZ3JhdGVkIGNvbXBhbmllcyBkb2NzIGZvciB0aGUgYWRhcHRlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSB0ZXN0cyAoYW5kIGZpeGVzKSBmb3IgdGhlIGNvbnRyb2xsZXIKCSAgbW9yZSBkb2NzIGZvciB0aGUgY29udHJvbGxlcgoJICBpbnRlZ3JhdGVkIGNvbXBhbmllcyBkb2NzIGZvciB0aGUgYWRhcHRlcgoKMjAwNS0wOC0wNSAwNjo1NzoyNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBjb3NtZXRpYyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29zbWV0aWMgZml4ZXMKCjIwMDUtMDgtMDUgMDY6NTU6MDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXRyYW5zZm9ybS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJ1ZmZlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNhcHMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RjbG9jay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNvbXBhdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNvbmZpZy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50ZGV0YWlscy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnRmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZW51bXR5cGVzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZXJyb3Iuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RldmVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbGVzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbHRlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZvcm1hdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGdob3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW1wbGVtZW50c2ludGVyZmFjZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXhmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5mby5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGl0ZXJhdG9yLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0bWFjcm9zLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0bWVtY2h1bmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RtaW5pb2JqZWN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0b2JqZWN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkdGVtcGxhdGUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYXJzZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBpcGVsaW5lLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luZmVhdHVyZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHF1ZXJ5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cXVldWUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RyZWdpc3RyeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHJlZ2lzdHJ5cG9vbC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHN0cnVjdHVyZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHN5c3RlbWNsb2NrLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dGFnbGlzdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRhZ3NldHRlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRyYWNlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHJhc2hzdGFjay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVmaW5kLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZWZpbmRmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZXMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R1cmloYW5kbGVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dXJpdHlwZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHV0aWxzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dmFsdWUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R2ZXJzaW9uLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0eG1sLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RnZXRiaXRzLnNnbWw6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgYWRkIHNpemV0eXBlIHRlc3RzIGZvciBmYWtlc3JjCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgc2l6ZXR5cGUgdGVzdHMgZm9yIGZha2VzcmMKCjIwMDUtMDgtMDQgMTk6NDA6NDMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IFJlaW1wbGVtZW50IHVzaW5nIGJhc2V0cmFuc2Zvcm0sIGZpeGVzIGJ1ZmZlcl9hbGxvYyBwcm94eWluZyBhbW9uZyBvdGhlciB0aGluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTA0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IFJlaW1wbGVtZW50IHVzaW5nIGJhc2V0cmFuc2Zvcm0sCgkgIGZpeGVzIGJ1ZmZlcl9hbGxvYyBwcm94eWluZyBhbW9uZyBvdGhlciB0aGluZ3MuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgUmV2ZXJ0IHBhdGNoIHRvIGdzdGJhc2V0cmFuc2Zvcm0gZnJvbSA3LTI4IHJlbW92aW5nCgkgIGRlbGF5X2NvbmZpZ3VyZS4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmggKEdzdEJhc2VUcmFuc2Zvcm1DbGFzcy5nZXRfc2l6ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3NpemUpOgoJICBTZW1hbnRpY3MgY2hhbmdlZCwgc2hvdWxkIHJldHVybiBub3QgdGhlIHNpemUgb2YgdGhlIG91dHB1dCBidWZmZXIKCSAgYnV0IHRoZSBieXRlIHNpemUgb2YgYSBidWZmZXIgd2l0aCBhIGdpdmVuIGNhcHMuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0Y2Fwcyk6IEJldHRlcgoJICBkZWJ1ZyBvYmplY3QuCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY29uZmlndXJlX2NhcHMpOiBEb24ndCBzZXQgb3V0X3NpemUgaGVyZTogKGluLAoJICBvdXQpIGFyZSBub3QgdGhlIHBhZCBjYXBzIHVudGlsIHNldGNhcHMgZmluaXNoZXMuCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKTogUHJveHkgdGhlIGJ1ZmZlcl9hbGxvYyBmb3IgdGhlCgkgIG5vdC1pbi1wbGFjZSBjYXNlIGFzIHdlbGwuIERlYWwgd2l0aCBjaGFuZ2luZyBmcm9tIGluLXBsYWNlIHRvCgkgIG5vdC1pbi1wbGFjZSB3aXRoaW4gY2FsbGluZyBwYWRfYWxsb2NfYnVmZmVyLiBTdGlsbCBhIGJpdAoJICBjb25jZXJuZWQgYWJvdXQgdGhlIG92ZXJoZWFkIGhlcmUuLi4KCjIwMDUtMDgtMDQgMTE6NTY6NTcgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvYmFzZS9nc3RhZGFwdGVyLmg6IEFkZGVkIGdzdF9hZGFwdGVyX2dldF90eXBlKCkgdG8gdGhlIGhlYWRlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIEFkZGVkIGdzdF9hZGFwdGVyX2dldF90eXBlKCkgdG8gdGhlIGhlYWRlcgoKMjAwNS0wOC0wMyAxNjoxMDowNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBmaXhlZCBkaXN0Y2hlY2sgYnJlYWthZ2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeGVkIGRpc3RjaGVjayBicmVha2FnZQoKMjAwNS0wOC0wMyAxNTo1OToxMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOgoJKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGFkZGVkIGNoZWNrIHRlc3Qgc3VpdGUgZm9yIHRoZSBjb250cm9sbGVyIGZpeGVkIGEgZG9jIHR5cG8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGVkIGNoZWNrIHRlc3Qgc3VpdGUgZm9yIHRoZSBjb250cm9sbGVyCgkgIGZpeGVkIGEgZG9jIHR5cG8KCjIwMDUtMDgtMDMgMTM6MzA6MTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc3JjLnNnbWw6CgkqIGdzdC9iYXNlL1JFQURNRToKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvUkVBRE1FOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJICBhZGQgc2hvcnQvbG9uZyBkZXNjcmlwdGlvbiBkb2NzIHRvIGJhc2UgY2xhc3NlcyBhZGQgcHVzaHNyYyB0byB0aGUgZG9jcyByZW1vdmUgY29uc29saWRhdGVkIGRvYyBmcmFnbWVudHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBzaG9ydC9sb25nIGRlc2NyaXB0aW9uIGRvY3MgdG8gYmFzZSBjbGFzc2VzCgkgIGFkZCBwdXNoc3JjIHRvIHRoZSBkb2NzCgkgIHJlbW92ZSBjb25zb2xpZGF0ZWQgZG9jIGZyYWdtZW50cwoKMjAwNS0wOC0wMiAyMTozOTozNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLXVuaW5zdGFsbGVkLnBjLmluOgoJICB0aGF0IG9uZSB0b28KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRoYXQgb25lIHRvbwoKMjAwNS0wOC0wMiAyMTozODoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLnBjLmluOgoJICBhZGRlZCBtaXNzaW5nIHBjIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRlZCBtaXNzaW5nIHBjIGZpbGVzCgoyMDA1LTA4LTAyIDIxOjM1OjM0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvdG1wbC9nc3RldmVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzcmMuc2dtbDoKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkqIGV4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9jb250cm9sbGVyLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWludGVycG9sYXRpb24uYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9saWIuYzoKCSogcGtnY29uZmlnL01ha2VmaWxlLmFtOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2wtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbC5wYy5pbjoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY29udHJvbGxlci8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NvbnRyb2xsZXIvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NvbnRyb2xsZXIvaW50ZXJwb2xhdG9yLmM6CgkqIHRlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2NvbnRyb2xsZXIvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9jb250cm9sbGVyL2ludGVycG9sYXRvci5jOgoJICBhZGRlZCBjb250cm9sbGVyIGNvZGUgcmVtb3ZlZCBkcGFyYW0gcGMgZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGVkIGNvbnRyb2xsZXIgY29kZQoJICByZW1vdmVkIGRwYXJhbSBwYyBmaWxlcwoKMjAwNS0wOC0wMSAyMToxNzowMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBCcm9hZGNhc3QgdGhlIGNvbmRpdGlvbiB3aGVuIHNodXR0aW5nIGRvd24sIHRvIG1ha2Ugc3VyZSB3ZSB3YWtlIGFsbCB0aHJlYWRzIHVwLiBTaHV0IGRvd24uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0cGFkc19maW5hbGl6ZSksCgkgIChnc3RfY29sbGVjdHBhZHNfc3RvcCk6CgkgIEJyb2FkY2FzdCB0aGUgY29uZGl0aW9uIHdoZW4gc2h1dHRpbmcgZG93biwgdG8gbWFrZSBzdXJlIHdlIHdha2UgYWxsCgkgIHRocmVhZHMgdXAuIFNodXQgZG93biBwYWRzIG9uIGZpbmFsaXplLCBmb3Igc2FmZXR5LgoKMjAwNS0wOC0wMSAxNzoyNjowMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEhhbmRsZSBQQVVTRUQtPlJFQURZLT5QQVVTRUQgdHJhbnNpdGlvbiBhZnRlciBuZWdvdGlhdGlvbiBvY2N1cnJlZCBhbHJlYWR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0wMSAgSmFuIFNjaG1pZHQgIDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpOgoJICBIYW5kbGUgUEFVU0VELT5SRUFEWS0+UEFVU0VEIHRyYW5zaXRpb24gYWZ0ZXIgbmVnb3RpYXRpb24KCSAgb2NjdXJyZWQgYWxyZWFkeS4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfaW5pdCk6CgkgIEV4dHJhIHBpZWNlIG9mIGRlYnVnIGZvciBuZXcgbWVzc2FnZXMuCgoyMDA1LTA4LTAxIDE2OjQzOjU4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIHJlbW92ZSBkcGFyYW1zIGRlcHMgZnJvbSB0aGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGRwYXJhbXMgZGVwcyBmcm9tIHRoZSBkb2NzCgoyMDA1LTA4LTAxIDE2OjE3OjMxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGV2ZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZvcm1hdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGdob3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cXVlcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RzdHJ1Y3R1cmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0YWdsaXN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dmFsdWUuc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbC8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9jb250cm9sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sL2NvbnRyb2wuYzoKCSogbGlicy9nc3QvY29udHJvbC9jb250cm9sLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvZHBhcmFtLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvZHBhcmFtLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvZHBhcmFtX3Ntb290aC5jOgoJKiBsaWJzL2dzdC9jb250cm9sL2RwYXJhbV9zbW9vdGguaDoKCSogbGlicy9nc3QvY29udHJvbC9kcGFyYW1jb21tb24uaDoKCSogbGlicy9nc3QvY29udHJvbC9kcGFyYW1tYW5hZ2VyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvZHBhcmFtbWFuYWdlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sL2RwbGluZWFyaW50ZXJwLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvZHBsaW5lYXJpbnRlcnAuaDoKCSogbGlicy9nc3QvY29udHJvbC91bml0Y29udmVydC5jOgoJKiBsaWJzL2dzdC9jb250cm9sL3VuaXRjb252ZXJ0Lmg6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZHlucGFyYW1zLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZHlucGFyYW1zL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2R5bnBhcmFtcy9kcGFyYW1zdGVzdC5jOgoJKiB0ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9keW5wYXJhbXMvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL2R5bnBhcmFtcy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2R5bnBhcmFtcy9kcGFyYW1zdGVzdC5jOgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgZGVhY3RpdmF0ZSBhbmQgcmVtb3ZlIGRwYXJhbXMgKGxpYmdzdGNvbnRyb2wpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkZWFjdGl2YXRlIGFuZCByZW1vdmUgZHBhcmFtcyAobGliZ3N0Y29udHJvbCkKCjIwMDUtMDgtMDEgMTE6MTU6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lio6IFNldCBjYXBzIG9uIGFsbCBvdXRnb2luZyBidWZmZXJzLCBub3QganVzdCB0aGUgZmlyc3Qgb25lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGF2ZV90eXBlKSwgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9pbml0KSwKCSAgKHN0b3BfdHlwZWZpbmRpbmcpLCAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pLCAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2dldHJhbmdlKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIFNldCBjYXBzIG9uIGFsbCBvdXRnb2luZyBidWZmZXJzLCBub3QganVzdCB0aGUgZmlyc3Qgb25lLgoKMjAwNS0wOC0wMSAwOToxMDowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuKjogU2V0IGNhcHMgb24gZmlyc3Qgb3V0Z29pbmcgYnVmZmVyIHdoZW4gd2UndmUgZm91bmQgdGhlIHR5cGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYXZlX3R5cGUpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoZWNrX3NldF9idWZmZXJfY2FwcyksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaW5pdCksIChzdG9wX3R5cGVmaW5kaW5nKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKSwgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9nZXRyYW5nZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICBTZXQgY2FwcyBvbiBmaXJzdCBvdXRnb2luZyBidWZmZXIgd2hlbiB3ZSd2ZSBmb3VuZCB0aGUgdHlwZS4KCjIwMDUtMDgtMDEgMDg6NTI6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2dzdC86IFJlbW92ZSBzb21lIG9sZCBjcnVmdCBmcm9tIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHNjaGVkdWxlci5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0c2NoZWR1bGVyZmFjdG9yeS5zZ21sOgoJICBSZW1vdmUgc29tZSBvbGQgY3J1ZnQgZnJvbSBkb2NzLgoKMjAwNS0wNy0zMSAxMTo1OTozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwYWQuaDogRml4IGlubGluZSBkb2NzIGZvciBHc3RQYWRMaW5rUmV0dXJuLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIEZpeCBpbmxpbmUgZG9jcyBmb3IgR3N0UGFkTGlua1JldHVybi4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2hhc19uYW1lKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgTmV3IEFQSTogZ3N0X3N0cnVjdHVyZV9oYXNfbmFtZSgpLgoKMjAwNS0wNy0zMCAxNTowMDowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogVXNlIEFDX1NZU19MQVJHRUZJTEUsIHdoaWNoIHdpbGwgc2V0IF9GSUxFX09GRlNFVF9CSVRTPTY0IGFuZCBfTEFSR0VGSUxFX1NPVVJDRSBpbiBjb25maWcuaCBhcyByZXF1aXJlZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFVzZSBBQ19TWVNfTEFSR0VGSUxFLCB3aGljaCB3aWxsIHNldCBfRklMRV9PRkZTRVRfQklUUz02NAoJICBhbmQgX0xBUkdFRklMRV9TT1VSQ0UgaW4gY29uZmlnLmggYXMgcmVxdWlyZWQuIERvIG5vdAoJICBleHBvcnQgdGhvc2UgZmxhZ3MgaW4gb3VyIC5wYyBmaWxlcyBhbnkgbG9uZ2VyICgjMTQyMjA5KS4KCSAgUmVtb3ZlIHVudXNlZCBHU1RfRElTQUJMRV9PTUVHQV9DT1RIUkVBRFMgc3R1ZmYuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2ZpbGVfc2lua19kb19zZWVrKSwgKGdzdF9maWxlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2ZpbGVfc2lua19nZXRfY3VycmVudF9vZmZzZXQpLCAoZ3N0X2ZpbGVfc2lua19yZW5kZXIpOgoJICBSZWRvIHNlZWsvdGVsbCBjYWxscyB3aXRoIGxhcmdlIGZpbGUgc3VwcG9ydCBpbiBtaW5kOyBhZGQgc29tZQoJICBkZWJ1Z2dpbmcgbWVzc2FnZXM7IGFkZCBsb2cgbWVzc2FnZSB0aGF0IHRlbGxzIHVzIHdoZW4gbGFyZ2UKCSAgZmlsZSBzdXBwb3J0IGlzIHVuYXZhaWxhYmxlIG9yIG5vdCBlbmFibGVkIGZvciBzb21lIHJlYXNvbi4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2NsYXNzX2luaXQpOgoJICBBZGQgbG9nIG1lc3NhZ2UgdGhhdCB0ZWxscyB1cyB3aGVuIGxhcmdlIGZpbGUgc3VwcG9ydAoJICBpcyB1bmF2YWlsYWJsZSBvciBub3QgZW5hYmxlZCBmb3Igc29tZSByZWFzb24uCgoyMDA1LTA3LTI5IDE5OjIyOjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IEFkZGVkIHRlc3QgZm9yIHJlbW92aW5nIGFuIGVsZW1lbnQgd2l0aCBnaG9zdHBhZCBmcm9tIGEgYmluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9naG9zdF9wYWRfc3VpdGUpOgoJICBBZGRlZCB0ZXN0IGZvciByZW1vdmluZyBhbiBlbGVtZW50IHdpdGggZ2hvc3RwYWQgZnJvbSBhIGJpbi4KCSAgRml4ZWQgdGVzdCBhcyBjdXJyZW50IGltcGxlbWVudGF0aW9uIGRvZXMgdGhlIHJpZ2h0IHRoaW5nLgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9jbGFzc19pbml0KSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fcXVlcnlfdHlwZSksIChnc3RfcHJveHlfcGFkX2RvX2V2ZW50KSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fcXVlcnkpLCAoZ3N0X3Byb3h5X3BhZF9kb19pbnRlcm5hbF9saW5rKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fYnVmZmVyYWxsb2MpLCAoZ3N0X3Byb3h5X3BhZF9kb19hY3RpdmF0ZSksCgkgIChnc3RfcHJveHlfcGFkX2RvX2FjdGl2YXRlcHVsbCksIChnc3RfcHJveHlfcGFkX2RvX2FjdGl2YXRlcHVzaCksCgkgIChnc3RfcHJveHlfcGFkX2RvX2NoYWluKSwgKGdzdF9wcm94eV9wYWRfZG9fZ2V0cmFuZ2UpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19jaGVja2dldHJhbmdlKSwgKGdzdF9wcm94eV9wYWRfZG9fZ2V0Y2FwcyksCgkgIChnc3RfcHJveHlfcGFkX2RvX2FjY2VwdGNhcHMpLCAoZ3N0X3Byb3h5X3BhZF9kb19maXhhdGVjYXBzKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fc2V0Y2FwcyksIChnc3RfcHJveHlfcGFkX3NldF90YXJnZXQpLAoJICAoZ3N0X3Byb3h5X3BhZF9nZXRfdGFyZ2V0KSwgKGdzdF9wcm94eV9wYWRfaW5pdCksCgkgIChnc3RfcHJveHlfcGFkX2Rpc3Bvc2UpLCAoZ3N0X3Byb3h5X3BhZF9maW5hbGl6ZSksCgkgIChnc3RfZ2hvc3RfcGFkX2NsYXNzX2luaXQpLCAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9naG9zdF9wYWRfZG9fbGluayksIChnc3RfZ2hvc3RfcGFkX2RvX3VubGluayksCgkgIChnc3RfZ2hvc3RfcGFkX3NldF9pbnRlcm5hbCksIChnc3RfZ2hvc3RfcGFkX2Rpc3Bvc2UpLAoJICAoZ3N0X2dob3N0X3BhZF9uZXdfbm90YXJnZXQpLCAoZ3N0X2dob3N0X3BhZF9uZXcpLAoJICAoZ3N0X2dob3N0X3BhZF9nZXRfdGFyZ2V0KSwgKGdzdF9naG9zdF9wYWRfc2V0X3RhcmdldCk6CgkgICogZ3N0L2dzdGdob3N0cGFkLmg6CgkgIENsZWFuIHVwIGdob3N0cGFkcywgcmVtb3ZlIHByb3BlcnRpZXMgZm9yIGludGVybmFsIHN0dWZmLgoJICBNYWtlIHRocmVhZHNhZmUuCgkgIEZpeCByZWZjb3VudGluZy4KCSAgUHJlcGFyZSBmb3Igc3dpdGNoaW5nIHRhcmdldHMsIG5vdCBhbGwgdXNlIGNhc2VzIHdvcmsgeWV0LgoKMjAwNS0wNy0yOSAxOToxOToyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OiBTbWFsbCB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OgoJICBTbWFsbCB1cGRhdGUuCgkgICogZ3N0L2dzdGJpbi5jOiAodW5saW5rX3BhZHMpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKToKCSAgVW5saW5raW5nIHBhZHMgd2hpbGUgaG9sZGluZyB0aGUgYmluIExPQ0sgaXMgbm90IGEgZ29vZAoJICBpZGVhLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfY2xhc3NfaW5pdCksCgkgIChnc3RfcGFkX2xpbmtfY2hlY2tfaGllcmFyY2h5KSwgKGdzdF9wYWRfZ2V0X2NhcHNfdW5sb2NrZWQpLAoJICAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX3NldF9jYXBzKSwgKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgIE5vIHByb2Igc2V0dGluZyB0ZW1wbGF0ZSBhZnRlciBjcmVhdGluZyB0aGUgcGFkLgoKMjAwNS0wNy0yOSAxNTozNDo1MiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0YnVzLmM6IGdzdF9idXNfcG9sbCBtYXkgYmUgY2FsbGVkIGZyb20gb3RoZXIgdGhyZWFkcy4gSGFuZGxlIHRoaXMgbmljZWx5IGJ5IG5vdCBtYWtpbmcgcG9sbF9kYXRhIGRpc2FwcGVhciBvZmYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19zZXRfZmx1c2hpbmcpLCAoZ3N0X2J1c19wb3ApLAoJICAoZ3N0X2J1c19wZWVrKSwgKGdzdF9idXNfc291cmNlX2Rpc3BhdGNoKSwKCSAgKGdzdF9idXNfYWRkX3dhdGNoX2Z1bGwpLCAocG9sbF9oYW5kbGVyKSwgKHBvbGxfdGltZW91dCksCgkgIChwb2xsX2Rlc3Ryb3kpLCAocG9sbF9kZXN0cm95X3RpbWVvdXQpLCAoZ3N0X2J1c19wb2xsKToKCSAgZ3N0X2J1c19wb2xsIG1heSBiZSBjYWxsZWQgZnJvbSBvdGhlciB0aHJlYWRzLiBIYW5kbGUKCSAgdGhpcyBuaWNlbHkgYnkgbm90IG1ha2luZyBwb2xsX2RhdGEgZGlzYXBwZWFyIG9mZiB0aGUKCSAgc3RhY2sgb25jZSBnc3RfYnVzX3BvbGwgcmV0dXJucy4KCSAgZ3N0X2J1c19wZWVrIG5vdyBpbmNyZW1lbnRzIHRoZSByZWZjb3VudCBvbiB0aGUgcmV0dXJuZWQKCSAgbWVzc2FnZS4KCjIwMDUtMDctMjkgMTE6Mjk6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDogT3ZlcnZpZXcgb2YgY3VycmVudCBHaG9zdFBhZCBkYXRhc3RydWN0dXJlcyBhbmQgdXNlIGNhc2VzIGZvciBjaGFuZ2luZyB0aGUgdGFyZ2V0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDoKCSAgT3ZlcnZpZXcgb2YgY3VycmVudCBHaG9zdFBhZCBkYXRhc3RydWN0dXJlcyBhbmQgdXNlCgkgIGNhc2VzIGZvciBjaGFuZ2luZyB0aGUgdGFyZ2V0LgoKMjAwNS0wNy0yOCAxNTozODo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogQWRkZWQgY2hlY2tzIGZvciBoaWVyYXJjaHkgY29uc2lzdGVuY3kgd2hhbiBhZGRpbmcgbGlua2VkIGVsZW1lbnRzIHRvIGJpbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9iaW5fc3VpdGUpOgoJICBBZGRlZCBjaGVja3MgZm9yIGhpZXJhcmNoeSBjb25zaXN0ZW5jeSB3aGFuIGFkZGluZyBsaW5rZWQKCSAgZWxlbWVudHMgdG8gYmlucy4KCSAgKiBjaGVjay9nc3QvZ3N0ZWxlbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2VsZW1lbnRfc3VpdGUpOgoJICBBZGRlZCBjaGVjayB0byB0ZXN0IGVsZW1lbnQgc2NoZWR1bGluZyB3aXRob3V0IGJpbi9waXBlbGluZS4KCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXJzdCBhZGQgZWxlbWVudHMgdG8gYmluLCB0aGVuIGxpbmsuCgkgICogZ3N0L2dzdGJpbi5jOiAodW5saW5rX3BhZHMpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKToKCSAgVW5saW5rIHBhZHMgZnJvbSBlbGVtZW50cyBhZGRlZC9yZW1vdmVkIGZyb20gYmluIHRvIG1haW50YWluCgkgIGhpZXJhcmNoeSBjb25zaXN0ZW5jeS4KCjIwMDUtMDctMjggMTE6NDk6NTYgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uKjogUmVtb3ZlIGJyb2tlbiBkZWxheV9jb25maWd1cmUgKGZpeGVzIHJlbmVnb3RpYXRpb24gb2Ygc29mdHdhcmUgc2NhbGluZyBwaXBlbGluZXMpOyByZW1vdi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBSZW1vdmUgYnJva2VuIGRlbGF5X2NvbmZpZ3VyZSAoZml4ZXMgcmVuZWdvdGlhdGlvbiBvZiBzb2Z0d2FyZQoJICBzY2FsaW5nIHBpcGVsaW5lcyk7IHJlbW92ZSBzb21lIGxlZnRvdmVyIHByaW50Zigpcy4KCjIwMDUtMDctMjggMTE6MjQ6MzMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogQWRkZWQgc29tZSBtb3JlIHRlc3RzIGZvciB3cm9uZyBoaWVyYXJjaHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfZ2hvc3RfcGFkX3N1aXRlKToKCSAgQWRkZWQgc29tZSBtb3JlIHRlc3RzIGZvciB3cm9uZyBoaWVyYXJjaHkKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgU29tZSB1cGRhdGVzLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9kaXNwb3NlKToKCSAgQ2xlYW51cHMuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3JlbW92ZV9wYWQpLCAoZ3N0X2VsZW1lbnRfc2VlayksCgkgIChnc3RfZWxlbWVudF9kaXNwb3NlKToKCSAgU29tZSBtb3JlIGNsZWFudXBzLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfbGlua19jaGVja19jb21wYXRpYmxlX3VubG9ja2VkKSwKCSAgKGdzdF9wYWRfbGlua19jaGVja19oaWVyYXJjaHkpLCAoZ3N0X3BhZF9saW5rX3ByZXBhcmUpLAoJICAoZ3N0X3BhZF9nZXRfY2Fwc191bmxvY2tlZCksIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwKCSAgKGdzdF9wYWRfc2V0X2NhcHMpLCAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgQ2hlY2sgZm9yIGNvcnJlY3QgaGllcmFyY2h5IHdoZW4gbGlua2luZyBwYWRzLiBNb3ZpbmcgdG8KCSAgc3RyaWN0IHJlcXVpcmVtZW50IGZvciBnaG9zdHBhZHMgd2hlbiBsaW5raW5nIGVsZW1lbnRzIGluCgkgIGRpZmZlcmVudCBiaW5zLgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgQ2xlYW4gdXBzLiBBZGRlZCBXUk9OR19ISUVSQVJDSFkgcmV0dXJuIHZhbHVlLgoKMjAwNS0wNy0yOCAxMDozODowMiArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBCZXR0ZXIgZGVidWcgaWYgbm8gdHJhbnNmb3JtIGlzIHBvc3NpYmxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2Fwcyk6CgkgIEJldHRlciBkZWJ1ZyBpZiBubyB0cmFuc2Zvcm0gaXMgcG9zc2libGUuCgoyMDA1LTA3LTI3IDIwOjIyOjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9yYW5kb20vd3RheS9uZXR3b3JrLXRyYW5zcDogU29tZSBvbGQgZG9jIEkgaGFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS93dGF5L25ldHdvcmstdHJhbnNwOgoJICBTb21lIG9sZCBkb2MgSSBoYWQuCgoyMDA1LTA3LTI3IDE5OjAwOjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBGaXggc2VyaWFsaXphdGlvbiBvZiBzZWVrIGV2ZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50KSwKCSAgKGdzdF9kcF9ldmVudF9mcm9tX3BhY2tldCk6CgkgIEZpeCBzZXJpYWxpemF0aW9uIG9mIHNlZWsgZXZlbnRzLgoKMjAwNS0wNy0yNyAxODo0Nzo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEZpeCBjb21waWxhdGlvbiBhbmQgZml4IGV2ZW50IHNlcmlhbGl6YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC1saWJzL2dkcC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19ldmVudCk6CgkgIEZpeCBjb21waWxhdGlvbiBhbmQgZml4IGV2ZW50IHNlcmlhbGl6YXRpb24uCgoyMDA1LTA3LTI3IDE4OjMzOjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgU29tZSBkb2NzIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogQ0hBTkdFUy0wLjk6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgIFNvbWUgZG9jcyB1cGRhdGVzCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfc2VuZF9kaXNjb250KSwKCSAgKGdzdF9iYXNlX3NyY19kb19zZWVrKSwgKGdzdF9iYXNlX3NyY19ldmVudF9oYW5kbGVyKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NvbmZpZ3VyZV9jYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfc2l6ZSksIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCksIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X3Bhc3N0aHJvdWdoKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pc19wYXNzdGhyb3VnaCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2V2ZW50KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfZXZlbnQpOgoJICBFdmVudCB1cGRhdGVzLgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgVXNlIGZhc3RlciBjYXN0cy4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2Vlayk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgVXBkYXRlIGdzdF9lbGVtZW50X3NlZWsuCgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfZmluYWxpemUpLCAoX2dzdF9ldmVudF9jb3B5KSwKCSAgKGdzdF9ldmVudF9uZXcpLCAoZ3N0X2V2ZW50X25ld19jdXN0b20pLCAoZ3N0X2V2ZW50X2dldF9zdHJ1Y3R1cmUpLAoJICAoZ3N0X2V2ZW50X25ld19mbHVzaF9zdGFydCksIChnc3RfZXZlbnRfbmV3X2ZsdXNoX3N0b3ApLAoJICAoZ3N0X2V2ZW50X25ld19lb3MpLCAoZ3N0X2V2ZW50X25ld19uZXdzZWdtZW50KSwKCSAgKGdzdF9ldmVudF9wYXJzZV9uZXdzZWdtZW50KSwgKGdzdF9ldmVudF9uZXdfdGFnKSwKCSAgKGdzdF9ldmVudF9wYXJzZV90YWcpLCAoZ3N0X2V2ZW50X25ld19maWxsZXIpLCAoZ3N0X2V2ZW50X25ld19xb3MpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX3FvcyksIChnc3RfZXZlbnRfbmV3X3NlZWspLAoJICAoZ3N0X2V2ZW50X3BhcnNlX3NlZWspLCAoZ3N0X2V2ZW50X25ld19uYXZpZ2F0aW9uKToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgTWFrZSBHc3RFdmVudCB1c2UgR3N0U3RydWN0dXJlLiBBZGQgcGFyc2luZyBjb2RlLCBtYWtlIHN1cmUgdGhlCgkgIEFQSSBpcyBzdWZmaWNpZW50bHkgZ2VuZXJpYy4KCSAgTWFyayBwb3NzaWJsZSBkaXJlY3Rpb25zIG9mIGV2ZW50cyBhbmQgc2VyaWFsaXphdGlvbi4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfaW5pdCksIChnc3RfbWVzc2FnZV9maW5hbGl6ZSksCgkgIChfZ3N0X21lc3NhZ2VfY29weSksIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9zdGFydCksCgkgIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9kb25lKSwgKGdzdF9tZXNzYWdlX25ld19jdXN0b20pLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc2VnbWVudF9zdGFydCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zZWdtZW50X2RvbmUpOgoJICBTbWFsbCBjbGVhbnVwcy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9jYXBzX3VubG9ja2VkKSwgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLAoJICAoZ3N0X3BhZF9zZXRfY2FwcyksIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBVcGRhdGUgZm9yIG5ldyBldmVudHMuCgkgIENhdGNoIGV2ZW50cyBzZW50IGluIHdyb25nIGRpcmVjdGlvbnMuCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbGlua19zcmMpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbiksIChnc3RfcXVldWVfbG9vcCksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSk6CgkgIEV2ZW50IHVwZGF0ZXMuCgkgICogZ3N0L2dzdHRhZy5jOgoJICAqIGdzdC9nc3R0YWcuaDoKCSAgUmVtb3ZlIGV2ZW50IGNvZGUgZnJvbSB0aGlzIGZpbGUuCgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50KSwKCSAgKGdzdF9kcF9ldmVudF9mcm9tX3BhY2tldCk6CgkgIEV2ZW50IHVwZGF0ZXMuCgoyMDA1LTA3LTI3IDE1OjA1OjQ1ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IE1ha2UgZGVidWdnaW5nIGFjdHVhbGx5IHVzZWZ1bC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NvbmZpZ3VyZV9jYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfc2l6ZSksIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgIE1ha2UgZGVidWdnaW5nIGFjdHVhbGx5IHVzZWZ1bC4KCjIwMDUtMDctMjUgMTI6MzE6MDggKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogSW1wbGVtZW50IGRlZmF1bHQgZml4YXRpb24gb25jZSBhZ2Fpbiwgc28gdGhhdCBnc3RfcGFkX2ZpeGF0ZSgpIGFjdHVhbGx5IGRvZXMgYW55dGhpbmcgYXQgYWxsLiBUaGlzIHByby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChmaXhhdGVfdmFsdWUpLCAoZ3N0X3BhZF9kZWZhdWx0X2ZpeGF0ZSksCgkgIChnc3RfcGFkX2ZpeGF0ZV9jYXBzKToKCSAgSW1wbGVtZW50IGRlZmF1bHQgZml4YXRpb24gb25jZSBhZ2Fpbiwgc28gdGhhdCBnc3RfcGFkX2ZpeGF0ZSgpCgkgIGFjdHVhbGx5IGRvZXMgYW55dGhpbmcgYXQgYWxsLiBUaGlzIHByb2JhYmx5IG5lZWRzIHRvIGJlIHNvbWUKCSAgc29ydCBvZiBhIGxhc3QgcmVzb3J0LCBhbmQgdXNlIHByb2ZpbGUtYmFzZWQgZml4YXRpb24gZmlyc3QsIGJ1dAoJICBzaW5jZSB0aGF0IGRvZXNuJ3QgZXhpc3QgeWV0LCB0aGlzIGlzIHRoZSBiZXN0IHdlIGhhdmUuIEZpeGVzCgkgIHZpc3VhbGl6YXRpb24gaW4gVG90ZW0uCgoyMDA1LTA3LTIyIDExOjQ3OjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OiBTbWFsbCB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgU21hbGwgdXBkYXRlLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwpOgoJICBTb21lIG1vcmUgY29tbWVudHMuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9mYWtlX3NyY19jcmVhdGUpOgoJICBGaXggaGFuZG9mZiBtYXJzaGFsbC4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KSwKCSAgKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApOgoJICBXZSdyZSBhIHJlYWwgaW5wbGFjZSBlbGVtZW50LgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfcG9zdCk6CgkgIEFkZGVkIHNvbWUgY29tbWVudHMuCgkgICogdGVzdHMvbGF0LmM6IChmYWtlc3JjKSwgKGZha2VzaW5rKSwgKHNpbXBsZSksIChxdWV1ZSksIChtYWluKToKCSAgKiB0ZXN0cy9tdXhpbmcvY2FzZTEuYzogKG1haW4pOgoJICAqIHRlc3RzL3NjaGVkL2R5bmFtaWMtcGlwZWxpbmUuYzogKG1haW4pOgoJICAqIHRlc3RzL3NjaGVkL2ludGVycnVwdDEuYzogKG1haW4pOgoJICAqIHRlc3RzL3NjaGVkL2ludGVycnVwdDIuYzogKG1haW4pOgoJICAqIHRlc3RzL3NjaGVkL2ludGVycnVwdDMuYzogKG1haW4pOgoJICAqIHRlc3RzL3NjaGVkL3J1bnhtbC5jOiAobWFpbik6CgkgICogdGVzdHMvc2NoZWQvc2NoZWQtc3RyZXNzLmM6IChtYWluKToKCSAgKiB0ZXN0cy9zZWVraW5nL3NlZWtpbmcxLmM6IChldmVudF9yZWNlaXZlZCksIChtYWluKToKCSAgKiB0ZXN0cy90aHJlYWRzdGF0ZS90aHJlYWRzdGF0ZTIuYzogKGJ1c19oYW5kbGVyKSwgKHRpbWVvdXRfZnVuYyksCgkgIChtYWluKToKCSAgKiB0ZXN0cy90aHJlYWRzdGF0ZS90aHJlYWRzdGF0ZTMuYzogKG1haW4pOgoJICAqIHRlc3RzL3RocmVhZHN0YXRlL3RocmVhZHN0YXRlNC5jOiAobWFpbik6CgkgICogdGVzdHMvdGhyZWFkc3RhdGUvdGhyZWFkc3RhdGU1LmM6IChtYWluKToKCSAgRml4IHRoZSB0ZXN0cy4KCjIwMDUtMDctMjEgMTc6MjI6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OiBTb21lIHNtYWxsIGFkZGl0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSAgU29tZSBzbWFsbCBhZGRpdGlvbnMuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF90aW1lcyksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVsbCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgZGlzY29udCB2YWx1ZXMgYXJlIGdpbnQ2NCwgaGFuZGxlIHRoZSBtYXRoIGNvcnJlY3RseS4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfbG9vcCk6CgkgIE1ha2UgdGhlIGJhc2VzcmMgcmVwb3J0IGVycm9yIGlmIHRoZSBzb3VyY2UgcGFkIGlzIG5vdCBsaW5rZWQuCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbGlua19zcmMpLCAoZ3N0X3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9xdWV1ZV9sb29wKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KSwKCSAgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCk6CgkgIE1ha2UgcXVldWUgY29sbGVjdCBkYXRhIGV2ZW4gaWYgdGhlIHNyY3BhZCBpcyBub3QgbGlua2VkLgoJICBTdGFydCBwdXNoaW5nIG91dCBkYXRhIGFzIHNvb24gYXMgaXQgaXMgbGlua2VkLgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfdW5saW5rKSwgKGdzdF9mbG93X2dldF9uYW1lKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQWRkZWQgZ3N0X2Zsb3dfZ2V0X25hbWUoKSB0byBlYXNlIGVycm9yIHJlcG9ydGluZy4KCjIwMDUtMDctMjAgMTg6MDI6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0bWVzc2FnZS4qOiBBZGRlZCBhIGJ1bmNoIG9mIG1lc3NhZ2VzIGZvciBhZHZhbmNlZCBzZWVraW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfZG9uZSksIChnc3RfbWVzc2FnZV9wYXJzZV9zZWdtZW50X3N0YXJ0KSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3NlZ21lbnRfZG9uZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgQWRkZWQgYSBidW5jaCBvZiBtZXNzYWdlcyBmb3IgYWR2YW5jZWQgc2Vla2luZy4KCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICAqIGxpYnMvZ3N0L2NvbnRyb2wvZHBhcmFtbWFuYWdlci5jOiAoZ3N0X2RwbWFuX3NldF9wYXJlbnQpLAoJICAoZ3N0X2RwbWFuX3N0YXRlX2NoYW5nZWQpOgoJICBGaXggc29tZSBuZXctcGFkIC0+IHBhZC1hZGRlZCBzaWduYWxzCgoyMDA1LTA3LTIwIDE3OjIyOjI3ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzLzogRG9jdW1lbnQgbmV3LXBhZC9zdGF0ZS1jaGFuZ2Ugc2lnbmFsIHJlbmFtZXMgYW5kIHRoZSBGaXhlZExpc3QgdHlwZSByZW5hbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICAqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICBEb2N1bWVudCBuZXctcGFkL3N0YXRlLWNoYW5nZSBzaWduYWwgcmVuYW1lcyBhbmQgdGhlIEZpeGVkTGlzdAoJICB0eXBlIHJlbmFtZS4KCjIwMDUtMDctMjAgMTc6MTY6NDQgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIEdzdEVsZW1lbnQ6Om5ldy1wYWQgLT4gcGFkLWFkZGVkLCBHc3RFbGVtZW50OjpzdGF0ZS1jaGFuZ2UgLT4gc3RhdGUtY2hhbmdlZCwgR3N0VmFsdWVGaXhlZExpc3QgLT4gR3N0VmFsdWVBcnJheSwgYWRkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgICogZG9jcy9yYW5kb20vZHMvMC45LXN1Z2dlc3RlZC1jaGFuZ2VzOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19pbml0KSwgKGdzdF9lbGVtZW50X3NlZWspOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdGZvcm1hdC5oOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfdmFsdWVfZ2V0X2dlbmVyaWNfdHlwZSksCgkgIChnc3Rfc3RydWN0dXJlX3BhcnNlX2FycmF5KSwgKGdzdF9zdHJ1Y3R1cmVfcGFyc2VfdmFsdWUpOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3R5cGVfaXNfZml4ZWQpLAoJICAoZ3N0X3ZhbHVlX2xpc3RfcHJlcGVuZF92YWx1ZSksIChnc3RfdmFsdWVfbGlzdF9hcHBlbmRfdmFsdWUpLAoJICAoZ3N0X3ZhbHVlX2xpc3RfZ2V0X3NpemUpLCAoZ3N0X3ZhbHVlX2xpc3RfZ2V0X3ZhbHVlKSwKCSAgKGdzdF92YWx1ZV90cmFuc2Zvcm1fYXJyYXlfc3RyaW5nKSwgKGdzdF92YWx1ZV9zZXJpYWxpemVfYXJyYXkpLAoJICAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2FycmF5KSwgKGdzdF92YWx1ZV9pbnRlcnNlY3RfYXJyYXkpLAoJICAoZ3N0X3ZhbHVlX2lzX2ZpeGVkKSwgKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIEdzdEVsZW1lbnQ6Om5ldy1wYWQgLT4gcGFkLWFkZGVkLCBHc3RFbGVtZW50OjpzdGF0ZS1jaGFuZ2UgLT4KCSAgc3RhdGUtY2hhbmdlZCwgR3N0VmFsdWVGaXhlZExpc3QgLT4gR3N0VmFsdWVBcnJheSwgYWRkIGZvcm1hdCBhbmQKCSAgZmxhZ3MgYXMgdGhlaXIgb3duIGFyZ3VtZW50cyBpbiBnc3RfZWxlbWVudF9zZWVrKCkgKHNob3VsZCBpbXByb3ZlCgkgICJiaW5kZWFiaWxpdHkiKSwgcmVtb3ZlIGZ1bmN0aW9uIGdlbmVyYXRvcnMgc2luY2UgdGhleSBkb24ndCB3b3JrCgkgIHVuZGVyIGEgd2hvbGUgYnVuY2ggb2YgY29tcGlsZXJzICh0aGV5IHdlcmUgZGVwcmVjYXRlZCBhbHJlYWR5CgkgIGFueXdheSkuCgoyMDA1LTA3LTIwIDE3OjE1OjE5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC5zdXBwOgoJKiBjb21tb246CgkqIHRlc3RzL2NoZWNrL2dzdC5zdXBwOgoJICBwYXRjaCBmcm9tIEVkZ2FyZCB0byBwcm9wZXJseSBzdXBwcmVzcyB0aGVzZSB3YXJuaW5ncwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggZnJvbSBFZGdhcmQgdG8gcHJvcGVybHkgc3VwcHJlc3MgdGhlc2Ugd2FybmluZ3MKCjIwMDUtMDctMjAgMTY6MjA6MzkgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RpbmZvLio6IEZpeCBpbGxlZ2FsIGNhc3Qgb24gc29tZSBwbGF0Zm9ybXMgKCMzMDkyNTMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOiAoX2dzdF9kZWJ1Z19uYW1lb2ZfZnVuY3B0ciksCgkgIChfZ3N0X2RlYnVnX3JlZ2lzdGVyX2Z1bmNwdHIpOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIEZpeCBpbGxlZ2FsIGNhc3Qgb24gc29tZSBwbGF0Zm9ybXMgKCMzMDkyNTMpLgoKMjAwNS0wNy0yMCAxMTozNToxOCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdG1lc3NhZ2UuKjogQWRkIF9uZXdfY3VzdG9tLCBtYWtlIF9uZXdfYXBwbGljYXRpb24gYSBtYWNybyB0byBfbmV3X2N1c3RvbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19jdXN0b20pOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEFkZCBfbmV3X2N1c3RvbSwgbWFrZSBfbmV3X2FwcGxpY2F0aW9uIGEgbWFjcm8gdG8gX25ld19jdXN0b20uCgoyMDA1LTA3LTIwIDEwOjU4OjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy4qOiBBZGQgYSBnYm9vbGVhbiB0byBkZWNpZGUgd2hlbiB0byBwdXNoIG91dCBhIGRpc2NvbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19kb19zZWVrKSwgKGdzdF9iYXNlX3NyY19sb29wKSwgKGdzdF9iYXNlX3NyY19zdGFydCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBBZGQgYSBnYm9vbGVhbiB0byBkZWNpZGUgd2hlbiB0byBwdXNoIG91dCBhIGRpc2NvbnQuCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9xdWV1ZV9sb29wKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KSwKCSAgKGdzdF9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9xdWV1ZV9zZXRfcHJvcGVydHkpLCAoZ3N0X3F1ZXVlX2dldF9wcm9wZXJ0eSk6CgkgIFNvbWUgY2xlYW51cHMuCgkgICogdGVzdHMvdGhyZWFkc3RhdGUvdGhyZWFkc3RhdGUxLmM6IChtYWluKToKCSAgTWFrZSBhIHRocmVhZCB0ZXN0IGNvbXBpbGUgYW5kIHJ1bi4uLiB2ZXJ5IHNpbGx5Li4KCjIwMDUtMDctMjAgMTA6MTM6NDYgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FwcGVuZGl4LXBvcnRpbmcueG1sOiBNZW50aW9uIHJlbW92YWwgb2YgbGliZ3N0Z2NvbmYtMC45LmxhIGFuZCBleGlzdGVuY2Ugb2YgZ2NvbmYgZWxlbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICBNZW50aW9uIHJlbW92YWwgb2YgbGliZ3N0Z2NvbmYtMC45LmxhIGFuZCBleGlzdGVuY2Ugb2YgZ2NvbmYKCSAgZWxlbWVudHMuCgoyMDA1LTA3LTIwIDA4OjI5OjA2ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL3B3Zy86IERvY3VtZW50IGJhc2UgY2xhc3NlcywgdXBkYXRlIHNlY3Rpb25zIG9mIG4tdG8tMSBhbmQgMS10by1uIChtdXhlciwgZml4IHNvbWUgY29kZSBleGFtcGxlcyBhbmQgbGlua3MgYW5kIHUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtY2xvY2sueG1sOgoJICAqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICAqIGRvY3MvcHdnL2ludHJvLXByZWZhY2UueG1sOgoJICAqIGRvY3MvcHdnL290aGVyLWJhc2UueG1sOgoJICAqIGRvY3MvcHdnL290aGVyLW1hbmFnZXIueG1sOgoJICAqIGRvY3MvcHdnL290aGVyLW50b24ueG1sOgoJICAqIGRvY3MvcHdnL290aGVyLW50b29uZS54bWw6CgkgICogZG9jcy9wd2cvb3RoZXItb25ldG9uLnhtbDoKCSAgKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBEb2N1bWVudCBiYXNlIGNsYXNzZXMsIHVwZGF0ZSBzZWN0aW9ucyBvZiBuLXRvLTEgYW5kIDEtdG8tbiAobXV4ZXIsCgkgIGRlbXV4ZXIpLCByZW1vdmUgbi10by1uICh3YXMgbmV2ZXIgd3JpdHRlbiksIGZpeCBzb21lIGNvZGUgZXhhbXBsZXMKCSAgYW5kIGxpbmtzIGFuZCB1cGRhdGUgdGhlIHBvcnRpbmcgc2VjdGlvbiB0byBpbmNsdWRlIGFsbCB0aGlzLgoKMjAwNS0wNy0xOSAxNzo0NjozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RxdWV1ZS4qOiBQcm9wYWdhdGUgR3N0Rmxvd1JldHVybiBtb3JlIGludGVsbGlnZW50bHkgdXBzdHJlYW0gYW5kIG91dHB1dCBhbiBFUlJPUi9FT1Mgd2hlbiBzdHJlYW1pbmcgc3RvcHBlZCBkdS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9pbml0KSwgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksCgkgIChnc3RfcXVldWVfY2hhaW4pLCAoZ3N0X3F1ZXVlX2xvb3ApLCAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfZXZlbnQpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpLCAoZ3N0X3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X3F1ZXVlX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcXVldWVfZ2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvZ3N0cXVldWUuaDoKCSAgUHJvcGFnYXRlIEdzdEZsb3dSZXR1cm4gbW9yZSBpbnRlbGxpZ2VudGx5IHVwc3RyZWFtIGFuZCBvdXRwdXQKCSAgYW4gRVJST1IvRU9TIHdoZW4gc3RyZWFtaW5nIHN0b3BwZWQgZHVlIHRvIGZhdGFsIGVycm9yLgoKMjAwNS0wNy0xOSAxNDo1Mjo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogRG9uJ3QgYmxvY2sgZm9yZXZlciBmb3IgdGhlIHN0YXRlIGNoYW5nZSB0byBjb21wbGV0ZSwgdGhlIHBpcGVsaW5lIGFscmVhZHkgZGlkIHdpdGggYSBzZW5zaWJsZSB0aS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChjaGVja19pbnRyKSwgKGV2ZW50X2xvb3ApLCAobWFpbik6CgkgIERvbid0IGJsb2NrIGZvcmV2ZXIgZm9yIHRoZSBzdGF0ZSBjaGFuZ2UgdG8gY29tcGxldGUsIHRoZQoJICBwaXBlbGluZSBhbHJlYWR5IGRpZCB3aXRoIGEgc2Vuc2libGUgdGltZW91dC4KCjIwMDUtMDctMTkgMTM6NDM6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IE1ha2Ugc3VyZSB3ZSBuZXZlciBjYWxsIHRoZSBjcmVhdGUgZnVuY3Rpb24gaXMgd2UgZ290IGRlYWN0aXZhdGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKToKCSAgTWFrZSBzdXJlIHdlIG5ldmVyIGNhbGwgdGhlIGNyZWF0ZSBmdW5jdGlvbiBpcyB3ZQoJICBnb3QgZGVhY3RpdmF0ZWQuCgoyMDA1LTA3LTE5IDExOjI3OjA3ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgdXBkYXRlIGZvciBsYXRlc3QgY2hhbmdlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGZvciBsYXRlc3QgY2hhbmdlcwoKMjAwNS0wNy0xOSAxMDo0MDo0OSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L3BhcnNlL3BhcnNlLmw6IEF0dGVtcHQgdG8gc29sdmUgYnVnICMxNzI4MTUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9wYXJzZS9wYXJzZS5sOiBBdHRlbXB0IHRvIHNvbHZlIGJ1ZyAjMTcyODE1LgoKMjAwNS0wNy0xOSAwOToxOTowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFNtYWxsIGRvY3MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZG9fc2Vlayk6CgkgIFNtYWxsIGRvY3MgdXBkYXRlcy4KCSAgT25seSB1cGRhdGUgdGhlIHNlZWtpbmcgdmFsdWVzIHdoZW4gd2UgYXJlIG5vdAoJICBidXN5IHN0cmVhbWluZy4KCjIwMDUtMDctMTggMTc6NDM6NTIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBPb3BzLCBpZ25vcmUgdGhlIHJlc3VsdCBvZiBnc3RfcGFkX3B1c2hfZXZlbnQgaGVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE9vcHMsIGlnbm9yZSB0aGUgcmVzdWx0IG9mIGdzdF9wYWRfcHVzaF9ldmVudCBoZXJlLgoKMjAwNS0wNy0xOCAxNzoxMjozNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFNlbmQgZGlzY29udCBldmVudCBmcm9tIHRoZSBsb29wIGZ1bmN0aW9uLCBhcyBwYWRzIGFyZW4ndCBhY3RpdmF0ZWQgeWV0IGluIHRoZSBhY3RpdmF0ZV9wdXNoIGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1c2gpOgoJICBTZW5kIGRpc2NvbnQgZXZlbnQgZnJvbSB0aGUgbG9vcCBmdW5jdGlvbiwgYXMgcGFkcwoJICBhcmVuJ3QgYWN0aXZhdGVkIHlldCBpbiB0aGUgYWN0aXZhdGVfcHVzaCBoYW5kbGVyLgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9idXNfaGFuZGxlcik6CgkgIERvbid0IGxlYWsgZWxlbWVudCBuYW1lLgoKMjAwNS0wNy0xOCAxNDo0NzozOSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY29uZmlndXJlLmFjOiBVc2UgQVNfTElCVE9PTF9UQUdTLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0xOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjb25maWd1cmUuYWM6IFVzZSBBU19MSUJUT09MX1RBR1MuCgoyMDA1LTA3LTE4IDEyOjU4OjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOiBSZW1vdmUgZGVsZXRlZCB0eXBlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICBSZW1vdmUgZGVsZXRlZCB0eXBlcy4KCjIwMDUtMDctMTggMTI6NDk6NTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RidXMuaDoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGVycm9yLmM6CgkqIGdzdC9nc3RlcnJvci5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYXJzZS5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0c2NoZWR1bGVyLmM6CgkqIGdzdC9nc3RzY2hlZHVsZXIuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSogZ3N0L2dzdHR5cGVzLmg6CgkqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6CgkqIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5LmM6CgkqIGdzdC9zY2hlZHVsZXJzL3RocmVhZHNjaGVkdWxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sL2RwYXJhbW1hbmFnZXIuaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICBSZW1vdmVkIHBsdWdhYmxlIHNjaGVkdWxlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZW1vdmVkIHBsdWdhYmxlIHNjaGVkdWxlcnMuCgkgIFJlbW92ZWQgU2NoZWR1bGVyL01hbmFnZXIgZnJvbSBlbGVtZW50cy4KCSAgUmVtb3ZlZCBnc3R0eXBlcy5oLCByZWFycmFuZ2VkIGluY2x1ZGVzLgoJICBSZW1vdmVkIGRlcGVuZGVuY3kgcGFkPC0+ZWxlbWVudCwgZWxlbWVudDw+cGlwZWxpbmUsIGFuZAoJICB2YXJpb3VzIG90aGVycywgIGZpeCBpbmNsdWRlcy4KCSAgaW1wbGVtZW50IGdzdF9wYWRfZ2V0X3BhcmVudCgpIHdpdGggZ3N0X29iamVjdF9nZXRfcGFyZW50KCkKCSAgTWFrZSBHc3RUYXNrIHNlZmNvbnRhaW5lZC4KCSAgRml4IF9nZXRfc3RhdGUoKSBvbiBHc3RCaW4sIGl0IGRpZCBub3QgcmV0dXJuIEFTWU5DIHdpdGggYSAwCgkgIHRpbWVvdXQuCgkgIEZpeCBlbmRsZXNzIGxvb3AgaW4gaXRlcmF0b3JfZm9sZF93aXRoX3Jlc3luYy4KCjIwMDUtMDctMTggMDk6MjI6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBSZW1vdmUgb2xkIGZpbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0YXJjaC5oOgoJICBSZW1vdmUgb2xkIGZpbGUuCgoyMDA1LTA3LTE4IDA4OjUxOjMxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L01ha2VmaWxlLmFtOiBObyBtb3JlIGNvdGhyZWFkcy5oCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgTm8gbW9yZSBjb3RocmVhZHMuaAoKMjAwNS0wNy0xOCAwODo0MzoyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9jb3RocmVhZHMuKjogTGV0J3MgcmVtb3ZlIHRoZXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvY290aHJlYWRzLmM6CgkgICogZ3N0L2NvdGhyZWFkcy5oOgoJICBMZXQncyByZW1vdmUgdGhlc2UuCgoyMDA1LTA3LTE4IDA4OjI4OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBTb21lIG1vcmUgZG9jcyBpbiB0aGUgd29ya3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZHluYW1pYy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkgIFNvbWUgbW9yZSBkb2NzIGluIHRoZSB3b3Jrcy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldGNhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NvbmZpZ3VyZV9jYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfc2l6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zcmNfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X3Bhc3N0aHJvdWdoKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pc19wYXNzdGhyb3VnaCk6CgkgIFJlZmNvdW50aW5nIGZpeGVzLgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfc291cmNlX2Rpc3BhdGNoKSwgKGdzdF9idXNfcG9sbCk6CgkgIENsZWFudXBzLgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X2ZpbmFsaXplKToKCSAgU2V0IFNSQyB0byBOVUxMLgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfdW5saW5rKSwKCSAgKGdzdF9wYWRfZ2V0X3BhcmVudF9lbGVtZW50KSwgKGdzdF9wYWRfcHJveHlfZ2V0Y2FwcyksCgkgIChnc3RfcGFkX3Byb3h5X3NldGNhcHMpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBZGQgX2dldF9wYXJlbnRfZWxlbWVudCgpIHRvIGdldCBhIHBhZHMgcGFyZW50IGFzIGFuIGVsZW1lbnQuCgoyMDA1LTA3LTE3IDIyOjQ0OjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBSZW1vdmUgYm9ndXMgdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBSZW1vdmUgYm9ndXMgdGVzdC4KCjIwMDUtMDctMTcgMjI6MjY6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBSZWZjb3VudGluZyBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcGFkX2dldGNhcHMpLAoJICAoZ3N0X2Jhc2Vfc2lua19wYWRfc2V0Y2FwcyksIChnc3RfYmFzZV9zaW5rX3BhZF9idWZmZXJfYWxsb2MpLAoJICAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2ZsdXNoKSwgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2NoYWluKSwgKGdzdF9iYXNlX3NpbmtfbG9vcCksCgkgIChnc3RfYmFzZV9zaW5rX2RlYWN0aXZhdGUpLCAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVsbCksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIFJlZmNvdW50aW5nIGZpeGVzLgoJICBGaXggbG9naWMgZm9yIHJldHVybmluZyBBU1lOQyB3aGVuIG5vdCBwcmVyb2xsZWQuCgoyMDA1LTA3LTE3IDIyOjIyOjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHF1ZXVlLmM6IEZpeCBuYXN0eSByZWZjb3VudCBidWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KToKCSAgRml4IG5hc3R5IHJlZmNvdW50IGJ1Zy4KCjIwMDUtMDctMTYgMTk6MjU6NDEgKzAwMDAgIFBoaWxpcHBlIEthbGFmIDxwaGlsaXBwZS5rYWxhZkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgIE1vdmVkIGZkc3JjIHRvIGdzdC1wbHVnaW5zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTW92ZWQgZmRzcmMgdG8gZ3N0LXBsdWdpbnMuCgoyMDA1LTA3LTE2IDE1OjQzOjEwICswMDAwICBQaGlsaXBwZSBLYWxhZiA8cGhpbGlwcGUua2FsYWZAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJICBGb3Jnb3QgY2hhbmdlbG9nIGVudHJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGb3Jnb3QgY2hhbmdlbG9nIGVudHJ5CgoyMDA1LTA3LTE2IDE1OjQxOjA0ICswMDAwICBQaGlsaXBwZSBLYWxhZiA8cGhpbGlwcGUua2FsYWZAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5oOgoJICBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYyBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuaCBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYyBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW0KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMTYgUGhpbGlwcGUgS2hhbGFmIDxidXJnZXJAc3BlZWR5Lm9yZz4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYwoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5oCgkgICogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmMKCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW0KCSAgUG9ydGVkIGZkc3JjIHRvIDAuOS4KCjIwMDUtMDctMTYgMTQ6NTI6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBGaXggY29tcGlsZSBlcnJvci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICBGaXggY29tcGlsZSBlcnJvci4KCjIwMDUtMDctMTYgMTQ6NDE6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay4qOiBTdG9yZSBhbmQgdXNlIGRpc2NvbnQgdmFsdWVzIHdoZW4gc3luY2luZyBidWZmZXJzIGFzIGRlc2NyaWJlZCBpbiBkZXNpZ24gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3RpbWVzKSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgU3RvcmUgYW5kIHVzZSBkaXNjb250IHZhbHVlcyB3aGVuIHN5bmNpbmcgYnVmZmVycyBhcyBkZXNjcmliZWQKCSAgaW4gZGVzaWduIGRvY3MuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZGlzY29udCksCgkgIChnc3RfYmFzZV9zcmNfZG9fc2VlayksIChnc3RfYmFzZV9zcmNfbG9vcCksIChnc3RfYmFzZV9zcmNfc3RhcnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1c2gpOgoJICBQdXNoIGRpc2NvbnQgZXZlbnQgd2hlbiBzdGFydGluZy4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV90cmFuc2Zvcm0pOgoJICBTbWFsbCBjbGVhbnVwcy4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgIFNtYWxsIGNsZWFudXBzIGluIGJhc2VfdGltZSAgZGlzdHJpYnV0aW9uLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfYmFzZV90aW1lKSwKCSAgKGdzdF9lbGVtZW50X2dldF9iYXNlX3RpbWUpLCAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBBZGRlZCBtZXRob2RzIGZvciB0aGUgYmFzZV90aW1lIG9mIHRoZSBlbGVtZW50LgoJICBTb21lIE1UIGZpeGVzLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX3NlbmRfZXZlbnQpLAoJICAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksIChnc3RfcGlwZWxpbmVfc2V0X25ld19zdHJlYW1fdGltZSksCgkgIChnc3RfcGlwZWxpbmVfZ2V0X2xhc3Rfc3RyZWFtX3RpbWUpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5oOgoJICBNVCBmaXhlcy4KCSAgSGFuZGxlIHNlZWtpbmcgYXMgZGVzY3JpYmVkIGluIGRlc2lnbiBkb2MsIHJlbW92ZSBzdHJlYW1fdGltZQoJICBoYWNrLgoJICBDbGVhbnVwcyBjbG9jayBhbmQgc3RyZWFtX3RpbWUgc2VsZWN0aW9uIGNvZGUuIEFkZGVkIGFjY2Vzc29ycwoJICBmb3IgdGhlIHN0cmVhbV90aW1lLgoKMjAwNS0wNy0xNiAxNDowNjoyMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGVycm9yLmMgKF9nc3RfY29yZV9lcnJvcnNfaW5pdCk6IFVzZSB0aGUgbWFnaWMgd29yZC4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTE2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RlcnJvci5jIChfZ3N0X2NvcmVfZXJyb3JzX2luaXQpOiBVc2UgdGhlIG1hZ2ljIHdvcmQuLgoKMjAwNS0wNy0xNiAxMzo1MDozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogTWFrZSBlbGVtZW50cyBzaWxlbnQgYXMgdGhlIGRlZXBfbm90aWZ5IHJlZnMgdGhlIHBhcmVudCwgd2hpY2ggbWlnaHQgbWFrZSB0aGUgdGVzdCBmYWlsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIE1ha2UgZWxlbWVudHMgc2lsZW50IGFzIHRoZSBkZWVwX25vdGlmeSByZWZzIHRoZQoJICBwYXJlbnQsIHdoaWNoIG1pZ2h0IG1ha2UgdGhlIHRlc3QgZmFpbC4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVzaCk6CgkgIERvbid0IGhvbGQgdGhlIGxvY2sgZm9yIHRvbyBsb25nLgoKMjAwNS0wNy0xNiAxMjozMzoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogRG9uJ3QgdW5yZWYgdGhlIGNhcHMgd2UgcGFzc2VkIHRvIGdzdF9jYXBzX21ha2Vfd3JpdGFibGUoKSBhZnRlciBwYXNzaW5nIHRoZW0uIGdzdF9jYXBzX21ha2Vfdy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZWdvdGlhdGUpOgoJICBEb24ndCB1bnJlZiB0aGUgY2FwcyB3ZSBwYXNzZWQgdG8gZ3N0X2NhcHNfbWFrZV93cml0YWJsZSgpIGFmdGVyCgkgIHBhc3NpbmcgdGhlbS4gZ3N0X2NhcHNfbWFrZV93cml0YWJsZSgpIHdpbGwgZG8gdGhhdCBmb3IgdXMuCgoyMDA1LTA3LTE1IDE2OjEwOjQxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5oIChnc3RfY2Fwc19pc19zaW1wbGUpOiBSZW1vdmVkIGRlcHJlY2F0ZWQgbWFjcm8gKCMxNTczMTEpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0xNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Y2Fwcy5oIChnc3RfY2Fwc19pc19zaW1wbGUpOiBSZW1vdmVkIGRlcHJlY2F0ZWQgbWFjcm8KCSAgKCMxNTczMTEpLgoKMjAwNS0wNy0xNSAxNDo1OToyMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmMgKG1hcnNoYWxfVk9JRF9fTUlOSU9CSkVDVCk6IFdyaXRlIG91ciBvd24gbWFyc2hhbGxpbmcgZnVuY3Rpb24gZm9yIHRoZSBoYW5kb2ZmIHNpZ25hbC4gUHJvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTE1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jIChtYXJzaGFsX1ZPSURfX01JTklPQkpFQ1QpOiBXcml0ZSBvdXIKCSAgb3duIG1hcnNoYWxsaW5nIGZ1bmN0aW9uIGZvciB0aGUgaGFuZG9mZiBzaWduYWwuIFByb3Blcmx5IHR5cGUgdGhlCgkgIGJ1ZmZlciBhcyBhIGJ1ZmZlci4gRml4ZXMgc29tZSB3YXJuaW5ncy4gU2hvdWxkIGRvIGEgbW9yZSBnZW5lcmFsCgkgIHNvbHV0aW9uLgoJICAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpOiBQbHVnIGludG8gdGhlIHJpZ2h0IG1hcnNoYWxsZXIuCgoyMDA1LTA3LTE1IDEzOjQ0OjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBVcGRhdGVkIGRvY3MsIG1vc3RseSBESVNDT05UIHJlbGF0ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkgIFVwZGF0ZWQgZG9jcywgbW9zdGx5IERJU0NPTlQgcmVsYXRlZC4KCjIwMDUtMDctMTUgMTI6NTU6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3B3Zy9idWlsZGluZy1wYWRzLnhtbDogcy9HU1RfUEFEX0xJTktfUkVGVVNFRC9GQUxTRS8gaW4gZ3N0X215X2ZpbHRlcl9zZXRjYXBzKCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctcGFkcy54bWw6CgkgIHMvR1NUX1BBRF9MSU5LX1JFRlVTRUQvRkFMU0UvIGluIGdzdF9teV9maWx0ZXJfc2V0Y2FwcygpCgoyMDA1LTA3LTE1IDExOjA1OjUyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSAgcmVtb3ZlIGlycmVsZXZhbnQgY29kZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGlycmVsZXZhbnQgY29kZQoKMjAwNS0wNy0xNSAxMTowNDoxOCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdG9vbHMvZ3N0LXR5cGVmaW5kLmM6IFVwZGF0ZSwgYWRkIGNvcHlyaWdodCBibG9jay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMTUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6IFVwZGF0ZSwgYWRkIGNvcHlyaWdodCBibG9jay4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlX3NyY19kZWZhdWx0X25lZ290aWF0ZSk6CgkgIE5vcm1hbGl6ZSBhbmQgdHJ1bmNhdGUgY2FwcyBiZWZvcmUgZml4YXRpb24uCgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgKiBnc3QvZ3N0Y2Fwcy5jIChnc3RfY2Fwc190cnVuY2F0ZSk6IE5ldyBmdW5jdGlvbiwgZGVzdHJ1Y3RpdmVseQoJICBkaXNjYXJkcyBhbGwgYnV0IHRoZSBmaXJzdCBzdHJ1Y3R1cmUgZnJvbSBpdHMgYXJndW1lbnQuCgoyMDA1LTA3LTE1IDEwOjQxOjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS4qOiBNYWtlIHBhc3N0aHJvdWdoIHdvcmsgdXNpbmcgdGhlIGJ1ZmZlcnBvb2xzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NvbmZpZ3VyZV9jYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfc2l6ZSksIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRyYW5nZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X3Bhc3N0aHJvdWdoKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pc19wYXNzdGhyb3VnaCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBNYWtlIHBhc3N0aHJvdWdoIHdvcmsgdXNpbmcgdGhlIGJ1ZmZlcnBvb2xzLgoJICBDaGFuZ2VkIEFQSSBhIGJpdCwgc3ViY2xhc3NlcyBoYXZlIHRvIHdyaXRlIGludG8gYSBidWZmZXIKCSAgcHJvdmlkZWQgYnkgdGhlIGJhc2UgY2xhc3MuCgkgIE1vcmUgZGVidWcgaW5mbyBpbiBuZWdvIGZ1bmN0aW9ucy4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9pbml0KSwKCSAgKGdzdF9pZGVudGl0eV90cmFuc2Zvcm0pOgoJICBQb3J0IHRvIG5ldyBiYXNlIGNsYXNzLgoKMjAwNS0wNy0xNSAxMDozMDo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFRvdGFsbHkgZHVtcCBtZXNzYWdlcyBpbiAtbGF1bmNoIHdpdGggdGhlIC1tIG9wdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKToKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKSwgKG1haW4pOgoJICBUb3RhbGx5IGR1bXAgbWVzc2FnZXMgaW4gLWxhdW5jaCB3aXRoIHRoZSAtbSBvcHRpb24uCgkgIEZpeCBtZXNzYWdlIG5hbWUgZm9yIFN0YXRlIG1lc3NhZ2VzLAoKMjAwNS0wNy0xNCAxODo0NTo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogUG9zdCBlcnJvciBtZXNzYWdlcyBvbiBlcnJvcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19sb29wKToKCSAgUG9zdCBlcnJvciBtZXNzYWdlcyBvbiBlcnJvcnMuCgoyMDA1LTA3LTE0IDE4OjEwOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogUmVtb3ZlIGRlYnVnIGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19kb19zaW1wbGlmeSk6CgkgIFJlbW92ZSBkZWJ1ZyBpbmZvLgoJICAqIGdzdC9nc3RlcnJvci5oOgoJICBEZWZpbmUgZXJyb3IgZm9yIHN0cmVhbSBzdG9wcGVkLgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9kb19idWZmZXJhbGxvYyksCgkgIChnc3RfcHJveHlfcGFkX2RvX2NoYWluKSwgKGdzdF9wcm94eV9wYWRfZG9fZ2V0cmFuZ2UpOgoJICBEbyBwcm9wZXIgcmV0dXJuIHZhbHVlcy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9jYXBzX3VubG9ja2VkKSwgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLAoJICAoZ3N0X3BhZF9zZXRfY2FwcyksIChnc3RfcGFkX2NoYWluKSwgKGdzdF9wYWRfcHVzaCksCgkgIChnc3RfcGFkX2dldF9yYW5nZSk6CgkgIEJldHRlciByZXR1cm4gdmFsdWVzLgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgUmVvcmdhbmlzZSByZXR1cm4gdmFsdWVzLCBhZGQgbWFjcm8gdG8gY2hlY2sgZm9yIGZhdGFsIGVycm9ycy4KCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9jaGFpbik6CgkgIFJldHVybiBwcm9wZXIgR3N0Rmxvd1JldHVybiB2YWx1ZXMsCgoyMDA1LTA3LTE0IDA5OjM1OjEyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJKiBkb2NzL2dzdC90bXBsL2dzdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2V0cmFuc2Zvcm0uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiaW4uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RidWZmZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RjYXBzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y2xvY2suc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rjb21wYXQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rjb25maWcuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudGRldGFpbHMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50ZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVudW10eXBlcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVycm9yLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZXZlbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWxlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbGVzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWx0ZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rmb3JtYXQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RnaG9zdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGltcGxlbWVudHNpbnRlcmZhY2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4ZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZm8uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpdGVyYXRvci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG1hY3Jvcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG1lbWNodW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0bWluaW9iamVjdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG9iamVjdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZHRlbXBsYXRlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFyc2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwaXBlbGluZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbmZlYXR1cmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RxdWVyeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHF1ZXVlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cmVnaXN0cnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RyZWdpc3RyeXBvb2wuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RzY2hlZHVsZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RzY2hlZHVsZXJmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0c3RydWN0dXJlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0c3lzdGVtY2xvY2suc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0YWdsaXN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dGFnc2V0dGVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHJhY2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0cmFzaHN0YWNrLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZWZpbmQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlZmluZGZhY3Rvcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHVyaWhhbmRsZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R1cml0eXBlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dXRpbHMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R2YWx1ZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHZlcnNpb24uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R4bWwuc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0Y29udHJvbC5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZHBhcmFtLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRwbGluaW50LnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRwbWFuLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRwc21vb3RoLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGdldGJpdHMuc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0dW5pdGNvbnZlcnQuc2dtbDoKCSogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkgIG1vcmUgYXV0aXN0aWMgY2xlYW5saW5lc3MgaW4gZnVuY3Rpb25zL25hbWVzL2RlZmluZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vcmUgYXV0aXN0aWMgY2xlYW5saW5lc3MgaW4gZnVuY3Rpb25zL25hbWVzL2RlZmluZXMKCjIwMDUtMDctMTMgMTg6Mjk6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgZml4IGRlYnVnIGlmZGVmCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZGVidWcgaWZkZWYKCjIwMDUtMDctMTMgMTY6MjY6MDcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KTogUG9zdCBhbiBlcnJvciBpZiB0aGUgc291cmNlIGNvdWxkbid0IG5lZ290aWF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMTMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfc3RhcnQpOiBQb3N0IGFuIGVycm9yIGlmIHRoZQoJICBzb3VyY2UgY291bGRuJ3QgbmVnb3RpYXRlLgoKMjAwNS0wNy0xMyAxMzoxNDo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3Quc3VwcDoKCSogdGVzdHMvY2hlY2svZ3N0LnN1cHA6CgkgIGFkZCBhIHN1cHByZXNzaW9uIGZyb20gRWRnYXJkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYSBzdXBwcmVzc2lvbiBmcm9tIEVkZ2FyZAoKMjAwNS0wNy0xMyAxMzoxMDoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBtb3ZlIHR3byB0ZXN0c3VpdGUgYXBwcyBvdmVyIHRvIHRoZSBjaGVjayBkaXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHN1aXRlL2NhcHMvTWFrZWZpbGUuYW06CgkgICogdGVzdHN1aXRlL2NhcHMvdmFsdWVfY29tcGFyZS5jOgoJICAqIHRlc3RzdWl0ZS9jYXBzL3ZhbHVlX2ludGVyc2VjdC5jOgoJICAqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgbW92ZSB0d28gdGVzdHN1aXRlIGFwcHMgb3ZlciB0byB0aGUgY2hlY2sgZGlyCgoyMDA1LTA3LTEyIDE3OjE3OjM0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBBZGRlZCBtb3JlIGRlYnVnIGluZm8gaW4gdGhlIG5lZ290aWF0ZSBwcm9jZXNzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2Fwcyk6CgkgIEFkZGVkIG1vcmUgZGVidWcgaW5mbyBpbiB0aGUgbmVnb3RpYXRlIHByb2Nlc3MuCgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgUHJlcGFyZSBmb3Igc2VnbWVudCBwbGF5YmFjay4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfc2V0X2NhcHMpOgoJICBCZXR0ZXIgZGVidWdnaW5nLgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBTb21lIG1vcmUgZG9jcy4KCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgTlVMTCBwaXBlbGluZSBvbiBlcnJvcnMuCgoyMDA1LTA3LTEyIDE3OjA0OjQxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmMgKF9nc3RfYnVmZmVyX2NvcHkpOiBDb3B5IHRoZSBidWZmZXIgd2hldGhlciBvciBub3QgaXQgY29tZXMgZnJvbSBhIG1hbGxvYyByZWdpb24uIE1ha2Ugc3VyZSBvdXIgY29weSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMTIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGJ1ZmZlci5jIChfZ3N0X2J1ZmZlcl9jb3B5KTogQ29weSB0aGUgYnVmZmVyIHdoZXRoZXIgb3IKCSAgbm90IGl0IGNvbWVzIGZyb20gYSBtYWxsb2MgcmVnaW9uLiBNYWtlIHN1cmUgb3VyIGNvcHkgZ2V0cyBmcmVlZC4KCjIwMDUtMDctMTIgMTY6Mjg6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJKiBjaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiBjaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZml4IHJlZmNvdW50aW5nIG9mIHdhcm5pbmcgYW5kIGVycm9yIG1lc3NhZ2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggcmVmY291bnRpbmcgb2Ygd2FybmluZyBhbmQgZXJyb3IgbWVzc2FnZXMKCjIwMDUtMDctMTIgMTM6MjY6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICByZS1lbmFibGUgbGVhayBjaGVja2luZyA6KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmUtZW5hYmxlIGxlYWsgY2hlY2tpbmcgOikKCjIwMDUtMDctMTIgMTI6MjA6MDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IGFkZCBwZXItdGVzdCB2YWxncmluZCB0YXJnZXRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBhZGQgcGVyLXRlc3QgdmFsZ3JpbmQgdGFyZ2V0cwoJICAqIGNoZWNrL2dzdC1saWJzL2dkcC5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2RhdGFfcHJvdG9jb2xfc3VpdGUpLCAobWFpbik6CgkgIGNsZWFuIHVwCgoyMDA1LTA3LTEyIDA5OjQxOjAwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBpbnN0YXRlIG1vcmUgdmFsZ3JpbmRhYmxlIHRlc3RzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTEyICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlICA8dGhvbWFzIGF0IGFwZXN0YWFydCBkb3Qgb3JnPgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBpbnN0YXRlIG1vcmUgdmFsZ3JpbmRhYmxlIHRlc3RzCgkgICogY2hlY2svZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoY2hhaW5fZnVuYyksIChldmVudF9mdW5jKSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKGZha2VzcmNfc3VpdGUpOgoJICAqIGNoZWNrL2dzdC9nc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIGZpeCB0ZXN0IGxlYWtzCgkgICogZG9jcy9nc3QvdG1wbC9nc3RtaW5pb2JqZWN0LnNnbWw6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9maW5hbGl6ZSk6CgkgIGZpeCB0aGUgc3RhdGljIG11dGV4IGxlYWsKCjIwMDUtMDctMTEgMTg6NDE6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IGFkZCB0d28gbW9yZSB0ZXN0cyBmb3IgdmFsZ3JpbmRpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIGFkZCB0d28gbW9yZSB0ZXN0cyBmb3IgdmFsZ3JpbmRpbmcKCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgdGVzdCByZWZjb3VudCBvZiBkZXNlcmlhbGl6ZWQgYnVmZmVyLCBmb3VuZCBhIGxlYWsKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0bWluaW9iamVjdC5zZ21sOgoJICBhZGQgbWluaW9iamVjdCB0byBkb2NzCgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgYWRkIHNvbWUgZG9jcwoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2J1ZmZlciksCgkgIChnc3Rfc3RyaW5nX3Vud3JhcCk6CgkgIGZpeCBhIGhhcmQtdG8tZmluZCBpbnZhbGlkIHdyaXRlIGZvciBvbmUgb2YgdGhlIHRlc3RzCgkgIGZpeCBhIGxlYWsgZm9yIGRlc2VyaWFsaXplZCBidWZmZXJzCgoyMDA1LTA3LTExIDE1OjQxOjA3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZG9uJ3QgdmFsZ3JpbmQgYXMgcGFydCBvZiBtYWtlIGNoZWNrIGZvciBub3cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvbid0IHZhbGdyaW5kIGFzIHBhcnQgb2YgbWFrZSBjaGVjayBmb3Igbm93CgoyMDA1LTA3LTExIDE1OjIyOjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgc3BlY2lmeSB0b29sCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzcGVjaWZ5IHRvb2wKCjIwMDUtMDctMTEgMTU6MTg6MzIgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvcHdnLzogUmV3cml0ZSBzY2hlZHVsaW5nLWNoYXB0ZXIgZm9yIHNjaGVkdWxpbmcgbW9kZWwgaW4gMC45LiBBZGQgbG90cyBvZiBleGFtcGxlIGNvZGUgYW5kIGV4cGxhbmF0aW9uIGZvciBwYWQgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1ldmVudHMueG1sOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXJlcXVlc3QueG1sOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXNjaGVkdWxpbmcueG1sOgoJICAqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgICogZG9jcy9wd2cvaW50cm8tcHJlZmFjZS54bWw6CgkgICogZG9jcy9wd2cvb3RoZXItbnRvb25lLnhtbDoKCSAgUmV3cml0ZSBzY2hlZHVsaW5nLWNoYXB0ZXIgZm9yIHNjaGVkdWxpbmcgbW9kZWwgaW4gMC45LiBBZGQgbG90cwoJICBvZiBleGFtcGxlIGNvZGUgYW5kIGV4cGxhbmF0aW9uIGZvciBwYWQgYWN0aXZhdGlvbiwgbG9vcCgpIGFuZAoJICBnZXRyYW5nZSgpIGZ1bmN0aW9ucyBhbmQgYSBiaXQgbW9yZS4gUmVtb3ZlIG9sZCBjb21tZW50cyBwb2ludGluZwoJICB0byBsb29wLWZ1bmN0aW9ucy4KCSAgKiBleGFtcGxlcy9wd2cvTWFrZWZpbGUuYW06CgkgIEFkZCBsb29wL2dldHJhbmdlIGV4YW1wbGVzLgoKMjAwNS0wNy0xMSAxNToxMDo0MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9nc3Quc3VwcDoKCSogY2hlY2svZ3N0L2dzdC5jOgoJKiBjaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiBjaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC5zdXBwOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdmFsZ3JpbmQgdW5pdCB0ZXN0cyBhcyBjaGVjay1sb2NhbDsgYWRkIGdzdF9kZWluaXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHZhbGdyaW5kIHVuaXQgdGVzdHMgYXMgY2hlY2stbG9jYWw7IGFkZCBnc3RfZGVpbml0CgoyMDA1LTA3LTExIDE1OjA2OjI3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNyYy5zZ21sOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgYWRkIG51bS1idWZmZXJzIHByb3BlcnR5IHRvIGJhc2VzcmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBudW0tYnVmZmVycyBwcm9wZXJ0eSB0byBiYXNlc3JjCgoyMDA1LTA3LTEwIDEyOjAzOjEzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIG1vcmUgbWFjcm8gc3BsaXR0aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIG1hY3JvIHNwbGl0dGluZwoKMjAwNS0wNy0xMCAwMDowNzo1MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBhZGQgZGVidWcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9idXMpOgoJICBhZGQgZGVidWcKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChjaGVja19pbnRyKSwgKGV2ZW50X2xvb3ApOgoJICBmaXggYnVzIGxlYWtzCgoyMDA1LTA3LTA5IDIzOjUyOjA3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZml4IGNhcHMgbGVhayBpbiBib3RoIGNhc2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggY2FwcyBsZWFrIGluIGJvdGggY2FzZXMKCjIwMDUtMDctMDkgMjM6NDg6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBkdWgsIHJlbW92ZSB1bnVzZWQgdmFyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkdWgsIHJlbW92ZSB1bnVzZWQgdmFyCgoyMDA1LTA3LTA5IDIzOjQ3OjIzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdHBhZC5jOgoJICBmaXggYSBjYXBzIGxlYWsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBhIGNhcHMgbGVhawoKMjAwNS0wNy0wOSAyMzozMzoyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IGFkZCBmaW5hbGl6ZSBtZXRob2QgYW5kIGNsZWFuIHVwIHByb3Blcmx5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19maW5hbGl6ZSk6CgkgIGFkZCBmaW5hbGl6ZSBtZXRob2QgYW5kIGNsZWFuIHVwIHByb3Blcmx5CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfZGlzcG9zZSk6CgkgIGFkZCBkZWJ1ZwoKMjAwNS0wNy0wOSAyMzoxNToyNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGRvbid0IGdldCBzcmMgZm9yIGFsbCBtZXNzYWdlczsgb25seSBmb3IgZW9zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCBnZXQgc3JjIGZvciBhbGwgbWVzc2FnZXM7IG9ubHkgZm9yIGVvcwoKMjAwNS0wNy0wOSAyMjo1NDoyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IGFkZCBtb3JlIHRoaW5ncyB0byBjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChwb3BfbWVzc2FnZXMpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2Jpbl9zdWl0ZSk6CgkgIGFkZCBtb3JlIHRoaW5ncyB0byBjaGVjawoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2hhbmdlX3N0YXRlKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgbW9yZSBkZWJ1ZwoKMjAwNS0wNy0wOSAxNjozNjoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogY2hlY2svZ3N0LWxpYnMvZ2RwLmM6CgkqIGNoZWNrL2dzdC9nc3QuYzoKCSogY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiBjaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIGNoZWNrL2dzdC9nc3RidXMuYzoKCSogY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogY2hlY2svZ3N0L2dzdGRhdGEuYzoKCSogY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGNoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJKiBjaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiBjaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkqIGNoZWNrL2dzdC9nc3RwYWQuYzoKCSogY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBjaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogY2hlY2svZ3N0Y2hlY2suYzoKCSogY2hlY2svZ3N0Y2hlY2suaDoKCSogY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzoKCSogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzoKCSogY2hlY2svc3RhdGVzL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdGNoZWNrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdGNoZWNrLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkgIGFkZCBkZWJ1Z2dpbmcgY2F0ZWdvcnkgdXNlIEdTVF9TVEFSVF9URVNUIG5vdywgc28gd2UgYWRkIGEgZGVidWcgbGluZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGRlYnVnZ2luZyBjYXRlZ29yeQoJICB1c2UgR1NUX1NUQVJUX1RFU1Qgbm93LCBzbyB3ZSBhZGQgYSBkZWJ1ZyBsaW5lCgoyMDA1LTA3LTA5IDE1OjE4OjUzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogYWRkIHRlc3QgZm9yIHN0YXRlIGNoYW5nZSBtZXNzYWdlIG9uIGEgYmluCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKFNUQVJUX1RFU1QpLCAoZ3N0X2Jpbl9zdWl0ZSk6CgkgIGFkZCB0ZXN0IGZvciBzdGF0ZSBjaGFuZ2UgbWVzc2FnZSBvbiBhIGJpbgoJICAqIGNoZWNrL2dzdC9nc3RlbGVtZW50LmM6IChTVEFSVF9URVNUKSwgKGdzdF9lbGVtZW50X3N1aXRlKToKCSAgYWRkIGFub3RoZXIgdGVzdAoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faW5pdCk6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19pbml0KSwgKGdzdF9idXNfcG9zdCk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZSksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGUpOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9jcmVhdGUpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXcpOgoJICAqIGdzdC9nc3RzY2hlZHVsZXIuYzoKCSAgdmFyaW91cyBkZWJ1Z2dpbmcgYWRkaXRpb25zIGFuZCBjbGVhbnVwcwoKMjAwNS0wNy0wOCAxNjo0MTo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSAgYWRkaW5nIHRlc3RzIGZvciBlbGVtZW50cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkaW5nIHRlc3RzIGZvciBlbGVtZW50cwoKMjAwNS0wNy0wOCAxNjoxNjoyOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOiBwbHVnIG1vcmUgbGVha3MuICBBIHNpbXBsZSBnc3RfaW5pdCgpIG5vdyBpcyBsZWFrZnJlZSwgeWF5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOiAobG9hZF9mZWF0dXJlKToKCSAgcGx1ZyBtb3JlIGxlYWtzLiAgQSBzaW1wbGUgZ3N0X2luaXQoKSBub3cgaXMgbGVha2ZyZWUsIHlheS4KCjIwMDUtMDctMDggMTY6MDg6MTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOgoJICBwbHVnIGFub3RoZXIgbWVtbGVhayBpbiByZWdpc3RyeSBsb2FkaW5nIC0gSSBoYXZlIE5PIGlkZWEgd2h5IHRoaXMgd2FzIHJldHVybmluZyBhIEdzdFBsdWdpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGx1ZyBhbm90aGVyIG1lbWxlYWsgaW4gcmVnaXN0cnkgbG9hZGluZyAtIEkgaGF2ZSBOTyBpZGVhIHdoeSB0aGlzIHdhcyByZXR1cm5pbmcgYSBHc3RQbHVnaW4KCjIwMDUtMDctMDggMTQ6NTA6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzoKCSAgSSBuZWVkIHRvIGxlYXJuIHRvIHN0b3AgZG9pbmcgdGhpcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgSSBuZWVkIHRvIGxlYXJuIHRvIHN0b3AgZG9pbmcgdGhpcwoKMjAwNS0wNy0wOCAxNDozOTowMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIGFkZCByaWdodCB2YXJpYWJsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHJpZ2h0IHZhcmlhYmxlCgoyMDA1LTA3LTA4IDE0OjM1OjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogdXNlIEdTVF9TRVRfRVJST1JfQ0ZMQUdTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgdXNlIEdTVF9TRVRfRVJST1JfQ0ZMQUdTCgkgICogZG9jcy9mYXEvY3ZzLnhtbDoKCSAgY2hhbmdlIHRvIEVSUk9SX0NGTEFHUwoKMjAwNS0wNy0wOCAxNDowMTozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IG1ha2UgR1NUX0VSUk9SX0NGTEFHUyBvdmVycmlkYWJsZSBhbmQgcmUtZW5hYmxlIFdlcnJvcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIG1ha2UgR1NUX0VSUk9SX0NGTEFHUyBvdmVycmlkYWJsZSBhbmQgcmUtZW5hYmxlIFdlcnJvcgoJICAqIGRvY3MvZmFxL2N2cy54bWw6CgkgIGFkZCBhIG5vdGUgYWJvdXQgZXJyb3IgQ0ZMQUdTCgkgICogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc3JjLnNnbWw6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgY29tbWVudCBvdXQgc29tZSB1bnVzZWQgY29kZQoJICAqIGdzdC9nc3QuYzogKHNwbGl0X2FuZF9pdGVyYXRlKToKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOiAobG9hZF9wYWRfdGVtcGxhdGUpLAoJICAobG9hZF9mZWF0dXJlKToKCSAgcGx1ZyBzb21lIG1lbWxlYWtzCgoyMDA1LTA3LTA3IDE1OjA3OjIxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgbWFrZSBsaWJzIHVzZSBzYW1lIGd0ay1kb2MubWFrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtYWtlIGxpYnMgdXNlIHNhbWUgZ3RrLWRvYy5tYWsKCjIwMDUtMDctMDcgMTQ6MTY6NDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIGZhY3RvciBvdXQgZ3RrLWRvYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmFjdG9yIG91dCBndGstZG9jCgoyMDA1LTA3LTA3IDE0OjAxOjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3NjaGVkdWxlcnMvdGhyZWFkc2NoZWR1bGVyLmM6IFVubG9jayB0aGUgU1RSRUFNX0xPQ0sgY29tcGxldGVseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3NjaGVkdWxlcnMvdGhyZWFkc2NoZWR1bGVyLmM6IChnc3RfdGhyZWFkX3NjaGVkdWxlcl9mdW5jKSwKCSAgKGdzdF90aHJlYWRfc2NoZWR1bGVyX2Rpc3Bvc2UpOgoJICBVbmxvY2sgdGhlIFNUUkVBTV9MT0NLIGNvbXBsZXRlbHkuCgoyMDA1LTA3LTA3IDEzOjE0OjQwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGV4YW1wbGVzL3B3Zy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcHdnLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNS0wNy0wNyAxMzoxMjo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9pbnN0YW50aWF0ZS8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMDctMDcgMTE6NTk6MzcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSogY2hlY2svZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGFkZGluZyBhbiBlbGVtZW50IHRlc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGluZyBhbiBlbGVtZW50IHRlc3QKCjIwMDUtMDctMDcgMTE6MDk6MzIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RidXMuYyAoZ3N0X2J1c19oYXZlX3BlbmRpbmcpOiBSZW1vdmUgaW50ZW5zZWx5IGlycml0YXRpbmcgZGVidWcgbWVzc2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMDcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGJ1cy5jIChnc3RfYnVzX2hhdmVfcGVuZGluZyk6IFJlbW92ZSBpbnRlbnNlbHkgaXJyaXRhdGluZwoJICBkZWJ1ZyBtZXNzYWdlLgoKMjAwNS0wNy0wNyAxMDowMzowNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgYW5vdGhlciBkb2MgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhbm90aGVyIGRvYyBmaXgKCjIwMDUtMDctMDcgMDk6MTA6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9tYW51YWwvQlVJTEQ6CgkqIGRvY3MvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtb3JlIG1hY29zeCBtYWRuZXNzIGZpeGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSBtYWNvc3ggbWFkbmVzcyBmaXhpbmcKCjIwMDUtMDctMDcgMDg6NDM6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cXVlcnkuKjogUmVtb3ZlIG9sZCB0eXBlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVlcnkuYzoKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgUmVtb3ZlIG9sZCB0eXBlcwoKMjAwNS0wNy0wNyAwODoxNjo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogQWxsb3cgc3ViY2xhc3NlcyB0byBpbXBsZW1lbnQgdGhlaXIgb3duIG5lZ290aWF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X25lZ290aWF0ZSksIChnc3RfYmFzZV9zcmNfbmVnb3RpYXRlKToKCSAgQWxsb3cgc3ViY2xhc3NlcyB0byBpbXBsZW1lbnQgdGhlaXIgb3duIG5lZ290aWF0aW9uLgoKMjAwNS0wNy0wNiAxNzoxNzo1OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IFVwZGF0ZSBkZXNpZ24gbm90ZXMgdG8gcmVmbGVjdCB0aGUgbW92ZW1lbnQgb2YgcmVzcG9uc2liaWxpdHkgZm9yIGJ1cyBoYW5kbGluZyBmcm9tIEdzdFBpcGVsaW5lIHRvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YmluLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdHBpcGVsaW5lLnR4dDoKCSAgVXBkYXRlIGRlc2lnbiBub3RlcyB0byByZWZsZWN0IHRoZSBtb3ZlbWVudCBvZgoJICByZXNwb25zaWJpbGl0eSBmb3IgYnVzIGhhbmRsaW5nIGZyb20gR3N0UGlwZWxpbmUgdG8KCSAgR3N0QmluCgoyMDA1LTA3LTA2IDE2OjQ1OjQ1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogUmVtb3ZlIHVubmVjZXNzYXJ5IHF1ZXVlMi8zLzQgZXhhbXBsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgUmVtb3ZlIHVubmVjZXNzYXJ5IHF1ZXVlMi8zLzQgZXhhbXBsZXMuCgoyMDA1LTA3LTA2IDE2OjIyOjQ3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGV4YW1wbGVzLzogVXBkYXRlIGEgY291cGxlIG9mIHRoZSBleGFtcGxlcyB0byB3b3JrIGFnYWluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgKiBleGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzogKGV2ZW50X2xvb3ApLCAobWFpbik6CgkgICogZXhhbXBsZXMvcXVldWUvcXVldWUuYzogKGV2ZW50X2xvb3ApLCAobWFpbik6CgkgICogZXhhbXBsZXMvcXVldWUyL3F1ZXVlMi5jOiAobWFpbik6CgkgIFVwZGF0ZSBhIGNvdXBsZSBvZiB0aGUgZXhhbXBsZXMgdG8gd29yayBhZ2Fpbi4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2VtcHR5KSwKCSAgKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCksIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9ldmVudCk6CgkgIFNwZWxsaW5nIGNvcnJlY3Rpb25zIGFuZCBleHRyYSBkZWJ1Zy4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9pbml0KSwgKGlzX2VvcyksCgkgIChnc3RfYmluX2FkZF9mdW5jKSwgKGJpbl9lbGVtZW50X2lzX3NpbmspLCAoZ3N0X2Jpbl9nZXRfc3RhdGUpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X2Jpbl9kaXNwb3NlKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdGJpbi5oOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2luaXQpLCAoZ3N0X3BpcGVsaW5lX2Rpc3Bvc2UpLAoJICAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmg6CgkgIE1vdmUgdGhlIGJ1cyBoYW5kbGVyIGZvciBjaGlsZHJlbiB0byB0aGUgR3N0QmluLCBhbmQgY3JlYXRlIGEKCSAgc2VwYXJhdGUgYnVzIGZvciByZWNlaXZpbmcgbWVzc2FnZXMgZnJvbSBjaGlsZHJlbiB0byB0aGUgb25lIHRoZQoJICBidXMgc2VuZHMgJ3Vwd2FyZHMnIG9uLgoKMjAwNS0wNy0wNiAxMzoyNToyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlLzogTWFrZSBiYXNlc3JjIG5lZ290aWF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvUkVBRE1FOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZW1wdHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfbG9vcCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfaW5pdCksIChnc3RfYmFzZV9zcmNfc2V0Y2FwcyksCgkgIChnc3RfYmFzZV9zcmNfZ2V0Y2FwcyksIChnc3RfYmFzZV9zcmNfbG9vcCksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZWdvdGlhdGUpLCAoZ3N0X2Jhc2Vfc3JjX25lZ290aWF0ZSksCgkgIChnc3RfYmFzZV9zcmNfc3RhcnQpLCAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBNYWtlIGJhc2VzcmMgbmVnb3RpYXRlLgoJICBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgcHJlcm9sbCBmYWlscyBpbiBiYXNlc2luay4KCSAgVXBkYXRlIFJFQURNRS4KCjIwMDUtMDctMDYgMTM6MjA6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEltcGxlbWVudCB0aGUgZml4YXRlIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2ZpeGF0ZV9jYXBzKSwgKGdzdF9wYWRfYWNjZXB0X2NhcHMpOgoJICBJbXBsZW1lbnQgdGhlIGZpeGF0ZSBmdW5jdGlvbi4KCSAgQ2xlYW4gdXAgYWNjZXB0Y2Fwcy4KCjIwMDUtMDctMDYgMTI6MjQ6NTAgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvcHdnLzogUmVtb3ZlIG5ldmVyLXdyaXR0ZW4gZmlsdGVyLWZhY3RvcnkgY2hhcHRlcjsgSSdsbCBhZGQgdGhlIHZhcmlvdXMgYmFzZSBjbGFzc2VzIHRvIHBhcnQgNCAoIm90aGVyIGVsZW1lbnQgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1maWx0ZXJmYWN0b3J5LnhtbDoKCSAgKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBSZW1vdmUgbmV2ZXItd3JpdHRlbiBmaWx0ZXItZmFjdG9yeSBjaGFwdGVyOyBJJ2xsIGFkZCB0aGUgdmFyaW91cwoJICBiYXNlIGNsYXNzZXMgdG8gcGFydCA0ICgib3RoZXIgZWxlbWVudCB0eXBlcyIpIGxhdGVyIG9uLgoKMjAwNS0wNy0wNiAxMjoxODowMCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgQWRkIGEgY2hhcHRlciBvbiBjYXBzIG5lZ290aWF0aW9uLCBzaW1wbGlmeSB0aGUgb3JpZ2luYWwgY29kZSBzYW1wbGVzIGEgYml0IHcuci50LiBjYXBzIG5lZ290aWF0aW9uLCBhZGQgbGluayB0byB0aGUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXBhZHMueG1sOgoJICAqIGRvY3MvcHdnL3B3Zy54bWw6CgkgICogZXhhbXBsZXMvcHdnL01ha2VmaWxlLmFtOgoJICBBZGQgYSBjaGFwdGVyIG9uIGNhcHMgbmVnb3RpYXRpb24sIHNpbXBsaWZ5IHRoZSBvcmlnaW5hbCBjb2RlCgkgIHNhbXBsZXMgYSBiaXQgdy5yLnQuIGNhcHMgbmVnb3RpYXRpb24sIGFkZCBsaW5rIHRvIHRoZSBhZHZhbmNlZAoJICBzZWN0aW9uLiBBZGQgYSBidW5jaCBvZiBleGFtcGxlcyBzaG93aW5nIGRpZmZlcmVudCB1c2UgY2FzZXMgb2YKCSAgZGlmZmVyZW50IHR5cGVzIG9mIGNhcHMgbmVnb3RpYXRpb24uIFVwc3RyZWFtIHJlbmVnb3RpYXRpb24gaXNuJ3QKCSAgZnVsbHkgZG9jdW1lbnRlZCB5ZXQgc2luY2Ugbm9ib2R5IGtub3dzIGhvdyB0aGF0IHdvcmtzLgoKMjAwNS0wNy0wNiAxMTozNDowNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wucGMuaW46CgkgIHBjIGZpbGUgY2xlYW51cHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBjIGZpbGUgY2xlYW51cHMKCjIwMDUtMDctMDYgMTE6MzE6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgaWYgcGFkIGhhcyBubyBwYXJlbnQsIHJldHVybiBOVUxMIGFzIGxpc3Qgb2YgaW50ZXJuYWwgbGlua3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHBhZC5jOgoJICAqIGNoZWNrL2dzdGNoZWNrLmM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfaW50ZXJuYWxfbGlua3NfZGVmYXVsdCk6CgkgIGlmIHBhZCBoYXMgbm8gcGFyZW50LCByZXR1cm4gTlVMTCBhcyBsaXN0IG9mIGludGVybmFsIGxpbmtzCgoyMDA1LTA3LTA1IDE2OjM4OjEzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvOiBzL0JBU0VTUkMvQkFTRV9TUkMvZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMDUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICAqIGdzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBzL0JBU0VTUkMvQkFTRV9TUkMvZy4KCjIwMDUtMDctMDUgMTU6Mjg6MTggKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgdXBkYXRlIHNwZWMgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHNwZWMgZmlsZQoKMjAwNS0wNy0wNSAxMjoxNzoyNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBNYWtlZmlsZS5hbToKCSAgYmV0dGVyIHJlcG9ydCBnZW5yYXRpb24gdGFyZ2V0IChsY292IG5lZWRzIGEgcGF0Y2gpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiZXR0ZXIgcmVwb3J0IGdlbnJhdGlvbiB0YXJnZXQgKGxjb3YgbmVlZHMgYSBwYXRjaCkKCjIwMDUtMDctMDUgMTA6NTg6MjEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9lbGVtZW50cywgdGVzdHN1aXRlOiBOdWxsIGlmIHdlIGdvdCBpdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0wNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZWxlbWVudHMsIHRlc3RzdWl0ZTogTnVsbCBpZiB3ZSBnb3QgaXQuLi4KCjIwMDUtMDctMDUgMTA6MjA6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBQb3J0ZWQgZGF0YXByb3RvbCB0byAwLjkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiAoZ3N0X2RwX3ZhbGlkYXRlX3BhY2tldCk6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJICAqIHBrZ2NvbmZpZy9NYWtlZmlsZS5hbToKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC11bmluc3RhbGxlZC5wYy5pbjoKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC5wYy5pbjoKCSAgUG9ydGVkIGRhdGFwcm90b2wgdG8gMC45LgoJICBBZGRlZCBwa2djb25maWcgZmlsZXMuCgoyMDA1LTA3LTA1IDA5OjM1OjIyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKTogRGVmYXVsdCB0byByZXR1cm5pbmcgVFJVRSBmb3IgdGhlIGNhc2Ugd2hlbiB0cmFuZm9ybV9jYXBzIHIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMDUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2Fwcyk6CgkgIERlZmF1bHQgdG8gcmV0dXJuaW5nIFRSVUUgZm9yIHRoZSBjYXNlIHdoZW4gdHJhbmZvcm1fY2FwcyByZXR1cm5zCgkgIGEgZml4ZWQgY2FwcywgbGlrZSBmb3IgaWRlbnRpdHkgb3Igdm9sdW1lLgoKMjAwNS0wNy0wNSAwODo0Nzo0MCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svOiBBcHBsaWNhdGlvbiBtZXNzYWdlIEFQSSBjaGFuZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTA1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3RidXMuYyAocG91bmRfYnVzX3dpdGhfbWVzc2FnZXMpOgoJICAqIGNoZWNrL2dzdC9nc3RtZXNzYWdlLmMgKFNUQVJUX1RFU1QpOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmMgKGdvdF9oYW5kb2ZmKTogQXBwbGljYXRpb24KCSAgbWVzc2FnZSBBUEkgY2hhbmdlLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpOiBNb3JlCgkgIGxvZ2ljIHdlYWtzIGhlcmU6IGFsd2F5cyBydW4gdHJhbnNmb3JtX2NhcHMsIHRyeWluZyBwYXNzdGhyb3VnaAoJICBvcGVyYXRpb24gb25seSBpZiB0aGUgb3JpZ2luYWwgY2FwcyBpbnRlcnNlY3RzIHdpdGggdGhlIHRyYW5zZm9ybS4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfbGlua19jaGVja19jb21wYXRpYmxlX3VubG9ja2VkKTogRGVidWcKCSAgc291cmNlIGFuZCBzaW5rIGNhcHMuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0Y2Fwcyk6CgkgIEludGVyc2VjdCB0aGUgcGVlciBjYXBzIHdpdGggdGhlIHBhZCB0ZW1wbGF0ZSBiZWZvcmUgZ29pbmcgaW50bwoJICB0cmFuc2Zvcm1fY2Fwcy4KCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2Fwcyk6IE1vcmUgZGVidWdnaW5nLgoJICAqIGdzdC9nc3RtZXNzYWdlLmggKGdzdF9tZXNzYWdlX25ld19hcHBsaWNhdGlvbik6IFRha2UgYSBHc3RPYmplY3QKCSAgc3JjIGFyZ3VtZW50LgoKMjAwNS0wNy0wNCAxNTowODozMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3R1dGlscy4qOiBub3cgcmV0dXJucyB0aGUgc2lnbmFsIGlkIGZvciBiZXR0ZXIgd3JhcHBpbmcgaW4gYmluZGluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAoZ3N0X3BhZF9hZGRfKl9wcm9iZSk6IG5vdyByZXR1cm5zIHRoZSBzaWduYWwgaWQgZm9yIGJldHRlciB3cmFwcGluZwoJICBpbiBiaW5kaW5ncy4KCjIwMDUtMDctMDQgMDk6MjI6NTEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RwYWQuYzogT25seSBzZXQgZXhwbGljaXQgY2FwcyBvbiBwYWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0wNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0cGFkLmM6IE9ubHkgc2V0IGV4cGxpY2l0IGNhcHMgb24gcGFkcy4KCjIwMDUtMDctMDEgMTY6NDY6NTkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzL25ldHdvcmstY2xvY2suc2NtOiBDb21tZW50YXJ5IHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMDEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvbmV0d29yay1jbG9jay5zY206IENvbW1lbnRhcnkgdXBkYXRlLgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jIChQUk9QX0RVUExJQ0FURSk6IEdvbmUgZGFkZHkgZ29uZS4KCSAgRGlkbid0IHJlYWxseSBtYWtlIHNlbnNlLCBub3QgaW1wbGVtZW50YWJsZSB3aXRoIGJhc2V0cmFuc2Zvcm0sCgkgIGV0Yy4KCSAgKGdzdF9pZGVudGl0eV90cmFuc2Zvcm0pOiBVbnJlZiBpbmJ1ZiB2aWEgbWFrZV93cml0YWJsZS4gRmVlYmxlCgkgIGF0dGVtcHQgYXQgaW1wbGVtZW50aW5nIHRoZSBzeW5jIHByb3BlcnR5LCBuZWVkcyBhbiB1bmxvY2sgbWV0aG9kLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKToKCSAgTmV3IGZ1bmMsIGJ5IGRlZmF1bHQgcmV0dXJucyB0aGUgc2FtZSBjYXBzICh0aGUgaWRlbnRpdHkKCSAgdHJhbnNmb3JtYXRpb24pLgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldGNhcHMpOiBVc2VzIHRyYW5zZm9ybV9jYXBzIHRvIHJldHVybgoJICBzb21ldGhpbmcgc2Vuc2libGUuCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2Fwcyk6IENvbXBsaWNhdGVkIGxvZ2ljIHRvIGdldCBjYXBzIG9uCgkgIGJvdGggcGFkcywgZXZlbiBpZiB0aGV5IGFyZSBkaWZmZXJlbnQsIGFuZCB0byBjYWxsIHNldF9jYXBzIG9uY2UKCSAgZm9yIGV2ZXJ5IHRpbWUgYm90aCBwYWRzIGdldCB0aGVpciBjYXBzIHNldC4KCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKTogR2l2ZSB0aGUgcmVmIHRvIHRoZSB0cmFuc2Zvcm0KCSAgZnVuY3Rpb24uIEFsbG93cyBpbi1wbGFjZSBtb2RpZmljYXRpb24gb2YgdGhlIGJ1ZmZlci4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmggKHRyYW5zZm9ybV9jYXBzKTogTmV3IGNsYXNzIG1ldGhvZC4KCSAgR2l2ZW4gY2FwcyBvbiBvbmUgc2lkZSwgd2hhdCBjYW4gSSBkbyBvbiB0aGUgb3RoZXIuCgkgIChzZXRfY2Fwcyk6IFRha2UgdHdvIGNhcHMsIG9uZSBmb3IgZWFjaCBzaWRlIG9mIHRoZSBlbGVtZW50LgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfZml4YXRlX2NhcHMpOiBDaGFuZ2UgcHJvdG90eXBlIHRvIG1vZGlmeQoJICBjYXBzIGluIHBsYWNlLiBUaGlzIGlzIHNhZmUgYmVjYXVzZSB3ZSBjYW4gY2hlY2sgdGhlIG11dGFiaWxpdHkgb2YKCSAgdGhlIGNhcHMsIGFuZCBhIGdvb2QgaWRlYSBiZWNhdXNlIGZpeGF0ZSBmdW5jdGlvbnMgYXJlIGp1c3QgY2FsbGVkCgkgIGFzIGEgbWF0dGVyIG9mIGxhc3QgcmVzb3J0LiAoTm90IGFjdHVhbGx5IGltcGxlbWVudGVkLikKCSAgKGdzdF9wYWRfc2V0X2NhcHMpOiBJZiB0aGUgY2FwcyB3ZSdyZSBzZXR0aW5nIGlzIGFjdHVhbGx5IHRoZSBzYW1lCgkgIGFzIHRoZSBleGlzdGluZyBwYWQgY2FwcywganVzdCB1cGRhdGUgdGhlIHBvaW50ZXIgd2l0aG91dCBjYWxsaW5nCgkgIHNldGNhcHMuIEFzc2VydCB0aGF0IGNhcHMgaXMgZWl0aGVyIE5VTEwgb3IgZml4ZWQsIGFzIHBlciB0aGUKCSAgZG9jcy4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogVXBkYXRlIGZvciBmaXhhdGUgY2hhbmdlcy4KCjIwMDUtMDctMDEgMTQ6MzY6MTIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBQdXQgdGhlIG1pbmlfb2JqZWN0IGludG8gR1ZhbHVlIGFzIGEgbWluaV9vYmplY3QsIG5vdCBhIGdwb2ludGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0wMiAgSmFuIFNjaG1pZHQgIDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZW1pdF9oYXZlX2RhdGFfc2lnbmFsKToKCSAgUHV0IHRoZSBtaW5pX29iamVjdCBpbnRvIEdWYWx1ZSBhcyBhIG1pbmlfb2JqZWN0LAoJICBub3QgYSBncG9pbnRlci4KCjIwMDUtMDctMDEgMTQ6MjA6MTkgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGV4YW1wbGVzL3B3Zy9NYWtlZmlsZS5hbTogRml4IGJ1aWxkYm90IGFnYWluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleGFtcGxlcy9wd2cvTWFrZWZpbGUuYW06CgkgIEZpeCBidWlsZGJvdCBhZ2Fpbi4KCjIwMDUtMDctMDEgMTM6MDE6NDcgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvcHdnL2J1aWxkaW5nLXRlc3RhcHAueG1sOiBBZGQgZXh0cmEgY2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXRlc3RhcHAueG1sOgoJICBBZGQgZXh0cmEgY2hlY2suCgkgICogZXhhbXBsZXMvcHdnL01ha2VmaWxlLmFtOgoJICBGaXggYnVpbGRib3QuCgoyMDA1LTA3LTAxIDEyOjQzOjAzICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBFbmFibGUgYnVpbGRpbmcgdGhlIFBXRyBleGFtcGxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGV4YW1wbGVzL01ha2VmaWxlLmFtOgoJICAqIGV4YW1wbGVzL3B3Zy9NYWtlZmlsZS5hbToKCSAgKiBleGFtcGxlcy9wd2cvZXh0cmFjdC5wbDoKCSAgRW5hYmxlIGJ1aWxkaW5nIHRoZSBQV0cgZXhhbXBsZXMuCgkgICogZG9jcy9wd2cvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6CgkgIEFkZCBVUkkgaW50ZXJmYWNlIHN0dWIuCgkgICogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICAqIGRvY3MvcHdnL290aGVyLWF1dG9wbHVnZ2VyLnhtbDoKCSAgKiBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBBZGQgcG9ydGluZyBndWlkZSAobW9zdGx5IHN0dWJzKSwgcmVtb3ZlIGF1dG9wbHVnZ2luZyAoc2VlIEFETSkuCgkgICogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1jaGFpbmZuLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1wYWRzLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1wcm9wcy54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctc3RhdGUueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXRlc3RhcHAueG1sOgoJICBVcGRhdGUgdGhlIGJ1aWxkaW5nLSoueG1sIHBhcnRzIGZvciAwLjkgY2hhbmdlcy4gQWxsIGV4YW1wbGVzCgkgIGNvZGUgYmxvY2tzIGNvbXBpbGUgaW4gZXhhbXBsZXMvcHdnLyouCgoyMDA1LTA2LTMwIDEyOjMyOjE3ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL21hbnVhbC86IEZpeCBwbGF5YmluL2RlY29kZWJpbiBleGFtcGxlcywgdXBkYXRlIGRvY3MgYSBiaXQsIG1lbnRpb24gYnVzIGluc3RlYWQgb2Ygc2lnbmFscyBpbiB2YXJpb3VzIHBsYWNlcywgbWUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1jaGVja2xpc3QueG1sOgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6CgkgIEZpeCBwbGF5YmluL2RlY29kZWJpbiBleGFtcGxlcywgdXBkYXRlIGRvY3MgYSBiaXQsIG1lbnRpb24gYnVzCgkgIGluc3RlYWQgb2Ygc2lnbmFscyBpbiB2YXJpb3VzIHBsYWNlcywgbWVudGlvbiBrbXBsYXllciBhbmQKCSAga2FmZmVpbmUgc2luY2UgdGhleSBoYXZlIGEgd29ya2luZyBHU3RyZWFtZXIgYmFja2VuZCBpbiB0aGUgS0RFCgkgIHNlY3Rpb24uCgoyMDA1LTA2LTMwIDEyOjI2OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIGRlYnVnIGRpc2FibGUgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRlYnVnIGRpc2FibGUgZml4ZXMKCjIwMDUtMDYtMzAgMTI6MTg6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGRlZCBDSEFOR0VTLTAuOSBkb2MsIHVwZGF0ZWQgc3RhdHVzIG9mIG90aGVyIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIENIQU5HRVMtMC45OgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWdob3N0cGFkcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtcHVzaC1wdWxsLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1xdWVyeS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXF1ZXJ5LnR4dDoKCSAgQWRkZWQgQ0hBTkdFUy0wLjkgZG9jLCB1cGRhdGVkIHN0YXR1cyBvZiBvdGhlciBkb2NzLgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBSZW1vdmUgImhtbSIgbWFjcm8KCjIwMDUtMDYtMzAgMTI6MTQ6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay4qOiBTb21lIHR3ZWFrcywgb25seSBFT1MgYW5kIGEgYnVmZmVyIGNvbXBsZXRlIGEgcHJlcm9sbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9lbXB0eSksCgkgIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZmx1c2gpLCAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBTb21lIHR3ZWFrcywgb25seSBFT1MgYW5kIGEgYnVmZmVyIGNvbXBsZXRlIGEgcHJlcm9sbC4KCjIwMDUtMDYtMzAgMTE6Mzk6MzQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jIChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1c2gpOiBQcm94eSBhY3RpdmF0ZV9wdXNoIGRvd24gdG8gdGhlIGludGVybmFsIHBhZCBhcyB3ZWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0zMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYyAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdXNoKTogUHJveHkKCSAgYWN0aXZhdGVfcHVzaCBkb3duIHRvIHRoZSBpbnRlcm5hbCBwYWQgYXMgd2VsbC4KCjIwMDUtMDYtMzAgMTA6NTk6MzQgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3R0YWdpbnRlcmZhY2UuYzogU29tZSBkb2N1bWVudGF0aW9uIGZpeGVzICgjMzA3Mzk0IGFuZCAjMzA3Mzk3KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIGJ5OiAgUm9uYWxkIFMuIEJ1bHRqZSAgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCSAgKiBnc3QvZ3N0dGFnaW50ZXJmYWNlLmM6CgkgIFNvbWUgZG9jdW1lbnRhdGlvbiBmaXhlcyAoIzMwNzM5NCBhbmQgIzMwNzM5NykuCgoyMDA1LTA2LTMwIDEwOjIzOjE2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiBjaGVjay9zdGF0ZXMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNS0wNi0zMCAxMDoyMjoxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGdvIGJhY2sgdG8gdGhlIGNpcmN1bGFyIGRlcGVuZGVuY3kgZm9yIG5vdwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZ28gYmFjayB0byB0aGUgY2lyY3VsYXIgZGVwZW5kZW5jeSBmb3Igbm93CgoyMDA1LTA2LTMwIDEwOjEwOjAwICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuYzogRml4IG1lbWxlYWsgKCMzMDkxMjUpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2aWV3ZWQgYnk6ICBSb25hbGQgUy4gQnVsdGplICA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9saXN0KToKCSAgRml4IG1lbWxlYWsgKCMzMDkxMjUpLgoKMjAwNS0wNi0zMCAwOTo1OToyNyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6IEZpeCBmYWtlc3JjIGV4YW1wbGUgdG8gY29tcGlsZTsgZG9lc24ndCB3b3JrLCBidWcgc29tZXdoZXJlLi4uPwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgRml4IGZha2VzcmMgZXhhbXBsZSB0byBjb21waWxlOyBkb2Vzbid0IHdvcmssIGJ1ZyBzb21ld2hlcmUuLi4/CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICBBZGQgcmVmZXJlbmNlIGZvciBmaWx0ZXJlZCBjYXBzIHRvIGFib3ZlIGNoYXB0ZXIuCgoyMDA1LTA2LTMwIDA5OjQxOjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBMYW1lIGF0dGVtcHQgYXQgbWFraW5nIHRoZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gYSBiaXQgbW9yZSByZWFkYWJsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoY2xlYXJfcXVldWUpLCAocmVtb3ZlX2FsbF9mcm9tX3F1ZXVlKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKToKCSAgTGFtZSBhdHRlbXB0IGF0IG1ha2luZyB0aGUgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIGEgYml0CgkgIG1vcmUgcmVhZGFibGUuCgoyMDA1LTA2LTMwIDA5OjMzOjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBTb21lIG1vcmUgdHdlZWtzIGFuZCBhZGRpdGlvbnMgdG8gdGhlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcHJlcm9sbC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICBTb21lIG1vcmUgdHdlZWtzIGFuZCBhZGRpdGlvbnMgdG8gdGhlIGRvY3MuCgoyMDA1LTA2LTMwIDA5OjIzOjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogUmVtb3ZlZCBhdG9taWMgb3BlcmF0aW9ucywgdXNlIGV4aXN0aW5nIExPQ0suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKF9nc3RfZG9fcGFzc19kYXRhX2FjY3VtdWxhdG9yKSwKCSAgKGRlZmF1bHRfaGF2ZV9kYXRhKSwgKGdzdF9wYWRfY2xhc3NfaW5pdCksIChnc3RfcGFkX2luaXQpLAoJICAoZ3N0X3BhZF9lbWl0X2hhdmVfZGF0YV9zaWduYWwpLCAoZ3N0X3BhZF9jaGFpbiksIChnc3RfcGFkX3B1c2gpLAoJICAoZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKSwgKGdzdF9wYWRfZ2V0X3JhbmdlKSwKCSAgKGdzdF9wYWRfcHVsbF9yYW5nZSksIChnc3RfcGFkX3B1c2hfZXZlbnQpLCAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfYXRvbWljX2ludF9zZXQpLCAoZ3N0X3BhZF9hZGRfZGF0YV9wcm9iZSksCgkgIChnc3RfcGFkX2FkZF9ldmVudF9wcm9iZSksIChnc3RfcGFkX2FkZF9idWZmZXJfcHJvYmUpLAoJICAoZ3N0X3BhZF9yZW1vdmVfZGF0YV9wcm9iZSksIChnc3RfcGFkX3JlbW92ZV9ldmVudF9wcm9iZSksCgkgIChnc3RfcGFkX3JlbW92ZV9idWZmZXJfcHJvYmUpOgoJICBSZW1vdmVkIGF0b21pYyBvcGVyYXRpb25zLCB1c2UgZXhpc3RpbmcgTE9DSy4KCSAgTW92ZSBleGNlcHRpb24gaGFuZGxpbmcgb3V0IG9mIG1haW4gY29kZSBwYXRoLgoKMjAwNS0wNi0zMCAwNzo0NTo1NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGRyb3AgY2lyY3VsYXIgcmVmZXJlbmNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkcm9wIGNpcmN1bGFyIHJlZmVyZW5jZQoKMjAwNS0wNi0yOSAxOToyMDowNyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiBGaXggYWNjdW11bGF0b3IsIGFkZCBkZWZhdWx0IHZhbHVlIGJ5IHVzaW5nIF9lbWl0digpIGluc3RlYWQgb2YgX2VtaXQoKSBmb3Igc2lnbmFsIGVtaXNzaW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChfZ3N0X2RvX3Bhc3NfZGF0YV9hY2N1bXVsYXRvciksCgkgIChzaWxseV9yZXR1cm5fdHJ1ZV9mdW5jdGlvbiksIChnc3RfcGFkX2NsYXNzX2luaXQpLAoJICAoZ3N0X3BhZF9lbWl0X2hhdmVfZGF0YV9zaWduYWwpLCAoZ3N0X3BhZF9jaGFpbiksIChnc3RfcGFkX3B1c2gpLAoJICAoZ3N0X3BhZF9nZXRfcmFuZ2UpLCAoZ3N0X3BhZF9wdWxsX3JhbmdlKSwgKGdzdF9wYWRfcHVzaF9ldmVudCksCgkgIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBGaXggYWNjdW11bGF0b3IsIGFkZCBkZWZhdWx0IHZhbHVlIGJ5IHVzaW5nIF9lbWl0digpIGluc3RlYWQKCSAgb2YgX2VtaXQoKSBmb3Igc2lnbmFsIGVtaXNzaW9uLgoKMjAwNS0wNi0yOSAxNjo1Nzo1OSArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgQWRkIHByb2JlIGV4YW1wbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICAqIGV4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgQWRkIHByb2JlIGV4YW1wbGUuCgkgICogZ3N0L2dzdHBhZC5jOiAoX2dzdF9kb19wYXNzX2RhdGFfYWNjdW11bGF0b3IpOgoJICBNYWtlIHdvcmsgKD8/KS4KCjIwMDUtMDYtMjkgMTY6NDU6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgZml4IGZvciBwcGMsIGhvcGVmdWxseQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGZvciBwcGMsIGhvcGVmdWxseQoKMjAwNS0wNi0yOSAxNjoxMToxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiBTaW1wbGlmeSBjb2RlIHNvIHRoYXQgd2UgZG9uJ3QgaGF2ZSB0byBoYW5kbGUgc2hvcnQgd3JpdGVzIGFuZCByZXR1cm4gR1NUX0ZMT1dfRVJST1IgaWYgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlc2lua19yZW5kZXIpOgoJICBTaW1wbGlmeSBjb2RlIHNvIHRoYXQgd2UgZG9uJ3QgaGF2ZSB0byBoYW5kbGUgc2hvcnQKCSAgd3JpdGVzIGFuZCByZXR1cm4gR1NUX0ZMT1dfRVJST1IgaWYgYW4gZXJyb3Igb2NjdXJlZC4KCjIwMDUtMDYtMjkgMTY6MDU6MjYgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6IFJlbW92ZSBwcm9iZXMgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgUmVtb3ZlIHByb2JlcyBtb3JlLgoKMjAwNS0wNi0yOSAxNTo1MToyNSArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgUmVtb3ZlIG9sZCBwcm9iZXMsIGFkZCBuZXcgZy1zaWduYWwtYmFzZWQgcHJvYmVzIGFuZCBzb21lIHV0aWxpdHkgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3Rwcm9iZS5zZ21sOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0cGFkLmM6IChfZ3N0X2RvX3Bhc3NfZGF0YV9hY2N1bXVsYXRvciksCgkgIChnc3RfcGFkX2NsYXNzX2luaXQpLCAoZ3N0X3BhZF9pbml0KSwgKGdzdF9wYWRfY2hhaW4pLAoJICAoZ3N0X3BhZF9wdXNoKSwgKGdzdF9wYWRfZ2V0X3JhbmdlKSwgKGdzdF9wYWRfcHVsbF9yYW5nZSksCgkgIChnc3RfcGFkX3B1c2hfZXZlbnQpLCAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfcGFkX2FkZF9kYXRhX3Byb2JlKSwKCSAgKGdzdF9wYWRfYWRkX2V2ZW50X3Byb2JlKSwgKGdzdF9wYWRfYWRkX2J1ZmZlcl9wcm9iZSksCgkgIChnc3RfcGFkX3JlbW92ZV9kYXRhX3Byb2JlKSwgKGdzdF9wYWRfcmVtb3ZlX2V2ZW50X3Byb2JlKSwKCSAgKGdzdF9wYWRfcmVtb3ZlX2J1ZmZlcl9wcm9iZSk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIFJlbW92ZSBvbGQgcHJvYmVzLCBhZGQgbmV3IGctc2lnbmFsLWJhc2VkIHByb2JlcyBhbmQgc29tZSB1dGlsaXR5CgkgIGZ1bmN0aW9ucy4KCjIwMDUtMDYtMjkgMTU6MTc6MjUgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvOiBNb3ZlZCBnc3RfZWxlbWVudF9mYWN0b3J5X2Nhbl9bc2lua3xzcmNdX2NhcHMoKSB0byBnc3R1dGlscyBhbmQgYWRkZWQgdGhlIGRlZmluaXRpb24gdG8gdGhlIGhlYWRlciBmaWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgTW92ZWQgZ3N0X2VsZW1lbnRfZmFjdG9yeV9jYW5fW3Npbmt8c3JjXV9jYXBzKCkgdG8gZ3N0dXRpbHMgYW5kIGFkZGVkCgkgIHRoZSBkZWZpbml0aW9uIHRvIHRoZSBoZWFkZXIgZmlsZS4KCjIwMDUtMDYtMjkgMTQ6NTY6MDggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGRvY3MvZ3N0L01ha2VmaWxlLmFtIChzY2FuLWJ1aWxkLnN0YW1wKTogVG90YWxseSBvbmx5IGNoZWNrIHBsdWdpbnMgZnJvbSB0aGUgc291cmNlIGRpcmVjdG9yeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW0gKHNjYW4tYnVpbGQuc3RhbXApOiBUb3RhbGx5IG9ubHkgY2hlY2sKCSAgcGx1Z2lucyBmcm9tIHRoZSBzb3VyY2UgZGlyZWN0b3J5LgoKMjAwNS0wNi0yOSAxNDo1Mjo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L3RtcGwvOiBTb21lIGZpeGluZ3MgZm9yIGJsYW50ZW50bHkgd3JvbmcgdGV4dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RidWZmZXIuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGNsb2NrLnNnbWw6CgkgIFNvbWUgZml4aW5ncyBmb3IgYmxhbnRlbnRseSB3cm9uZyB0ZXh0LgoKMjAwNS0wNi0yOSAxMjo0MDozOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0LmM6CgkgIGxvZ2ljIHdhcyByZXZlcnNlZCwgZHVoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBsb2dpYyB3YXMgcmV2ZXJzZWQsIGR1aAoKMjAwNS0wNi0yOSAxMjoyNTowNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBhZGQgQSBHU1RfUExVR0lOX1BBVEhfT05MWSBlbnYgdmFyOyBpZiBpdCBpcyBzZXQsIGl0IHdpbGwgb25seSBzY2FuIHRoZSBHU1RfUExVR0lOX1BBVEggbG9jYXRpb25zLCBhbmQgbm90IGFkZCBzeXN0ZW0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5jOiAoYWRkX3BhdGhfZnVuYyksIChpbml0X3ByZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfYWRkX3BhdGgpOgoJICBhZGQgQSBHU1RfUExVR0lOX1BBVEhfT05MWSBlbnYgdmFyOyBpZiBpdCBpcyBzZXQsIGl0IHdpbGwKCSAgb25seSBzY2FuIHRoZSBHU1RfUExVR0lOX1BBVEggbG9jYXRpb25zLCBhbmQgbm90IGFkZAoJICBzeXN0ZW0gbG9jYXRpb25zCgoyMDA1LTA2LTI5IDEyOjIzOjM1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGRvYyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jIGZpeGVzCgoyMDA1LTA2LTI5IDEyOjAyOjEzICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOiBGaXggYXV0b3BsdWdnaW5nIGV4YW1wbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkgIEZpeCBhdXRvcGx1Z2dpbmcgZXhhbXBsZS4KCjIwMDUtMDYtMjkgMTE6NDY6MTYgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvbWFudWFsLzogVHJ5IHRvIGdldCBhdXRvcGx1Z2dpbmcgd29ya2luZywgZml4IHR5cGUgZGV0ZWN0aW9uLiBGaXggdGV4dCBpbiBoZWxsby13b3JsZCBpbWFnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9taW1lLXdvcmxkLmZpZzoKCSAgVHJ5IHRvIGdldCBhdXRvcGx1Z2dpbmcgd29ya2luZywgZml4IHR5cGUgZGV0ZWN0aW9uLiBGaXggdGV4dAoJICBpbiBoZWxsby13b3JsZCBpbWFnZS4KCjIwMDUtMDYtMjkgMTE6MTA6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBTbWFsbCBkZWJ1ZyBsaW5lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgU21hbGwgZGVidWcgbGluZS4KCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgbWFwIFNJR05BTCBhbmQgQlJPQURDQVNUIHRvIHRoZSByaWdodCBmdW5jdGlvbi4KCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIFJlbW92ZSByZWR1bmRhbnQgYnJhY2VzLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2NhcHMpOgoJICBEb24ndCBjYWxsIHNldGNhcHMgZnVuY3Rpb24gd2hlbiByZXNldGluZyBjYXBzIHRvIE5VTEwuCgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2Rpc3Bvc2UpLAoJICAoZ3N0X3N5c3RlbV9jbG9ja19hc3luY190aHJlYWQpLCAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X2FzeW5jKSwKCSAgKGdzdF9zeXN0ZW1fY2xvY2tfaWRfdW5zY2hlZHVsZSk6CgkgIFVzZSBCUk9BRENBU1QgYXMgdGhpcyBpcyB3aGF0IHdlIGRvLgoKMjAwNS0wNi0yOSAxMDoyNDowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFdlIGFyZSBhY3R1YWxseSBwcmVyb2xsaW5nIGJlZm9yZSBjb21taXRpbmcgdGhlIHN0YXRlIGNoYW5nZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCk6CgkgIFdlIGFyZSBhY3R1YWxseSBwcmVyb2xsaW5nIGJlZm9yZSBjb21taXRpbmcgdGhlIHN0YXRlCgkgIGNoYW5nZS4KCjIwMDUtMDYtMjkgMDk6MjU6NTEgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvbWFudWFsLzogVXBkYXRlICh1bnRpbCB0aHJlYWRzL3NjaGVkdWxpbmcpIEFwcGxpY2F0aW9uIERldmVsb3BtZW50IE1hbnVhbDsgcmVtb3ZlIEdzdFRocmVhZCwgYWRkIEdzdEJ1cywgYWRkIHNpbS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1jbG9ja3MueG1sOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWludGVyZmFjZXMueG1sOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLW1ldGFkYXRhLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1wb3NpdGlvbi54bWw6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtc2NoZWR1bGVycy54bWw6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtdGhyZWFkcy54bWw6CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWJpbnMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6CgkgICogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSAgKiBkb2NzL21hbnVhbC90aHJlYWQuZmlnOgoJICBVcGRhdGUgKHVudGlsIHRocmVhZHMvc2NoZWR1bGluZykgQXBwbGljYXRpb24gRGV2ZWxvcG1lbnQgTWFudWFsOwoJICByZW1vdmUgR3N0VGhyZWFkLCBhZGQgR3N0QnVzLCBhZGQgc2ltcGxlIHBvcnRpbmcgY2hlY2tsaXN0LCBhZGQKCSAgZG9jdW1lbnRhdGlvbiBmb3IgdGFnIHdyaXRpbmcsIGNsb2NrcywgbWFrZSBhbGwgZXhhbXBsZXMgdW50aWwgdGhpcwoJICBwYXJ0IGNvbXBpbGUgYW5kIHJ1bi4KCSAgKiBleGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIFVwZGF0ZSBmcm9tIGNoYW5nZXMgdG8gQXBwbGljYXRpb24gRGV2ZWxvcG1lbnQgTWFudWFsOyBhZGQgYnVzCgkgIGV4YW1wbGUsIHJlbW92ZSB0aHJlYWQgZXhhbXBsZS4KCjIwMDUtMDYtMjggMTk6NDU6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVzLmM6IEFkZCBkZWJ1Z2dpbmcgbWVzc2FnZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfcG9zdCksIChnc3RfYnVzX2hhdmVfcGVuZGluZyksCgkgIChnc3RfYnVzX3NldF9mbHVzaGluZyksIChnc3RfYnVzX3BvcCksIChnc3RfYnVzX3BlZWspLAoJICAoZ3N0X2J1c19zb3VyY2VfZGlzcGF0Y2gpOgoJICBBZGQgZGVidWdnaW5nIG1lc3NhZ2VzLgoJICBNYWtlIGludGVybmFsIG1ldGhvZHMgc3RhdGljLgoJICBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlIGJ1cyBpcyBmbHVzaGVkIGluIHRoZSBoYW5kbGVyLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfYnVzKToKCSAgRml4IHJlZmNvdW50IGluIF9nZXRfYnVzKCk7CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9waXBlbGluZV9nZXRfY2xvY2tfZnVuYyk6CgkgIENsb2NrIHJlZmNvdW50aW5nIGZpeGVzLgoJICBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgcHJlcm9sbCB0aW1lZCBvdXQgbW9yZSBncmFjZWZ1bGx5LgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19kaXNwb3NlKToKCSAgQ2xlYW4gdXAgdGhlIGludGVybmFsIHRocmVhZCBpbiBkaXNwb3NlLiBUaGlzIGlzIG5lZWRlZAoJICBmb3Igc3ViY2xhc3NlcyB0aGF0IGFjdHVhbGx5IGdldCBkaXNwb3NlZC4KCSAgKiBnc3Qvc2NoZWR1bGVycy90aHJlYWRzY2hlZHVsZXIuYzoKCSAgKGdzdF90aHJlYWRfc2NoZWR1bGVyX2NsYXNzX2luaXQpLCAoZ3N0X3RocmVhZF9zY2hlZHVsZXJfZnVuYyksCgkgIChnc3RfdGhyZWFkX3NjaGVkdWxlcl9kaXNwb3NlKToKCSAgRnJlZSB0aHJlYWQgcG9vbCBpbiBkaXNwb3NlLgoKMjAwNS0wNi0yOCAxNjo1NzoyNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvbmV0d29yay1jbG9jay11dGlscy5zY20gKGRlYnVnLCBwcmludC1ldmVudCk6IE5ldyB1dGlscy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvbmV0d29yay1jbG9jay11dGlscy5zY20gKGRlYnVnLCBwcmludC1ldmVudCk6IE5ldyB1dGlscy4KCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbSAoKmRlYnVnKiwgKndpdGgtZ3JhcGgqKTogTmV3IHBhcmFtZXRlcnMuCgkgICgqcGFja2V0LWxvc3MqKTogVW5pZmllZCBsb3NzIHByb2JhYmlsaXR5LgoJICAobmV0d29yay10aW1lKTogUmVwb3J0IG91dC1vZi1iYW5kIGV2ZW50cy4KCSAgKiB0ZXN0cy9wbG90LWRhdGE6IEFkZCBzdXBwb3J0IGZvciBvdXQtb2YtYmFuZCBldmVudHMuIEhhY2sgaXQKCSAgaW50byB0aGlzIHNjcmlwdCBpbnN0ZWFkIG9mIHBhc3NpbmcgaXQgZG93biB0aGUgcGlwZTsgc2hvdWxkIGZpeAoJICB0aGlzIGxhdGVyLgoKMjAwNS0wNi0yOCAxNTozNjozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0LzogRG9jcyBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkgIERvY3MgZml4ZXMuCgoyMDA1LTA2LTI4IDEzOjQwOjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IENvcnJlY3RseSBwcm94eSB0aGUgY2hlY2tfcHVsbF9yYW5nZSBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2RvX2J1ZmZlcmFsbG9jKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fY2hlY2tnZXRyYW5nZSksIChnc3RfcHJveHlfcGFkX2RvX2FjY2VwdGNhcHMpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19maXhhdGVjYXBzKToKCSAgQ29ycmVjdGx5IHByb3h5IHRoZSBjaGVja19wdWxsX3JhbmdlIGZ1bmN0aW9uLgoKMjAwNS0wNi0yOCAxMjo0NToyMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgZml4IGZha2UgZWxlbWVudHMgdG9vCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZmFrZSBlbGVtZW50cyB0b28KCjIwMDUtMDYtMjggMTI6MDE6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGRpZCBzL2Jhc2VzKHJjL2luaylfL2Jhc2VfcyhyYy9pbmspXy87IHdpbSB3YW50cyB0byByZW1vdmUgYmFzZSBjb21wbGV0ZWx5LCBidXQgdGhhdCdzIGZvciBsYXRlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGlkIHMvYmFzZXMocmMvaW5rKV8vYmFzZV9zKHJjL2luaylfLzsgd2ltIHdhbnRzIHRvIHJlbW92ZSBiYXNlIGNvbXBsZXRlbHksIGJ1dCB0aGF0J3MgZm9yIGxhdGVyCgoyMDA1LTA2LTI4IDExOjQ4OjU3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbTogUmVtb3ZlZCBuZWVkIGZvciBzbGliLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbTogUmVtb3ZlZCBuZWVkIGZvciBzbGliLgoKMjAwNS0wNi0yOCAxMTozNjo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFRoZSBkZXByZWNhdGVkIHBhZCBsb29wIGZ1bmN0aW9uIGlzIHJlbW92ZWQgbm93LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX3NldF9wYWRfZnVuY3Rpb25zKSwKCSAgKGdzdF9iYXNlc2lua19wcmVyb2xsX3F1ZXVlX2ZsdXNoKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19zZXRfZGF0YWZsb3dfZnVuY3MpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfdXBkYXRlX3BhZF9mdW5jdGlvbnMpOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9kb19idWZmZXJhbGxvYyksCgkgIChnc3RfcHJveHlfcGFkX2RvX2FjY2VwdGNhcHMpLCAoZ3N0X3Byb3h5X3BhZF9kb19maXhhdGVjYXBzKSwKCSAgKGdzdF9wcm94eV9wYWRfc2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2luaXQpOgoJICBUaGUgZGVwcmVjYXRlZCBwYWQgbG9vcCBmdW5jdGlvbiBpcyByZW1vdmVkIG5vdy4KCjIwMDUtMDYtMjggMTE6MzM6MjIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzL25ldHdvcmstY2xvY2suc2NtICgqdGltZW91dCosICpzZW5kLWxvc3MqLCAqcmVjdi1sb3NzKik6IE5ldyBwYXJhbWV0ZXJzLCBzaW11bGF0ZSBuZXR3b3JrIHBhY2tldCBsb3NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbSAoKnRpbWVvdXQqLCAqc2VuZC1sb3NzKiwgKnJlY3YtbG9zcyopOgoJICBOZXcgcGFyYW1ldGVycywgc2ltdWxhdGUgbmV0d29yayBwYWNrZXQgbG9zcy4KCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLXV0aWxzLnNjbTogSW5pdGlhbGl6ZSB0aGUgUk5HLgoKMjAwNS0wNi0yOCAxMTowMjoxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEZsdXNoaW5nIHRoZSBwcmVyb2xsIHF1ZXVlIGFsd2F5cyBuZWVkcyB0byB1bmxvY2sgdGhlIHdhaXRlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCksCgkgIChnc3RfYmFzZXNpbmtfZXZlbnQpLCAoZ3N0X2Jhc2VzaW5rX2RlYWN0aXZhdGUpOgoJICBGbHVzaGluZyB0aGUgcHJlcm9sbCBxdWV1ZSBhbHdheXMgbmVlZHMgdG8gdW5sb2NrIHRoZSB3YWl0ZXJzLgoKMjAwNS0wNi0yOCAxMDo0NTo0OCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBXaGVlbiBhIHNlZWsgd2FzIHN1Y2Nlc3NmdWwgb24gYSBwaXBlbGluZSwgc2V0IHRoZSBzdHJlYW1fdGltZSB0byB0aGUgc2VlayBvZmZzZXQgaW4gb3JkZXIgdG8gaGF2ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9zZW5kX2V2ZW50KToKCSAgV2hlZW4gYSBzZWVrIHdhcyBzdWNjZXNzZnVsIG9uIGEgcGlwZWxpbmUsIHNldCB0aGUgc3RyZWFtX3RpbWUgdG8gdGhlCgkgIHNlZWsgb2Zmc2V0IGluIG9yZGVyIHRvIGhhdmUgYSBzeW5jaHJvbml6ZWQgc3RyZWFtX3RpbWUuCgoyMDA1LTA2LTI4IDEwOjM3OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IENhbGwgd3JhcHBlciBmdW5jdGlvbiBpbnN0ZWFkIG9mIGp1c3QgY2FsbGluZyB0aGUgZnVuY3Rpb24gcG9pbnRlcnMuIFRoaXMgdGFrZXMgY2FyZSBvZiBhbnkgbG9ja2luLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9kb19idWZmZXJhbGxvYyksCgkgIChnc3RfcHJveHlfcGFkX2RvX2dldHJhbmdlKSwgKGdzdF9wcm94eV9wYWRfZG9fY2hlY2tnZXRyYW5nZSksCgkgIChnc3RfcHJveHlfcGFkX2RvX2dldGNhcHMpLCAoZ3N0X3Byb3h5X3BhZF9kb19hY2NlcHRjYXBzKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fZml4YXRlY2Fwcyk6CgkgIENhbGwgd3JhcHBlciBmdW5jdGlvbiBpbnN0ZWFkIG9mIGp1c3QgY2FsbGluZyB0aGUgZnVuY3Rpb24KCSAgcG9pbnRlcnMuIFRoaXMgdGFrZXMgY2FyZSBvZiBhbnkgbG9ja2luZyBhbmQgd2hhdG1vcmUuCgoyMDA1LTA2LTI4IDEwOjI4OjMxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC4qOiBDT05ORUNURUQgLT4gTElOS0VELgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FsbG9jX2J1ZmZlciksIChnc3RfcGFkX3B1c2gpLAoJICAoZ3N0X3BhZF9wdWxsX3JhbmdlKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIENPTk5FQ1RFRCAtPiBMSU5LRUQuCgoyMDA1LTA2LTI4IDA5OjU5OjAxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICAqLmM6IERvbid0IGNhc3QgdG8gR1NUX09CSkVDVCB3aGVuIHJlZmZpbmcgb3IgdW5yZWZmaW5nLiBMYXJnZSBzb3VyY2UtbXVuZ2luZyBjb21taXQhISEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogKi5jOiBEb24ndCBjYXN0IHRvIEdTVF9PQkpFQ1Qgd2hlbiByZWZmaW5nIG9yIHVucmVmZmluZy4gTGFyZ2UKCSAgc291cmNlLW11bmdpbmcgY29tbWl0ISEhCgoyMDA1LTA2LTI4IDA5OjE3OjE0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0b2JqZWN0LnNnbWw6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJICBnc3QvZ3N0b2JqZWN0LmMgKGdzdF9vYmplY3RfdW5yZWYsIGdzdF9vYmplY3RfcmVmKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0b2JqZWN0LmMgKGdzdF9vYmplY3RfdW5yZWYsIGdzdF9vYmplY3RfcmVmKQoJICAoZ3N0X29iamVjdF9zaW5rKTogVGFrZSBncG9pbnRlciBhcmd1bWVudHMsIG5vdCBHc3RPYmplY3QgLS0KCSAgYXZvaWRzIGNhc3RzLiBMaWtlIEdMaWIuCgoyMDA1LTA2LTI4IDA4OjQxOjQzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYyAoZ3N0X3Byb3h5X3BhZF9kb19hY3RpdmF0ZSk6IERvbid0IHByb3h5IGFjdGl2YXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYyAoZ3N0X3Byb3h5X3BhZF9kb19hY3RpdmF0ZSk6IERvbid0IHByb3h5CgkgIGFjdGl2YXRlLgoKMjAwNS0wNi0yNyAxODozOTo0MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBzaHV0IHVwIGdjYzMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNodXQgdXAgZ2NjMwoKMjAwNS0wNi0yNyAxODozNTowNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYyAoZ3N0X3R5cGVfZmluZF9oZWxwZXIpOiBVbnJlZiBhbnkgcmVtYWluaW5nIGJ1ZmZlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYyAoZ3N0X3R5cGVfZmluZF9oZWxwZXIpOiBVbnJlZiBhbnkKCSAgcmVtYWluaW5nIGJ1ZmZlci4KCSAgKiBnc3QvZ3N0dHJhY2UuYyAoZ3N0X2FsbG9jX3RyYWNlX2xpc3Rfc29ydGVkKTogTmV3IGhlbHBlciwKCSAgcmV0dXJucyBhIHNvcnRlZCBjb3B5IG9mIHRoZSB0cmFjZSBsaXN0LgoJICAoZ3N0X2FsbG9jX3RyYWNlX3ByaW50X2xpdmUpOiBOZXcgQVBJLCBvbmx5IHByaW50cyB0cmFjZXMgd2l0aAoJICBsaXZlIG9iamVjdHMuIFNvcnQgdGhlIGxpc3QuCgkgIChnc3RfYWxsb2NfdHJhY2VfcHJpbnRfYWxsKTogU29ydCB0aGUgbGlzdC4KCSAgKGdzdF9hbGxvY190cmFjZV9wcmludCk6IEFsaWduIGNvbHVtbnMuCgkgICogZ3N0L2VsZW1lbnRzL2dzdHR0eXBlZmluZGVsZW1lbnQuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiBBZGFwdCBmb3IgcGFkIGFjdGl2YXRpb24gY2hhbmdlcy4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYyAoZ3N0X3BpcGVsaW5lX2luaXQpOiBVbnJlZiBhZnRlciBwYXJlbnRpbmcKCSAgc2NoZWQuCgkgIChnc3RfcGlwZWxpbmVfZGlzcG9zZSk6IERyb3AgcmVmIG9uIHNjaGVkLgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9pbml0KTogU2V0IHRoZSBkZWZhdWx0IGFjdGl2YXRlIGZ1bmMuCgkgIChnc3RfcGFkX2FjdGl2YXRlX2RlZmF1bHQpOiBQdXNoIG1vZGUgYnkgZGVmYXVsdC4KCSAgKHByZV9hY3RpdmF0ZV9zd2l0Y2gsIHBvc3RfYWN0aXZhdGVfc3dpdGNoKTogTmV3IHN0dWJzLCB0aGluZ3MgdG8KCSAgZG8gYmVmb3JlIGFuZCBhZnRlciBzd2l0Y2hpbmcgYWN0aXZhdGlvbiBtb2RlcyBvbiBwYWRzLgoJICAoZ3N0X3BhZF9zZXRfYWN0aXZlKTogVGFrZSBhIGJvb2xlYW4gYW5kIG5vdCBhIG1vZGUsIGRpc3BhdGNoIHRvCgkgIHRoZSBwYWQncyBhY3RpdmF0ZSBmdW5jdGlvbiB0byBjaG9vc2Ugd2hpY2ggbW9kZSB0byBhY3RpdmF0ZS4KCSAgU2hvcnRjdXQgb24gZGVhY3RpdmF0aW9uIGFuZCBjYWxsIHRoZSByaWdodCBmdW5jdGlvbiBkaXJlY3RseS4KCSAgKGdzdF9wYWRfYWN0aXZhdGVfcHVsbCk6IE5ldyBBUEksIChkZSlhY3RpdmF0ZXMgYSBwYWQgaW4gcHVsbAoJICBtb2RlLgoJICAoZ3N0X3BhZF9hY3RpdmF0ZV9wdXNoKTogTmV3IEFQSSwgc2FtZSBmb3IgcHVzaCBtb2RlLgoJICAoZ3N0X3BhZF9zZXRfYWN0aXZhdGVfZnVuY3Rpb24pCgkgIChnc3RfcGFkX3NldF9hY3RpdmF0ZXB1bGxfZnVuY3Rpb24pCgkgIChnc3RfcGFkX3NldF9hY3RpdmF0ZXB1c2hfZnVuY3Rpb24pOiBTZXR0ZXJzIGZvciBuZXcgQVBJLgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmMgKGdzdF9taW5pX29iamVjdF9uZXcsIGdzdF9taW5pX29iamVjdF9mcmVlKToKCSAgVHJhY2UgYWxsIG1pbmlvYmplY3RzLgoJICAoZ3N0X21pbmlfb2JqZWN0X21ha2Vfd3JpdGFibGUpOiBVbnJlZiB0aGUgYXJnIGlmIHdlIGNvcHksIGxpa2UKCSAgZ3N0X2NhcHNfbWFrZV93cml0YWJsZS4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5jIChfZ3N0X21lc3NhZ2VfaW5pdGlhbGl6ZSk6IE5vIHRyYWNlIGluaXQuCgkgICogZ3N0L2dzdGdob3N0cGFkLmMgKGdzdF9wcm94eV9wYWRfZG9fYWN0aXZhdGUpCgkgIChnc3RfcHJveHlfcGFkX2RvX2FjdGl2YXRlcHVsbCwgZ3N0X3Byb3h5X3BhZF9kb19hY3RpdmF0ZXB1c2gpOgoJICBBZGFwdCBmb3IgbmV3IHBhZCBBUEkuCgkgICogZ3N0L2dzdGV2ZW50LmMgKF9nc3RfZXZlbnRfaW5pdGlhbGl6ZSk6IERvbid0IGluaXRpYWxpemUgdHJhY2UuCgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9pdGVyYXRlX3NyY19wYWRzKQoJICAoZ3N0X2VsZW1lbnRfaXRlcmF0ZV9zaW5rX3BhZHMpOiBOZXcgQVBJIGZ1bmN0aW9ucy4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChpdGVyYXRvcl9mb2xkX3dpdGhfcmVzeW5jKTogTmV3IHV0aWxpdHksCgkgIHNob3VsZCBmb2xkIGludG8gZ3N0aXRlcmF0b3IuYyBpbiBzb21lIGZvcm0uCgkgIChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKTogU2ltcGxpZmllZCB2aWEgdXNlIG9mIGZvbGQgYW5kCgkgIGRlbGVnYXRpb24gb2YgZGVjaXNpb25zIHRvIGdzdHBhZC0+YWN0aXZhdGUuCgkgICogZ3N0L2dzdGJ1cy5jIChnc3RfYnVzX3NvdXJjZV9maW5hbGl6ZSk6IFNldCB0aGUgYnVzIHRvIE5VTEwsCgkgIGhlbHAgaW4gZGVidWdnaW5nLgoJICAqIGdzdC9nc3RidWZmZXIuYyAoX2dzdF9idWZmZXJfaW5pdGlhbGl6ZSk6IFJlZiB0aGUgYnVmZmVyIHR5cGUKCSAgY2xhc3Mgb25jZSBpbiBpbml0LCBsaWtlIGdzdG1lc3NhZ2UuIERpZG4ndCBydW4gaW50byB0aGlzIGlzc3VlCgkgIGJ1dCBpdCBzZWVtcyBjb3JyZWN0LiBEb24ndCBpbml0aWFsaXplIGEgdHJhY2UsIGdzdG1pbmlvYmplY3QgZG9lcwoJICB0aGF0LgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmMgKHRlc3Rfc3RvcF9mcm9tX2FwcCk6IE5ldwoJICB0ZXN0LCBydW5zIGZha2VzcmMgISBmYWtlc2luaywgc3RvcHBpbmcgb24gOjpoYW5kb2ZmIHZpYSBhIG1lc3NhZ2UKCSAgdG8gdGhlIGJ1cy4KCSAgKGFzc2VydF9saXZlX2NvdW50KTogTmV3IHV0aWwgZnVuY3Rpb24sIHVzZXMgYWxsb2MgdHJhY2VzIHRvIGNoZWNrCgkgIGNsZWFudXAuCgkgICogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmMgKHRlc3RfZ2hvc3RfcGFkcyk6IE1vcmUgcmVmY291bnQgY2hlY2tzLgoJICBUbyBiZSBtb2RpZmllZCB3aGVuIHVubGluayBkcm9wcyB0aGUgaW50ZXJuYWwgcGFkLgoKMjAwNS0wNi0yNyAxODoxMToyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogQ2xlYW51cCB0aGUgZ2V0X3N0YXRlKCkgZnVuY3Rpb24gYSBsaXR0bGUsIG1ha2Ugc3VyZSBpdCBpdGVyYXRlcyB0aGUgc2FtZSBzZXQgb2YgZWxlbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZ2V0X3N0YXRlKSwgKGdzdF9iaW5faXRlcmF0ZV9zdGF0ZV9vcmRlciksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgIENsZWFudXAgdGhlIGdldF9zdGF0ZSgpIGZ1bmN0aW9uIGEgbGl0dGxlLCBtYWtlIHN1cmUgaXQKCSAgaXRlcmF0ZXMgdGhlIHNhbWUgc2V0IG9mIGVsZW1lbnRzLgoJICBBZGRlZCBzdHViIGl0ZXJhdGVfc3RhdGVfb3JkZXIoKS4KCjIwMDUtMDYtMjcgMTQ6NDA6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXRyYW5zZm9ybS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpdGVyYXRvci5zZ21sOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYWRkaW5nIGJhc2V0cmFuc2Zvcm0gYW5kIGl0ZXJhdG9yIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGluZyBiYXNldHJhbnNmb3JtIGFuZCBpdGVyYXRvciBkb2NzCgoyMDA1LTA2LTI3IDEzOjI1OjQ0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWFjdGl2YXRpb24udHh0OiBOb3RlcyBvbiBob3cgYWN0aXZhdGlvbiBzaG91bGQgd29yayAtLSBub3QgcXVpdGUgaW1wbGVtZW50ZWQgeWV0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWFjdGl2YXRpb24udHh0OiBOb3RlcyBvbiBob3cgYWN0aXZhdGlvbiBzaG91bGQKCSAgd29yayAtLSBub3QgcXVpdGUgaW1wbGVtZW50ZWQgeWV0LgoKMjAwNS0wNi0yNyAwODo1NDoxNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cmVnaXN0cnkuc2dtbDoKCSAgcmVtb3ZlIHN0dWZmIHRoYXQgaXNuJ3QgdGhlcmUgYW55bW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHN0dWZmIHRoYXQgaXNuJ3QgdGhlcmUgYW55bW9yZQoKMjAwNS0wNi0yNyAwODoxNjo1MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiaW4uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZXMuc2dtbDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIG1vcmUgZG9jIGFuZCB3aGl0ZXNwYWNlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIGRvYyBhbmQgd2hpdGVzcGFjZSBmaXhlcwoKMjAwNS0wNi0yNSAxOTo1MzowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBBdCBsZWFzdCBnZXQgdGhlIGNoYWluIGZ1bmN0aW9uIGNvcnJlY3QsIG5lZWRzIG1vcmUgZml4aW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZG9fY2hhaW4pOgoJICBBdCBsZWFzdCBnZXQgdGhlIGNoYWluIGZ1bmN0aW9uIGNvcnJlY3QsIG5lZWRzIG1vcmUKCSAgZml4aW5nLgoKMjAwNS0wNi0yNSAxOTozNzo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFJpZ2h0LCB0d28gcHJvYmxlbXMgaGVyZTogZ2hvc3RwYWRzIGRvbid0IHRha2UgbG9ja3MgYW5kIGdsaWIgX3JlY19tdXRleF9sb2NrX2Z1bGwoKSB3aXRoIGRlcHRoPT0wIHN0aWxsIGxvY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX3ByZXJvbGxfcXVldWVfZW1wdHkpLAoJICAoZ3N0X2Jhc2VzaW5rX2hhbmRsZV9vYmplY3QpLCAoZ3N0X2Jhc2VzaW5rX2V2ZW50KSwKCSAgKGdzdF9iYXNlc2lua19kb19zeW5jKSwgKGdzdF9iYXNlc2lua19oYW5kbGVfZXZlbnQpLAoJICAoZ3N0X2Jhc2VzaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdHRhc2suaDoKCSAgUmlnaHQsIHR3byBwcm9ibGVtcyBoZXJlOiBnaG9zdHBhZHMgZG9uJ3QgdGFrZSBsb2NrcyBhbmQKCSAgZ2xpYiBfcmVjX211dGV4X2xvY2tfZnVsbCgpIHdpdGggZGVwdGg9PTAgc3RpbGwgbG9ja3MuCgkgIENhdGNoIGlsbGVnYWwgbG9ja2luZyBhbmQgZ193YXJuIHRoZW0uCgoyMDA1LTA2LTI1IDE5OjE0OjUxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svc3RhdGVzL3NpbmtzLmM6IEhhdmUgdG8gY2hlY2sgZm9yIGNvbXBsZXRpb24gbm93Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOiAoU1RBUlRfVEVTVCksIChnc3Rfb2JqZWN0X3N1aXRlKToKCSAgSGF2ZSB0byBjaGVjayBmb3IgY29tcGxldGlvbiBub3cuLi4KCjIwMDUtMDYtMjUgMTk6MDk6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBVbmxvY2sgU1RSRUFNX0xPQ0sgd2hhdGV2ZXIgdGhlIHJlY3Vyc2lvbiB3YXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfcHJlcm9sbF9xdWV1ZV9lbXB0eSksCgkgIChnc3RfYmFzZXNpbmtfaGFuZGxlX29iamVjdCksIChnc3RfYmFzZXNpbmtfZXZlbnQpLAoJICAoZ3N0X2Jhc2VzaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2VzaW5rX2hhbmRsZV9ldmVudCksCgkgIChnc3RfYmFzZXNpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIFVubG9jayBTVFJFQU1fTE9DSyB3aGF0ZXZlciB0aGUgcmVjdXJzaW9uIHdhcy4KCjIwMDUtMDYtMjUgMTc6NTQ6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBSZXdvcmtlZCB0aGUgYmFzZSBzaW5rLCBoYW5kbGUgZXZlbnQgYW5kIGJ1ZmZlciBzZXJpYWxpc2F0aW9uIGNvcnJlY3RseSBhbmQgcmVtb3ZlZCBwb3NzaWJsZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2VzaW5rX3ByZXJvbGxfcXVldWVfZW1wdHkpLAoJICAoZ3N0X2Jhc2VzaW5rX3ByZXJvbGxfcXVldWVfZmx1c2gpLCAoZ3N0X2Jhc2VzaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2VzaW5rX2V2ZW50KSwgKGdzdF9iYXNlc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlc2lua19oYW5kbGVfZXZlbnQpLCAoZ3N0X2Jhc2VzaW5rX2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X2Jhc2VzaW5rX2NoYWluKSwgKGdzdF9iYXNlc2lua19sb29wKSwgKGdzdF9iYXNlc2lua19hY3RpdmF0ZSksCgkgIChnc3RfYmFzZXNpbmtfY2hhbmdlX3N0YXRlKToKCSAgUmV3b3JrZWQgdGhlIGJhc2Ugc2luaywgaGFuZGxlIGV2ZW50IGFuZCBidWZmZXIgc2VyaWFsaXNhdGlvbgoJICBjb3JyZWN0bHkgYW5kIHJlbW92ZWQgcG9zc2libGUgZGVhZGxvY2suCgkgIEhhbmRsZSBFT1MgY29ycmVjdGx5LgoKMjAwNS0wNi0yNSAxNzo1MToxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFsbG93IGVsZW1lbnRzIHRvIHBvc3QgRU9TIGluIHRoZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoaXNfZW9zKSwgKHBpcGVsaW5lX2J1c19oYW5kbGVyKSwKCSAgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGNoZWNrX2ludHIpLCAoZXZlbnRfbG9vcCksIChtYWluKToKCSAgQWxsb3cgZWxlbWVudHMgdG8gcG9zdCBFT1MgaW4gdGhlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbi4KCSAgRml4IHVwIC1sYXVuY2gsIG1ha2UgaXQgZXhpdCB0aGUgcG9sbCBsb29wIHdoZW4gdGhlCgkgIHBpcGVsaW5lIGFjdHVhbGx5IGNoYW5nZWQgc3RhdGUuCgkgIEZpeCB1cCB3YXJuaW5nIHBhcnNpbmcgaW4gLWxhdW5jaC4KCjIwMDUtMDYtMjUgMTc6NDQ6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6IENvcmUgdGFrZXMgU1RSRUFNX0xPQ0sgZm9yIHVzIG5vdy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9jaGFpbiksIChnc3RfdGVlX2xvb3ApLAoJICAoZ3N0X3RlZV9zaW5rX2FjdGl2YXRlKToKCSAgQ29yZSB0YWtlcyBTVFJFQU1fTE9DSyBmb3IgdXMgbm93LgoKMjAwNS0wNi0yNSAxNzo0MjoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEtlZXAgdHJhY2sgb2YgY3VycmVudCB0YXJnZXQgc3RhdGUgd2hpbGUgcGVyZm9ybWluZyBhIHN0YXRlIGNoYW5nZSBzbyB0aGF0IHN1YmNsYXNzZXMgY2FuIGRvIHNvbWV0aGluZyBpbnRlcmVzdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9wYXJzZV9lcnJvciksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV93YXJuaW5nKToKCSAgS2VlcCB0cmFjayBvZiBjdXJyZW50IHRhcmdldCBzdGF0ZSB3aGlsZSBwZXJmb3JtaW5nIGEgc3RhdGUKCSAgY2hhbmdlIHNvIHRoYXQgc3ViY2xhc3NlcyBjYW4gZG8gc29tZXRoaW5nIGludGVyZXN0aW5nLgoJICBGaXggcGFyc2luZyBvZiB3YXJuaW5nL2Vycm9yIG1lc3NhZ2VzIHdoZW4gR0Vycm9yIGlzIE5VTEwuCgoyMDA1LTA2LTI0IDE4OjE2OjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiaW4uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rjb21wYXQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWxlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbGVzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleC5zZ21sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1xdW90ZXMueG1sOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSAgc3RhcnQgcHVsbGluZyBpbiBiYXNlIGNsYXNzZXMgYW5kIGVsZW1lbnRzIGZvciBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzdGFydCBwdWxsaW5nIGluIGJhc2UgY2xhc3NlcyBhbmQgZWxlbWVudHMgZm9yIGRvY3MKCjIwMDUtMDYtMjQgMDc6NDk6NDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgZml4ZWQgbWFrZSBkaXN0Y2hlY2sgd2l0aCBndGstZG9jIDEuMwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4ZWQgbWFrZSBkaXN0Y2hlY2sgd2l0aCBndGstZG9jIDEuMwoKMjAwNS0wNi0yMyAxNzoxMTo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IFdoZW4gdGhlIHN0YXRlIGRpZCBub3QgY2hhbmdlLCBhbHNvIHJlcG9ydCBOT19QUkVST0xMIHdoZW4gaXQgbWF0dGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSksIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBXaGVuIHRoZSBzdGF0ZSBkaWQgbm90IGNoYW5nZSwgYWxzbyByZXBvcnQgTk9fUFJFUk9MTAoJICB3aGVuIGl0IG1hdHRlcnMuCgoyMDA1LTA2LTIzIDE3OjA5OjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogTm8gdW5zYWZlIHRhc2sgcGF1c2luZyBwbGVhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZXZlbnRfZGVmYXVsdCk6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbG9vcCk6CgkgIE5vIHVuc2FmZSB0YXNrIHBhdXNpbmcgcGxlYXNlLgoKMjAwNS0wNi0yMyAxNzowNzowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9zY2hlZHVsZXJzL3RocmVhZHNjaGVkdWxlci5jOiBSZWYgdGhlIHRhc2sgYmVmb3JlIHB1c2hpbmcgaXQgb24gdGhlIHRocmVhZHBvb2wuIFRoaXMgbWFrZXMgc3VyZSB0aGF0IHdlIGhhdmUgYSByZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvc2NoZWR1bGVycy90aHJlYWRzY2hlZHVsZXIuYzoKCSAgKGdzdF90aHJlYWRfc2NoZWR1bGVyX3Rhc2tfc3RhcnQpLAoJICAoZ3N0X3RocmVhZF9zY2hlZHVsZXJfdGFza19wYXVzZSksIChnc3RfdGhyZWFkX3NjaGVkdWxlcl9mdW5jKToKCSAgUmVmIHRoZSB0YXNrIGJlZm9yZSBwdXNoaW5nIGl0IG9uIHRoZSB0aHJlYWRwb29sLiBUaGlzCgkgIG1ha2VzIHN1cmUgdGhhdCB3ZSBoYXZlIGEgcmVmIHdoZW4gdGhlIHRocmVhZGZ1bmN0aW9uIGlzCgkgIGFjdHVhbGx5IGNhbGxlZC4KCjIwMDUtMDYtMjMgMTU6MjY6MDkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2VzcmNfZ2V0X3JhbmdlKTogQ2hlY2sgaWYgdGhlIG9mZnNldCBpcyBncmVhdGVyIHRoYW4gdGhlIGZpbGUncyBzaXplLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlc3JjX2dldF9yYW5nZSk6IENoZWNrIGlmIHRoZQoJICBvZmZzZXQgaXMgZ3JlYXRlciB0aGFuIHRoZSBmaWxlJ3Mgc2l6ZS4KCjIwMDUtMDYtMjMgMTU6MDQ6NDggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RvYmplY3QuaCAoR1NUX0NMQVNTX0xPQ0ssIEdTVF9DTEFTU19UUllMT0NLKSAoR1NUX0NMQVNTX1VOTE9DSywgR1NUX0NMQVNTX0dFVF9MT0NLLCBHc3RPYmplY3RDbGFzcykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdG9iamVjdC5oIChHU1RfQ0xBU1NfTE9DSywgR1NUX0NMQVNTX1RSWUxPQ0spCgkgIChHU1RfQ0xBU1NfVU5MT0NLLCBHU1RfQ0xBU1NfR0VUX0xPQ0ssIEdzdE9iamVjdENsYXNzKQoJICAqIGdzdC9nc3RvYmplY3QuYyAoZ3N0X29iamVjdF9jbGFzc19pbml0KTogTWFrZSB0aGUgY2xhc3MgbG9jawoJICByZWN1cnNpdmUuIFdpbSB3b24ndCBsZXQgbWUgZHJvcCBkZWVwX25vdGlmeS4gRGVjb2RlYmluIHdvcmtzCgkgIGFnYWluLCB3aG9vcGR5IGRvby4KCjIwMDUtMDYtMjMgMTQ6MTg6MTUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jIChvbl9pbnRfbm90aWZ5KTogQ2F0Y2hlcyBub3RpZnk6OmNhcHMgb24gdGhlIGludGVybmFsIHBhZCwgYW5kIGhhY2tzIGFjY29yZGluZ2x5LiBEb2Vzbid0IGRvIGl0IG9uIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYyAob25faW50X25vdGlmeSk6IENhdGNoZXMgbm90aWZ5OjpjYXBzIG9uIHRoZQoJICBpbnRlcm5hbCBwYWQsIGFuZCBoYWNrcyBhY2NvcmRpbmdseS4gRG9lc24ndCBkbyBpdCBvbiB0aGUgdGFyZ2V0CgkgIHBhZCBiZWNhdXNlIHdlIGNoYW5nZSBpdHMgY2Fwcy4gUHJvYmFibHkgY2F0Y2hlcyBhbGwgY2FzZXMgb2YKCSAgaW50ZXJlc3QgdGhvLgoJICAoZ3N0X2dob3N0X3BhZF9zZXRfcHJvcGVydHkpOiBDb25uZWN0IHRvIG5vdGlmeTo6Y2FwcyBhcwoJICBhcHByb3ByaXRhdGUuCgoyMDA1LTA2LTIzIDEzOjIwOjQ0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbSAocGxvdC1zaW11bGF0aW9uKTogUGlwZSBkYXRhIHRvIHRoZSBlbGl0ZSBweXRob24gc2tyaXB0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbSAocGxvdC1zaW11bGF0aW9uKTogUGlwZSBkYXRhIHRvIHRoZQoJICBlbGl0ZSBweXRob24gc2tyaXB0LgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2stdXRpbHMuc2NtIChkZWZpbmUtcGFyYW1ldGVyKTogTmV3IG1hY3JvLAoJICBkZWZpbmVzIGEgcGFyYW1ldGVyIHRoYXQgY2FuIGJlIHNldCB2aWEgdGhlIGNvbW1hbmQgbGluZS4KCSAgKHNldC1wYXJhbWV0ZXIhLCBwYXJzZS1wYXJhbWV0ZXItYXJndW1lbnRzKTogQ29tbWFuZCBsaW5lIGFyZ3MKCSAgcGFyc2VyLgoJICAqIHRlc3RzL3Bsb3QtZGF0YTogU2ltcGxlIG1hdHBsb3RsaWItYmFzZWQgcGxvdHRlciwgdGFrZXMgaW5wdXQgb24KCSAgc3RkaW4uCgoyMDA1LTA2LTIzIDEzOjIwOjAwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXF1b3Rlcy54bWw6CgkgIGFkZCBtb3JlIGltcG9ydGFudCBkb2N1bWVudGF0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbW9yZSBpbXBvcnRhbnQgZG9jdW1lbnRhdGlvbgoKMjAwNS0wNi0yMyAxMTo0MzozOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IERvbid0IHJlc3RhcnQgdHlwZWZpbmRpbmcgb24gYSBkaXNjb250LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yMyAgSmFuIFNjaG1pZHQgIDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpOgoJICBEb24ndCByZXN0YXJ0IHR5cGVmaW5kaW5nIG9uIGEgZGlzY29udC4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgRGVidWcgc3BlbGxpbmcgZml4LgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBBbGxvdyBjaGFuZ2luZyBtb2RlIG9mIGFuIGFjdGl2ZSBwYWQuCgkgIERlYnVnIG91dHB1dCBmaXhlcy4KCSAgKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOiAobG9hZF9mZWF0dXJlKToKCSAgRG9uJ3QgY2FzdCBhIHN0YXRpYyBwYWQgdGVtcGxhdGUgdG8gYSBub3JtYWwgcGFkIHRlbXBsYXRlLgoKMjAwNS0wNi0yMyAxMToyNToyOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICByZW1vdmUgZ3N0X3N0cnRvbGwgY29tcGxldGVseSwgc2luY2UgaXQgZGlkbid0IGFjdHVhbGx5IGRvIGFueXRoaW5nIG1vcmUgdGhhbiB3aGF0IGdfYXNjaWlfc3RydG91bGwgYWxyZWFkeSBkb2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9pbnRfaGVscGVyKToKCSAgcmVtb3ZlIGdzdF9zdHJ0b2xsIGNvbXBsZXRlbHksIHNpbmNlIGl0IGRpZG4ndCBhY3R1YWxseSBkbwoJICBhbnl0aGluZyBtb3JlIHRoYW4gd2hhdCBnX2FzY2lpX3N0cnRvdWxsIGFscmVhZHkgZG9lcy4KCSAgY2hlY2sgZm9yIHJhbmdlIGVycm9ycyB3aGVuIGRlc2VyaWFsaXppbmcKCSAgZG8gYSBjYXN0IGZvciB0aGUgdW5zaWduZWQgY2FzZXM7IGJ1dCBmdXJ0aGVyIGZpeGluZyBuZWVkcwoJICBhIGRlY2lzaW9uIG9uIHdoYXQgdGhlIGludGVycHJldGF0aW9uIG9mICIoaW50KSIgYW5kCgkgIGRlc2VyaWFsaXphdGlvbiBzaG91bGQgYmUgZm9yIHZhbHVlcyB0aGF0IGZhbGwgb3V0c2lkZSB0aGUKCSAgdHlwZSdzIGJvdW5kYXJpZXMgKGllLCByZWZ1c2UsIG9yIGludGVycHJldCBhcyBjYXN0aW5nKQoKMjAwNS0wNi0yMyAxMDozNzowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWxpdmUtc291cmNlLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0dHlwZXMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBBZGRlZCBzdXBwb3J0IGZvciBsaXZlIHNvdXJjZXMgYW5kIG90aGVyIGVsZW1lbnRzIHRoYXQgY2Fubm90IGRvIHByZXJvbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBBZGRlZCBzdXBwb3J0IGZvciBsaXZlIHNvdXJjZXMgYW5kIG90aGVyIGVsZW1lbnRzIHRoYXQKCSAgY2Fubm90IGRvIHByZXJvbGwuCgkgIFVwZGF0ZWQgZGVzaWduIGRvY3MsIGFkZGVkIGxpdmUtc291cmNlIGRlc2lnbiBkb2MuCgkgIEltcGxlbWVudGVkIGxpdmUgc291cmNlIGZ1bmN0aW9uYWxpdHkgaW4gYmFzZXNyYwoJICBGaXggZXJyb3IgY29uZGl0aW9uIGluIF9iaW5fZ2V0X3N0YXRlKCkKCSAgSW1wbGVtZW50IGxpdmUgc291cmNlIGhhbmRsaW5nIGluIC1sYXVuY2guCgkgIEFkZGVkIGNoZWNrIGZvciBsaXZlIHNvdXJjZXMuCgkgIEZpeGVkIGNhc2UgaW4gR3N0QmluIHdoZXJlIGVsZW1lbnRzIHdlcmUgY2hhbmdlZCBzdGF0ZQoJICBtdWx0aXBsZSB0aW1lcy4KCjIwMDUtMDYtMjMgMDk6NTk6MzMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RwYWQuYyAodGVzdF9nZXRfYWxsb3dlZF9jYXBzLCB0ZXN0X3JlZmNvdW50KTogRml4IGJvcmtlbiByZWZjb3VudGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZ3N0L2dzdHBhZC5jICh0ZXN0X2dldF9hbGxvd2VkX2NhcHMsIHRlc3RfcmVmY291bnQpOiBGaXgKCSAgYm9ya2VuIHJlZmNvdW50aW5nLgoKMjAwNS0wNi0yMyAwOTo0MTo0MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBjb21taXQgdGhlIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNvbW1pdCB0aGUgZmlsZQoKMjAwNS0wNi0yMyAwOTo0MTowOSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBhZC5jIChnc3RfcGFkX3NldF9jYXBzKTogUmVtb3ZlIG5lZWRsZXNzIHJlZnMsIGdzdF9jYXBzX3JlcGxhY2UgdGFrZXMgY2FyZSBvZiB0aGlzIGZvciB1cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX3NldF9jYXBzKTogUmVtb3ZlIG5lZWRsZXNzIHJlZnMsCgkgIGdzdF9jYXBzX3JlcGxhY2UgdGFrZXMgY2FyZSBvZiB0aGlzIGZvciB1cy4KCjIwMDUtMDYtMjMgMDk6Mjg6MjcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jIChnc3RfcHJveHlfcGFkX2RvX3NldGNhcHMpOiBDYWxsIHRoZSBmdWxsIGdzdF9wYWRfc2V0X2NhcHMgb24gdGhlIHRhcmdldCwgbm90IGp1c3QgaXRzIHNldGNhcHMoKSBmdS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYyAoZ3N0X3Byb3h5X3BhZF9kb19zZXRjYXBzKTogQ2FsbCB0aGUgZnVsbAoJICBnc3RfcGFkX3NldF9jYXBzIG9uIHRoZSB0YXJnZXQsIG5vdCBqdXN0IGl0cyBzZXRjYXBzKCkgZnVuY3Rpb24uCgoyMDA1LTA2LTIzIDAwOjM5OjI2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy86IEEgbmV0d29yayBjbG9jayBzaW11bGF0b3IuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTIzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2suc2NtOgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2stdXRpbHMuc2NtOiBBIG5ldHdvcmsgY2xvY2sgc2ltdWxhdG9yLgoJICBTb21ldGhpbmcgb2YgYW4gYWxnb3JpdGhtaWMgdGVzdGJlZCBiZWZvcmUgZG9pbmcgc29tZXRoaW5nIGluIEMuCgoyMDA1LTA2LTIyIDE5OjU3OjEyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgbWFrZSBzdXJlIGNhcHNsaXN0LmggZ2V0cyBkaXN0ZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1ha2Ugc3VyZSBjYXBzbGlzdC5oIGdldHMgZGlzdGVkCgoyMDA1LTA2LTIyIDE5OjQ4OjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGZpbGUgZnJvbXN0cmluZy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlsZSBmcm9tc3RyaW5nLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgoyMDA1LTA2LTIyIDE5OjIyOjM0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrLzogY29weSBvdmVyIGZyb20gMC44LCBhbmQgYWRkIHR3byB3aXRoIGJpdG1hc2tzIHNwZWNpZmllZCB3aXRoIChpbnQpIDB4RkYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZ3N0L2NhcHNsaXN0Lmg6CgkgIGNvcHkgb3ZlciBmcm9tIDAuOCwgYW5kIGFkZCB0d28gd2l0aCBiaXRtYXNrcyBzcGVjaWZpZWQgd2l0aAoJICAoaW50KSAweEZGLi4uCgkgICogY2hlY2svZ3N0L2dzdGNhcHMuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X2NhcHNfc3VpdGUpOgoJICBhZGQgdGVzdCB0byBwYXJzZSBldmVyeXRoaW5nIGZyb20gY2Fwc2xpc3QuaAoJICAqIGNoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKSwKCSAgKG1haW4pOgoJICBhZGQgdGVzdCBmb3Igc3RydWN0dXJlIGRlc2VyaWFsaXphdGlvbgoJICAqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICBhZGQgdGVzdHMgZm9yIGRlc2VyaWFsaXphdGlvbiBvZiBzdHJpbmdzIHRvIGludCB0eXBlcwoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfbnRoX2ZpZWxkX25hbWUpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgYWRkIGEgd2F5IHRvIGdldCB0aGUgbmFtZSBvZiBhIGZpZWxkIHJlZmVyZW5jZWQgYnkgaW5kZXgKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9pbnRfaGVscGVyKToKCSAgaW5zdGVhZCBvZiBjaGVja2luZyBpZiB0aGUgcmVzdWx0aW5nIGxvbmcgbG9uZyBsaWVzIGJldHdlZW4KCSAgbWluIGFuZCBtYXgsIHdlIGNoZWNrIGlmIHRoZSBsb25nIGxvbmcgd291bGQgZml0IGludG8KCSAgYSBudW1iZXIgb2YgYnl0ZXMgZm9yIHRoZSBmaW5hbCB0eXBlLgoJICBUaGlzIGZpeGVzIGNhc2VzIHdoZXJlIGEgc3RyaW5nIHJlcHJlc2VudHMgMl4zMiAtIDEsIHdoaWNoCgkgIHdoZW4gY2FzdCB0byBpbnQgd291bGQgYmUgdGhlICh2YWxpZCkgLTEsIGJ1dCBpcyBiaWdnZXIgdGhhbgoJICBHX01BWElOVAoKMjAwNS0wNi0yMiAxMTowMjo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIGFkZCBhIGxvZyBsaW5lIGZvciB0eXBlIGRlc2VyaWFsaXphdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgbG9nIGxpbmUgZm9yIHR5cGUgZGVzZXJpYWxpemF0aW9uCgoyMDA1LTA2LTIyIDEwOjUyOjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHJldHVybiBsb25nIGxvbmcsIG5vdCBpbnQsIHNvIGdpbnQ2NCBkZXNlcmlhbGl6YXRpb24gYWN0dWFsbHkgd29ya3MuICBJcyB0aGVyZSBhbnkgZmxhZyB0aGF0IG1ha2VzIHRoZSBjb21waWxlciBjaGVjay4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzogKFNUQVJUX1RFU1QpOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplKToKCSAgcmV0dXJuIGxvbmcgbG9uZywgbm90IGludCwgc28gZ2ludDY0IGRlc2VyaWFsaXphdGlvbiBhY3R1YWxseQoJICB3b3Jrcy4gIElzIHRoZXJlIGFueSBmbGFnIHRoYXQgbWFrZXMgdGhlIGNvbXBpbGVyIGNoZWNrIHRoaXMgPwoJICBGaXhlcyAjMzA4NTU5CgoyMDA1LTA2LTIyIDA5OjU1OjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5oOiBBZGRlZCBjb252ZW5pZW5jZSBtYWNyb3MgZm9yIHNldHRpbmcgYnVmZmVycyBpbiBHVmFsdWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgQWRkZWQgY29udmVuaWVuY2UgbWFjcm9zIGZvciBzZXR0aW5nIGJ1ZmZlcnMgaW4gR1ZhbHVlLgoKMjAwNS0wNi0yMSAxNzo0MTozNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9nc3QvOiBhZGQgYSB0ZXN0IGRlc2VyaWFsaXppbmcgaW50NjQsIGFuZCBjb21tZW50IHBhcnQgb3V0IGJlY2F1c2UgaXQgZmFpbHMsIHlheSAhCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICBhZGQgYSB0ZXN0IGRlc2VyaWFsaXppbmcgaW50NjQsIGFuZCBjb21tZW50IHBhcnQgb3V0IGJlY2F1c2UKCSAgaXQgZmFpbHMsIHlheSAhCgoyMDA1LTA2LTIxIDE2OjUzOjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC9nc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdC5jOgoJICBjb21taXQgYSBmaWxlIEkgZm9yZ290CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjb21taXQgYSBmaWxlIEkgZm9yZ290CgoyMDA1LTA2LTIxIDE2OjQ4OjQ2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL3ZhbHVlX3NlcmlhbGl6ZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3Rlc3RfZ3N0X2luaXQuYzoKCSogdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvY2Fwcy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2NhcHMvdmFsdWVfc2VyaWFsaXplLmM6CgkqIHRlc3RzdWl0ZS90ZXN0X2dzdF9pbml0LmM6CgkgIG1vdmUgb3ZlciBhIHZhbHVlX3NlcmlhbGl6ZSB0ZXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3ZlIG92ZXIgYSB2YWx1ZV9zZXJpYWxpemUgdGVzdAoKMjAwNS0wNi0yMCAxNToxODoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogU21hbGwgZG9jIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgU21hbGwgZG9jIHVwZGF0ZXMuCgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfY29tcGFyZV9idWZmZXIpLAoJICAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9idWZmZXIpLCAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2J1ZmZlciksCgkgIChnc3RfdmFsdWVfY29tcGFyZV9mbGFncyksIChnc3RfdmFsdWVfc2VyaWFsaXplX2ZsYWdzKSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9mbGFncyksIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOgoJICBGaXggc2VyaWFsaXNhdGlvbiBvZiBidWZmZXJzLCB0aGV5IGFyZSBub3QgYm94ZWQgdHlwZXMgYW55bW9yZQoKMjAwNS0wNi0yMCAxNToxNDo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RjYXBzLmM6IFRlc3RjYXNlIHRvIHNob3cgZXJyb3IgaW4gYnVmZmVyLW9uLWNhcHMgc2VyaWFsaXNhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGNhcHMuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X2NhcHNfc3VpdGUpOgoJICBUZXN0Y2FzZSB0byBzaG93IGVycm9yIGluIGJ1ZmZlci1vbi1jYXBzIHNlcmlhbGlzYXRpb24uCgoyMDA1LTA2LTIwIDE1OjEzOjQzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzL3JhbmRvbS93aW5nby9wb3J0aW5nLXBsdWdpbnMtdG8tMC45OiBBIHBpdGlmdWwgZG9jdW1lbnQgSSB3aWxsIGJlIGFkZGluZyB0byBsYXRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9yYW5kb20vd2luZ28vcG9ydGluZy1wbHVnaW5zLXRvLTAuOTogQSBwaXRpZnVsIGRvY3VtZW50IEkKCSAgd2lsbCBiZSBhZGRpbmcgdG8gbGF0ZXIuCgoyMDA1LTA2LTIwIDExOjQxOjE3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0c3lzdGVtY2xvY2suYyAoZ3N0X3N5c3RlbV9jbG9ja19pbml0KTogVW5sb2NrIHRoZSBjbG9jayBpZiBpdHMgc29ja3MgZmlsbCB3aXRoIHJvY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYyAoZ3N0X3N5c3RlbV9jbG9ja19pbml0KTogVW5sb2NrIHRoZSBjbG9jawoJICBpZiBpdHMgc29ja3MgZmlsbCB3aXRoIHJvY2tzLgoJICAoZ3N0X3N5c3RlbV9jbG9ja19vYnRhaW4pOiBTZXQgdGhlIG5hbWUgb24gb2JqZWN0IGNvbnN0cnVjdGlvbi4KCSAgQXZvaWQgZG91YmxlLWNoZWNrZWQgbG9ja2luZy4KCjIwMDUtMDYtMjAgMTE6MzI6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dXJpLmM6IEZpeCBwb3RlbnRpYWwgZW5kbGVzcyBsb29wLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXJpLmM6IChnc3RfZWxlbWVudF9tYWtlX2Zyb21fdXJpKToKCSAgRml4IHBvdGVudGlhbCBlbmRsZXNzIGxvb3AuCgoyMDA1LTA2LTIwIDExOjI3OjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9naG9zdHBhZHMvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9naG9zdHBhZHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZ2hvc3RwYWRzL2dob3N0cGFkcy5jOgoJKiB0ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9naG9zdHBhZHMvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL2dob3N0cGFkcy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2dob3N0cGFkcy9naG9zdHBhZHMuYzoKCSAgcmVtb3ZlIGFub3RoZXIgdGVzdCB0aGF0J3Mgb2Jzb2xldGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBhbm90aGVyIHRlc3QgdGhhdCdzIG9ic29sZXRlCgoyMDA1LTA2LTIwIDExOjIzOjU5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jbG9jay8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2Nsb2NrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2Nsb2NrL2Nsb2NrMS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2Nsb2NrL2Nsb2NrMi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2Nsb2NrL3NpZ25lZG5lc3MuYzoKCSogdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvY2xvY2svLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL2Nsb2NrL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvY2xvY2svY2xvY2sxLmM6CgkqIHRlc3RzdWl0ZS9jbG9jay9jbG9jazIuYzoKCSogdGVzdHN1aXRlL2Nsb2NrL3NpZ25lZG5lc3MuYzoKCSAgcmVtb3ZlIGNsb2NrIHRlc3RzdWl0ZSwgaW1wb3J0YW50IHN0dWZmIGFscmVhZHkgbW92ZWQgdG8gY2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBjbG9jayB0ZXN0c3VpdGUsIGltcG9ydGFudCBzdHVmZiBhbHJlYWR5IG1vdmVkIHRvIGNoZWNrCgoyMDA1LTA2LTIwIDExOjE4OjQwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9iaW5zLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvYmlucy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9iaW5zL2ludGVyZmFjZS5jOgoJKiB0ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9iaW5zLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9iaW5zL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvYmlucy9pbnRlcmZhY2UuYzoKCSAgcmVtb3ZlIHRlc3QgdGhhdCB3YXMgYWxyZWFkeSBtb3ZlZCB0byBjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHRlc3QgdGhhdCB3YXMgYWxyZWFkeSBtb3ZlZCB0byBjaGVjawoKMjAwNS0wNi0xOSAxMTozMjo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogYWRkIGdzdHRhZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgYWRkIGdzdHRhZwoJICAqIGNoZWNrL2dzdC9nc3R0YWcuYzogKGNoZWNrX3RhZ3MpLCAoU1RBUlRfVEVTVCksIChnc3RfdGFnX3N1aXRlKSwKCSAgKG1haW4pOgoJICBtb3ZlIG92ZXIgZnJvbSB0ZXN0c3VpdGUgZGlyIGFuZCBjbGVhbiB1cAoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvZ3N0dGFnLmM6CgkgICogdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzdWl0ZS90YWdzLy5jdnNpZ25vcmU6CgkgICogdGVzdHN1aXRlL3RhZ3MvTWFrZWZpbGUuYW06CgkgICogdGVzdHN1aXRlL3RhZ3MvbWVyZ2UuYzoKCSAgcmVtb3ZlIHRlc3RzdWl0ZS90YWdzCgoyMDA1LTA2LTE5IDEwOjU0OjEyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmluLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YnVmZmVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y2Fwcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHN0cnVjdHVyZS5zZ21sOgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgc29tZSBtb3JlIGRvY3MgY2xlYW51cAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc29tZSBtb3JlIGRvY3MgY2xlYW51cAoKMjAwNS0wNi0xOSAxMDozMTo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9idWZzcGVlZC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9idWZzcGVlZC9NYWtlZmlsZS5hbToKCSogdGVzdHMvYnVmc3BlZWQvUkVBRE1FOgoJKiB0ZXN0cy9idWZzcGVlZC9nc3RtZW1wb29sLmM6CgkqIHRlc3RzL2J1ZnNwZWVkL2dzdG1lbXBvb2wuaDoKCSogdGVzdHMvYnVmc3BlZWQvdGVzdDEuYzoKCSogdGVzdHMvYnVmc3BlZWQvdGVzdDIuYzoKCSogdGVzdHMvc3BpZGV5X2JlbmNoLmM6CgkgIHJlbW92ZSBidWZzcGVlZCBhbmQgc3BpZGV5X2JlbmNoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgYnVmc3BlZWQgYW5kIHNwaWRleV9iZW5jaAoKMjAwNS0wNi0xOSAxMDoyMjo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZW51bXR5cGVzLnNnbWw6CgkqIHdpbjMyL2dzdGVudW10eXBlcy5jOgoJICBjbGVhbiB1cCBkb2NzIGEgbGl0dGxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjbGVhbiB1cCBkb2NzIGEgbGl0dGxlCgoyMDA1LTA2LTE5IDAwOjUyOjMxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL2dzdGNoZWNrLmg6IGFkZCBtYWNyb3MgZm9yIGNoZWNraW5nIHJlZmNvdW50cyBvbiBvYmplY3RzIGFuZCBjYXBzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdGNoZWNrLmg6CgkgIGFkZCBtYWNyb3MgZm9yIGNoZWNraW5nIHJlZmNvdW50cyBvbiBvYmplY3RzIGFuZCBjYXBzCgkgICogY2hlY2svZ3N0L2dzdHBhZC5jOiAoU1RBUlRfVEVTVCksIChnc3RfcGFkX3N1aXRlKToKCSAgYWRkIHNvbWUgbW9yZSB1bml0IHRlc3RzCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9saW5rX2NoZWNrX2NvbXBhdGlibGVfdW5sb2NrZWQpLAoJICAoZ3N0X3BhZF9saW5rX3ByZXBhcmUpLCAoZ3N0X3BhZF9saW5rKSwgKGdzdF9wYWRfZ2V0X2FsbG93ZWRfY2Fwcyk6CgkgIGZpeCBsZWFrZWQgcmVmY291bnRzIChJIGhvcGUgOikpIHNvIHVuaXR0ZXN0IHdvcmtzCgkgICogZ3N0L2dzdHBhZC5oOgoJICB3aGl0ZXNwYWNlIHJlbW92YWwKCjIwMDUtMDYtMTggMjI6MzM6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gaGVhZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBoZWFkCgoyMDA1LTA2LTE3IDEyOjAwOjM1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIGNoYW5nZWxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2hhbmdlbG9nCgoyMDA1LTA2LTE3IDExOjU4OjQ4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZXNpbmtfY2hhaW4pOiBSZW1vdmUgYm9ndXMgYXNzZXJ0OyBpdCdzIGFsd2F5cyBwb3NzaWJsZSB0aGF0IHRoZSBwYWQgZ2V0cyBkZWFjdGl2YXRlZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMTcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2VzaW5rX2NoYWluKTogUmVtb3ZlIGJvZ3VzCgkgIGFzc2VydDsgaXQncyBhbHdheXMgcG9zc2libGUgdGhhdCB0aGUgcGFkIGdldHMgZGVhY3RpdmF0ZWQgaW4KCSAgYmV0d2VlbiB0aGUgY2hlY2tzIGluIGdzdHBhZC5jIGFuZCB0aGUgaW1wbGVtZW50YXRpb24uIFJlbHkgb24KCSAgZmluaXNoX3ByZXJvbGwoKSB0byByZXR1cm4gYSBGTFVTSElORyBvciBzaW1pbGFyIGluc3RlYWQgb2Ygb24gdGhlCgkgIGFzc2VydC4KCjIwMDUtMDYtMTcgMTE6MzM6MjcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlc2lua19ldmVudCk6IE9ubHkgd2FpdCBmb3IgdGhlIGNsb2NrIGFuZCBwb3N0IGFuIEVPUyBtZXNzYWdlIGlmIHdlIGNvbWUgb3V0IG9mIGZpbmlzaC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0xNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZXNpbmtfZXZlbnQpOiBPbmx5IHdhaXQgZm9yIHRoZQoJICBjbG9jayBhbmQgcG9zdCBhbiBFT1MgbWVzc2FnZSBpZiB3ZSBjb21lIG91dCBvZiBmaW5pc2hfcHJlcm9sbCBpbgoJICB0aGUgcGxheWluZyBzdGF0ZS4KCjIwMDUtMDYtMTcgMDk6NTg6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICBpbmNvcnBvcmF0ZSBwbHVnaW5zIHN0dWZmIGFuZCB1bmluc3RhbGxlZCBzdHVmZgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaW5jb3Jwb3JhdGUgcGx1Z2lucyBzdHVmZiBhbmQgdW5pbnN0YWxsZWQgc3R1ZmYKCjIwMDUtMDYtMTcgMDk6MzI6MTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2luZGV4ZXJzLy5naXRpZ25vcmU6CgkqIHBsdWdpbnMvaW5kZXhlcnMvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA1LTA2LTE3IDA5OjEyOjMzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiBnc3QvYmFzZS8uZ2l0aWdub3JlOgoJKiBnc3QvZWxlbWVudHMvLmdpdGlnbm9yZToKCSogZ3N0L3BhcnNlLy5naXRpZ25vcmU6CgkqIGdzdC9yZWdpc3RyaWVzLy5naXRpZ25vcmU6CgkqIGdzdC9zY2hlZHVsZXJzLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2Jhc2UvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvYnl0ZXN0cmVhbS8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9jb250cm9sLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9nZXRiaXRzLy5naXRpZ25vcmU6CgkqIHBsdWdpbnMvZWxlbWVudHMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRvb2xzLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNS0wNi0xNyAwODo1OTo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiAuZ2l0aWdub3JlOgoJKiBDaGFuZ2VMb2c6CgkqIFJFQURNRToKCSogY2hlY2svLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvbWFudWFsLy5naXRpZ25vcmU6CgkqIGdzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWFudWFsLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlOyBmaXggUkVBRE1FCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZTsgZml4IFJFQURNRQoKMjAwNS0wNi0xNiAxNzo1MDoxNiArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiBBbGxvdyBOVUxMIGFzIHBvc3NpYmxlIHZhbHVlIGZvciBmaWx0ZXJfY2FwcyBwcm9wZXJ0eSwgaW5kaWNhdGluZyBHU1RfQ0FQU19BTlkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9jbGFzc19pbml0KSwKCSAgKGdzdF9jYXBzZmlsdGVyX3NldF9wcm9wZXJ0eSk6IEFsbG93IE5VTEwgYXMgcG9zc2libGUgdmFsdWUKCSAgZm9yIGZpbHRlcl9jYXBzIHByb3BlcnR5LCBpbmRpY2F0aW5nIEdTVF9DQVBTX0FOWS4KCjIwMDUtMDYtMDkgMTM6MzM6MDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogZml4IGRlYnVnIG91dHB1dAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2VzcmNfY3JlYXRlKToKCSAgZml4IGRlYnVnIG91dHB1dAoJICAqIGdzdC9zY2hlZHVsZXJzL01ha2VmaWxlLmFtOgoJICB1c2UgbGliZ3N0IHByZWZpeAoJICAqIGdzdHJlYW1lci5zcGVjLmluOgoJICBmaXggc3BlYyBmb3IgaXQKCjIwMDUtMDYtMDkgMTI6MjM6MDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0cmVhbWVyLnNwZWMuaW46IGNsZWFuIHVwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdHJlYW1lci5zcGVjLmluOgoJICBjbGVhbiB1cAoKMjAwNS0wNi0wOSAxMjowOTo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3RyZWFtZXIuc3BlYy5pbjogY2xlYW4gdXAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGNsZWFuIHVwCgoyMDA1LTA2LTA5IDEyOjAzOjA0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFRPRE86CgkqIGRvY3MvcmFuZG9tL1RPRE8tcHJlLTAuOToKCSAgaGF2ZSBhIHJlYWwgVE9ETywgbW92ZSBvbGQgVE9ETwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaGF2ZSBhIHJlYWwgVE9ETywgbW92ZSBvbGQgVE9ETwoKMjAwNS0wNi0wOSAxMjowMDoyNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIHBvIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBvIHVwZGF0ZXMKCjIwMDUtMDYtMDkgMTE6MTI6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICB1cGRhdGUgdHJhbnNsYXRpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDA1LTA2LTA4IDIyOjE2OjI3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogUlBBRCBmaXhlcyBhbGwgYXJvdW5kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0wOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogUlBBRCBmaXhlcyBhbGwgYXJvdW5kLgoJICAoZ3N0X2VsZW1lbnRfbGlua19wYWRzKTogUmVmY291bnRpbmcgZml4ZXMuCgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICAqIHBhcnNlL2dyYW1tYXIueToKCSAgKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IFJQQUQgZml4ZXMuCgkgICogZ3N0L2dzdGdob3N0cGFkLmg6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IE5ldyBnaG9zdCBwYWQgaW1wbGVtZW50YXRpb24gYXMgZnVsbCBwcm94eQoJICBwYWRzLiBUaGUgdHJpY2t5IHRoaW5nIGlzIHRoZXkgcHJvdmlkZSBib3RoIHNvdXJjZSBhbmQgc2luawoJICBpbnRlcmZhY2VzLCBzaW5jZSB0aGV5IHByb3h5IHRoZSBpbnRlcm5hbCBwYWQgZm9yIHRoZSBleHRlcm5hbAoJICBwYWQsIGFuZCB2aWNlIHZlcnNhLiBJbXBsZW1lbnQgd2l0aCBsb3dlci1sZXZlbCBQcm94eVBhZCBvYmplY3RzLAoJICB3aXRoIHRoZSBpbnRlcmlvciBwcm94eSBwYWQgYXMgYSBjaGlsZCBvZiB0aGUgZXh0ZXJpb3IgZ2hvc3QgcGFkLgoJICBTaG91bGQgd3JpdGUgYSBkb2Mgb24gdGhpcy4KCSAgKiBnc3QvZ3N0cGFkLmg6IHMvUlBBRC9QQUQvLCBzL1JlYWxQYWQvUGFkLy4KCSAgKGdzdF9wYWRfc2V0X25hbWUsIGdzdF9wYWRfc2V0X3BhcmVudCk6IE1hY3JvcyByZW1vdmVkLCB1c2UKCSAgZ3N0X29iamVjdCBBUEkuCgkgICogZ3N0L2dzdHBhZC5jOiBCaWcgY2hhbmdlcy4gTm8gbW9yZSBzdHViIGJhc2UgR3N0UGFkLCBub3cgYWxsCgkgIHBhZHMgYXJlIHJlYWwgcGFkcy4gTm8gZ2hvc3QgcGFkcyBpbiB0aGlzIGZpbGUuIE5vdCBkb2N1bWVudGluZwoJICB0aGUgbXlyaWFkIHMvUlBBRC9QQUQvIGFuZCBSRUFMSVpFIGZpeGVzLgoJICAoZ3N0X3BhZF9jbGFzc19pbml0KTogQWRkIHByb3BlcnRpZXMgZm9yICJkaXJlY3Rpb24iIGFuZAoJICAidGVtcGxhdGUiLiBCb3RoIGFyZSBjb25zdHJ1Y3Qtb25seSwgc28gdGhleSBjYW4ndCBjaGFuZ2UgZHVyaW5nCgkgIHRoZSBsaWZlIG9mIHRoZSBwYWQuIEZpeGVzIHByb3Blcmx5IGRlcml2aW5nIGZyb20gR3N0UGFkLgoJICAoZ3N0X3BhZF9jdXN0b21fbmV3LCBnc3RfcGFkX2N1c3RvbV9uZXdfZnJvbV90ZW1wbGF0ZSk6IEdvbmUuIEZvcgoJICBkZXJpdmVkIG9iamVjdHMsIGp1c3Qgc2V0IHByb3BlcnRpZXMgd2hlbiBjcmVhdGluZyB0aGUgb2JqZWN0cyB2aWEKCSAgZ19vYmplY3RfbmV3LgoJICAoZ3N0X3BhZF9nZXRfcGFyZW50KTogSW1wbGVtZW50IGFzIGEgZnVuY3Rpb24sIHJldHVybiBOVUxMIGlmIHRoZQoJICBwYXJlbnQgaXMgbm90IGFuIGVsZW1lbnQuCgkgIChnc3RfcGFkX2dldF9yZWFsX3BhcmVudCwgZ3N0X3BhZF9hZGRfZ2hvc3RfcGFkKQoJICAoZ3N0X3BhZF9yZW1vdmVfZ2hvc3RfcGFkLCBnc3RfcGFkX3JlYWxpemUpOiBSZW1vdmVkLgoJICAqIGdzdC9nc3RvYmplY3QuYyAoZ3N0X29iamVjdF9jbGFzc19pbml0KTogTWFrZSBuYW1lIGEgY29uc3RydWN0CgkgIHByb3BlcnR5LiBEb24ndCBzZXQgaXQgaW4gdGhlIG9iamVjdCBpbml0LgoJICAqIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X2FkZF9wYWQpOiBEb24ndCBhbGxvdyBhZGRpbmcgcGFkcwoJICB3aXRoIFVOS05PV04gZGlyZWN0aW9uLgoJICAoZ3N0X2VsZW1lbnRfYWRkX2dob3N0X3BhZCk6IFJlbW92ZSBub24tb3J0aG9nb25hbCBBUEkuIFJlcGxhY2UKCSAgd2l0aCBnc3RfZWxlbWVudF9hZGRfcGFkIChlLCBnc3RfZ2hvc3RfcGFkX25ldyAobmFtZSwgcGFkKSkuCgkgIChnc3RfZWxlbWVudF9yZW1vdmVfcGFkKTogUmVtb3ZlIGdob3N0LXBhZCBzcGVjaWFsIGNhc2VzLgoJICAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6IFJlbW92ZSBycGFkIGNydWZ0LgoJICAqIGdzdC9nc3RiaW4uYyAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOiBVc2UgZ3N0X3BhZF9nZXRfcGFyZW50IHRvCgkgIGNhdGNoIHRoZSBwYWQncy1wYXJlbnQtbm90LWFuLWVsZW1lbnQgY2FzZS4KCSAgKiBnc3QvZ3N0Lmg6IEluY2x1ZGUgZ3N0Z2hvc3RwYWQuaC4KCSAgKiBnc3QvZ3N0LmMgKGluaXRfcG9zdCk6IE5vIG1vcmUgcmVhbCwgZ2hvc3QgcGFkcy4KCSAgKiBnc3QvTWFrZWZpbGUuYW06IEFkZCBnc3RnaG9zdHBhZC5bY2hdLgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzoKCSAgKiBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYyAodGVzdF9naG9zdF9wYWRzKTogQ2hlY2sgdGhhdCBsaW5raW5nCgkgIGludG8gYSBiaW4gY3JlYXRlcyBnaG9zdCBwYWRzLCBhbmQgdGhhdCB0aGUgcmVmY291bnRzIGFyZSByaWdodC4KCSAgUGFydGx5IG1vdmVkIGZyb20gZ3N0YmluLmMuCgoyMDA1LTA2LTA4IDE0OjAwOjIxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrLzogaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0LWxpYnMvLmN2c2lnbm9yZToKCSAgKiBjaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgKiBjaGVjay9waXBlbGluZXMvLmN2c2lnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgKiBjaGVjay9waXBlbGluZXMvY2xlYW51cC5jOiAoc2V0dXBfcGlwZWxpbmUpLCAocnVuX3BpcGVsaW5lKSwKCSAgKFNUQVJUX1RFU1QpLCAoY2xlYW51cF9zdWl0ZSksIChtYWluKToKCSAgYWRkIHNvbWUgdGVzdHMgcmVsYXRlZCB0byBjbGVhbnVwIGFmdGVyIHJ1bm5pbmcgcGlwZWxpbmVzCgoyMDA1LTA2LTA4IDEzOjU3OjEzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIGFkZCBhIEdzdEJ1ZmZlciB1bml0IHRlc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhIEdzdEJ1ZmZlciB1bml0IHRlc3QKCjIwMDUtMDYtMDggMTM6NDU6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJICBwcmV2aW91cyBjb21taXQgYWNjaWRlbnRhbGx5IGFsc28gYWRkZWQgcmVmY291bnQgZGVmaW5lcyBmb3IgZ3N0bWluaW9iamVjdCwgbG9nZ2luZyB0aGF0IG5vdwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcHJldmlvdXMgY29tbWl0IGFjY2lkZW50YWxseSBhbHNvIGFkZGVkIHJlZmNvdW50IGRlZmluZXMgZm9yIGdzdG1pbmlvYmplY3QsIGxvZ2dpbmcgdGhhdCBub3cKCjIwMDUtMDYtMDggMTM6NDI6NTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGFkZCBhICdwbHVnaW5zJyBkaXIgdG8gdGhlIFBMVUdJTl9QQVRIIGluIHRoZSB1bmluc3RhbGxlZCBzY3JpcHQgdG8gZHJvcCByYW5kb20gb3RoZXIgcGx1Z2luLWhhdmluZyBwcm9qZWN0cyBpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgJ3BsdWdpbnMnIGRpciB0byB0aGUgUExVR0lOX1BBVEggaW4gdGhlIHVuaW5zdGFsbGVkIHNjcmlwdCB0byBkcm9wIHJhbmRvbSBvdGhlciBwbHVnaW4taGF2aW5nIHByb2plY3RzIGluCgoyMDA1LTA2LTA4IDEzOjQxOjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgd2UgZGlkIGEgcHJlcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2UgZGlkIGEgcHJlcmVsZWFzZQoKMjAwNS0wNi0wOCAxMzo0MTozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIE9CSkVDVCBhY3RzIG9uIG9iaiBub3QgY2FwcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgT0JKRUNUIGFjdHMgb24gb2JqIG5vdCBjYXBzCgoyMDA1LTA2LTA4IDEzOjQxOjA1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBhZGQgYSBkZWJ1ZyBsaW5lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYSBkZWJ1ZyBsaW5lCgoyMDA1LTA2LTA4IDEzOjQwOjQ2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICB3aGl0ZSBzcGFjZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGUgc3BhY2UgZml4ZXMKCjIwMDUtMDYtMDMgMTg6MjY6NTkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogTWFrZWZpbGUuYW06CgkqIGNvbW1vbjoKCSAgYWRkZWQgc3VwcG9ydCBmb3IgaHRtbCB1bml0IHRlc3QgY292ZXJhZ2UgcmVwb3J0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkZWQgc3VwcG9ydCBmb3IgaHRtbCB1bml0IHRlc3QgY292ZXJhZ2UgcmVwb3J0cwoKMjAwNS0wNi0wMiAxNTo0NToxNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiBGcmVlIGV4aXN0aW5nIGNhcHMgaWYgdGhlIGNhcHNmaWx0ZXIgY2hhbmdlcy4gQWRkIGEgRklYTUUgYWJvdXQgc2V0dGluZyB0aG9zZSBjYXBzIG9uIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX3NldF9wcm9wZXJ0eSk6CgkgIEZyZWUgZXhpc3RpbmcgY2FwcyBpZiB0aGUgY2Fwc2ZpbHRlciBjaGFuZ2VzLiBBZGQgYSBGSVhNRSBhYm91dAoJICBzZXR0aW5nIHRob3NlIGNhcHMgb24gdGhlIHBhZHMuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWQpLCAoZ2hvc3RfdXApOgoJICBCZWZvcmUgYWRkaW5nIGEgZ2hvc3QgcGFkIHRvIGEgcGFyZW50IGJpbiwgY2hlY2sgdGhhdCB0aGVyZSBpc24ndAoJICBhbHJlYWR5IG9uZSBmb3IgdGhlIGVsZW1lbnQgb24gdGhlIGJpbi4gUHJldmVudHMgaW5maW5pdGUgcmVjdXJzaW9uCgkgIHdoZW4gdXNpbmcgZGVjb2RlYmluIGluIHBhcnNlIHBpcGVsaW5lcy4gQW5keSBzYXlzIGhlJ2xsIHJld3JpdGUgdGhlCgkgIHdheSB0aGlzIHdvcmtzIGFueXdheSwgc28gaWdub3JlIHRoZSBoYWNrLgoKMjAwNS0wNi0wMiAxMToxMjozNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jIChkb19wdWxsX3R5cGVmaW5kKTogUXVlcnkgdGhlIGZpbGUgc2l6ZSwgcGFzcyBpdCBvbiB0byB0aGUgdHlwZSBmaW5kIGhlbHBlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMDIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jIChkb19wdWxsX3R5cGVmaW5kKTogUXVlcnkgdGhlCgkgIGZpbGUgc2l6ZSwgcGFzcyBpdCBvbiB0byB0aGUgdHlwZSBmaW5kIGhlbHBlci4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlc3JjX2RvX3NlZWspOiBTZXQgdGhlCgkgIHNlZ21lbnRfc3RhcnQgYW5kIHNlZ21lbnRfZW5kIHByb3Blcmx5IGFjY29yZGluZyB0byB0aGUgc2VlawoJICBtZXRob2QuIFNlZ21lbnRfZW5kIGlzIHN0aWxsIGEgYml0IGZsYWt5IGJlY2F1c2Ugb2Zmc2V0IGNhbiBiZQoJICBuZWdhdGl2ZSBmb3IgQ1VSIGFuZCBFTkQgY2FzZXMsIGJ1dCBpdCB0YWtlcyAtMSBhcyBhbiAidW5zZXQiCgkgIHZhbHVlLgoKMjAwNS0wNi0wMiAwOTo0MjowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEJ1ZmZlcmFsbG9jOiByZXR1cm4gR3N0Rmxvd1JldHVybiB0byBtb3JlIGFjY3VyYXRseSByZXBvcnQgd2h5IGFsbG9jYXRpb24gZmFpbGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX3BhZF9idWZmZXJfYWxsb2MpLAoJICAoZ3N0X2Jhc2Vfc2lua19idWZmZXJfYWxsb2MpLCAoZ3N0X2Jhc2VzaW5rX3ByZXJvbGxfcXVldWVfcHVzaCksCgkgIChnc3RfYmFzZXNpbmtfYWN0aXZhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfbGlua19wcmVwYXJlKSwKCSAgKGdzdF9wYWRfbGluayksIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfYWxsb2NfYnVmZmVyKSwKCSAgKGdzdF9wYWRfcXVlcnkpLCAoZ3N0X3BhZF9zdGFydF90YXNrKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfYnVmZmVyYWxsb2MpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbik6CgkgIEJ1ZmZlcmFsbG9jOiByZXR1cm4gR3N0Rmxvd1JldHVybiB0byBtb3JlIGFjY3VyYXRseSByZXBvcnQKCSAgd2h5IGFsbG9jYXRpb24gZmFpbGVkLgoKMjAwNS0wNi0wMiAwOTozOToyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBUYWtlIHNuYXBzaG90IG9mIHN0YXRlIHdpdGhvdXQgYmxvY2tpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX3NlbmRfZXZlbnQpOgoJICBUYWtlIHNuYXBzaG90IG9mIHN0YXRlIHdpdGhvdXQgYmxvY2tpbmcuCgoyMDA1LTA2LTAyIDA4OjI2OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBTbWFsbCBkb2MgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY2Fwcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcHJlcm9sbC50eHQ6CgkgIFNtYWxsIGRvYyB1cGRhdGVzCgoyMDA1LTA1LTMwIDE2OjI4OjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IFByb3RlY3QgbGFzdF9tZXNzYWdlIHByb3BlcnR5IGFzIGl0IGlzIGFjY2Vzc2VkIGZyb20gbXVsdGlwbGUgdGhyZWFkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfZXZlbnQpLAoJICAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybSksIChnc3RfaWRlbnRpdHlfZ2V0X3Byb3BlcnR5KToKCSAgUHJvdGVjdCBsYXN0X21lc3NhZ2UgcHJvcGVydHkgYXMgaXQgaXMgYWNjZXNzZWQgZnJvbQoJICBtdWx0aXBsZSB0aHJlYWRzLgoKMjAwNS0wNS0zMCAxNTo1MzowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IFNsaWNrZXIgcGFkIGFjdGl2YXRpb24gY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2luaXQpLAoJICAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSksIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBTbGlja2VyIHBhZCBhY3RpdmF0aW9uIGNvZGUuCgoyMDA1LTA1LTMwIDE1OjUxOjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogTW92ZSBlbGVtZW50ZmFjdG9yeSBtZXRob2RzIHRvIHNlcGFyYXRlIC5oIGZpbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICAqIGdzdC9nc3R0eXBlcy5oOgoJICBNb3ZlIGVsZW1lbnRmYWN0b3J5IG1ldGhvZHMgdG8gc2VwYXJhdGUgLmggZmlsZS4KCjIwMDUtMDUtMzAgMTU6NDg6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBTbWFsbCB0eXBvIGZpeGVzLCBkb2MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkgIFNtYWxsIHR5cG8gZml4ZXMsIGRvYyB1cGRhdGVzLgoKMjAwNS0wNS0zMCAxNTo0NjoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3QuYzogUmVtb3ZlIGNwdS1vcHQgZmxhZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZ3N0X2luaXRfZ2V0X3BvcHRfdGFibGUpLCAoaW5pdF9wb3N0KSwKCSAgKGluaXRfcG9wdF9jYWxsYmFjayk6CgkgIFJlbW92ZSBjcHUtb3B0IGZsYWcuCgoyMDA1LTA1LTMwIDE1OjQ0OjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci4qOiBBdm9pZCB0eXBlY2hlY2tpbmcgaW4gcGxhY2VzIHdoZXJlIG5vdCBuZWVkZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9zdWJidWZmZXJfZmluYWxpemUpLAoJICAoZ3N0X2J1ZmZlcl9jcmVhdGVfc3ViKSwgKGdzdF9idWZmZXJfaXNfc3Bhbl9mYXN0KToKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIEF2b2lkIHR5cGVjaGVja2luZyBpbiBwbGFjZXMgd2hlcmUgbm90IG5lZWRlZC4KCSAgQWRkZWQgYWNjZXNzb3IgZm9yIG1hbGxvY19kYXRhLgoKMjAwNS0wNS0zMCAxNTo0MTo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogUHJvcGFnYXRlIGVycm9ycyBmcm9tIF9zZXRfY2FwcygpIGluIGNvbmZpZ3VyZV9zcmMvc2luayBmdW5jdGlvbnMgaW5zdGVhZCBvZiByZXR1cm5pbmcgVFJVRS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3JlYWxfcGFkX2luaXQpLCAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwKCSAgKGdzdF9wYWRfbGlua19wcmVwYXJlKSwgKGdzdF9wYWRfbGluayksIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwKCSAgKGdzdF9wYWRfY29uZmlndXJlX3NpbmspLCAoZ3N0X3BhZF9jb25maWd1cmVfc3JjKSwKCSAgKGdzdF9wYWRfYWxsb2NfYnVmZmVyKSwgKGdzdF9wYWRfcXVlcnkpLCAoZ3N0X3BhZF9zZW5kX2V2ZW50KSwKCSAgKGdzdF9wYWRfc3RhcnRfdGFzayk6CgkgIFByb3BhZ2F0ZSBlcnJvcnMgZnJvbSBfc2V0X2NhcHMoKSBpbiBjb25maWd1cmVfc3JjL3NpbmsKCSAgZnVuY3Rpb25zIGluc3RlYWQgb2YgcmV0dXJuaW5nIFRSVUUuCgkgIEZMVVNIIGV2ZW50cyBjYW4gdHJhdmVsIHVwIGFuZCBkb3duc3RyZWFtCgoyMDA1LTA1LTMwIDE1OjM2OjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogSGFuZGxlIEVPUyBpbiBwcmVyb2xsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX3ByZXJvbGxfcXVldWVfcHVzaCksCgkgIChnc3RfYmFzZXNpbmtfYWN0aXZhdGUpOgoJICBIYW5kbGUgRU9TIGluIHByZXJvbGwuCgoyMDA1LTA1LTMwIDE1OjM0OjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHF1ZXVlLmM6IFJlbW92ZSBvbGQgcGllY2VzIG9mIGNvZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9xdWV1ZV9sb29wKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX2V2ZW50KToKCSAgUmVtb3ZlIG9sZCBwaWVjZXMgb2YgY29kZQoJICBGbHVzaGluZyB0aGUgcXVldWUgaW4gYW4gdXBzdHJlYW0gZXZlbnQgaXMgYSB2ZXJ5IGJhZCBpZGVhLgoKMjAwNS0wNS0yOSAxMzo1Njo1NSArMDAwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUBnbm9tZS5vcmc+CgoJICBmaWxlIGdzdHNpbXBsZXNjaGVkdWxlci5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1DT01QQU5ZLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlsZSBnc3RzaW1wbGVzY2hlZHVsZXIuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtQ09NUEFOWS4KCjIwMDUtMDUtMjcgMDk6Mjg6MDUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgcmVtb3ZlIGNvbmZsaWN0IGRvb2JlcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBjb25mbGljdCBkb29iZXJzCgoyMDA1LTA1LTI3IDA5OjI3OjM1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jIChnc3RfdmFsdWVfbWluaV9vYmplY3RfY29sbGVjdCk6IFVzZSBnc3RfdmFsdWVfc2V0X21pbmlfb2JqZWN0IHNvIGFzIHRvIGFkZCBhIHJlZiBvbiB0aGUgb2JqZWN0ICguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDUtMjYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYyAoZ3N0X3ZhbHVlX21pbmlfb2JqZWN0X2NvbGxlY3QpOiBVc2UKCSAgZ3N0X3ZhbHVlX3NldF9taW5pX29iamVjdCBzbyBhcyB0byBhZGQgYSByZWYgb24gdGhlIG9iamVjdCAod2hpY2gKCSAgd2lsbCBiZSByZW1vdmVkIHdoZW4gdGhlIHZhbHVlIGlzIHVuc2V0KS4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYyAoZ3N0X2Zha2VzaW5rX2NsYXNzX2luaXQpOiBGaXggc2lnbmFsCgkgIGFyZyB0eXBlIGluIDo6aGFuZG9mZi4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOiBBbHNvIGRlYWN0aXZhdGUKCSAgcGFkcyBpbiBSRUFEWS0+TlVMTCwganVzdCBpbiBjYXNlIHRoZSBlbGVtZW50IGRpZG4ndCBtYWtlIGl0IHRvCgkgIFBBVVNFRC4gV2luZ28gdGVzdGVkLCBXaW0gYXBwcm92ZWQuCgoyMDA1LTA1LTI2IDEwOjUwOjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBBIGZsdXNoaW5nIHBhZCBjYW5ub3QgYmUgdXNlZCB0byBhbGxvY19idWZmZXIgZnJvbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfbGlua19wcmVwYXJlKSwKCSAgKGdzdF9wYWRfbGluayksIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfYWxsb2NfYnVmZmVyKSwKCSAgKGdzdF9wYWRfcXVlcnkpLCAoZ3N0X3BhZF9zZW5kX2V2ZW50KSwgKGdzdF9wYWRfc3RhcnRfdGFzayk6CgkgIEEgZmx1c2hpbmcgcGFkIGNhbm5vdCBiZSB1c2VkIHRvIGFsbG9jX2J1ZmZlciBmcm9tLgoKMjAwNS0wNS0yNiAxMDo0ODo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidXMuKjogSW1wbGVtZW50IGEgcmVhbCBHU291cmNlIGFuZCB1c2UgZ19tYWluX2NvbnRleHRfd2FrZXVwKCkgdG8gc2lnbmFsIG5ldyBtZXNzYWdlcyBpbnN0ZWFkIG9mIHRoZSBzb2NrZXRwYWlyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2luaXQpLCAoZ3N0X2J1c19kaXNwb3NlKSwgKGdzdF9idXNfcG9zdCksCgkgIChnc3RfYnVzX3BvcCksIChnc3RfYnVzX3NvdXJjZV9wcmVwYXJlKSwgKGdzdF9idXNfc291cmNlX2NoZWNrKSwKCSAgKGdzdF9idXNfc291cmNlX2Rpc3BhdGNoKSwgKGdzdF9idXNfc291cmNlX2ZpbmFsaXplKSwKCSAgKGdzdF9idXNfY3JlYXRlX3dhdGNoKSwgKGdzdF9idXNfYWRkX3dhdGNoX2Z1bGwpOgoJICAqIGdzdC9nc3RidXMuaDoKCSAgSW1wbGVtZW50IGEgcmVhbCBHU291cmNlIGFuZCB1c2UgZ19tYWluX2NvbnRleHRfd2FrZXVwKCkgdG8KCSAgc2lnbmFsIG5ldyBtZXNzYWdlcyBpbnN0ZWFkIG9mIHRoZSBzb2NrZXRwYWlyLgoKMjAwNS0wNS0yNSAxOTozMzozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEZpeCBzdGF0ZSBjaGFuZ2VzIGZvciBub24gc2lua3MuIFdlIG5vdyBjaGFuZ2Ugc2lua3MsIHRoZW4gZWxlbWVudHMgd2l0aCB1bmNvbm5lY3RlZCBzcmNwYWRzLCB0aGVuIHRoZSByZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fZWxlbWVudF9pc19zaW5rKSwgKGhhc19hbmNlc3RvciksCgkgIChiaW5fZWxlbWVudF9pc19zZW1pX3NpbmspLCAoYXBwZW5kX2NoaWxkKSwgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9saW5rX3ByZXBhcmUpLAoJICAoZ3N0X3BhZF9saW5rKSwgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9xdWVyeSksCgkgIChnc3RfcGFkX3NlbmRfZXZlbnQpLCAoZ3N0X3BhZF9zdGFydF90YXNrKToKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9pbml0KSwgKGdzdF9xdWV1ZV9sb2NrZWRfZmx1c2gpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbiksIChnc3RfcXVldWVfbG9vcCksCgkgIChnc3RfcXVldWVfc2lua19hY3RpdmF0ZSksIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlKSwKCSAgKGdzdF9xdWV1ZV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RxdWV1ZS5oOgoJICBGaXggc3RhdGUgY2hhbmdlcyBmb3Igbm9uIHNpbmtzLiBXZSBub3cgY2hhbmdlIHNpbmtzLCB0aGVuIGVsZW1lbnRzCgkgIHdpdGggdW5jb25uZWN0ZWQgc3JjcGFkcywgdGhlbiB0aGUgcmVzdC4KCSAgTW9yZSBlZmZpY2llbnQgcXVldWUgdW5sb2NraW5nIGluIGZsdXNoIGFuZCBzdGF0ZSBjaGFuZ2VzLgoJICBTZXQgdGhlIHBhZCBhY3RpdmF0ZSBtb2RlIGV2ZW4gaWYgaXQgZG9lcyBub3QgaGF2ZSBhbiBhY3RpdmF0ZQoJICBmdW5jdGlvbi4KCjIwMDUtMDUtMjUgMTY6MDk6MzQgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICBoYXBwaWZ5IGJ1aWxkYm90CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBoYXBwaWZ5IGJ1aWxkYm90CgoyMDA1LTA1LTI1IDE1OjU3OjU3ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IERvbid0IGdvIGluIHB1bGwgbW9kZSBmb3Igbm9uLXNlZWthYmxlIHNvdXJjZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX2FjdGl2YXRlKToKCSAgRG9uJ3QgZ28gaW4gcHVsbCBtb2RlIGZvciBub24tc2Vla2FibGUgc291cmNlcy4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaW5pdCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfZGlzcG9zZSksIChnc3RfdHlwZV9maW5kX2hhbmRsZV9zcmNfcXVlcnkpLAoJICAoZnJlZV9lbnRyeSksIChzdG9wX3R5cGVmaW5kaW5nKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpLCAoZmluZF9wZWVrKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbiksIChkb19wdWxsX3R5cGVmaW5kKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBBbGxvdyB0eXBlZmluZGluZyAody9vIHNlZWtpbmcpIGluIHB1c2gtbW9kZSwgc2ltcGxpZmllZCB2ZXJzaW9uCgkgIG9mIHdoYXQgd2FzIGluIDAuOC4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9idWZmZXJfam9pbik6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIGdzdF9idWZmZXJfam9pbigpIGZyb20gMC44LgoKMjAwNS0wNS0yNSAxMzo1OToxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogRGlzYWJsZSBhdHRlbXB0IGF0IG1vZGUgc3dpdGNoaW5nIHVudGlsIGl0IGlzIGZpZ3VyZWQgb3V0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9saW5rX3ByZXBhcmUpLAoJICAoZ3N0X3BhZF9saW5rKSwgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9xdWVyeSksCgkgIChnc3RfcGFkX3NlbmRfZXZlbnQpLCAoZ3N0X3BhZF9zdGFydF90YXNrKToKCSAgRGlzYWJsZSBhdHRlbXB0IGF0IG1vZGUgc3dpdGNoaW5nIHVudGlsIGl0IGlzIGZpZ3VyZWQgb3V0LgoKMjAwNS0wNS0yNSAxMTo1MDoxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEltcGxlbWVudCBnc3RfcGFkX3BhdXNlL3N0YXJ0L3N0b3BfdGFzaygpLCB0YWtlIFNUUkVBTSBsb2NrIGluIHRhc2sgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYzogKGdzdF9hZGFwdGVyX3BlZWspLCAoZ3N0X2FkYXB0ZXJfZmx1c2gpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfcHJlcm9sbF9xdWV1ZV9wdXNoKSwKCSAgKGdzdF9iYXNlc2lua19maW5pc2hfcHJlcm9sbCksIChnc3RfYmFzZXNpbmtfY2hhaW4pLAoJICAoZ3N0X2Jhc2VzaW5rX2xvb3ApLCAoZ3N0X2Jhc2VzaW5rX2FjdGl2YXRlKSwKCSAgKGdzdF9iYXNlc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX2RvX3NlZWspLAoJICAoZ3N0X2Jhc2VzcmNfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlc3JjX2xvb3ApLAoJICAoZ3N0X2Jhc2VzcmNfYWN0aXZhdGUpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfc2lua19hY3RpdmF0ZSk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9kaXNwb3NlKSwgKGdzdF9yZWFsX3BhZF9jbGFzc19pbml0KSwKCSAgKGdzdF9yZWFsX3BhZF9pbml0KSwgKGdzdF9yZWFsX3BhZF9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3JlYWxfcGFkX2dldF9wcm9wZXJ0eSksIChnc3RfcGFkX3NldF9hY3RpdmUpLAoJICAoZ3N0X3BhZF9pc19hY3RpdmUpLCAoZ3N0X3BhZF9nZXRfcXVlcnlfdHlwZXMpLCAoZ3N0X3BhZF91bmxpbmspLAoJICAoZ3N0X3BhZF9saW5rX3ByZXBhcmUpLCAoZ3N0X3BhZF9saW5rKSwgKGdzdF9wYWRfZ2V0X3JlYWxfcGFyZW50KSwKCSAgKGdzdF9yZWFsX3BhZF9nZXRfY2Fwc191bmxvY2tlZCksIChnc3RfcGFkX3BlZXJfZ2V0X2NhcHMpLAoJICAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX2dldF9wZWVyKSwgKGdzdF9wYWRfcmVhbGl6ZSksCgkgIChnc3RfcGFkX2V2ZW50X2RlZmF1bHRfZGlzcGF0Y2gpLCAoZ3N0X3BhZF9ldmVudF9kZWZhdWx0KSwKCSAgKGdzdF9wYWRfZGlzcGF0Y2hlciksIChnc3RfcGFkX3F1ZXJ5KSwgKGdzdF9yZWFsX3BhZF9kaXNwb3NlKSwKCSAgKGdzdF9wYWRfc2F2ZV90aHlzZWxmKSwgKGhhbmRsZV9wYWRfYmxvY2spLCAoZ3N0X3BhZF9jaGFpbiksCgkgIChnc3RfcGFkX3B1c2gpLCAoZ3N0X3BhZF9nZXRfcmFuZ2UpLCAoZ3N0X3BhZF9wdWxsX3JhbmdlKSwKCSAgKGdzdF9wYWRfc2VuZF9ldmVudCksIChnc3RfcGFkX3N0YXJ0X3Rhc2spLCAoZ3N0X3BhZF9wYXVzZV90YXNrKSwKCSAgKGdzdF9wYWRfc3RvcF90YXNrKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9xdWV1ZV9sb29wKSwgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGUpOgoJICAqIGdzdC9nc3R0YXNrLmM6IChnc3RfdGFza19pbml0KSwgKGdzdF90YXNrX3NldF9sb2NrKSwKCSAgKGdzdF90YXNrX2dldF9zdGF0ZSk6CgkgICogZ3N0L2dzdHRhc2suaDoKCSAgKiBnc3Qvc2NoZWR1bGVycy90aHJlYWRzY2hlZHVsZXIuYzoKCSAgKGdzdF90aHJlYWRfc2NoZWR1bGVyX3Rhc2tfc3RhcnQpLCAoZ3N0X3RocmVhZF9zY2hlZHVsZXJfZnVuYyk6CgkgIEltcGxlbWVudCBnc3RfcGFkX3BhdXNlL3N0YXJ0L3N0b3BfdGFzaygpLCB0YWtlIFNUUkVBTSBsb2NrCgkgIGluIHRhc2sgZnVuY3Rpb24uCgkgIFJlbW92ZSBBQ1RJVkUgcGFkIGZsYWcsIHVzZSBGTFVTSElORyBldmVyeXdoZXJlCgkgIEFkZGVkIF9wYWRfY2hhaW4oKSwgX3BhZF9nZXRfcmFuZ2UoKSB0byBjYWxsIGNoYWluL2dldHJhbmdlCgkgIGZ1bmN0aW9ucy4KCSAgQWRkIGxvY2tzIGFyb3VuZCBJU19GTFVTSElORyB3aGVuIHJlYWRpbmcuCgkgIFRha2UgU1RSRUFNIGxvY2sgaW4gY2hhaW4oKSwgZ2V0X3JhbmdlKCkgZnVuY3Rpb25zIHNvIHBsdWdpbnMKCSAgZG9uJ3QgbmVlZCB0byB0YWtlIGl0IGFueW1vcmUuCgoyMDA1LTA1LTI1IDExOjI2OjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBVbnJlZiBtZXNzYWdlIGFmdGVyIHVzaW5nIGl0cyBjb250ZW50cyBpbnN0ZWFkIG9mIGJlZm9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIFVucmVmIG1lc3NhZ2UgYWZ0ZXIgdXNpbmcgaXRzIGNvbnRlbnRzIGluc3RlYWQgb2YKCSAgYmVmb3JlLgoKMjAwNS0wNS0yNCAxNjo0NzowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogRG9jcyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1naG9zdHBhZHMudHh0OgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXB1c2gtcHVsbC50eHQ6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtcXVlcnkudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICBEb2NzIHVwZGF0ZXMuCgkgIEFkZGVkIGdlbmVyYWwgb3ZlcnZpZXcgZG9jLgoJICBBZGRlZCBkcmFmdCBnaG9zdHBhZCByZXBsYWNlbWVudCBpZGVhLgoKMjAwNS0wNS0yMiAwNDoyNjo0MSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBkb2NzL2dzdC90bXBsL29sZC86IEkgZGlkbid0IGludGVuZCB0byBhZGQgdGhlc2Ugb3IgY2hlY2sgdGhlbSBpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvR3N0QmluLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvR3N0QnVmZmVyLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvR3N0Q2Fwcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdENsb2NrLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvR3N0Q29tcGF0LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvR3N0RGF0YS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdEVsZW1lbnQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9Hc3RFdmVudC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdEluZGV4LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvR3N0U3RydWN0dXJlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvR3N0VGFnLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvY290aHJlYWRzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvY290aHJlYWRzX2NvbXBhdC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dldHRleHQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nb2JqZWN0Mmd0ay5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dyYW1tYXIudGFiLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0LWkxOG4tYXBwLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0LWkxOG4tbGliLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0X3ByaXZhdGUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RhZ2dyZWdhdG9yLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0YXJjaC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGF0b21pY19pbXBsLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0YnVmZmVyc3RvcmUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RkYXRhX3ByaXZhdGUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RkaXNrc2luay5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGRpc2tzcmMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RlbGVtZW50ZmFjdG9yeS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGV4dHJhdHlwZXMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RmYWtlc2luay5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGZha2VzcmMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RmZHNpbmsuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RmZHNyYy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGZpbGVzaW5rLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0ZmlsZXNyYy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGh0dHBzcmMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RpZGVudGl0eS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGluZGV4ZmFjdG9yeS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdG1hcnNoYWwuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RtZDVzaW5rLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0bXVsdGlkaXNrc3JjLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0bXVsdGlmaWxlc3JjLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0cGFkdGVtcGxhdGUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RwaXBlZmlsdGVyLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0c2NoZWR1bGVyZmFjdG9yeS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHNlYXJjaGZ1bmNzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0c2hhcGVyLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0c3BpZGVyLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0c3BpZGVyaWRlbnRpdHkuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RzdGF0aXN0aWNzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0dGVlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0dGltZWNhY2hlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0dHlwZWZpbmRmYWN0b3J5LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0eG1scmVnaXN0cnkuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9ndGhyZWFkLWNvdGhyZWFkcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL3R5cGVzLnNnbWw6CgkgIEkgZGlkbid0IGludGVuZCB0byBhZGQgdGhlc2Ugb3IgY2hlY2sgdGhlbSBpbi4KCjIwMDUtMDUtMjAgMTI6NDc6MDUgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICB1cGRhdGUgc3BlYyBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgc3BlYyBmaWxlCgoyMDA1LTA1LTE5IDE5OjU0OjAxICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogVXNlIC1uby1jb21tb24gZXZlcnl3aGVyZS4gIEluIGEgc2FuZSB3b3JsZCwgaXQgd291bGQgYmUgdGhlIGRlZmF1bHQgaW4gbGlidG9vbCwgYmVjYXVzZSB3aXRob3V0IGl0LCB5by4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6IFVzZSAtbm8tY29tbW9uIGV2ZXJ5d2hlcmUuICBJbiBhIHNhbmUgd29ybGQsIGl0CgkgIHdvdWxkIGJlIHRoZSBkZWZhdWx0IGluIGxpYnRvb2wsIGJlY2F1c2Ugd2l0aG91dCBpdCwgeW91IGNhbid0CgkgIGJ1aWxkIERMTHMgb24gV2luZG93cy4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOiBSZW1vdmUgR3N0Q3B1LCBHc3REYXRhLCBHc3RUaHJlYWQKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0Y3B1LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RkYXRhLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R0aHJlYWQuc2dtbDoKCjIwMDUtMDUtMTkgMTk6NDE6MTIgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuKjogQWRkIEdWYWx1ZSBzZXQvZ2V0IGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF92YWx1ZV9zZXRfbWluaV9vYmplY3QpLAoJICAoZ3N0X3ZhbHVlX3Rha2VfbWluaV9vYmplY3QpLCAoZ3N0X3ZhbHVlX2dldF9taW5pX29iamVjdCk6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuaDogQWRkIEdWYWx1ZSBzZXQvZ2V0IGZ1bmN0aW9ucy4KCjIwMDUtMDUtMTkgMTY6MjY6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBNYWtlIHN1YmJ1ZmVyIHVucmVmIHRoZSBwYXJlbnQgaW4gZmluYWxpemUuIHNvbWUgbW9yZSBkZWJ1Z2dpbmcgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9pbml0KSwgKGdzdF9zdWJidWZmZXJfZ2V0X3R5cGUpLAoJICAoZ3N0X3N1YmJ1ZmZlcl9jbGFzc19pbml0KSwgKGdzdF9zdWJidWZmZXJfZmluYWxpemUpLAoJICAoZ3N0X3N1YmJ1ZmZlcl9pbml0KSwgKGdzdF9idWZmZXJfaXNfc3Bhbl9mYXN0KToKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19wb3N0KToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X3JhbmRvbV9wYWQpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9pbml0KSwgKGdzdF9tZXNzYWdlX2ZpbmFsaXplKToKCSAgTWFrZSBzdWJidWZlciB1bnJlZiB0aGUgcGFyZW50IGluIGZpbmFsaXplLgoJICBzb21lIG1vcmUgZGVidWdnaW5nIGluZm8uCgoyMDA1LTA1LTE5IDE2OjIzOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRG9uJ3QgZnJlZSBwcmVyb2xsIHF1ZXVlIHRvbyBlYXJseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlc2lua19pbml0KSwgKGdzdF9iYXNlc2lua19maW5hbGl6ZSksCgkgIChnc3RfYmFzZXNpbmtfYWN0aXZhdGUpLCAoZ3N0X2Jhc2VzaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIERvbid0IGZyZWUgcHJlcm9sbCBxdWV1ZSB0b28gZWFybHkuCgoyMDA1LTA1LTE5IDE0OjUyOjE2ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvOiBIaSwgSSdtIG91dGRhdGVkLiBQbGVhc2Ugc2hvb3QgbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvUk9BRE1BUDoKCSAgSGksIEknbSBvdXRkYXRlZC4gUGxlYXNlIHNob290IG1lLgoKMjAwNS0wNS0xOSAxMjowNzozNSArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IERvIG5vdCBhY2Nlc3MgdmFyaWFibGVzIGFmdGVyIHRoZXkgaGF2ZSBiZWVuIGRlbGV0ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX3NlbmRfZXZlbnQpOgoJICBEbyBub3QgYWNjZXNzIHZhcmlhYmxlcyBhZnRlciB0aGV5IGhhdmUgYmVlbiBkZWxldGVkLgoKMjAwNS0wNS0xOSAwODo0MTo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEEgcGx1Z2luIGZlYXR1cmUgZG9lcyB1bmZvcnR1bmF0bHkgbm90IHVzZSB0aGUgb2JqZWN0IG5hbWUgeWV0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9wbHVnaW5fZmVhdHVyZXMpOgoJICBBIHBsdWdpbiBmZWF0dXJlIGRvZXMgdW5mb3J0dW5hdGx5IG5vdCB1c2UgdGhlCgkgIG9iamVjdCBuYW1lIHlldC4uLgoKMjAwNS0wNS0xOCAxNzozNToyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogUG9ydCBfc3BhbigpIGZ1bmN0aW9ucyB0byBuZXcgc3ViYnVmZmVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9pc19zcGFuX2Zhc3QpLCAoZ3N0X2J1ZmZlcl9zcGFuKToKCSAgUG9ydCBfc3BhbigpIGZ1bmN0aW9ucyB0byBuZXcgc3ViYnVmZmVycy4KCjIwMDUtMDUtMTggMTM6NDk6MDggKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogRml4IGNsb2NrIHNldHRlcnkgaW4gYmlucyB3aGVuIGFkZGluZyBraWRzIGFmdGVyIHRoZSBjbG9jayBoYXMgYmVlbiBzZWxlY3RlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyk6CgkgIEZpeCBjbG9jayBzZXR0ZXJ5IGluIGJpbnMgd2hlbiBhZGRpbmcga2lkcyBhZnRlciB0aGUgY2xvY2sgaGFzCgkgIGJlZW4gc2VsZWN0ZWQuCgoyMDA1LTA1LTE4IDEzOjIzOjI0ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogV29ya2Fyb3VuZCB1bnRpbCBzaWduYWxzIHN1cHBvcnQgR3N0TWluaU9iamVjdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCk6CgkgIFdvcmthcm91bmQgdW50aWwgc2lnbmFscyBzdXBwb3J0IEdzdE1pbmlPYmplY3QuCgoyMDA1LTA1LTE4IDExOjM0OjQ1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogT29wcywgZml4IGEgdHlwbyBHU1RfVFlQRV9CVUZGRVIgLT4gR1NUX1RZUEVfU1VCQlVGRkVSLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIE9vcHMsIGZpeCBhIHR5cG8gR1NUX1RZUEVfQlVGRkVSIC0+IEdTVF9UWVBFX1NVQkJVRkZFUi4KCjIwMDUtMDUtMTggMDk6NTU6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS86IFBvcnRlZCBhbmQgYWRkZWQgYWRhcHRlciB0byB0aGUgYmFzZSBjbGFzc2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmM6IChnc3RfYWRhcHRlcl9iYXNlX2luaXQpLAoJICAoZ3N0X2FkYXB0ZXJfY2xhc3NfaW5pdCksIChnc3RfYWRhcHRlcl9pbml0KSwKCSAgKGdzdF9hZGFwdGVyX2Rpc3Bvc2UpLCAoZ3N0X2FkYXB0ZXJfZmluYWxpemUpLCAoZ3N0X2FkYXB0ZXJfbmV3KSwKCSAgKGdzdF9hZGFwdGVyX2NsZWFyKSwgKGdzdF9hZGFwdGVyX3B1c2gpLCAoZ3N0X2FkYXB0ZXJfcGVlayksCgkgIChnc3RfYWRhcHRlcl9mbHVzaCksIChnc3RfYWRhcHRlcl9hdmFpbGFibGUpLAoJICAoZ3N0X2FkYXB0ZXJfYXZhaWxhYmxlX2Zhc3QpOgoJICAqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgUG9ydGVkIGFuZCBhZGRlZCBhZGFwdGVyIHRvIHRoZSBiYXNlIGNsYXNzZXMuCgoyMDA1LTA1LTE3IDE3OjUwOjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IE1ha2Ugc3VyZSB0aGUgY2xhc3MgaXMgcmVmZmVkL3VucmVmZmVkIG9uY2UgYmVmb3JlIHRocmVhZHMgY2FuIGJlIHVzZWQuICBGaXhlcyAjMzA0NTUxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgTWFrZSBzdXJlIHRoZSBjbGFzcyBpcyByZWZmZWQvdW5yZWZmZWQgb25jZSBiZWZvcmUgdGhyZWFkcyBjYW4gYmUKCSAgdXNlZC4gIEZpeGVzICMzMDQ1NTEuCgoyMDA1LTA1LTE3IDE3OjM3OjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogRG9uJ3QgcXVldWUgYnVmZmVycyBpbiBiYXNlc2luayB3aGVuIHdlIGFyZSBmbHVzaGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19maW5pc2hfcHJlcm9sbCksCgkgIChnc3RfYmFzZXNpbmtfY2hhaW5fdW5sb2NrZWQpLCAoZ3N0X2Jhc2VzaW5rX2FjdGl2YXRlKToKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X21pbmlfb2JqZWN0X2dldF90eXBlKSwKCSAgKGdzdF9taW5pX29iamVjdF9mcmVlKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfcXVlcnkpLAoJICAoZ3N0X3BhZF9wdXNoKSwgKGdzdF9wYWRfcHVzaF9ldmVudCk6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfY2hhbmdlX3N0YXRlKToKCSAgRG9uJ3QgcXVldWUgYnVmZmVycyBpbiBiYXNlc2luayB3aGVuIHdlIGFyZSBmbHVzaGluZy4KCSAgVW5yZWYgYnVmZmVyIHdoZW4gZmx1c2hpbmcgaW4gYmFzZXNpbmsuCgkgIEZsdXNoIHF1ZXVlIHdoZW4gZ29pbmcgdG8gUkVBRFkKCSAgVW5yZWYgYnVmZmVyIHdoZW4gX3B1c2goKSByZXR1cm5zIGFuIGVycm9yLgoJICBEb24ndCBmcmVlIE1pbmlPYmplY3QgaW5zdGFuY2Ugd2hlbiByZWZjb3VudCBpcyBpbmNyZW1lbnRlZAoJICBpbiBfZmluYWxpemUoKSBzbyB0aGF0IHdlIGNhbiByZWNvdmVyIG9iamVjdHMuCgoyMDA1LTA1LTE3IDE3OjIyOjMxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1zY2hlZHVsZXJzLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtY2xvY2sueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1pbnRlcmZhY2VzLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtcmVxdWVzdC54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSogZG9jcy9wd2cvaW50cm8tcHJlZmFjZS54bWw6CgkqIGV4YW1wbGVzL3BsdWdpbnMvZXhhbXBsZS5jOgoJKiBleGFtcGxlcy9wbHVnaW5zL2V4YW1wbGUuaDoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3BsdWdpbnMvZXhhbXBsZS5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcGx1Z2lucy9leGFtcGxlLmg6CgkgIHNtYWxsIGRvYyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc21hbGwgZG9jIGZpeGVzCgoyMDA1LTA1LTE3IDE0OjExOjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQ2xlYXIgcXVldWUgd2hlbiBnb2luZyB0byBSRUFEWS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX3NldF9jYXBzKSwKCSAgKGdzdF9wYWRfYWxsb2NfYnVmZmVyKSwgKGdzdF9wYWRfcXVlcnkpLCAoZ3N0X3BhZF9wdXNoKToKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9jaGFuZ2Vfc3RhdGUpOgoJICBDbGVhciBxdWV1ZSB3aGVuIGdvaW5nIHRvIFJFQURZLgoJICBSZW1vdmUgSU5fU0VUQ0FQUyBmbGFnIHRvby4KCjIwMDUtMDUtMTcgMTQ6MDE6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFJlbW92ZSBpbXBsaWNpdCBjYXN0IGZyb20gZ2Jvb2xlYW4gdG8gR3N0RWxlbWVudFN0YXRlUmV0dXJuOyBtYWtlIHN1cmUgd2Ugc3RpbGwgcmV0dXJuIGZhaWx1cmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfY2hhbmdlX3N0YXRlKToKCSAgUmVtb3ZlIGltcGxpY2l0IGNhc3QgZnJvbSBnYm9vbGVhbiB0byBHc3RFbGVtZW50U3RhdGVSZXR1cm47CgkgIG1ha2Ugc3VyZSB3ZSBzdGlsbCByZXR1cm4gZmFpbHVyZSBpbiBwYXVzZWQgPT4gcmVhZHkgY2FzZSBpZgoJICB0aGUgcGFyZW50IGNsYXNzIGZhaWxzIHRvIGNoYW5nZSBzdGF0ZSBhbmQgb3VyIG93biBzdG9wCgkgIHZmdW5jIHN1Y2NlZWRzLgoKMjAwNS0wNS0xNyAxMDo0MTo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogTWVzc2FnZSB3YXMgdW5yZWZmZWQgdG9vIHNvb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBNZXNzYWdlIHdhcyB1bnJlZmZlZCB0b28gc29vbi4KCjIwMDUtMDUtMTYgMjE6MTc6MTQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RiaW4uYyAoc2lua19pdGVyYXRvcl9maWx0ZXIpOiBFcnIuLi4gdW0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDUtMTYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGJpbi5jIChzaW5rX2l0ZXJhdG9yX2ZpbHRlcik6IEVyci4uLiB1bS4uLgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYyAodGVzdF9naG9zdF9wYWRzKTogTmV3IHRlc3QgZm9yIHRoZQoJICBnaG9zdGluZy1pZi1lbGVtZW50cy1ub3QtaW4tc2FtZS1iaW4gYmVoYXZpb3IuCgoyMDA1LTA1LTE2IDIxOjA1OjIxICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IFVzZSBnX2F0b21pY19pbnRfZ2V0KCkgaW5zdGVhZCBvZiBhY2Nlc3NpbmcgcmVmY291bnQgZGlyZWN0bHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IFVzZSBnX2F0b21pY19pbnRfZ2V0KCkgaW5zdGVhZCBvZgoJICBhY2Nlc3NpbmcgcmVmY291bnQgZGlyZWN0bHkuCgoyMDA1LTA1LTE2IDIwOjIxOjU1ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiByZW1vdmUgR3N0RGF0YSBjaGVja3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06IHJlbW92ZSBHc3REYXRhIGNoZWNrcwoJICAqIGNoZWNrL2dzdC1saWJzL2dkcC5jOiAoU1RBUlRfVEVTVCk6IGZpeCBmb3IgQVBJIGNoYW5nZXMKCSAgKiBnc3QvTWFrZWZpbGUuYW06IGFkZCBtaW5pb2JqZWN0LCByZW1vdmUgZGF0YQoJICAqIGdzdC9nc3QuaDogYWRkIG1pbmlvYmplY3QsIHJlbW92ZSBkYXRhCgkgICogZ3N0L2dzdGRhdGEuYzogcmVtb3ZlCgkgICogZ3N0L2dzdGRhdGEuaDogcmVtb3ZlCgkgICogZ3N0L2dzdGRhdGFfcHJpdmF0ZS5oOiByZW1vdmUKCSAgKiBnc3QvZ3N0dHlwZXMuaDogcmVtb3ZlIEdzdEV2ZW50IGFuZCBHc3RNZXNzYWdlCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZSk6IGZpeCBmb3IgQVBJIGNoYW5nZXMKCSAgKiBnc3QvZ3N0bWFyc2hhbC5saXN0OiBjaGFuZ2UgQk9YRUQgLT4gT0JKRUNUCgkgIEltcGxlbWVudCBHc3RNaW5pT2JqZWN0LgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgTW9kaWZ5IHRvIGJlIHN1YmNsYXNzZXMgb2YgR3N0TWluaU9iamVjdC4KCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChfZ3N0X2J1ZmZlcl9pbml0aWFsaXplKSwgKGdzdF9idWZmZXJfZ2V0X3R5cGUpLAoJICAoZ3N0X2J1ZmZlcl9jbGFzc19pbml0KSwgKGdzdF9idWZmZXJfZmluYWxpemUpLCAoX2dzdF9idWZmZXJfY29weSksCgkgIChnc3RfYnVmZmVyX2luaXQpLCAoZ3N0X2J1ZmZlcl9uZXcpLCAoZ3N0X2J1ZmZlcl9uZXdfYW5kX2FsbG9jKSwKCSAgKGdzdF9zdWJidWZmZXJfZ2V0X3R5cGUpLCAoZ3N0X3N1YmJ1ZmZlcl9pbml0KSwKCSAgKGdzdF9idWZmZXJfY3JlYXRlX3N1YiksIChnc3RfYnVmZmVyX2lzX3NwYW5fZmFzdCksCgkgIChnc3RfYnVmZmVyX3NwYW4pOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKF9nc3RfZXZlbnRfaW5pdGlhbGl6ZSksIChnc3RfZXZlbnRfZ2V0X3R5cGUpLAoJICAoZ3N0X2V2ZW50X2NsYXNzX2luaXQpLCAoZ3N0X2V2ZW50X2luaXQpLCAoZ3N0X2V2ZW50X2ZpbmFsaXplKSwKCSAgKF9nc3RfZXZlbnRfY29weSksIChnc3RfZXZlbnRfbmV3KToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoX2dzdF9tZXNzYWdlX2luaXRpYWxpemUpLAoJICAoZ3N0X21lc3NhZ2VfZ2V0X3R5cGUpLCAoZ3N0X21lc3NhZ2VfY2xhc3NfaW5pdCksCgkgIChnc3RfbWVzc2FnZV9pbml0KSwgKGdzdF9tZXNzYWdlX2ZpbmFsaXplKSwgKF9nc3RfbWVzc2FnZV9jb3B5KSwKCSAgKGdzdF9tZXNzYWdlX25ldyksIChnc3RfbWVzc2FnZV9uZXdfZXJyb3IpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3dhcm5pbmcpLCAoZ3N0X21lc3NhZ2VfbmV3X3RhZyksCgkgIChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCksIChnc3RfbWVzc2FnZV9uZXdfYXBwbGljYXRpb24pOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgICogZ3N0L2dzdHByb2JlLmM6IChnc3RfcHJvYmVfcGVyZm9ybSksCgkgIChnc3RfcHJvYmVfZGlzcGF0Y2hlcl9kaXNwYXRjaCk6CgkgICogZ3N0L2dzdHByb2JlLmg6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChfZ3N0X3F1ZXJ5X2luaXRpYWxpemUpLCAoZ3N0X3F1ZXJ5X2dldF90eXBlKSwKCSAgKGdzdF9xdWVyeV9jbGFzc19pbml0KSwgKGdzdF9xdWVyeV9maW5hbGl6ZSksIChnc3RfcXVlcnlfaW5pdCksCgkgIChfZ3N0X3F1ZXJ5X2NvcHkpLCAoZ3N0X3F1ZXJ5X25ldyk6CgkgIFVwZGF0ZSBlbGVtZW50cyBmb3IgR3N0RGF0YSAtPiBHc3RNaW5pT2JqZWN0IGNoYW5nZXMKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9maW5hbGl6ZSksIChnc3RfcXVldWVfbG9ja2VkX2ZsdXNoKSwKCSAgKGdzdF9xdWV1ZV9jaGFpbiksIChnc3RfcXVldWVfbG9vcCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGJ1ZmZlcnN0b3JlLmM6CgkgIChnc3RfYnVmZmVyX3N0b3JlX2FkZF9idWZmZXJfZnVuYyksCgkgIChnc3RfYnVmZmVyX3N0b3JlX2NsZWFyZWRfZnVuYyksIChnc3RfYnVmZmVyX3N0b3JlX2dldF9idWZmZXIpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2VzaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zha2VzaW5rX3JlbmRlcik6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlc3JjX2NsYXNzX2luaXQpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfbW1hcF9idWZmZXJfZ2V0X3R5cGUpLAoJICAoZ3N0X21tYXBfYnVmZmVyX2NsYXNzX2luaXQpLCAoZ3N0X21tYXBfYnVmZmVyX2luaXQpLAoJICAoZ3N0X21tYXBfYnVmZmVyX2ZpbmFsaXplKSwgKGdzdF9maWxlc3JjX21hcF9yZWdpb24pLAoJICAoZ3N0X2ZpbGVzcmNfY3JlYXRlX3JlYWQpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9zcmNfZXZlbnQpLCAoZnJlZV9lbnRyeV9idWZmZXJzKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgKGdzdF9kcF9oZWFkZXJfZnJvbV9idWZmZXIpOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuaDoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZHAtcHJpdmF0ZS5oOgoKMjAwNS0wNS0xNSAyMzoxODo0MCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzogRG9uJ3QgaW5jbHVkZSBoZWFkZXJzIHRoYXQgd2VyZSBqdXN0IHJlbW92ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOiBEb24ndCBpbmNsdWRlIGhlYWRlcnMgdGhhdCB3ZXJlCgkgIGp1c3QgcmVtb3ZlZC4KCjIwMDUtMDUtMTUgMjM6MTY6MjkgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOiBSZW1vdmUgc29tZSBlbGVtZW50cyB0aGF0IGRvbid0IG5lZWQgdG8gYmUgaW4gdGhlIGNvcmUgKG9yIGV2ZW4gZXhpc3QgYXQgYWxsKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOiBSZW1vdmUgc29tZSBlbGVtZW50cyB0aGF0IGRvbid0CgkgIG5lZWQgdG8gYmUgaW4gdGhlIGNvcmUgKG9yIGV2ZW4gZXhpc3QgYXQgYWxsKS4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0YWdncmVnYXRvci5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RhZ2dyZWdhdG9yLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdG1kNXNpbmsuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0bWQ1c2luay5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RtdWx0aWZpbGVzcmMuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0bXVsdGlmaWxlc3JjLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHBpcGVmaWx0ZXIuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0cGlwZWZpbHRlci5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RzaGFwZXIuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0c2hhcGVyLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHN0YXRpc3RpY3MuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0c3RhdGlzdGljcy5oOgoJICAqIHBvL1BPVEZJTEVTLmluOiBSZW1vdmUgYWJvdmUgZmlsZXMuCgoyMDA1LTA1LTE0IDE4OjAxOjEyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YmluLmMgKGdzdF9iaW5faXRlcmF0ZV9zaW5rcyk6IFVzZSBzaW5rX2l0ZXJhdG9yX2ZpbHRlciBzbyBhcyB0byBnZXQgdGhlIHJlZnMgcmlnaHQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTE0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RiaW4uYyAoZ3N0X2Jpbl9pdGVyYXRlX3NpbmtzKTogVXNlIHNpbmtfaXRlcmF0b3JfZmlsdGVyCgkgIHNvIGFzIHRvIGdldCB0aGUgcmVmcyByaWdodC4KCSAgKHNpbmtfaXRlcmF0b3JfZmlsdGVyKTogTmV3IGZ1bmN0aW9uLCB3cmFwcyBiaW5fZWxlbWVudF9pc19zaW5rLAoJICB1bnJlZmZpbmcgb2JqZWN0cyB0aGF0IGRvbid0IHBhc3MgdGhlIGZpbHRlci4KCjIwMDUtMDUtMTQgMTc6MTI6MTEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwaXBlbGluZS5jIChnc3RfcGlwZWxpbmVfaW5pdCk6IERyb3AgcmVmIG9uIGJ1cyBhZnRlciBnc3RfZWxlbWVudF9zZXRfYnVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNS0xNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYyAoZ3N0X3BpcGVsaW5lX2luaXQpOiBEcm9wIHJlZiBvbiBidXMgYWZ0ZXIKCSAgZ3N0X2VsZW1lbnRfc2V0X2J1cy4KCSAgKGdzdF9waXBlbGluZV9kaXNwb3NlKTogU2V0IHRoZSBidXMgb24gdGhlIHBpcGVsaW5lIHRvIE5VTEwuIEluCgkgIG5vcm1hbCBjYXNlcywgdGhpcyB3aWxsIGRlc3Ryb3kgdGhlIGJ1cy4KCSAgKiBnc3QvZ3N0dXRpbHMuYyAocHJlcGFyZV9saW5rX21heWJlX2dob3N0aW5nKTogRHJvcCByZWYgb24gcm9vdAoJICBvYmplY3QuCgoyMDA1LTA1LTE0IDE1OjU0OjQ5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YmluLmMgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKTogRml4IHN0YXRlIGNoYW5nZXMgaWYgYSBiaW4gaGFzIG5vIHNpbmtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNS0xNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0YmluLmMgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKTogRml4IHN0YXRlIGNoYW5nZXMgaWYgYSBiaW4KCSAgaGFzIG5vIHNpbmtzLgoKMjAwNS0wNS0xNCAxNTozMjozNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmMgKGdzdF9lbGVtZW50X2xpbmtfcGFkcyk6IEluc3RlYWQgb2YgY2FsbGluZyBnc3RfcGFkX2xpbmssIGNhbGwgcGFkX2xpbmtfbWF5YmVfZ2hvc3RpbmcsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTEzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R1dGlscy5jIChnc3RfZWxlbWVudF9saW5rX3BhZHMpOiBJbnN0ZWFkIG9mIGNhbGxpbmcKCSAgZ3N0X3BhZF9saW5rLCBjYWxsIHBhZF9saW5rX21heWJlX2dob3N0aW5nLAoJICAocGFkX2xpbmtfbWF5YmVfZ2hvc3RpbmcpOiBMaW5rcyBwYWRzLCBtYWtpbmcgc3VyZSB0aGF0IHRoZQoJICBlbGVtZW50cyBiZWluZyBsaW5rZWQgYXJlIGluIHRoZSBzYW1lIGJpbi4KCSAgKGZpbmRfY29tbW9uX3Jvb3QsIG9iamVjdF9oYXNfYW5jZXN0b3IsIGdob3N0X3VwLCByZW1vdmVfcGFkKToKCSAgSGVscGVycyBmb3IgcGFkX2xpbmtfbWF5YmVfZ2hvc3RpbmcuCgoyMDA1LTA1LTEzIDEyOjUzOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkgIFJlcXVpcmUgR0xpYiA+PSAyLjQuMCAoZm9yIHRoZSBnX2F0b21pY18qIGZ1bmNzKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVxdWlyZSBHTGliID49IDIuNC4wIChmb3IgdGhlIGdfYXRvbWljXyogZnVuY3MpCgoyMDA1LTA1LTEzIDEwOjE4OjQxICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgYWRkIG1pc3NpbmcgLmggZmlsZSB0byBzcGVjIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtaXNzaW5nIC5oIGZpbGUgdG8gc3BlYyBmaWxlCgoyMDA1LTA1LTEzIDA5OjI3OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc291cmNlLnR4dDoKCSAgTWVudGlvbiBHc3RQdXNoU3JjCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBNZW50aW9uIEdzdFB1c2hTcmMKCjIwMDUtMDUtMTIgMTk6NDU6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBJZGVudGlmeSBzaW5rcyBieSB0aGVpciBmbGFnIHRvIGF2b2lkIG92ZXJseSBjb21wbGljYXRlZCBjaGVja3MgKGZvdyBub3cpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX2luaXQpLAoJICAoZ3N0X2Jhc2VzaW5rX2FjdGl2YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY191bmxvY2spLAoJICAoZ3N0X2Jhc2VzcmNfaXNfc2Vla2FibGUpOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksCgkgIChiaW5fZWxlbWVudF9pc19zaW5rKSwgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfYWRkX3BhZCksIChnc3RfZWxlbWVudF9xdWVyeSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgSWRlbnRpZnkgc2lua3MgYnkgdGhlaXIgZmxhZyB0byBhdm9pZCBvdmVybHkgY29tcGxpY2F0ZWQKCSAgY2hlY2tzIChmb3cgbm93KS4KCSAgRG8gc3RhdGUgY2hhbmdlcyBldmVuIGZvciBlbGVtZW50cyBub3QgcmVhY2hhYmxlIGZyb20gdGhlCgkgIHNpbmtzLgoJICBCYXNlU2luayBpcyBhIHNpbmsgbm93IDopCgkgIFNvbWUgbW9yZSBkZWJ1Z2dpbmcgaW5mbyBpbiB0aGUgYmFzZXNyYy4KCjIwMDUtMDUtMTIgMTU6MDk6MTcgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogSW1wbGVtZW50IF9xdWVyeSBvbiBhIGJpbiwgc2ltaWxhciB0byBfc2VuZF9ldmVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5fcXVlcnkpOgoJICBJbXBsZW1lbnQgX3F1ZXJ5IG9uIGEgYmluLCBzaW1pbGFyIHRvIF9zZW5kX2V2ZW50LgoKMjAwNS0wNS0xMiAxMzo1OTo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogRGlzY29udCBldmVudCBvZmZzZXQgZm9ybWF0IHNob3VsZCBiZSBHU1RfRk9STUFUX0JZVEVTLCBub3QgR1NUX0ZPUk1BVF9USU1FLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19kb19zZWVrKToKCSAgRGlzY29udCBldmVudCBvZmZzZXQgZm9ybWF0IHNob3VsZCBiZSBHU1RfRk9STUFUX0JZVEVTLAoJICBub3QgR1NUX0ZPUk1BVF9USU1FLgoKMjAwNS0wNS0xMiAxMzoxODoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogU2FtZSBmaXggYXMgUm9uYWxkJ3MgYnV0IHdpdGhvdXQgdGhlIHNpZ25hbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX2dldF9zdGF0ZSk6CgkgIFNhbWUgZml4IGFzIFJvbmFsZCdzIGJ1dCB3aXRob3V0IHRoZSBzaWduYWwuCgoyMDA1LTA1LTEyIDEyOjI3OjA3ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuYzogTm8sIGFuIGVsZW1lbnQgaXMgbm90IGEgcGFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3F1ZXJ5X3Bvc2l0aW9uKToKCSAgTm8sIGFuIGVsZW1lbnQgaXMgbm90IGEgcGFkLgoKMjAwNS0wNS0xMiAxMjoxNzoyMyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBJZiBhIGNoaWxkIGlzIHJlbW92ZWQgZnJvbSBhIGJpbiB3aGlsZSB3ZSByZW1vdmUgdGhlIGNoaWxkIGZyb20gdGhlIGJpbiBhbmQgd2hpbGUgd2UncmUgcmV0cmlldmluZyBpdHMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpLCAoY2JfcGFyZW50X3Vuc2V0KSwKCSAgKGdzdF9iaW5fZ2V0X3N0YXRlKToKCSAgSWYgYSBjaGlsZCBpcyByZW1vdmVkIGZyb20gYSBiaW4gd2hpbGUgd2UgcmVtb3ZlIHRoZSBjaGlsZCBmcm9tCgkgIHRoZSBiaW4gYW5kIHdoaWxlIHdlJ3JlIHJldHJpZXZpbmcgaXRzIHN0YXRlLCBzaWduYWwgdGhpcyB0byB0aGUKCSAgZ2V0X3N0YXRlIGZ1bmN0aW9uIHNvIHdlIGFib3J0IHRoZSB3YWl0IChpbnN0ZWFkIG9mIHdhaXRpbmcgZm9yCgkgIGEgdGltZW91dCkgYW5kIGNhbiBpbW1lZGlhdGVseSByZS1pdGVyYXRlIG92ZXIgYWxsIG90aGVyIGVsZW1lbnRzLgoKMjAwNS0wNS0xMiAxMDo0MzoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlLzogQWRkZWQgaXNfc2Vla2FibGUgdG8gQmFzZVNyYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19pc19zZWVrYWJsZSksCgkgIChnc3RfYmFzZXNyY19zdGFydCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGdzdC9iYXNlL2dzdHB1c2hzcmMuYzogKGdzdF9wdXNoc3JjX2dldF90eXBlKSwKCSAgKGdzdF9wdXNoc3JjX2Jhc2VfaW5pdCksIChnc3RfcHVzaHNyY19jbGFzc19pbml0KSwKCSAgKGdzdF9wdXNoc3JjX2luaXQpLCAoZ3N0X3B1c2hzcmNfY3JlYXRlKToKCSAgKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkgIEFkZGVkIGlzX3NlZWthYmxlIHRvIEJhc2VTcmMKCSAgQWRkZWQgc2ltcGxlIFB1c2hTcmMuCgoyMDA1LTA1LTExIDA5OjIxOjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogRml4IHJlZmNvdW50aW5nIGluIHV0aWxzIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfYWRkX3BhZCksIChnc3RfZWxlbWVudF9xdWVyeSk6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X2VsZW1lbnRfbGlua19wYWRzKSwgKGdzdF9lbGVtZW50X3F1ZXJ5X3Bvc2l0aW9uKSwKCSAgKGdzdF9lbGVtZW50X3F1ZXJ5X2NvbnZlcnQpLCAoaW50ZXJzZWN0X2NhcHNfZnVuYyksCgkgIChnc3RfcGFkX3F1ZXJ5X3Bvc2l0aW9uKSwgKGdzdF9wYWRfcXVlcnlfY29udmVydCk6CgkgIEZpeCByZWZjb3VudGluZyBpbiB1dGlscyBmdW5jdGlvbi4KCSAgTm8gcG9pbnQgaW4gdHJ5aW5nIHRvIGFjdGl2YXRlIGEgcGFkIHdoZW4gaXQncyBhZGRlZCwgaXQgY291bGQKCSAgYmUgYWRkZWQgZnJvbSB0aGUgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIGFuZCB0aGVuIHdlIGRlYWRsb2NrLCB0aGUKCSAgZWxlbWVudCBoYXMgdG8gZGVjaWRlIHdoYXQgdG8gZG8uCgoyMDA1LTA1LTExIDAzOjM3OjEwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYyAoZ3N0X2Zha2VzaW5rX3JlbmRlcik6IEVyLCBlbWl0IHdpdGgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDUtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmMgKGdzdF9mYWtlc2lua19yZW5kZXIpOiBFciwgZW1pdCB3aXRoCgkgICphbGwqIHRoZSBhcmd1bWVudHMuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpOiBHcmFiIHRoZQoJICBzdHJlYW0gbG9jayBpZiBpdCdzIGEgRkxVU0hfRE9ORTsgbm9ybWFsIGZsdXNoZXMgZG9uJ3QgZ2V0IHRoZQoJICBsb2NrIChhY2NvcmRpbmcgdG8gdGhlIGRvY3MgLS0gaWYgdGhpcyBpcyB3cm9uZyBjaGFuZ2UgdGhlIGRvY3MpLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKTogU2V0IHRoZSBidXMgdG8KCSAgZmx1c2ggbWVzc2FnZXMgaW4gdGhlIE5VTEwgc3RhdGUuCgkgICogZ3N0L2dzdGJ1cy5jIChnc3RfYnVzX3Bvc3QpOiBJZiBhIGJ1cyBpcyBmbHVzaGluZywgdW5yZWYgdGhlCgkgIG1lc3NhZ2UgaW1tZWRpYXRlbHkgYW5kIHJldHVybi4KCSAgKGdzdF9idXNfc2V0X2ZsdXNoaW5nKTogTmV3IGZ1bmN0aW9uLiBJZiBhIGJ1cyBpcyBmbHVzaGluZywgaXQKCSAgZmx1c2hlcyBvdXQgYW55IHF1ZXVlZCBtZXNzYWdlcyBhbmQgaW1tZWRpYXRlbHkgdW5yZWZzIG5ldwoJICBtZXNzYWdlcy4gVGhpcyBpcyBzbyB3aGVuIGFuIGVsZW1lbnQgZ29lcyB0byBOVUxMLCBhbGwgb2YgdGhlCgkgIHVuaGFuZGxlZCBtZXNzYWdlcyBjb21pbmcgZnJvbSBpdCBjYW4gYmUgZnJlZWQsIGFuZCB0aGVpcgoJICByZWZlcmVuY2VzIHRvIHRoZSBlbGVtZW50IGRyb3BwZWQuIEluIG90aGVyIHdvcmRzOiBtZXNzYWdlIHNvdXJjZQoJICByZWYgY29uc2lkZXJlZCBoYXJtZnVsIDpQCgkgICogZ3N0L2dzdGJpbi5jIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6IFVucmVmIHBlZXIgZWxlbWVudCB3aGVuCgkgIHdlJ3JlIGZpbmlzaGVkIHdpdGggaXQuCgkgICogZ3N0L2dzdG1lc3NhZ2UuYyAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpOgoKMjAwNS0wNS0xMCAxNDo1MTo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICByZW1vdmUgc3R1cGlkIHByaW50ZgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHN0dXBpZCBwcmludGYKCjIwMDUtMDUtMTAgMTQ6NTA6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dmFsdWUuYzogQWRkZWQgZmxhZ3Mgc2VyaWFsaXplL2Rlc2VyaWFsaXplL2NvbXBhcmUgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfY29tcGFyZV9mbGFncyksCgkgIChnc3RfdmFsdWVfc2VyaWFsaXplX2ZsYWdzKSwgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9mbGFncyksCgkgIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOgoJICBBZGRlZCBmbGFncyBzZXJpYWxpemUvZGVzZXJpYWxpemUvY29tcGFyZSBjb2RlLgoKMjAwNS0wNS0wOSAyMTozNzo1NCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJveHlfZ2V0Y2Fwcyk6IEludGVyc2VjdCB0aGUgcGVlcidzIGNhcHMgd2l0aCBvdXIgY2Fwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDUtMDkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJveHlfZ2V0Y2Fwcyk6CgkgIEludGVyc2VjdCB0aGUgcGVlcidzIGNhcHMgd2l0aCBvdXIgY2Fwcy4KCjIwMDUtMDUtMDkgMTU6NTQ6MjYgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC86IEhhbmRsZSBuZWdhdGl2ZSBvZmZzZXRzIGJldHRlci4gRml4ZXMgZGVjb2RlYmluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoaGVscGVyX2ZpbmRfcGVlayk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAoZmluZF9wZWVrKToKCSAgSGFuZGxlIG5lZ2F0aXZlIG9mZnNldHMgYmV0dGVyLiBGaXhlcyBkZWNvZGViaW4uCgoyMDA1LTA1LTA5IDE0OjQ3OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogSW1wbGVtZW50IGFjY2VwdF9jYXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fcHJveHlfZ2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9xdWVyeSk6CgkgIEltcGxlbWVudCBhY2NlcHRfY2Fwcy4KCSAgRml4IHNpbGx5IGxvY2svdW5sb2NrIG1pc21hdGNoIGluIGJhc2UgY2xhc3MuCgoyMDA1LTA1LTA5IDEwOjUzOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1wdXNoLXB1bGwudHh0OgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RxdWVyeXV0aWxzLmM6CgkqIGdzdC9nc3RxdWVyeXV0aWxzLmg6CgkqIGdzdC9nc3RxdWV1ZS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgUmVtb3ZlIG9sZCBxdWVyeSBmdW5jdGlvbnMuIFBvcnRlZCBvbGQgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbW92ZSBvbGQgcXVlcnkgZnVuY3Rpb25zLiBQb3J0ZWQgb2xkIGNvZGUuCgkgIEFkZGVkIHBvc2l0aW9uL2NvbnZlcnQgaGVscGVyIGZ1bmN0aW9ucyB0byBnc3R1dGlscy4KCSAgUmVvcmRlcmVkIGdzdHBhZC5jIGNvZGUsIGdyb3VwaW5nIHJlbGV2YW50IHRoaW5ncy4KCSAgUmVtb3ZlIGdzdF9tZXNzYWdlX25ldygpLCBhbHdheXMgbmVlZCB0byBzcGVmaWN5IGEgc3BlY2lmaWMKCSAgbWVzc2FnZS4KCjIwMDUtMDUtMDkgMDY6MjE6MTAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RpdGVyYXRvci5oOiBBZGQgc29tZSBpbmNsdWRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDUtMDkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmg6IEFkZCBzb21lIGluY2x1ZGVzLgoJICAqIGdzdC9nc3RxdWVyeXV0aWxzLmg6IEluY2x1ZGUgbW9yZSBoZWFkZXJzLgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfcXVlcnlfcG9zaXRpb24pOiBOZXcgcm91dGluZSwgcmVwbGFjZXMKCSAgc29tZSB1c2VzIG9mIGdzdF9wYWRfcXVlcnkuCgkgICogZ3N0L2dzdHF1ZXJ5dXRpbHMuYzogQnVpbGQgZml4ZXMuIE1ha2UgcGFyc2UgZnVuY3Rpb25zIGlnbm9yZQoJICBOVUxMIG91dCBwYXJhbWV0ZXJzLgoJICAoZ3N0X3F1ZXJ5X25ld19wb3NpdGlvbik6IE5ldyBwcm9jLCBhbGxvY2F0ZXMgYSBuZXcgcG9zaXRpb24KCSAgcXVlcnkuCgkgICogZ3N0L01ha2VmaWxlLmFtIChsaWJnc3RyZWFtZXJfQEdTVF9NQUpPUk1JTk9SQF9sYV9TT1VSQ0VTKTogQWRkCgkgIGdzdHF1ZXJ5dXRpbHMuYyB0byB0aGUgYnVpbGQuCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jIChnc3Rfc3RydWN0dXJlX3NldF92YWxpc3QpOiBJbXBsZW1lbnQgd2l0aAoJICB0aGUgZ2VuZXJpYyBHX1ZBTFVFX0NPTExFQ1QuCgoyMDA1LTA1LTA4IDE3OjA3OjA1ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L01ha2VmaWxlLmFtOiBBZGRlZCBnc3RxdWVyeXV0aWxzLmggdG8gdGhlIGxpc3Qgb2YgaGVhZGVycyB0byBpbnN0YWxsLCB0aGF0IHdhcyBhICduYWNodHknIG1vdmUgd2luZ28gOikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOiAoZ3N0X2hlYWRlcnMpOgoJICBBZGRlZCBnc3RxdWVyeXV0aWxzLmggdG8gdGhlIGxpc3Qgb2YgaGVhZGVycyB0byBpbnN0YWxsLCB0aGF0IHdhcwoJICBhICduYWNodHknIG1vdmUgd2luZ28gOikKCjIwMDUtMDUtMDYgMjE6NDE6MjIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RxdWVyeS5oCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTA2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RxdWVyeS5oCgkgICogZ3N0L2dzdHF1ZXJ5LmMgKF9nc3RfcXVlcnlfaW5pdGlhbGl6ZSk6IEV4dGVuZCBHc3RRdWVyeSBmcm9tCgkgIEdzdERhdGEsIGluaXQgYSBtZW1jaHVuay4KCSAgKHN0YW5kYXJkX2RlZmluaXRpb25zKTogQWRkIGEgZmV3IHF1ZXJ5IHR5cGVzLCBkZXByZWNhdGUgYSBmZXcuCgkgIChnc3RfcXVlcnlfZ2V0X3R5cGUpOiBOZXcgcHJvYy4KCSAgKF9nc3RfcXVlcnlfY29weSwgX2dzdF9xdWVyeV9mcmVlLCBnc3RfcXVlcnlfbmV3KTogR3N0RGF0YQoJICBpbXBsZW1lbnRhdGlvbi4KCSAgKGdzdF9xdWVyeV9uZXdfYXBwbGljYXRpb24sIGdzdF9xdWVyeV9nZXRfc3RydWN0dXJlKTogTmV3IHB1YmxpYwoJICBwcm9jcy4KCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1xdWVyeS50eHQ6IFJlbW92ZWQgTElOS1MgZnJvbSB0aGUgcXVlcnkgdHlwZXMsCgkgIGJlY2F1c2UgYWxsIHRoZSByZXN0IGNhbiBiZSBkaXNwYXRjaGVkIHRvIG90aGVyIHBhZHMgLS0gc2VlbWVkCgkgIHVnbHkgdG8gaGF2ZSBhIHF1ZXJ5IHRoYXQgY291bGRuJ3QgYmUgZGlzcGF0Y2hlZC4gaW50ZXJuYWxfbGlua3MKCSAgaXMgZmluZSBhcyBhIHBhZCBtZXRob2QuCgkgICogZ3N0L2dzdHBhZC5oOiBBZGQgcXVlcnkyIGFzIGEgcGFkIG1ldGhvZCwgYWRkIHRoZSBuZXcgZnVuY3Rpb25zCgkgIGluIGdzdHBhZC5jLCBidXQgbWFpbnRhaW4gYmluYXJ5IGNvbXBhdGliaWxpdHkgZm9yIHRoZSBtb21lbnQuCgkgIFdpbGwgZml4IGJlZm9yZSAwLjkgaXMgb3V0LgoJICAqIGdzdC9nc3RxdWVyeXV0aWxzLmM6CgkgICogZ3N0L2dzdHF1ZXJ5dXRpbHMuaDogTmV3IGZpbGVzLCBpbXBsZW1lbnQgMyBtZXRob2RzIGZvciBlYWNoCgkgIHF1ZXJ5IHR5cGU6IHBhcnNlX3F1ZXJ5LCBwYXJzZV9yZXNwb25zZSwgYW5kIHNldC4gUHJvYmFibHkgbmVlZCBhbgoJICBhbGxvY2F0b3IgYXMgd2VsbC4KCSAgKiBnc3QvZ3N0Lmg6IEFkZCBnc3RxdWVyeS5oIGFuZCBnc3RxdWVyeXV0aWxzLmggdG8gdGhlIGxpc3QuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmMgKGdzdF9maWxlc2lua19xdWVyeTIpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2VzcmNfcXVlcnkyKTogUmVwbGFjZSBvbGQgcXVlcnksCgkgIHF1ZXJ5X3R5cGVzLCBhbmQgZm9ybWF0cyBtZXRob2RzLgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9xdWVyeTIsIGdzdF9wYWRfcXVlcnkyX2RlZmF1bHQpCgkgIChnc3RfcGFkX3NldF9xdWVyeTJfZnVuY3Rpb24pOiBOZXcgZnVuY3Rpb25zLgoJICAoZ3N0X3JlYWxfcGFkX2luaXQpOiBTZXQgcXVlcnkyX2RlZmF1bHQgYXMgdGhlIGRlZmF1bHQgcXVlcnkyCgkgIGZ1bmN0aW9uLiBCYXNpY2FsbHkganVzdCBkaXNwYXRjaGVzIHRvIGludGVybmFsbHkgbGlua2VkIHBhZHMuCgkgIE5lZWRzIHJldmlldyEKCSAgKiBnc3QvZ3N0ZGF0YV9wcml2YXRlLmggKF9HU1RfREFUQV9JTklUKTogU2V0IGRhdGEtPnJlZmNvdW50IHRvIDEKCSAgd2l0aG91dCB1c2luZyB0aGUgYXRvbWljIG9wZXJhdGlvbnMuIE9ubHkgb25lIHRocmVhZCBjYW4gcG9zc2libHkKCSAgYmUgYWNjZXNzaW5nIHRoZSBkYXRhIGF0IHRoaXMgcG9pbnQuIENoYW5nZWQgc28gYXMgdG8gYXZvaWQKCSAgZ3N0X2F0b21pYyBvcGVyYXRpb25zLgoKMjAwNS0wNS0wNiAxOTo1MDoyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogQWxzbyBzZXQgY2FwcyBpZiB3ZSB1c2UgdGhlIGZhbGxiYWNrIGJ1ZmZlciBhbGxvYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hbGxvY19idWZmZXIpLCAoZ3N0X3BhZF9wdXNoKToKCSAgQWxzbyBzZXQgY2FwcyBpZiB3ZSB1c2UgdGhlIGZhbGxiYWNrIGJ1ZmZlciBhbGxvYy4KCjIwMDUtMDUtMDYgMTc6MzM6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBQdXJnZSBHc3RBdG9taWMgc3R1ZmYgZnJvbSBkb2NzIGFuZCB3aW4zMiBtYWtlZmlsZXMgYXMgd2VsbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RhdG9taWMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdG1lbWNodW5rLnNnbWw6CgkgICogdGVzdHN1aXRlL2VsZW1lbnRzL3N0cnVjdF9pMzg2Lmg6CgkgICogd2luMzIvR1N0cmVhbWVyLnZjcHJvajoKCSAgKiB3aW4zMi9NYWtlZmlsZToKCSAgUHVyZ2UgR3N0QXRvbWljIHN0dWZmIGZyb20gZG9jcyBhbmQgd2luMzIgbWFrZWZpbGVzIGFzIHdlbGwKCjIwMDUtMDUtMDYgMTc6MTA6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBGaXggZ3N0X3BhZF9wZWVyX2dldF9jYXBzKCksIG1ha2UgaXQgcmV0dXJuIE5VTEwgaWYgbm8gcGVlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3Byb3h5X2dldGNhcHMpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9nZXRjYXBzKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3BlZXJfZ2V0X2NhcHMpOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2luaXQpLCAoZ3N0X3F1ZXVlX2dldGNhcHMpLAoJICAoZ3N0X3F1ZXVlX2J1ZmZlcmFsbG9jKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksCgkgIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlKSwgKGdzdF9xdWV1ZV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RxdWV1ZS5oOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkX3RlbXBsYXRlKSwKCSAgKGludGVyc2VjdF9jYXBzX2Z1bmMpOgoJICBGaXggZ3N0X3BhZF9wZWVyX2dldF9jYXBzKCksIG1ha2UgaXQgcmV0dXJuIE5VTEwgaWYgbm8gcGVlci4KCSAgQWx3YXlzIHRha2UgUVVFVUVfTE9DSyBhZnRlciBTVFJFQU1fTE9DSyBvciB3ZSBtaWdodCBkZWFkbG9jay4KCSAgU29tZSBmaXhlcyBmb3IgdGhlIHBlZXJfZ2V0X2NhcHMoKSBjaGFuZ2UuCgoyMDA1LTA1LTA2IDE2OjE5OjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQWN0dWFsbHkgZG8gc29tZXRoaW5nIHdpdGggZXJyb3IgY29kZXMgcmV0dXJuZWQgZnJvbSB0aGUgcHVzaCBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfcHJlcm9sbF9xdWV1ZV9lbXB0eSksCgkgIChnc3RfYmFzZXNpbmtfaGFuZGxlX2J1ZmZlciksIChnc3RfYmFzZXNpbmtfY2hhaW5fdW5sb2NrZWQpLAoJICAoZ3N0X2Jhc2VzaW5rX2FjdGl2YXRlKToKCSAgQWN0dWFsbHkgZG8gc29tZXRoaW5nIHdpdGggZXJyb3IgY29kZXMgcmV0dXJuZWQgZnJvbSB0aGUgcHVzaAoJICBmdW5jdGlvbnMuCgoyMDA1LTA1LTA2IDA4OjI1OjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgU29tZSBtb3JlIGRvY3VtZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc291cmNlLnR4dDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2VzaW5rX2V2ZW50KSwgKGdzdF9iYXNlc2lua19hY3RpdmF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19pbml0KSwgKGdzdF9iYXNlc3JjX3VubG9jayksCgkgIChnc3RfYmFzZXNyY19hY3RpdmF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKToKCSAgU29tZSBtb3JlIGRvY3VtZW50YXRpb24uCgkgIEZpeGVkIHNjaGVkdWxpbmcgZGVjaXNpb24gaW4gX3BhZHNfYWN0aXZhdGUoKS4KCjIwMDUtMDUtMDUgMjE6NTk6NTMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgZmluYWwgY3J1ZnQgZml4YWdlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaW5hbCBjcnVmdCBmaXhhZ2UKCjIwMDUtMDUtMDUgMjE6NDU6NTQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBjcnVmdCByZW1vdmFsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjcnVmdCByZW1vdmFsCgoyMDA1LTA1LTA1IDIxOjQyOjI0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIHJldmVydCBjcnVmdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2ZXJ0IGNydWZ0CgoyMDA1LTA1LTA1IDIxOjM3OjM0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcmV2ZXJ0IGFjY2lkZW50YWwgY29tbWl0IG9mIGNydWZ0IC0tIGRvaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2ZXJ0IGFjY2lkZW50YWwgY29tbWl0IG9mIGNydWZ0IC0tIGRvaAoKMjAwNS0wNS0wNSAxNTowMjo0MCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYyAodGVzdF8yX2VsZW1lbnRzKTogIkZpeCIgdGhlIHRlc3Qgc3VpdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTA1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmMgKHRlc3RfMl9lbGVtZW50cyk6ICJGaXgiCgkgIHRoZSB0ZXN0IHN1aXRlLgoKMjAwNS0wNS0wNSAxMTo0MzowNiArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGZpeCBicm9rZW4gc3BlYyBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggYnJva2VuIHNwZWMgZmlsZQoKMjAwNS0wNS0wNSAwOTozMTo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEFkZGVkIG9iamVjdCB0byBoZWxwIGluIG1ha2luZyBjb2xsZWN0IHBhZCBiYXNlZCBlbGVtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19pbml0KSwKCSAgKGdzdF9iYXNlc3JjX3NldF9kYXRhZmxvd19mdW5jcyksIChnc3RfYmFzZXNyY19xdWVyeSk6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0cGFkc19nZXRfdHlwZSksCgkgIChnc3RfY29sbGVjdHBhZHNfY2xhc3NfaW5pdCksIChnc3RfY29sbGVjdHBhZHNfaW5pdCksCgkgIChnc3RfY29sbGVjdHBhZHNfZmluYWxpemUpLCAoZ3N0X2NvbGxlY3RwYWRzX25ldyksCgkgIChnc3RfY29sbGVjdHBhZHNfc2V0X2Z1bmN0aW9uKSwgKGdzdF9jb2xsZWN0cGFkc19hZGRfcGFkKSwKCSAgKGZpbmRfcGFkKSwgKGdzdF9jb2xsZWN0cGFkc19yZW1vdmVfcGFkKSwKCSAgKGdzdF9jb2xsZWN0cGFkc19pc19hY3RpdmUpLCAoZ3N0X2NvbGxlY3RwYWRzX2NvbGxlY3QpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2NvbGxlY3RfcmFuZ2UpLCAoZ3N0X2NvbGxlY3RwYWRzX3N0YXJ0KSwKCSAgKGdzdF9jb2xsZWN0cGFkc19zdG9wKSwgKGdzdF9jb2xsZWN0cGFkc19wZWVrKSwKCSAgKGdzdF9jb2xsZWN0cGFkc19wb3ApLCAoZ3N0X2NvbGxlY3RwYWRzX2F2YWlsYWJsZSksCgkgIChnc3RfY29sbGVjdHBhZHNfcmVhZCksIChnc3RfY29sbGVjdHBhZHNfZmx1c2gpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2NoYWluKToKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9mYWtlc2lua19nZXRfdGltZXMpLCAoZ3N0X2Zha2VzaW5rX2V2ZW50KSwKCSAgKGdzdF9mYWtlc2lua19wcmVyb2xsKSwgKGdzdF9mYWtlc2lua19yZW5kZXIpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVzaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2ZpbGVzaW5rX2luaXQpLCAoZ3N0X2ZpbGVzaW5rX3NldF9sb2NhdGlvbiksCgkgIChnc3RfZmlsZXNpbmtfb3Blbl9maWxlKSwgKGdzdF9maWxlc2lua19jbG9zZV9maWxlKSwKCSAgKGdzdF9maWxlc2lua19wYWRfcXVlcnkpLCAoZ3N0X2ZpbGVzaW5rX2V2ZW50KSwKCSAgKGdzdF9maWxlc2lua19yZW5kZXIpLCAoZ3N0X2ZpbGVzaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkgIEFkZGVkIG9iamVjdCB0byBoZWxwIGluIG1ha2luZyBjb2xsZWN0IHBhZCBiYXNlZCBlbGVtZW50cy4KCSAgUG9ydGVkIGZpbGVzaW5rLgoJICBNYWtlIGV2ZW50IGZ1bmN0aW9uIGluIHNpbmsgYmFzZWNsYXNzIHJldHVybiBnYm9vbGVhbi4KCjIwMDUtMDUtMDUgMDk6Mjg6MDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBGaXggbmFtZSBsb29rdXAgaW4gR3N0QmluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3NlbmRfZXZlbnQpLCAoY29tcGFyZV9uYW1lKSwKCSAgKGdzdF9iaW5fZ2V0X2J5X25hbWUpOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19lbnRyeV9uZXcpLCAoZ3N0X2Nsb2NrX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Nsb2NrX2ZpbmFsaXplKToKCSAgKiBnc3QvZ3N0ZGF0YS5jOiAoZ3N0X2RhdGFfcmVwbGFjZSk6CgkgICogZ3N0L2dzdGRhdGEuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcmVxdWVzdF9wYWQpLAoJICAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9pbml0KSwgKGdzdF9vYmplY3RfcmVmKSwKCSAgKGdzdF9vYmplY3RfdW5yZWYpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX3BlZXJfc2V0X2FjdGl2ZSksCgkgIChnc3RfcGFkX3NldF9jaGVja2dldHJhbmdlX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfbGlua19jaGVja19jb21wYXRpYmxlX3VubG9ja2VkKSwgKGdzdF9wYWRfc2V0X2NhcHMpLAoJICAoZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKSwgKGdzdF9wYWRfcHVsbF9yYW5nZSksCgkgIChnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXRfY2FwcyksIChnc3RfcGFkX3N0YXJ0X3Rhc2spLAoJICAoZ3N0X3BhZF9wYXVzZV90YXNrKSwgKGdzdF9wYWRfc3RvcF90YXNrKToKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfZWxlbWVudF9yZXF1ZXN0X3BhZCksIChnc3RfcGFkX3Byb3h5X2dldGNhcHMpOgoJICBGaXggbmFtZSBsb29rdXAgaW4gR3N0QmluLgoJICBBZGRlZCBfZGF0YV9yZXBsYWNlKCkgZnVuY3Rpb24gYW5kIF9idWZmZXJfcmVwbGFjZSgpCgkgIFVzZSBmaW5hbGl6ZSBtZXRob2QgdG8gY2xlYW4gdXAgY2xvY2suCgkgIEZpeCByZWZjb3VudGluZyBvbiByZXF1ZXN0IHBhZHMuCgkgIEZpeCBwYWQgc2NoZWR1bGUgbW9kZSBlcnJvci4KCSAgU29tZSBtb3JlIG9iamVjdCByZWZjb3VudGluZyBkZWJ1ZyBpbmZvLAoKMjAwNS0wNS0wNCAyMToyOTo0NCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgR0NDIDQgZml4ZW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTA0ICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogZG9jcy9nc3QvdG1wbC9nc3RhdG9taWMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfYWN0aXZhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2VzcmNfaW5pdCksIChnc3RfYmFzZXNyY19zZXRfZGF0YWZsb3dfZnVuY3MpLAoJICAoZ3N0X2Jhc2VzcmNfcXVlcnkpLCAoZ3N0X2Jhc2VzcmNfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlc3JjX2dldF9wcm9wZXJ0eSksIChnc3RfYmFzZXNyY19jaGVja19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2VzcmNfYWN0aXZhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19hY3RpdmF0ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc3JjX2FjdGl2YXRlKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2VzcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmFrZXNyY19zZXRfcHJvcGVydHkpLCAoZ3N0X2Zha2VzcmNfZ2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX3NpbmtfYWN0aXZhdGUpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogKGZpbmRfZWxlbWVudF9nZXRfbGVuZ3RoKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGVja2dldHJhbmdlKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9hY3RpdmF0ZSk6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9zYXZlX3RoeXNlbGYpLCAoZ3N0X2Jpbl9yZXN0b3JlX3RoeXNlbGYpOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19kb19zaW1wbGlmeSksIChnc3RfY2Fwc19zYXZlX3RoeXNlbGYpLAoJICAoZ3N0X2NhcHNfbG9hZF90aHlzZWxmKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSksCgkgIChnc3RfZWxlbWVudF9zYXZlX3RoeXNlbGYpLCAoZ3N0X2VsZW1lbnRfcmVzdG9yZV90aHlzZWxmKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2xvYWRfYW5kX2xpbmspLCAoZ3N0X3BhZF9zYXZlX3RoeXNlbGYpLAoJICAoZ3N0X2dob3N0X3BhZF9zYXZlX3RoeXNlbGYpLCAoZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHhtbC5jOiAoZ3N0X3htbF93cml0ZSksIChnc3RfeG1sX3BhcnNlX2RvYyksCgkgIChnc3RfeG1sX3BhcnNlX2ZpbGUpLCAoZ3N0X3htbF9wYXJzZV9tZW1vcnkpLAoJICAoZ3N0X3htbF9nZXRfZWxlbWVudCksIChnc3RfeG1sX21ha2VfZWxlbWVudCk6CgkgICogZ3N0L2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOiAoZ3N0X2ZpbGVfaW5kZXhfbG9hZCksCgkgIChfZmlsZV9pbmRleF9pZF9zYXZlX3htbCksIChnc3RfZmlsZV9pbmRleF9jb21taXQpOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6IChyZWFkX3N0cmluZyksIChyZWFkX3VpbnQpLAoJICAocmVhZF9lbnVtKSwgKGxvYWRfcGFkX3RlbXBsYXRlKSwgKGxvYWRfZmVhdHVyZSksIChsb2FkX3BsdWdpbiksCgkgIChsb2FkX3BhdGhzKToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IChnc3RfZHBfcGFja2V0X2Zyb21fY2FwcyksCgkgIChnc3RfZHBfcGFja2V0X2Zyb21fZXZlbnQpLCAoZ3N0X2RwX2NhcHNfZnJvbV9wYWNrZXQpOgoJICAqIHRvb2xzL2dzdC1jb21wbGV0ZS5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LWNvbXBwcmVwLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKHhtbGxhdW5jaF9wYXJzZV9jbWRsaW5lKToKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzKToKCSAgR0NDIDQgZml4ZW4uCgoyMDA1LTA1LTA0IDE5OjQxOjA1ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgZml4IHVwIHNwZWMgZmlsZSB0byB3b3JrIGZvciAwLjkgYnJhbmNoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggdXAgc3BlYyBmaWxlIHRvIHdvcmsgZm9yIDAuOSBicmFuY2gKCjIwMDUtMDUtMDMgMTI6NDY6NDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBhcHBseSBwYXRjaCBmcm9tICMxNzI1MjYgdG8gbWFrZSByZWdpc3RlciB3b3JrIG9uIE1hY09TWAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2NoZWNrX21vZHVsZSksCgkgIChnc3RfcGx1Z2luX2NoZWNrX2ZpbGUpLCAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOgoJICBhcHBseSBwYXRjaCBmcm9tICMxNzI1MjYgdG8gbWFrZSByZWdpc3RlciB3b3JrIG9uIE1hY09TWAoKMjAwNS0wNS0wMiAxNjo1MDozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBmaWxlIC5jdnNpZ25vcmUgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaWxlIC5jdnNpZ25vcmUgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgoyMDA1LTA1LTAyIDE1OjMxOjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9pbmRleGVycy9jYWNoZTEuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9pbmRleGVycy9pbmRleGR1bXAuYzoKCSogdGVzdHN1aXRlL2luZGV4ZXJzL2NhY2hlMS5jOgoJKiB0ZXN0c3VpdGUvaW5kZXhlcnMvaW5kZXhkdW1wLmM6CgkgIG1vcmUgcHJpbnQgZm9ybWF0IGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIHByaW50IGZvcm1hdCBmaXhlcwoKMjAwNS0wNS0wMiAxNToyMDozMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kZWJ1Zy9wcmludGZfZXh0ZW5zaW9uLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvcHJvcGVydHkuaDoKCSogdGVzdHN1aXRlL2RlYnVnL3ByaW50Zl9leHRlbnNpb24uYzoKCSogdGVzdHN1aXRlL2VsZW1lbnRzL3Byb3BlcnR5Lmg6CgkgIG1lcmdlcyBmcm9tIDAuOCBmb3IgNjQgYml0IGlzc3VlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWVyZ2VzIGZyb20gMC44IGZvciA2NCBiaXQgaXNzdWVzCgoyMDA1LTA1LTAyIDEzOjU1OjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkZWQgZHJhZnQgZm9yIG5ldyBxdWVyeSBBUEkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXB1c2gtcHVsbC50eHQ6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtcXVlcnkudHh0OgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX2dldF9yYW5nZV91bmxvY2tlZCksCgkgIChnc3RfYmFzZXNyY19zdGFydCk6CgkgIEFkZGVkIGRyYWZ0IGZvciBuZXcgcXVlcnkgQVBJLgoJICBBZGRlZCBkcmFmdCBmb3IgYmV0dGVyIHNlbGVjdGluZyBzY2hlZHVsaW5nIG1ldGhvZHMuCgkgIE1ha2UgYmFzZXNyYyBpZ25vcmUgbGVuZ3RoIGlmIHRoZSBzdWJjbGFzcyBkb2VzIG5vdCBzdXBwb3J0CgkgIGl0LgoKMjAwNS0wNS0wMiAxMTo1NDozMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgYXV0b21ha2UgMS41IGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhdXRvbWFrZSAxLjUgZml4ZXMKCjIwMDUtMDUtMDIgMTE6NDc6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2ZhcS9NYWtlZmlsZS5hbToKCSogZG9jcy9tYW51YWwvTWFrZWZpbGUuYW06CgkqIGRvY3MvbWFudWFscy5tYWs6CgkqIGRvY3MvcHdnL01ha2VmaWxlLmFtOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIHBvc3NpYmxlIGZpeGVzIGZvciBhdXRvbWFrZS0xLjUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBvc3NpYmxlIGZpeGVzIGZvciBhdXRvbWFrZS0xLjUKCjIwMDUtMDQtMjggMTY6Mjg6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBCZXR0ZXIgZGVidWdnaW5nIG9mIGNsb2NraW5nIGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfYmFzZV9pbml0KSwKCSAgKGdzdF9iYXNlc2lua19wYWRfZ2V0Y2FwcyksIChnc3RfYmFzZXNpbmtfaW5pdCksCgkgIChnc3RfYmFzZXNpbmtfZG9fc3luYyk6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfZW50cnlfbmV3KToKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9kaXNjb250X2dldF92YWx1ZSk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChwaXBlbGluZV9idXNfaGFuZGxlciksCgkgIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF91bmxvY2tlZCk6CgkgIEJldHRlciBkZWJ1Z2dpbmcgb2YgY2xvY2tpbmcgaW5mby4KCSAgQWxsb3cgTlVMTCB2YWx1ZXMgd2hlbiBnZXR0aW5nIGRpc2NvbnQgdmFsdWVzLgoKMjAwNS0wNC0yNyAxNDoxOTo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC86IEluY3JlYXNlIHRpbWVvdXQgZm9yIGNoZWNrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdG9iamVjdC5jOiAoU1RBUlRfVEVTVCksIChnc3Rfb2JqZWN0X3N1aXRlKToKCSAgKiBjaGVjay9nc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3N1aXRlKToKCSAgSW5jcmVhc2UgdGltZW91dCBmb3IgY2hlY2tzLgoKMjAwNS0wNC0yNyAxMzo1Mjo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogZml4IHRoZSBicm9rZW4gcnVsZSBmb3IgY2xlYW51cC4gIEFwcGFyZW50bHkgdGhpcyBydWxlIGlzIG9ubHkgbmVlZGVkIG9uIEZDMiwgc28gbWF5YmUgdGhpcyB3YXJyYW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIGZpeCB0aGUgYnJva2VuIHJ1bGUgZm9yIGNsZWFudXAuICBBcHBhcmVudGx5IHRoaXMgcnVsZSBpcwoJICBvbmx5IG5lZWRlZCBvbiBGQzIsIHNvIG1heWJlIHRoaXMgd2FycmFudHMgZnVydGhlciBhdXRvdG9vbAoJICBpbnNwZWN0aW9uLgoKMjAwNS0wNC0yNiAxODowNzo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R0cmFzaHN0YWNrLmg6IE9vb2hoLiBhIG5hc3R5IG9uZSEgQWZ0ZXIgaGF2aW5nIGEgZmFpbGVkIHBvcCgpIGZyb20gdGhlIHN0YWNrLCBpdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHN0YWNrIGlzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dHJhc2hzdGFjay5oOgoJICBPb29oaC4gYSBuYXN0eSBvbmUhIEFmdGVyIGhhdmluZyBhIGZhaWxlZCBwb3AoKSBmcm9tIHRoZSBzdGFjaywKCSAgaXQncyBwb3NzaWJsZSB0aGF0IHRoZSBzdGFjayBpcyBlbXB0eS4gSW4gdGhhdCBjYXNlLCBkb24ndAoJICBmb2xsb3cgdGhlIE5VTEwgcG9pbnRlci4KCjIwMDUtMDQtMjUgMTM6MDA6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBSZW1vdmUgZ3N0X2xpYnJhcnlfbG9hZCBhcyBpdCBkb2VzIG1vcmUgaGFybSB0aGFuIGdvb2Qgd2l0aCB0aGUgbmV3IGdfbW9kdWxlIGZsYWdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9wZWVyX3NldF9hY3RpdmUpLAoJICAoZ3N0X3BhZF9zZXRfY2hlY2tnZXRyYW5nZV9mdW5jdGlvbiksCgkgIChnc3RfcGFkX2xpbmtfY2hlY2tfY29tcGF0aWJsZV91bmxvY2tlZCksIChnc3RfcGFkX2xpbmtfcHJlcGFyZSksCgkgIChnc3RfcGFkX2NoZWNrX3B1bGxfcmFuZ2UpLCAoZ3N0X3BhZF9wdWxsX3JhbmdlKSwKCSAgKGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldF9jYXBzKSwgKGdzdF9wYWRfc3RhcnRfdGFzayksCgkgIChnc3RfcGFkX3BhdXNlX3Rhc2spLCAoZ3N0X3BhZF9zdG9wX3Rhc2spOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fbG9hZCk6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICBSZW1vdmUgZ3N0X2xpYnJhcnlfbG9hZCBhcyBpdCBkb2VzIG1vcmUgaGFybSB0aGFuIGdvb2Qgd2l0aAoJICB0aGUgbmV3IGdfbW9kdWxlIGZsYWdzLgoJICBSZXZlcnQgYm9ndXMgY2FwcyB0ZW1wbGF0ZSBjaGVjayBpbiBwYWQgbGlua2luZywgcGFkIGNhcHMKCSAgYXJlIGltcG9ydGFudCB3aGVuIGxpbmtpbmcgbm90IHRoZSB0ZW1wbGF0ZSwgd2hpY2ggaXMgbW9yZQoJICBnZW5lcmFsIHRoYW4gdGhlIGN1cnJlbnQgY2Fwcy4KCjIwMDUtMDQtMjUgMTE6NTE6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvTWFrZWZpbGUuYW06CgkgIHRoZXJlIGlzIG5vIHNwZWVkLiAgcmVhbGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGhlcmUgaXMgbm8gc3BlZWQuICByZWFsbHkuCgoyMDA1LTA0LTI1IDA5OjUxOjA2ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvYXV0b3BsdWcvOiBEaWUsIHNwaWRlciwgZGllLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXV0b3BsdWcvLmN2c2lnbm9yZToKCSAgKiBnc3QvYXV0b3BsdWcvTWFrZWZpbGUuYW06CgkgICogZ3N0L2F1dG9wbHVnL2dzdHNlYXJjaGZ1bmNzLmM6CgkgICogZ3N0L2F1dG9wbHVnL2dzdHNlYXJjaGZ1bmNzLmg6CgkgICogZ3N0L2F1dG9wbHVnL2dzdHNwaWRlci5jOgoJICAqIGdzdC9hdXRvcGx1Zy9nc3RzcGlkZXIuaDoKCSAgKiBnc3QvYXV0b3BsdWcvZ3N0c3BpZGVyaWRlbnRpdHkuYzoKCSAgKiBnc3QvYXV0b3BsdWcvZ3N0c3BpZGVyaWRlbnRpdHkuaDoKCSAgKiBnc3QvYXV0b3BsdWcvc3BpZGVydGVzdC5jOgoJICBEaWUsIHNwaWRlciwgZGllLgoKMjAwNS0wNC0yNSAwOTo0NTozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuKjogQWRkZWQgc3R1YnMgZm9yIHVuaW1wbGVtZW50ZWQgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9wZWVyX3NldF9hY3RpdmUpLAoJICAoZ3N0X3BhZF9zZXRfY2hlY2tnZXRyYW5nZV9mdW5jdGlvbiksIChnc3RfcGFkX2NoZWNrX3B1bGxfcmFuZ2UpLAoJICAoZ3N0X3BhZF9wdWxsX3JhbmdlKSwgKGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldF9jYXBzKSwKCSAgKGdzdF9wYWRfc3RhcnRfdGFzayksIChnc3RfcGFkX3BhdXNlX3Rhc2spLCAoZ3N0X3BhZF9zdG9wX3Rhc2spOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgQWRkZWQgc3R1YnMgZm9yIHVuaW1wbGVtZW50ZWQgZnVuY3Rpb25zLgoKMjAwNS0wNC0yNSAwMzo1NDoyOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBmaWxlIHB5dGhvbi1lbGVtZW50cy50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaWxlIHB5dGhvbi1lbGVtZW50cy50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgoyMDA1LTA0LTI0IDIzOjUzOjA2ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RwYWQuaDogRGlzYWJsZSBzb21lIHVuaW1wbGVtZW50ZWQgZnVuY3Rpb25zLiAgV2ltLCBwbGVhc2UgZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmg6IERpc2FibGUgc29tZSB1bmltcGxlbWVudGVkIGZ1bmN0aW9ucy4gIFdpbSwKCSAgcGxlYXNlIGZpeC4KCjIwMDUtMDQtMjQgMjI6NDk6NDUgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgQ29udmVydCBldmVyeXRoaW5nIGZyb20gR3N0QXRvbWljSW50IHRvIGdfYXRvbWljX2ludF8qLCBhbmQgcmVtb3ZlIGdzdGF0b21pYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENvbnZlcnQgZXZlcnl0aGluZyBmcm9tIEdzdEF0b21pY0ludCB0byBnX2F0b21pY19pbnRfKiwgYW5kCgkgIHJlbW92ZSBnc3RhdG9taWMuCgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3RhdG9taWMuYzoKCSAgKiBnc3QvZ3N0YXRvbWljLmg6CgkgICogZ3N0L2dzdGF0b21pY19pbXBsLmg6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICAqIGdzdC9nc3RjYXBzLmM6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBnc3QvZ3N0ZGF0YS5jOgoJICAqIGdzdC9nc3RkYXRhLmg6CgkgICogZ3N0L2dzdGRhdGFfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICAqIGdzdC9nc3RvYmplY3QuYzoKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogQWRkIGdzdF9hdG9taWNfaW50X3NldCgpIGNvbXBhaXRpYmlsaXR5IGZ1bmN0aW9uLgoJICAqIGdzdC9nc3R1dGlscy5oOgoKMjAwNS0wNC0yNCAyMjo0NDoxMyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBjaGVjay9nc3QvZ3N0cGFkLmM6IE9oIHllYWgsIGl0J3MgYWx3YXlzIG5pY2UgdG8gbWFrZSB0aGUgcmVncmVzc2lvbnMgdGVzdHMgd29yay4gIFJlbW92ZSBzb21lIGNvZGUgdGhhdCBpcyBubyBsb25nZXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHBhZC5jOiAoU1RBUlRfVEVTVCk6IE9oIHllYWgsIGl0J3MgYWx3YXlzIG5pY2UgdG8KCSAgbWFrZSB0aGUgcmVncmVzc2lvbnMgdGVzdHMgd29yay4gIFJlbW92ZSBzb21lIGNvZGUgdGhhdCBpcyBubwoJICBsb25nZXIgdHJ1ZS4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2xpbmtfY2hlY2tfdGVtcGxhdGVzX2NvbXBhdGlibGVfdW5sb2NrZWQpOgoJICBEaXNhYmxlIHdhcm5pbmcgZm9yIHBhZHMgd2l0aG91dCB0ZW1wbGF0ZXMuCgoyMDA1LTA0LTI0IDIxOjE2OjQ1ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RwYWQuYzogUmVtb3ZlIGhhbmRsaW5nIG9mIGZpbHRlcmVkIGNhcHMuICBGaXgvbWVyZ2UgZnVuY3Rpb25zIHRoYXQgaGFuZGxlIGZpbHRlcmVkIGxpbmtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IFJlbW92ZSBoYW5kbGluZyBvZiBmaWx0ZXJlZCBjYXBzLiAgRml4L21lcmdlCgkgIGZ1bmN0aW9ucyB0aGF0IGhhbmRsZSBmaWx0ZXJlZCBsaW5rcy4KCSAgKiBnc3QvZ3N0cGFkLmg6IFJlbW92ZSAnYXBwZmlsdGVyJyBmaWVsZCBhbmQgcHJvdG90eXBlcyBvZgoJICByZW1vdmVkIGZ1bmN0aW9ucy4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogRml4L3JlbW92ZSB1dGlsaXR5IGZ1bmN0aW9ucyB0aGF0IGhhbmRsZQoJICBmaWx0ZXJlZCBjYXBzLgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiBBZGQgc2VyaWFsaXphdGlvbi9kZXNlcmlhbGl6YXRpb24gb2YgY2FwcwoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6IElnbm9yZSBmaWx0ZXJlZCBjYXBzIHdoZW4gbGlua2luZy4gIFRoaXMKCSAgcmVxdWlyZXMgZml4aW5nIHNvIHRoYXQgdGhlIGZpbHRlciBjYXBzIG5vdGF0aW9uIGNyZWF0ZXMKCSAgYSBjYXBzZmlsdGVyIGVsZW1lbnQgYW5kIHNldHMgdGhlIGZpbHRlcl9jYXBzIHByb3BlcnR5LiAgSQoJICB0aGluayBldmVyeW9uZSBwcm9iYWJseSB3YW50cyB0byBrZWVwIHRoZSBzaG9ydGhhbmQgbm90YXRpb24uCgkgICogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6IHVwZGF0ZXMgZm9yIEFQSSBjaGFuZ2VzLgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6IFJlZ2lzdGVyIGNhcHNmaWx0ZXIgZWxlbWVudC4KCSAgKiBnc3QvTWFrZWZpbGUuYW06IGZpeCBzcGFjaW5nCgkgICogZG9jcy9yYW5kb20vZHMvMC45LXN1Z2dlc3RlZC1jaGFuZ2VzOiByYW5kb20KCjIwMDUtMDQtMjMgMjM6Mjk6NDcgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2VsZW1lbnRzLzogTmV3IGVsZW1lbnQgdGhhdCBhY3RzIGxpa2UgYW4gaWRlbnRpdHksIGJ1dCBmaWx0ZXJzIGNhcHMuICBXaWxsIGV2ZW50dWFsbHkgcmVwbGFjZSBmaWx0ZXJlZCBjYXBzIGluIHBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiBOZXcgZWxlbWVudCB0aGF0IGFjdHMgbGlrZSBhbgoJICBpZGVudGl0eSwgYnV0IGZpbHRlcnMgY2Fwcy4gIFdpbGwgZXZlbnR1YWxseSByZXBsYWNlIGZpbHRlcmVkCgkgIGNhcHMgaW4gcGFkIGxpbmtpbmcuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9jcmVhdGVfYWxsX3BhZHMpOiBOZXcgZnVuY3Rpb24KCSAgdG8gY3JlYXRlIGFsbCB0aGUgQUxXQVlTIHBhZHMgdGhhdCBhcmUgcmVnaXN0ZXJlZCB3aXRoIGFuCgkgIGVsZW1lbnQgY2xhc3MuICBUaGlzIGZ1bmN0aW9uYWxpdHkgc2hvdWxkIGV2ZW50dWFsbHkgYmUKCSAgbWVyZ2VkIGluIHdpdGggR3N0RWxlbWVudCBpbml0aWFsaXphdGlvbi4KCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiB0ZXN0c3VpdGUvdHJpZ2dlci9SRUFETUU6IHBhcnQgb2YgdHJpZ2dlciB0ZXN0IGNvZGUgdGhhdCBzaG91bGQKCSAgaGF2ZSBiZWVuIGNoZWNrZWQgaW4gYSBsb25nIHRpbWUgYWdvLgoKMjAwNS0wNC0yMyAyMzoyNTowOCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvTWFrZWZpbGUuYW06IFJlbW92ZSBhcy1saWJ0b29sIHN0dWZmLiAgSXQncyBsaWtlbHkgbm90IGFuZCBoYXJkIHRvIGNhcnJ5IGFyb3VuZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOiBSZW1vdmUgYXMtbGlidG9vbCBzdHVmZi4gIEl0J3MgbGlrZWx5IG5vdAoJICBuZWVkZWQgd2l0aCBuZXcgdmVyc2lvbnMgb2YgbGlidG9vbCAobm9ib2R5IHdpbGwgY29uZmlybSB0aGlzKSwKCSAgYW5kIGhhcmQgdG8gY2FycnkgYXJvdW5kLgoJICAqIGdzdC9hdXRvcGx1Zy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogZ3N0L2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zY2hlZHVsZXJzL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2J5dGVzdHJlYW0vTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvY29udHJvbC9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvZ2V0Yml0cy9NYWtlZmlsZS5hbToKCjIwMDUtMDQtMjEgMTc6MTA6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGZpbGUgTWFrZWZpbGUuYW0gd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaWxlIE1ha2VmaWxlLmFtIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoKMjAwNS0wNC0yMSAwOTozNzozNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogU29tZSBtb3JlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXB1c2gtcHVsbC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1NVC1yZWZjb3VudGluZy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWNhcHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJ1cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1wdXNoLXB1bGwudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcXVlcnkudHh0OgoJICBTb21lIG1vcmUgZG9jcy4KCjIwMDUtMDQtMjEgMDk6MzM6MzEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBVc2UgcGFyZW50IHJlZmNvdW50IGluIEdzdE1lc3NhZ2UgdG8gZW5zdXJlIEdzdFN0cnVjdHVyZSBjb25zaXN0ZW5jeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKF9nc3RfbWVzc2FnZV9jb3B5KSwgKF9nc3RfbWVzc2FnZV9mcmVlKSwKCSAgKGdzdF9tZXNzYWdlX25ldyksIChnc3RfbWVzc2FnZV9uZXdfZXJyb3IpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3dhcm5pbmcpLCAoZ3N0X21lc3NhZ2VfbmV3X3RhZyksCgkgIChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCksIChnc3RfbWVzc2FnZV9uZXdfYXBwbGljYXRpb24pLAoJICAoZ3N0X21lc3NhZ2VfZ2V0X3N0cnVjdHVyZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3NldF9wYXJlbnRfcmVmY291bnQpLAoJICAoZ3N0X3N0cnVjdHVyZV9jb3B5X2NvbmRpdGlvbmFsKToKCSAgVXNlIHBhcmVudCByZWZjb3VudCBpbiBHc3RNZXNzYWdlIHRvIGVuc3VyZSBHc3RTdHJ1Y3R1cmUKCSAgY29uc2lzdGVuY3kuCgkgIENsZWFuZWQgdXAgaGVhZGVycyBhIGJpdC4KCjIwMDUtMDQtMjAgMDk6MTA6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBNYWtlIGdzdF9jYXBzX3JlcGxhY2UoKSB3b3JrIGxpa2Ugb3RoZXIgX3JlcGxhY2UoKSBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfYmFzZV9pbml0KSwKCSAgKGdzdF9iYXNlc2lua19wYWRfZ2V0Y2FwcyksIChnc3RfYmFzZXNpbmtfaW5pdCksCgkgIChnc3RfYmFzZXNpbmtfY2hhaW5fdW5sb2NrZWQpOgoJICAqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChoZWxwZXJfZmluZF9zdWdnZXN0KSwKCSAgKGdzdF90eXBlX2ZpbmRfaGVscGVyKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGF2ZV90eXBlKSwgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9pbml0KSwKCSAgKHN0b3BfdHlwZWZpbmRpbmcpLCAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCksCgkgIChmaW5kX3N1Z2dlc3QpLCAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGVja2dldHJhbmdlKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9nZXRyYW5nZSksIChkb190eXBlZmluZCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYWN0aXZhdGUpOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKF9nc3RfYnVmZmVyX3N1Yl9mcmVlKSwKCSAgKGdzdF9idWZmZXJfZGVmYXVsdF9mcmVlKSwgKGdzdF9idWZmZXJfZGVmYXVsdF9jb3B5KSwKCSAgKGdzdF9idWZmZXJfc2V0X2NhcHMpOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19yZWYpLCAoZ3N0X2NhcHNfdW5yZWYpLAoJICAoZ3N0X2NhcHNfcmVwbGFjZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ldyksCgkgIChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfcGVlcl9zZXRfYWN0aXZlKSwKCSAgKGdzdF9wYWRfc2V0X2NoZWNrZ2V0cmFuZ2VfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9saW5rX3ByZXBhcmVfZmlsdGVyZWQpLCAoZ3N0X3BhZF9yZWxpbmtfZmlsdGVyZWQpLAoJICAoZ3N0X3BhZF9zZXRfY2FwcyksIChnc3RfcGFkX2NoZWNrX3B1bGxfcmFuZ2UpLAoJICAoZ3N0X3BhZF9wdWxsX3JhbmdlKSwgKGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldF9jYXBzKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6IChnc3RfdHlwZV9maW5kX3JlZ2lzdGVyKToKCSAgTWFrZSBnc3RfY2Fwc19yZXBsYWNlKCkgd29yayBsaWtlIG90aGVyIF9yZXBsYWNlKCkgZnVuY3Rpb25zLgoJICBVc2UgX2NhcHNfcmVwbGFjZSgpIHdoZXJlIHBvc3NpYmxlLgoJICBNYWtlIHN1cmUgX21lc3NhZ2VfbmV3KCkgaW5pdGlhbGlzZXMgaXRzIGZpZWxkLgoJICBBZGQgZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0X2NhcHMoKQoKMjAwNS0wNC0xOCAwODo1MzowMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogcy9BUkdfL1BST1BfLy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDQtMTggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogcy9BUkdfL1BST1BfLy4KCjIwMDUtMDQtMTggMDg6MjQ6MzAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZXNyY19zZXRfcHJvcGVydHkpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA0LTE4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2VzcmNfc2V0X3Byb3BlcnR5KQoJICAoZ3N0X2Jhc2VzcmNfZ2V0X3Byb3BlcnR5KTogQkxPQ0tTSVpFIGlzIGEgVUxPTkcuIFJlbmFtZSBBUkdfLi4uCgkgIHRvIFBST1BfLi4uLgoKMjAwNS0wNC0xNiAyMDoyNzo1NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBORVdTOgoJKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSAgTkVXUyBidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTkVXUyBidWlsZAoKMjAwNS0wNC0xNiAyMDoxNjozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICByZW1vdmVkIHNvbWUgbGluZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlZCBzb21lIGxpbmUKCjIwMDUtMDQtMTYgMTY6Mjg6MDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBhZGQgZ3N0LXBsdWdpbnMtYmFzZSB0byBwa2djb25maWcgcGF0aAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGdzdC1wbHVnaW5zLWJhc2UgdG8gcGtnY29uZmlnIHBhdGgKCjIwMDUtMDQtMTQgMTc6MTc6MzAgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvZmFxL3VzaW5nLnhtbDogQWRkIG5vdGUgb24gZ3N0cmVhbWVyLXByb3BlcnRpZXMgKCMxNTQ5OTYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS91c2luZy54bWw6CgkgIEFkZCBub3RlIG9uIGdzdHJlYW1lci1wcm9wZXJ0aWVzICgjMTU0OTk2KS4KCjIwMDUtMDQtMTMgMTc6NDE6MjkgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2JiYi9vcHRpb25hbC1wcm9wZXJ0aWVzOiBTb21lIGFuYWx5c2lzIG9uIG9wdGlvbmFsIHByb3BlcnRpZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2JiYi9vcHRpb25hbC1wcm9wZXJ0aWVzOgoJICBTb21lIGFuYWx5c2lzIG9uIG9wdGlvbmFsIHByb3BlcnRpZXMuCgoyMDA1LTA0LTEyIDE1OjAwOjMwICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBVc2UgbGlieG1sMiBmb3IgcmVnaXN0cnkgcGFyc2luZywgdXNlIHN0YXRpY3BhZHRlbXBsYXRlcyBpbiBlbGVtZW50ZmFjdG9yaWVzLiBNYWtlcyBnc3RfaW5pdCgpICsvLSAxMHggZmFzdGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnRmYWN0b3J5LnNnbWw6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X2ZhY3RvcnlfaW5pdCksCgkgIChnc3RfZWxlbWVudF9mYWN0b3J5X2NsZWFudXApLCAoZ3N0X2VsZW1lbnRfcmVnaXN0ZXIpLAoJICAoX19nc3RfZWxlbWVudF9mYWN0b3J5X2FkZF9zdGF0aWNfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X3N0YXRpY19wYWRfdGVtcGxhdGVzKSwKCSAgKGdzdF9lbGVtZW50X2ZhY3RvcnlfY2FuX3NyY19jYXBzKSwKCSAgKGdzdF9lbGVtZW50X2ZhY3RvcnlfY2FuX3NpbmtfY2Fwcyk6CgkgICogZ3N0L3JlZ2lzdHJpZXMvTWFrZWZpbGUuYW06CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzogKGdzdF94bWxfcmVnaXN0cnlfZ2V0X3R5cGUpLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9jbGFzc19pbml0KSwgKGdzdF94bWxfcmVnaXN0cnlfaW5pdCksCgkgIChnc3RfeG1sX3JlZ2lzdHJ5X25ldyksIChnc3RfeG1sX3JlZ2lzdHJ5X3NldF9wcm9wZXJ0eSksCgkgIChnc3RfeG1sX3JlZ2lzdHJ5X2dldF9wcm9wZXJ0eSksIChnZXRfdGltZSksIChtYWtlX2RpciksCgkgIChnc3RfeG1sX3JlZ2lzdHJ5X2dldF9wZXJtc19mdW5jKSwKCSAgKHBsdWdpbl90aW1lc19vbGRlcl90aGFuX3JlY3Vyc2UpLCAocGx1Z2luX3RpbWVzX29sZGVyX3RoYW4pLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9vcGVuX2Z1bmMpLCAoZ3N0X3htbF9yZWdpc3RyeV9sb2FkX2Z1bmMpLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9zYXZlX2Z1bmMpLCAoZ3N0X3htbF9yZWdpc3RyeV9jbG9zZV9mdW5jKSwKCSAgKGFkZF90b19jaGFyX2FycmF5KSwgKHJlYWRfc3RyaW5nKSwgKHJlYWRfdWludCksIChyZWFkX2VudW0pLAoJICAobG9hZF9wYWRfdGVtcGxhdGUpLCAobG9hZF9mZWF0dXJlKSwgKGxvYWRfcGx1Z2luKSwgKGxvYWRfcGF0aHMpLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9sb2FkKSwgKGdzdF94bWxfcmVnaXN0cnlfbG9hZF9wbHVnaW4pLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9zYXZlX2NhcHMpLCAoZ3N0X3htbF9yZWdpc3RyeV9zYXZlX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfeG1sX3JlZ2lzdHJ5X3NhdmVfZmVhdHVyZSksIChnc3RfeG1sX3JlZ2lzdHJ5X3NhdmVfcGx1Z2luKSwKCSAgKGdzdF94bWxfcmVnaXN0cnlfc2F2ZSksIChnc3RfeG1sX3JlZ2lzdHJ5X3JlYnVpbGRfcmVjdXJzZSksCgkgIChnc3RfeG1sX3JlZ2lzdHJ5X3JlYnVpbGQpOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5Lmg6CgkgICogdG9vbHMvZ3N0LWNvbXBwcmVwLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfcGFkX3RlbXBsYXRlc19pbmZvKToKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9pbmZvKToKCSAgVXNlIGxpYnhtbDIgZm9yIHJlZ2lzdHJ5IHBhcnNpbmcsIHVzZSBzdGF0aWNwYWR0ZW1wbGF0ZXMgaW4KCSAgZWxlbWVudGZhY3Rvcmllcy4gTWFrZXMgZ3N0X2luaXQoKSArLy0gMTB4IGZhc3Rlci4KCjIwMDUtMDQtMTIgMTA6NTI6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgQWRkZWQgdHlwZWZpbmQgaGVscGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQWRkZWQgdHlwZWZpbmQgaGVscGVyLgoJICBTbWFsbCBwcmVyb2xsIGZpeCBpbiB0aGUgYmFzZSBzaW5rLgoJICBEaXNhYmxlIHR5cGVmaW5kIGNvZGUgaW4gYmFzZXNyYy4KCSAgQ3J1ZGUgcG9ydCBvZiB0eXBlZmluZGVsZW1lbnQuCgkgIEZha2VzcmMgY2xlYW51cHMuCgoyMDA1LTA0LTEyIDA5OjE2OjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogY2hlY2svZ3N0L2dzdGRhdGEuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGEuYzoKCSAgSW5jcmVhc2UgdGltZW91dCBzb21lIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEluY3JlYXNlIHRpbWVvdXQgc29tZSBtb3JlCgoyMDA1LTA0LTExIDEyOjAyOjEzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgb25seSBkaXJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBvbmx5IGRpcnMKCjIwMDUtMDQtMTEgMTE6NDA6MTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBmaXggZGlzdGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZGlzdGNoZWNrCgoyMDA1LTA0LTExIDExOjI0OjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svOiBGaXggdXAgdGhlIHRpbWVvdXQgc28gdGhhdCB0aGUgdGVzdCBkb2VzIG5vdCBmYWlsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YnVzLmM6IChnc3RidXNfc3VpdGUpOgoJICAqIGNoZWNrL2dzdC9nc3RkYXRhLmM6ICh0aHJlYWRfcmVmKSwgKGdzdF9kYXRhX3N1aXRlKToKCSAgKiBjaGVjay9nc3RjaGVjay5oOgoJICBGaXggdXAgdGhlIHRpbWVvdXQgc28gdGhhdCB0aGUgdGVzdCBkb2VzIG5vdCBmYWlsLgoKMjAwNS0wNC0xMSAwOTo1Mzo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkgIGRpc3QgdHJpZ2dlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGlzdCB0cmlnZ2VyCgoyMDA1LTA0LTEwIDIxOjQyOjMyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIHdvcmsgd2l0aCBkZWJ1ZyBkaXNhYmxlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd29yayB3aXRoIGRlYnVnIGRpc2FibGVkCgoyMDA1LTA0LTEwIDIwOjI5OjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgd29yayB3aXRoIGRlYnVnIGRpc2FibGVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3b3JrIHdpdGggZGVidWcgZGlzYWJsZWQKCjIwMDUtMDQtMTAgMTg6MTk6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogYXV0b2dlbi5zaDoKCSAgaWdub3JlIGFscmVhZHkgYXBwbGllZCBwYXRjaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIGFscmVhZHkgYXBwbGllZCBwYXRjaAoKMjAwNS0wNC0wOCAxMTozNDoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZmlsZSBnc3RwYXJlbnQuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpbGUgZ3N0cGFyZW50LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgoyMDA1LTA0LTA4IDExOjM0OjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBmaWxlIGdzdHBhcmVudC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlsZSBnc3RwYXJlbnQuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCjIwMDUtMDQtMDYgMTc6MzA6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBNb3JlIHdvcmsgb24gdGhlIGdlbmVyaWMgc291cmNlIGJhc2UgY2xhc3MsIGltcGxlbWVudCBzZWVraW5nLCBxdWVyeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvUkVBRE1FOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX2dldF90eXBlKSwKCSAgKGdzdF9iYXNlc3JjX2luaXQpLCAoZ3N0X2Jhc2VzcmNfZ2V0X2Zvcm1hdHMpLCAoZ3N0X2Jhc2VzcmNfcXVlcnkpLAoJICAoZ3N0X2Jhc2VzcmNfZ2V0X2V2ZW50X21hc2spLCAoZ3N0X2Jhc2VzcmNfZG9fc2VlayksCgkgIChnc3RfYmFzZXNyY19ldmVudF9oYW5kbGVyKSwgKGdzdF9iYXNlc3JjX2dldF9yYW5nZV91bmxvY2tlZCksCgkgIChnc3RfYmFzZXNyY19jaGVja19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2VzcmNfbG9vcCksCgkgIChnc3RfYmFzZXNyY191bmxvY2spLCAoZ3N0X2Jhc2VzcmNfZ2V0X3NpemUpLCAoZ3N0X2Jhc2VzcmNfc3RhcnQpLAoJICAoZ3N0X2Jhc2VzcmNfc3RvcCksIChnc3RfYmFzZXNyY19hY3RpdmF0ZSksCgkgIChnc3RfYmFzZXNyY19jaGFuZ2Vfc3RhdGUpLCAoYmFzZXNyY19maW5kX3BlZWspLAoJICAoYmFzZXNyY19maW5kX3N1Z2dlc3QpLCAoZ3N0X2Jhc2VzcmNfdHlwZV9maW5kKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlc3JjX2Jhc2VfaW5pdCksCgkgIChnc3RfZmlsZXNyY19jbGFzc19pbml0KSwgKGdzdF9maWxlc3JjX2luaXQpLAoJICAoZ3N0X2ZpbGVzcmNfZmluYWxpemUpLCAoZ3N0X2ZpbGVzcmNfc2V0X2xvY2F0aW9uKSwKCSAgKGdzdF9maWxlc3JjX3NldF9wcm9wZXJ0eSksIChnc3RfZmlsZXNyY19nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2ZpbGVzcmNfZnJlZV9wYXJlbnRfbW1hcCksIChnc3RfZmlsZXNyY19tYXBfcmVnaW9uKSwKCSAgKGdzdF9maWxlc3JjX21hcF9zbWFsbF9yZWdpb24pLCAoZ3N0X2ZpbGVzcmNfY3JlYXRlX21tYXApLAoJICAoZ3N0X2ZpbGVzcmNfY3JlYXRlX3JlYWQpLCAoZ3N0X2ZpbGVzcmNfY3JlYXRlKSwKCSAgKGdzdF9maWxlc3JjX2dldF9zaXplKSwgKGdzdF9maWxlc3JjX3N0YXJ0KSwgKGdzdF9maWxlc3JjX3N0b3ApOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfcGVlcl9zZXRfYWN0aXZlKSwKCSAgKGdzdF9wYWRfc2V0X2NoZWNrZ2V0cmFuZ2VfZnVuY3Rpb24pLCAoZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKSwKCSAgKGdzdF9wYWRfcHVsbF9yYW5nZSk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBNb3JlIHdvcmsgb24gdGhlIGdlbmVyaWMgc291cmNlIGJhc2UgY2xhc3MsIGltcGxlbWVudCBzZWVraW5nLAoJICBxdWVyeS4KCSAgTWFrZSBmaWxlc3JjIGV4dGVuZCB0aGUgYmFzZSBzb3VyY2UgY2xhc3MuCgkgIEFkZGVkIGdzdF9wYWRfc2V0X2NoZWNrZ2V0cmFuZ2VfZnVuY3Rpb24gdG8gR3N0UGFkLgoKMjAwNS0wNC0wNiAxMTowODowNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgcGtnY29uZmlnLzogTmV3IGZpbGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNC0wNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLWJhc2UucGMuaW46CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLXVuaW5zdGFsbGVkLnBjLmluOiBOZXcgZmlsZXMuCgkgICogcGtnY29uZmlnL01ha2VmaWxlLmFtOgoJICAqIGNvbmZpZ3VyZS5hYyAoQUNfT1VUUFVUKTogQWRkIGdzdHJlYW1lci1iYXNlIHBrZ2NvbmZpZyBmaWxlcy4KCjIwMDUtMDQtMDUgMTc6NDE6NTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9mYXEvY3ZzLnhtbDoKCSAgYWRkIGEgbm90ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgbm90ZQoKMjAwNS0wNC0wNSAwODo0NDoyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IE1hZGUgYmFzZSBzb3VyY2UgY2xhc3MsIG1ha2UgZmFrZXNyYyBleHRlbmQgaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9iYXNlL1JFQURNRToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX2Jhc2VfaW5pdCksCgkgIChnc3RfYmFzZXNpbmtfcGFkX2dldGNhcHMpLCAoZ3N0X2Jhc2VzaW5rX3BhZF9zZXRjYXBzKSwKCSAgKGdzdF9iYXNlc2lua19wYWRfYnVmZmVyX2FsbG9jKSwgKGdzdF9iYXNlc2lua19pbml0KSwKCSAgKGdzdF9iYXNlc2lua19kb19zeW5jKSwgKGdzdF9iYXNlc2lua19jaGFpbl91bmxvY2tlZCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfZ2V0X3R5cGUpLAoJICAoZ3N0X2Jhc2VzcmNfYmFzZV9pbml0KSwgKGdzdF9iYXNlc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2VzcmNfaW5pdCksIChnc3RfYmFzZXNyY19nZXRfZm9ybWF0cyksCgkgIChnc3RfYmFzZXNyY19nZXRfcXVlcnlfdHlwZXMpLCAoZ3N0X2Jhc2VzcmNfcXVlcnkpLAoJICAoZ3N0X2Jhc2VzcmNfZ2V0X2V2ZW50X21hc2spLCAoZ3N0X2Jhc2VzcmNfZXZlbnRfaGFuZGxlciksCgkgIChnc3RfYmFzZXNyY19zZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2VzcmNfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlc3JjX2dldF9yYW5nZV91bmxvY2tlZCksIChnc3RfYmFzZXNyY19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2VzcmNfbG9vcCksIChnc3RfYmFzZXNyY19hY3RpdmF0ZSksCgkgIChnc3RfYmFzZXNyY19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2VzcmNfYmFzZV9pbml0KSwKCSAgKGdzdF9mYWtlc3JjX2NsYXNzX2luaXQpLCAoZ3N0X2Zha2VzcmNfaW5pdCksCgkgIChnc3RfZmFrZXNyY19ldmVudF9oYW5kbGVyKSwgKGdzdF9mYWtlc3JjX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfZmFrZXNyY19nZXRfcHJvcGVydHkpLCAoZ3N0X2Zha2VzcmNfY3JlYXRlKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZXNyY19nZXRyYW5nZSksCgkgIChnc3RfZmlsZXNyY19vcGVuX2ZpbGUpLCAoZ3N0X2ZpbGVzcmNfbG9vcCksCgkgIChnc3RfZmlsZXNyY19hY3RpdmF0ZSksIChmaWxlc3JjX2ZpbmRfcGVlayksCgkgIChnc3RfZmlsZXNyY190eXBlX2ZpbmQpOgoJICBNYWRlIGJhc2Ugc291cmNlIGNsYXNzLCBtYWtlIGZha2VzcmMgZXh0ZW5kIGl0LgoJICBBZGQgY29tbWVudHMgdG8gYmFzZXNpbmsgY2xhc3MuCgkgIFNvbWUgZmlsZXNyYyBjbGVhbnVwLgoKMjAwNS0wNC0wMSAxMDoxNDo0NSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogdGVzdHMvbWVtY2h1bmsvZ21lbWNodW5rdGVzdC5jOgoJICBhZGQgc3VwcG9ydCBmb3IgZ29vZ2xlIG1hbGxvYyBpZiBhdmFpbGFibGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBzdXBwb3J0IGZvciBnb29nbGUgbWFsbG9jIGlmIGF2YWlsYWJsZQoKMjAwNS0wNC0wMSAwMjo0MTozNSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IFN3aXRjaCB0byB1c2luZyBHX01PRFVMRV9CSU5EX0xPQ0FMLCB3aGljaCBtZWFucyBwbHVnaW5zIGFyZSBub3cgZXhwZWN0ZWQgdG8gbGluayBhZ2FpbnN0IGxpYmdzdHJlYW1lci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9jaGVja19maWxlKSwgKGdzdF9wbHVnaW5fbG9hZF9maWxlKToKCSAgU3dpdGNoIHRvIHVzaW5nIEdfTU9EVUxFX0JJTkRfTE9DQUwsIHdoaWNoIG1lYW5zIHBsdWdpbnMgYXJlIG5vdwoJICBleHBlY3RlZCB0byBsaW5rIGFnYWluc3QgbGliZ3N0cmVhbWVyLgoJICAqIGdzdC9iYXNlL01ha2VmaWxlLmFtOiBsaW5rIGFnYWluc3QgbGliZ3N0cmVhbWVyCgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOiBzYW1lCgoyMDA1LTAzLTMxIDE1OjAwOjExICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9pbnN0YW50aWF0ZS86IEFkZCB0ZXN0IHRvIHRlc3Qgc3BlZWQgb2YgY2FwcyBjb3B5IGFuZCBmcmVlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wMy0zMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9pbnN0YW50aWF0ZS9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9pbnN0YW50aWF0ZS9jYXBzLmM6IEFkZCB0ZXN0IHRvIHRlc3Qgc3BlZWQgb2YgY2FwcyBjb3B5CgkgIGFuZCBmcmVlLgoJICAqIHRlc3RzL21lbWNodW5rL2dtZW1jaHVua3Rlc3QuYyAobWFpbik6IFVzZSBhbGxvYyBvbmx5IG9uIHRoZQoJICBHTWVtQ2h1bmsgdG8gYmUgZmFpci4KCSAgKiBnc3QvZ3N0dHJhc2hzdGFjay5oOiBSZW1vdmUgd2FybmluZyBhYm91dCB1c2luZyB0aGUgZmFsbGJhY2sKCSAgdHJhc2ggc3RhY2sgaW1wbGVtZW50YXRpb24sIGl0J3Mgc3RpbGwgZmFzdGVyIHRoYW4gbWFsbG9jLgoKMjAwNS0wMy0zMSAxMDoxMDo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEFkZGVkIHN0YXJ0L3N0b3AgbWV0aG9kcyB0byB0cmFuc2Zvcm0gYmFzZSBjbGFzcyBzbyBzdWJjbGFzc2VzIGRvbid0IG5lZWQgdG8gZGVhbCB3aXRoIHN0YXRlIGNoYW5nZXMgZXZlbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2Jhc2VfaW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2xhc3NfaW5pdCksIChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2FjdGl2YXRlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zcmNfYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpLAoJICAoZ3N0X2lkZW50aXR5X2V2ZW50KSwgKGdzdF9pZGVudGl0eV9jaGVja19wZXJmZWN0KSwKCSAgKGdzdF9pZGVudGl0eV90cmFuc2Zvcm0pLCAoZ3N0X2lkZW50aXR5X3N0YXJ0KSwKCSAgKGdzdF9pZGVudGl0eV9zdG9wKToKCSAgQWRkZWQgc3RhcnQvc3RvcCBtZXRob2RzIHRvIHRyYW5zZm9ybSBiYXNlIGNsYXNzIHNvIHN1YmNsYXNzZXMKCSAgZG9uJ3QgbmVlZCB0byBkZWFsIHdpdGggc3RhdGUgY2hhbmdlcyBldmVuLgoKMjAwNS0wMy0zMSAxMDoxMDoyMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogdGVzdHMvbWVtY2h1bmsvZ21lbWNodW5rdGVzdC5jOgoJICBhZGQgcGVyLXRocmVhZCBzdGF0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHBlci10aHJlYWQgc3RhdHMKCjIwMDUtMDMtMzEgMDk6NDY6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBBZGRlZCByYXRlIHRvIHRoZSBkaXNjb250IGV2ZW50IHRvIHByZXBhcmUgZm9yIHZhcmlhYmxlIHNwZWVkIGFuZCByZXZlcnNlIHBsYXliYWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfZGlzY29udGludW91c192YWxpc3QpLAoJICAoZ3N0X2V2ZW50X25ld19kaXNjb250aW51b3VzKSwgKGdzdF9ldmVudF9kaXNjb250X2dldF92YWx1ZSk6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfcGVlcl9zZXRfYWN0aXZlKSwKCSAgKGdzdF9wYWRfcHVsbF9yYW5nZSk6CgkgIEFkZGVkIHJhdGUgdG8gdGhlIGRpc2NvbnQgZXZlbnQgdG8gcHJlcGFyZSBmb3IgdmFyaWFibGUgc3BlZWQKCSAgYW5kIHJldmVyc2UgcGxheWJhY2suCgoyMDA1LTAzLTMwIDE0OjA5OjAxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiB0ZXN0cy9tZW1jaHVuay9nbWVtY2h1bmt0ZXN0LmM6CgkgIENvbW1pdCBtZW0gY2h1bmsgdGVzdDsgcHJvYmFibHkgd2lsbCBiZSByZW1vdmVkIGxhdGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ29tbWl0IG1lbSBjaHVuayB0ZXN0OyBwcm9iYWJseSB3aWxsIGJlIHJlbW92ZWQgbGF0ZXIuCgoyMDA1LTAzLTMwIDAzOjU3OjM5ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIEEgbGl0dGxlIGV4YW1wbGUgcHJvZ3JhbSB0byBzaG93IGhvdyB0cmlnZ2VyLWJhc2VkIGVsZW1lbnRzIGNhbiB3b3JrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogdGVzdHN1aXRlL3RyaWdnZXIvTWFrZWZpbGUuYW06CgkgICogdGVzdHN1aXRlL3RyaWdnZXIvdHJpZ2dlci5jOiBBIGxpdHRsZSBleGFtcGxlIHByb2dyYW0gdG8gc2hvdwoJICBob3cgdHJpZ2dlci1iYXNlZCBlbGVtZW50cyBjYW4gd29yay4KCjIwMDUtMDMtMjkgMTY6MTg6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBTaW1wbGlmeSBwYWQgYWN0aXZhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2Jhc2UvUkVBRE1FOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfZ2V0X3R5cGUpLAoJICAoZ3N0X2Jhc2VzaW5rX2Jhc2VfaW5pdCksIChnc3RfYmFzZXNpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZXNpbmtfcGFkX2dldGNhcHMpLCAoZ3N0X2Jhc2VzaW5rX2luaXQpLAoJICAoZ3N0X2Jhc2VzaW5rX2FjdGl2YXRlKSwgKGdzdF9iYXNlc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF90eXBlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9iYXNlX2luaXQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2ZpbmFsaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jbGFzc19pbml0KSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcm94eV9nZXRjYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCksIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0cmFuZ2UpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19hY3RpdmF0ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc3JjX2FjdGl2YXRlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9maW5hbGl6ZSksCgkgIChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCksIChnc3RfaWRlbnRpdHlfaW5pdCksCgkgIChnc3RfaWRlbnRpdHlfZXZlbnQpLCAoZ3N0X2lkZW50aXR5X2NoZWNrX3BlcmZlY3QpLAoJICAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybSksIChnc3RfaWRlbnRpdHlfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9pZGVudGl0eV9nZXRfcHJvcGVydHkpLCAoZ3N0X2lkZW50aXR5X2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfcGVlcl9zZXRfYWN0aXZlKSwKCSAgKGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSksIChnc3RfcGFkX3B1bGxfcmFuZ2UpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgU2ltcGxpZnkgcGFkIGFjdGl2YXRpb24uCgkgIEFkZGVkIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIHB1bGxfcmFuZ2UgY2FuIGJlIHBlcmZvcm1lZC4KCSAgRXJyb3Igb3V0IHdoZW4gcHVsbGluZyBpbmFjdGl2ZSBvciBmbHVzaGluZyBwYWRzLgoJICBSZW1vdmVkIGNvbnN0IGZyb20gcmVmY291bnRlZCB0eXBlcyBhcyBpdCBkb2VzIG5vdCBtYWtlIHNlbnNlLgoJICBTaW1wbGlmeSBwYWQgdGVtcGxhdGVzIGluIGJhc2VzaW5rCgkgIEFkZGVkIGJhc2UgY2xhc3MgZm9yIHNpbXBsZSAxLXRvLTEgdHJhbnNmb3Jtcy4KCSAgTWFrZSBpZGVudGl0eSBzdWJjbGFzcyB0aGUgYmFzZSB0cmFuc2Zvcm0uCgoyMDA1LTAzLTI5IDE0OjM0OjUxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzLzogQWRkIHRoZXNlIGZpbGVzIHRvIENWUy4gTm93IEkgcmVhbGx5IGRvbid0IHVuZGVyc3RhbmQgd2hhdCdzIGdvaW5nIG9uLCBidXQgbGlrZSB3aGF0ZXZlci4gSSB3YW50IGdyZWVuIGJ1aWxkYm90IQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wMy0yOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtb3ZlcnJpZGVzLnR4dDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItb3ZlcnJpZGVzLnR4dDogQWRkIHRoZXNlIGZpbGVzIHRvIENWUy4gTm93IEkKCSAgcmVhbGx5IGRvbid0IHVuZGVyc3RhbmQgd2hhdCdzIGdvaW5nIG9uLCBidXQgbGlrZSB3aGF0ZXZlci4gSSB3YW50CgkgIGdyZWVuIGJ1aWxkYm90IQoKMjAwNS0wMy0yOSAxNDoxMjo0OCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy86IERpc3QgdGhlIG92ZXJyaWRlcyBmaWxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDMtMjkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOiBEaXN0IHRoZSBvdmVycmlkZXMgZmlsZXMuCgkgICogY2hlY2svTWFrZWZpbGUuYW0gKGNsZWFuLWxvY2FsKTogUmVtb3ZlIC5saWJzIGRpcmVjdG9yaWVzLgoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbSAoRVhUUkFfRElTVCk6IEFkZCBhbGwgdGhlIGF0dGljCgkgIGVsZW1lbnRzIHRvIEVYVFJBX0RJU1QsIHNvIHBvLyBmaWxlcyBhcmUgaGFwcHkuCgoyMDA1LTAzLTI5IDEzOjEwOjI1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBwby9QT1RGSUxFUzogUmVtb3ZlIGdzdHNwaWRlci5jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wMy0yOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBwby9QT1RGSUxFUzogUmVtb3ZlIGdzdHNwaWRlci5jLgoJICAqIGNvbmZpZ3VyZS5hYyAoQUNfT1VUUFVUKTogQWRkIG1pc3NpbmcgdGVzdHN1aXRlIG1ha2VmaWxlcy4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IFJlbW92ZSB0aGUgc2VjdGlvbiBvbgoJICBieXRlc3RyZWFtLgoJICAqIHRlc3RzL2NvbXBsZXhpdHkuYyAobWFpbik6IFNldCB0aGUgbGVuZ3RoIG9mIHRoZSBwcmVyb2xsIHF1ZXVlCgkgIG9uIHRoZSBzaW5rcyB0byBwcmV2ZW50IGEgbG9ja3VwLgoKMjAwNS0wMy0yOSAxMTozOToxNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sLzogUmVtb3ZlIHRlc3QsIGl0J3MgdGhlIHNhbWUgYXMgdGhlIG9uZSBpbiBjaGVjay9nc3QtbGlicy9nZHAuYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDMtMjkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wtdGVzdC5jOiBSZW1vdmUgdGVzdCwgaXQncwoJICB0aGUgc2FtZSBhcyB0aGUgb25lIGluIGNoZWNrL2dzdC1saWJzL2dkcC5jLgoKMjAwNS0wMy0yOSAxMDo1NTozOSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgcG8vLCBkb2NzL2dzdC86IENvbW1pdCBhdXRvbWF0aWMgY2hhbmdlcyB0byBkb2NzIGFuZCBwbyBmaWxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDMtMjkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogcG8vLCBkb2NzL2dzdC86IENvbW1pdCBhdXRvbWF0aWMgY2hhbmdlcyB0byBkb2NzIGFuZCBwbyBmaWxlcy4KCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW0gKGxpYmdzdGVsZW1lbnRzX2xhX0xERkxBR1MpOiBMaW5rIHRvCgkgIHRoZSB2ZXJzaW9uZWQgbGliZ3N0YmFzZS4KCSAgKiBjaGVjay9NYWtlZmlsZS5hbTogRGVwZW5kIG9uIGFuIHVudmVyc2lvbmVkIGdzdC1yZWdpc3Rlciwgc2VlbXMKCSAgdG8gbWFrZSBhdXRvY29uZiBoYXBwaWVyLgoJICAqIGdzdC9iYXNlL01ha2VmaWxlLmFtOiBNYWtlIGxpYmdzdGJhc2UgYSB2ZXJzaW9uZWQgbGliLgoKMjAwNS0wMy0yOCAxNDo1NDozMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGVsZW1lbnQudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1wcmVyb2xsLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zY2hlZHVsaW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBnc3QvYmFzZS9SRUFETUU6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvUkVBRE1FOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkgIEFkZGVkIHN0YXRlIGNoYW5nZSBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQWRkZWQgc3RhdGUgY2hhbmdlIGNvZGUuCgkgIEFkZGVkL3VwZGF0ZWQgZG9jcy4KCSAgQWRkZWQgc2luayBiYXNlIGNsYXNzLCBtYWtlIGZha2VzaW5rIGV4dGVuZCB0aGUgYmFzZSBjbGFzcy4KCSAgU21hbGwgY2xlYW51cHMgaW4gR3N0UGlwZWxpbmUuCgoyMDA1LTAzLTI2IDIyOjA3OjUzICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9NYWtlZmlsZS5hbTogcmVtb3ZlIGdzdGNwdS5bY2hdLiAgVGhlIGdzdF9jcHUgZnVuY3Rpb25hbGl0eSBpcyBicm9rZW4gYW5kIHNob3VsZCBiZSBpbXBsZW1lbnRlZCBpbiBhIGRpZmZlcmVudCBsaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06IHJlbW92ZSBnc3RjcHUuW2NoXS4gIFRoZSBnc3RfY3B1IGZ1bmN0aW9uYWxpdHkKCSAgaXMgYnJva2VuIGFuZCBzaG91bGQgYmUgaW1wbGVtZW50ZWQgaW4gYSBkaWZmZXJlbnQgbGlicmFyeS4KCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOiBkb24ndCBjYWxsIF9nc3RfY3B1X2luaXRpYWxpemUoKQoJICAqIGdzdC9nc3QuaDogcmVtb3ZlIGdzdGNwdS5oCgkgICogZ3N0L2dzdGNwdS5jOiByZW1vdmUKCSAgKiBnc3QvZ3N0Y3B1Lmg6IHJlbW92ZQoJICAqIGdzdC9NYWtlZmlsZS5hbS5mdXR1cmU6IFJlbW92ZSB0aGlzIGZpbGUuICBJdCdzIGFuY2llbnQuCgoyMDA1LTAzLTI1IDA5OjU3OjQyICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IEFkZCBkZWZhdWx0IGV2ZW50L3NldF9tYW5hZ2VyIGhhbmRsZXJzLiBUaGUgc2V0X21hbmFnZXIgaGFuZGxlciB0YWtlcyBjYXJlIHRoYXQgdGhlIG1hbmFnZXIgaXMgZGlzdHJpYnUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5fc2V0X21hbmFnZXIpLAoJICAoZ3N0X2Jpbl9zZW5kX2V2ZW50KToKCSAgQWRkIGRlZmF1bHQgZXZlbnQvc2V0X21hbmFnZXIgaGFuZGxlcnMuIFRoZSBzZXRfbWFuYWdlciBoYW5kbGVyCgkgIHRha2VzIGNhcmUgdGhhdCB0aGUgbWFuYWdlciBpcyBkaXN0cmlidXRlZCBvdmVyIGtpZHMgdGhhdCB3ZXJlCgkgIGFscmVhZHkgaW4gdGhlIGJpbiBiZWZvcmUgdGhlIG1hbmFnZXIgd2FzIHNldC4gVGhlIGV2ZW50IGhhbmRsZXIKCSAgaXMgYSB1dGlsaXR5IHZpcnR1YWwgZnVuY3Rpb24gdGhhdCBzZW5kcyB0aGUgZXZlbnQgb3ZlciBhbGwgc2lua3MsCgkgIHNvIHRoYXQgZ3N0X2VsZW1lbnRfc2VuZF9ldmVudCAoYmluLCBldmVudCk7IGhhcyB0aGUgZXhwZWN0ZWQKCSAgYmVoYXZpb3VyLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZXZlbnRfZGVmYXVsdCk6CgkgIFJlLWluc3RhbGwgZGVmYXVsdCBldmVudCBoYW5kbGluZyBmb3IgZGlzY29udGludWl0aWVzLCBzbyB0aGF0CgkgIHNlZWtpbmcgd29ya3Mgd2l0aG91dCByZXF1aXJpbmcgaGFja3MgaW4gYXBwbGljYXRpb25zIG9yIGV4dHJhCgkgIGNvZGUgaW4gc2lua3MuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCksCgkgIChnc3RfcGlwZWxpbmVfc2VuZF9ldmVudCk6CgkgIEhhbGYgaGFjaywgaGFsZiB1dGlsaXR5OiBzZXQgYSBwaXBlbGluZSB0byBQQVVTRUQgZm9yIHNlZWsgZXZlbnRzLAoJICBzaW5jZSB0aGF0IGlzIHRoZSBvbmx5IHdheSB3ZSBjYW4gZ3VhcmFudGVlIGEvdiBzeW5jLiBNZWFucyB0aGF0CgkgIHlvdSBjYW4gZG8gZ3N0X2VsZW1lbnRfc2VlayAocGlwZWxpbmUsIG1ldGhvZCwgcG9zKTsgb24gYSBwaXBlbGluZQoJICBhbmQgaXQgImp1c3Qgd29ya3MiLgoKMjAwNS0wMy0yNSAwOTozNTowMSArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IExvY2svdW5sb2NrIG1pc21hdGNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV91c2VfY2xvY2spOgoJICBMb2NrL3VubG9jayBtaXNtYXRjaC4KCjIwMDUtMDMtMjUgMDA6MzU6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBhZGQgZ3N0LXBsdWdpbnMtYmFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGFkZCBnc3QtcGx1Z2lucy1iYXNlCgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgIGRvbid0IGVycm9yIG91dCB1bnRpbCBkb2NzIGFyZSBmaXhlZAoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgcmVtb3ZlIHRocmVhZAoKMjAwNS0wMy0yMiAxNDoyMzo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFjdGl2YXRlZCBtb3JlIHRlc3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9nc3QvZ3N0bWVzc2FnZS5jOiAoU1RBUlRfVEVTVCksIChnc3RfZGF0YV9zdWl0ZSksIChtYWluKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3NldF92YWxpc3QpLAoJICAoZ3N0X3N0cnVjdHVyZV9jb3B5X2NvbmRpdGlvbmFsKToKCSAgQWN0aXZhdGVkIG1vcmUgdGVzdHMuCgkgIEFkZGVkIG1lc3NhZ2UgdGVzdC4KCSAgQWRkZWQgR19UWVBFX1BPSU5URVIgdG8gR3N0U3RydWN0dXJlLgoKMjAwNS0wMy0yMiAxMTozMjo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvY3MgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJpbi50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RidXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJICAqIGdzdC9nc3RidXMuYzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBEb2NzIHVwZGF0ZXMKCjIwMDUtMDMtMjEgMTg6MTc6NTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVzLmM6IEZpeCBjb3B5LWFuZC1wYXN0ZSBlcnJvci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19wb3N0KToKCSAgRml4IGNvcHktYW5kLXBhc3RlIGVycm9yLgoKMjAwNS0wMy0yMSAxNzozNDowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNvbW1vbjoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0ZWUuaDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGRhdGEuaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJKiBnc3QvZ3N0cHJvYmUuaDoKCSogZ3N0L2dzdHF1ZXVlLmM6CgkqIGdzdC9nc3RxdWV1ZS5oOgoJKiBnc3QvZ3N0c2NoZWR1bGVyLmM6CgkqIGdzdC9nc3RzY2hlZHVsZXIuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3R0YWdpbnRlcmZhY2UuaDoKCSogZ3N0L2dzdHRhZ3NldHRlci5oOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiBnc3QvZ3N0dGhyZWFkLmM6CgkqIGdzdC9nc3R0aHJlYWQuaDoKCSogZ3N0L2dzdHR5cGVzLmg6CgkqIGdzdC9zY2hlZHVsZXJzL01ha2VmaWxlLmFtOgoJKiBnc3Qvc2NoZWR1bGVycy9jb3RocmVhZHNfY29tcGF0Lmg6CgkqIGdzdC9zY2hlZHVsZXJzL2VudHJ5c2NoZWR1bGVyLmM6CgkqIGdzdC9zY2hlZHVsZXJzL2ZhaXJjb3RocmVhZHMuYzoKCSogZ3N0L3NjaGVkdWxlcnMvZmFpcmNvdGhyZWFkcy5oOgoJKiBnc3Qvc2NoZWR1bGVycy9mYWlyc2NoZWR1bGVyLmM6CgkqIGdzdC9zY2hlZHVsZXJzL2dzdGJhc2ljc2NoZWR1bGVyLmM6CgkqIGdzdC9zY2hlZHVsZXJzL2dzdG9wdGltYWxzY2hlZHVsZXIuYzoKCSogZ3N0L3NjaGVkdWxlcnMvZ3RocmVhZC1jb3RocmVhZHMuaDoKCSogZ3N0L3NjaGVkdWxlcnMvdGhyZWFkc2NoZWR1bGVyLmM6CgkqIGxpYnMvZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9ieXRlc3RyZWFtL2J5dGVzdHJlYW0uYzoKCSogbGlicy9nc3QvYnl0ZXN0cmVhbS9maWxlcGFkLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9jb21wbGV4aXR5LmM6CgkqIHRlc3RzL2JlbmNobWFya3MvbWFzcy1lbGVtZW50cy5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY29tcGxleGl0eS5jOgoJKiB0ZXN0cy9tYXNzX2VsZW1lbnRzLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc3RhdGVzL2xvY2tlZC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3N0YXRlcy9wYXJlbnQuYzoKCSogdGVzdHN1aXRlL3N0YXRlcy9sb2NrZWQuYzoKCSogdGVzdHN1aXRlL3N0YXRlcy9wYXJlbnQuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QtbWQ1c3VtLmM6CgkqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICBOZXh0IGJpZyBtZXJnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE5leHQgYmlnIG1lcmdlLgoJICBBZGRlZCBHc3RCdXMgZm9yIG1haW5sb29wIGludGVncmF0aW9uLgoJICBBZGRlZCBHc3RNZXNzYWdlIGZvciBzZW5kaW5nIG5vdGlmaWNhdGlvbnMgb24gdGhlIGJ1cy4KCSAgQWRkZWQgR3N0VGFzayBhcyBhbiBhYnN0cmFjdGlvbiBmb3IgcGlwZWxpbmUgZW50cnkgcG9pbnRzLgoJICBSZW1vdmVkIEdzdFRocmVhZC4KCSAgUmVtb3ZlZCBTY2hlZHVsZXJzLgoJICBTaW1wbGlmaWVkIEdzdFF1ZXVlIGZvciBtdWx0aXRocmVhZGVkIGNvcmUuCgkgIE1hZGUgX2xpbmsgdGhyZWFkc2FmZSwgcmVtb3ZlZCBvbGQgY2Fwc25lZ28uCgkgIEFkZGVkIFNUUkVBTV9MT0NLIGFuZCBQUkVST0xMX0xPQ0sgaW4gR3N0UGFkLgoJICBBZGRlZCBwYWQgYmxvY2tpbmcgZnVuY3Rpb25zLgoJICBSZXdvcmtlZCBzY2hlZHVsaW5nIGZ1bmN0aW9ucyBpbiBHc3RQYWQgdG8gcHJlcGFyZSBmb3IKCSAgc2NoZWR1bGluZyB1cGRhdGVzIHNvb24uCgkgIE1vdmVkIGV2ZW50cyBvdXQgb2YgZGF0YSBzdHJlYW0uCgkgIFNpbXBsaWZpZWQgR3N0RXZlbnQgdHlwZXMuCgkgIEFkZGVkIHJldHVybiB2YWx1ZXMgdG8gcHVzaC9wdWxsLgoJICBSZW1vdmVkIGNsb2NraW5nIGZyb20gR3N0RWxlbWVudC4KCSAgQWRkZWQgcHJvdG90eXBlcyBmb3Igc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIGZvciBuZXh0IG1lcmdlLgoJICBSZW1vdmVkIGl0ZXJhdGUgZnJvbSBiaW5zIGFuZCBzdGF0ZSBjaGFuZ2UgbWFuYWdlbWVudC4KCSAgRml4ZWQgc29tZSBlbGVtZW50cywgZGlzYWJsZWQgb3RoZXJzIGZvciBub3cuCgkgIEZpeGVkIC1pbnNwZWN0IGFuZCAtbGF1bmNoLgoJICBBZGRlZCBjaGVjayBmb3IgR3N0QnVzLgoKMjAwNS0wMy0xMCAxMjo1MTo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LU1ULXJlZmNvdW50aW5nLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RlbGVtZW50LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdG9iamVjdC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGFuZGFyZHMudHh0OgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9hZGQpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX3JlbW92ZSk6CgkgICogZ3N0L2dzdGJpbi5oOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICAqIHRlc3RzdWl0ZS9jbG9jay9jbG9jazEuYzogKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9jbG9jay9jbG9jazIuYzogKGdzdF9jbG9ja19kZWJ1ZyksIChlbGVtZW50X3dhaXQpLAoJICAobWFpbik6CgkgICogdGVzdHN1aXRlL2Rsb3Blbi9sb2FkZ3N0LmM6IChkb190ZXN0KToKCSAgKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvYmluLmM6IChhZGRfcmVtb3ZlX3Rlc3QxKSwKCSAgKGFkZF9yZW1vdmVfdGVzdDIpLCAobWFpbik6CgkgICogdGVzdHN1aXRlL3JlZmNvdW50aW5nL2VsZW1lbnQuYzogKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9lbGVtZW50X3BhZC5jOiAobWFpbik6CgkgICogdGVzdHN1aXRlL3JlZmNvdW50aW5nL3BhZC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoc2lnaW50X2hhbmRsZXJfc2lnaGFuZGxlcik6CgkgICogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6IChtYWluKToKCSAgRG9jIHVwZGF0ZXMuCgkgIEFkZGVkIGRvYyBhYm91dCBjbG9jay4KCSAgcmVtb3ZlZCBnc3RfYmluX2l0ZXJhdGVfcmVjdXJzZV91cCgpLCBtYXJrZWQgbWV0aG9kcwoJICBmb3IgcmVtb3ZhbC4KCSAgRml4IG1vcmUgdGVzdHN1aXRlcy4KCjIwMDUtMDMtMDkgMTc6Mjg6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBGaXggX3BhZF9nZXRfZGlyZWN0aW9uIHdydCBnaG9zdHBhZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X2RpcmVjdGlvbiksCgkgIChfZ3N0X3BhZF9kZWZhdWx0X2ZpeGF0ZV9mb3JlYWNoKSwgKGdzdF9wYWRfY29sbGVjdHYpLAoJICAoZ3N0X3BhZF9jb2xsZWN0X3ZhbGlzdCk6CgkgICogdGVzdHN1aXRlL2JpbnMvaW50ZXJmYWNlLmM6IChtYWluKToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9hdWRpb3NjYWxlLmM6ICh0ZXN0X2NhcHMpOgoJICAqIHRlc3RzdWl0ZS9jYXBzL2NhcHMuYzogKHRlc3QxKSwgKHRlc3QyKSwgKHRlc3QzKToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9kZXNlcmlhbGl6ZS5jOiAobWFpbik6CgkgICogdGVzdHN1aXRlL2NhcHMvZW51bWNhcHMuYzogKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9jYXBzL2ZpbHRlcmNhcHMuYzogKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9jYXBzL2ludGVyc2VjdDIuYzogKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9jYXBzL3JhbmRvbS5jOiAobWFpbik6CgkgICogdGVzdHN1aXRlL2NhcHMvcmVuZWdvdGlhdGUuYzogKG15X2ZpeGF0ZSksIChtYWluKToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9zZXRzLmM6IChjaGVja19jYXBzKToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9zaW1wbGlmeS5jOiAoY2hlY2tfY2FwcyksIChtYWluKToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9zdWJ0cmFjdC5jOiAoY2hlY2tfY2Fwcyk6CgkgIEZpeCBfcGFkX2dldF9kaXJlY3Rpb24gd3J0IGdob3N0cGFkcy4KCSAgRml4IGNhcHMgdGVzdHN1aXRlLgoKMjAwNS0wMy0wOSAxNjoxMDo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL2dzdC9nc3RiaW4uYzoKCSogY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9zY2hlZHVsZXJzL2VudHJ5c2NoZWR1bGVyLmM6CgkqIGdzdC9zY2hlZHVsZXJzL2dzdGJhc2ljc2NoZWR1bGVyLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2JpbnMvaW50ZXJmYWNlLmM6CgkqIHRlc3RzdWl0ZS9iaW5zL2ludGVyZmFjZS5jOgoJICBBZGRlZCBHc3RCaW4gdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFkZGVkIEdzdEJpbiB0ZXN0LgoJICBBZGRlZCBHc3RTeXN0ZW1DbG9jayB0ZXN0LgoJICBJbXBsZW1lbnRlZCBjbG9jayBkaXN0cmlidXRpb24gY29kZSBpbiBHc3RCaW4uCgkgIEltcGxlbWVudGVkIGl0ZXJhdGUgc2lua3MgbWV0aG9kIGZvciBmdXR1cmUgdXNlLgoJICBSZWFycmFuZ2VkIGdzdGVsZW1lbnQuaAoJICBGaXggR3N0SXRlcmF0b3IgY29tcGFyaXNvbiBidWcuCgkgIE1vdmVkIHNvbWUgY29kZSB0byBHc3RQaXBlbGluZSwgbW9zdGx5IGNsb2NraW5nIHJlbGF0ZWQuCgoyMDA1LTAzLTA5IDExOjA4OjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQnVtcCB2ZXJzaW9uIG51bWJlciwgd2UncmUgbm93IDAuOS4wCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fYWRkKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmUpLAoJICAoZ3N0X2Jpbl9nZXRfYnlfbmFtZV9yZWN1cnNlX3VwKToKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19pZF9yZWYpLCAoZ3N0X2Nsb2NrX2lkX3VucmVmKSwKCSAgKGdzdF9jbG9ja19pZF9jb21wYXJlX2Z1bmMpLCAoZ3N0X2Nsb2NrX2lkX3dhaXQpLAoJICAoZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmMpLCAoZ3N0X2Nsb2NrX2luaXQpLAoJICAoZ3N0X2Nsb2NrX2FkanVzdF91bmxvY2tlZCksIChnc3RfY2xvY2tfZ2V0X3RpbWUpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGluZm8uYzogKF9nc3RfZGVidWdfaW5pdCk6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICAqIGdzdC9nc3RwYWQuYzogKF9nc3RfcGFkX2RlZmF1bHRfZml4YXRlX2ZvcmVhY2gpLAoJICAoZ3N0X3BhZF9jb2xsZWN0diksIChnc3RfcGFkX2NvbGxlY3RfdmFsaXN0KSwgKGdzdF9wYWRfcXVlcnkpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgQnVtcCB2ZXJzaW9uIG51bWJlciwgd2UncmUgbm93IDAuOS4wCgkgIEFkZCBmdXR1cmUgZGVidWdnaW5nIGNhdGVnb3J5LgoJICBGaXggTlVMTCBfdW5yZWYoKSBpbiBfZ2V0X2J5X25hbWVfcmVjdXJzZV91cAoJICBSZWFycmFuZ2UgZ3N0cGFkLmguCgkgIFVwZGF0ZSBzb21lIGRvY3MuCgoyMDA1LTAzLTA4IDE3OjQyOjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZWxlbWVudHMvZ3N0YWdncmVnYXRvci5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0bWQ1c2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0bXVsdGlmaWxlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RzaGFwZXIuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHN0YXRpc3RpY3MuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0cXVldWUuYzoKCSogZ3N0L2dzdHRocmVhZC5jOgoJKiBnc3Qvc2NoZWR1bGVycy9nc3RiYXNpY3NjaGVkdWxlci5jOgoJKiBnc3Qvc2NoZWR1bGVycy9nc3RvcHRpbWFsc2NoZWR1bGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0YWdncmVnYXRvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtZDVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzaGFwZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzdGF0aXN0aWNzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIFJlbW92ZSB0aHJlYWRzYWZlIHByb3BlcnRpZXMuIEZpeCBlbGVtZW50cyBiZWNhdXNlIEdPYmplY3QgY29tcGxhaW5zIHdoZW4gaW5zdGFsbGluZyBhIHByb3BlcnR5IGJlZm9yZSBkZWNsYXJpbmcgYSBzZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVtb3ZlIHRocmVhZHNhZmUgcHJvcGVydGllcy4gRml4IGVsZW1lbnRzIGJlY2F1c2UgR09iamVjdAoJICBjb21wbGFpbnMgd2hlbiBpbnN0YWxsaW5nIGEgcHJvcGVydHkgYmVmb3JlIGRlY2xhcmluZyBhCgkgIHNldC9nZXRfcHJvcGVydHkgaGFuZGxlci4KCSAgUmVhcnJhbmdlIGdzdGVsZW1lbnQuaCBmaWxlLCB1c2UgU1RBVEUgbWFjcm9zIGZvciBzdGF0ZSBsb2Nrcy4KCSAgRnJlZSBtdXRleGVzIGluIHRoZSBmaW5hbGl6ZSBtZXRob2QgaW5zdGVhZCBvZiBkaXNwb3NlLgoKMjAwNS0wMy0wOCAxNTo1NzoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZGVkIHBhcmVudGFnZSBjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdG9iamVjdC5jOiAoU1RBUlRfVEVTVCksIChnc3Rfb2JqZWN0X3N1aXRlKToKCSAgKiBnc3QvZ3N0dGhyZWFkLmM6IChnc3RfdGhyZWFkX3JlbGVhc2VfY2hpbGRyZW5fbG9ja3MpOgoJICBBZGRlZCBwYXJlbnRhZ2UgY2hlY2suCgkgIEZpeCBidWlsZCBvZyBHc3RUaHJlYWQgYWdhaW4uCgoyMDA1LTAzLTA4IDE0OjM4OjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRG9jcyB1cGRhdGVzLCBjbGVhbiB1cCBzb21lIGhlYWRlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtTVQtcmVmY291bnRpbmcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY29udmVudGlvbnMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0b2JqZWN0LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXJlbGF0aW9ucy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGFuZGFyZHMudHh0OgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9hZGQpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX3JlbW92ZSksIChnc3RfYmluX2l0ZXJhdGVfcmVjdXJzZSksCgkgIChnc3RfYmluX2dldF9ieV9uYW1lKSwgKGdzdF9iaW5fZ2V0X2J5X2ludGVyZmFjZSksCgkgIChnc3RfYmluX2l0ZXJhdGVfYWxsX2J5X2ludGVyZmFjZSk6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19pbml0KSwKCSAgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSksIChnc3RfZWxlbWVudF9zZXRfbG9vcF9mdW5jdGlvbik6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2NsYXNzX2luaXQpLCAoZ3N0X29iamVjdF9yZWYpLAoJICAoZ3N0X29iamVjdF91bnJlZiksIChnc3Rfb2JqZWN0X3NpbmspLCAoZ3N0X29iamVjdF9kaXNwb3NlKSwKCSAgKGdzdF9vYmplY3RfZGlzcGF0Y2hfcHJvcGVydGllc19jaGFuZ2VkKSwgKGdzdF9vYmplY3Rfc2V0X25hbWUpLAoJICAoZ3N0X29iamVjdF9zZXRfcGFyZW50KSwgKGdzdF9vYmplY3RfdW5wYXJlbnQpLAoJICAoZ3N0X29iamVjdF9jaGVja191bmlxdWVuZXNzKToKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIERvY3MgdXBkYXRlcywgY2xlYW4gdXAgc29tZSBoZWFkZXJzLgoJICBGcmVlIGl0ZXJhdG9ycyBpbiBHc3RCaW4uCgkgIEdzdE9iamVjdCBpcyBub3cgbG9va2luZyBnb29kLgoKMjAwNS0wMy0wNyAxODozMzozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrLzogQWRkZWQgY2hlY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay8uY3ZzaWdub3JlOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2dzdC1saWJzLy5jdnNpZ25vcmU6CgkgICogY2hlY2svZ3N0LWxpYnMvZ2RwLmM6IChTVEFSVF9URVNUKSwgKGdzdF9vYmplY3Rfc3VpdGUpLCAobWFpbik6CgkgICogY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgICogY2hlY2svZ3N0L2dzdGJ1cy5jOiAocG91bmRfYnVzX3dpdGhfbWVzc2FnZXMpLCAocHVsbF9tZXNzYWdlcyksCgkgIChTVEFSVF9URVNUKSwgKGdzdGJ1c19zdWl0ZSksIChtYWluKToKCSAgKiBjaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoU1RBUlRfVEVTVCksIChnc3RfY2Fwc19zdWl0ZSksIChtYWluKToKCSAgKiBjaGVjay9nc3QvZ3N0ZGF0YS5jOiAoU1RBUlRfVEVTVCksICh0aHJlYWRfcmVmKSwgKHRocmVhZF91bnJlZiksCgkgIChnc3RfZGF0YV9zdWl0ZSksIChtYWluKToKCSAgKiBjaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzogKG1ha2VfbGlzdF9vZl9pbnRzKSwgKFNUQVJUX1RFU1QpLAoJICAoYWRkX2ZvbGRfZnVuYyksIChnc3RpdGVyYXRvcl9zdWl0ZSksIChtYWluKToKCSAgKiBjaGVjay9nc3QvZ3N0b2JqZWN0LmM6IChnc3RfZmFrZV9vYmplY3RfZ2V0X3R5cGUpLCAoU1RBUlRfVEVTVCksCgkgICh0aHJlYWRfbmFtZV9vYmplY3QpLCAodGhyZWFkX25hbWVfb2JqZWN0X2RlZmF1bHQpLAoJICAoZ3N0X29iamVjdF9uYW1lX2NvbXBhcmUpLCAoZ3N0X29iamVjdF9zdWl0ZSksIChtYWluKToKCSAgKiBjaGVjay9nc3QvZ3N0cGFkLmM6IChTVEFSVF9URVNUKSwgKHRocmVhZF9saW5rX3VubGluayksCgkgIChnc3RfcGFkX3N1aXRlKSwgKG1haW4pOgoJICAqIGNoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfbG9nX21lc3NhZ2VfZnVuYyksCgkgIChnc3RfY2hlY2tfbG9nX2NyaXRpY2FsX2Z1bmMpLCAoZ3N0X2NoZWNrX2luaXQpOgoJICAqIGNoZWNrL2dzdGNoZWNrLmg6CgkgICogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzogKHNldHVwX3BpcGVsaW5lKSwKCSAgKHJ1bl9waXBlbGluZSksIChTVEFSVF9URVNUKSwgKHNpbXBsZV9sYXVuY2hfbGluZXNfc3VpdGUpLCAobWFpbik6CgkgIEFkZGVkIGNoZWNrcy4KCjIwMDUtMDMtMDcgMTg6Mjk6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0aXRlcmF0b3IuKjogQWRkZWQgbWlzc2luZyBmaWxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6IChnc3RfaXRlcmF0b3JfaW5pdCksIChnc3RfaXRlcmF0b3JfbmV3KSwKCSAgKGdzdF9saXN0X2l0ZXJhdG9yX25leHQpLCAoZ3N0X2xpc3RfaXRlcmF0b3JfcmVzeW5jKSwKCSAgKGdzdF9saXN0X2l0ZXJhdG9yX2ZyZWUpLCAoZ3N0X2l0ZXJhdG9yX25ld19saXN0KSwKCSAgKGdzdF9pdGVyYXRvcl9wb3ApLCAoZ3N0X2l0ZXJhdG9yX25leHQpLCAoZ3N0X2l0ZXJhdG9yX3Jlc3luYyksCgkgIChnc3RfaXRlcmF0b3JfZnJlZSksIChnc3RfaXRlcmF0b3JfcHVzaCksIChmaWx0ZXJfbmV4dCksCgkgIChmaWx0ZXJfcmVzeW5jKSwgKGZpbHRlcl91bmluaXQpLCAoZmlsdGVyX2ZyZWUpLAoJICAoZ3N0X2l0ZXJhdG9yX2ZpbHRlciksIChnc3RfaXRlcmF0b3JfZm9sZCksIChmb3JlYWNoX2ZvbGRfZnVuYyksCgkgIChnc3RfaXRlcmF0b3JfZm9yZWFjaCksIChmaW5kX2N1c3RvbV9mb2xkX2Z1bmMpLAoJICAoZ3N0X2l0ZXJhdG9yX2ZpbmRfY3VzdG9tKToKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgQWRkZWQgbWlzc2luZyBmaWxlcy4KCjIwMDUtMDMtMDcgMTg6Mjc6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE1ha2VmaWxlLmFtOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZGVzaWduL3BhcnQtTVQtcmVmY291bnRpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnZlbnRpb25zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RvYmplY3QudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXJlbGF0aW9ucy50eHQ6CgkqIGV4YW1wbGVzL21peGVyL21peGVyLmM6CgkqIGV4YW1wbGVzL3RocmVhZC90aHJlYWQuYzoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvYXV0b3BsdWcvZ3N0c2VhcmNoZnVuY3MuYzoKCSogZ3N0L2F1dG9wbHVnL2dzdHNwaWRlci5jOgoJKiBnc3QvYXV0b3BsdWcvZ3N0c3BpZGVyaWRlbnRpdHkuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdGNwdS5jOgoJKiBnc3QvZ3N0ZGF0YS5jOgoJKiBnc3QvZ3N0ZGF0YS5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0bWVtY2h1bmsuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHByb2JlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHF1ZXVlLmM6CgkqIGdzdC9nc3RzY2hlZHVsZXIuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSogZ3N0L2dzdHRhZy5jOgoJKiBnc3QvZ3N0dGFnaW50ZXJmYWNlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRocmVhZC5jOgoJKiBnc3QvZ3N0dHJhc2hzdGFjay5oOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVzLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkqIGdzdC9zY2hlZHVsZXJzL2dzdGJhc2ljc2NoZWR1bGVyLmM6CgkqIGdzdC9zY2hlZHVsZXJzL2dzdG9wdGltYWxzY2hlZHVsZXIuYzoKCSogbGlicy9nc3QvYnl0ZXN0cmVhbS9ieXRlc3RyZWFtLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwby9uYi5wbzoKCSogcG8vcnUucG86CgkqIHRlc3RzL29sZC9leGFtcGxlcy9taXhlci9taXhlci5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvdGhyZWFkL3RocmVhZC5jOgoJKiB0ZXN0cy90aHJlYWRzdGF0ZS90aHJlYWRzdGF0ZTIuYzoKCSogdG9vbHMvZ3N0LWNvbXBwcmVwLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogdG9vbHMvZ3N0LW1kNXN1bS5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICBGaXJzdCBUSFJFQURFRCBiYWNrcG9ydCBhdHRlbXB0LCBmb2N1c2luZyBvbiBhZGRpbmcgbG9ja3MgYW5kIG1ha2luZyBzdXJlIHRoZSBBUEkgaXMgdGhyZWFkc2FmZS4gTmVlZHMgbW9yZSB3b3JrLiBNb3IuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZpcnN0IFRIUkVBREVEIGJhY2twb3J0IGF0dGVtcHQsIGZvY3VzaW5nIG9uIGFkZGluZyBsb2NrcyBhbmQKCSAgbWFraW5nIHN1cmUgdGhlIEFQSSBpcyB0aHJlYWRzYWZlLiBOZWVkcyBtb3JlIHdvcmsuIE1vcmUgZG9jcwoJICBmb2xsb3cgdGhpcyB3ZWVrLgoKMjAwNS0wMi0yNSAwMDoxMDowNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJICBhbm90aGVyIG5vLWRlYnVnIGJ1aWxkIGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYW5vdGhlciBuby1kZWJ1ZyBidWlsZCBmaXgKCjIwMDUtMDItMjQgMjM6NDE6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L3NjaGVkdWxlcnMvZmFpcmNvdGhyZWFkcy5jOgoJICBkaXNhYmxlIGRlYnVnIGJ1aWxkIGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGlzYWJsZSBkZWJ1ZyBidWlsZCBmaXgKCjIwMDUtMDItMjQgMTc6MTI6MTkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzLzogTmV3IGZpbGVzLCBnb29kIGZvciBydW5uaW5nIGNvbXBsZXhpdHkgYmVuY2htYXJrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDItMjQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvYmVuY2gtY29tcGxleGl0eS5zY206CgkgICogdGVzdHMvY29tcGxleGl0eS5nbnVwbG90OiBOZXcgZmlsZXMsIGdvb2QgZm9yIHJ1bm5pbmcgY29tcGxleGl0eQoJICBiZW5jaG1hcmtzLgoKMjAwNS0wMi0yNCAxNTozNjoyMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvOiBOZXcgdGVzdCwgc2V0cyB1cCBOIGVsZW1lbnRzLCBhdCBlYWNoIGxldmVsIHRlZWluZyBpbnRvIE0gc3RyZWFtcyBwZXIgZWxlbWVudC4gRWVlZW50ZXJlc3RpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTAyLTI0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NvbXBsZXhpdHkuYzogTmV3IHRlc3QsIHNldHMgdXAgTiBlbGVtZW50cywgYXQgZWFjaCBsZXZlbAoJICB0ZWVpbmcgaW50byBNIHN0cmVhbXMgcGVyIGVsZW1lbnQuIEVlZWVudGVyZXN0aW5nLgoKMjAwNS0wMi0yNCAxMjozMToxMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvbWFzc19lbGVtZW50cy5nbnVwbG90OiBnbnVwbG90IGZpbGUgZm9yIHRoZSBtYXNzX2VsZW1lbnRzIGJlbmNobWFyay4gUnVuIGFzIGdudXBsb3QgbWFzc19lbGVtZW50cy5nbnVwbG90ID4gZm9vLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTAyLTI0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL21hc3NfZWxlbWVudHMuZ251cGxvdDogZ251cGxvdCBmaWxlIGZvciB0aGUgbWFzc19lbGVtZW50cwoJICBiZW5jaG1hcmsuIFJ1biBhcyBnbnVwbG90IG1hc3NfZWxlbWVudHMuZ251cGxvdCA+IGZvby5wcywgYWZ0ZXIKCSAgcnVubmluZyBiZW5jaC1tYXNzX2VsZW1lbnRzLnNjbS4KCSAgKiB0ZXN0cy9iZW5jaC1tYXNzX2VsZW1lbnRzLnNjbTogTmV3IHNjcmlwdCwgcnVucyBtYXNzX2VsZW1lbnRzCgkgIGZvciB2YXJpb3VzIG51bWJlcnMgb2YgaWRlbnRpdGllcywgb3V0cHV0dGluZyB0aGUgcmVzdWx0cyB0byBhCgkgIGZpbGUuIFJlcXVpcmVzIGd1aWxlIDEuNi4gSnVzdCBmb3IgdGVzdGluZy4KCjIwMDUtMDItMjMgMTU6MTQ6MDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L3NjaGVkdWxlcnMvZmFpcnNjaGVkdWxlci5jOgoJICBvbmUgbW9yZSBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG9uZSBtb3JlIGZpeAoKMjAwNS0wMi0yMyAxNTowNjozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9zY2hlZHVsZXJzL2ZhaXJzY2hlZHVsZXIuYzoKCSAgY29tcGlsZSB3aXRoIGRlYnVnIGRpc2FibGVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjb21waWxlIHdpdGggZGVidWcgZGlzYWJsZWQKCjIwMDUtMDItMjIgMTY6MzQ6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkgIGh1bnRpbmcgc2Vhc29uIG9uIDAuOSBpcyBub3cgT1BFTgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaHVudGluZyBzZWFzb24gb24gMC45IGlzIG5vdyBPUEVOCgo=